Packages
plinth
0.9.1
0.10.2
0.10.1
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.0
0.2.0
0.1.13
0.1.12
0.1.11
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Bindings to Node.js and browser platform APIs
Current section
Files
Jump to
Current section
Files
src/plinth/browser/document.gleam
import gleam/javascript/array.{type Array}
import gleam/javascript/promise.{type Promise}
import plinth/browser/element.{type Element}
import plinth/browser/event.{type Event}
pub type Document
@external(javascript, "../../document_ffi.mjs", "querySelector")
pub fn query_selector(selector: String) -> Result(Element, Nil)
@external(javascript, "../../document_ffi.mjs", "querySelectorAll")
pub fn query_selector_all(selector: String) -> Array(Element)
@external(javascript, "../../document_ffi.mjs", "addEventListener")
pub fn add_event_listener(type_: String, listener: fn(Event(t)) -> Nil) -> Nil
@external(javascript, "../../document_ffi.mjs", "createElement")
pub fn create_element(tag_name: String) -> Element
@external(javascript, "../../document_ffi.mjs", "createTextNode")
pub fn create_text_node(content: String) -> Element
@external(javascript, "../../document_ffi.mjs", "body")
pub fn body() -> Element
@external(javascript, "../../document_ffi.mjs", "getElementById")
pub fn get_element_by_id(id: String) -> Result(Element, Nil)
@external(javascript, "../../document_ffi.mjs", "getElementsByTagName")
pub fn get_elements_by_tag_name(tag_name: String) -> Array(Element)
@external(javascript, "../../document_ffi.mjs", "readyState")
pub fn ready_state() -> String
/// Get the [`hidden`](https://developer.mozilla.org/en-US/docs/Web/API/Document/hidden)
/// attribute value of the current document
@external(javascript, "../../document_ffi.mjs", "hidden")
pub fn hidden() -> Bool
/// Get the [`visibilityState`](https://developer.mozilla.org/en-US/docs/Web/API/Document/visibilityState)
/// attribute value of the current document. It should be either `"visible"` or `"hidden"`.
@external(javascript, "../../document_ffi.mjs", "visibilityState")
pub fn visibility_state() -> String
/// Get the [`title`](https://developer.mozilla.org/en-US/docs/Web/API/Document/title)
/// attribute value of the current document.
@external(javascript, "../../document_ffi.mjs", "title")
pub fn title() -> String
/// Set the [`title`](https://developer.mozilla.org/en-US/docs/Web/API/Document/title)
/// attribute value of the current document.
@external(javascript, "../../document_ffi.mjs", "setTitle")
pub fn set_title(title: String) -> Nil
/// returns the Element that is currently being presented in fullscreen mode in this document.
@external(javascript, "../../document_ffi.mjs", "fullscreenElement")
pub fn fullscreen_element(document: Document) -> Result(Element, Nil)
/// exitFullscreen() requests that the element on this document which is currently being presented in fullscreen mode be taken out of fullscreen mode, restoring the previous state of the screen.
@external(javascript, "../../document_ffi.mjs", "exitFullscreen")
pub fn exit_fullscreen(document: Document) -> Promise(Result(Nil, String))