@nfps.dev/runtime
Version:
Runtime library for NFPs
77 lines • 3.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.idb_write = exports.idb_read = exports.ls_write_b64 = exports.ls_read_b64 = exports.ls_write_json = exports.ls_read_json = exports.ls_write = exports.ls_read = exports.create_html = exports.create_svg = exports.qsa = exports.qs = void 0;
const belt_1 = require("@blake.regalia/belt");
const neutrino_1 = require("@solar-republic/neutrino");
const idb_keyval_1 = require("idb-keyval");
const constants_1 = require("./constants");
/**
* Typed querySelector
* @param dm_node
* @param sq_selector
* @returns
*/
const qs = (dm_node, sq_selector) => dm_node?.querySelector(sq_selector);
exports.qs = qs;
/**
* Typed querySelectorAll
* @param dm_node
* @param sq_selector
* @returns
*/
const qsa = (dm_node, sq_selector) => Array.from(dm_node?.querySelectorAll(sq_selector) || []);
exports.qsa = qsa;
// export const create_element_ns = <
// p_ns extends DocumentNamespace=typeof P_NS_SVG,
// h_set extends DocumentNamespaceMap[p_ns]=A.Cast<SVGElementTagNameMap, DocumentNamespaceMap[p_ns]>,
// si_tag extends Extract<keyof h_set, string>=Extract<keyof h_set, string>,
// >(si_tag: si_tag, p_ns?: p_ns): h_set[si_tag] => document.createElementNS(p_ns || P_NS_SVG, si_tag) as h_set[si_tag];
const creator = (p_ns) => (si_tag, h_attrs, a_children) => {
// const dm_elmt = create_element_ns(si_tag, p_ns);
const dm_elmt = document.createElementNS(p_ns, si_tag);
// set attributes
for (const si_attr in h_attrs || {}) {
// event listener
if ('_' === si_attr[0]) {
const z_arg = h_attrs[si_attr];
dm_elmt.addEventListener(si_attr.slice(1), ...Array.isArray(z_arg) ? z_arg : [h_attrs[si_attr]]);
}
else {
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
dm_elmt.setAttribute(si_attr, h_attrs[si_attr]);
}
}
// add children
dm_elmt.append(...a_children || []);
// return element
return dm_elmt;
};
/* eslint-disable @typescript-eslint/naming-convention */
exports.create_svg = creator(constants_1.P_NS_SVG);
exports.create_html = creator(constants_1.P_NS_HTML);
/* eslint-enable */
/* eslint-disable no-sequences */
const ls_read = (si_key) => localStorage.getItem(si_key);
exports.ls_read = ls_read;
const ls_write = (si_key, s_value) => (localStorage.setItem(si_key, s_value),
s_value);
exports.ls_write = ls_write;
const ls_read_json = (si_key) => (0, neutrino_1.safe_json)((0, exports.ls_read)(si_key) || '');
exports.ls_read_json = ls_read_json;
const ls_write_json = (si_key, w_value) => ((0, exports.ls_write)(si_key, JSON.stringify(w_value)),
w_value);
exports.ls_write_json = ls_write_json;
const ls_read_b64 = (si_key) => {
const s_value = (0, exports.ls_read)(si_key);
return null === s_value ? s_value : (0, belt_1.base64_to_buffer)(s_value);
};
exports.ls_read_b64 = ls_read_b64;
const ls_write_b64 = (si_key, atu8_data) => ((0, exports.ls_write)(si_key, (0, belt_1.buffer_to_base64)(atu8_data)),
atu8_data);
exports.ls_write_b64 = ls_write_b64;
exports.idb_read = idb_keyval_1.get;
const idb_write = async (w_key, w_value) => (await (0, idb_keyval_1.set)(w_key, w_value),
w_value);
exports.idb_write = idb_write;
/* eslint-enable */
//# sourceMappingURL=dom.js.map