|
1 | | -import {isFalse, isText} from '../shared/nodes'; |
2 | | -import {anchorableElement} from './anchorableNode'; |
| 1 | +import { isFalse, isText } from '../shared/nodes'; |
| 2 | +import { anchorableElement } from './anchorableNode'; |
3 | 3 |
|
4 | 4 | export default function render(node, options) { |
5 | 5 |
|
6 | | - if(isFalse(node) || node.type === 'head') { |
| 6 | + if (isFalse(node) || node.type === 'head') { |
7 | 7 | return document.createComment(""); |
8 | 8 | } |
9 | 9 |
|
10 | | - if(isText(node)) { |
| 10 | + if (isText(node)) { |
11 | 11 | return document.createTextNode(node); |
12 | 12 | } |
13 | 13 |
|
14 | 14 | const svg = (options && options.svg) || node.type === 'svg'; |
15 | 15 |
|
16 | 16 | let element; |
17 | | - if(svg) { |
| 17 | + if (svg) { |
18 | 18 | element = document.createElementNS("http://www.w3.org/2000/svg", node.type); |
19 | 19 | } else { |
20 | 20 | element = document.createElement(node.type); |
21 | 21 | } |
22 | 22 |
|
23 | | - if(node.instance) { |
| 23 | + if (node.instance) { |
24 | 24 | node.instance._self.element = element; |
25 | 25 | } |
26 | 26 |
|
27 | | - for(let name in node.attributes) { |
28 | | - if(name === 'html') { |
| 27 | + for (let name in node.attributes) { |
| 28 | + if (name === 'html') { |
29 | 29 | element.innerHTML = node.attributes[name]; |
30 | 30 | anchorableElement(element); |
31 | | - } else if(name.startsWith('on')) { |
| 31 | + } else if (name.startsWith('on')) { |
32 | 32 | const eventName = name.replace('on', ''); |
33 | 33 | const key = '_event.' + eventName; |
34 | 34 | node[key] = (event) => { |
35 | | - if(node.attributes.default !== true) { |
| 35 | + if (node.attributes.default !== true) { |
36 | 36 | event.preventDefault(); |
37 | 37 | } |
38 | | - node.attributes[name]({...node.attributes, event}); |
| 38 | + node.attributes[name]({ ...node.attributes, event }); |
39 | 39 | }; |
40 | 40 | element.addEventListener(eventName, node[key]); |
41 | 41 | } else { |
42 | | - const type = typeof(node.attributes[name]); |
43 | | - if(type !== 'object' && type !== 'function') { |
44 | | - if(name != 'value' && node.attributes[name] === true) { |
| 42 | + const type = typeof (node.attributes[name]); |
| 43 | + if (type !== 'object' && type !== 'function') { |
| 44 | + if (name != 'value' && node.attributes[name] === true) { |
45 | 45 | element.setAttribute(name, ''); |
46 | | - } else if(name == 'value' || (node.attributes[name] !== false && node.attributes[name] !== null && node.attributes[name] !== undefined)) { |
| 46 | + } else if (name == 'value' || (node.attributes[name] !== false && node.attributes[name] !== null && node.attributes[name] !== undefined)) { |
47 | 47 | element.setAttribute(name, node.attributes[name]); |
48 | 48 | } |
49 | 49 | } |
50 | 50 | } |
51 | 51 | } |
52 | 52 |
|
53 | | - if(!node.attributes.html) { |
54 | | - for(let i = 0; i < node.children.length; i++) { |
55 | | - const child = render(node.children[i], {svg}); |
| 53 | + if (!node.attributes.html) { |
| 54 | + for (let i = 0; i < node.children.length; i++) { |
| 55 | + const child = render(node.children[i], { svg }); |
56 | 56 | element.appendChild(child); |
57 | 57 | } |
58 | | - |
59 | | - if(node.type == 'select') { |
| 58 | + |
| 59 | + if (node.type == 'select') { |
60 | 60 | element.value = node.attributes.value; |
61 | 61 | } |
62 | 62 | } |
|
0 commit comments