]> BookStack Code Mirror - bookstack/blob - resources/assets/js/components/index.js
Added vanilla JS component system
[bookstack] / resources / assets / js / components / index.js
1
2 let componentMapping = {
3     'dropdown': require('./dropdown'),
4 };
5
6 window.components = {};
7
8 let componentNames = Object.keys(componentMapping);
9
10 for (let i = 0, len = componentNames.length; i < len; i++) {
11     let name = componentNames[i];
12     let elems = document.querySelectorAll(`[${name}]`);
13     if (elems.length === 0) continue;
14
15     let component = componentMapping[name];
16     if (typeof window.components[name] === "undefined") window.components[name] = [];
17     for (let j = 0, jLen = elems.length; j < jLen; j++) {
18          let instance = new component(elems[j]);
19          window.components[name].push(instance);
20     }
21 }