@ibyar/elements 0.4.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ast/dom.d.ts +38 -38
- package/ast/dom.js +46 -32
- package/ast/dom.js.map +1 -1
- package/ast/factory.d.ts +8 -8
- package/ast/factory.js +40 -22
- package/ast/factory.js.map +1 -1
- package/attributes/attributes.d.ts +1 -0
- package/attributes/attributes.js +6 -0
- package/attributes/attributes.js.map +1 -1
- package/directives/register-directive.d.ts +37 -0
- package/directives/register-directive.js +97 -0
- package/directives/register-directive.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/node/html-parser.d.ts +9 -6
- package/node/html-parser.js +111 -32
- package/node/html-parser.js.map +1 -1
- package/package.json +3 -3
- package/template/template-parser.d.ts +4 -4
- package/template/template-parser.js +5 -5
- package/template/template-parser.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-parser.js","sourceRoot":"","sources":["../../../src/elements/template/template-parser.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"template-parser.js","sourceRoot":"","sources":["../../../src/elements/template/template-parser.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tDomChild, DomNode, CommentNode,\n\tDomElementNode, DomFragmentNode,\n\tparseTextChild, TextContent\n} from '../ast/dom.js';\n\nimport { NodeFactory } from '../ast/factory.js';\n\n\nexport class TemplateParser {\n\n\tparse(template: HTMLTemplateElement): DomNode {\n\t\tif (template.content.childNodes.length == 0) {\n\t\t\treturn new DomFragmentNode([new TextContent('')]);\n\t\t} else if (template.content.childNodes.length === 1) {\n\t\t\tlet node = this.createComponent(template.content.firstChild as ChildNode);\n\t\t\tif (Array.isArray(node)) {\n\t\t\t\treturn new DomFragmentNode(node);\n\t\t\t} else {\n\t\t\t\treturn node;\n\t\t\t}\n\t\t} else /* if (template.content.childNodes.length > 1)*/ {\n\t\t\tconst children = Array.prototype.slice.call(template.content.childNodes)\n\t\t\t\t.map(item => this.createComponent(item))\n\t\t\t\t.flatMap(function (toFlat): DomChild[] {\n\t\t\t\t\tif (Array.isArray(toFlat)) {\n\t\t\t\t\t\treturn toFlat;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn [toFlat];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\treturn new DomFragmentNode(children);\n\t\t}\n\t}\n\n\tcreateComponent(child: ChildNode) {\n\t\tif (child instanceof Text) {\n\t\t\treturn parseTextChild(child.textContent || '');\n\t\t} else if (child instanceof Comment) {\n\t\t\treturn new CommentNode(child.textContent || '');\n\t\t} else {\n\t\t\t/**\n\t\t\t * can't detect directives in template, as '*' not allowed as qualified attribute name\n\t\t\t * also all attributes names will be 'lower case'\n\t\t\t */\n\t\t\tconst element: HTMLElement = child as HTMLElement;\n\t\t\tconst node = new DomElementNode(element.tagName.toLowerCase(), element.attributes.getNamedItem('is')?.value);\n\t\t\tfor (let i = 0; i < element.attributes.length; i++) {\n\t\t\t\tconst attr = element.attributes.item(i) as Attr;\n\t\t\t\tNodeFactory.handelAttribute(node, attr.name, attr.value);\n\t\t\t}\n\t\t\tconst children = Array.prototype.slice.call(element.childNodes)\n\t\t\t\t.map(item => this.createComponent(item));\n\t\t\tchildren.forEach(child => {\n\t\t\t\tif (Array.isArray(child)) {\n\t\t\t\t\tchild.forEach(text => node.addChild(text));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tnode.addChild(child);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn node;\n\t\t}\n\t}\n\n\ttoDomRenderRootNode<T>(template: DomNode | HTMLTemplateElement | string) {\n\t\tif (typeof template === 'string') {\n\t\t\tlet temp = document.createElement('template');\n\t\t\ttemp.innerHTML = template;\n\t\t\ttemplate = temp;\n\t\t} else if (template instanceof HTMLTemplateElement) {\n\t\t\ttemplate = this.parse(template);\n\t\t}\n\t\treturn ((model: T) => template);\n\t}\n}\n\nexport const templateParser = new TemplateParser();\n\n"]}
|