Packages
plinth
0.2.0
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/element_ffi.mjs
import { Ok, Error } from "./gleam.mjs";
export function getAttribute(element, name) {
let attribute = element.getAttribute(name);
if (attribute) {
return new Ok(attribute);
}
return new Error();
}
export function setAttribute(element, name, value) {
element.setAttribute(name, value);
}
export function setInnerHTML(element, content) {
element.innerHTML = content;
}
export function innerText(element) {
return element.innerText;
}
export function closest(element, selector) {
let ancestor = element.closest(selector);
if (ancestor) {
return new Ok(ancestor);
}
return new Error();
}
export async function requestFullscreen(element) {
try {
await element.requestFullscreen();
return new Ok();
} catch (error) {
return new Error(error.toString());
}
}
export function scrollIntoView(element) {
element.scrollIntoView({ behavior: "smooth", block: "nearest" });
}
export function value(element) {
let value = element.value;
if (value != undefined) {
return new Ok(value);
}
return new Error();
}
export function selectionStart(element) {
let value = element.selectionStart;
if (value != undefined) {
return new Ok(value);
}
return new Error();
}
export function setSelectionRange(element, start, end) {
element.setSelectionRange(start, end);
}
export function focus(element) {
element.focus();
}
export function appendChild(parent, child) {
parent.appendChild(child)
}