Packages
plinth
0.9.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/shadow_ffi.mjs
import { Result$Ok, Result$Error } from "./gleam.mjs";
import { Mode$isOpen } from "./plinth/browser/shadow.mjs"
export function appendChild(root, element) {
root.appendChild(element)
}
export function attachShadow(element, mode) {
const shadowMode = Mode$isOpen(mode) ? "open" : "closed"
return element.attachShadow({ mode: shadowMode })
}
export function shadowRoot(element) {
let shadowRoot = element.shadowRoot;
if (shadowRoot) {
return Result$Ok(shadowRoot);
}
return Result$Error();
}
export function querySelector(shadowRoot, selector) {
let element = shadowRoot.querySelector(selector);
if (element) {
return Result$Ok(element);
}
return Result$Error();
}
export function querySelectorAll(shadowRoot, selector) {
return shadowRoot.querySelectorAll(selector);
}