@epa-wg/custom-element-dist 0.0.31 → 0.0.32
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/.idea/inspectionProfiles/Project_Default.xml +2 -1
- package/README.md +4 -4
- package/coverage/coverage-final.json +6 -6
- package/coverage/index.html +27 -27
- package/coverage/src/custom-element/coverage.svg +1 -1
- package/coverage/src/custom-element/custom-element.js/coverage.svg +1 -1
- package/coverage/src/custom-element/custom-element.js.html +476 -380
- package/coverage/src/custom-element/http-request.js.html +10 -10
- package/coverage/src/custom-element/index.html +18 -18
- package/coverage/src/custom-element/local-storage.js.html +1 -1
- package/coverage/src/custom-element/location-element.js.html +1 -1
- package/coverage/src/custom-element/module-url.js.html +1 -1
- package/coverage/src/index.html +1 -1
- package/coverage/src/mocks/handlers.ts.html +1 -1
- package/coverage/src/mocks/index.html +1 -1
- package/coverage/src/stories/attributes.test.stories.ts/coverage.svg +1 -1
- package/coverage/src/stories/attributes.test.stories.ts.html +313 -13
- package/coverage/src/stories/coverage.svg +1 -1
- package/coverage/src/stories/css.test.stories.ts.html +1 -1
- package/coverage/src/stories/dom-merge.test.stories.ts.html +1 -1
- package/coverage/src/stories/external-template.test.stories.ts.html +2 -2
- package/coverage/src/stories/form.test.stories.ts.html +1 -1
- package/coverage/src/stories/http-request.stories.ts.html +1 -1
- package/coverage/src/stories/index.html +15 -15
- package/coverage/src/stories/local-storage.test.stories.ts.html +1 -1
- package/coverage/src/stories/location-element.test.stories.ts.html +1 -1
- package/coverage/src/stories/module-url.test.stories.ts.html +1 -1
- package/coverage/src/stories/set-url.test.stories.ts.html +1 -1
- package/coverage/src/stories/slice-events.test.stories.ts.html +1 -1
- package/coverage/src/stories/slots.test.stories.ts.html +1 -1
- package/coverage/src/stories/testStoryBook.ts.html +8 -8
- package/coverage/src/stories/version-select.test.stories.ts.html +3 -3
- package/coverage/src/sum.ts.html +1 -1
- package/dist/custom-element-D2wf_rqP.js +576 -0
- package/dist/custom-element-Dtzhbjkc.cjs +97 -0
- package/dist/custom-element-bundle.cjs +1 -1
- package/dist/custom-element-bundle.js +30 -28
- package/dist/demo/a.html +51 -38
- package/dist/demo/data-slices.html +2 -2
- package/dist/demo/external-template.html +1 -0
- package/dist/demo/form.html +42 -0
- package/dist/demo/hex-grid-dce.html +1 -1
- package/dist/demo/hex-grid.html +1 -1
- package/dist/demo/parameters.html +20 -1
- package/dist/demo/s.xml +6 -12
- package/dist/demo/s.xslt +64 -15
- package/dist/demo/ss.html +4 -23
- package/package.json +2 -2
- package/public/demo/a.html +51 -38
- package/public/demo/data-slices.html +2 -2
- package/public/demo/external-template.html +1 -0
- package/public/demo/form.html +42 -0
- package/public/demo/hex-grid-dce.html +1 -1
- package/public/demo/hex-grid.html +1 -1
- package/public/demo/parameters.html +20 -1
- package/public/demo/s.xml +6 -12
- package/public/demo/s.xslt +64 -15
- package/public/demo/ss.html +4 -23
- package/src/custom-element/custom-element.js +72 -40
- package/src/custom-element/demo/a.html +51 -38
- package/src/custom-element/demo/data-slices.html +2 -2
- package/src/custom-element/demo/external-template.html +1 -0
- package/src/custom-element/demo/form.html +42 -0
- package/src/custom-element/demo/hex-grid-dce.html +1 -1
- package/src/custom-element/demo/hex-grid.html +1 -1
- package/src/custom-element/demo/parameters.html +20 -1
- package/src/custom-element/demo/s.xml +6 -12
- package/src/custom-element/demo/s.xslt +64 -15
- package/src/custom-element/demo/ss.html +4 -23
- package/src/custom-element/ide/web-types-dce.json +1 -1
- package/src/custom-element/ide/web-types-xsl.json +1 -1
- package/src/material/components/dropdown.html +21 -4
- package/src/material/components/input.html +363 -0
- package/src/mocks/versions.mock.ts +1 -1
- package/src/stories/attributes.test.stories.ts +103 -3
- package/src/stories/external-template.test.stories.ts +1 -1
- package/storybook-static/assets/{Color-F6OSRLHC-CFyd3TND.js → Color-F6OSRLHC-BU3iy8jH.js} +1 -1
- package/storybook-static/assets/{Configure-UGTbPRKK.js → Configure-DN6ifayP.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-CFRXHY34-Dpr5iB0o.js → DocsRenderer-CFRXHY34-BaVEufDj.js} +2 -2
- package/storybook-static/assets/attributes.test.stories-D1X6EBrd.js +278 -0
- package/storybook-static/assets/{css.test.stories-Cgn6ICr0.js → css.test.stories-Cp_g2hE1.js} +1 -1
- package/storybook-static/assets/custom-element-uuAtIYWS.js +97 -0
- package/storybook-static/assets/{dom-merge.test.stories-CBObfPWg.js → dom-merge.test.stories-hbpdCka0.js} +1 -1
- package/storybook-static/assets/{external-template.test.stories-VfKUQ8eu.js → external-template.test.stories-BK89h6sk.js} +3 -3
- package/storybook-static/assets/{form.test.stories-CnuGN7Zw.js → form.test.stories-BfoLe_rw.js} +1 -1
- package/storybook-static/assets/{handlers-V_T7WjNK.js → handlers-yVPwH_Nz.js} +1 -1
- package/storybook-static/assets/{http-request.stories-8NN1Coqm.js → http-request.stories-CBFJS2Ws.js} +1 -1
- package/storybook-static/assets/{iframe-DnhkgdtG.js → iframe-CJEL_4Nu.js} +2 -2
- package/storybook-static/assets/{index-CIBI7sCB.js → index-D5fBh-7N.js} +1 -1
- package/storybook-static/assets/{index-DN1RoK17.js → index-DM-KBPdl.js} +1 -1
- package/storybook-static/assets/{index-DjJD7gkO.js → index-RSFf30w1.js} +1 -1
- package/storybook-static/assets/{index-3Sfy-t3H.js → index-SnjB5uV8.js} +4 -4
- package/storybook-static/assets/{local-storage.test.stories-Dk5Yqc7m.js → local-storage.test.stories-C0Yzy6Am.js} +1 -1
- package/storybook-static/assets/{location-element.test.stories-56um6s5L.js → location-element.test.stories-DNFrEu5A.js} +1 -1
- package/storybook-static/assets/{module-url.test.stories-DEponQ7l.js → module-url.test.stories-CXibF5Ta.js} +1 -1
- package/storybook-static/assets/{preview-vbpHsp94.js → preview-Bnd0XhaF.js} +1 -1
- package/storybook-static/assets/{preview-Czc-sw5H.js → preview-DJMlNTk8.js} +2 -2
- package/storybook-static/assets/{set-url.test.stories-B4E6hIe-.js → set-url.test.stories-BBfLxv2u.js} +1 -1
- package/storybook-static/assets/{slice-events.test.stories-BR0F-B6I.js → slice-events.test.stories-HcXF8XQI.js} +1 -1
- package/storybook-static/assets/{slots.test.stories-CgfJIyCr.js → slots.test.stories-i6mnIFM2.js} +1 -1
- package/storybook-static/assets/{version-select.test.stories-nmxATIwv.js → version-select.test.stories-BsUFH6Va.js} +1 -1
- package/storybook-static/demo/a.html +51 -38
- package/storybook-static/demo/data-slices.html +2 -2
- package/storybook-static/demo/external-template.html +1 -0
- package/storybook-static/demo/form.html +42 -0
- package/storybook-static/demo/hex-grid-dce.html +1 -1
- package/storybook-static/demo/hex-grid.html +1 -1
- package/storybook-static/demo/parameters.html +20 -1
- package/storybook-static/demo/s.xml +6 -12
- package/storybook-static/demo/s.xslt +64 -15
- package/storybook-static/demo/ss.html +4 -23
- package/storybook-static/iframe.html +1 -1
- package/storybook-static/index.json +1 -1
- package/storybook-static/project.json +1 -1
- package/dist/custom-element-BbJMY20-.cjs +0 -97
- package/dist/custom-element-CoRNKeEP.js +0 -567
- package/storybook-static/assets/attributes.test.stories-DSOLHHOW.js +0 -152
- package/storybook-static/assets/custom-element-D59Fok1f.js +0 -97
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
"use strict";const Y="http://www.w3.org/1999/XSL/Transform",H="http://www.w3.org/1999/xhtml",Ne="http://exslt.org/common",f=(e,l)=>e.getAttribute?.(l),te=e=>e.nodeType===3,Ae=e=>typeof e=="string",Te=e=>e&&typeof e.nodeType=="number",$=(e,l)=>(e.ownerDocument||e).createTextNode(l),ne=e=>{for(;e.firstChild;)e.firstChild.remove();return e},V=e=>(e.getAttributeNames().map(l=>e.removeAttribute(l)),ne(e)),ae=e=>(e?.setAttribute("xmlns:xsl",Y),e),ie=e=>(e?.setAttribute("xmlns:xhtml",H),ae(e)),oe=e=>/^[_a-zA-Z][-_:a-zA-Z0-9]*$/.test(e),w=(e,l="",t=document)=>{const s=i=>(r=>(l&&r.append($(t.ownerDocument||t,l)),r))((t.ownerDocument||t).createElement(i));if(oe(e))return s(e);const n=s("dce-object");return n.setAttribute("dce-object-name",e),n},se=(e,l)=>{const t=e.ownerDocument.createElementNS(e.namespaceURI,l);for(let s of e.attributes)t.setAttribute(s.name,s.value);for(;e.firstChild;)t.append(e.firstChild);return t};function j(e){return new DOMParser().parseFromString(e,"application/xml")}function P(e){return new XMLSerializer().serializeToString(e)}function k(e,l,t,s){const n=x=>e.ownerDocument.createElement(x),r=((x,p,N)=>(p.append(N=n(x)),N))(l,e);return[...t].forEach(x=>r.append(s(x))),r}function we(e){return e.slot||(e.setAttribute||(e=w("span",e.textContent.replaceAll(`
|
|
2
|
-
`,""))),e.setAttribute("slot","")),e}function le(e,l){e.getAttributeNames().forEach(t=>l.includes(t)||e.removeAttribute(t))}const G=e=>[...e].filter(l=>!(l.nodeType===3&&l.data.trim()===""));function z(e,l,t){const s=typeof e;if(s==="string")return w(l,e,t);if(s==="number")return w(l,""+e,t);if(e instanceof Array){const i=w("array","",t);return e.map(r=>i.append(z(r,l,t))),i}if(e instanceof FormData){const i=w("form-data","",t);for(const r of e)i.append(z(r[1],r[0],t));return i}const n=w(l,"",t);for(let i in e)Te(e[i])||typeof e[i]=="function"||e[i]instanceof Window||(typeof e[i]!="object"&&oe(i)?n.setAttribute(i,e[i]):n.append(z(e[i],i,t)));return n}function Z(e){if(L(e,"*",l=>[...l.childNodes].filter(t=>t.nodeType===3&&t.parentNode.localName!=="style"&&t.data).forEach(t=>{const s=t.data,n=s.matchAll(/{([^}]*)}/g);if(n){let i=0,r=p=>$(t,p),x=[];if([...n].forEach(p=>{p.index>i&&x.push(r(p.input.substring(i,p.index)));const N=e.querySelector("value-of").cloneNode();N.setAttribute("select",p[1]),x.push(N),i=p.index+p[0].length}),i<s.length&&x.push(r(s.substring(i,s.length))),x.length){for(let p of x)l.insertBefore(p,t);l.removeChild(t)}}})),"all"in e){let l=1;for(let t of e.all)t.setAttribute&&!t.tagName.startsWith("xsl:")&&t.setAttribute("data-dce-id",""+l++)}return e}function re(e,l="xsl:stylesheet"){if(e.tagName===l||e.documentElement?.tagName===l)return Z(e);const t=j(`<xsl:stylesheet version="1.0" xmlns:xsl="${Y}" xmlns:xhtml="${H}" xmlns:exsl="${Ne}" exclude-result-prefixes="exsl" >
|
|
3
|
-
<xsl:output method="xml"/>
|
|
4
|
-
<xsl:template match="/"><dce-root xmlns="${H}"><xsl:apply-templates select="*" /></dce-root></xsl:template>
|
|
5
|
-
<xsl:template match="*[name()='template']">
|
|
6
|
-
<xsl:apply-templates mode="sanitize" select="*|text()"/>
|
|
7
|
-
</xsl:template>
|
|
8
|
-
<xsl:template match="*">
|
|
9
|
-
<xsl:apply-templates mode="sanitize" select="*|text()"/>
|
|
10
|
-
</xsl:template>
|
|
11
|
-
<xsl:template match="*[name()='svg']|*[name()='math']">
|
|
12
|
-
<xsl:apply-templates mode="sanitize" select="."/>
|
|
13
|
-
</xsl:template>
|
|
14
|
-
<xsl:template mode="sanitize" match="*[count(text())=1 and count(*)=0]">
|
|
15
|
-
<xsl:copy>
|
|
16
|
-
<xsl:apply-templates mode="sanitize" select="@*"/>
|
|
17
|
-
<xsl:value-of select="text()"></xsl:value-of>
|
|
18
|
-
</xsl:copy>
|
|
19
|
-
</xsl:template>
|
|
20
|
-
<xsl:template mode="sanitize" match="xhtml:*[count(text())=1 and count(*)=0]">
|
|
21
|
-
<xsl:element name="{local-name()}">
|
|
22
|
-
<xsl:apply-templates mode="sanitize" select="@*"/>
|
|
23
|
-
<xsl:value-of select="text()"></xsl:value-of>
|
|
24
|
-
</xsl:element>
|
|
25
|
-
</xsl:template>
|
|
26
|
-
<xsl:template mode="sanitize" match="*|@*">
|
|
27
|
-
<xsl:copy>
|
|
28
|
-
<xsl:apply-templates mode="sanitize" select="*|@*|text()"/>
|
|
29
|
-
</xsl:copy>
|
|
30
|
-
</xsl:template>
|
|
31
|
-
<xsl:template mode="sanitize" match="text()[normalize-space(.) = '']"/>
|
|
32
|
-
<xsl:template mode="sanitize" match="text()">
|
|
33
|
-
<dce-text>
|
|
34
|
-
<xsl:copy/>
|
|
35
|
-
</dce-text>
|
|
36
|
-
</xsl:template>
|
|
37
|
-
<xsl:template mode="sanitize" match="xsl:value-of|*[name()='slot']">
|
|
38
|
-
<xsl:copy>
|
|
39
|
-
<xsl:apply-templates mode="sanitize" select="*|@*|text()"/>
|
|
40
|
-
</xsl:copy>
|
|
41
|
-
</xsl:template>
|
|
42
|
-
<xsl:template mode="sanitize" match="xhtml:*">
|
|
43
|
-
<xsl:element name="{local-name()}">
|
|
44
|
-
<xsl:apply-templates mode="sanitize" select="*|@*|text()"/>
|
|
45
|
-
</xsl:element>
|
|
46
|
-
</xsl:template>
|
|
47
|
-
<xsl:template mode="sanitize" match="xhtml:input">
|
|
48
|
-
<xsl:element name="{local-name()}">
|
|
49
|
-
<xsl:apply-templates mode="sanitize" select="*|@*|text()"/>
|
|
50
|
-
</xsl:element>
|
|
51
|
-
<xsl:for-each select="*">
|
|
52
|
-
<xsl:copy>
|
|
53
|
-
<xsl:attribute name="for" >^</xsl:attribute>
|
|
54
|
-
<xsl:apply-templates mode="sanitize" select="*|@*|text()"/>
|
|
55
|
-
</xsl:copy>
|
|
56
|
-
</xsl:for-each>
|
|
57
|
-
</xsl:template>
|
|
58
|
-
</xsl:stylesheet>`),s=new XSLTProcessor,n=(a=>{L(a,"custom-element",y=>{y.firstElementChild.localName==="template"&&([...y.firstElementChild.content.childNodes].forEach(b=>y.append(b)),y.firstElementChild.remove())}),L(a,"script",y=>y.remove());const c=a.content??a.firstElementChild?.content??a.body??a;ye.forEach(y=>L(c,y,b=>be(b,c)));const A=a.firstElementChild?.content||a.content,E=y=>{const b=j("<xhtml/>"),I=b.importNode(y,!0);return b.replaceChild(I,b.documentElement),ie(I)};if(A){const y=w("div");return[...A.childNodes].map(b=>y.append(b.cloneNode(!0))),E(y)}return E(a.documentElement||a.body||a)})(e),i=j(`<xsl:stylesheet version="1.0"
|
|
59
|
-
xmlns:xsl="${Y}"
|
|
60
|
-
xmlns:xhtml="${H}"
|
|
61
|
-
xmlns:dce="urn:schemas-epa-wg:dce"
|
|
62
|
-
xmlns:exsl="http://exslt.org/common"
|
|
63
|
-
exclude-result-prefixes="exsl"
|
|
64
|
-
>
|
|
65
|
-
<xsl:template match="ignore">
|
|
66
|
-
<xsl:choose>
|
|
67
|
-
<xsl:when test="//attr">{//attr}</xsl:when>
|
|
68
|
-
<xsl:otherwise>{def}</xsl:otherwise>
|
|
69
|
-
</xsl:choose><xsl:value-of select="."></xsl:value-of></xsl:template>
|
|
70
|
-
<xsl:template mode="payload" match="attributes"></xsl:template>
|
|
71
|
-
<xsl:template match="/">
|
|
72
|
-
<xsl:apply-templates mode="payload" select="/datadom/attributes"/>
|
|
73
|
-
</xsl:template>
|
|
74
|
-
<xsl:template name="slot" >
|
|
75
|
-
<xsl:param name="slotname" />
|
|
76
|
-
<xsl:param name="defaultvalue" />
|
|
77
|
-
<xsl:choose>
|
|
78
|
-
<xsl:when test="//payload/*[@slot=$slotname]">
|
|
79
|
-
<xsl:copy-of select="//payload/*[@slot=$slotname]"/>
|
|
80
|
-
</xsl:when>
|
|
81
|
-
<xsl:otherwise>
|
|
82
|
-
<xsl:copy-of select="$defaultvalue"/>
|
|
83
|
-
</xsl:otherwise>
|
|
84
|
-
</xsl:choose>
|
|
85
|
-
</xsl:template>
|
|
86
|
-
<xsl:variable name="js-injected-body">
|
|
87
|
-
<xsl:call-template name="slot" >
|
|
88
|
-
<xsl:with-param name="slotname" select="''"/>
|
|
89
|
-
<xsl:with-param name="defaultvalue"/>
|
|
90
|
-
</xsl:call-template>
|
|
91
|
-
</xsl:variable>
|
|
92
|
-
</xsl:stylesheet>`);s.importStylesheet(t);const r=s.transformToFragment(n,document),x=(a,c)=>a.querySelector(c),p=x(i,'template[mode="payload"]');if(!r)return console.error("transformation error",{xml:n.outerHTML,xsl:P(t)});if(r.firstElementChild.localName!=="dce-root"){const a=r.ownerDocument.createElement("dce-root");[...r.childNodes].forEach(c=>a.append(c)),r.append(a)}const N=[];[...r.querySelectorAll("dce-root>attribute")].forEach(a=>{le(a,"namespace,name,select");const c=se(a,"xsl:param"),A=f(a,"name");p.append(c),le(c,"select,name");let E=f(c,"select")?.split("??");E||(E=["//"+A,`'${c.textContent}'`],V(c),c.setAttribute("name",A));let y;if(E?.length>1){c.removeAttribute("select");const b=x(i,'template[match="ignore"]>choose').cloneNode(!0);V(b.firstElementChild).append($(b,"{"+E[0]+"}")),V(b.lastElementChild).append($(b,"{"+E[1]+"}")),b.firstElementChild.setAttribute("test",E[0]),c.append(b),y=b.cloneNode(!0)}else y=se(a,"xsl:value-of");y.removeAttribute("name"),a.append(y),a.removeAttribute("select"),N.push(c)}),[...r.querySelectorAll("[value]")].filter(a=>a.getAttribute("value").match(/\{(.*)\?\?(.*)\}/g)).forEach(a=>{const c=f(a,"value");c&&a.setAttribute("value",xe(c))});for(const a of r.childNodes)p.append(i.importNode(a,!0));[...p.getElementsByTagName("xsl:template")].forEach(a=>p.ownerDocument.documentElement.append(a));const C=x(i,'call-template[name="slot"]'),u=a=>{const c=C.cloneNode(!0),A=f(a,"name");A&&c.firstElementChild.setAttribute("select",`'${A}'`);for(let E of a.childNodes)c.lastElementChild.append(E);return c};L(p,"slot",a=>a.parentNode.replaceChild(u(a),a));const m=Z(i);return m.params=N,m}async function ce(e){return await new Promise((t,s)=>{const n=new XMLHttpRequest;n.open("GET",e),n.responseType="document",n.onload=()=>{n.readyState===n.DONE&&n.status===200?t(n.responseXML?.body||n.responseXML||w("div",n.responseText)):s(`${n.statusText} - ${e}`)},n.addEventListener("error",i=>s(i)),n.send()})}function me(e,l,t=!1){if(e===l)return!0;if(typeof e!="object"||e===null||typeof l!="object"||l===null||Object.keys(e).length!==Object.keys(l).length)return t;for(let s in e)if(!(s in l)||!me(e[s],l[s]))return t;return!0}const ue=e=>e.split("|").map(l=>l.trim()).filter(l=>l),de=(e,l)=>ue(l).map(t=>{let s=e.ownerDocument,n=i=>(e.append(i),i);if(t.includes("/")){const i=[],r=s.evaluate(t,e);for(let x;x=r.iterateNext();)i.push(x);return i}return[...e.childNodes].find(i=>i.localName===t)||n(w(t,"",s))}).flat();function J(e,l,t,s){if(!t.sliceProcessed)return t.sliceProcessed=1,de(e,l??"").map(n=>{const i=e.ownerDocument,r=t.sliceEventSource,x=t.sliceElement,p=()=>[...n.childNodes].filter(d=>d.nodeType===3||d.localName==="value"||d.localName==="form-data").map(d=>d.remove());r.getAttributeNames().map(d=>n.setAttribute(d,f(r,d))),[...n.childNodes].filter(d=>d.localName==="event").map(d=>d.remove()),"validationMessage"in r&&n.setAttribute("validation-message",r.validationMessage),t.type==="init"&&p(),n.append(z(t,"event",i));const N=(r.type==="checkbox"||r.type==="radio")&&!r.checked;if(x.hasAttribute("slice-value")){r.value===void 0?n.removeAttribute("value"):n.setAttribute("value",r.value);const d=N?"":M(f(x,"slice-value"),n);p(),n.append($(i,d))}else{if("elements"in r)return p(),n.append(z(new FormData(r),"value",n.ownerDocument)),n;const d=N?"":r.value??f(r,"value");p(),d==null?[...n.childNodes].filter(C=>C.localName!=="event").map(C=>C.remove()):Ae(d)?n.append($(i,d)):n.append(z(d,"value",n.ownerDocument))}return n})}function L(e,l,t){e.querySelectorAll&&[...e.querySelectorAll(l)].forEach(t)}const Se=async(e,l)=>{if(!e||!e.trim())return[l];if(e.startsWith("#"))return(t=>{const s=t.querySelectorAll(e);return[...s.length?s:t.getRootNode().querySelectorAll(e)]})(l.parentElement);try{const[t,s]=e.split("#");if(e.charAt(0)===".")e=new URL(t,l.closest("[base]")?.getAttribute("base")||location).href;else try{e=(void 0)(t),s&&(e+="#"+s)}catch(i){console.error(i.message)}const n=await ce(e);if(l.setAttributeNS("xml","base",e),s){const i=n.querySelectorAll("#"+s);return i.length?[...i]:(console.error("template not found",e+"#"+s),[l])}return[n]}catch{return[l]}};function pe(e,l){for(let t of e.attributes)t.namespaceURI?l.setAttributeNS(t.namespaceURI,t.name,t.value):l.setAttribute(t.name,t.value),t.name==="value"&&(l.value=t.value)}function K(e,l=0){const t={};for(const s of e.childNodes){const n=f(s,"data-dce-id")||s.dceId||0;if(!t[n])n?t[n]=1:(t[n]=s.dceId=++l,s.setAttribute&&s.setAttribute("data-dce-id",s.dceId));else{const i=s.dceId=n+"-"+t[n]++;s.setAttribute&&s.setAttribute("data-dce-id",i)}s.childNodes.length&&K(s)}}function fe(e,l,t){t=1*t;for(let s of e.childNodes)if((s.dceId??s.getAttribute("data-dce-id")*1)>t)return e.insertBefore(l,s);e.append(l)}function Q(e,l){if(e.firstElementChild?.localName==="dce-root"&&l[0].localName!=="dce-root")return;if(!l.length)return e.firstElementChild?.localName!=="dce-root"&&ne(e);const t={};for(let s of e.childNodes)t[s.dceId],te(s)?(s.data.trim(),t[s.dceId||0]=s):t[f(s,"data-dce-id")||0]=s;for(let s of[...l]){const n=f(s,"data-dce-id")||s.dceId,i=t[n];i?(te(s)?i.nodeValue!==s.nodeValue&&(i.nodeValue=s.nodeValue):(pe(s,i),(i.childNodes.length||s.childNodes.length)&&Q(i,s.childNodes)),delete t[n]):fe(e,s,n)}for(let s of Object.values(t))s.localName!=="dce-root"&&s.remove()}function he(e,l){return e.hasAttribute(l)||e.setAttribute(l,crypto.randomUUID()),e.getAttribute(l)}const xe=e=>[...e?.matchAll(/([^{}]*)(\{)([^}]+)}([^{}]*)/g)].map(t=>`${t[1]}{${O(t[3])}}${t[4]}`).join(""),O=e=>{if(!e.trim())return e;const l=e.split("??"),t=l.shift(),s=O(l.join("??"));return l.length?`concat( ${t} , substring( ${s} , (1+string-length( ${s} )) * string-length( ${t} ) ) )`:e},M=(e,l)=>{const t=e.split("??");if(t.length>1)return M(t[0],l)||M(t[1],l);e=O(e);const s=l.ownerDocument.evaluate(e,l);switch(s.resultType){case XPathResult.NUMBER_TYPE:return s.numberValue;case XPathResult.STRING_TYPE:return s.stringValue;case XPathResult.BOOLEAN_TYPE:return s.booleanValue}let n="";for(let i;i=s.iterateNext();)n+=i.textContent;return n},ye="stylesheet,transform,import,include,strip-space,preserve-space,output,key,decimal-format,namespace-alias,value-of,copy-of,number,apply-templates,apply-imports,for-each,sort,if,choose,when,otherwise,attribute-set,call-template,with-param,variable,param,text,processing-instruction,element,attribute,comment,copy,message,fallback".split(","),be=(e,l)=>{const t=w("xsl:"+e.localName);for(let s of e.attributes)t.setAttribute(s.name,s.value);for(;e.firstChild;)t.append(e.firstChild);if(e.parentElement)e.parentElement.replaceChild(t,e);else{const s=e.parentElement||l,n=[...s.childNodes];n.forEach((i,r)=>{i===e&&(n[r]=t)}),s.replaceChildren(...n)}};class ge extends HTMLElement{static observedAttributes=["src","tag","hidden"];async connectedCallback(){this.firstElementChild&&this.firstElementChild.localName!=="template"&&console.warn(`custom-element used without template wrapping content
|
|
93
|
-
`,this.outerHTML);const l=await Se(f(this,"src"),this),t=f(this,"tag"),s=t||"dce-"+crypto.randomUUID();for(const u of l)L(u.templateNode||u.content||u,"style",m=>{const a=m.closest("slot"),c=a?`slot[name="${a.name}"]`:"";m.innerHTML=`${s} ${c}{${m.innerHTML}}`,this.append(m)});const n=l.map(u=>re(u)),i=n.map((u,m)=>{m=new XSLTProcessor;try{m.importStylesheet(u)}catch(a){console.error(a,P(u))}return m});Object.defineProperty(this,"xsltString",{get:()=>n.map(u=>P(u)).join(`
|
|
94
|
-
`)});const r=this,x=[...this.templateNode.querySelectorAll("[slice]")],p=x.map(u=>f(u,"slice")).filter(u=>!u.includes("/")).filter((u,m,a)=>a.indexOf(u)===m).map(ue).flat(),N=n.reduce((u,m)=>(m.params&&u.push(...m.params),u),[]);class d extends HTMLElement{static get observedAttributes(){return N.map(m=>f(m,"name"))}#e=0;connectedCallback(){let m=G(this.childNodes);if(this.firstElementChild?.tagName==="TEMPLATE"){this.firstElementChild!==this.lastElementChild&&console.error("payload should have TEMPLATE as only child",this.outerHTML);const h=this.firstElementChild;h.remove(),m=G(h.content.childNodes);for(const g of m)if(g.localName==="style"){const o=he(this,"data-dce-style");g.innerHTML=`${s}[data-dce-style="${o}"]{${g.innerHTML}}`,h.insertAdjacentElement("beforebegin",g)}else g.nodeType===1?h.insertAdjacentElement("beforebegin",g):g.nodeType===3&&h.insertAdjacentText("beforebegin",g.data)}const a=j("<datadom/>").documentElement,c=(h,g="")=>(o=>(g&&o.append($(a,g)),o))(a.ownerDocument.createElement(h)),A=k(a,"payload",m,we);ae(A),ie(A),this.innerHTML="";const E=k(a,"attributes",this.attributes,h=>c(h.nodeName,h.value));k(a,"dataset",Object.keys(this.dataset),h=>c(h,this.dataset[h]));const y=k(a,"slice",p,h=>c(h,"")),b=h=>M(h,y);this.xml=a;const I=[],ee=()=>{const h={};for(let g;g=I.pop();){const o=f(g.sliceElement,"slice");h[o]||(J(y,o,g),h[o]=g)}Object.keys(h).length!==0&&U()};let _;this.onSlice=h=>{I.push(h),_||(_=setTimeout(()=>{ee(),_=0},1))};const U=this.transform=()=>{if(this.#e)debugger;this.#e=1,i.map((o,v)=>{const S=o.transformToFragment(a.ownerDocument,document);return S||console.error(`XSLT transformation error. xsl:
|
|
95
|
-
`,P(n[v]),`
|
|
96
|
-
xml:
|
|
97
|
-
`,P(a)),S}).map(o=>{o&&(K(o),Q(this,o.childNodes))}),d.observedAttributes.map(o=>{let v=f(this.firstElementChild,o);v!==f(this,o)&&(this.setAttribute(o,v),this.#t(o,v))});function g(o){let v=o;if(o.localName==="slice"){const S=f(o,"for");if(S||(v=o.parentElement),S==="^")do v=v.previousElementSibling;while(v.localName==="slice");else v=this.querySelector(S);if(!v)return console.warn(`can not find selector in "slice for=${S}" `,o.outerHTML);f(o,"slice")||o.setAttribute("slice",f(o,"name"))}return v}L(this,"[slice],[slice-event]",o=>{let v=f(o,"slice-event");const S=o.hasAttribute("slice-value")||o.hasAttribute("value")||o.value,X=g(o);o.dceInitialized||(o.dceInitialized=1,X.hasAttribute("custom-validity")&&(v+=" change submit"),[...new Set((v||"change").split(" "))].forEach(ve=>X.addEventListener(ve,T=>{T.sliceElement=o,T.sliceEventSource=T.currentTarget||T.target,T.sliceProcessed=0;const Ee=J(y,f(T.sliceElement,"slice"),T);L(this,"[custom-validity]",R=>{if(!R.setCustomValidity)return;const W=f(R,"custom-validity");try{const q=W&&M(W,E);R.setCustomValidity(q===!0?"":q===!1?"invalid":q)}catch(q){console.error(q,"xPath",W)}});const B=f(X,"custom-validity"),D=B&&M(B,E),F=D===!0?"":D;if(B){if(o.setCustomValidity?o.setCustomValidity(F):o.validationMessage=F,Ee.map(R=>R.setAttribute("validation-message",F)),T.type==="submit")return D===!0?void 0:(setTimeout(U,1),!!D===D?(D||T.preventDefault(),D):D?(T.preventDefault(),!1):void 0);setTimeout(U,1)}this.onSlice(T)})),(!v||v.includes("init"))&&(S?this.onSlice({type:"init",target:X,sliceElement:o,sliceEventSource:X}):o.value=b(f(o,"slice"))))}),this.#e=0};U(),ee()}#t(m,a){m==="value"&&(this.value=a);let c=this.xml.querySelector(`attributes>${m}`);c?V(c).append($(c,a)):(c=w(m,a,this.xml),this.xml.querySelector("attributes").append(c)),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{[m]:a}}))}attributeChangedCallback(m,a,c){!this.xml||this.#e||(this.#t(m,c),this.transform())}get dce(){return r}}const C=u=>{window.customElements.get(u)!==d&&window.customElements.define(u,d)};if(t)C(t);else{const u=s;this.setAttribute("tag",u),C(u);const m=document.createElement(u);this.getAttributeNames().forEach(a=>m.setAttribute(a,this.getAttribute(a))),m.append(...[...this.childNodes].filter(a=>a.localName!=="style")),this.append(m)}}get templateNode(){return this.firstElementChild?.tagName==="TEMPLATE"?this.firstElementChild.content:this}get dce(){return this}get xslt(){return j(this.xsltString)}}window.customElements.define("custom-element",ge);exports.CustomElement=ge;exports.appendByDceId=fe;exports.assureSlices=de;exports.assureUID=he;exports.assureUnique=K;exports.createXsltFromDom=re;exports.deepEqual=me;exports.evalCurly=xe;exports.event2slice=J;exports.merge=Q;exports.mergeAttr=pe;exports.obj2node=z;exports.sanitizeBlankText=G;exports.tagUid=Z;exports.toXsl=be;exports.xPath=M;exports.xPathDefaults=O;exports.xhrTemplate=ce;exports.xml2dom=j;exports.xmlString=P;exports.xslTags=ye;
|