MCPcopy Create free account
hub / github.com/WebReflection/wicked-elements / define

Function define

esm/index.js:62–94  ·  view source on GitHub ↗
(selector, definition)

Source from the content-addressed store, hash-verified

60export const get = selector => (config[selector] || attributes).o;
61
62export const define = (selector, definition) => {
63 if (-1 < query.indexOf(selector))
64 throw new Error('duplicated: ' + selector);
65 flush();
66 const listeners = [];
67 const retype = create(null);
68 for (let k = keys(definition), i = 0, {length} = k; i < length; i++) {
69 const key = k[i];
70 if (/^on/.test(key) && !/Options$/.test(key)) {
71 const options = definition[key + 'Options'] || false;
72 const lower = key.toLowerCase();
73 let type = lower.slice(2);
74 listeners.push({t: type, o: options});
75 retype[type] = key;
76 if (lower !== key) {
77 type = key.slice(2, 3).toLowerCase() + key.slice(3);
78 retype[type] = key;
79 listeners.push({t: type, o: options});
80 }
81 }
82 }
83 if (listeners.length) {
84 definition.handleEvent = function (event) {
85 this[retype[event.type]](event);
86 };
87 }
88 query.push(selector);
89 config[selector] = {m: new WeakMap, l: listeners, o: definition};
90 parse(document.querySelectorAll(selector));
91 whenDefined(selector);
92 if (!lazy.has(selector))
93 defined[selector]._();
94};
95
96export const defineAsync = (selector, callback, _) => {
97 lazy.add(selector);

Callers 1

defineAsyncFunction · 0.70

Calls 3

flushFunction · 0.85
parseFunction · 0.85
whenDefinedFunction · 0.70

Tested by

no test coverage detected