ui.js (1846B)
1 const UI = { 2 createElement: config => { 3 if (!config) return document.createElement("div"); 4 const elementType = config.element || "div"; 5 const element = document.createElement(elementType); 6 7 Object.keys(config).forEach(property => { 8 const value = config[property]; 9 switch (property.toLowerCase()) { 10 case "id": 11 case "src": 12 case "style": 13 case "placeholder": 14 case "title": 15 element.setAttribute(property, value); 16 return; 17 case "classname": 18 element.setAttribute("class", value); 19 return; 20 case "text": 21 element.innerText = value; 22 return; 23 case "html": 24 element.innerHTML = value; 25 return; 26 case "onclick": 27 element.onclick = value.bind(element); 28 return; 29 case "onchange": 30 element.onchange = value.bind(element); 31 return; 32 case "onkeydown": 33 element.onkeydown = value.bind(element); 34 return; 35 case "type": 36 if (elementType === "input") element.setAttribute("type", value); 37 return; 38 case "children": 39 if (value instanceof Array) { 40 value.forEach(child => 41 element.appendChild( 42 child instanceof Element ? child : UI.createElement(child) 43 ) 44 ); 45 } else { 46 element.appendChild( 47 value instanceof Element ? value : UI.createElement(value) 48 ); 49 } 50 return; 51 case "disabled": 52 if (value) element.setAttribute("disabled", true); 53 return; 54 } 55 }); 56 return element; 57 }, 58 getElement: id => { 59 return document.getElementById(id); 60 }, 61 getRoot: () => { 62 return document.getElementsByTagName("body")[0]; 63 } 64 };