Mission Control Dashboard - Initial implementation
This commit is contained in:
25
node_modules/motion-dom/dist/es/projection/node/group.mjs
generated
vendored
Normal file
25
node_modules/motion-dom/dist/es/projection/node/group.mjs
generated
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
const notify = (node) => !node.isLayoutDirty && node.willUpdate(false);
|
||||
function nodeGroup() {
|
||||
const nodes = new Set();
|
||||
const subscriptions = new WeakMap();
|
||||
const dirtyAll = () => nodes.forEach(notify);
|
||||
return {
|
||||
add: (node) => {
|
||||
nodes.add(node);
|
||||
subscriptions.set(node, node.addEventListener("willUpdate", dirtyAll));
|
||||
},
|
||||
remove: (node) => {
|
||||
nodes.delete(node);
|
||||
const unsubscribe = subscriptions.get(node);
|
||||
if (unsubscribe) {
|
||||
unsubscribe();
|
||||
subscriptions.delete(node);
|
||||
}
|
||||
dirtyAll();
|
||||
},
|
||||
dirty: dirtyAll,
|
||||
};
|
||||
}
|
||||
|
||||
export { nodeGroup };
|
||||
//# sourceMappingURL=group.mjs.map
|
||||
Reference in New Issue
Block a user