Packages
plinth
0.8.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 { Result$Ok, Result$Error } from "./gleam.mjs";
export function cast(raw) {
if (raw instanceof Element) {
return Result$Ok(raw);
} else {
return Result$Error();
}
}
export function getAttribute(element, name) {
let attribute = element.getAttribute(name);
if (attribute) {
return Result$Ok(attribute);
}
return Result$Error();
}
export function setAttribute(element, name, value) {
element.setAttribute(name, value);
}
export function addEventListener(element, type, listener) {
return element.addEventListener(type, listener);
}
export function setInnerHTML(element, content) {
element.innerHTML = content;
}
export function innerText(element) {
return element.innerText;
}
export function setInnerText(element, content) {
element.innerText = content;
}
export function insertAdjacentElement(target, position, element) {
try {
return Result$Ok(target.insertAdjacentElement(position, element));
} catch (error) {
return Result$Error(`${error}`);
}
}
export function insertAdjacentHTML(target, position, element) {
try {
return Result$Ok(target.insertAdjacentHTML(position, element));
} catch (error) {
return Result$Error(`${error}`);
}
}
export function insertAdjacentText(target, position, element) {
try {
return Result$Ok(target.insertAdjacentText(position, element));
} catch (error) {
return Result$Error(`${error}`);
}
}
export function nextElementSibling(element) {
let sibling = element.nextElementSibling;
if (sibling) {
return Result$Ok(sibling);
}
return Result$Error();
}
export function closest(element, selector) {
let ancestor = element.closest(selector);
if (ancestor) {
return Result$Ok(ancestor);
}
return Result$Error();
}
export async function requestFullscreen(element) {
try {
await element.requestFullscreen();
return Result$Ok();
} catch (error) {
return Result$Error(error.toString());
}
}
export function scrollIntoView(element) {
element.scrollIntoView({ behavior: "smooth", block: "nearest" });
}
export function scrollHeight(element) {
return element.scrollHeight;
}
export function scrollLeft(element) {
return element.scrollLeft;
}
export function scrollTop(element) {
return element.scrollTop;
}
export function scrollWidth(element) {
return element.scrollWidth;
}
export function setScrollHeight(element, value) {
element.scrollHeight = value;
}
export function setScrollLeft(element, value) {
element.scrollLeft = value;
}
export function setScrollTop(element, value) {
element.scrollTop = value;
}
export function setScrollWidth(element, value) {
element.scrollWidth = value;
}
export function value(element) {
let value = element.value;
if (value != undefined) {
return Result$Ok(value);
}
return Result$Error();
}
export function setValue(element, value) {
element.value = value;
}
export function selectionStart(element) {
let value = element.selectionStart;
if (value != undefined) {
return Result$Ok(value);
}
return Result$Error();
}
export function setSelectionRange(element, start, end) {
element.setSelectionRange(start, end);
}
export function focus(element) {
element.focus();
}
export function blur(element) {
element.blur();
}
export function appendChild(parent, child) {
parent.appendChild(child);
}
export function remove(element) {
element.remove();
}
export function datasetGet(el, key) {
if (key in el.dataset) {
return Result$Ok(el.dataset[key]);
}
return Result$Error(undefined);
}
export function getChecked(el) {
return el.checked;
}
export function setTextContent(element, text) {
element.textContent = text;
}
export function contains(element, other) {
return element.contains(other);
}
export function classList(element) {
return element.classList;
}