UNPKG

campfire.js

Version:
58 lines (57 loc) 2.27 kB
import type { ElementPosition } from "../types.ts"; import { CfDom } from "./config.ts"; export { CfDom }; /** * Inserts an element into the DOM given a reference element and the relative position * of the new element. * * * if `where` looks like `{ after: reference }`, the element is inserted into `reference`'s * parent, after `reference`. * * if `where` looks like `{ before: reference }`, the element is inserted into `reference`'s * parent, before `reference`. * * if `where` looks like `{ into: reference, at: 'start' }`, the element is inserted into * `reference`, before its first child. * * if `where` looks like `{ into: reference }`, the element is inserted into `reference`, * after its last child. * @param els The element(s) to insert. * @param where An object specifying where to insert `elem` relative to another element. * @throws an Error when there are no valid keys ('into', 'after', or 'before') present in `where`. * @returns the element that was inserted, so you can do `const a = insert(nu(), _)`. */ export declare const insert: (els: Element | Element[], where: ElementPosition) => Element | Element[]; /** * Fires a callback when the DOMContentLoaded event fires. * @param cb The callback to run. * @returns void */ export declare const onload: (cb: (ev: Event) => void) => void; export type SelectParams = { /** The selector to query for. */ s: string; /** The parent node to query. Defaults to `document`. */ from?: ParentNode; /** Whether to return all elements matching the given selector or just the first. */ all?: true; }; /** * Queries the DOM for a particular selector, and returns the first element matching it. * @param opts See SelectParams. * @returns Element(s) matching the given selector, or an empty list. */ export declare function select(params: SelectParams & { single: true; }): HTMLElement | null; export declare function select(params: SelectParams & { single?: false; }): HTMLElement[]; /** * Removes `elt` from the DOM. * @param elt The element to remove. * @returns void */ export declare const rm: (elt: Element) => void; /** * Empties a DOM element of its content. * @param elt The element to empty. */ export declare const empty: (elt: Element) => void;