hyper-element 1.0.3 → 1.1.0

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/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  [![Coverage](https://img.shields.io/badge/coverage-100%25-brightgreen.svg)](https://github.com/codemeasandwich/hyper-element)
8
8
  [![ES6+](https://img.shields.io/badge/ES6+-supported-blue.svg)](https://caniuse.com/es6)
9
9
 
10
- Combining the best of [hyperHTML] and [Custom Elements]! Your new custom-element will be rendered with the super fast **hyperHTML** and will react to tag attribute and store changes.
10
+ A lightweight [Custom Elements] library with a fast, built-in render core. Your custom-element will react to tag attribute and store changes with efficient DOM updates.
11
11
 
12
12
  ### If you like it, please [★ it on github](https://github.com/codemeasandwich/hyper-element)
13
13
 
@@ -57,7 +57,7 @@ For browser environments without a bundler:
57
57
  <script src="https://cdn.jsdelivr.net/npm/hyper-element@latest/build/hyperElement.min.js"></script>
58
58
  ```
59
59
 
60
- The `hyperElement` class will be available globally on `window.hyperElement`. hyperHTML is bundled automatically.
60
+ The `hyperElement` class will be available globally on `window.hyperElement`.
61
61
 
62
62
  ## Browser Support
63
63
 
@@ -75,7 +75,7 @@ For older browsers, a [Custom Elements polyfill](https://github.com/webcomponent
75
75
  ## Why hyper-element
76
76
 
77
77
  - hyper-element is fast & small
78
- - With only 1 dependency: [hyperHTML]
78
+ - Zero runtime dependencies - everything is built-in
79
79
  - With a completely stateless approach, setting and reseting the view is trivial
80
80
  - Simple yet powerful [Interface](#interface)
81
81
  - Built in [template](#templates) system to customise the rendered output
@@ -101,6 +101,7 @@ For older browsers, a [Custom Elements polyfill](https://github.com/webcomponent
101
101
 
102
102
  - [Browser Support](#browser-support)
103
103
  - [Define a Custom Element](#define-a-custom-element)
104
+ - [Functional API](#functional-api)
104
105
  - [Lifecycle](#lifecycle)
105
106
  - [Interface](#interface)
106
107
  - [render](#render)
@@ -160,6 +161,108 @@ Output
160
161
 
161
162
  ---
162
163
 
164
+ # Functional API
165
+
166
+ In addition to class-based components, hyper-element supports a functional API that hides the class internals. This is useful for simpler components or if you prefer a more functional programming style.
167
+
168
+ ## Signatures
169
+
170
+ ```js
171
+ // 1. Full definition with tag (auto-registers)
172
+ hyperElement('my-counter', {
173
+ observedAttributes: ['count'],
174
+ setup: (ctx, onNext) => {
175
+ /* ... */
176
+ },
177
+ render: (Html, ctx, store) => Html`Count: ${ctx.attrs.count}`,
178
+ });
179
+
180
+ // 2. Shorthand with tag (auto-registers)
181
+ hyperElement('hello-world', (Html, ctx) => Html`Hello, ${ctx.attrs.name}!`);
182
+
183
+ // 3. Definition without tag (returns class for manual registration)
184
+ const MyElement = hyperElement({
185
+ render: (Html, ctx) => Html`...`,
186
+ });
187
+ customElements.define('my-element', MyElement);
188
+
189
+ // 4. Shorthand without tag (returns class for manual registration)
190
+ const Simple = hyperElement((Html, ctx) => Html`Simple!`);
191
+ customElements.define('simple-elem', Simple);
192
+ ```
193
+
194
+ ## Context Object
195
+
196
+ In the functional API, instead of using `this`, a context object (`ctx`) is passed explicitly to all functions:
197
+
198
+ | Property | Description |
199
+ | -------------------- | ---------------------------------------------- |
200
+ | `ctx.element` | The DOM element |
201
+ | `ctx.attrs` | Parsed attributes with automatic type coercion |
202
+ | `ctx.dataset` | Dataset proxy with automatic type coercion |
203
+ | `ctx.store` | Store value from setup |
204
+ | `ctx.wrappedContent` | Text content between the tags |
205
+
206
+ ## Example: Counter with Setup
207
+
208
+ ```js
209
+ hyperElement('my-counter', {
210
+ setup: (ctx, onNext) => {
211
+ const store = { count: 0 };
212
+ const render = onNext(() => store);
213
+
214
+ ctx.increment = () => {
215
+ store.count++;
216
+ render();
217
+ };
218
+ },
219
+
220
+ handleClick: (ctx, event) => ctx.increment(),
221
+
222
+ render: (Html, ctx, store) => Html`
223
+ <button onclick=${ctx.handleClick}>
224
+ Count: ${store?.count || 0}
225
+ </button>
226
+ `,
227
+ });
228
+ ```
229
+
230
+ ## Example: Timer with Teardown
231
+
232
+ ```js
233
+ hyperElement('my-timer', {
234
+ setup: (ctx, onNext) => {
235
+ let seconds = 0;
236
+ const render = onNext(() => ({ seconds }));
237
+
238
+ const interval = setInterval(() => {
239
+ seconds++;
240
+ render();
241
+ }, 1000);
242
+
243
+ // Return cleanup function
244
+ return () => clearInterval(interval);
245
+ },
246
+
247
+ render: (Html, ctx, store) => Html`Elapsed: ${store?.seconds || 0}s`,
248
+ });
249
+ ```
250
+
251
+ ## Backward Compatibility
252
+
253
+ The functional API is fully backward compatible. Class-based components still work:
254
+
255
+ ```js
256
+ class MyElement extends hyperElement {
257
+ render(Html) {
258
+ Html`Hello ${this.attrs.name}!`;
259
+ }
260
+ }
261
+ customElements.define('my-element', MyElement);
262
+ ```
263
+
264
+ ---
265
+
163
266
  # Lifecycle
164
267
 
165
268
  When a hyper-element is connected to the DOM, it goes through the following initialization sequence:
@@ -945,12 +1048,15 @@ setup(attachStore) {
945
1048
  ```
946
1049
  hyper-element/
947
1050
  ├── src/ # Source files (ES modules)
948
- │ ├── core/ # Core utilities
949
1051
  │ ├── attributes/ # Attribute handling
950
- │ ├── template/ # Template processing
951
- │ ├── html/ # HTML rendering
1052
+ │ ├── core/ # Core utilities
1053
+ │ ├── html/ # HTML tag functions
952
1054
  │ ├── lifecycle/ # Lifecycle hooks
953
- └── hyperElement.js # Main export
1055
+ ├── render/ # Custom render core (uhtml-inspired)
1056
+ │ ├── signals/ # Reactive primitives (signal, computed, effect)
1057
+ │ ├── template/ # Template processing
1058
+ │ ├── utils/ # Shared utilities
1059
+ │ └── index.js # Main export
954
1060
  ├── build/
955
1061
  │ ├── hyperElement.min.js # Minified production build
956
1062
  │ └── hyperElement.min.js.map
@@ -1015,7 +1121,7 @@ npm run format:fix
1015
1121
 
1016
1122
  ## Testing
1017
1123
 
1018
- See [kitchensink/README.md](kitchensink/README.md) for the full testing guide.
1124
+ Tests are located in `kitchensink/` and run via Playwright. See `kitchensink/kitchensink.spec.js` for the test suite.
1019
1125
 
1020
1126
  ## Contributing
1021
1127
 
@@ -1025,7 +1131,6 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines.
1025
1131
 
1026
1132
  [shadow-dom]: https://developers.google.com/web/fundamentals/web-components/shadowdom
1027
1133
  [innerHTML]: https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML
1028
- [hyperHTML]: https://viperhtml.js.org/hyper.html
1029
1134
  [Custom Elements]: https://developer.mozilla.org/en-US/docs/Web/Web_Components/Custom_Elements
1030
1135
  [Test system]: https://jsfiddle.net/codemeasandwich/k25e6ufv/36/
1031
1136
  [promise]: https://scotch.io/tutorials/javascript-promises-for-dummies#understanding-promises
@@ -1,3 +1,2 @@
1
- (function(){/*! (c) Andrea Giammarchi (ISC) */var te=function(s){"use strict";var i={};try{i.WeakMap=WeakMap}catch{i.WeakMap=function(e,n){var r=n.defineProperty,o=n.hasOwnProperty,l=h.prototype;return l.delete=function(p){return this.has(p)&&delete p[this._]},l.get=function(p){return this.has(p)?p[this._]:void 0},l.has=function(p){return o.call(p,this._)},l.set=function(p,v){return r(p,this._,{configurable:!0,value:v}),this},h;function h(p){r(this,"_",{value:"_@ungap/weakmap"+e++}),p&&p.forEach(a,this)}function a(p){this.set(p[0],p[1])}}(Math.random(),Object)}var f=i.WeakMap,u={};try{u.WeakSet=WeakSet}catch{(function(e,n){var r=o.prototype;function o(){n(this,"_",{value:"_@ungap/weakmap"+e++})}r.add=function(l){return this.has(l)||n(l,this._,{value:!0,configurable:!0}),this},r.has=function(l){return this.hasOwnProperty.call(l,this._)},r.delete=function(l){return this.has(l)&&delete l[this._]},u.WeakSet=o})(Math.random(),Object.defineProperty)}function d(t,e,n,r,o,l){for(var h=("selectedIndex"in e),a=h;r<o;){var p,v=t(n[r],1);e.insertBefore(v,l),h&&a&&v.selected&&(a=!a,p=e.selectedIndex,e.selectedIndex=p<0?r:B.call(e.querySelectorAll("option"),v)),r++}}function c(t,e){return t==e}function g(t){return t}function w(t,e,n,r,o,l,h){var a=l-o;if(a<1)return-1;for(;a<=n-e;){for(var p=e,v=o;p<n&&v<l&&h(t[p],r[v]);)p++,v++;if(v===l)return e;e=p+1}return-1}function x(t,e,n,r,o){return n<r?t(e[n],0):0<n?t(e[n-1],-0).nextSibling:o}function b(t,e,n,r){for(;n<r;)q(t(e[n++],-1))}function _(t,e,n,r,o,l,h,a,p,v,m,E,P){(function(y,j,S,M,$,O,A,N,k){for(var C=[],R=y.length,J=A,H=0;H<R;)switch(y[H++]){case 0:$++,J++;break;case 1:C.push(M[$]),d(j,S,M,$++,$,J<N?j(O[J],0):k);break;case-1:J++}for(H=0;H<R;)switch(y[H++]){case 0:A++;break;case-1:-1<C.indexOf(O[A])?A++:b(j,O,A++,A)}})(function(y,j,S,M,$,O,A){var N,k,C,R,J,H,ue=S+O,K=[];e:for(T=0;T<=ue;T++){if(50<T)return null;for(H=T-1,R=T?K[T-1]:[0,0],J=K[T]=[],N=-T;N<=T;N+=2){for(k=(C=N===-T||N!==T&&R[H+N-1]<R[H+N+1]?R[H+N+1]:R[H+N-1]+1)-N;C<O&&k<S&&A(M[$+C],y[j+k]);)C++,k++;if(C===O&&k===S)break e;J[T+N]=C}}for(var V=Array(T/2+ue/2),X=V.length-1,T=K.length-1;0<=T;T--){for(;0<C&&0<k&&A(M[$+C-1],y[j+k-1]);)V[X--]=0,C--,k--;if(!T)break;H=T-1,R=T?K[T-1]:[0,0],(N=C-k)===-T||N!==T&&R[H+N-1]<R[H+N+1]?(k--,V[X--]=1):(C--,V[X--]=-1)}return V}(n,r,l,h,a,v,E)||function(y,j,S,M,$,O,A,N){var k=0,C=M<N?M:N,R=Array(C++),J=Array(C);J[0]=-1;for(var H=1;H<C;H++)J[H]=A;for(var ue=$.slice(O,A),K=j;K<S;K++){var V,X=ue.indexOf(y[K]);-1<X&&-1<(k=W(J,C,V=X+O))&&(J[k]=V,R[k]={newi:K,oldi:V,prev:R[k-1]})}for(k=--C,--A;J[k]>A;)--k;C=N+M-k;var T=Array(C),ce=R[k];for(--S;ce;){for(var On=ce.newi,Tn=ce.oldi;On<S;)T[--C]=1,--S;for(;Tn<A;)T[--C]=-1,--A;T[--C]=0,--S,--A,ce=ce.prev}for(;j<=S;)T[--C]=1,--S;for(;O<=A;)T[--C]=-1,--A;return T}(n,r,o,l,h,a,p,v),t,e,n,r,h,a,m,P)}var D=u.WeakSet,B=[].indexOf,W=function(t,e,n){for(var r=1,o=e;r<o;){var l=(r+o)/2>>>0;n<t[l]?o=l:r=1+l}return r},q=function(t){return(t.remove||function(){var e=this.parentNode;e&&e.removeChild(this)}).call(t)};function L(t,e,n,r){for(var o=(r=r||{}).compare||c,l=r.node||g,h=r.before==null?null:l(r.before,0),a=e.length,p=a,v=0,m=n.length,E=0;v<p&&E<m&&o(e[v],n[E]);)v++,E++;for(;v<p&&E<m&&o(e[p-1],n[m-1]);)p--,m--;var P=v===p,y=E===m;if(P&&y)return n;if(P&&E<m)return d(l,t,n,E,m,x(l,e,v,a,h)),n;if(y&&v<p)return b(l,e,v,p),n;var j=p-v,S=m-E,M=-1;if(j<S){if(-1<(M=w(n,E,m,e,v,p,o)))return d(l,t,n,E,M,l(e[v],0)),d(l,t,n,M+j,m,x(l,e,p,a,h)),n}else if(S<j&&-1<(M=w(e,v,p,n,E,m,o)))return b(l,e,v,M),b(l,e,M+S,p),n;return j<2||S<2?(d(l,t,n,E,m,l(e[v],0)),b(l,e,v,p)):j==S&&function($,O,A,N,k,C){for(;N<k&&C(A[N],$[O-1]);)N++,O--;return O===0}(n,m,e,v,p,o)?d(l,t,n,E,m,x(l,e,p,a,h)):_(l,t,n,E,m,S,e,v,p,j,a,o,h),n}var Q,z={};function F(t,e){e=e||{};var n=s.createEvent("CustomEvent");return n.initCustomEvent(t,!!e.bubbles,!!e.cancelable,e.detail),n}z.CustomEvent=typeof CustomEvent=="function"?CustomEvent:(F[Q="prototype"]=new F("").constructor[Q],F);var Z=z.CustomEvent,G={};try{G.Map=Map}catch{G.Map=function(){var e=0,n=[],r=[];return{delete:function(l){var h=o(l);return h&&(n.splice(e,1),r.splice(e,1)),h},forEach:function(l,h){n.forEach(function(a,p){l.call(h,r[p],a,this)},this)},get:function(l){return o(l)?r[e]:void 0},has:o,set:function(l,h){return r[o(l)?e:n.push(l)-1]=h,this}};function o(l){return-1<(e=n.indexOf(l))}}}var I=G.Map;function Y(){return this}function le(t,e){var n="_"+t+"$";return{get:function(){return this[n]||de(this,n,e.call(this,t))},set:function(r){de(this,n,r)}}}var de=function(t,e,n){return Object.defineProperty(t,e,{configurable:!0,value:typeof n=="function"?function(){return t._wire$=n.apply(this,arguments)}:n})[e]};Object.defineProperties(Y.prototype,{ELEMENT_NODE:{value:1},nodeType:{value:-1}});var et,tt,Me,ve,Pe,nt,rt={},ge={},it=[],en=ge.hasOwnProperty,st=0,ie={attributes:rt,define:function(t,e){t.indexOf("-")<0?(t in ge||(st=it.push(t)),ge[t]=e):rt[t]=e},invoke:function(t,e){for(var n=0;n<st;n++){var r=it[n];if(en.call(t,r))return ge[r](t[r],e)}}},ot=Array.isArray||(tt=(et={}.toString).call([]),function(t){return et.call(t)===tt}),at=(Me=s,ve="fragment",nt="content"in se(Pe="template")?function(t){var e=se(Pe);return e.innerHTML=t,e.content}:function(t){var e,n=se(ve),r=se(Pe);return ut(n,/^[^\S]*?<(col(?:group)?|t(?:head|body|foot|r|d|h))/i.test(t)?(e=RegExp.$1,r.innerHTML="<table>"+t+"</table>",r.querySelectorAll(e)):(r.innerHTML=t,r.childNodes)),n},function(t,e){return(e==="svg"?function(n){var r=se(ve),o=se("div");return o.innerHTML='<svg xmlns="http://www.w3.org/2000/svg">'+n+"</svg>",ut(r,o.firstChild.childNodes),r}:nt)(t)});function ut(t,e){for(var n=e.length;n--;)t.appendChild(e[0])}function se(t){return t===ve?Me.createDocumentFragment():Me.createElementNS("http://www.w3.org/1999/xhtml",t)}var oe,me,be,Le,He,De,ye,we,lt,$e,tn=(me="appendChild",be="cloneNode",Le="createTextNode",De=(He="importNode")in(oe=s),(ye=oe.createDocumentFragment())[me](oe[Le]("g")),ye[me](oe[Le]("")),(De?oe[He](ye,!0):ye[be](!0)).childNodes.length<2?function t(e,n){for(var r=e[be](),o=e.childNodes||[],l=o.length,h=0;n&&h<l;h++)r[me](t(o[h],n));return r}:De?oe[He]:function(t,e){return t[be](!!e)}),ct="".trim||function(){return String(this).replace(/^\s+|\s+/g,"")},ee="-"+Math.random().toFixed(6)+"%",Re=!1;try{we=s.createElement("template"),$e="tabindex",(lt="content")in we&&(we.innerHTML="<p "+$e+'="'+ee+'"></p>',we[lt].childNodes[0].getAttribute($e)==ee)||(ee="_dt: "+ee.slice(1,-1)+";",Re=!0)}catch{}var xe="<!--"+ee+"-->",nn=8,rn=1,sn=3,ft=/^(?:style|textarea)$/i,on=/^(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr)$/i,Ee=" \\f\\n\\r\\t",ht="[^"+Ee+`\\/>"'=]+`,We="["+Ee+"]+"+ht,pt="<([A-Za-z]+[A-Za-z0-9:._-]*)((?:",dt=`(?:\\s*=\\s*(?:'[^']*?'|"[^"]*?"|<[^>]*?>|`+ht.replace("\\/","")+"))?)",an=new RegExp(pt+We+dt+"+)(["+Ee+"]*/?>)","g"),un=new RegExp(pt+We+dt+"*)(["+Ee+"]*/>)","g"),ln=new RegExp("("+We+`\\s*=\\s*)(['"]?)`+xe+"\\2","gi");function cn(t,e,n,r){return"<"+e+n.replace(ln,fn)+r}function fn(t,e,n){return e+(n||'"')+ee+(n||'"')}function hn(t,e,n){return on.test(e)?t:"<"+e+n+"></"+e+">"}var pn=Re?function(t,e){var n=e.join(" ");return e.slice.call(t,0).sort(function(r,o){return n.indexOf(r.name)<=n.indexOf(o.name)?-1:1})}:function(t,e){return e.slice.call(t,0)};function vt(t,e,n,r){for(var o=t.childNodes,l=o.length,h=0;h<l;){var a=o[h];switch(a.nodeType){case rn:var p=r.concat(h);(function(m,E,P,y){for(var j,S=m.attributes,M=[],$=[],O=pn(S,P),A=O.length,N=0;N<A;){var k=O[N++],C=k.value===ee;if(C||1<(j=k.value.split(xe)).length){var R=k.name;if(M.indexOf(R)<0){M.push(R);var J=P.shift().replace(C?/^(?:|[\S\s]*?\s)(\S+?)\s*=\s*('|")?$/:new RegExp("^(?:|[\\S\\s]*?\\s)("+R+`)\\s*=\\s*('|")[\\S\\s]*`,"i"),"$1"),H=S[J]||S[J.toLowerCase()];if(C)E.push(gt(H,y,J,null));else{for(var ue=j.length-2;ue--;)P.shift();E.push(gt(H,y,J,j))}}$.push(k)}}A=$.length;for(var K=(N=0)<A&&Re&&!("ownerSVGElement"in m);N<A;){var V=$[N++];K&&(V.value=""),m.removeAttribute(V.name)}var X=m.nodeName;if(/^script$/i.test(X)){var T=s.createElement(X);for(A=S.length,N=0;N<A;)T.setAttributeNode(S[N++].cloneNode(!0));T.textContent=m.textContent,m.parentNode.replaceChild(T,m)}})(a,e,n,p),vt(a,e,n,p);break;case nn:var v=a.textContent;if(v===ee)n.shift(),e.push(ft.test(t.nodeName)?mt(t,r):{type:"any",node:a,path:r.concat(h)});else switch(v.slice(0,2)){case"/*":if(v.slice(-2)!=="*/")break;case"\u{1F47B}":t.removeChild(a),h--,l--}break;case sn:ft.test(t.nodeName)&&ct.call(a.textContent)===xe&&(n.shift(),e.push(mt(t,r)))}h++}}function gt(t,e,n,r){return{type:"attr",node:t,path:e,name:n,sparse:r}}function mt(t,e){return{type:"text",node:t,path:e}}var Ie,bt=(Ie=new f,{get:function(t){return Ie.get(t)},set:function(t,e){return Ie.set(t,e),e}});function dn(t,e){var n=(t.convert||function(h){return h.join(xe).replace(un,hn).replace(an,cn)})(e),r=t.transform;r&&(n=r(n));var o=at(n,t.type);yt(o);var l=[];return vt(o,l,e.slice(0),[]),{content:o,updates:function(h){for(var a=[],p=l.length,v=0,m=0;v<p;){var E=l[v++],P=function(S,M){for(var $=M.length,O=0;O<$;)S=S.childNodes[M[O++]];return S}(h,E.path);switch(E.type){case"any":a.push({fn:t.any(P,[]),sparse:!1});break;case"attr":var y=E.sparse,j=t.attribute(P,E.name,E.node);y===null?a.push({fn:j,sparse:!1}):(m+=y.length-2,a.push({fn:j,sparse:!0,values:y}));break;case"text":a.push({fn:t.text(P),sparse:!1}),P.textContent=""}}return p+=m,function(){var S=arguments.length;if(p!==S-1)throw new Error(S-1+" values instead of "+p+`
2
- `+e.join("${value}"));for(var M=1,$=1;M<S;){var O=a[M-$];if(O.sparse){var A=O.values,N=A[0],k=1,C=A.length;for($+=C-2;k<C;)N+=arguments[M++]+A[k++];O.fn(N)}else O.fn(arguments[M++])}return h}}}}var vn=[];function gn(t){var e=vn,n=yt;return function(r){var o,l,h;return e!==r&&(o=t,l=e=r,h=bt.get(l)||bt.set(l,dn(o,l)),n=h.updates(tn.call(s,h.content,!0))),n.apply(null,arguments)}}function yt(t){for(var e=t.childNodes,n=e.length;n--;){var r=e[n];r.nodeType!==1&&ct.call(r.textContent).length===0&&t.removeChild(r)}}var wt,xt,mn=(wt=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,xt=/([^A-Z])([A-Z]+)/g,function(t,e){return"ownerSVGElement"in t?function(n,r){var o;return(o=r?r.cloneNode(!0):(n.setAttribute("style","--hyper:style;"),n.getAttributeNode("style"))).value="",n.setAttributeNode(o),Et(o,!0)}(t,e):Et(t.style,!1)});function bn(t,e,n){return e+"-"+n.toLowerCase()}function Et(t,e){var n,r;return function(o){var l,h,a,p;switch(typeof o){case"object":if(o){if(n==="object"){if(!e&&r!==o)for(h in r)h in o||(t[h]="")}else e?t.value="":t.cssText="";for(h in l=e?{}:t,o)a=typeof(p=o[h])!="number"||wt.test(h)?p:p+"px",!e&&/^--/.test(h)?l.setProperty(h,a):l[h]=a;n="object",e?t.value=function(v){var m,E=[];for(m in v)E.push(m.replace(xt,bn),":",v[m],";");return E.join("")}(r=l):r=o;break}default:r!=o&&(n="string",r=o,e?t.value=o||"":t.cssText=o||"")}}}var Nt,Ne,Ct=(Nt=[].slice,(Ne=St.prototype).ELEMENT_NODE=1,Ne.nodeType=111,Ne.remove=function(t){var e,n=this.childNodes,r=this.firstChild,o=this.lastChild;return this._=null,t&&n.length===2?o.parentNode.removeChild(o):((e=this.ownerDocument.createRange()).setStartBefore(t?n[1]:r),e.setEndAfter(o),e.deleteContents()),r},Ne.valueOf=function(t){var e=this._,n=e==null;if(n&&(e=this._=this.ownerDocument.createDocumentFragment()),n||t)for(var r=this.childNodes,o=0,l=r.length;o<l;o++)e.appendChild(r[o]);return e},St);function St(t){var e=this.childNodes=Nt.call(t,0);this.firstChild=e[0],this.lastChild=e[e.length-1],this.ownerDocument=e[0].ownerDocument,this._=null}function yn(t){return{html:t}}function kt(t,e){switch(t.nodeType){case En:return 1/e<0?e?t.remove(!0):t.lastChild:e?t.valueOf(!0):t.firstChild;case xn:return kt(t.render(),e);default:return t}}function At(t,e){e(t.placeholder),"text"in t?Promise.resolve(t.text).then(String).then(e):"any"in t?Promise.resolve(t.any).then(e):"html"in t?Promise.resolve(t.html).then(yn).then(e):Promise.resolve(ie.invoke(t,e)).then(e)}function Je(t){return t!=null&&"then"in t}var Ot,Tt,Ce,Se,ke,Be="ownerSVGElement",wn="connected",xn=Y.prototype.nodeType,En=Ct.prototype.nodeType,_t=(Tt=(Ot={Event:Z,WeakSet:D}).Event,Ce=Ot.WeakSet,Se=!0,ke=null,function(t){return Se&&(Se=!Se,ke=new Ce,function(e){var n=new Ce,r=new Ce;try{new MutationObserver(a).observe(e,{subtree:!0,childList:!0})}catch{var o=0,l=[],h=function(m){l.push(m),clearTimeout(o),o=setTimeout(function(){a(l.splice(o=0,l.length))},0)};e.addEventListener("DOMNodeRemoved",function(m){h({addedNodes:[],removedNodes:[m.target]})},!0),e.addEventListener("DOMNodeInserted",function(m){h({addedNodes:[m.target],removedNodes:[]})},!0)}function a(v){for(var m,E=v.length,P=0;P<E;P++)p((m=v[P]).removedNodes,"disconnected",r,n),p(m.addedNodes,"connected",n,r)}function p(v,m,E,P){for(var y,j=new Tt(m),S=v.length,M=0;M<S;(y=v[M++]).nodeType===1&&function $(O,A,N,k,C){ke.has(O)&&!k.has(O)&&(C.delete(O),k.add(O),O.dispatchEvent(A));for(var R=O.children||[],J=R.length,H=0;H<J;$(R[H++],A,N,k,C));}(y,j,m,E,P));}}(t.ownerDocument)),ke.add(t),t}),Nn=/^(?:form|list)$/i,Ae=[].slice;function Oe(t){return this.type=t,gn(this)}var jt=!(Oe.prototype={attribute:function(t,e,n){var r,o=Be in t;if(e==="style")return mn(t,n,o);if(e.slice(0,1)===".")return v=t,m=e.slice(1),o?function(y){try{v[m]=y}catch{v.setAttribute(m,y)}}:function(y){v[m]=y};if(e.slice(0,1)==="?")return h=t,a=e.slice(1),function(y){p!==!!y&&((p=!!y)?h.setAttribute(a,""):h.removeAttribute(a))};if(/^on/.test(e)){var l=e.slice(2);return l===wn||l==="disconnected"?_t(t):e.toLowerCase()in t&&(l=l.toLowerCase()),function(y){r!==y&&(r&&t.removeEventListener(l,r,!1),(r=y)&&t.addEventListener(l,y,!1))}}if(e==="data"||!o&&e in t&&!Nn.test(e))return function(y){r!==y&&(r=y,t[e]!==y&&y==null?(t[e]="",t.removeAttribute(e)):t[e]=y)};if(e in ie.attributes)return function(y){var j=ie.attributes[e](t,y);r!==j&&((r=j)==null?t.removeAttribute(e):t.setAttribute(e,j))};var h,a,p,v,m,E=!1,P=n.cloneNode(!0);return function(y){r!==y&&(r=y,P.value!==y&&(y==null?(E&&(E=!1,t.removeAttributeNode(P)),P.value=y):(P.value=y,E||(E=!0,t.setAttributeNode(P)))))}},any:function(t,e){var n,r={node:kt,before:t},o=Be in t?"svg":"html",l=!1;return function h(a){switch(typeof a){case"string":case"number":case"boolean":l?n!==a&&(n=a,e[0].textContent=a):(l=!0,n=a,e=L(t.parentNode,e,[(p=a,t.ownerDocument.createTextNode(p))],r));break;case"function":h(a(t));break;case"object":case"undefined":if(a==null){l=!1,e=L(t.parentNode,e,[],r);break}default:if(l=!1,ot(n=a))if(a.length===0)e.length&&(e=L(t.parentNode,e,[],r));else switch(typeof a[0]){case"string":case"number":case"boolean":h({html:a});break;case"object":if(ot(a[0])&&(a=a.concat.apply([],a)),Je(a[0])){Promise.all(a).then(h);break}default:e=L(t.parentNode,e,a,r)}else"ELEMENT_NODE"in a?e=L(t.parentNode,e,a.nodeType===11?Ae.call(a.childNodes):[a],r):Je(a)?a.then(h):"placeholder"in a?At(a,h):"text"in a?h(String(a.text)):"any"in a?h(a.any):"html"in a?e=L(t.parentNode,e,Ae.call(at([].concat(a.html).join(""),o).childNodes),r):"length"in a?h(Ae.call(a)):h(ie.invoke(a,h))}var p}},text:function(t){var e;return function n(r){var o;e!==r&&((o=typeof(e=r))=="object"&&r?Je(r)?r.then(n):"placeholder"in r?At(r,n):"text"in r?n(String(r.text)):"any"in r?n(r.any):"html"in r?n([].concat(r.html).join("")):"length"in r?n(Ae.call(r).join("")):n(ie.invoke(r,n)):o=="function"?n(r(t)):t.textContent=r??"")}}}),Mt=function(t){var e,n,r,o,l=(e=(s.defaultView.navigator||{}).userAgent,/(Firefox|Safari)\/(\d+)/.test(e)&&!/(Chrom[eium]+|Android)\/(\d+)/.test(e)),h=!("raw"in t)||t.propertyIsEnumerable("raw")||!Object.isFrozen(t.raw);return l||h?(n={},r=function(a){for(var p=".",v=0;v<a.length;v++)p+=a[v].length+"."+a[v];return n[p]||(n[p]=a)},Mt=h?r:(o=new f,function(a){return o.get(a)||(v=r(p=a),o.set(p,v),v);var p,v})):jt=!0,Pt(t)};function Pt(t){return jt?t:Mt(t)}function Lt(t){for(var e=arguments.length,n=[Pt(t)],r=1;r<e;)n.push(arguments[r++]);return n}var Ht=new f,ae=function(t){var e,n,r;return function(){var o=Lt.apply(null,arguments);return r!==o[0]?(r=o[0],n=new Oe(t),e=Cn(n.apply(n,o))):n.apply(n,o),e}},Dt=function(t,e){var n=e.indexOf(":"),r=Ht.get(t),o=e;return-1<n&&(o=e.slice(n+1),e=e.slice(0,n)||"html"),r||Ht.set(t,r={}),r[o]||(r[o]=ae(e))},Cn=function(t){var e=t.childNodes,n=e.length;return n===1?e[0]:n?new Ct(e):t},$t=new f;function Sn(){var t=$t.get(this),e=Lt.apply(null,arguments);return t&&t.template===e[0]?t.tagger.apply(null,e):function(n){var r=new Oe(Be in this?"svg":"html");$t.set(this,{tagger:r,template:n}),this.textContent="",this.appendChild(r.apply(null,arguments))}.apply(this,e),this}var ze,Fe,Rt,Wt,kn=ie.define,An=Oe.prototype;function U(t){return arguments.length<2?t==null?ae("html"):typeof t=="string"?U.wire(null,t):"raw"in t?ae("html")(t):"nodeType"in t?U.bind(t):Dt(t,"html"):("raw"in t?ae("html"):U.wire).apply(null,arguments)}return U.Component=Y,U.bind=function(t){return Sn.bind(t)},U.define=kn,U.diff=L,(U.hyper=U).observe=_t,U.tagger=An,U.wire=function(t,e){return t==null?ae(e||"html"):Dt(t,e||"html")},U._={WeakMap:f,WeakSet:D},ze=ae,Fe=new f,Rt=Object.create,Wt=function(t,e){var n={w:null,p:null};return e.set(t,n),n},Object.defineProperties(Y,{for:{configurable:!0,value:function(t,e){return function(o,l,h,a){var p,v,m,E=l.get(o)||Wt(o,l);switch(typeof a){case"object":case"function":var P=E.w||(E.w=new f);return P.get(a)||(p=P,v=a,m=new o(h),p.set(v,m),m);default:var y=E.p||(E.p=Rt(null));return y[a]||(y[a]=new o(h))}}(this,Fe.get(t)||(n=t,r=new I,Fe.set(n,r),r),t,e??"default");var n,r}}}),Object.defineProperties(Y.prototype,{handleEvent:{value:function(t){var e=t.currentTarget;this["getAttribute"in e&&e.getAttribute("data-call")||"on"+t.type](t)}},html:le("html",ze),svg:le("svg",ze),state:le("state",function(){return this.defaultState}),defaultState:{get:function(){return{}}},dispatch:{value:function(t,e){var n=this._wire$;if(n){var r=new Z(t,{bubbles:!0,cancelable:!0,detail:e});return r.component=this,(n.dispatchEvent?n:n.firstChild).dispatchEvent(r)}return!1}},setState:{value:function(t,e){var n=this.state,r=typeof t=="function"?t.call(this,n):t;for(var o in r)n[o]=r[o];return e!==!1&&this.render(),this}}}),U}(document);const fe=/<+\w+[-]+\w/,ne={},he={};function It(){for(var s="",i="bcdfghjklmnpqrstvwxyz",f=0;f<15;f++)s+=i.charAt(Math.floor(Math.random()*i.length));return s}function re(s){return typeof s!="string"?s:s.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}const Ze=Symbol("safeHtml");function Jt(s){return{[Ze]:!0,value:s}}function qe(s){return s&&s[Ze]===!0}function Bt(s,i){if(s==="template"&&i==="")return!0;if(+i+""===i.trim())return+i;const f=i.toLowerCase().trim();return f==="true"?!0:f==="false"?!1:f[0]==="["&&f.slice(-1)==="]"||f[0]==="{"&&f.slice(-1)==="}"?JSON.parse(i):i}function Ge(s){return typeof s=="function"?Ge(s()):typeof s=="string"?re(s):typeof s=="number"||typeof s=="boolean"?String(s):Array.isArray(s)?re(s.join(", ")):s!==null&&typeof s=="object"?re(JSON.stringify(s)):""}function zt(s,i){let f=s;const u=/\{\+each\s+(\w+)\}([\s\S]*?)\{-each\}/g;f=f.replace(u,(w,x,b)=>{const _=i[x];return Array.isArray(_)?_.map((D,B)=>{let W=b;return W=W.replace(/\{@\}/g,B),W=W.replace(/\{\s*\.\.\.\s*\}/g,Ge(D)),typeof D=="object"&&D!==null&&Object.keys(D).forEach(q=>{W=W.replace(new RegExp("\\{"+q+"\\}","g"),re(String(D[q])))}),W}).join(""):""});const d=/\{\+if\s+(\w+)\}([\s\S]*?)\{else\}([\s\S]*?)\{-if\}/g;f=f.replace(d,(w,x,b,_)=>i[x]?b:_);const c=/\{\+if\s+(\w+)\}([\s\S]*?)\{-if\}/g;f=f.replace(c,(w,x,b)=>i[x]?b:"");const g=/\{\+unless\s+(\w+)\}([\s\S]*?)\{-unless\}/g;return f=f.replace(g,(w,x,b)=>i[x]?"":b),f}function Te(s){if(/\{\+(if|each|unless)\s/.test(s))return function(g){if(typeof g!="object")throw new Error("Templates must be passed an object. You passed "+JSON.stringify(g));let w=zt(s,g);return w=w.replace(/\{(\w+)\}/g,(x,b)=>g[b]!=null?re(String(g[b])):""),{html:w}};const f=/(\{[\w]+\})/g,u=s.split(f).reduce((c,g)=>(g[0]==="{"&&g.slice(-1)==="}"?c.keys.push(g.slice(1,-1)):c.markup.push(g),c),{markup:[],keys:[]});u.id=":"+u.markup.join().trim();function d(c){const g=[u.markup,...u.keys.map(w=>c[w])];return g.raw={value:u.markup},g}return function(g){if(typeof g!="object")throw new Error("Templates must be passed an object to be populated with. You passed "+JSON.stringify(g)+" to "+u.id);return te.wire(g,u.id)(...d(g))}}function _e(s,i){const f=i.replace(/-([a-z])/g,u=>u[1].toUpperCase());Object.defineProperty(s,f,{enumerable:!0,configurable:!0,get:()=>Bt(f,this.dataset[f]),set:u=>{ne[this.identifier].attrsToIgnore["data-"+i]=!0,typeof u=="string"?this.dataset[f]=u:this.dataset[f]=JSON.stringify(u)}})}function Ft(){const s={};return Object.keys(this.dataset).forEach(i=>_e.call(this,s,i.replace(/([A-Z])/g,f=>`-${f[0].toLowerCase()}`))),s}function Zt(s){const i={};for(let f=0;f<s.length;f++){const{value:u,name:d}=s[f];if(d==="template"&&!u){const c=ne[this.identifier];c.Html.template=Te(c.innerHTML),i[d]=!0}else(u.substr(0,3)==="fn-"||u.substr(0,3)==="ob-")&&he[u.substr(3)]&&he[u.substr(3)].localName===this.localName?i[d]=he[u.substr(3)].val:+u+""===(u+"").trim()?i[d]=+u:i[d]=u}return i}function qt(s){return s.some(i=>i.includes("{+each ")||i.includes("{+each{")||i.includes("{+if ")||i.includes("{+unless "))}function Ue(s,i){return i.split(".").reduce((f,u)=>f?.[u],s)}function Ve(s){const i=/\{(@|\s*\.\.\.\s*|\w+(?:\.\w+)*)\}/g,f=[],u=[];let d=0,c;for(;(c=i.exec(s))!==null;)f.push(s.substring(d,c.index)),u.push(c[1]),d=i.lastIndex;return f.push(s.substring(d)),{parts:f,props:u}}function Gt(s,i,f,u,d){let c=1;for(let g=i;g<s.length;g++){const w=s[g];let x=g===i?f:0;for(;x<w.length;){const b=w.indexOf(u,x),_=w.indexOf(d,x);if(_!==-1&&(b===-1||_<b)){if(--c===0)return{endIdx:g,endPos:_};x=_+d.length}else if(b!==-1)c++,x=b+u.length;else break}}throw new Error(`Unclosed ${u}} block. Missing ${d}.`)}function pe(s){const i=[...s];return i.raw=[...s],i}const Ye=new WeakMap;function je(s,i,f){if(s!==null&&typeof s=="object")return s;let u=Ye.get(f);return u||(u={},Ye.set(f,u)),u[i]||(u[i]={_value:s,_index:i}),u[i]._value=s,u[i]}function Ke(s,i,f){return s==="@"?f:s.trim()==="..."?i:Ue(i,s)}function Qe(s,i,f,u,d){const c=/\{\+each\s*\{(\w+(?:\.\w+)*)\}\}([\s\S]*?)\{-each\}/g,g=c.test(s);if(c.lastIndex=0,g){const _=[];let D=s,B;for(;(B=c.exec(s))!==null;){const[F,Z,G]=B,I=Ue(i,Z);if(!Array.isArray(I)){D=D.replace(F,"");continue}const Y=I.map((le,de)=>Qe(G.trim(),le,de,I,d));D=D.replace(F,`__NESTED_${_.length}__`),_.push(Y)}const{parts:W,props:q}=Ve(D),L=[],Q=[];let z=0;for(let F=0;F<W.length;F++){let Z=W[F],G;for(;G=Z.match(/__NESTED_(\d+)__/);){const[I,Y]=Z.split(G[0]);L.push(I),Q.push(_[parseInt(G[1],10)]),Z=Y||""}L.push(Z),F<q.length&&Q.push(Ke(q[z++],i,f))}return d(je(i,f,u),JSON.stringify(L))(pe(L),...Q)}const{parts:w,props:x}=Ve(s);if(x.length===0)return d(je(i,f,u),JSON.stringify([s]))(pe([s]));const b=x.map(_=>Ke(_,i,f));return d(je(i,f,u),JSON.stringify(w))(pe(w),...b)}function Xe(s){const i=[{type:"each",pattern:"{+each "},{type:"if",pattern:"{+if "},{type:"unless",pattern:"{+unless "}];let f=null;for(const u of i){const d=s.indexOf(u.pattern);d!==-1&&(f===null||d<f.pos)&&(f={type:u.type,pos:d,pattern:u.pattern})}return f}function Ut(s,i,f){const u=[],d=[];let c=0;for(;c<s.length;){const g=s[c],w=Xe(g);if(!w){u.push(g),c<i.length&&d.push(i[c]),c++;continue}const{type:x,pos:b,pattern:_}=w,D=`{-${x}}`;u.push(g.substring(0,b));const B=i[c],W=s[c+1];if(!W||!W.startsWith("}"))throw new Error(`{+${x}} syntax error: expected "}" after value`);const q=W.substring(1),{endIdx:L,endPos:Q}=Gt(s,c+1,1,_.slice(0,-1),D);let z,F="";if(L===c+1)z=q.substring(0,Q-1);else{z=q;for(let I=c+2;I<=L;I++)z+=String(i[I-1]??"")+(I<L?s[I]:s[I].substring(0,Q))}if(x==="if"||x==="unless"){const I=z.indexOf("{else}");I!==-1&&(F=z.substring(I+6),z=z.substring(0,I))}let Z;if(x==="each"){if(!Array.isArray(B)&&B!=null)throw new Error(`{+each} expects an array, got ${typeof B}`);Z=(B||[]).map((I,Y)=>Qe(z.trim(),I,Y,B||[],f))}else x==="if"?Z=B?{html:z.trim()}:{html:F.trim()}:x==="unless"&&(Z=B?{html:F.trim()}:{html:z.trim()});d.push(Z);const G=s[L].substring(Q+D.length);c=L,Xe(G)?(s=[...s.slice(0,L),G,...s.slice(L+1)],i=[...i.slice(0,L),...i.slice(L)]):(u.push(G),L<i.length&&d.push(i[L]),c=L+1)}for(;u.length<=d.length;)u.push("");return{strings:pe(u),values:d}}function Vt(s){const i=te.bind(s);function f(...u){if(qt(u[0])){const w=Ut(u[0],u.slice(1),f.wire);u=[w.strings,...w.values]}const d=u.slice(1).some(w=>w!=null&&typeof w!="string"),c=u[0].some(w=>fe.test(w));if(d&&c){let w=!1,x="";u[0].forEach((b,_,D)=>{if(fe.test(b)?(w=b.substring(b.match(fe).index).indexOf(">")===-1,x=w&&b.substring(b.indexOf(b.match(fe))).split(/\s/)[0].substr(1)):0<=b.indexOf(">")&&(w=!1,x=""),!w)return;const B=u[_+1];if(B!=null&&typeof B!="string"){const W=b.split(/\s/).pop().slice(0,-1);if(W.substring(0,2)==="on")throw new Error(`'on' is reserve for native elements. Change: "${W}" for "${x}" to something else`);if(W==="style")return;const q=It();he[q]={attrName:W,val:B,localName:x},u[_+1]=(typeof B=="function"?"fn-":"ob-")+q}})}const g=[u[0]];for(let w=1;w<u.length;w++){const x=u[w];qe(x)?g.push({html:x.value}):Array.isArray(x)?g.push(x.map(b=>qe(b)?{html:b.value}:typeof b=="string"?re(b):b)):g.push(x)}return i(...g)}return f.wire=function(...d){return te.wire(...d)},f.lite=function(...d){return te(...d)},f.raw=function(d){return Jt(d)},f}function Yt(s,i){const f=typeof i=="function"?i:()=>i,u=this.render,d=(...c)=>{i===void 0?(s.store=void 0,u(...c)):(s.store=f(),u(s.store,...c))};return this.render=d,d}function Kt(s){const i=s.this;new MutationObserver(u=>{if(!s.observe)return;if(u.filter(g=>g.type==="attributes").length>0){i.attrs=this.attachAttrs(this.attributes)||{},this.render();return}let c=this.textContent;s.innerHTML=this.innerHTML,i.attrs.template&&(i.attrs=this.attachAttrs(this.attributes)||{}),te.bind(s.shadow)``,i.wrappedContent=c,this.render()}).observe(this,{attributes:!0,childList:!0,subtree:!0})}function Qt(){this.identifier=Symbol(this.localName);const s=ne[this.identifier]={attrsToIgnore:{}};s.innerHTML=this.innerHTML;const i=s.this={element:this};i.wrappedContent=this.textContent,Kt.call(this,s),Object.getOwnPropertyNames(this.__proto__).filter(d=>!(d==="constructor"||d==="setup"||d==="render")).forEach(d=>{if(/^[A-Z]/.test(d)){let c;const g={},w=x=>{if(c!==void 0&&c.once)return c;if(c=this[d](x),c.text!==void 0&&typeof c.text=="string"?c={any:c.text,once:c.once}:c.html!==void 0&&typeof c.html=="string"&&(c={any:{html:c.html},once:c.once}),c.template)if(typeof c.template=="string"){g[c.template]||(g[c.template]=Te(c.template));const b=g[c.template](c.values||x);b&&b.html?c={any:{html:b.html},once:c.once}:c={any:b,once:c.once}}else if(typeof c.template=="object"&&typeof c.template.then=="function")c=Object.assign({},c,{any:c.template.then(b=>{let{template:_,values:D}=b;return!_&&typeof b=="string"&&(_=b,D={}),g[_]||(g[_]=Te(_)),Array.isArray(D)?c={any:D.map(g[_]),once:c.once}:c={any:g[_](D||x),once:c.once},c.any})});else throw new Error("unknow template type:"+typeof c.template+" | "+JSON.stringify(c.template));return c};te.define(d,w)}else i[d]=this[d].bind(i);delete this[d]});function f(){return"hyper-element: "+this.localName}Object.defineProperty(i,"toString",{value:f.bind(this),writable:!1}),s.shadow=this,s.Html=Vt(s.shadow),i.attrs=this.attachAttrs(this.attributes),i.dataset=this.getDataset();const u=this.render;this.render=(...d)=>{s.observe=!1,setTimeout(()=>{s.observe=!0},0),u.call(i,s.Html,...d),Object.getOwnPropertyNames(i.dataset).filter(c=>!this.dataset[c]).forEach(c=>{const g=i.dataset[c];_e.call(this,i.dataset,c.replace(/([A-Z])/g,w=>`-${w[0].toLowerCase()}`)),i.dataset[c]=g})},this.setup&&(s.teardown=this.setup.call(i,Yt.bind(this,i))),this.render()}class Xt extends HTMLElement{identifier;get innerShadow(){return ne[this.identifier].shadow.innerHTML}connectedCallback(){Qt.call(this)}addDataset(i,f){_e.call(this,i,f)}getDataset(){return Ft.call(this)}attachAttrs(i){return Zt.call(this,i)}attributeChangedCallback(i,f,u){const d=ne[this.identifier];if(!d)return;u!==null&&+u+""===u.trim()&&(u=+u);const{attrsToIgnore:c}=d,g=d.this;if(0<=i.indexOf("data-")){const w=i.slice(5);if(f===null)this.addDataset(g.dataset,w);else if(u===null){const x=w.replace(/-([a-z])/g,b=>b[1].toUpperCase());delete g.dataset[x]}}if(u!==g.attrs[i])if(u===null?delete g.attrs[i]:g.attrs[i]=u,c[i]){delete c[i];return}else this.render()}disconnectedCallback(){const i=ne[this.identifier];i.teardown&&i.teardown()}setup(i){}render(i,...f){}}console.info("hyper-element v1.0.3 by Brian Shannon (github.com/codemeasandwich)"),window.hyperElement=Xt})();
1
+ (function(){const P=/<+\w+[-]+\w/,k={},H={};function Ue(){for(var e="",t="bcdfghjklmnpqrstvwxyz",n=0;n<15;n++)e+=t.charAt(Math.floor(Math.random()*t.length));return e}function j(e){return typeof e!="string"?e:e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}const le=Symbol("safeHtml");function Be(e){return{[le]:!0,value:e}}function J(e){return e&&e[le]===!0}const $=1,fe=2,O=4,ze=8,Y=16,K=32,q=64,Je=128,Ye=256,Ke=512,qe=1024,ae=1,ue=2,G=3,X=8,Ge=11,Xe=O|$,Ze=K|$,he=new Set(["plaintext","script","style","textarea","title","xmp"]),pe=new Set(["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"]),A=Object.freeze([]),de=Object.freeze({});let I=document.createElement("template"),W;function Z(e,t=!1){if(t)return W||(W=document.createRange(),W.selectNodeContents(document.createElementNS("http://www.w3.org/2000/svg","svg"))),W.createContextualFragment(e);I.innerHTML=e;const n=I.content;return I=I.cloneNode(!1),n}function Qe(e,t){return t.reduceRight((n,r)=>r<0?n.content:n.childNodes[r],e)}function Ve(e,t,n,r){const s=r.parentNode,o=t.length;let l=e.length,c=o,i=0,f=0,a=null;for(;i<l||f<c;)if(l===i){const u=c<o?f?n(t[f-1],-0).nextSibling:n(t[c],0):r;for(;f<c;)s.insertBefore(n(t[f++],1),u)}else if(c===f)for(;i<l;)(!a||!a.has(e[i]))&&n(e[i],-1).remove(),i++;else if(e[i]===t[f])i++,f++;else if(e[l-1]===t[c-1])l--,c--;else if(e[i]===t[c-1]&&t[f]===e[l-1]){const u=n(e[--l],-0).nextSibling;s.insertBefore(n(t[f++],1),n(e[i++],-0).nextSibling),s.insertBefore(n(t[--c],1),u),e[l]=t[c]}else{if(!a){a=new Map;let d=f;for(;d<c;)a.set(t[d],d++)}const u=a.get(e[i])??-1;if(u<0)n(e[i++],-1).remove();else if(f<u&&u<c){let d=i,p=1;for(;++d<l&&d<c&&a.get(e[d])===u+p;)p++;if(p>u-f){const y=n(e[i],0);for(;f<u;)s.insertBefore(n(t[f++],1),y)}else s.replaceChild(n(t[f++],1),n(e[i++],-1))}else i++}return t}let ye=!1,me;const S=Symbol("nodes"),Q=({firstChild:e,lastChild:t})=>{const n=me||(me=document.createRange());return n.setStartAfter(e),n.setEndAfter(t),n.deleteContents(),e};function V(e,t){return ye&&e.nodeType===11?1/t<0?t?Q(e):e.lastChild:t?e.valueOf():e.firstChild:e}const et={get(){return this.firstChild.parentNode}},tt={value(e){Q(this).replaceWith(e)}},nt={value(){Q(this).remove()}},rt={value(){const{parentNode:e}=this;if(e===this)this[S]===A&&(this[S]=[...this.childNodes]);else{if(e){let{firstChild:t,lastChild:n}=this;for(this[S]=[t];t!==n;)this[S].push(t=t.nextSibling)}this.replaceChildren(...this[S])}return this}};function F(e){const t=document.createComment("<>"),n=document.createComment("</>");return e.replaceChildren(t,...e.childNodes,n),ye=!0,Object.defineProperties(e,{[S]:{writable:!0,value:A},firstChild:{value:t},lastChild:{value:n},parentNode:et,valueOf:rt,replaceWith:tt,remove:nt})}F.prototype=DocumentFragment.prototype;const ge=new WeakMap;class st extends Map{constructor(){super(),this._=new FinalizationRegistry(t=>this.delete(t))}get(t){const n=super.get(t)?.deref();return n&&ge.get(n)}set(t,n,r){ge.set(n,r),this._.register(n,t),super.set(t,new WeakRef(n))}}class D{constructor(t){this.type=t,this.parent=null}}class be extends D{constructor(t){super(X),this.data=t}toString(){return`<!--${this.data}-->`}}class ee extends D{constructor(t){super(G),this.data=t}toString(){return this.data}}class U extends D{constructor(t,n=!1){super(ae),this.name=t,this.xml=n,this.props=de,this.children=A}toString(){const{xml:t,name:n,props:r,children:s}=this,o=s.length;let l=`<${n}`;for(const c in r){const i=r[c];i!=null&&(typeof i=="boolean"?i&&(l+=t?` ${c}=""`:` ${c}`):l+=` ${c}="${i}"`)}if(o){l+=">";for(let c=!t&&he.has(n),i=0;i<o;i++)l+=c?s[i].data:s[i];l+=`</${n}>`}else t?l+=" />":l+=pe.has(n)?">":`></${n}>`;return l}}class it extends D{constructor(){super(Ge),this.name="#fragment",this.children=A}toString(){return this.children.join("")}}const C="\0",ot=`"${C}"`,ct=`'${C}'`,lt=/\x00|<[^><\s]+/g,ft=/([^\s/>=]+)(?:=(\x00|(?:(['"])[\s\S]*?\3)))?/g,T=(e,t)=>(e.children===A&&(e.children=[]),e.children.push(t),t.parent=e,t),at=(e,t,n)=>{e.props===de&&(e.props={}),e.props[t]=n},te=e=>{const t=[];for(;e.parent;)e.type===ae&&e.name==="template"&&t.push(-1),t.push(e.parent.children.indexOf(e)),e=e.parent;return t},we=(e,t)=>{do e=e.parent;while(t.has(e));return e},ut=(e,t,n,r)=>[t,n,r];function ht(e=ut){return(t,n,r)=>{const s=t.join(C).replace(/^\s+/,""),o=new Set,l=[];let c=new it,i=0,f=0,a=0,u=A;for(const d of s.matchAll(lt)){if(f>0){f--;continue}const p=d[0],y=d.index;if(i<y&&T(c,new ee(s.slice(i,y))),p===C){c.name==="table"&&(c=T(c,new U("tbody",r)),o.add(c));const h=T(c,new be("\u25E6"));l.push(e(h,X,te(h),"",n[a++])),i=y+1}else if(p.startsWith("<!")){const h=s.indexOf(">",y+2);if(s.slice(h-2,h+1)==="-->"){const m=s.slice(y+4,h-2);m[0]==="!"&&T(c,new be(m.slice(1).replace(/!$/,"")))}i=h+1}else if(p.startsWith("</")){const h=s.indexOf(">",y+2);r&&c.name==="svg"&&(r=!1),c=we(c,o),i=h+1}else{const h=y+p.length,m=s.indexOf(">",h),w=p.slice(1);let b=w;if(r||(b=b.toLowerCase(),c.name==="table"&&(b==="tr"||b==="td")&&(c=T(c,new U("tbody",r)),o.add(c)),c.name==="tbody"&&b==="td"&&(c=T(c,new U("tr",r)),o.add(c))),c=T(c,new U(b,r?b!=="svg":!1)),u=A,h<m){let E=!1;for(const[,_,g]of s.slice(h,m).matchAll(ft))if(g===C||g===ot||g===ct||(E=_.endsWith(C))){const L=u===A?u=te(c):u;l.push(e(c,ue,L,E?_.slice(0,-1):_,n[a++])),E=!1,f++}else at(c,_,g?g.slice(1,-1):!0);u=A}i=m+1;const v=m>0&&s[m-1]==="/";if(r)v&&(c=c.parent);else if(v||pe.has(b))c=v?we(c,o):c.parent;else if(b==="svg")r=!0;else if(he.has(b)){const E=s.indexOf(`</${w}>`,i),_=s.slice(i,E);_.trim()===C?(f++,l.push(e(c,G,te(c),"",n[a++]))):T(c,new ee(_)),c=c.parent,i=E+w.length+3,f++;continue}}}return i<s.length&&T(c,new ee(s.slice(i))),[c,l]}}const M=Symbol("ref");let ne=!1;function pt(){const e=ne;return ne=!1,e}const Ee=new WeakMap,dt=(e,t)=>{let n=Ee.get(e);return n?n.data=t:Ee.set(e,n=document.createTextNode(t)),n},_e=new Map,re=e=>{let t=_e.get(e);return t||_e.set(e,t=ve(e)),t},xe=e=>(t,n)=>{n==null?t.removeAttribute(e):t.setAttribute(e,n)},ve=e=>(t,n)=>{t[e]=n},yt=e=>(t,n)=>{t.toggleAttribute(e,!!n)},mt=({dataset:e},t)=>{for(const[n,r]of Object.entries(t))r==null?delete e[n]:e[n]=r},gt=(e,t)=>{if(t==null)e.removeAttribute("style");else if(typeof t=="object")for(const[n,r]of Object.entries(t))r==null?e.style.removeProperty(n):e.style.setProperty(n,r);else e.setAttribute("style",t)},bt=(e,t,n)=>n?(r,s)=>{const o=r[t];o?.length&&r.removeEventListener(e,...o),s&&r.addEventListener(e,...s),r[t]=s}:(r,s)=>{const o=r[t];o&&r.removeEventListener(e,o),s&&r.addEventListener(e,s),r[t]=s},wt=e=>e.map(t=>typeof t=="string"||typeof t=="number"?document.createTextNode(String(t)):t),Et=(e,t)=>{const n=wt(t);e[S]=Ve(e[S]||A,n,V,e)},Ae=(e,t)=>{const n=typeof t=="object"?t??e:dt(e,t),r=e[S]??e;n!==r&&r.replaceWith(V(e[S]=n,1))},_t=e=>(t,n)=>{if(n&&typeof n=="object"&&n.__unsafe){const r=n.value,s=t[M]??(t[M]={});s.v!==r&&(s.f=F(Z(r,e)),s.v=r),n=s.f}Ae(t,n)},xt=e=>(t,n)=>{const r=n&&typeof n=="object"&&n.__unsafe?n.value:n,s=t[M]??(t[M]={});s.v!==r&&(s.f=F(Z(r,e)),s.v=r),Ae(t,s.f)};function vt(e,t,n,r,s){switch(t){case X:return Array.isArray(s)?[n,Et,Xe]:s&&typeof s=="object"&&s.__unsafe?[n,xt(e.xml),qe]:[n,_t(e.xml),O];case G:return[n,re("textContent"),Ye];case ue:switch(r.charAt(0)){case"@":{const o=Array.isArray(s);return[n,bt(r.slice(1),Symbol(r),o),o?Ze:K]}case"?":return[n,yt(r.slice(1)),Ke];case".":return r==="..."?[n,(o,l)=>{for(const[c,i]of Object.entries(l))xe(c)(o,i)},Je]:[n,ve(r.slice(1)),Y];default:return r==="data"&&!/^object$/i.test(e.name)?[n,mt,ze]:r==="key"?(ne=!0,[n,!0,q]):r==="ref"?[n,re(M),Y]:r.startsWith("on")?[n,re(r.toLowerCase()),Y]:r==="style"?[n,gt,fe]:[n,xe(r),fe]}}}const R=e=>V(e.n?e.update(e):e.valueOf(),1),Se=(e,t)=>{const n=[],r=e.length,s=t.length;for(let o,l,c=0,i=0;i<s;i++)o=t[i],n[i]=c<r&&(l=e[c++]).t===o.t?(t[i]=l).update(o):o.valueOf();return n},At=(e,t)=>e.t[2]?.get(t)?.update(e)??e.valueOf(),St=(e,t)=>(e.t===t.t?e.update(t):(e.n.replaceWith(R(t)),e=t),e);class N{constructor(t,n){this.t=t,this.v=n,this.n=null,this.k=-1}valueOf(){const[t,n,r]=this.t,s=document.importNode(t,!0),o=this.v;let l=o.length,c=A,i,f;if(l>0)for(c=n.slice(0);l--;){const[p,y,h]=n[l],m=o[l];f!==p&&(i=Qe(s,p),f=p);let w=!0;h&$?h&O&&(w=!1,m.length&&y(i,m[0]instanceof N?Se(A,m):m)):h&O&&m instanceof N&&(w=!1,y(i,R(m))),w&&(h===q?this.k=l:y(i,m)),c[l]=[h,y,m,i]}const{childNodes:a}=s,u=a.length,d=u===1?a[0]:u?F(s):s;return this.v=c,this.n=d,this.k>=0&&r&&r.set(c[this.k][2],d,this),d}update(t){const n=this.k,r=this.v,s=t.v;if(n>=0&&r[n][2]!==s[n])return At(t,s[n]);let{length:o}=r;for(;o--;){const l=r[o],[c,i,f]=l;if(c===q)continue;let a=s[o],u=a;if(c&$){if(c&O)a.length&&a[0]instanceof N&&(u=Se(f,a));else if(c&K&&a[0]===f[0])continue}else c&O&&f instanceof N&&(a=St(f,a),u=a.n);a!==f&&(l[2]=a,i(l[3],u))}return this.n}}const Tt=ht(vt),Te=new WeakMap,Ne=new WeakMap,Ce=(e,t=new WeakMap)=>(n,...r)=>{let s=t.get(n);return s||(s=Tt(n,r,e),s.push(pt()?new st:null),s[0]=Z(s[0].toString(),e),t.set(n,s)),new N(s,r)},se=Ce(!1),Dt=Ce(!0);function ke(e){return(t,...n)=>{const r=se(t,...n),s=Te.get(e);if(!s||s.t!==r.t){const o=R(r);e.replaceChildren(o),Te.set(e,r)}else s.update(r);return e}}function Oe(e,t=""){let n=Ne.get(e);return n||(n=new Map,Ne.set(e,n)),(r,...s)=>{let o=n.get(t);if(!o||o.tpl!==r){const l=se(r,...s);return o={hole:l,tpl:r},n.set(t,o),l}return new N(o.hole.t,s)}}let x=null;const B=[];function Ut(e){let t=e;const n=new Set;return{get value(){return x&&n.add(x),t},set value(r){if(t!==r){t=r;for(const s of n)s()}},peek(){return t},subscribe(r){return n.add(r),()=>n.delete(r)}}}function Bt(e){let t,n=!0;const r=new Set,s=()=>{n=!0;for(const o of r)o()};return{get value(){if(x&&r.add(x),n){const o=x;x=s,B.push(s);try{t=e()}finally{B.pop(),x=o}n=!1}return t},peek(){if(n){const o=x;x=null;try{t=e()}finally{x=o}n=!1}return t}}}function zt(e){let t=null;const n=()=>{typeof t=="function"&&t();const r=x;x=n,B.push(n);try{t=e()}finally{B.pop(),x=r}};return n(),()=>{typeof t=="function"&&t()}}function Jt(e){const t=x;x=null;try{return e()}finally{x=t}}let ie=0,je=new Set;function Yt(e){ie++;try{e()}finally{if(ie--,ie===0){const t=je;je=new Set;for(const n of t)n()}}}function Nt(e,t){if(e==="template"&&t==="")return!0;if(+t+""===t.trim())return+t;const n=t.toLowerCase().trim();return n==="true"?!0:n==="false"?!1:n[0]==="["&&n.slice(-1)==="]"||n[0]==="{"&&n.slice(-1)==="}"?JSON.parse(t):t}function Me(e){return typeof e=="function"?Me(e()):typeof e=="string"?j(e):typeof e=="number"||typeof e=="boolean"?String(e):Array.isArray(e)?j(e.join(", ")):e!==null&&typeof e=="object"?j(JSON.stringify(e)):""}function Ct(e,t){let n=e;const r=/\{\+each\s+(\w+)\}([\s\S]*?)\{-each\}/g;n=n.replace(r,(c,i,f)=>{const a=t[i];return Array.isArray(a)?a.map((u,d)=>{let p=f;return p=p.replace(/\{@\}/g,d),p=p.replace(/\{\s*\.\.\.\s*\}/g,Me(u)),typeof u=="object"&&u!==null&&Object.keys(u).forEach(y=>{p=p.replace(new RegExp("\\{"+y+"\\}","g"),j(String(u[y])))}),p}).join(""):""});const s=/\{\+if\s+(\w+)\}([\s\S]*?)\{else\}([\s\S]*?)\{-if\}/g;n=n.replace(s,(c,i,f,a)=>t[i]?f:a);const o=/\{\+if\s+(\w+)\}([\s\S]*?)\{-if\}/g;n=n.replace(o,(c,i,f)=>t[i]?f:"");const l=/\{\+unless\s+(\w+)\}([\s\S]*?)\{-unless\}/g;return n=n.replace(l,(c,i,f)=>t[i]?"":f),n}function Re(e){if(/\{\+(if|each|unless)\s/.test(e))return function(l){if(typeof l!="object")throw new Error("Templates must be passed an object. You passed "+JSON.stringify(l));let c=Ct(e,l);return c=c.replace(/\{(\w+)\}/g,(i,f)=>l[f]!=null?j(String(l[f])):""),{html:c}};const n=/(\{[\w]+\})/g,r=e.split(n).reduce((o,l)=>(l[0]==="{"&&l.slice(-1)==="}"?o.keys.push(l.slice(1,-1)):o.markup.push(l),o),{markup:[],keys:[]});r.id=":"+r.markup.join().trim();function s(o){const l=[r.markup,...r.keys.map(c=>o[c]!=null?o[c]:"")];return l.raw={value:r.markup},l}return function(l){if(typeof l!="object")throw new Error("Templates must be passed an object to be populated with. You passed "+JSON.stringify(l)+" to "+r.id);return Oe(l,r.id)(...s(l))}}function oe(e,t){const n=t.replace(/-([a-z])/g,r=>r[1].toUpperCase());Object.defineProperty(e,n,{enumerable:!0,configurable:!0,get:()=>Nt(n,this.dataset[n]),set:r=>{k[this.identifier].attrsToIgnore["data-"+t]=!0,typeof r=="string"?this.dataset[n]=r:this.dataset[n]=JSON.stringify(r)}})}function kt(){const e={};return Object.keys(this.dataset).forEach(t=>oe.call(this,e,t.replace(/([A-Z])/g,n=>`-${n[0].toLowerCase()}`))),e}function Ot(e){const t={};for(let n=0;n<e.length;n++){const{value:r,name:s}=e[n];if(s==="template"&&!r){const o=k[this.identifier];o.Html.template=Re(o.innerHTML),t[s]=!0}else(r.substr(0,3)==="fn-"||r.substr(0,3)==="ob-")&&H[r.substr(3)]&&H[r.substr(3)].localName===this.localName?t[s]=H[r.substr(3)].val:+r+""===(r+"").trim()?t[s]=+r:t[s]=r}return t}function jt(e){return e.some(t=>t.includes("{+each ")||t.includes("{+each{")||t.includes("{+if ")||t.includes("{+unless "))}function Le(e,t){return t.split(".").reduce((n,r)=>n?.[r],e)}function Pe(e){const t=/\{(@|\s*\.\.\.\s*|\w+(?:\.\w+)*)\}/g,n=[],r=[];let s=0,o;for(;(o=t.exec(e))!==null;)n.push(e.substring(s,o.index)),r.push(o[1]),s=t.lastIndex;return n.push(e.substring(s)),{parts:n,props:r}}function Mt(e,t,n,r,s){let o=1;for(let l=t;l<e.length;l++){const c=e[l];let i=l===t?n:0;for(;i<c.length;){const f=c.indexOf(r,i),a=c.indexOf(s,i);if(a!==-1&&(f===-1||a<f)){if(--o===0)return{endIdx:l,endPos:a};i=a+s.length}else if(f!==-1)o++,i=f+r.length;else break}}throw new Error(`Unclosed ${r}} block. Missing ${s}.`)}function z(e){const t=[...e];return t.raw=[...e],t}const He=new WeakMap;function ce(e,t,n){if(e!==null&&typeof e=="object")return e;let r=He.get(n);return r||(r={},He.set(n,r)),r[t]||(r[t]={_value:e,_index:t}),r[t]._value=e,r[t]}function $e(e,t,n){return e==="@"?n:e.trim()==="..."?t:Le(t,e)}function Ie(e,t,n,r,s){const o=/\{\+each\s*\{(\w+(?:\.\w+)*)\}\}([\s\S]*?)\{-each\}/g,l=o.test(e);if(o.lastIndex=0,l){const a=[];let u=e,d;for(;(d=o.exec(e))!==null;){const[b,v,E]=d,_=Le(t,v);if(!Array.isArray(_)){u=u.replace(b,"");continue}const g=_.map((L,Ft)=>Ie(E.trim(),L,Ft,_,s));u=u.replace(b,`__NESTED_${a.length}__`),a.push(g)}const{parts:p,props:y}=Pe(u),h=[],m=[];let w=0;for(let b=0;b<p.length;b++){let v=p[b],E;for(;E=v.match(/__NESTED_(\d+)__/);){const[_,g]=v.split(E[0]);h.push(_),m.push(a[parseInt(E[1],10)]),v=g||""}h.push(v),b<y.length&&m.push($e(y[w++],t,n))}return s(ce(t,n,r),JSON.stringify(h))(z(h),...m)}const{parts:c,props:i}=Pe(e);if(i.length===0)return s(ce(t,n,r),JSON.stringify([e]))(z([e]));const f=i.map(a=>$e(a,t,n));return s(ce(t,n,r),JSON.stringify(c))(z(c),...f)}function We(e){const t=[{type:"each",pattern:"{+each "},{type:"if",pattern:"{+if "},{type:"unless",pattern:"{+unless "}];let n=null;for(const r of t){const s=e.indexOf(r.pattern);s!==-1&&(n===null||s<n.pos)&&(n={type:r.type,pos:s,pattern:r.pattern})}return n}function Rt(e,t,n){const r=[],s=[];let o=0;for(;o<e.length;){const l=e[o],c=We(l);if(!c){r.push(l),o<t.length&&s.push(t[o]),o++;continue}const{type:i,pos:f,pattern:a}=c,u=`{-${i}}`;r.push(l.substring(0,f));const d=t[o],p=e[o+1];if(!p||!p.startsWith("}"))throw new Error(`{+${i}} syntax error: expected "}" after value`);const y=p.substring(1),{endIdx:h,endPos:m}=Mt(e,o+1,1,a.slice(0,-1),u);let w,b="";if(h===o+1)w=y.substring(0,m-1);else{w=y;for(let g=o+2;g<=h;g++)w+=String(t[g-1]??"")+(g<h?e[g]:e[g].substring(0,m))}if(i==="if"||i==="unless"){const g=w.indexOf("{else}");g!==-1&&(b=w.substring(g+6),w=w.substring(0,g))}let v;const E=g=>g.replace(/^\s+/,"");if(i==="each"){if(!Array.isArray(d)&&d!=null)throw new Error(`{+each} expects an array, got ${typeof d}`);v=(d||[]).map((g,L)=>Ie(E(w),g,L,d||[],n))}else i==="if"?v=d?{html:E(w)}:{html:E(b)}:i==="unless"&&(v=d?{html:E(b)}:{html:E(w)});s.push(v);const _=e[h].substring(m+u.length);o=h,We(_)?(e=[...e.slice(0,h),_,...e.slice(h+1)],t=[...t.slice(0,h),...t.slice(h)]):(r.push(_),h<t.length&&s.push(t[h]),o=h+1)}for(;r.length<=s.length;)r.push("");return{strings:z(r),values:s}}function Lt(e){const t=ke(e);function n(...r){if(jt(r[0])){const c=Rt(r[0],r.slice(1),n.wire);r=[c.strings,...c.values]}const s=r.slice(1).some(c=>c!=null&&typeof c!="string"),o=r[0].some(c=>P.test(c));if(s&&o){let c=!1,i="";r[0].forEach((f,a,u)=>{if(P.test(f)?(c=f.substring(f.match(P).index).indexOf(">")===-1,i=c&&f.substring(f.indexOf(f.match(P))).split(/\s/)[0].substr(1)):0<=f.indexOf(">")&&(c=!1,i=""),!c)return;const d=r[a+1];if(d!=null&&typeof d!="string"){const p=f.split(/\s/).pop().slice(0,-1);if(p.substring(0,2)==="on")throw new Error(`'on' is reserve for native elements. Change: "${p}" for "${i}" to something else`);if(p==="style")return;const y=Ue();H[y]={attrName:p,val:d,localName:i},r[a+1]=(typeof d=="function"?"fn-":"ob-")+y}})}const l=[r[0]];for(let c=1;c<r.length;c++){let i=r[c];if(i&&typeof i=="object"&&!Array.isArray(i)&&!J(i)){const f=Object.keys(i);if(f.length===1&&/^[A-Z]/.test(f[0])){const a=f[0],u=i[a];n._fragments&&n._fragments[a]&&(i=n._fragments[a](u))}}J(i)?l.push({__unsafe:!0,value:i.value}):i&&typeof i=="object"&&i.__unsafe?l.push(i):i&&typeof i=="object"&&i.html!==void 0?l.push({__unsafe:!0,value:i.html}):Array.isArray(i)?l.push(i.map(f=>J(f)?{__unsafe:!0,value:f.value}:f)):l.push(i)}return t(...l)}return n._fragments=null,n.wire=function(s,o=""){return Oe(s,o)},n.raw=function(s){return Be(s)},n.lite=function(s,...o){return s&&s.raw?se(s,...o):ke(s)},n}function Pt(e,t){const n=typeof t=="function"?t:()=>t,r=this._baseRender||this.render;this._baseRender=r;const s=(...o)=>{t===void 0?(e.store=void 0,r(...o)):(e.store=n(),r(e.store,...o))};return this.render=s,this._onNextInitialized?s():this._onNextInitialized=!0,s}function Ht(e){const t=e.this;new MutationObserver(r=>{if(!e.observe)return;if(r.filter(l=>l.type==="attributes").length>0){t.attrs=this.attachAttrs(this.attributes)||{},this.render();return}let o=this.textContent;e.innerHTML=this.innerHTML,t.attrs.template&&(t.attrs=this.attachAttrs(this.attributes)||{}),hyperHTML.bind(e.shadow)``,t.wrappedContent=o,this.render()}).observe(this,{attributes:!0,childList:!0,subtree:!0})}function $t(e,t,n,r){if(e.text!==void 0){if(typeof e.text=="string")return e.text;if(e.text&&typeof e.text.then=="function")return e.text.then(s=>{e.text=s,r&&r()}),e.placeholder!==void 0?e.placeholder:""}if(e.html!==void 0){if(typeof e.html=="string")return{__unsafe:!0,value:e.html};if(e.html&&typeof e.html.then=="function")return e.html.then(s=>{e.html=s,r&&r()}),e.placeholder!==void 0?e.placeholder:""}if(e.template)if(typeof e.template=="string"){n[e.template]||(n[e.template]=Re(e.template));const s=e.values||t;if(Array.isArray(s))return{__unsafe:!0,value:s.map(n[e.template]).map(i=>{if(i&&i.html)return i.html;if(i instanceof N){const f=R(i);if(f.nodeType===11){const a=document.createElement("div");return a.appendChild(f.cloneNode(!0)),a.innerHTML}return f.outerHTML||f.textContent}return String(i)}).join("")};const o=n[e.template](s);if(o&&o.html)return{__unsafe:!0,value:o.html};if(o instanceof N){const l=R(o);if(l.nodeType===11){const c=document.createElement("div");return c.appendChild(l.cloneNode(!0)),{__unsafe:!0,value:c.innerHTML}}return{__unsafe:!0,value:l.outerHTML||l.textContent}}return o}else{if(typeof e.template=="object"&&typeof e.template.then=="function")return e.template.then(s=>{let{template:o,values:l}=s;!o&&typeof s=="string"&&(o=s,l={}),e.template=o,e.values=l,r&&r()}),e.placeholder!==void 0?e.placeholder:"";throw new Error("unknow template type:"+typeof e.template+" | "+JSON.stringify(e.template))}return e.any!==void 0?e.any&&typeof e.any.then=="function"?(e.any.then(s=>{e.any=s,r&&r()}),e.placeholder!==void 0?e.placeholder:""):e.any:e}function It(){this.identifier=Symbol(this.localName);const e=k[this.identifier]={attrsToIgnore:{}};e.innerHTML=this.innerHTML;const t=e.this={element:this};t.wrappedContent=this.textContent;const n={};Ht.call(this,e),Object.getOwnPropertyNames(this.__proto__).filter(o=>!(o==="constructor"||o==="setup"||o==="render")).forEach(o=>{if(/^[A-Z]/.test(o)){const l={};n[o]=c=>{if(n[o]._cached!==void 0)return n[o]._cached;let i;n[o]._asyncResult?i=n[o]._asyncResult:i=this[o](c);const f=i.text&&typeof i.text.then=="function"||i.html&&typeof i.html.then=="function"||i.any&&typeof i.any.then=="function"||i.template&&typeof i.template.then=="function";f&&(n[o]._asyncResult=i);const u=$t(i,c,l,()=>{this.render()});return i.once&&!f&&(n[o]._cached=u),!f&&n[o]._asyncResult&&delete n[o]._asyncResult,u}}else t[o]=this[o].bind(t);delete this[o]}),e.fragments=n;function r(){return"hyper-element: "+this.localName}Object.defineProperty(t,"toString",{value:r.bind(this),writable:!1}),e.shadow=this,e.Html=Lt(e.shadow),e.Html._fragments=n,t.attrs=this.attachAttrs(this.attributes),t.dataset=this.getDataset();const s=this.render;this.render=(...o)=>{e.observe=!1,setTimeout(()=>{e.observe=!0},0),s.call(t,e.Html,...o),Object.getOwnPropertyNames(t.dataset).filter(l=>!this.dataset[l]).forEach(l=>{const c=t.dataset[l];oe.call(this,t.dataset,l.replace(/([A-Z])/g,i=>`-${i[0].toLowerCase()}`)),t.dataset[l]=c})},this.setup&&(e.teardown=this.setup.call(t,Pt.bind(this,t))),this.render()}class Fe extends HTMLElement{identifier;get innerShadow(){return k[this.identifier].shadow.innerHTML}connectedCallback(){It.call(this)}addDataset(t,n){oe.call(this,t,n)}getDataset(){return kt.call(this)}attachAttrs(t){return Ot.call(this,t)}attributeChangedCallback(t,n,r){const s=k[this.identifier];if(!s)return;r!==null&&+r+""===r.trim()&&(r=+r);const{attrsToIgnore:o}=s,l=s.this;if(0<=t.indexOf("data-")){const c=t.slice(5);if(n===null)this.addDataset(l.dataset,c);else if(r===null){const i=c.replace(/-([a-z])/g,f=>f[1].toUpperCase());delete l.dataset[i]}}if(r!==l.attrs[t])if(r===null?delete l.attrs[t]:l.attrs[t]=r,o[t]){delete o[t];return}else this.render()}disconnectedCallback(){const t=k[this.identifier];t.teardown&&t.teardown()}setup(t){}render(t,...n){}}function Wt(e,t){let n=null;if(typeof e=="string"?n=e:t=e,typeof t=="function"&&(t={render:t}),!t||typeof t!="object")throw new Error("hyperElement: definition must be an object or render function");const{observedAttributes:r=[],setup:s,render:o,...l}=t;if(!o||typeof o!="function")throw new Error("hyperElement: render function is required");class c extends Fe{static get observedAttributes(){return r}}s&&(c.prototype.setup=function(i){return s(this,i)}),c.prototype.render=function(i,...f){return o(i,this,...f)};for(const[i,f]of Object.entries(l))typeof f=="function"&&(c.prototype[i]=function(...a){return f(this,...a)});return n&&customElements.define(n,c),c}console.info("hyper-element v1.1.0 by Brian Shannon (github.com/codemeasandwich)");const De=new Proxy(Fe,{apply(e,t,n){if(n.length===0)throw new Error("hyperElement requires a definition object or render function");return Wt(...n)},construct(e,t,n){if(n!==De)return Reflect.construct(e,t,n);throw new Error("hyperElement cannot be instantiated directly. Use class extension or functional API.")}});window.hyperElement=De})();
3
2
  //# sourceMappingURL=hyperElement.min.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["hyperElement.bundle.js"],
4
- "sourcesContent": ["// hyper-element with hyperHTML bundled - zero runtime dependencies\n(function () {\n // hyperHTML (c) Andrea Giammarchi (ISC)\n /*! (c) Andrea Giammarchi (ISC) */var hyperHTML=function(N){\"use strict\";var t={};try{t.WeakMap=WeakMap}catch(e){t.WeakMap=function(t,e){var n=e.defineProperty,r=e.hasOwnProperty,i=a.prototype;return i.delete=function(e){return this.has(e)&&delete e[this._]},i.get=function(e){return this.has(e)?e[this._]:void 0},i.has=function(e){return r.call(e,this._)},i.set=function(e,t){return n(e,this._,{configurable:!0,value:t}),this},a;function a(e){n(this,\"_\",{value:\"_@ungap/weakmap\"+t++}),e&&e.forEach(o,this)}function o(e){this.set(e[0],e[1])}}(Math.random(),Object)}var s=t.WeakMap,i={};try{i.WeakSet=WeakSet}catch(e){!function(e,t){var n=r.prototype;function r(){t(this,\"_\",{value:\"_@ungap/weakmap\"+e++})}n.add=function(e){return this.has(e)||t(e,this._,{value:!0,configurable:!0}),this},n.has=function(e){return this.hasOwnProperty.call(e,this._)},n.delete=function(e){return this.has(e)&&delete e[this._]},i.WeakSet=r}(Math.random(),Object.defineProperty)}function m(e,t,n,r,i,a){for(var o=(\"selectedIndex\"in t),u=o;r<i;){var c,l=e(n[r],1);t.insertBefore(l,a),o&&u&&l.selected&&(u=!u,c=t.selectedIndex,t.selectedIndex=c<0?r:f.call(t.querySelectorAll(\"option\"),l)),r++}}function y(e,t){return e==t}function b(e){return e}function w(e,t,n,r,i,a,o){var u=a-i;if(u<1)return-1;for(;u<=n-t;){for(var c=t,l=i;c<n&&l<a&&o(e[c],r[l]);)c++,l++;if(l===a)return t;t=c+1}return-1}function x(e,t,n,r,i){return n<r?e(t[n],0):0<n?e(t[n-1],-0).nextSibling:i}function E(e,t,n,r){for(;n<r;)a(e(t[n++],-1))}function C(e,t,n,r,i,a,o,u,c,l,s,f,h){!function(e,t,n,r,i,a,o,u,c){for(var l=[],s=e.length,f=o,h=0;h<s;)switch(e[h++]){case 0:i++,f++;break;case 1:l.push(r[i]),m(t,n,r,i++,i,f<u?t(a[f],0):c);break;case-1:f++}for(h=0;h<s;)switch(e[h++]){case 0:o++;break;case-1:-1<l.indexOf(a[o])?o++:E(t,a,o++,o)}}(function(e,t,n,r,i,a,o){var u,c,l,s,f,h,d=n+a,v=[];e:for(m=0;m<=d;m++){if(50<m)return null;for(h=m-1,s=m?v[m-1]:[0,0],f=v[m]=[],u=-m;u<=m;u+=2){for(c=(l=u===-m||u!==m&&s[h+u-1]<s[h+u+1]?s[h+u+1]:s[h+u-1]+1)-u;l<a&&c<n&&o(r[i+l],e[t+c]);)l++,c++;if(l===a&&c===n)break e;f[m+u]=l}}for(var p=Array(m/2+d/2),g=p.length-1,m=v.length-1;0<=m;m--){for(;0<l&&0<c&&o(r[i+l-1],e[t+c-1]);)p[g--]=0,l--,c--;if(!m)break;h=m-1,s=m?v[m-1]:[0,0],(u=l-c)===-m||u!==m&&s[h+u-1]<s[h+u+1]?(c--,p[g--]=1):(l--,p[g--]=-1)}return p}(n,r,a,o,u,l,f)||function(e,t,n,r,i,a,o,u){var c=0,l=r<u?r:u,s=Array(l++),f=Array(l);f[0]=-1;for(var h=1;h<l;h++)f[h]=o;for(var d=i.slice(a,o),v=t;v<n;v++){var p,g=d.indexOf(e[v]);-1<g&&(-1<(c=k(f,l,p=g+a))&&(f[c]=p,s[c]={newi:v,oldi:p,prev:s[c-1]}))}for(c=--l,--o;f[c]>o;)--c;l=u+r-c;var m=Array(l),y=s[c];for(--n;y;){for(var b=y.newi,w=y.oldi;b<n;)m[--l]=1,--n;for(;w<o;)m[--l]=-1,--o;m[--l]=0,--n,--o,y=y.prev}for(;t<=n;)m[--l]=1,--n;for(;a<=o;)m[--l]=-1,--o;return m}(n,r,i,a,o,u,c,l),e,t,n,r,o,u,s,h)}var e=i.WeakSet,f=[].indexOf,k=function(e,t,n){for(var r=1,i=t;r<i;){var a=(r+i)/2>>>0;n<e[a]?i=a:r=1+a}return r},a=function(e){return(e.remove||function(){var e=this.parentNode;e&&e.removeChild(this)}).call(e)};function l(e,t,n,r){for(var i=(r=r||{}).compare||y,a=r.node||b,o=null==r.before?null:a(r.before,0),u=t.length,c=u,l=0,s=n.length,f=0;l<c&&f<s&&i(t[l],n[f]);)l++,f++;for(;l<c&&f<s&&i(t[c-1],n[s-1]);)c--,s--;var h=l===c,d=f===s;if(h&&d)return n;if(h&&f<s)return m(a,e,n,f,s,x(a,t,l,u,o)),n;if(d&&l<c)return E(a,t,l,c),n;var v=c-l,p=s-f,g=-1;if(v<p){if(-1<(g=w(n,f,s,t,l,c,i)))return m(a,e,n,f,g,a(t[l],0)),m(a,e,n,g+v,s,x(a,t,c,u,o)),n}else if(p<v&&-1<(g=w(t,l,c,n,f,s,i)))return E(a,t,l,g),E(a,t,g+p,c),n;return v<2||p<2?(m(a,e,n,f,s,a(t[l],0)),E(a,t,l,c)):v==p&&function(e,t,n,r,i,a){for(;r<i&&a(n[r],e[t-1]);)r++,t--;return 0===t}(n,s,t,l,c,i)?m(a,e,n,f,s,x(a,t,c,u,o)):C(a,e,n,f,s,p,t,l,c,v,u,i,o),n}var n,r={};function o(e,t){t=t||{};var n=N.createEvent(\"CustomEvent\");return n.initCustomEvent(e,!!t.bubbles,!!t.cancelable,t.detail),n}r.CustomEvent=\"function\"==typeof CustomEvent?CustomEvent:(o[n=\"prototype\"]=new o(\"\").constructor[n],o);var u=r.CustomEvent,c={};try{c.Map=Map}catch(e){c.Map=function(){var n=0,i=[],a=[];return{delete:function(e){var t=r(e);return t&&(i.splice(n,1),a.splice(n,1)),t},forEach:function(n,r){i.forEach(function(e,t){n.call(r,a[t],e,this)},this)},get:function(e){return r(e)?a[n]:void 0},has:r,set:function(e,t){return a[r(e)?n:i.push(e)-1]=t,this}};function r(e){return-1<(n=i.indexOf(e))}}}var h=c.Map;function d(){return this}function v(e,t){var n=\"_\"+e+\"$\";return{get:function(){return this[n]||p(this,n,t.call(this,e))},set:function(e){p(this,n,e)}}}var p=function(e,t,n){return Object.defineProperty(e,t,{configurable:!0,value:\"function\"==typeof n?function(){return e._wire$=n.apply(this,arguments)}:n})[t]};Object.defineProperties(d.prototype,{ELEMENT_NODE:{value:1},nodeType:{value:-1}});var g,A,S,O,T,M,_={},j={},L=[],P=j.hasOwnProperty,D=0,W={attributes:_,define:function(e,t){e.indexOf(\"-\")<0?(e in j||(D=L.push(e)),j[e]=t):_[e]=t},invoke:function(e,t){for(var n=0;n<D;n++){var r=L[n];if(P.call(e,r))return j[r](e[r],t)}}},$=Array.isArray||(A=(g={}.toString).call([]),function(e){return g.call(e)===A}),R=(S=N,O=\"fragment\",M=\"content\"in H(T=\"template\")?function(e){var t=H(T);return t.innerHTML=e,t.content}:function(e){var t,n=H(O),r=H(T);return F(n,/^[^\\S]*?<(col(?:group)?|t(?:head|body|foot|r|d|h))/i.test(e)?(t=RegExp.$1,r.innerHTML=\"<table>\"+e+\"</table>\",r.querySelectorAll(t)):(r.innerHTML=e,r.childNodes)),n},function(e,t){return(\"svg\"===t?function(e){var t=H(O),n=H(\"div\");return n.innerHTML='<svg xmlns=\"http://www.w3.org/2000/svg\">'+e+\"</svg>\",F(t,n.firstChild.childNodes),t}:M)(e)});function F(e,t){for(var n=t.length;n--;)e.appendChild(t[0])}function H(e){return e===O?S.createDocumentFragment():S.createElementNS(\"http://www.w3.org/1999/xhtml\",e)}var I,z,V,Z,G,q,B,J,K,Q,U=(z=\"appendChild\",V=\"cloneNode\",Z=\"createTextNode\",q=(G=\"importNode\")in(I=N),(B=I.createDocumentFragment())[z](I[Z](\"g\")),B[z](I[Z](\"\")),(q?I[G](B,!0):B[V](!0)).childNodes.length<2?function e(t,n){for(var r=t[V](),i=t.childNodes||[],a=i.length,o=0;n&&o<a;o++)r[z](e(i[o],n));return r}:q?I[G]:function(e,t){return e[V](!!t)}),X=\"\".trim||function(){return String(this).replace(/^\\s+|\\s+/g,\"\")},Y=\"-\"+Math.random().toFixed(6)+\"%\",ee=!1;try{J=N.createElement(\"template\"),Q=\"tabindex\",(K=\"content\")in J&&(J.innerHTML=\"<p \"+Q+'=\"'+Y+'\"></p>',J[K].childNodes[0].getAttribute(Q)==Y)||(Y=\"_dt: \"+Y.slice(1,-1)+\";\",ee=!0)}catch(e){}var te=\"\\x3c!--\"+Y+\"--\\x3e\",ne=8,re=1,ie=3,ae=/^(?:style|textarea)$/i,oe=/^(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr)$/i;var ue=\" \\\\f\\\\n\\\\r\\\\t\",ce=\"[^\"+ue+\"\\\\/>\\\"'=]+\",le=\"[\"+ue+\"]+\"+ce,se=\"<([A-Za-z]+[A-Za-z0-9:._-]*)((?:\",fe=\"(?:\\\\s*=\\\\s*(?:'[^']*?'|\\\"[^\\\"]*?\\\"|<[^>]*?>|\"+ce.replace(\"\\\\/\",\"\")+\"))?)\",he=new RegExp(se+le+fe+\"+)([\"+ue+\"]*/?>)\",\"g\"),de=new RegExp(se+le+fe+\"*)([\"+ue+\"]*/>)\",\"g\"),ve=new RegExp(\"(\"+le+\"\\\\s*=\\\\s*)(['\\\"]?)\"+te+\"\\\\2\",\"gi\");function pe(e,t,n,r){return\"<\"+t+n.replace(ve,ge)+r}function ge(e,t,n){return t+(n||'\"')+Y+(n||'\"')}function me(e,t,n){return oe.test(t)?e:\"<\"+t+n+\"></\"+t+\">\"}var ye=ee?function(e,t){var n=t.join(\" \");return t.slice.call(e,0).sort(function(e,t){return n.indexOf(e.name)<=n.indexOf(t.name)?-1:1})}:function(e,t){return t.slice.call(e,0)};function be(e,t,n,r){for(var i=e.childNodes,a=i.length,o=0;o<a;){var u=i[o];switch(u.nodeType){case re:var c=r.concat(o);!function(e,t,n,r){var i,a=e.attributes,o=[],u=[],c=ye(a,n),l=c.length,s=0;for(;s<l;){var f=c[s++],h=f.value===Y;if(h||1<(i=f.value.split(te)).length){var d=f.name;if(o.indexOf(d)<0){o.push(d);var v=n.shift().replace(h?/^(?:|[\\S\\s]*?\\s)(\\S+?)\\s*=\\s*('|\")?$/:new RegExp(\"^(?:|[\\\\S\\\\s]*?\\\\s)(\"+d+\")\\\\s*=\\\\s*('|\\\")[\\\\S\\\\s]*\",\"i\"),\"$1\"),p=a[v]||a[v.toLowerCase()];if(h)t.push(we(p,r,v,null));else{for(var g=i.length-2;g--;)n.shift();t.push(we(p,r,v,i))}}u.push(f)}}l=u.length;var m=(s=0)<l&&ee&&!(\"ownerSVGElement\"in e);for(;s<l;){var y=u[s++];m&&(y.value=\"\"),e.removeAttribute(y.name)}var b=e.nodeName;if(/^script$/i.test(b)){var w=N.createElement(b);for(l=a.length,s=0;s<l;)w.setAttributeNode(a[s++].cloneNode(!0));w.textContent=e.textContent,e.parentNode.replaceChild(w,e)}}(u,t,n,c),be(u,t,n,c);break;case ne:var l=u.textContent;if(l===Y)n.shift(),t.push(ae.test(e.nodeName)?Ne(e,r):{type:\"any\",node:u,path:r.concat(o)});else switch(l.slice(0,2)){case\"/*\":if(\"*/\"!==l.slice(-2))break;case\"\uD83D\uDC7B\":e.removeChild(u),o--,a--}break;case ie:ae.test(e.nodeName)&&X.call(u.textContent)===te&&(n.shift(),t.push(Ne(e,r)))}o++}}function we(e,t,n,r){return{type:\"attr\",node:e,path:t,name:n,sparse:r}}function Ne(e,t){return{type:\"text\",node:e,path:t}}var xe,Ee=(xe=new s,{get:function(e){return xe.get(e)},set:function(e,t){return xe.set(e,t),t}});function Ce(o,f){var e=(o.convert||function(e){return e.join(te).replace(de,me).replace(he,pe)})(f),t=o.transform;t&&(e=t(e));var n=R(e,o.type);Se(n);var u=[];return be(n,u,f.slice(0),[]),{content:n,updates:function(c){for(var l=[],s=u.length,e=0,t=0;e<s;){var n=u[e++],r=function(e,t){for(var n=t.length,r=0;r<n;)e=e.childNodes[t[r++]];return e}(c,n.path);switch(n.type){case\"any\":l.push({fn:o.any(r,[]),sparse:!1});break;case\"attr\":var i=n.sparse,a=o.attribute(r,n.name,n.node);null===i?l.push({fn:a,sparse:!1}):(t+=i.length-2,l.push({fn:a,sparse:!0,values:i}));break;case\"text\":l.push({fn:o.text(r),sparse:!1}),r.textContent=\"\"}}return s+=t,function(){var e=arguments.length;if(s!==e-1)throw new Error(e-1+\" values instead of \"+s+\"\\n\"+f.join(\"${value}\"));for(var t=1,n=1;t<e;){var r=l[t-n];if(r.sparse){var i=r.values,a=i[0],o=1,u=i.length;for(n+=u-2;o<u;)a+=arguments[t++]+i[o++];r.fn(a)}else r.fn(arguments[t++])}return c}}}}var ke=[];function Ae(i){var a=ke,o=Se;return function(e){var t,n,r;return a!==e&&(t=i,n=a=e,r=Ee.get(n)||Ee.set(n,Ce(t,n)),o=r.updates(U.call(N,r.content,!0))),o.apply(null,arguments)}}function Se(e){for(var t=e.childNodes,n=t.length;n--;){var r=t[n];1!==r.nodeType&&0===X.call(r.textContent).length&&e.removeChild(r)}}var Oe,Te,Me=(Oe=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,Te=/([^A-Z])([A-Z]+)/g,function(e,t){return\"ownerSVGElement\"in e?function(e,t){var n;return(n=t?t.cloneNode(!0):(e.setAttribute(\"style\",\"--hyper:style;\"),e.getAttributeNode(\"style\"))).value=\"\",e.setAttributeNode(n),je(n,!0)}(e,t):je(e.style,!1)});function _e(e,t,n){return t+\"-\"+n.toLowerCase()}function je(a,o){var u,c;return function(e){var t,n,r,i;switch(typeof e){case\"object\":if(e){if(\"object\"===u){if(!o&&c!==e)for(n in c)n in e||(a[n]=\"\")}else o?a.value=\"\":a.cssText=\"\";for(n in t=o?{}:a,e)r=\"number\"!=typeof(i=e[n])||Oe.test(n)?i:i+\"px\",!o&&/^--/.test(n)?t.setProperty(n,r):t[n]=r;u=\"object\",o?a.value=function(e){var t,n=[];for(t in e)n.push(t.replace(Te,_e),\":\",e[t],\";\");return n.join(\"\")}(c=t):c=e;break}default:c!=e&&(u=\"string\",c=e,o?a.value=e||\"\":a.cssText=e||\"\")}}}var Le,Pe,De=(Le=[].slice,(Pe=We.prototype).ELEMENT_NODE=1,Pe.nodeType=111,Pe.remove=function(e){var t,n=this.childNodes,r=this.firstChild,i=this.lastChild;return this._=null,e&&2===n.length?i.parentNode.removeChild(i):((t=this.ownerDocument.createRange()).setStartBefore(e?n[1]:r),t.setEndAfter(i),t.deleteContents()),r},Pe.valueOf=function(e){var t=this._,n=null==t;if(n&&(t=this._=this.ownerDocument.createDocumentFragment()),n||e)for(var r=this.childNodes,i=0,a=r.length;i<a;i++)t.appendChild(r[i]);return t},We);function We(e){var t=this.childNodes=Le.call(e,0);this.firstChild=t[0],this.lastChild=t[t.length-1],this.ownerDocument=t[0].ownerDocument,this._=null}function $e(e){return{html:e}}function Re(e,t){switch(e.nodeType){case Ke:return 1/t<0?t?e.remove(!0):e.lastChild:t?e.valueOf(!0):e.firstChild;case Je:return Re(e.render(),t);default:return e}}function Fe(e,t){t(e.placeholder),\"text\"in e?Promise.resolve(e.text).then(String).then(t):\"any\"in e?Promise.resolve(e.any).then(t):\"html\"in e?Promise.resolve(e.html).then($e).then(t):Promise.resolve(W.invoke(e,t)).then(t)}function He(e){return null!=e&&\"then\"in e}var Ie,ze,Ve,Ze,Ge,qe=\"ownerSVGElement\",Be=\"connected\",Je=d.prototype.nodeType,Ke=De.prototype.nodeType,Qe=(ze=(Ie={Event:u,WeakSet:e}).Event,Ve=Ie.WeakSet,Ze=!0,Ge=null,function(e){return Ze&&(Ze=!Ze,Ge=new Ve,function(t){var i=new Ve,a=new Ve;try{new MutationObserver(u).observe(t,{subtree:!0,childList:!0})}catch(e){var n=0,r=[],o=function(e){r.push(e),clearTimeout(n),n=setTimeout(function(){u(r.splice(n=0,r.length))},0)};t.addEventListener(\"DOMNodeRemoved\",function(e){o({addedNodes:[],removedNodes:[e.target]})},!0),t.addEventListener(\"DOMNodeInserted\",function(e){o({addedNodes:[e.target],removedNodes:[]})},!0)}function u(e){for(var t,n=e.length,r=0;r<n;r++)c((t=e[r]).removedNodes,\"disconnected\",a,i),c(t.addedNodes,\"connected\",i,a)}function c(e,t,n,r){for(var i,a=new ze(t),o=e.length,u=0;u<o;1===(i=e[u++]).nodeType&&function e(t,n,r,i,a){Ge.has(t)&&!i.has(t)&&(a.delete(t),i.add(t),t.dispatchEvent(n));for(var o=t.children||[],u=o.length,c=0;c<u;e(o[c++],n,r,i,a));}(i,a,t,n,r));}}(e.ownerDocument)),Ge.add(e),e}),Ue=/^(?:form|list)$/i,Xe=[].slice;function Ye(e){return this.type=e,Ae(this)}var et=!(Ye.prototype={attribute:function(n,r,e){var i,t=qe in n;if(\"style\"===r)return Me(n,e,t);if(\".\"===r.slice(0,1))return l=n,s=r.slice(1),t?function(t){try{l[s]=t}catch(e){l.setAttribute(s,t)}}:function(e){l[s]=e};if(\"?\"===r.slice(0,1))return o=n,u=r.slice(1),function(e){c!==!!e&&((c=!!e)?o.setAttribute(u,\"\"):o.removeAttribute(u))};if(/^on/.test(r)){var a=r.slice(2);return a===Be||\"disconnected\"===a?Qe(n):r.toLowerCase()in n&&(a=a.toLowerCase()),function(e){i!==e&&(i&&n.removeEventListener(a,i,!1),(i=e)&&n.addEventListener(a,e,!1))}}if(\"data\"===r||!t&&r in n&&!Ue.test(r))return function(e){i!==e&&(i=e,n[r]!==e&&null==e?(n[r]=\"\",n.removeAttribute(r)):n[r]=e)};if(r in W.attributes)return function(e){var t=W.attributes[r](n,e);i!==t&&(null==(i=t)?n.removeAttribute(r):n.setAttribute(r,t))};var o,u,c,l,s,f=!1,h=e.cloneNode(!0);return function(e){i!==e&&(i=e,h.value!==e&&(null==e?(f&&(f=!1,n.removeAttributeNode(h)),h.value=e):(h.value=e,f||(f=!0,n.setAttributeNode(h)))))}},any:function(r,i){var a,o={node:Re,before:r},u=qe in r?\"svg\":\"html\",c=!1;return function e(t){switch(typeof t){case\"string\":case\"number\":case\"boolean\":c?a!==t&&(a=t,i[0].textContent=t):(c=!0,a=t,i=l(r.parentNode,i,[(n=t,r.ownerDocument.createTextNode(n))],o));break;case\"function\":e(t(r));break;case\"object\":case\"undefined\":if(null==t){c=!1,i=l(r.parentNode,i,[],o);break}default:if(c=!1,$(a=t))if(0===t.length)i.length&&(i=l(r.parentNode,i,[],o));else switch(typeof t[0]){case\"string\":case\"number\":case\"boolean\":e({html:t});break;case\"object\":if($(t[0])&&(t=t.concat.apply([],t)),He(t[0])){Promise.all(t).then(e);break}default:i=l(r.parentNode,i,t,o)}else\"ELEMENT_NODE\"in t?i=l(r.parentNode,i,11===t.nodeType?Xe.call(t.childNodes):[t],o):He(t)?t.then(e):\"placeholder\"in t?Fe(t,e):\"text\"in t?e(String(t.text)):\"any\"in t?e(t.any):\"html\"in t?i=l(r.parentNode,i,Xe.call(R([].concat(t.html).join(\"\"),u).childNodes),o):\"length\"in t?e(Xe.call(t)):e(W.invoke(t,e))}var n}},text:function(r){var i;return function e(t){var n;i!==t&&(\"object\"==(n=typeof(i=t))&&t?He(t)?t.then(e):\"placeholder\"in t?Fe(t,e):\"text\"in t?e(String(t.text)):\"any\"in t?e(t.any):\"html\"in t?e([].concat(t.html).join(\"\")):\"length\"in t?e(Xe.call(t).join(\"\")):e(W.invoke(t,e)):\"function\"==n?e(t(r)):r.textContent=null==t?\"\":t)}}}),tt=function(e){var t,r,i,a,n=(t=(N.defaultView.navigator||{}).userAgent,/(Firefox|Safari)\\/(\\d+)/.test(t)&&!/(Chrom[eium]+|Android)\\/(\\d+)/.test(t)),o=!(\"raw\"in e)||e.propertyIsEnumerable(\"raw\")||!Object.isFrozen(e.raw);return n||o?(r={},i=function(e){for(var t=\".\",n=0;n<e.length;n++)t+=e[n].length+\".\"+e[n];return r[t]||(r[t]=e)},tt=o?i:(a=new s,function(e){return a.get(e)||(n=i(t=e),a.set(t,n),n);var t,n})):et=!0,nt(e)};function nt(e){return et?e:tt(e)}function rt(e){for(var t=arguments.length,n=[nt(e)],r=1;r<t;)n.push(arguments[r++]);return n}var it=new s,at=function(t){var n,r,i;return function(){var e=rt.apply(null,arguments);return i!==e[0]?(i=e[0],r=new Ye(t),n=ut(r.apply(r,e))):r.apply(r,e),n}},ot=function(e,t){var n=t.indexOf(\":\"),r=it.get(e),i=t;return-1<n&&(i=t.slice(n+1),t=t.slice(0,n)||\"html\"),r||it.set(e,r={}),r[i]||(r[i]=at(t))},ut=function(e){var t=e.childNodes,n=t.length;return 1===n?t[0]:n?new De(t):e},ct=new s;function lt(){var e=ct.get(this),t=rt.apply(null,arguments);return e&&e.template===t[0]?e.tagger.apply(null,t):function(e){var t=new Ye(qe in this?\"svg\":\"html\");ct.set(this,{tagger:t,template:e}),this.textContent=\"\",this.appendChild(t.apply(null,arguments))}.apply(this,t),this}var st,ft,ht,dt,vt=W.define,pt=Ye.prototype;function gt(e){return arguments.length<2?null==e?at(\"html\"):\"string\"==typeof e?gt.wire(null,e):\"raw\"in e?at(\"html\")(e):\"nodeType\"in e?gt.bind(e):ot(e,\"html\"):(\"raw\"in e?at(\"html\"):gt.wire).apply(null,arguments)}return gt.Component=d,gt.bind=function(e){return lt.bind(e)},gt.define=vt,gt.diff=l,(gt.hyper=gt).observe=Qe,gt.tagger=pt,gt.wire=function(e,t){return null==e?at(t||\"html\"):ot(e,t||\"html\")},gt._={WeakMap:s,WeakSet:e},st=at,ft=new s,ht=Object.create,dt=function(e,t){var n={w:null,p:null};return t.set(e,n),n},Object.defineProperties(d,{for:{configurable:!0,value:function(e,t){return function(e,t,n,r){var i,a,o,u=t.get(e)||dt(e,t);switch(typeof r){case\"object\":case\"function\":var c=u.w||(u.w=new s);return c.get(r)||(i=c,a=r,o=new e(n),i.set(a,o),o);default:var l=u.p||(u.p=ht(null));return l[r]||(l[r]=new e(n))}}(this,ft.get(e)||(n=e,r=new h,ft.set(n,r),r),e,null==t?\"default\":t);var n,r}}}),Object.defineProperties(d.prototype,{handleEvent:{value:function(e){var t=e.currentTarget;this[\"getAttribute\"in t&&t.getAttribute(\"data-call\")||\"on\"+e.type](e)}},html:v(\"html\",st),svg:v(\"svg\",st),state:v(\"state\",function(){return this.defaultState}),defaultState:{get:function(){return{}}},dispatch:{value:function(e,t){var n=this._wire$;if(n){var r=new u(e,{bubbles:!0,cancelable:!0,detail:t});return r.component=this,(n.dispatchEvent?n:n.firstChild).dispatchEvent(r)}return!1}},setState:{value:function(e,t){var n=this.state,r=\"function\"==typeof e?e.call(this,n):e;for(var i in r)n[i]=r[i];return!1!==t&&this.render(),this}}}),gt}(document);\n\n\n // core/constants.js\n const isCustomTag = /<+\\w+[-]+\\w/;\n\n // core/manager.js\n const manager = {};\n\n const sharedAttrs = {};\n\n // utils/makeid.js\n function makeid() {\n var text = '';\n var possible = 'bcdfghjklmnpqrstvwxyz';\n\n for (var i = 0; i < 15; i++)\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n\n return text;\n }\n\n // utils/escape.js\n function escapeHtml(str) {\n if (typeof str !== 'string') return str;\n return str\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&#39;');\n }\n\n const SAFE_HTML = Symbol('safeHtml');\n\n function safeHtml(html) {\n return { [SAFE_HTML]: true, value: html };\n }\n\n function isSafeHtml(val) {\n return val && val[SAFE_HTML] === true;\n }\n\n // attributes/parseAttribute.js\n function parseAttribute(key, value) {\n if ('template' === key && '' === value) {\n return true;\n }\n\n if (+value + '' === value.trim()) {\n return +value; // to number\n }\n\n const lowerCaseValue = value.toLowerCase().trim();\n\n if ('true' === lowerCaseValue) {\n return true;\n } else if ('false' === lowerCaseValue) {\n return false;\n }\n\n if (\n (lowerCaseValue[0] === '[' && lowerCaseValue.slice(-1) === ']') ||\n (lowerCaseValue[0] === '{' && lowerCaseValue.slice(-1) === '}')\n ) {\n return JSON.parse(value);\n }\n\n return value;\n }\n\n // template/processAdvancedTemplate.js\n function formatValue(value) {\n if (typeof value === 'function') {\n return formatValue(value());\n }\n if (typeof value === 'string') {\n return escapeHtml(value);\n }\n if (typeof value === 'number' || typeof value === 'boolean') {\n return String(value);\n }\n if (Array.isArray(value)) {\n return escapeHtml(value.join(', '));\n }\n if (value !== null && typeof value === 'object') {\n return escapeHtml(JSON.stringify(value));\n }\n\n return '';\n }\n\n function processAdvancedTemplate(template, data) {\n let result = template;\n\n const eachRegex = /\\{\\+each\\s+(\\w+)\\}([\\s\\S]*?)\\{-each\\}/g;\n result = result.replace(eachRegex, (match, arrayName, content) => {\n const arr = data[arrayName];\n if (!Array.isArray(arr)) return '';\n return arr\n .map((item, index) => {\n let itemContent = content;\n\n itemContent = itemContent.replace(/\\{@\\}/g, index);\n\n itemContent = itemContent.replace(\n /\\{\\s*\\.\\.\\.\\s*\\}/g,\n formatValue(item)\n );\n\n if (typeof item === 'object' && item !== null) {\n Object.keys(item).forEach((key) => {\n itemContent = itemContent.replace(\n new RegExp('\\\\{' + key + '\\\\}', 'g'),\n escapeHtml(String(item[key]))\n );\n });\n }\n return itemContent;\n })\n .join('');\n });\n\n const ifElseRegex = /\\{\\+if\\s+(\\w+)\\}([\\s\\S]*?)\\{else\\}([\\s\\S]*?)\\{-if\\}/g;\n result = result.replace(\n ifElseRegex,\n (match, condition, ifContent, elseContent) => {\n return data[condition] ? ifContent : elseContent;\n }\n );\n\n const ifRegex = /\\{\\+if\\s+(\\w+)\\}([\\s\\S]*?)\\{-if\\}/g;\n result = result.replace(ifRegex, (match, condition, content) => {\n return data[condition] ? content : '';\n });\n\n const unlessRegex = /\\{\\+unless\\s+(\\w+)\\}([\\s\\S]*?)\\{-unless\\}/g;\n result = result.replace(unlessRegex, (match, condition, content) => {\n return data[condition] ? '' : content;\n });\n\n return result;\n }\n\n // template/buildTemplate.js\n function buildTemplate(innerHTML) {\n\n const hasAdvanced = /\\{\\+(if|each|unless)\\s/.test(innerHTML);\n\n if (hasAdvanced) {\n\n return function template(data) {\n if ('object' !== typeof data) {\n throw new Error(\n 'Templates must be passed an object. You passed ' +\n JSON.stringify(data)\n );\n }\n\n let result = processAdvancedTemplate(innerHTML, data);\n\n result = result.replace(/\\{(\\w+)\\}/g, (match, key) => {\n return data[key] != null ? escapeHtml(String(data[key])) : '';\n });\n\n return { html: result };\n };\n }\n\n const re = /(\\{[\\w]+\\})/g;\n const templateVals = innerHTML.split(re).reduce(\n (vals, item) => {\n if ('{' === item[0] && '}' === item.slice(-1)) {\n vals.keys.push(item.slice(1, -1));\n } else {\n vals.markup.push(item);\n }\n\n return vals;\n },\n { markup: [], keys: [] }\n );\n\n templateVals.id = ':' + templateVals.markup.join().trim();\n\n function fragment(data) {\n const output = [\n templateVals.markup,\n ...templateVals.keys.map((key) => data[key]),\n ];\n output.raw = { value: templateVals.markup };\n return output;\n }\n\n return function template(data) {\n if ('object' !== typeof data) {\n throw new Error(\n 'Templates must be passed an object to be populated with. You passed ' +\n JSON.stringify(data) +\n ' to ' +\n templateVals.id\n );\n }\n return hyperHTML.wire(data, templateVals.id)(...fragment(data));\n };\n }\n\n // attributes/dataset.js\n function addDataset(dataset, dash_key) {\n const camel_key = dash_key.replace(/-([a-z])/g, (g) => g[1].toUpperCase());\n\n Object.defineProperty(dataset, camel_key, {\n enumerable: true, // can be selected\n configurable: true, // can be delete\n get: () => parseAttribute(camel_key, this.dataset[camel_key]),\n set: (value) => {\n manager[this.identifier].attrsToIgnore['data-' + dash_key] = true;\n if ('string' === typeof value) {\n this.dataset[camel_key] = value;\n } else {\n this.dataset[camel_key] = JSON.stringify(value);\n }\n },\n });\n }\n\n function getDataset() {\n const dataset = {};\n Object.keys(this.dataset).forEach((key) =>\n addDataset.call(\n this,\n dataset,\n key.replace(/([A-Z])/g, (g) => `-${g[0].toLowerCase()}`)\n )\n );\n return dataset;\n }\n\n // attributes/attachAttrs.js\n function attachAttrs(attributes) {\n const accumulator = {};\n\n for (let i = 0; i < attributes.length; i++) {\n const { value, name } = attributes[i];\n\n if ('template' === name && !value) {\n const ref = manager[this.identifier];\n ref.Html.template = buildTemplate(ref.innerHTML);\n accumulator[name] = true;\n } else if (\n ('fn-' === value.substr(0, 3) || 'ob-' === value.substr(0, 3)) &&\n !!sharedAttrs[value.substr(3)] &&\n sharedAttrs[value.substr(3)].localName === this.localName\n ) {\n accumulator[name] = sharedAttrs[value.substr(3)].val;\n } else {\n if (+value + '' === (value + '').trim()) {\n accumulator[name] = +value;\n } else {\n accumulator[name] = value;\n }\n }\n }\n return accumulator;\n }\n\n // html/parseEachBlocks.js\n function hasEachBlocks(strings) {\n return strings.some(\n (s) =>\n s.includes('{+each ') ||\n s.includes('{+each{') ||\n s.includes('{+if ') ||\n s.includes('{+unless ')\n );\n }\n\n function resolvePropertyPath(obj, path) {\n return path.split('.').reduce((o, key) => o?.[key], obj);\n }\n\n function parsePropertyReferences(str) {\n const regex = /\\{(@|\\s*\\.\\.\\.\\s*|\\w+(?:\\.\\w+)*)\\}/g;\n const parts = [],\n props = [];\n let lastIndex = 0,\n match;\n while ((match = regex.exec(str)) !== null) {\n parts.push(str.substring(lastIndex, match.index));\n props.push(match[1]);\n lastIndex = regex.lastIndex;\n }\n parts.push(str.substring(lastIndex));\n return { parts, props };\n }\n\n function findMatchingClose(strings, startIdx, startPos, openTag, closeTag) {\n let depth = 1;\n for (let i = startIdx; i < strings.length; i++) {\n const str = strings[i];\n let searchStart = i === startIdx ? startPos : 0;\n while (searchStart < str.length) {\n const openPos = str.indexOf(openTag, searchStart);\n const closePos = str.indexOf(closeTag, searchStart);\n if (closePos !== -1 && (openPos === -1 || closePos < openPos)) {\n if (--depth === 0) return { endIdx: i, endPos: closePos };\n searchStart = closePos + closeTag.length;\n } else if (openPos !== -1) {\n depth++;\n searchStart = openPos + openTag.length;\n } else break;\n }\n }\n throw new Error(`Unclosed ${openTag}} block. Missing ${closeTag}.`);\n }\n\n function buildTemplateStrings(parts) {\n const arr = [...parts];\n arr.raw = [...parts];\n return arr;\n }\n\n const primitiveWrappers = new WeakMap();\n\n function getWireKey(item, index, array) {\n if (item !== null && typeof item === 'object') return item;\n let cache = primitiveWrappers.get(array);\n if (!cache) {\n cache = {};\n primitiveWrappers.set(array, cache);\n }\n if (!cache[index]) cache[index] = { _value: item, _index: index };\n cache[index]._value = item;\n return cache[index];\n }\n\n function resolveProp(prop, item, index) {\n if (prop === '@') return index;\n if (prop.trim() === '...') return item;\n return resolvePropertyPath(item, prop);\n }\n\n function processInnerContent(content, item, index, array, wireFunction) {\n const nestedRegex = /\\{\\+each\\s*\\{(\\w+(?:\\.\\w+)*)\\}\\}([\\s\\S]*?)\\{-each\\}/g;\n const hasNested = nestedRegex.test(content);\n nestedRegex.lastIndex = 0;\n\n if (hasNested) {\n const nestedMatches = [];\n let processedContent = content,\n match;\n while ((match = nestedRegex.exec(content)) !== null) {\n const [fullMatch, propPath, innerContent] = match;\n const nestedArray = resolvePropertyPath(item, propPath);\n if (!Array.isArray(nestedArray)) {\n processedContent = processedContent.replace(fullMatch, '');\n continue;\n }\n const nestedResults = nestedArray.map((nestedItem, nestedIndex) =>\n processInnerContent(\n innerContent.trim(),\n nestedItem,\n nestedIndex,\n nestedArray,\n wireFunction\n )\n );\n processedContent = processedContent.replace(\n fullMatch,\n `__NESTED_${nestedMatches.length}__`\n );\n nestedMatches.push(nestedResults);\n }\n const { parts, props } = parsePropertyReferences(processedContent);\n const finalParts = [],\n finalValues = [];\n let propIndex = 0;\n for (let i = 0; i < parts.length; i++) {\n let part = parts[i],\n placeholderMatch;\n while ((placeholderMatch = part.match(/__NESTED_(\\d+)__/))) {\n const [before, after] = part.split(placeholderMatch[0]);\n finalParts.push(before);\n finalValues.push(nestedMatches[parseInt(placeholderMatch[1], 10)]);\n part = after || '';\n }\n finalParts.push(part);\n if (i < props.length)\n finalValues.push(resolveProp(props[propIndex++], item, index));\n }\n return wireFunction(\n getWireKey(item, index, array),\n JSON.stringify(finalParts)\n )(buildTemplateStrings(finalParts), ...finalValues);\n }\n\n const { parts, props } = parsePropertyReferences(content);\n if (props.length === 0)\n return wireFunction(\n getWireKey(item, index, array),\n JSON.stringify([content])\n )(buildTemplateStrings([content]));\n const values = props.map((prop) => resolveProp(prop, item, index));\n return wireFunction(getWireKey(item, index, array), JSON.stringify(parts))(\n buildTemplateStrings(parts),\n ...values\n );\n }\n\n function findFirstBlock(str) {\n const blocks = [\n { type: 'each', pattern: '{+each ' },\n { type: 'if', pattern: '{+if ' },\n { type: 'unless', pattern: '{+unless ' },\n ];\n let first = null;\n for (const block of blocks) {\n const pos = str.indexOf(block.pattern);\n if (pos !== -1 && (first === null || pos < first.pos))\n first = { type: block.type, pos, pattern: block.pattern };\n }\n return first;\n }\n\n function transformEachBlocks(strings, values, wireFunction) {\n const resultStrings = [],\n resultValues = [];\n let i = 0;\n while (i < strings.length) {\n const str = strings[i],\n firstBlock = findFirstBlock(str);\n if (!firstBlock) {\n resultStrings.push(str);\n if (i < values.length) resultValues.push(values[i]);\n i++;\n continue;\n }\n const { type, pos: blockStartPos, pattern } = firstBlock;\n const closeTag = `{-${type}}`;\n resultStrings.push(str.substring(0, blockStartPos));\n const blockValue = values[i],\n nextStr = strings[i + 1];\n if (!nextStr || !nextStr.startsWith('}'))\n throw new Error(`{+${type}} syntax error: expected \"}\" after value`);\n const afterClose = nextStr.substring(1);\n const { endIdx, endPos } = findMatchingClose(\n strings,\n i + 1,\n 1,\n pattern.slice(0, -1),\n closeTag\n );\n let innerContent,\n elseContent = '';\n if (endIdx === i + 1) innerContent = afterClose.substring(0, endPos - 1);\n else {\n innerContent = afterClose;\n for (let j = i + 2; j <= endIdx; j++) {\n innerContent +=\n String(values[j - 1] ?? '') +\n (j < endIdx ? strings[j] : strings[j].substring(0, endPos));\n }\n }\n if (type === 'if' || type === 'unless') {\n const elsePos = innerContent.indexOf('{else}');\n if (elsePos !== -1) {\n elseContent = innerContent.substring(elsePos + 6);\n innerContent = innerContent.substring(0, elsePos);\n }\n }\n let blockResult;\n if (type === 'each') {\n if (!Array.isArray(blockValue) && blockValue != null)\n throw new Error(`{+each} expects an array, got ${typeof blockValue}`);\n blockResult = (blockValue || []).map((item, idx) =>\n processInnerContent(\n innerContent.trim(),\n item,\n idx,\n blockValue || [],\n wireFunction\n )\n );\n } else if (type === 'if')\n blockResult = blockValue\n ? { html: innerContent.trim() }\n : { html: elseContent.trim() };\n else if (type === 'unless')\n blockResult = blockValue\n ? { html: elseContent.trim() }\n : { html: innerContent.trim() };\n resultValues.push(blockResult);\n const afterBlock = strings[endIdx].substring(endPos + closeTag.length);\n i = endIdx;\n if (findFirstBlock(afterBlock)) {\n strings = [\n ...strings.slice(0, endIdx),\n afterBlock,\n ...strings.slice(endIdx + 1),\n ];\n values = [...values.slice(0, endIdx), ...values.slice(endIdx)];\n } else {\n resultStrings.push(afterBlock);\n if (endIdx < values.length) resultValues.push(values[endIdx]);\n i = endIdx + 1;\n }\n }\n while (resultStrings.length <= resultValues.length) resultStrings.push('');\n return { strings: buildTemplateStrings(resultStrings), values: resultValues };\n }\n\n // html/createHtml.js\n function createHtml(shadow) {\n const hyperHTMLbind = hyperHTML.bind(shadow);\n\n function Html(...args) {\n\n if (hasEachBlocks(args[0])) {\n const transformed = transformEachBlocks(\n args[0],\n args.slice(1),\n Html.wire\n );\n args = [transformed.strings, ...transformed.values];\n }\n\n const hasNonString = args\n .slice(1)\n .some((item) => item != null && typeof item !== 'string');\n const hasCustomTag = args[0].some((t) => isCustomTag.test(t));\n\n if (hasNonString && hasCustomTag) {\n let inCustomTag = false;\n let localName = '';\n args[0].forEach((item, index, _items) => {\n if (isCustomTag.test(item)) {\n inCustomTag =\n -1 === item.substring(item.match(isCustomTag).index).indexOf('>');\n localName =\n inCustomTag &&\n item\n .substring(item.indexOf(item.match(isCustomTag)))\n .split(/\\s/)[0]\n .substr(1);\n } else if (0 <= item.indexOf('>')) {\n inCustomTag = false;\n localName = '';\n }\n\n if (!inCustomTag) {\n return;\n }\n const val = args[index + 1];\n\n if (val != null && typeof val !== 'string') {\n const attrName = item.split(/\\s/).pop().slice(0, -1);\n if ('on' === attrName.substring(0, 2)) {\n throw new Error(\n `'on' is reserve for native elements. Change: \"${attrName}\" for \"${localName}\" to something else`\n );\n }\n\n if ('style' === attrName) {\n return;\n }\n const id = makeid();\n sharedAttrs[id] = { attrName, val, localName };\n args[index + 1] = ('function' === typeof val ? 'fn-' : 'ob-') + id;\n }\n });\n }\n\n const processedArgs = [args[0]];\n for (let i = 1; i < args.length; i++) {\n const val = args[i];\n if (isSafeHtml(val)) {\n\n processedArgs.push({ html: val.value });\n } else if (Array.isArray(val)) {\n\n processedArgs.push(\n val.map((item) => {\n if (isSafeHtml(item)) {\n return { html: item.value };\n } else if (typeof item === 'string') {\n\n return escapeHtml(item);\n }\n return item;\n })\n );\n } else {\n\n processedArgs.push(val);\n }\n }\n\n return hyperHTMLbind(...processedArgs);\n }\n\n Html.wire = function wire(...args) {\n return hyperHTML.wire(...args);\n };\n\n Html.lite = function lite(...args) {\n return hyperHTML(...args);\n };\n\n Html.raw = function raw(html) {\n return safeHtml(html);\n };\n\n return Html;\n }\n\n // lifecycle/onNext.js\n function onNext(that, store) {\n const storeFn = 'function' == typeof store ? store : () => store;\n\n const render = this.render;\n\n const render2 = (...data) => {\n if (undefined === store) {\n that.store = undefined;\n render(...data);\n } else {\n that.store = storeFn();\n render(that.store, ...data);\n }\n };\n this.render = render2;\n\n return render2;\n }\n\n // lifecycle/observer.js\n function observer(ref) {\n const that = ref.this;\n const mutationObserver = new MutationObserver((mutations) => {\n if (!ref.observe) return;\n\n const attrMutations = mutations.filter((m) => m.type === 'attributes');\n if (attrMutations.length > 0) {\n\n that.attrs = this.attachAttrs(this.attributes) || {};\n this.render();\n return;\n }\n\n let textContent = this.textContent;\n\n ref.innerHTML = this.innerHTML;\n if (that.attrs.template) {\n that.attrs = this.attachAttrs(this.attributes) || {};\n }\n\n hyperHTML.bind(ref.shadow)``;\n\n that.wrappedContent = textContent;\n this.render();\n });\n\n mutationObserver.observe(this, {\n\n attributes: true,\n\n childList: true,\n\n subtree: true,\n });\n }\n\n // lifecycle/connectedCallback.js\n function createdCallback() {\n\n this.identifier = Symbol(this.localName);\n const ref = (manager[this.identifier] = { attrsToIgnore: {} });\n ref.innerHTML = this.innerHTML;\n const that = (ref.this = { element: this });\n that.wrappedContent = this.textContent;\n\n observer.call(this, ref); // observer change to innerHTML\n\n Object.getOwnPropertyNames(this.__proto__)\n .filter(\n (name) =>\n !('constructor' === name || 'setup' === name || 'render' === name)\n )\n .forEach((name) => {\n if (/^[A-Z]/.test(name)) {\n let result;\n const templatestrings = {};\n \n const wrapFragment = (data) => {\n if (undefined !== result && result.once) return result;\n\n result = this[name](data);\n\n if (result.text !== undefined && typeof result.text === 'string') {\n\n result = { any: result.text, once: result.once };\n } else if (\n result.html !== undefined &&\n typeof result.html === 'string'\n ) {\n\n result = { any: { html: result.html }, once: result.once };\n }\n\n if (result.template) {\n if ('string' === typeof result.template) {\n if (!templatestrings[result.template]) {\n templatestrings[result.template] = buildTemplate(\n result.template\n );\n }\n const templateResult = templatestrings[result.template](\n result.values || data\n );\n\n if (templateResult && templateResult.html) {\n\n result = {\n any: { html: templateResult.html },\n once: result.once,\n };\n } else {\n result = { any: templateResult, once: result.once };\n }\n } else if (\n 'object' === typeof result.template &&\n 'function' === typeof result.template.then\n ) {\n result = Object.assign({}, result, {\n any: result.template.then((args) => {\n let { template, values } = args;\n if (!template && 'string' === typeof args) {\n template = args;\n values = {};\n }\n\n if (!templatestrings[template]) {\n templatestrings[template] = buildTemplate(template);\n }\n if (Array.isArray(values)) {\n result = {\n any: values.map(templatestrings[template]),\n once: result.once,\n };\n } else {\n result = {\n any: templatestrings[template](values || data),\n once: result.once,\n };\n }\n return result.any;\n }),\n });\n } else {\n throw new Error(\n 'unknow template type:' +\n typeof result.template +\n ' | ' +\n JSON.stringify(result.template)\n );\n }\n }\n return result;\n };\n hyperHTML.define(name, wrapFragment);\n } else {\n that[name] = this[name].bind(that);\n }\n delete this[name];\n });\n\n function toString() {\n return 'hyper-element: ' + this.localName;\n }\n Object.defineProperty(that, 'toString', {\n value: toString.bind(this),\n writable: false,\n });\n\n ref.shadow = this;\n\n ref.Html = createHtml(ref.shadow);\n\n that.attrs = this.attachAttrs(this.attributes);\n that.dataset = this.getDataset();\n const render = this.render;\n this.render = (...data) => {\n ref.observe = false;\n setTimeout(() => {\n ref.observe = true;\n }, 0);\n\n render.call(that, ref.Html, ...data);\n\n Object.getOwnPropertyNames(that.dataset)\n .filter((key) => !this.dataset[key])\n .forEach((key) => {\n const value = that.dataset[key];\n addDataset.call(\n this,\n that.dataset,\n key.replace(/([A-Z])/g, (g) => `-${g[0].toLowerCase()}`)\n );\n that.dataset[key] = value;\n });\n };\n\n if (this.setup) {\n ref.teardown = this.setup.call(that, onNext.bind(this, that));\n }\n\n this.render();\n }\n\n // hyperElement.js\n class hyperElement extends HTMLElement {\n \n identifier;\n\n get innerShadow() {\n return manager[this.identifier].shadow.innerHTML;\n }\n\n connectedCallback() {\n createdCallback.call(this);\n }\n\n addDataset(dataset, dash_key) {\n addDataset.call(this, dataset, dash_key);\n }\n\n getDataset() {\n return getDataset.call(this);\n }\n\n attachAttrs(attributes) {\n return attachAttrs.call(this, attributes);\n }\n\n attributeChangedCallback(name, oldVal, newVal) {\n\n const ref = manager[this.identifier];\n if (!ref) return;\n\n if (newVal !== null && +newVal + '' === newVal.trim()) {\n newVal = +newVal; // to number\n }\n const { attrsToIgnore } = ref;\n const that = ref.this;\n if (0 <= name.indexOf('data-')) {\n\n const dataSetName = name.slice('data-'.length);\n if (null === oldVal) {\n this.addDataset(that.dataset, dataSetName);\n } else if (null === newVal) {\n const camel_key = dataSetName.replace(/-([a-z])/g, (g) =>\n g[1].toUpperCase()\n );\n delete that.dataset[camel_key];\n }\n }\n\n if (newVal === that.attrs[name]) {\n return;\n }\n if (null === newVal) {\n delete that.attrs[name];\n } else {\n that.attrs[name] = newVal;\n }\n if (attrsToIgnore[name]) {\n delete attrsToIgnore[name];\n return;\n } else {\n this.render();\n }\n }\n\n disconnectedCallback() {\n const ref = manager[this.identifier];\n ref.teardown && ref.teardown();\n }\n\n setup(onNext) {} // eslint-disable-line no-unused-vars\n\n render(Html, ...data) {} // eslint-disable-line no-unused-vars\n }\n\n console.info('hyper-element v1.0.3 by Brian Shannon (github.com/codemeasandwich)');\n window.hyperElement = hyperElement;\n})();\n"],
5
- "mappings": "CACC,UAAY,CAEX,kCAAkC,IAAIA,GAAU,SAASC,EAAE,CAAC,aAAa,IAAIC,EAAE,CAAC,EAAE,GAAG,CAACA,EAAE,QAAQ,OAAO,MAAS,CAACA,EAAE,QAAQ,SAASA,EAAEC,EAAE,CAAC,IAAIC,EAAED,EAAE,eAAeE,EAAEF,EAAE,eAAeG,EAAEC,EAAE,UAAU,OAAOD,EAAE,OAAO,SAASH,EAAE,CAAC,OAAO,KAAK,IAAIA,CAAC,GAAG,OAAOA,EAAE,KAAK,CAAC,CAAC,EAAEG,EAAE,IAAI,SAASH,EAAE,CAAC,OAAO,KAAK,IAAIA,CAAC,EAAEA,EAAE,KAAK,CAAC,EAAE,MAAM,EAAEG,EAAE,IAAI,SAASH,EAAE,CAAC,OAAOE,EAAE,KAAKF,EAAE,KAAK,CAAC,CAAC,EAAEG,EAAE,IAAI,SAASH,EAAED,EAAE,CAAC,OAAOE,EAAED,EAAE,KAAK,EAAE,CAAC,aAAa,GAAG,MAAMD,CAAC,CAAC,EAAE,IAAI,EAAEK,EAAE,SAASA,EAAEJ,EAAE,CAACC,EAAE,KAAK,IAAI,CAAC,MAAM,kBAAkBF,GAAG,CAAC,EAAEC,GAAGA,EAAE,QAAQK,EAAE,IAAI,CAAC,CAAC,SAASA,EAAEL,EAAE,CAAC,KAAK,IAAIA,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,MAAM,CAAC,CAAC,IAAIM,EAAEP,EAAE,QAAQI,EAAE,CAAC,EAAE,GAAG,CAACA,EAAE,QAAQ,OAAO,MAAS,EAAE,SAAS,EAAEJ,EAAE,CAAC,IAAIE,EAAEC,EAAE,UAAU,SAASA,GAAG,CAACH,EAAE,KAAK,IAAI,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,CAACE,EAAE,IAAI,SAASD,EAAE,CAAC,OAAO,KAAK,IAAIA,CAAC,GAAGD,EAAEC,EAAE,KAAK,EAAE,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC,EAAE,IAAI,EAAEC,EAAE,IAAI,SAASD,EAAE,CAAC,OAAO,KAAK,eAAe,KAAKA,EAAE,KAAK,CAAC,CAAC,EAAEC,EAAE,OAAO,SAASD,EAAE,CAAC,OAAO,KAAK,IAAIA,CAAC,GAAG,OAAOA,EAAE,KAAK,CAAC,CAAC,EAAEG,EAAE,QAAQD,CAAC,GAAE,KAAK,OAAO,EAAE,OAAO,cAAc,CAAC,CAAC,SAASK,EAAEP,EAAED,EAAE,EAAE,EAAEI,EAAEC,EAAE,CAAC,QAAQC,GAAG,kBAAkBN,GAAGS,EAAEH,EAAE,EAAEF,GAAG,CAAC,IAAIM,EAAEC,EAAEV,EAAE,EAAE,CAAC,EAAE,CAAC,EAAED,EAAE,aAAaW,EAAEN,CAAC,EAAEC,GAAGG,GAAGE,EAAE,WAAWF,EAAE,CAACA,EAAEC,EAAEV,EAAE,cAAcA,EAAE,cAAcU,EAAE,EAAE,EAAEE,EAAE,KAAKZ,EAAE,iBAAiB,QAAQ,EAAEW,CAAC,GAAG,GAAG,CAAC,CAAC,SAASE,EAAEZ,EAAED,EAAE,CAAC,OAAOC,GAAGD,CAAC,CAAC,SAASc,EAAEb,EAAE,CAAC,OAAOA,CAAC,CAAC,SAAS,EAAEA,EAAED,EAAE,EAAE,EAAEI,EAAEC,EAAEC,EAAE,CAAC,IAAIG,EAAEJ,EAAED,EAAE,GAAGK,EAAE,EAAE,MAAM,GAAG,KAAKA,GAAG,EAAET,GAAG,CAAC,QAAQU,EAAEV,EAAEW,EAAEP,EAAEM,EAAE,GAAGC,EAAEN,GAAGC,EAAEL,EAAES,CAAC,EAAE,EAAEC,CAAC,CAAC,GAAGD,IAAIC,IAAI,GAAGA,IAAIN,EAAE,OAAOL,EAAEA,EAAEU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,EAAET,EAAED,EAAE,EAAE,EAAEI,EAAE,CAAC,OAAO,EAAE,EAAEH,EAAED,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAEC,EAAED,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,YAAYI,CAAC,CAAC,SAASW,EAAEd,EAAED,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,GAAGK,EAAEJ,EAAED,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,SAASgB,EAAEf,EAAED,EAAE,EAAE,EAAEI,EAAEC,EAAEC,EAAEG,EAAEC,EAAEC,EAAEJ,EAAEK,EAAEK,EAAE,EAAE,SAAShB,EAAED,EAAEE,EAAEC,EAAEC,EAAEC,EAAEC,EAAEG,EAAEC,EAAE,CAAC,QAAQC,EAAE,CAAC,EAAEJ,EAAEN,EAAE,OAAOW,EAAEN,EAAEW,EAAE,EAAEA,EAAEV,GAAG,OAAON,EAAEgB,GAAG,EAAE,CAAC,IAAK,GAAEb,IAAIQ,IAAI,MAAM,IAAK,GAAED,EAAE,KAAKR,EAAEC,CAAC,CAAC,EAAEI,EAAER,EAAEE,EAAEC,EAAEC,IAAIA,EAAEQ,EAAEH,EAAET,EAAEK,EAAEO,CAAC,EAAE,CAAC,EAAEF,CAAC,EAAE,MAAM,IAAI,GAAGE,GAAG,CAAC,IAAIK,EAAE,EAAEA,EAAEV,GAAG,OAAON,EAAEgB,GAAG,EAAE,CAAC,IAAK,GAAEX,IAAI,MAAM,IAAI,GAAG,GAAGK,EAAE,QAAQN,EAAEC,CAAC,CAAC,EAAEA,IAAIS,EAAEf,EAAEK,EAAEC,IAAIA,CAAC,CAAC,CAAC,GAAE,SAASL,EAAED,EAAEE,EAAEC,EAAEC,EAAEC,EAAEC,EAAE,CAAC,IAAIG,EAAEC,EAAEC,EAAEJ,EAAEK,EAAEK,EAAEC,GAAEhB,EAAEG,EAAEc,EAAE,CAAC,EAAE,EAAE,IAAIX,EAAE,EAAEA,GAAGU,GAAEV,IAAI,CAAC,GAAG,GAAGA,EAAE,OAAO,KAAK,IAAIS,EAAET,EAAE,EAAED,EAAEC,EAAEW,EAAEX,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAEI,EAAEO,EAAEX,CAAC,EAAE,CAAC,EAAEC,EAAE,CAACD,EAAEC,GAAGD,EAAEC,GAAG,EAAE,CAAC,IAAIC,GAAGC,EAAEF,IAAI,CAACD,GAAGC,IAAID,GAAGD,EAAEU,EAAER,EAAE,CAAC,EAAEF,EAAEU,EAAER,EAAE,CAAC,EAAEF,EAAEU,EAAER,EAAE,CAAC,EAAEF,EAAEU,EAAER,EAAE,CAAC,EAAE,GAAGA,EAAEE,EAAEN,GAAGK,EAAER,GAAGI,EAAEH,EAAEC,EAAEO,CAAC,EAAEV,EAAED,EAAEU,CAAC,CAAC,GAAGC,IAAID,IAAI,GAAGC,IAAIN,GAAGK,IAAIR,EAAE,MAAM,EAAEU,EAAEJ,EAAEC,CAAC,EAAEE,CAAC,CAAC,CAAC,QAAQS,EAAE,MAAMZ,EAAE,EAAEU,GAAE,CAAC,EAAEG,EAAED,EAAE,OAAO,EAAEZ,EAAEW,EAAE,OAAO,EAAE,GAAGX,EAAEA,IAAI,CAAC,KAAK,EAAEG,GAAG,EAAED,GAAGJ,EAAEH,EAAEC,EAAEO,EAAE,CAAC,EAAEV,EAAED,EAAEU,EAAE,CAAC,CAAC,GAAGU,EAAEC,GAAG,EAAE,EAAEV,IAAID,IAAI,GAAG,CAACF,EAAE,MAAMS,EAAET,EAAE,EAAED,EAAEC,EAAEW,EAAEX,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAGC,EAAEE,EAAED,KAAK,CAACF,GAAGC,IAAID,GAAGD,EAAEU,EAAER,EAAE,CAAC,EAAEF,EAAEU,EAAER,EAAE,CAAC,GAAGC,IAAIU,EAAEC,GAAG,EAAE,IAAIV,IAAIS,EAAEC,GAAG,EAAE,GAAG,CAAC,OAAOD,CAAC,EAAE,EAAE,EAAEf,EAAEC,EAAEG,EAAEE,EAAEC,CAAC,GAAG,SAASX,EAAED,EAAEE,EAAEC,EAAEC,EAAEC,EAAEC,EAAEG,EAAE,CAAC,IAAIC,EAAE,EAAEC,EAAER,EAAEM,EAAEN,EAAEM,EAAEF,EAAE,MAAMI,GAAG,EAAEC,EAAE,MAAMD,CAAC,EAAEC,EAAE,CAAC,EAAE,GAAG,QAAQK,EAAE,EAAEA,EAAEN,EAAEM,IAAIL,EAAEK,CAAC,EAAEX,EAAE,QAAQY,GAAEd,EAAE,MAAMC,EAAEC,CAAC,EAAEa,EAAEnB,EAAEmB,EAAEjB,EAAEiB,IAAI,CAAC,IAAIC,EAAEC,EAAEH,GAAE,QAAQjB,EAAEkB,CAAC,CAAC,EAAE,GAAGE,GAAI,IAAIX,EAAEY,EAAEV,EAAED,EAAES,EAAEC,EAAEhB,CAAC,KAAKO,EAAEF,CAAC,EAAEU,EAAEb,EAAEG,CAAC,EAAE,CAAC,KAAKS,EAAE,KAAKC,EAAE,KAAKb,EAAEG,EAAE,CAAC,CAAC,EAAG,CAAC,IAAIA,EAAE,EAAEC,EAAE,EAAEL,EAAEM,EAAEF,CAAC,EAAEJ,GAAG,EAAEI,EAAEC,EAAEF,EAAEN,EAAEO,EAAE,IAAIF,EAAE,MAAMG,CAAC,EAAEE,GAAEN,EAAEG,CAAC,EAAE,IAAI,EAAER,EAAEW,IAAG,CAAC,QAAQC,GAAED,GAAE,KAAKU,GAAEV,GAAE,KAAKC,GAAEZ,GAAGM,EAAE,EAAEG,CAAC,EAAE,EAAE,EAAET,EAAE,KAAKqB,GAAEjB,GAAGE,EAAE,EAAEG,CAAC,EAAE,GAAG,EAAEL,EAAEE,EAAE,EAAEG,CAAC,EAAE,EAAE,EAAET,EAAE,EAAEI,EAAEO,GAAEA,GAAE,IAAI,CAAC,KAAKb,GAAGE,GAAGM,EAAE,EAAEG,CAAC,EAAE,EAAE,EAAET,EAAE,KAAKG,GAAGC,GAAGE,EAAE,EAAEG,CAAC,EAAE,GAAG,EAAEL,EAAE,OAAOE,CAAC,EAAE,EAAE,EAAEJ,EAAEC,EAAEC,EAAEG,EAAEC,EAAEC,CAAC,EAAEV,EAAED,EAAE,EAAE,EAAEM,EAAEG,EAAEF,EAAEU,CAAC,CAAC,CAAC,IAAIhB,EAAEG,EAAE,QAAQQ,EAAE,CAAC,EAAE,QAAQU,EAAE,SAASrB,EAAED,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAEI,EAAEJ,EAAE,EAAEI,GAAG,CAAC,IAAIC,GAAG,EAAED,GAAG,IAAI,EAAE,EAAEH,EAAEI,CAAC,EAAED,EAAEC,EAAE,EAAE,EAAEA,CAAC,CAAC,OAAO,CAAC,EAAEA,EAAE,SAASJ,EAAE,CAAC,OAAOA,EAAE,QAAQ,UAAU,CAAC,IAAI,EAAE,KAAK,WAAW,GAAG,EAAE,YAAY,IAAI,CAAC,GAAG,KAAKA,CAAC,CAAC,EAAE,SAASU,EAAEV,EAAED,EAAE,EAAE,EAAE,CAAC,QAAQI,GAAG,EAAE,GAAG,CAAC,GAAG,SAASS,EAAER,EAAE,EAAE,MAAMS,EAAER,EAAQ,EAAE,QAAR,KAAe,KAAKD,EAAE,EAAE,OAAO,CAAC,EAAEI,EAAET,EAAE,OAAOU,EAAED,EAAEE,EAAE,EAAEJ,EAAE,EAAE,OAAOK,EAAE,EAAED,EAAED,GAAGE,EAAEL,GAAGH,EAAEJ,EAAEW,CAAC,EAAE,EAAEC,CAAC,CAAC,GAAGD,IAAIC,IAAI,KAAKD,EAAED,GAAGE,EAAEL,GAAGH,EAAEJ,EAAEU,EAAE,CAAC,EAAE,EAAEH,EAAE,CAAC,CAAC,GAAGG,IAAIH,IAAI,IAAIU,EAAEN,IAAID,EAAEQ,EAAEN,IAAIL,EAAE,GAAGU,GAAGC,EAAE,OAAO,EAAE,GAAGD,GAAGL,EAAEL,EAAE,OAAOC,EAAEH,EAAEJ,EAAE,EAAEW,EAAEL,EAAE,EAAEF,EAAEL,EAAEW,EAAEF,EAAEH,CAAC,CAAC,EAAE,EAAE,GAAGY,GAAGP,EAAED,EAAE,OAAOK,EAAEV,EAAEL,EAAEW,EAAED,CAAC,EAAE,EAAE,IAAIS,EAAET,EAAEC,EAAES,EAAEb,EAAEK,EAAES,EAAE,GAAG,GAAGF,EAAEC,GAAG,GAAG,IAAIC,EAAE,EAAE,EAAET,EAAEL,EAAEP,EAAEW,EAAED,EAAEN,CAAC,GAAG,OAAOI,EAAEH,EAAEJ,EAAE,EAAEW,EAAES,EAAEhB,EAAEL,EAAEW,CAAC,EAAE,CAAC,CAAC,EAAEH,EAAEH,EAAEJ,EAAE,EAAEoB,EAAEF,EAAEZ,EAAE,EAAEF,EAAEL,EAAEU,EAAED,EAAEH,CAAC,CAAC,EAAE,UAAUc,EAAED,GAAG,IAAIE,EAAE,EAAErB,EAAEW,EAAED,EAAE,EAAEE,EAAEL,EAAEH,CAAC,GAAG,OAAOW,EAAEV,EAAEL,EAAEW,EAAEU,CAAC,EAAEN,EAAEV,EAAEL,EAAEqB,EAAED,EAAEV,CAAC,EAAE,EAAE,OAAOS,EAAE,GAAGC,EAAE,GAAGZ,EAAEH,EAAEJ,EAAE,EAAEW,EAAEL,EAAEF,EAAEL,EAAEW,CAAC,EAAE,CAAC,CAAC,EAAEI,EAAEV,EAAEL,EAAEW,EAAED,CAAC,GAAGS,GAAGC,GAAG,SAASnB,EAAED,EAAEE,EAAEC,EAAEC,EAAEC,EAAE,CAAC,KAAKF,EAAEC,GAAGC,EAAEH,EAAEC,CAAC,EAAEF,EAAED,EAAE,CAAC,CAAC,GAAGG,IAAIH,IAAI,OAAWA,IAAJ,CAAK,EAAE,EAAEO,EAAEP,EAAEW,EAAED,EAAEN,CAAC,EAAEI,EAAEH,EAAEJ,EAAE,EAAEW,EAAEL,EAAE,EAAEF,EAAEL,EAAEU,EAAED,EAAEH,CAAC,CAAC,EAAEU,EAAEX,EAAEJ,EAAE,EAAEW,EAAEL,EAAEa,EAAEpB,EAAEW,EAAED,EAAES,EAAEV,EAAEL,EAAEE,CAAC,EAAE,CAAC,CAAC,IAAIJ,EAAEC,EAAE,CAAC,EAAE,SAASG,EAAEL,EAAED,EAAE,CAACA,EAAEA,GAAG,CAAC,EAAE,IAAI,EAAED,EAAE,YAAY,aAAa,EAAE,OAAO,EAAE,gBAAgBE,EAAE,CAAC,CAACD,EAAE,QAAQ,CAAC,CAACA,EAAE,WAAWA,EAAE,MAAM,EAAE,CAAC,CAACG,EAAE,YAAwB,OAAO,aAAnB,WAA+B,aAAaG,EAAEJ,EAAE,WAAW,EAAE,IAAII,EAAE,EAAE,EAAE,YAAYJ,CAAC,EAAEI,GAAG,IAAIG,EAAEN,EAAE,YAAYO,EAAE,CAAC,EAAE,GAAG,CAACA,EAAE,IAAI,GAAG,MAAS,CAACA,EAAE,IAAI,UAAU,CAAC,IAAIR,EAAE,EAAEE,EAAE,CAAC,EAAEC,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,SAASJ,EAAE,CAAC,IAAID,EAAEG,EAAEF,CAAC,EAAE,OAAOD,IAAII,EAAE,OAAOF,EAAE,CAAC,EAAEG,EAAE,OAAOH,EAAE,CAAC,GAAGF,CAAC,EAAE,QAAQ,SAASE,EAAEC,EAAE,CAACC,EAAE,QAAQ,SAASH,EAAED,EAAE,CAACE,EAAE,KAAKC,EAAEE,EAAEL,CAAC,EAAEC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,SAASA,EAAE,CAAC,OAAOE,EAAEF,CAAC,EAAEI,EAAEH,CAAC,EAAE,MAAM,EAAE,IAAIC,EAAE,IAAI,SAASF,EAAED,EAAE,CAAC,OAAOK,EAAEF,EAAEF,CAAC,EAAEC,EAAEE,EAAE,KAAKH,CAAC,EAAE,CAAC,EAAED,EAAE,IAAI,CAAC,EAAE,SAASG,EAAEF,EAAE,CAAC,MAAM,IAAIC,EAAEE,EAAE,QAAQH,CAAC,EAAE,CAAC,CAAC,CAAC,IAAIgB,EAAEP,EAAE,IAAI,SAASQ,GAAG,CAAC,OAAO,IAAI,CAAC,SAASC,GAAElB,EAAED,EAAE,CAAC,IAAI,EAAE,IAAIC,EAAE,IAAI,MAAM,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,CAAC,GAAGmB,GAAE,KAAK,EAAEpB,EAAE,KAAK,KAAKC,CAAC,CAAC,CAAC,EAAE,IAAI,SAASA,EAAE,CAACmB,GAAE,KAAK,EAAEnB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAImB,GAAE,SAASnB,EAAED,EAAE,EAAE,CAAC,OAAO,OAAO,eAAeC,EAAED,EAAE,CAAC,aAAa,GAAG,MAAkB,OAAO,GAAnB,WAAqB,UAAU,CAAC,OAAOC,EAAE,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC,CAAC,EAAED,CAAC,CAAC,EAAE,OAAO,iBAAiBkB,EAAE,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,IAAIG,GAAEG,GAAEC,GAAEC,GAAEC,GAAEC,GAAEC,GAAE,CAAC,EAAEC,GAAE,CAAC,EAAEC,GAAE,CAAC,EAAEC,GAAEF,GAAE,eAAeG,GAAE,EAAEC,GAAE,CAAC,WAAWL,GAAE,OAAO,SAAS5B,EAAED,EAAE,CAACC,EAAE,QAAQ,GAAG,EAAE,GAAGA,KAAK6B,KAAIG,GAAEF,GAAE,KAAK9B,CAAC,GAAG6B,GAAE7B,CAAC,EAAED,GAAG6B,GAAE5B,CAAC,EAAED,CAAC,EAAE,OAAO,SAASC,EAAED,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAEiC,GAAE,IAAI,CAAC,IAAI,EAAEF,GAAE,CAAC,EAAE,GAAGC,GAAE,KAAK/B,EAAE,CAAC,EAAE,OAAO6B,GAAE,CAAC,EAAE7B,EAAE,CAAC,EAAED,CAAC,CAAC,CAAC,CAAC,EAAEmC,GAAE,MAAM,UAAUX,IAAGH,GAAE,CAAC,EAAE,UAAU,KAAK,CAAC,CAAC,EAAE,SAASpB,EAAE,CAAC,OAAOoB,GAAE,KAAKpB,CAAC,IAAIuB,EAAC,GAAGY,IAAGX,GAAE1B,EAAE2B,GAAE,WAAWE,GAAE,YAAYS,GAAEV,GAAE,UAAU,EAAE,SAAS1B,EAAE,CAAC,IAAID,EAAEqC,GAAEV,EAAC,EAAE,OAAO3B,EAAE,UAAUC,EAAED,EAAE,OAAO,EAAE,SAASC,EAAE,CAAC,IAAID,EAAE,EAAEqC,GAAEX,EAAC,EAAE,EAAEW,GAAEV,EAAC,EAAE,OAAOW,GAAE,EAAE,sDAAsD,KAAKrC,CAAC,GAAGD,EAAE,OAAO,GAAG,EAAE,UAAU,UAAUC,EAAE,WAAW,EAAE,iBAAiBD,CAAC,IAAI,EAAE,UAAUC,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,SAASA,EAAED,EAAE,CAAC,OAAeA,IAAR,MAAU,SAASC,EAAE,CAAC,IAAID,EAAEqC,GAAEX,EAAC,EAAExB,EAAEmC,GAAE,KAAK,EAAE,OAAOnC,EAAE,UAAU,2CAA2CD,EAAE,SAASqC,GAAEtC,EAAEE,EAAE,WAAW,UAAU,EAAEF,CAAC,EAAE4B,IAAG3B,CAAC,CAAC,GAAG,SAASqC,GAAErC,EAAED,EAAE,CAAC,QAAQ,EAAEA,EAAE,OAAO,KAAKC,EAAE,YAAYD,EAAE,CAAC,CAAC,CAAC,CAAC,SAASqC,GAAEpC,EAAE,CAAC,OAAOA,IAAIyB,GAAED,GAAE,uBAAuB,EAAEA,GAAE,gBAAgB,+BAA+BxB,CAAC,CAAC,CAAC,IAAIsC,GAAEC,GAAEC,GAAEC,GAAEC,GAAEC,GAAEC,GAAEC,GAAEC,GAAEC,GAAEC,IAAGT,GAAE,cAAcC,GAAE,YAAYC,GAAE,iBAAiBE,IAAGD,GAAE,gBAAgBJ,GAAExC,IAAI8C,GAAEN,GAAE,uBAAuB,GAAGC,EAAC,EAAED,GAAEG,EAAC,EAAE,GAAG,CAAC,EAAEG,GAAEL,EAAC,EAAED,GAAEG,EAAC,EAAE,EAAE,CAAC,GAAGE,GAAEL,GAAEI,EAAC,EAAEE,GAAE,EAAE,EAAEA,GAAEJ,EAAC,EAAE,EAAE,GAAG,WAAW,OAAO,EAAE,SAASxC,EAAED,EAAE,EAAE,CAAC,QAAQ,EAAEA,EAAEyC,EAAC,EAAE,EAAErC,EAAEJ,EAAE,YAAY,CAAC,EAAEK,EAAED,EAAE,OAAOE,EAAE,EAAE,GAAGA,EAAED,EAAEC,IAAI,EAAEkC,EAAC,EAAEvC,EAAEG,EAAEE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAEsC,GAAEL,GAAEI,EAAC,EAAE,SAAS1C,EAAED,EAAE,CAAC,OAAOC,EAAEwC,EAAC,EAAE,CAAC,CAACzC,CAAC,CAAC,GAAGkD,GAAE,GAAG,MAAM,UAAU,CAAC,OAAO,OAAO,IAAI,EAAE,QAAQ,YAAY,EAAE,CAAC,EAAEC,GAAE,IAAI,KAAK,OAAO,EAAE,QAAQ,CAAC,EAAE,IAAIC,GAAG,GAAG,GAAG,CAACN,GAAE/C,EAAE,cAAc,UAAU,EAAEiD,GAAE,YAAYD,GAAE,aAAaD,KAAIA,GAAE,UAAU,MAAME,GAAE,KAAKG,GAAE,SAASL,GAAEC,EAAC,EAAE,WAAW,CAAC,EAAE,aAAaC,EAAC,GAAGG,MAAKA,GAAE,QAAQA,GAAE,MAAM,EAAE,EAAE,EAAE,IAAIC,GAAG,GAAG,MAAS,CAAC,CAAC,IAAIC,GAAG,OAAUF,GAAE,MAASG,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,wBAAwBC,GAAG,8FAAkGC,GAAG,gBAAgBC,GAAG,KAAKD,GAAG,YAAaE,GAAG,IAAIF,GAAG,KAAKC,GAAGE,GAAG,mCAAmCC,GAAG,6CAAgDH,GAAG,QAAQ,MAAM,EAAE,EAAE,OAAOI,GAAG,IAAI,OAAOF,GAAGD,GAAGE,GAAG,OAAOJ,GAAG,SAAS,GAAG,EAAEM,GAAG,IAAI,OAAOH,GAAGD,GAAGE,GAAG,OAAOJ,GAAG,QAAQ,GAAG,EAAEO,GAAG,IAAI,OAAO,IAAIL,GAAG,oBAAqBR,GAAG,MAAM,IAAI,EAAE,SAASc,GAAGlE,EAAED,EAAE,EAAE,EAAE,CAAC,MAAM,IAAIA,EAAE,EAAE,QAAQkE,GAAGE,EAAE,EAAE,CAAC,CAAC,SAASA,GAAGnE,EAAED,EAAE,EAAE,CAAC,OAAOA,GAAG,GAAG,KAAKmD,IAAG,GAAG,IAAI,CAAC,SAASkB,GAAGpE,EAAED,EAAE,EAAE,CAAC,OAAO0D,GAAG,KAAK1D,CAAC,EAAEC,EAAE,IAAID,EAAE,EAAE,MAAMA,EAAE,GAAG,CAAC,IAAIsE,GAAGlB,GAAG,SAASnD,EAAED,EAAE,CAAC,IAAI,EAAEA,EAAE,KAAK,GAAG,EAAE,OAAOA,EAAE,MAAM,KAAKC,EAAE,CAAC,EAAE,KAAK,SAASA,EAAED,EAAE,CAAC,OAAO,EAAE,QAAQC,EAAE,IAAI,GAAG,EAAE,QAAQD,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,SAASC,EAAED,EAAE,CAAC,OAAOA,EAAE,MAAM,KAAKC,EAAE,CAAC,CAAC,EAAE,SAASsE,GAAGtE,EAAED,EAAE,EAAE,EAAE,CAAC,QAAQI,EAAEH,EAAE,WAAWI,EAAED,EAAE,OAAOE,EAAE,EAAEA,EAAED,GAAG,CAAC,IAAII,EAAEL,EAAEE,CAAC,EAAE,OAAOG,EAAE,SAAS,CAAC,KAAK8C,GAAG,IAAI7C,EAAE,EAAE,OAAOJ,CAAC,GAAG,SAASL,EAAED,EAAEE,EAAEC,EAAE,CAAyD,QAApDC,EAAEC,EAAEJ,EAAE,WAAWK,EAAE,CAAC,EAAEG,EAAE,CAAC,EAAEC,EAAE4D,GAAGjE,EAAEH,CAAC,EAAES,EAAED,EAAE,OAAOH,EAAE,EAAOA,EAAEI,GAAG,CAAC,IAAIC,EAAEF,EAAEH,GAAG,EAAEU,EAAEL,EAAE,QAAQuC,GAAE,GAAGlC,GAAG,GAAGb,EAAEQ,EAAE,MAAM,MAAMyC,EAAE,GAAG,OAAO,CAAC,IAAInC,EAAEN,EAAE,KAAK,GAAGN,EAAE,QAAQY,CAAC,EAAE,EAAE,CAACZ,EAAE,KAAKY,CAAC,EAAE,IAAIC,EAAEjB,EAAE,MAAM,EAAE,QAAQe,EAAE,uCAAuC,IAAI,OAAO,uBAAuBC,EAAE,2BAA4B,GAAG,EAAE,IAAI,EAAEE,EAAEf,EAAEc,CAAC,GAAGd,EAAEc,EAAE,YAAY,CAAC,EAAE,GAAGF,EAAEjB,EAAE,KAAKwE,GAAGpD,EAAEjB,EAAEgB,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQE,GAAEjB,EAAE,OAAO,EAAEiB,MAAKnB,EAAE,MAAM,EAAEF,EAAE,KAAKwE,GAAGpD,EAAEjB,EAAEgB,EAAEf,CAAC,CAAC,CAAC,CAAC,CAACK,EAAE,KAAKG,CAAC,CAAC,CAAC,CAACD,EAAEF,EAAE,OAAmD,QAAxCD,GAAGD,EAAE,GAAGI,GAAGyC,IAAI,EAAE,oBAAoBnD,GAAQM,EAAEI,GAAG,CAAC,IAAIE,EAAEJ,EAAEF,GAAG,EAAEC,IAAIK,EAAE,MAAM,IAAIZ,EAAE,gBAAgBY,EAAE,IAAI,CAAC,CAAC,IAAIC,EAAEb,EAAE,SAAS,GAAG,YAAY,KAAKa,CAAC,EAAE,CAAC,IAAIS,EAAExB,EAAE,cAAce,CAAC,EAAE,IAAIH,EAAEN,EAAE,OAAOE,EAAE,EAAEA,EAAEI,GAAGY,EAAE,iBAAiBlB,EAAEE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAEgB,EAAE,YAAYtB,EAAE,YAAYA,EAAE,WAAW,aAAasB,EAAEtB,CAAC,CAAC,CAAC,GAAEQ,EAAET,EAAE,EAAEU,CAAC,EAAE6D,GAAG9D,EAAET,EAAE,EAAEU,CAAC,EAAE,MAAM,KAAK4C,GAAG,IAAI3C,EAAEF,EAAE,YAAY,GAAGE,IAAIwC,GAAE,EAAE,MAAM,EAAEnD,EAAE,KAAKyD,GAAG,KAAKxD,EAAE,QAAQ,EAAEwE,GAAGxE,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,KAAKQ,EAAE,KAAK,EAAE,OAAOH,CAAC,CAAC,CAAC,MAAO,QAAOK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,GAAUA,EAAE,MAAM,EAAE,IAAjB,KAAmB,MAAM,IAAI,YAAKV,EAAE,YAAYQ,CAAC,EAAEH,IAAID,GAAG,CAAC,MAAM,KAAKmD,GAAGC,GAAG,KAAKxD,EAAE,QAAQ,GAAGiD,GAAE,KAAKzC,EAAE,WAAW,IAAI4C,KAAK,EAAE,MAAM,EAAErD,EAAE,KAAKyE,GAAGxE,EAAE,CAAC,CAAC,EAAE,CAACK,GAAG,CAAC,CAAC,SAASkE,GAAGvE,EAAED,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,OAAO,KAAKC,EAAE,KAAKD,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,SAASyE,GAAGxE,EAAED,EAAE,CAAC,MAAM,CAAC,KAAK,OAAO,KAAKC,EAAE,KAAKD,CAAC,CAAC,CAAC,IAAI0E,GAAGC,IAAID,GAAG,IAAInE,EAAE,CAAC,IAAI,SAASN,EAAE,CAAC,OAAOyE,GAAG,IAAIzE,CAAC,CAAC,EAAE,IAAI,SAASA,EAAED,EAAE,CAAC,OAAO0E,GAAG,IAAIzE,EAAED,CAAC,EAAEA,CAAC,CAAC,GAAG,SAAS4E,GAAGtE,EAAEM,EAAE,CAAC,IAAIX,GAAGK,EAAE,SAAS,SAASL,EAAE,CAAC,OAAOA,EAAE,KAAKoD,EAAE,EAAE,QAAQY,GAAGI,EAAE,EAAE,QAAQL,GAAGG,EAAE,CAAC,GAAGvD,CAAC,EAAEZ,EAAEM,EAAE,UAAUN,IAAIC,EAAED,EAAEC,CAAC,GAAG,IAAIC,EAAEkC,GAAEnC,EAAEK,EAAE,IAAI,EAAEuE,GAAG3E,CAAC,EAAE,IAAIO,EAAE,CAAC,EAAE,OAAO8D,GAAGrE,EAAEO,EAAEG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQV,EAAE,QAAQ,SAASQ,EAAE,CAAC,QAAQC,EAAE,CAAC,EAAEJ,EAAEE,EAAE,OAAOR,EAAE,EAAED,EAAE,EAAEC,EAAEM,GAAG,CAAC,IAAIL,EAAEO,EAAER,GAAG,EAAEE,EAAE,SAASF,EAAED,EAAE,CAAC,QAAQE,EAAEF,EAAE,OAAOG,EAAE,EAAEA,EAAED,GAAGD,EAAEA,EAAE,WAAWD,EAAEG,GAAG,CAAC,EAAE,OAAOF,CAAC,EAAES,EAAER,EAAE,IAAI,EAAE,OAAOA,EAAE,KAAK,CAAC,IAAI,MAAMS,EAAE,KAAK,CAAC,GAAGL,EAAE,IAAIH,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,IAAI,OAAO,IAAIC,EAAEF,EAAE,OAAOG,EAAEC,EAAE,UAAUH,EAAED,EAAE,KAAKA,EAAE,IAAI,EAASE,IAAP,KAASO,EAAE,KAAK,CAAC,GAAGN,EAAE,OAAO,EAAE,CAAC,GAAGL,GAAGI,EAAE,OAAO,EAAEO,EAAE,KAAK,CAAC,GAAGN,EAAE,OAAO,GAAG,OAAOD,CAAC,CAAC,GAAG,MAAM,IAAI,OAAOO,EAAE,KAAK,CAAC,GAAGL,EAAE,KAAKH,CAAC,EAAE,OAAO,EAAE,CAAC,EAAEA,EAAE,YAAY,EAAE,CAAC,CAAC,OAAOI,GAAGP,EAAE,UAAU,CAAC,IAAIC,EAAE,UAAU,OAAO,GAAGM,IAAIN,EAAE,EAAE,MAAM,IAAI,MAAMA,EAAE,EAAE,sBAAsBM,EAAE;AAAA,EAAKK,EAAE,KAAK,UAAU,CAAC,EAAE,QAAQZ,EAAE,EAAEE,EAAE,EAAEF,EAAEC,GAAG,CAAC,IAAIE,EAAEQ,EAAEX,EAAEE,CAAC,EAAE,GAAGC,EAAE,OAAO,CAAC,IAAIC,EAAED,EAAE,OAAOE,EAAED,EAAE,CAAC,EAAEE,EAAE,EAAEG,EAAEL,EAAE,OAAO,IAAIF,GAAGO,EAAE,EAAEH,EAAEG,GAAGJ,GAAG,UAAUL,GAAG,EAAEI,EAAEE,GAAG,EAAEH,EAAE,GAAGE,CAAC,CAAC,MAAMF,EAAE,GAAG,UAAUH,GAAG,CAAC,CAAC,CAAC,OAAOU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAIoE,GAAG,CAAC,EAAE,SAASC,GAAG3E,EAAE,CAAC,IAAIC,EAAEyE,GAAGxE,EAAEuE,GAAG,OAAO,SAAS5E,EAAE,CAAC,IAAID,EAAEE,EAAEC,EAAE,OAAOE,IAAIJ,IAAID,EAAEI,EAAEF,EAAEG,EAAEJ,EAAEE,EAAEwE,GAAG,IAAIzE,CAAC,GAAGyE,GAAG,IAAIzE,EAAE0E,GAAG5E,EAAEE,CAAC,CAAC,EAAEI,EAAEH,EAAE,QAAQ8C,GAAE,KAAKlD,EAAEI,EAAE,QAAQ,EAAE,CAAC,GAAGG,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAASuE,GAAG5E,EAAE,CAAC,QAAQD,EAAEC,EAAE,WAAW,EAAED,EAAE,OAAO,KAAK,CAAC,IAAI,EAAEA,EAAE,CAAC,EAAM,EAAE,WAAN,GAAoBkD,GAAE,KAAK,EAAE,WAAW,EAAE,SAA1B,GAAkCjD,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI+E,GAAGC,GAAGC,IAAIF,GAAG,yDAAyDC,GAAG,oBAAoB,SAAShF,EAAED,EAAE,CAAC,MAAM,oBAAoBC,EAAE,SAASA,EAAED,EAAE,CAAC,IAAIE,EAAE,OAAOA,EAAEF,EAAEA,EAAE,UAAU,EAAE,GAAGC,EAAE,aAAa,QAAQ,gBAAgB,EAAEA,EAAE,iBAAiB,OAAO,IAAI,MAAM,GAAGA,EAAE,iBAAiBC,CAAC,EAAEiF,GAAGjF,EAAE,EAAE,CAAC,EAAED,EAAED,CAAC,EAAEmF,GAAGlF,EAAE,MAAM,EAAE,CAAC,GAAG,SAASmF,GAAGnF,EAAED,EAAE,EAAE,CAAC,OAAOA,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,SAASmF,GAAG9E,EAAEC,EAAE,CAAC,IAAIG,EAAEC,EAAE,OAAO,SAAST,EAAE,CAAC,IAAID,EAAEE,EAAEC,EAAEC,EAAE,OAAO,OAAOH,EAAE,CAAC,IAAI,SAAS,GAAGA,EAAE,CAAC,GAAcQ,IAAX,UAAc,GAAG,CAACH,GAAGI,IAAIT,EAAE,IAAIC,KAAKQ,EAAER,KAAKD,IAAII,EAAEH,CAAC,EAAE,SAASI,EAAED,EAAE,MAAM,GAAGA,EAAE,QAAQ,GAAG,IAAIH,KAAKF,EAAEM,EAAE,CAAC,EAAED,EAAEJ,EAAEE,EAAY,OAAOC,EAAEH,EAAEC,CAAC,IAAtB,UAA0B8E,GAAG,KAAK9E,CAAC,EAAEE,EAAEA,EAAE,KAAK,CAACE,GAAG,MAAM,KAAKJ,CAAC,EAAEF,EAAE,YAAYE,EAAEC,CAAC,EAAEH,EAAEE,CAAC,EAAEC,EAAEM,EAAE,SAASH,EAAED,EAAE,MAAM,SAASJ,EAAE,CAAC,IAAID,EAAEE,EAAE,CAAC,EAAE,IAAIF,KAAKC,EAAEC,EAAE,KAAKF,EAAE,QAAQiF,GAAGG,EAAE,EAAE,IAAInF,EAAED,CAAC,EAAE,GAAG,EAAE,OAAOE,EAAE,KAAK,EAAE,CAAC,EAAEQ,EAAEV,CAAC,EAAEU,EAAET,EAAE,KAAK,CAAC,QAAQS,GAAGT,IAAIQ,EAAE,SAASC,EAAET,EAAEK,EAAED,EAAE,MAAMJ,GAAG,GAAGI,EAAE,QAAQJ,GAAG,GAAG,CAAC,CAAC,CAAC,IAAIoF,GAAGC,GAAGC,IAAIF,GAAG,CAAC,EAAE,OAAOC,GAAGE,GAAG,WAAW,aAAa,EAAEF,GAAG,SAAS,IAAIA,GAAG,OAAO,SAASrF,EAAE,CAAC,IAAID,EAAE,EAAE,KAAK,WAAW,EAAE,KAAK,WAAWI,EAAE,KAAK,UAAU,OAAO,KAAK,EAAE,KAAKH,GAAO,EAAE,SAAN,EAAaG,EAAE,WAAW,YAAYA,CAAC,IAAIJ,EAAE,KAAK,cAAc,YAAY,GAAG,eAAeC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAED,EAAE,YAAYI,CAAC,EAAEJ,EAAE,eAAe,GAAG,CAAC,EAAEsF,GAAG,QAAQ,SAASrF,EAAE,CAAC,IAAID,EAAE,KAAK,EAAE,EAAQA,GAAN,KAAQ,GAAG,IAAIA,EAAE,KAAK,EAAE,KAAK,cAAc,uBAAuB,GAAG,GAAGC,EAAE,QAAQ,EAAE,KAAK,WAAWG,EAAE,EAAEC,EAAE,EAAE,OAAOD,EAAEC,EAAED,IAAIJ,EAAE,YAAY,EAAEI,CAAC,CAAC,EAAE,OAAOJ,CAAC,EAAEwF,IAAI,SAASA,GAAGvF,EAAE,CAAC,IAAID,EAAE,KAAK,WAAWqF,GAAG,KAAKpF,EAAE,CAAC,EAAE,KAAK,WAAWD,EAAE,CAAC,EAAE,KAAK,UAAUA,EAAEA,EAAE,OAAO,CAAC,EAAE,KAAK,cAAcA,EAAE,CAAC,EAAE,cAAc,KAAK,EAAE,IAAI,CAAC,SAASyF,GAAGxF,EAAE,CAAC,MAAM,CAAC,KAAKA,CAAC,CAAC,CAAC,SAASyF,GAAGzF,EAAED,EAAE,CAAC,OAAOC,EAAE,SAAS,CAAC,KAAK0F,GAAG,MAAO,GAAE3F,EAAE,EAAEA,EAAEC,EAAE,OAAO,EAAE,EAAEA,EAAE,UAAUD,EAAEC,EAAE,QAAQ,EAAE,EAAEA,EAAE,WAAW,KAAK2F,GAAG,OAAOF,GAAGzF,EAAE,OAAO,EAAED,CAAC,EAAE,QAAQ,OAAOC,CAAC,CAAC,CAAC,SAAS4F,GAAG5F,EAAED,EAAE,CAACA,EAAEC,EAAE,WAAW,EAAE,SAASA,EAAE,QAAQ,QAAQA,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,KAAKD,CAAC,EAAE,QAAQC,EAAE,QAAQ,QAAQA,EAAE,GAAG,EAAE,KAAKD,CAAC,EAAE,SAASC,EAAE,QAAQ,QAAQA,EAAE,IAAI,EAAE,KAAKwF,EAAE,EAAE,KAAKzF,CAAC,EAAE,QAAQ,QAAQkC,GAAE,OAAOjC,EAAED,CAAC,CAAC,EAAE,KAAKA,CAAC,CAAC,CAAC,SAAS8F,GAAG7F,EAAE,CAAC,OAAaA,GAAN,MAAS,SAASA,CAAC,CAAC,IAAI8F,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAG,kBAAkBC,GAAG,YAAYT,GAAG1E,EAAE,UAAU,SAASyE,GAAGJ,GAAG,UAAU,SAASe,IAAIN,IAAID,GAAG,CAAC,MAAMtF,EAAE,QAAQR,CAAC,GAAG,MAAMgG,GAAGF,GAAG,QAAQG,GAAG,GAAGC,GAAG,KAAK,SAASlG,EAAE,CAAC,OAAOiG,KAAKA,GAAG,CAACA,GAAGC,GAAG,IAAIF,GAAG,SAASjG,EAAE,CAAC,IAAII,EAAE,IAAI6F,GAAG5F,EAAE,IAAI4F,GAAG,GAAG,CAAC,IAAI,iBAAiBxF,CAAC,EAAE,QAAQT,EAAE,CAAC,QAAQ,GAAG,UAAU,EAAE,CAAC,CAAC,MAAS,CAAC,IAAIE,EAAE,EAAEC,EAAE,CAAC,EAAEG,EAAE,SAASL,EAAE,CAACE,EAAE,KAAKF,CAAC,EAAE,aAAaC,CAAC,EAAEA,EAAE,WAAW,UAAU,CAACO,EAAEN,EAAE,OAAOD,EAAE,EAAEC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEH,EAAE,iBAAiB,iBAAiB,SAASC,EAAE,CAACK,EAAE,CAAC,WAAW,CAAC,EAAE,aAAa,CAACL,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAED,EAAE,iBAAiB,kBAAkB,SAASC,EAAE,CAACK,EAAE,CAAC,WAAW,CAACL,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAASQ,EAAER,EAAE,CAAC,QAAQD,EAAEE,EAAED,EAAE,OAAOE,EAAE,EAAEA,EAAED,EAAEC,IAAIO,GAAGV,EAAEC,EAAEE,CAAC,GAAG,aAAa,eAAeE,EAAED,CAAC,EAAEM,EAAEV,EAAE,WAAW,YAAYI,EAAEC,CAAC,CAAC,CAAC,SAASK,EAAET,EAAED,EAAEE,EAAEC,EAAE,CAAC,QAAQC,EAAEC,EAAE,IAAI2F,GAAGhG,CAAC,EAAEM,EAAEL,EAAE,OAAOQ,EAAE,EAAEA,EAAEH,GAAOF,EAAEH,EAAEQ,GAAG,GAAG,WAAf,GAAyB,SAASR,EAAED,EAAEE,EAAEC,EAAEC,EAAEC,EAAE,CAAC8F,GAAG,IAAInG,CAAC,GAAG,CAACI,EAAE,IAAIJ,CAAC,IAAIK,EAAE,OAAOL,CAAC,EAAEI,EAAE,IAAIJ,CAAC,EAAEA,EAAE,cAAcE,CAAC,GAAG,QAAQI,EAAEN,EAAE,UAAU,CAAC,EAAES,EAAEH,EAAE,OAAOI,EAAE,EAAEA,EAAED,EAAER,EAAEK,EAAEI,GAAG,EAAER,EAAEC,EAAEC,EAAEC,CAAC,EAAE,CAAC,EAAED,EAAEC,EAAEL,EAAEE,EAAEC,CAAC,EAAE,CAAC,CAAC,EAAEF,EAAE,aAAa,GAAGkG,GAAG,IAAIlG,CAAC,EAAEA,CAAC,GAAGsG,GAAG,mBAAmBC,GAAG,CAAC,EAAE,MAAM,SAASC,GAAGxG,EAAE,CAAC,OAAO,KAAK,KAAKA,EAAE8E,GAAG,IAAI,CAAC,CAAC,IAAI2B,GAAG,EAAED,GAAG,UAAU,CAAC,UAAU,SAASvG,EAAEC,EAAEF,EAAE,CAAC,IAAIG,EAAEJ,EAAEoG,MAAMlG,EAAE,GAAaC,IAAV,QAAY,OAAO+E,GAAGhF,EAAED,EAAED,CAAC,EAAE,GAASG,EAAE,MAAM,EAAE,CAAC,IAAjB,IAAmB,OAAOQ,EAAET,EAAEK,EAAEJ,EAAE,MAAM,CAAC,EAAEH,EAAE,SAASA,EAAE,CAAC,GAAG,CAACW,EAAEJ,CAAC,EAAEP,CAAC,MAAS,CAACW,EAAE,aAAaJ,EAAEP,CAAC,CAAC,CAAC,EAAE,SAASC,EAAE,CAACU,EAAEJ,CAAC,EAAEN,CAAC,EAAE,GAASE,EAAE,MAAM,EAAE,CAAC,IAAjB,IAAmB,OAAOG,EAAEJ,EAAEO,EAAEN,EAAE,MAAM,CAAC,EAAE,SAASF,EAAE,CAACS,IAAI,CAAC,CAACT,KAAKS,EAAE,CAAC,CAACT,GAAGK,EAAE,aAAaG,EAAE,EAAE,EAAEH,EAAE,gBAAgBG,CAAC,EAAE,EAAE,GAAG,MAAM,KAAKN,CAAC,EAAE,CAAC,IAAIE,EAAEF,EAAE,MAAM,CAAC,EAAE,OAAOE,IAAIgG,IAAqBhG,IAAjB,eAAmBiG,GAAGpG,CAAC,EAAEC,EAAE,YAAY,IAAID,IAAIG,EAAEA,EAAE,YAAY,GAAG,SAASJ,EAAE,CAACG,IAAIH,IAAIG,GAAGF,EAAE,oBAAoBG,EAAED,EAAE,EAAE,GAAGA,EAAEH,IAAIC,EAAE,iBAAiBG,EAAEJ,EAAE,EAAE,EAAE,CAAC,CAAC,GAAYE,IAAT,QAAY,CAACH,GAAGG,KAAKD,GAAG,CAACqG,GAAG,KAAKpG,CAAC,EAAE,OAAO,SAASF,EAAE,CAACG,IAAIH,IAAIG,EAAEH,EAAEC,EAAEC,CAAC,IAAIF,GAASA,GAAN,MAASC,EAAEC,CAAC,EAAE,GAAGD,EAAE,gBAAgBC,CAAC,GAAGD,EAAEC,CAAC,EAAEF,EAAE,EAAE,GAAGE,KAAK+B,GAAE,WAAW,OAAO,SAASjC,EAAE,CAAC,IAAID,EAAEkC,GAAE,WAAW/B,CAAC,EAAED,EAAED,CAAC,EAAEG,IAAIJ,KAAWI,EAAEJ,IAAT,KAAYE,EAAE,gBAAgBC,CAAC,EAAED,EAAE,aAAaC,EAAEH,CAAC,EAAE,EAAE,IAAIM,EAAEG,EAAEC,EAAEC,EAAEJ,EAAEK,EAAE,GAAGK,EAAEhB,EAAE,UAAU,EAAE,EAAE,OAAO,SAASA,EAAE,CAACG,IAAIH,IAAIG,EAAEH,EAAEgB,EAAE,QAAQhB,IAAUA,GAAN,MAASW,IAAIA,EAAE,GAAGV,EAAE,oBAAoBe,CAAC,GAAGA,EAAE,MAAMhB,IAAIgB,EAAE,MAAMhB,EAAEW,IAAIA,EAAE,GAAGV,EAAE,iBAAiBe,CAAC,KAAK,CAAC,EAAE,IAAI,SAASd,EAAEC,EAAE,CAAC,IAAIC,EAAEC,EAAE,CAAC,KAAKoF,GAAG,OAAOvF,CAAC,EAAEM,EAAE2F,MAAMjG,EAAE,MAAM,OAAOO,EAAE,GAAG,OAAO,SAAST,EAAED,EAAE,CAAC,OAAO,OAAOA,EAAE,CAAC,IAAI,SAAS,IAAI,SAAS,IAAI,UAAUU,EAAEL,IAAIL,IAAIK,EAAEL,EAAEI,EAAE,CAAC,EAAE,YAAYJ,IAAIU,EAAE,GAAGL,EAAEL,EAAEI,EAAEO,EAAER,EAAE,WAAWC,EAAE,EAAEF,EAAEF,EAAEG,EAAE,cAAc,eAAeD,CAAC,EAAE,EAAEI,CAAC,GAAG,MAAM,IAAI,WAAWL,EAAED,EAAEG,CAAC,CAAC,EAAE,MAAM,IAAI,SAAS,IAAI,YAAY,GAASH,GAAN,KAAQ,CAACU,EAAE,GAAGN,EAAEO,EAAER,EAAE,WAAWC,EAAE,CAAC,EAAEE,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAGI,EAAE,GAAGyB,GAAE9B,EAAEL,CAAC,EAAE,GAAOA,EAAE,SAAN,EAAaI,EAAE,SAASA,EAAEO,EAAER,EAAE,WAAWC,EAAE,CAAC,EAAEE,CAAC,OAAQ,QAAO,OAAON,EAAE,CAAC,EAAE,CAAC,IAAI,SAAS,IAAI,SAAS,IAAI,UAAUC,EAAE,CAAC,KAAKD,CAAC,CAAC,EAAE,MAAM,IAAI,SAAS,GAAGmC,GAAEnC,EAAE,CAAC,CAAC,IAAIA,EAAEA,EAAE,OAAO,MAAM,CAAC,EAAEA,CAAC,GAAG8F,GAAG9F,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,IAAIA,CAAC,EAAE,KAAKC,CAAC,EAAE,KAAK,CAAC,QAAQG,EAAEO,EAAER,EAAE,WAAWC,EAAEJ,EAAEM,CAAC,CAAC,KAAK,iBAAiBN,EAAEI,EAAEO,EAAER,EAAE,WAAWC,EAAOJ,EAAE,WAAP,GAAgBwG,GAAG,KAAKxG,EAAE,UAAU,EAAE,CAACA,CAAC,EAAEM,CAAC,EAAEwF,GAAG9F,CAAC,EAAEA,EAAE,KAAKC,CAAC,EAAE,gBAAgBD,EAAE6F,GAAG7F,EAAEC,CAAC,EAAE,SAASD,EAAEC,EAAE,OAAOD,EAAE,IAAI,CAAC,EAAE,QAAQA,EAAEC,EAAED,EAAE,GAAG,EAAE,SAASA,EAAEI,EAAEO,EAAER,EAAE,WAAWC,EAAEoG,GAAG,KAAKpE,GAAE,CAAC,EAAE,OAAOpC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAES,CAAC,EAAE,UAAU,EAAEH,CAAC,EAAE,WAAWN,EAAEC,EAAEuG,GAAG,KAAKxG,CAAC,CAAC,EAAEC,EAAEiC,GAAE,OAAOlC,EAAEC,CAAC,CAAC,CAAC,CAAC,IAAIC,CAAC,CAAC,EAAE,KAAK,SAASC,EAAE,CAAC,IAAIC,EAAE,OAAO,SAASH,EAAED,EAAE,CAAC,IAAIE,EAAEE,IAAIJ,KAAeE,EAAE,OAAOE,EAAEJ,KAAtB,UAA2BA,EAAE8F,GAAG9F,CAAC,EAAEA,EAAE,KAAKC,CAAC,EAAE,gBAAgBD,EAAE6F,GAAG7F,EAAEC,CAAC,EAAE,SAASD,EAAEC,EAAE,OAAOD,EAAE,IAAI,CAAC,EAAE,QAAQA,EAAEC,EAAED,EAAE,GAAG,EAAE,SAASA,EAAEC,EAAE,CAAC,EAAE,OAAOD,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,WAAWA,EAAEC,EAAEuG,GAAG,KAAKxG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAEC,EAAEiC,GAAE,OAAOlC,EAAEC,CAAC,CAAC,EAAcC,GAAZ,WAAcD,EAAED,EAAEG,CAAC,CAAC,EAAEA,EAAE,YAAkBH,GAAE,GAAK,CAAC,CAAC,GAAG2G,GAAG,SAAS1G,EAAE,CAAC,IAAID,EAAEG,EAAEC,EAAEC,EAAEH,GAAGF,GAAGD,EAAE,YAAY,WAAW,CAAC,GAAG,UAAU,0BAA0B,KAAKC,CAAC,GAAG,CAAC,gCAAgC,KAAKA,CAAC,GAAGM,EAAE,EAAE,QAAQL,IAAIA,EAAE,qBAAqB,KAAK,GAAG,CAAC,OAAO,SAASA,EAAE,GAAG,EAAE,OAAOC,GAAGI,GAAGH,EAAE,CAAC,EAAEC,EAAE,SAASH,EAAE,CAAC,QAAQD,EAAE,IAAIE,EAAE,EAAEA,EAAED,EAAE,OAAOC,IAAIF,GAAGC,EAAEC,CAAC,EAAE,OAAO,IAAID,EAAEC,CAAC,EAAE,OAAOC,EAAEH,CAAC,IAAIG,EAAEH,CAAC,EAAEC,EAAE,EAAE0G,GAAGrG,EAAEF,GAAGC,EAAE,IAAIE,EAAE,SAASN,EAAE,CAAC,OAAOI,EAAE,IAAIJ,CAAC,IAAIC,EAAEE,EAAEJ,EAAEC,CAAC,EAAEI,EAAE,IAAIL,EAAEE,CAAC,EAAEA,GAAG,IAAIF,EAAEE,CAAC,IAAIwG,GAAG,GAAGE,GAAG3G,CAAC,CAAC,EAAE,SAAS2G,GAAG3G,EAAE,CAAC,OAAOyG,GAAGzG,EAAE0G,GAAG1G,CAAC,CAAC,CAAC,SAAS4G,GAAG5G,EAAE,CAAC,QAAQD,EAAE,UAAU,OAAO,EAAE,CAAC4G,GAAG3G,CAAC,CAAC,EAAE,EAAE,EAAE,EAAED,GAAG,EAAE,KAAK,UAAU,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI8G,GAAG,IAAIvG,EAAEwG,GAAG,SAAS,EAAE,CAAC,IAAI7G,EAAEC,EAAEC,EAAE,OAAO,UAAU,CAAC,IAAIH,EAAE4G,GAAG,MAAM,KAAK,SAAS,EAAE,OAAOzG,IAAIH,EAAE,CAAC,GAAGG,EAAEH,EAAE,CAAC,EAAEE,EAAE,IAAIsG,GAAG,CAAC,EAAEvG,EAAE8G,GAAG7G,EAAE,MAAMA,EAAEF,CAAC,CAAC,GAAGE,EAAE,MAAMA,EAAEF,CAAC,EAAEC,CAAC,CAAC,EAAE+G,GAAG,SAAShH,EAAED,EAAE,CAAC,IAAI,EAAEA,EAAE,QAAQ,GAAG,EAAE,EAAE8G,GAAG,IAAI7G,CAAC,EAAEG,EAAEJ,EAAE,MAAM,GAAG,IAAII,EAAEJ,EAAE,MAAM,EAAE,CAAC,EAAEA,EAAEA,EAAE,MAAM,EAAE,CAAC,GAAG,QAAQ,GAAG8G,GAAG,IAAI7G,EAAE,EAAE,CAAC,CAAC,EAAE,EAAEG,CAAC,IAAI,EAAEA,CAAC,EAAE2G,GAAG/G,CAAC,EAAE,EAAEgH,GAAG,SAAS/G,EAAE,CAAC,IAAID,EAAEC,EAAE,WAAW,EAAED,EAAE,OAAO,OAAW,IAAJ,EAAMA,EAAE,CAAC,EAAE,EAAE,IAAIuF,GAAGvF,CAAC,EAAEC,CAAC,EAAEiH,GAAG,IAAI3G,EAAE,SAAS4G,IAAI,CAAC,IAAIlH,EAAEiH,GAAG,IAAI,IAAI,EAAElH,EAAE6G,GAAG,MAAM,KAAK,SAAS,EAAE,OAAO5G,GAAGA,EAAE,WAAWD,EAAE,CAAC,EAAEC,EAAE,OAAO,MAAM,KAAKD,CAAC,EAAE,SAASC,EAAE,CAAC,IAAID,EAAE,IAAIyG,GAAGL,MAAM,KAAK,MAAM,MAAM,EAAEc,GAAG,IAAI,KAAK,CAAC,OAAOlH,EAAE,SAASC,CAAC,CAAC,EAAE,KAAK,YAAY,GAAG,KAAK,YAAYD,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,EAAE,MAAM,KAAKA,CAAC,EAAE,IAAI,CAAC,IAAIoH,GAAGC,GAAGC,GAAGC,GAAGC,GAAGtF,GAAE,OAAOuF,GAAGhB,GAAG,UAAU,SAASiB,EAAGzH,EAAE,CAAC,OAAO,UAAU,OAAO,EAAQA,GAAN,KAAQ8G,GAAG,MAAM,EAAY,OAAO9G,GAAjB,SAAmByH,EAAG,KAAK,KAAKzH,CAAC,EAAE,QAAQA,EAAE8G,GAAG,MAAM,EAAE9G,CAAC,EAAE,aAAaA,EAAEyH,EAAG,KAAKzH,CAAC,EAAEgH,GAAGhH,EAAE,MAAM,GAAG,QAAQA,EAAE8G,GAAG,MAAM,EAAEW,EAAG,MAAM,MAAM,KAAK,SAAS,CAAC,CAAC,OAAOA,EAAG,UAAUxG,EAAEwG,EAAG,KAAK,SAASzH,EAAE,CAAC,OAAOkH,GAAG,KAAKlH,CAAC,CAAC,EAAEyH,EAAG,OAAOF,GAAGE,EAAG,KAAK/G,GAAG+G,EAAG,MAAMA,GAAI,QAAQpB,GAAGoB,EAAG,OAAOD,GAAGC,EAAG,KAAK,SAASzH,EAAED,EAAE,CAAC,OAAaC,GAAN,KAAQ8G,GAAG/G,GAAG,MAAM,EAAEiH,GAAGhH,EAAED,GAAG,MAAM,CAAC,EAAE0H,EAAG,EAAE,CAAC,QAAQnH,EAAE,QAAQN,CAAC,EAAEmH,GAAGL,GAAGM,GAAG,IAAI9G,EAAE+G,GAAG,OAAO,OAAOC,GAAG,SAAStH,EAAED,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAOA,EAAE,IAAIC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,iBAAiBiB,EAAE,CAAC,IAAI,CAAC,aAAa,GAAG,MAAM,SAASjB,EAAED,EAAE,CAAC,OAAO,SAASC,EAAED,EAAEE,EAAEC,EAAE,CAAC,IAAIC,EAAEC,EAAEC,EAAEG,EAAET,EAAE,IAAIC,CAAC,GAAGsH,GAAGtH,EAAED,CAAC,EAAE,OAAO,OAAOG,EAAE,CAAC,IAAI,SAAS,IAAI,WAAW,IAAIO,EAAED,EAAE,IAAIA,EAAE,EAAE,IAAIF,GAAG,OAAOG,EAAE,IAAIP,CAAC,IAAIC,EAAEM,EAAEL,EAAEF,EAAEG,EAAE,IAAIL,EAAEC,CAAC,EAAEE,EAAE,IAAIC,EAAEC,CAAC,EAAEA,GAAG,QAAQ,IAAIK,EAAEF,EAAE,IAAIA,EAAE,EAAE6G,GAAG,IAAI,GAAG,OAAO3G,EAAER,CAAC,IAAIQ,EAAER,CAAC,EAAE,IAAIF,EAAEC,CAAC,EAAE,CAAC,EAAE,KAAKmH,GAAG,IAAIpH,CAAC,IAAI,EAAEA,EAAE,EAAE,IAAIgB,EAAEoG,GAAG,IAAI,EAAE,CAAC,EAAE,GAAGpH,EAAQD,GAAE,SAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,iBAAiBkB,EAAE,UAAU,CAAC,YAAY,CAAC,MAAM,SAASjB,EAAE,CAAC,IAAID,EAAEC,EAAE,cAAc,KAAK,iBAAiBD,GAAGA,EAAE,aAAa,WAAW,GAAG,KAAKC,EAAE,IAAI,EAAEA,CAAC,CAAC,CAAC,EAAE,KAAKkB,GAAE,OAAOiG,EAAE,EAAE,IAAIjG,GAAE,MAAMiG,EAAE,EAAE,MAAMjG,GAAE,QAAQ,UAAU,CAAC,OAAO,KAAK,YAAY,CAAC,EAAE,aAAa,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,SAASlB,EAAED,EAAE,CAAC,IAAI,EAAE,KAAK,OAAO,GAAG,EAAE,CAAC,IAAI,EAAE,IAAIS,EAAER,EAAE,CAAC,QAAQ,GAAG,WAAW,GAAG,OAAOD,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,MAAM,EAAE,cAAc,EAAE,EAAE,YAAY,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,SAASC,EAAED,EAAE,CAAC,IAAI,EAAE,KAAK,MAAM,EAAc,OAAOC,GAAnB,WAAqBA,EAAE,KAAK,KAAK,CAAC,EAAEA,EAAE,QAAQG,KAAK,EAAE,EAAEA,CAAC,EAAE,EAAEA,CAAC,EAAE,OAAWJ,IAAL,IAAQ,KAAK,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE0H,CAAE,EAAE,QAAQ,EAI7pjB,MAAMC,GAAc,cAGdC,GAAU,CAAC,EAEXC,GAAc,CAAC,EAGrB,SAASC,IAAS,CAIhB,QAHIC,EAAO,GACPC,EAAW,wBAEN5H,EAAI,EAAGA,EAAI,GAAIA,IACtB2H,GAAQC,EAAS,OAAO,KAAK,MAAM,KAAK,OAAO,EAAIA,EAAS,MAAM,CAAC,EAErE,OAAOD,CACT,CAGA,SAASE,GAAWC,EAAK,CACvB,OAAI,OAAOA,GAAQ,SAAiBA,EAC7BA,EACJ,QAAQ,KAAM,OAAO,EACrB,QAAQ,KAAM,MAAM,EACpB,QAAQ,KAAM,MAAM,EACpB,QAAQ,KAAM,QAAQ,EACtB,QAAQ,KAAM,OAAO,CAC1B,CAEA,MAAMC,GAAY,OAAO,UAAU,EAEnC,SAASC,GAASC,EAAM,CACtB,MAAO,CAAE,CAACF,EAAS,EAAG,GAAM,MAAOE,CAAK,CAC1C,CAEA,SAASC,GAAWC,EAAK,CACvB,OAAOA,GAAOA,EAAIJ,EAAS,IAAM,EACnC,CAGA,SAASK,GAAeC,EAAKC,EAAO,CAClC,GAAmBD,IAAf,YAA6BC,IAAP,GACxB,MAAO,GAGT,GAAI,CAACA,EAAQ,KAAOA,EAAM,KAAK,EAC7B,MAAO,CAACA,EAGV,MAAMC,EAAiBD,EAAM,YAAY,EAAE,KAAK,EAEhD,OAAeC,IAAX,OACK,GACcA,IAAZ,QACF,GAINA,EAAe,CAAC,IAAM,KAAOA,EAAe,MAAM,EAAE,IAAM,KAC1DA,EAAe,CAAC,IAAM,KAAOA,EAAe,MAAM,EAAE,IAAM,IAEpD,KAAK,MAAMD,CAAK,EAGlBA,CACT,CAGA,SAASE,GAAYF,EAAO,CAC1B,OAAI,OAAOA,GAAU,WACZE,GAAYF,EAAM,CAAC,EAExB,OAAOA,GAAU,SACZT,GAAWS,CAAK,EAErB,OAAOA,GAAU,UAAY,OAAOA,GAAU,UACzC,OAAOA,CAAK,EAEjB,MAAM,QAAQA,CAAK,EACdT,GAAWS,EAAM,KAAK,IAAI,CAAC,EAEhCA,IAAU,MAAQ,OAAOA,GAAU,SAC9BT,GAAW,KAAK,UAAUS,CAAK,CAAC,EAGlC,EACT,CAEA,SAASG,GAAwBC,EAAUC,EAAM,CAC/C,IAAIC,EAASF,EAEb,MAAMG,EAAY,yCAClBD,EAASA,EAAO,QAAQC,EAAW,CAACC,EAAOC,EAAWC,IAAY,CAChE,MAAMC,EAAMN,EAAKI,CAAS,EAC1B,OAAK,MAAM,QAAQE,CAAG,EACfA,EACJ,IAAI,CAACC,EAAMC,IAAU,CACpB,IAAIC,EAAcJ,EAElB,OAAAI,EAAcA,EAAY,QAAQ,SAAUD,CAAK,EAEjDC,EAAcA,EAAY,QACxB,oBACAZ,GAAYU,CAAI,CAClB,EAEI,OAAOA,GAAS,UAAYA,IAAS,MACvC,OAAO,KAAKA,CAAI,EAAE,QAASb,GAAQ,CACjCe,EAAcA,EAAY,QACxB,IAAI,OAAO,MAAQf,EAAM,MAAO,GAAG,EACnCR,GAAW,OAAOqB,EAAKb,CAAG,CAAC,CAAC,CAC9B,CACF,CAAC,EAEIe,CACT,CAAC,EACA,KAAK,EAAE,EAtBsB,EAuBlC,CAAC,EAED,MAAMC,EAAc,uDACpBT,EAASA,EAAO,QACdS,EACA,CAACP,EAAOQ,EAAWC,EAAWC,IACrBb,EAAKW,CAAS,EAAIC,EAAYC,CAEzC,EAEA,MAAMC,EAAU,qCAChBb,EAASA,EAAO,QAAQa,EAAS,CAACX,EAAOQ,EAAWN,IAC3CL,EAAKW,CAAS,EAAIN,EAAU,EACpC,EAED,MAAMU,EAAc,6CACpB,OAAAd,EAASA,EAAO,QAAQc,EAAa,CAACZ,EAAOQ,EAAWN,IAC/CL,EAAKW,CAAS,EAAI,GAAKN,CAC/B,EAEMJ,CACT,CAGA,SAASe,GAAcC,EAAW,CAIhC,GAFoB,yBAAyB,KAAKA,CAAS,EAIzD,OAAO,SAAkBjB,EAAM,CAC7B,GAAiB,OAAOA,GAApB,SACF,MAAM,IAAI,MACR,kDACE,KAAK,UAAUA,CAAI,CACvB,EAGF,IAAIC,EAASH,GAAwBmB,EAAWjB,CAAI,EAEpD,OAAAC,EAASA,EAAO,QAAQ,aAAc,CAACE,EAAOT,IACrCM,EAAKN,CAAG,GAAK,KAAOR,GAAW,OAAOc,EAAKN,CAAG,CAAC,CAAC,EAAI,EAC5D,EAEM,CAAE,KAAMO,CAAO,CACxB,EAGF,MAAMzF,EAAK,eACL0G,EAAeD,EAAU,MAAMzG,CAAE,EAAE,OACvC,CAAC2G,EAAMZ,KACOA,EAAK,CAAC,IAAd,KAA2BA,EAAK,MAAM,EAAE,IAArB,IACrBY,EAAK,KAAK,KAAKZ,EAAK,MAAM,EAAG,EAAE,CAAC,EAEhCY,EAAK,OAAO,KAAKZ,CAAI,EAGhBY,GAET,CAAE,OAAQ,CAAC,EAAG,KAAM,CAAC,CAAE,CACzB,EAEAD,EAAa,GAAK,IAAMA,EAAa,OAAO,KAAK,EAAE,KAAK,EAExD,SAASE,EAASpB,EAAM,CACtB,MAAMqB,EAAS,CACbH,EAAa,OACb,GAAGA,EAAa,KAAK,IAAKxB,GAAQM,EAAKN,CAAG,CAAC,CAC7C,EACA,OAAA2B,EAAO,IAAM,CAAE,MAAOH,EAAa,MAAO,EACnCG,CACT,CAEA,OAAO,SAAkBrB,EAAM,CAC7B,GAAiB,OAAOA,GAApB,SACF,MAAM,IAAI,MACR,uEACE,KAAK,UAAUA,CAAI,EACnB,OACAkB,EAAa,EACjB,EAEF,OAAOnK,GAAU,KAAKiJ,EAAMkB,EAAa,EAAE,EAAE,GAAGE,EAASpB,CAAI,CAAC,CAChE,CACF,CAGA,SAASsB,GAAWC,EAASC,EAAU,CACrC,MAAMC,EAAYD,EAAS,QAAQ,YAAclJ,GAAMA,EAAE,CAAC,EAAE,YAAY,CAAC,EAEzE,OAAO,eAAeiJ,EAASE,EAAW,CACxC,WAAY,GACZ,aAAc,GACd,IAAK,IAAMhC,GAAegC,EAAW,KAAK,QAAQA,CAAS,CAAC,EAC5D,IAAM9B,GAAU,CACdd,GAAQ,KAAK,UAAU,EAAE,cAAc,QAAU2C,CAAQ,EAAI,GAC5C,OAAO7B,GAApB,SACF,KAAK,QAAQ8B,CAAS,EAAI9B,EAE1B,KAAK,QAAQ8B,CAAS,EAAI,KAAK,UAAU9B,CAAK,CAElD,CACF,CAAC,CACH,CAEA,SAAS+B,IAAa,CACpB,MAAMH,EAAU,CAAC,EACjB,cAAO,KAAK,KAAK,OAAO,EAAE,QAAS7B,GACjC4B,GAAW,KACT,KACAC,EACA7B,EAAI,QAAQ,WAAapH,GAAM,IAAIA,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,CACzD,CACF,EACOiJ,CACT,CAGA,SAASI,GAAYC,EAAY,CAC/B,MAAMC,EAAc,CAAC,EAErB,QAASxK,EAAI,EAAGA,EAAIuK,EAAW,OAAQvK,IAAK,CAC1C,KAAM,CAAE,MAAAsI,EAAO,KAAAmC,CAAK,EAAIF,EAAWvK,CAAC,EAEpC,GAAmByK,IAAf,YAAuB,CAACnC,EAAO,CACjC,MAAMoC,EAAMlD,GAAQ,KAAK,UAAU,EACnCkD,EAAI,KAAK,SAAWf,GAAce,EAAI,SAAS,EAC/CF,EAAYC,CAAI,EAAI,EACtB,MACanC,EAAM,OAAO,EAAG,CAAC,IAA3B,OAA0CA,EAAM,OAAO,EAAG,CAAC,IAA3B,QAC/Bb,GAAYa,EAAM,OAAO,CAAC,CAAC,GAC7Bb,GAAYa,EAAM,OAAO,CAAC,CAAC,EAAE,YAAc,KAAK,UAEhDkC,EAAYC,CAAI,EAAIhD,GAAYa,EAAM,OAAO,CAAC,CAAC,EAAE,IAE7C,CAACA,EAAQ,MAAQA,EAAQ,IAAI,KAAK,EACpCkC,EAAYC,CAAI,EAAI,CAACnC,EAErBkC,EAAYC,CAAI,EAAInC,CAG1B,CACA,OAAOkC,CACT,CAGA,SAASG,GAAcC,EAAS,CAC9B,OAAOA,EAAQ,KACZzK,GACCA,EAAE,SAAS,SAAS,GACpBA,EAAE,SAAS,SAAS,GACpBA,EAAE,SAAS,OAAO,GAClBA,EAAE,SAAS,WAAW,CAC1B,CACF,CAEA,SAAS0K,GAAoBC,EAAKC,EAAM,CACtC,OAAOA,EAAK,MAAM,GAAG,EAAE,OAAO,CAAC7K,EAAGmI,IAAQnI,IAAImI,CAAG,EAAGyC,CAAG,CACzD,CAEA,SAASE,GAAwBlD,EAAK,CACpC,MAAMmD,EAAQ,sCACRC,EAAQ,CAAC,EACbC,EAAQ,CAAC,EACX,IAAIC,EAAY,EACdtC,EACF,MAAQA,EAAQmC,EAAM,KAAKnD,CAAG,KAAO,MACnCoD,EAAM,KAAKpD,EAAI,UAAUsD,EAAWtC,EAAM,KAAK,CAAC,EAChDqC,EAAM,KAAKrC,EAAM,CAAC,CAAC,EACnBsC,EAAYH,EAAM,UAEpB,OAAAC,EAAM,KAAKpD,EAAI,UAAUsD,CAAS,CAAC,EAC5B,CAAE,MAAAF,EAAO,MAAAC,CAAM,CACxB,CAEA,SAASE,GAAkBT,EAASU,EAAUC,EAAUC,EAASC,EAAU,CACzE,IAAIC,EAAQ,EACZ,QAAS1L,EAAIsL,EAAUtL,EAAI4K,EAAQ,OAAQ5K,IAAK,CAC9C,MAAM8H,EAAM8C,EAAQ5K,CAAC,EACrB,IAAI2L,EAAc3L,IAAMsL,EAAWC,EAAW,EAC9C,KAAOI,EAAc7D,EAAI,QAAQ,CAC/B,MAAM8D,EAAU9D,EAAI,QAAQ0D,EAASG,CAAW,EAC1CE,EAAW/D,EAAI,QAAQ2D,EAAUE,CAAW,EAClD,GAAIE,IAAa,KAAOD,IAAY,IAAMC,EAAWD,GAAU,CAC7D,GAAI,EAAEF,IAAU,EAAG,MAAO,CAAE,OAAQ1L,EAAG,OAAQ6L,CAAS,EACxDF,EAAcE,EAAWJ,EAAS,MACpC,SAAWG,IAAY,GACrBF,IACAC,EAAcC,EAAUJ,EAAQ,WAC3B,MACT,CACF,CACA,MAAM,IAAI,MAAM,YAAYA,CAAO,oBAAoBC,CAAQ,GAAG,CACpE,CAEA,SAASK,GAAqBZ,EAAO,CACnC,MAAMjC,EAAM,CAAC,GAAGiC,CAAK,EACrB,OAAAjC,EAAI,IAAM,CAAC,GAAGiC,CAAK,EACZjC,CACT,CAEA,MAAM8C,GAAoB,IAAI,QAE9B,SAASC,GAAW9C,EAAMC,EAAO8C,EAAO,CACtC,GAAI/C,IAAS,MAAQ,OAAOA,GAAS,SAAU,OAAOA,EACtD,IAAIgD,EAAQH,GAAkB,IAAIE,CAAK,EACvC,OAAKC,IACHA,EAAQ,CAAC,EACTH,GAAkB,IAAIE,EAAOC,CAAK,GAE/BA,EAAM/C,CAAK,IAAG+C,EAAM/C,CAAK,EAAI,CAAE,OAAQD,EAAM,OAAQC,CAAM,GAChE+C,EAAM/C,CAAK,EAAE,OAASD,EACfgD,EAAM/C,CAAK,CACpB,CAEA,SAASgD,GAAYC,EAAMlD,EAAMC,EAAO,CACtC,OAAIiD,IAAS,IAAYjD,EACrBiD,EAAK,KAAK,IAAM,MAAclD,EAC3B2B,GAAoB3B,EAAMkD,CAAI,CACvC,CAEA,SAASC,GAAoBrD,EAASE,EAAMC,EAAO8C,EAAOK,EAAc,CACtE,MAAMC,EAAc,uDACdC,EAAYD,EAAY,KAAKvD,CAAO,EAG1C,GAFAuD,EAAY,UAAY,EAEpBC,EAAW,CACb,MAAMC,EAAgB,CAAC,EACvB,IAAIC,EAAmB1D,EACrBF,EACF,MAAQA,EAAQyD,EAAY,KAAKvD,CAAO,KAAO,MAAM,CACnD,KAAM,CAAC2D,EAAWC,EAAUC,CAAY,EAAI/D,EACtCgE,EAAcjC,GAAoB3B,EAAM0D,CAAQ,EACtD,GAAI,CAAC,MAAM,QAAQE,CAAW,EAAG,CAC/BJ,EAAmBA,EAAiB,QAAQC,EAAW,EAAE,EACzD,QACF,CACA,MAAMI,EAAgBD,EAAY,IAAI,CAACE,GAAYC,KACjDZ,GACEQ,EAAa,KAAK,EAClBG,GACAC,GACAH,EACAR,CACF,CACF,EACAI,EAAmBA,EAAiB,QAClCC,EACA,YAAYF,EAAc,MAAM,IAClC,EACAA,EAAc,KAAKM,CAAa,CAClC,CACA,KAAM,CAAE,MAAA7B,EAAO,MAAAC,CAAM,EAAIH,GAAwB0B,CAAgB,EAC3DQ,EAAa,CAAC,EAClBC,EAAc,CAAC,EACjB,IAAIC,EAAY,EAChB,QAASpN,EAAI,EAAGA,EAAIkL,EAAM,OAAQlL,IAAK,CACrC,IAAIqN,EAAOnC,EAAMlL,CAAC,EAChBsN,EACF,KAAQA,EAAmBD,EAAK,MAAM,kBAAkB,GAAI,CAC1D,KAAM,CAACE,EAAQC,CAAK,EAAIH,EAAK,MAAMC,EAAiB,CAAC,CAAC,EACtDJ,EAAW,KAAKK,CAAM,EACtBJ,EAAY,KAAKV,EAAc,SAASa,EAAiB,CAAC,EAAG,EAAE,CAAC,CAAC,EACjED,EAAOG,GAAS,EAClB,CACAN,EAAW,KAAKG,CAAI,EAChBrN,EAAImL,EAAM,QACZgC,EAAY,KAAKhB,GAAYhB,EAAMiC,GAAW,EAAGlE,EAAMC,CAAK,CAAC,CACjE,CACA,OAAOmD,EACLN,GAAW9C,EAAMC,EAAO8C,CAAK,EAC7B,KAAK,UAAUiB,CAAU,CAC3B,EAAEpB,GAAqBoB,CAAU,EAAG,GAAGC,CAAW,CACpD,CAEA,KAAM,CAAE,MAAAjC,EAAO,MAAAC,CAAM,EAAIH,GAAwBhC,CAAO,EACxD,GAAImC,EAAM,SAAW,EACnB,OAAOmB,EACLN,GAAW9C,EAAMC,EAAO8C,CAAK,EAC7B,KAAK,UAAU,CAACjD,CAAO,CAAC,CAC1B,EAAE8C,GAAqB,CAAC9C,CAAO,CAAC,CAAC,EACnC,MAAMyE,EAAStC,EAAM,IAAKiB,GAASD,GAAYC,EAAMlD,EAAMC,CAAK,CAAC,EACjE,OAAOmD,EAAaN,GAAW9C,EAAMC,EAAO8C,CAAK,EAAG,KAAK,UAAUf,CAAK,CAAC,EACvEY,GAAqBZ,CAAK,EAC1B,GAAGuC,CACL,CACF,CAEA,SAASC,GAAe5F,EAAK,CAC3B,MAAM6F,EAAS,CACb,CAAE,KAAM,OAAQ,QAAS,SAAU,EACnC,CAAE,KAAM,KAAM,QAAS,OAAQ,EAC/B,CAAE,KAAM,SAAU,QAAS,WAAY,CACzC,EACA,IAAIC,EAAQ,KACZ,UAAWC,KAASF,EAAQ,CAC1B,MAAMG,EAAMhG,EAAI,QAAQ+F,EAAM,OAAO,EACjCC,IAAQ,KAAOF,IAAU,MAAQE,EAAMF,EAAM,OAC/CA,EAAQ,CAAE,KAAMC,EAAM,KAAM,IAAAC,EAAK,QAASD,EAAM,OAAQ,EAC5D,CACA,OAAOD,CACT,CAEA,SAASG,GAAoBnD,EAAS6C,EAAQnB,EAAc,CAC1D,MAAM0B,EAAgB,CAAC,EACrBC,EAAe,CAAC,EAClB,IAAIjO,EAAI,EACR,KAAOA,EAAI4K,EAAQ,QAAQ,CACzB,MAAM9C,EAAM8C,EAAQ5K,CAAC,EACnBkO,EAAaR,GAAe5F,CAAG,EACjC,GAAI,CAACoG,EAAY,CACfF,EAAc,KAAKlG,CAAG,EAClB9H,EAAIyN,EAAO,QAAQQ,EAAa,KAAKR,EAAOzN,CAAC,CAAC,EAClDA,IACA,QACF,CACA,KAAM,CAAE,KAAAmO,EAAM,IAAKC,EAAe,QAAAC,CAAQ,EAAIH,EACxCzC,EAAW,KAAK0C,CAAI,IAC1BH,EAAc,KAAKlG,EAAI,UAAU,EAAGsG,CAAa,CAAC,EAClD,MAAME,EAAab,EAAOzN,CAAC,EACzBuO,EAAU3D,EAAQ5K,EAAI,CAAC,EACzB,GAAI,CAACuO,GAAW,CAACA,EAAQ,WAAW,GAAG,EACrC,MAAM,IAAI,MAAM,KAAKJ,CAAI,0CAA0C,EACrE,MAAMK,EAAaD,EAAQ,UAAU,CAAC,EAChC,CAAE,OAAAE,EAAQ,OAAAC,CAAO,EAAIrD,GACzBT,EACA5K,EAAI,EACJ,EACAqO,EAAQ,MAAM,EAAG,EAAE,EACnB5C,CACF,EACA,IAAIoB,EACFrD,EAAc,GAChB,GAAIiF,IAAWzO,EAAI,EAAG6M,EAAe2B,EAAW,UAAU,EAAGE,EAAS,CAAC,MAClE,CACH7B,EAAe2B,EACf,QAAS9M,EAAI1B,EAAI,EAAG0B,GAAK+M,EAAQ/M,IAC/BmL,GACE,OAAOY,EAAO/L,EAAI,CAAC,GAAK,EAAE,GACzBA,EAAI+M,EAAS7D,EAAQlJ,CAAC,EAAIkJ,EAAQlJ,CAAC,EAAE,UAAU,EAAGgN,CAAM,EAE/D,CACA,GAAIP,IAAS,MAAQA,IAAS,SAAU,CACtC,MAAMQ,EAAU9B,EAAa,QAAQ,QAAQ,EACzC8B,IAAY,KACdnF,EAAcqD,EAAa,UAAU8B,EAAU,CAAC,EAChD9B,EAAeA,EAAa,UAAU,EAAG8B,CAAO,EAEpD,CACA,IAAIC,EACJ,GAAIT,IAAS,OAAQ,CACnB,GAAI,CAAC,MAAM,QAAQG,CAAU,GAAKA,GAAc,KAC9C,MAAM,IAAI,MAAM,iCAAiC,OAAOA,CAAU,EAAE,EACtEM,GAAeN,GAAc,CAAC,GAAG,IAAI,CAACpF,EAAM2F,IAC1CxC,GACEQ,EAAa,KAAK,EAClB3D,EACA2F,EACAP,GAAc,CAAC,EACfhC,CACF,CACF,CACF,MAAW6B,IAAS,KAClBS,EAAcN,EACV,CAAE,KAAMzB,EAAa,KAAK,CAAE,EAC5B,CAAE,KAAMrD,EAAY,KAAK,CAAE,EACxB2E,IAAS,WAChBS,EAAcN,EACV,CAAE,KAAM9E,EAAY,KAAK,CAAE,EAC3B,CAAE,KAAMqD,EAAa,KAAK,CAAE,GAClCoB,EAAa,KAAKW,CAAW,EAC7B,MAAME,EAAalE,EAAQ6D,CAAM,EAAE,UAAUC,EAASjD,EAAS,MAAM,EACrEzL,EAAIyO,EACAf,GAAeoB,CAAU,GAC3BlE,EAAU,CACR,GAAGA,EAAQ,MAAM,EAAG6D,CAAM,EAC1BK,EACA,GAAGlE,EAAQ,MAAM6D,EAAS,CAAC,CAC7B,EACAhB,EAAS,CAAC,GAAGA,EAAO,MAAM,EAAGgB,CAAM,EAAG,GAAGhB,EAAO,MAAMgB,CAAM,CAAC,IAE7DT,EAAc,KAAKc,CAAU,EACzBL,EAAShB,EAAO,QAAQQ,EAAa,KAAKR,EAAOgB,CAAM,CAAC,EAC5DzO,EAAIyO,EAAS,EAEjB,CACA,KAAOT,EAAc,QAAUC,EAAa,QAAQD,EAAc,KAAK,EAAE,EACzE,MAAO,CAAE,QAASlC,GAAqBkC,CAAa,EAAG,OAAQC,CAAa,CAC9E,CAGA,SAASc,GAAWC,EAAQ,CAC1B,MAAMC,EAAgBvP,GAAU,KAAKsP,CAAM,EAE3C,SAASE,KAAQC,EAAM,CAErB,GAAIxE,GAAcwE,EAAK,CAAC,CAAC,EAAG,CAC1B,MAAMC,EAAcrB,GAClBoB,EAAK,CAAC,EACNA,EAAK,MAAM,CAAC,EACZD,EAAK,IACP,EACAC,EAAO,CAACC,EAAY,QAAS,GAAGA,EAAY,MAAM,CACpD,CAEA,MAAMC,EAAeF,EAClB,MAAM,CAAC,EACP,KAAMjG,GAASA,GAAQ,MAAQ,OAAOA,GAAS,QAAQ,EACpDoG,EAAeH,EAAK,CAAC,EAAE,KAAMvP,GAAM2H,GAAY,KAAK3H,CAAC,CAAC,EAE5D,GAAIyP,GAAgBC,EAAc,CAChC,IAAIC,EAAc,GACdC,EAAY,GAChBL,EAAK,CAAC,EAAE,QAAQ,CAACjG,EAAMC,EAAOsG,IAAW,CAevC,GAdIlI,GAAY,KAAK2B,CAAI,GACvBqG,EACSrG,EAAK,UAAUA,EAAK,MAAM3B,EAAW,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAhE,GACFiI,EACED,GACArG,EACG,UAAUA,EAAK,QAAQA,EAAK,MAAM3B,EAAW,CAAC,CAAC,EAC/C,MAAM,IAAI,EAAE,CAAC,EACb,OAAO,CAAC,GACJ,GAAK2B,EAAK,QAAQ,GAAG,IAC9BqG,EAAc,GACdC,EAAY,IAGV,CAACD,EACH,OAEF,MAAMpH,EAAMgH,EAAKhG,EAAQ,CAAC,EAE1B,GAAIhB,GAAO,MAAQ,OAAOA,GAAQ,SAAU,CAC1C,MAAMuH,EAAWxG,EAAK,MAAM,IAAI,EAAE,IAAI,EAAE,MAAM,EAAG,EAAE,EACnD,GAAawG,EAAS,UAAU,EAAG,CAAC,IAAhC,KACF,MAAM,IAAI,MACR,iDAAiDA,CAAQ,UAAUF,CAAS,qBAC9E,EAGF,GAAgBE,IAAZ,QACF,OAEF,MAAMC,EAAKjI,GAAO,EAClBD,GAAYkI,CAAE,EAAI,CAAE,SAAAD,EAAU,IAAAvH,EAAK,UAAAqH,CAAU,EAC7CL,EAAKhG,EAAQ,CAAC,GAAoB,OAAOhB,GAAtB,WAA4B,MAAQ,OAASwH,CAClE,CACF,CAAC,CACH,CAEA,MAAMC,EAAgB,CAACT,EAAK,CAAC,CAAC,EAC9B,QAASnP,EAAI,EAAGA,EAAImP,EAAK,OAAQnP,IAAK,CACpC,MAAMmI,EAAMgH,EAAKnP,CAAC,EACdkI,GAAWC,CAAG,EAEhByH,EAAc,KAAK,CAAE,KAAMzH,EAAI,KAAM,CAAC,EAC7B,MAAM,QAAQA,CAAG,EAE1ByH,EAAc,KACZzH,EAAI,IAAKe,GACHhB,GAAWgB,CAAI,EACV,CAAE,KAAMA,EAAK,KAAM,EACjB,OAAOA,GAAS,SAElBrB,GAAWqB,CAAI,EAEjBA,CACR,CACH,EAGA0G,EAAc,KAAKzH,CAAG,CAE1B,CAEA,OAAO8G,EAAc,GAAGW,CAAa,CACvC,CAEA,OAAAV,EAAK,KAAO,YAAiBC,EAAM,CACjC,OAAOzP,GAAU,KAAK,GAAGyP,CAAI,CAC/B,EAEAD,EAAK,KAAO,YAAiBC,EAAM,CACjC,OAAOzP,GAAU,GAAGyP,CAAI,CAC1B,EAEAD,EAAK,IAAM,SAAajH,EAAM,CAC5B,OAAOD,GAASC,CAAI,CACtB,EAEOiH,CACT,CAGA,SAASW,GAAOC,EAAMC,EAAO,CAC3B,MAAMC,EAAwB,OAAOD,GAArB,WAA6BA,EAAQ,IAAMA,EAErDE,EAAS,KAAK,OAEdC,EAAU,IAAIvH,IAAS,CACToH,IAAd,QACFD,EAAK,MAAQ,OACbG,EAAO,GAAGtH,CAAI,IAEdmH,EAAK,MAAQE,EAAQ,EACrBC,EAAOH,EAAK,MAAO,GAAGnH,CAAI,EAE9B,EACA,YAAK,OAASuH,EAEPA,CACT,CAGA,SAASC,GAASzF,EAAK,CACrB,MAAMoF,EAAOpF,EAAI,KACQ,IAAI,iBAAkB0F,GAAc,CAC3D,GAAI,CAAC1F,EAAI,QAAS,OAGlB,GADsB0F,EAAU,OAAQhQ,GAAMA,EAAE,OAAS,YAAY,EACnD,OAAS,EAAG,CAE5B0P,EAAK,MAAQ,KAAK,YAAY,KAAK,UAAU,GAAK,CAAC,EACnD,KAAK,OAAO,EACZ,MACF,CAEA,IAAIO,EAAc,KAAK,YAEvB3F,EAAI,UAAY,KAAK,UACjBoF,EAAK,MAAM,WACbA,EAAK,MAAQ,KAAK,YAAY,KAAK,UAAU,GAAK,CAAC,GAGrDpQ,GAAU,KAAKgL,EAAI,MAAM,IAEzBoF,EAAK,eAAiBO,EACtB,KAAK,OAAO,CACd,CAAC,EAEgB,QAAQ,KAAM,CAE7B,WAAY,GAEZ,UAAW,GAEX,QAAS,EACX,CAAC,CACH,CAGA,SAASC,IAAkB,CAEzB,KAAK,WAAa,OAAO,KAAK,SAAS,EACvC,MAAM5F,EAAOlD,GAAQ,KAAK,UAAU,EAAI,CAAE,cAAe,CAAC,CAAE,EAC5DkD,EAAI,UAAY,KAAK,UACrB,MAAMoF,EAAQpF,EAAI,KAAO,CAAE,QAAS,IAAK,EACzCoF,EAAK,eAAiB,KAAK,YAE3BK,GAAS,KAAK,KAAMzF,CAAG,EAEvB,OAAO,oBAAoB,KAAK,SAAS,EACtC,OACED,GACC,EAAoBA,IAAlB,eAAsCA,IAAZ,SAAiCA,IAAb,SACpD,EACC,QAASA,GAAS,CACjB,GAAI,SAAS,KAAKA,CAAI,EAAG,CACvB,IAAI7B,EACJ,MAAM2H,EAAkB,CAAC,EAEnBC,EAAgB7H,GAAS,CAC7B,GAAkBC,IAAd,QAAwBA,EAAO,KAAM,OAAOA,EAehD,GAbAA,EAAS,KAAK6B,CAAI,EAAE9B,CAAI,EAEpBC,EAAO,OAAS,QAAa,OAAOA,EAAO,MAAS,SAEtDA,EAAS,CAAE,IAAKA,EAAO,KAAM,KAAMA,EAAO,IAAK,EAE/CA,EAAO,OAAS,QAChB,OAAOA,EAAO,MAAS,WAGvBA,EAAS,CAAE,IAAK,CAAE,KAAMA,EAAO,IAAK,EAAG,KAAMA,EAAO,IAAK,GAGvDA,EAAO,SACT,GAAiB,OAAOA,EAAO,UAA3B,SAAqC,CAClC2H,EAAgB3H,EAAO,QAAQ,IAClC2H,EAAgB3H,EAAO,QAAQ,EAAIe,GACjCf,EAAO,QACT,GAEF,MAAM6H,EAAiBF,EAAgB3H,EAAO,QAAQ,EACpDA,EAAO,QAAUD,CACnB,EAEI8H,GAAkBA,EAAe,KAEnC7H,EAAS,CACP,IAAK,CAAE,KAAM6H,EAAe,IAAK,EACjC,KAAM7H,EAAO,IACf,EAEAA,EAAS,CAAE,IAAK6H,EAAgB,KAAM7H,EAAO,IAAK,CAEtD,SACe,OAAOA,EAAO,UAA3B,UACe,OAAOA,EAAO,SAAS,MAAtC,WAEAA,EAAS,OAAO,OAAO,CAAC,EAAGA,EAAQ,CACjC,IAAKA,EAAO,SAAS,KAAMuG,GAAS,CAClC,GAAI,CAAE,SAAAzG,EAAU,OAAA+E,CAAO,EAAI0B,EAC3B,MAAI,CAACzG,GAAyB,OAAOyG,GAApB,WACfzG,EAAWyG,EACX1B,EAAS,CAAC,GAGP8C,EAAgB7H,CAAQ,IAC3B6H,EAAgB7H,CAAQ,EAAIiB,GAAcjB,CAAQ,GAEhD,MAAM,QAAQ+E,CAAM,EACtB7E,EAAS,CACP,IAAK6E,EAAO,IAAI8C,EAAgB7H,CAAQ,CAAC,EACzC,KAAME,EAAO,IACf,EAEAA,EAAS,CACP,IAAK2H,EAAgB7H,CAAQ,EAAE+E,GAAU9E,CAAI,EAC7C,KAAMC,EAAO,IACf,EAEKA,EAAO,GAChB,CAAC,CACH,CAAC,MAED,OAAM,IAAI,MACR,wBACE,OAAOA,EAAO,SACd,MACA,KAAK,UAAUA,EAAO,QAAQ,CAClC,EAGJ,OAAOA,CACT,EACAlJ,GAAU,OAAO+K,EAAM+F,CAAY,CACrC,MACEV,EAAKrF,CAAI,EAAI,KAAKA,CAAI,EAAE,KAAKqF,CAAI,EAEnC,OAAO,KAAKrF,CAAI,CAClB,CAAC,EAEH,SAASiG,GAAW,CAClB,MAAO,kBAAoB,KAAK,SAClC,CACA,OAAO,eAAeZ,EAAM,WAAY,CACtC,MAAOY,EAAS,KAAK,IAAI,EACzB,SAAU,EACZ,CAAC,EAEDhG,EAAI,OAAS,KAEbA,EAAI,KAAOqE,GAAWrE,EAAI,MAAM,EAEhCoF,EAAK,MAAQ,KAAK,YAAY,KAAK,UAAU,EAC7CA,EAAK,QAAU,KAAK,WAAW,EAC/B,MAAMG,EAAS,KAAK,OACpB,KAAK,OAAS,IAAItH,IAAS,CACzB+B,EAAI,QAAU,GACd,WAAW,IAAM,CACfA,EAAI,QAAU,EAChB,EAAG,CAAC,EAEJuF,EAAO,KAAKH,EAAMpF,EAAI,KAAM,GAAG/B,CAAI,EAEnC,OAAO,oBAAoBmH,EAAK,OAAO,EACpC,OAAQzH,GAAQ,CAAC,KAAK,QAAQA,CAAG,CAAC,EAClC,QAASA,GAAQ,CAChB,MAAMC,EAAQwH,EAAK,QAAQzH,CAAG,EAC9B4B,GAAW,KACT,KACA6F,EAAK,QACLzH,EAAI,QAAQ,WAAapH,GAAM,IAAIA,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,CACzD,EACA6O,EAAK,QAAQzH,CAAG,EAAIC,CACtB,CAAC,CACL,EAEI,KAAK,QACPoC,EAAI,SAAW,KAAK,MAAM,KAAKoF,EAAMD,GAAO,KAAK,KAAMC,CAAI,CAAC,GAG9D,KAAK,OAAO,CACd,CAGA,MAAMa,WAAqB,WAAY,CAErC,WAEA,IAAI,aAAc,CAChB,OAAOnJ,GAAQ,KAAK,UAAU,EAAE,OAAO,SACzC,CAEA,mBAAoB,CAClB8I,GAAgB,KAAK,IAAI,CAC3B,CAEA,WAAWpG,EAASC,EAAU,CAC5BF,GAAW,KAAK,KAAMC,EAASC,CAAQ,CACzC,CAEA,YAAa,CACX,OAAOE,GAAW,KAAK,IAAI,CAC7B,CAEA,YAAYE,EAAY,CACtB,OAAOD,GAAY,KAAK,KAAMC,CAAU,CAC1C,CAEA,yBAAyBE,EAAMmG,EAAQC,EAAQ,CAE7C,MAAMnG,EAAMlD,GAAQ,KAAK,UAAU,EACnC,GAAI,CAACkD,EAAK,OAENmG,IAAW,MAAQ,CAACA,EAAS,KAAOA,EAAO,KAAK,IAClDA,EAAS,CAACA,GAEZ,KAAM,CAAE,cAAAC,CAAc,EAAIpG,EACpBoF,EAAOpF,EAAI,KACjB,GAAI,GAAKD,EAAK,QAAQ,OAAO,EAAG,CAE9B,MAAMsG,EAActG,EAAK,MAAM,CAAc,EAC7C,GAAamG,IAAT,KACF,KAAK,WAAWd,EAAK,QAASiB,CAAW,UACvBF,IAAT,KAAiB,CAC1B,MAAMzG,EAAY2G,EAAY,QAAQ,YAAc9P,GAClDA,EAAE,CAAC,EAAE,YAAY,CACnB,EACA,OAAO6O,EAAK,QAAQ1F,CAAS,CAC/B,CACF,CAEA,GAAIyG,IAAWf,EAAK,MAAMrF,CAAI,EAQ9B,GALaoG,IAAT,KACF,OAAOf,EAAK,MAAMrF,CAAI,EAEtBqF,EAAK,MAAMrF,CAAI,EAAIoG,EAEjBC,EAAcrG,CAAI,EAAG,CACvB,OAAOqG,EAAcrG,CAAI,EACzB,MACF,MACE,KAAK,OAAO,CAEhB,CAEA,sBAAuB,CACrB,MAAMC,EAAMlD,GAAQ,KAAK,UAAU,EACnCkD,EAAI,UAAYA,EAAI,SAAS,CAC/B,CAEA,MAAMmF,EAAQ,CAAC,CAEf,OAAOX,KAASvG,EAAM,CAAC,CACzB,CAEA,QAAQ,KAAK,oEAAoE,EACjF,OAAO,aAAegI,EACxB,GAAG",
6
- "names": ["hyperHTML", "N", "t", "e", "n", "r", "i", "a", "o", "s", "m", "u", "c", "l", "f", "y", "b", "E", "C", "h", "d", "v", "p", "g", "k", "w", "A", "S", "O", "T", "M", "_", "j", "L", "P", "D", "W", "$", "R", "H", "F", "I", "z", "V", "Z", "G", "q", "B", "J", "K", "Q", "U", "X", "Y", "ee", "te", "ne", "re", "ie", "ae", "oe", "ue", "ce", "le", "se", "fe", "he", "de", "ve", "pe", "ge", "me", "ye", "be", "we", "Ne", "xe", "Ee", "Ce", "Se", "ke", "Ae", "Oe", "Te", "Me", "je", "_e", "Le", "Pe", "De", "We", "$e", "Re", "Ke", "Je", "Fe", "He", "Ie", "ze", "Ve", "Ze", "Ge", "qe", "Be", "Qe", "Ue", "Xe", "Ye", "et", "tt", "nt", "rt", "it", "at", "ut", "ot", "ct", "lt", "st", "ft", "ht", "dt", "vt", "pt", "gt", "isCustomTag", "manager", "sharedAttrs", "makeid", "text", "possible", "escapeHtml", "str", "SAFE_HTML", "safeHtml", "html", "isSafeHtml", "val", "parseAttribute", "key", "value", "lowerCaseValue", "formatValue", "processAdvancedTemplate", "template", "data", "result", "eachRegex", "match", "arrayName", "content", "arr", "item", "index", "itemContent", "ifElseRegex", "condition", "ifContent", "elseContent", "ifRegex", "unlessRegex", "buildTemplate", "innerHTML", "templateVals", "vals", "fragment", "output", "addDataset", "dataset", "dash_key", "camel_key", "getDataset", "attachAttrs", "attributes", "accumulator", "name", "ref", "hasEachBlocks", "strings", "resolvePropertyPath", "obj", "path", "parsePropertyReferences", "regex", "parts", "props", "lastIndex", "findMatchingClose", "startIdx", "startPos", "openTag", "closeTag", "depth", "searchStart", "openPos", "closePos", "buildTemplateStrings", "primitiveWrappers", "getWireKey", "array", "cache", "resolveProp", "prop", "processInnerContent", "wireFunction", "nestedRegex", "hasNested", "nestedMatches", "processedContent", "fullMatch", "propPath", "innerContent", "nestedArray", "nestedResults", "nestedItem", "nestedIndex", "finalParts", "finalValues", "propIndex", "part", "placeholderMatch", "before", "after", "values", "findFirstBlock", "blocks", "first", "block", "pos", "transformEachBlocks", "resultStrings", "resultValues", "firstBlock", "type", "blockStartPos", "pattern", "blockValue", "nextStr", "afterClose", "endIdx", "endPos", "elsePos", "blockResult", "idx", "afterBlock", "createHtml", "shadow", "hyperHTMLbind", "Html", "args", "transformed", "hasNonString", "hasCustomTag", "inCustomTag", "localName", "_items", "attrName", "id", "processedArgs", "onNext", "that", "store", "storeFn", "render", "render2", "observer", "mutations", "textContent", "createdCallback", "templatestrings", "wrapFragment", "templateResult", "toString", "hyperElement", "oldVal", "newVal", "attrsToIgnore", "dataSetName"]
4
+ "sourcesContent": ["// hyper-element v1.1.0 - zero runtime dependencies\n(function () {\n\n // core/constants.js\n const isCustomTag = /<+\\w+[-]+\\w/;\n\n // core/manager.js\n const manager = {};\n\n const sharedAttrs = {};\n\n // utils/makeid.js\n function makeid() {\n var text = '';\n var possible = 'bcdfghjklmnpqrstvwxyz';\n\n for (var i = 0; i < 15; i++)\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n\n return text;\n }\n\n // utils/escape.js\n function escapeHtml(str) {\n if (typeof str !== 'string') return str;\n return str\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&#39;');\n }\n\n const SAFE_HTML = Symbol('safeHtml');\n\n function safeHtml(html) {\n return { [SAFE_HTML]: true, value: html };\n }\n\n function isSafeHtml(val) {\n return val && val[SAFE_HTML] === true;\n }\n\n // render/constants.js\n const ARRAY = 1 << 0; // Array of values\n const ATTRIBUTE = 1 << 1; // Standard attribute\n const COMMENT = 1 << 2; // Node interpolation (comment placeholder)\n const DATA = 1 << 3; // data-* attributes\n const DIRECT = 1 << 4; // Direct property assignment\n const EVENT = 1 << 5; // Event listener (@click)\n const KEY = 1 << 6; // Key attribute for keying\n const PROP = 1 << 7; // .prop direct property\n const TEXT = 1 << 8; // Text content (textContent)\n const TOGGLE = 1 << 9; // Boolean toggle (?attr)\n const UNSAFE = 1 << 10; // Raw HTML (innerHTML)\n\n const ELEMENT = 1;\n const ATTRIBUTE_TYPE = 2;\n const TEXT_TYPE = 3;\n const COMMENT_TYPE = 8;\n const FRAGMENT = 11;\n\n const COMMENT_ARRAY = COMMENT | ARRAY;\n const EVENT_ARRAY = EVENT | ARRAY;\n\n const TEXT_ELEMENTS = new Set([\n 'plaintext',\n 'script',\n 'style',\n 'textarea',\n 'title',\n 'xmp',\n ]);\n\n const VOID_ELEMENTS = new Set([\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'menuitem',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ]);\n\n const children = Object.freeze([]);\n const props = Object.freeze({});\n\n // render/creator.js\n let _creatorTpl = document.createElement('template');\n let _creatorRange;\n\n function createFragment(content, xml = false) {\n if (xml) {\n if (!_creatorRange) {\n _creatorRange = document.createRange();\n _creatorRange.selectNodeContents(\n document.createElementNS('http://www.w3.org/2000/svg', 'svg')\n );\n }\n return _creatorRange.createContextualFragment(content);\n }\n _creatorTpl.innerHTML = content;\n const fragment = _creatorTpl.content;\n _creatorTpl = _creatorTpl.cloneNode(false);\n return fragment;\n }\n\n // render/resolve.js\n function resolve(root, path) {\n return path.reduceRight(\n (node, i) => (i < 0 ? node.content : node.childNodes[i]),\n root\n );\n }\n\n // render/diff.js\n function diff(a, b, get, before) {\n const parentNode = before.parentNode;\n const bLength = b.length;\n let aEnd = a.length;\n let bEnd = bLength;\n let aStart = 0;\n let bStart = 0;\n let map = null;\n\n while (aStart < aEnd || bStart < bEnd) {\n\n if (aEnd === aStart) {\n const node =\n bEnd < bLength\n ? bStart\n ? get(b[bStart - 1], -0).nextSibling\n : get(b[bEnd], 0)\n : before;\n while (bStart < bEnd) parentNode.insertBefore(get(b[bStart++], 1), node);\n }\n\n else if (bEnd === bStart) {\n while (aStart < aEnd) {\n if (!map || !map.has(a[aStart])) get(a[aStart], -1).remove();\n aStart++;\n }\n }\n\n else if (a[aStart] === b[bStart]) {\n aStart++;\n bStart++;\n }\n\n else if (a[aEnd - 1] === b[bEnd - 1]) {\n aEnd--;\n bEnd--;\n }\n\n else if (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]) {\n const node = get(a[--aEnd], -0).nextSibling;\n parentNode.insertBefore(\n get(b[bStart++], 1),\n get(a[aStart++], -0).nextSibling\n );\n parentNode.insertBefore(get(b[--bEnd], 1), node);\n a[aEnd] = b[bEnd];\n }\n\n else {\n if (!map) {\n map = new Map();\n let i = bStart;\n while (i < bEnd) map.set(b[i], i++);\n }\n\n const index = map.get(a[aStart]) ?? -1;\n\n if (index < 0) {\n get(a[aStart++], -1).remove();\n } else {\n if (bStart < index && index < bEnd) {\n let i = aStart;\n let sequence = 1;\n while (++i < aEnd && i < bEnd && map.get(a[i]) === index + sequence)\n sequence++;\n if (sequence > index - bStart) {\n const node = get(a[aStart], 0);\n while (bStart < index)\n parentNode.insertBefore(get(b[bStart++], 1), node);\n } else {\n parentNode.replaceChild(get(b[bStart++], 1), get(a[aStart++], -1));\n }\n } else {\n aStart++;\n }\n }\n }\n }\n return b;\n }\n\n // render/persistent-fragment.js\n let checkType = false;\n let range;\n\n const nodes = Symbol('nodes');\n\n const drop = ({ firstChild, lastChild }) => {\n const r = range || (range = document.createRange());\n r.setStartAfter(firstChild);\n r.setEndAfter(lastChild);\n r.deleteContents();\n return firstChild;\n };\n\n function diffFragment(node, operation) {\n if (checkType && node.nodeType === 11) {\n return 1 / operation < 0\n ? operation\n ? drop(node)\n : node.lastChild\n : operation\n ? node.valueOf()\n : node.firstChild;\n }\n return node;\n }\n\n const parentNode = {\n \n get() {\n return this.firstChild.parentNode;\n },\n };\n\n const replaceWith = {\n \n value(node) {\n drop(this).replaceWith(node);\n },\n };\n\n const remove = {\n \n value() {\n drop(this).remove();\n },\n };\n\n const valueOf = {\n \n value() {\n const { parentNode } = this;\n if (parentNode === this) {\n if (this[nodes] === children) this[nodes] = [...this.childNodes];\n } else {\n if (parentNode) {\n let { firstChild, lastChild } = this;\n this[nodes] = [firstChild];\n while (firstChild !== lastChild)\n this[nodes].push((firstChild = firstChild.nextSibling));\n }\n this.replaceChildren(...this[nodes]);\n }\n return this;\n },\n };\n\n function PersistentFragment(fragment) {\n const firstChild = document.createComment('<>');\n const lastChild = document.createComment('</>');\n fragment.replaceChildren(firstChild, ...fragment.childNodes, lastChild);\n checkType = true;\n return Object.defineProperties(fragment, {\n [nodes]: { writable: true, value: children },\n firstChild: { value: firstChild },\n lastChild: { value: lastChild },\n parentNode,\n valueOf,\n replaceWith,\n remove,\n });\n }\n\n PersistentFragment.prototype = DocumentFragment.prototype;\n\n // render/keyed.js\n const keyedHoles = new WeakMap();\n\n class Keyed extends Map {\n \n constructor() {\n super();\n \n this._ = new FinalizationRegistry((key) => this.delete(key));\n }\n\n get(key) {\n const node = super.get(key)?.deref();\n return node && keyedHoles.get(node);\n }\n\n set(key, node, hole) {\n keyedHoles.set(node, hole);\n this._.register(node, key);\n super.set(key, new WeakRef(node));\n }\n }\n\n // render/nodes.js\n class Node {\n \n constructor(type) {\n this.type = type;\n this.parent = null;\n }\n }\n\n class Comment extends Node {\n \n constructor(data) {\n super(COMMENT_TYPE);\n this.data = data;\n }\n \n toString() {\n return `<!--${this.data}-->`;\n }\n }\n\n class Text extends Node {\n \n constructor(data) {\n super(TEXT_TYPE);\n this.data = data;\n }\n \n toString() {\n return this.data;\n }\n }\n\n class Element extends Node {\n \n constructor(name, xml = false) {\n super(ELEMENT);\n this.name = name;\n this.xml = xml;\n this.props = props;\n this.children = children;\n }\n \n toString() {\n const { xml, name, props: p, children: c } = this;\n const length = c.length;\n let html = `<${name}`;\n for (const key in p) {\n const value = p[key];\n if (value != null) {\n if (typeof value === 'boolean') {\n if (value) html += xml ? ` ${key}=\"\"` : ` ${key}`;\n } else {\n html += ` ${key}=\"${value}\"`;\n }\n }\n }\n if (length) {\n html += '>';\n for (let text = !xml && TEXT_ELEMENTS.has(name), i = 0; i < length; i++)\n html += text ? c[i].data : c[i];\n html += `</${name}>`;\n } else if (xml) {\n html += ' />';\n } else {\n html += VOID_ELEMENTS.has(name) ? '>' : `></${name}>`;\n }\n return html;\n }\n }\n\n class Fragment extends Node {\n \n constructor() {\n super(FRAGMENT);\n this.name = '#fragment';\n this.children = children;\n }\n \n toString() {\n return this.children.join('');\n }\n }\n\n // render/parser.js\n const NUL = '\\x00';\n const DOUBLE_QUOTED_NUL = `\"${NUL}\"`;\n const SINGLE_QUOTED_NUL = `'${NUL}'`;\n /* eslint-disable no-control-regex */\n const NEXT = /\\x00|<[^><\\s]+/g;\n const ATTRS = /([^\\s/>=]+)(?:=(\\x00|(?:(['\"])[\\s\\S]*?\\3)))?/g;\n /* eslint-enable no-control-regex */\n\n const append = (node, child) => {\n if (node.children === children) node.children = [];\n node.children.push(child);\n child.parent = node;\n return child;\n };\n\n const prop = (node, name, value) => {\n if (node.props === props) node.props = {};\n node.props[name] = value;\n };\n\n const path = (node) => {\n const insideout = [];\n while (node.parent) {\n if (node.type === ELEMENT && node.name === 'template') {\n insideout.push(-1);\n }\n insideout.push(node.parent.children.indexOf(node));\n node = node.parent;\n }\n return insideout;\n };\n\n const parent = (node, ignore) => {\n do {\n node = node.parent;\n } while (ignore.has(node));\n return node;\n };\n\n const defaultUpdate = (_node, type, nodePath, name) => [type, nodePath, name];\n\n function createParser(update = defaultUpdate) {\n \n return (template, holes, xml) => {\n\n const content = template.join(NUL).replace(/^\\s+/, '');\n const ignore = new Set();\n const values = [];\n let node = new Fragment();\n let pos = 0;\n let skip = 0;\n let hole = 0;\n let resolvedPath = children;\n\n for (const match of content.matchAll(NEXT)) {\n if (skip > 0) {\n skip--;\n continue;\n }\n\n const chunk = match[0];\n const index = match.index;\n\n if (pos < index) {\n append(node, new Text(content.slice(pos, index)));\n }\n\n if (chunk === NUL) {\n if (node.name === 'table') {\n node = append(node, new Element('tbody', xml));\n ignore.add(node);\n }\n const comment = append(node, new Comment('\u25E6'));\n values.push(\n update(comment, COMMENT_TYPE, path(comment), '', holes[hole++])\n );\n pos = index + 1;\n } else if (chunk.startsWith('<!')) {\n const i = content.indexOf('>', index + 2);\n if (content.slice(i - 2, i + 1) === '-->') {\n const data = content.slice(index + 4, i - 2);\n if (data[0] === '!') {\n append(node, new Comment(data.slice(1).replace(/!$/, '')));\n }\n }\n pos = i + 1;\n } else if (chunk.startsWith('</')) {\n const i = content.indexOf('>', index + 2);\n if (xml && node.name === 'svg') xml = false;\n node = parent(node, ignore);\n pos = i + 1;\n } else {\n const i = index + chunk.length;\n const j = content.indexOf('>', i);\n const name = chunk.slice(1);\n let tag = name;\n\n if (!xml) {\n tag = tag.toLowerCase();\n if (node.name === 'table' && (tag === 'tr' || tag === 'td')) {\n node = append(node, new Element('tbody', xml));\n ignore.add(node);\n }\n if (node.name === 'tbody' && tag === 'td') {\n node = append(node, new Element('tr', xml));\n ignore.add(node);\n }\n }\n\n node = append(node, new Element(tag, xml ? tag !== 'svg' : false));\n resolvedPath = children;\n\n if (i < j) {\n let dot = false;\n for (const [, attrName, value] of content\n .slice(i, j)\n .matchAll(ATTRS)) {\n if (\n value === NUL ||\n value === DOUBLE_QUOTED_NUL ||\n value === SINGLE_QUOTED_NUL ||\n (dot = attrName.endsWith(NUL))\n ) {\n const p =\n resolvedPath === children\n ? (resolvedPath = path(node))\n : resolvedPath;\n values.push(\n update(\n node,\n ATTRIBUTE_TYPE,\n p,\n dot ? attrName.slice(0, -1) : attrName,\n holes[hole++]\n )\n );\n dot = false;\n skip++;\n } else {\n prop(node, attrName, value ? value.slice(1, -1) : true);\n }\n }\n resolvedPath = children;\n }\n\n pos = j + 1;\n const closed = j > 0 && content[j - 1] === '/';\n\n if (xml) {\n if (closed) node = node.parent;\n } else if (closed || VOID_ELEMENTS.has(tag)) {\n node = closed ? parent(node, ignore) : node.parent;\n } else if (tag === 'svg') {\n xml = true;\n } else if (TEXT_ELEMENTS.has(tag)) {\n const endIndex = content.indexOf(`</${name}>`, pos);\n const value = content.slice(pos, endIndex);\n if (value.trim() === NUL) {\n skip++;\n values.push(update(node, TEXT_TYPE, path(node), '', holes[hole++]));\n } else {\n append(node, new Text(value));\n }\n node = node.parent;\n pos = endIndex + name.length + 3;\n skip++;\n continue;\n }\n }\n }\n\n if (pos < content.length) {\n append(node, new Text(content.slice(pos)));\n }\n\n return [node, values];\n };\n }\n\n // render/update.js\n const ref = Symbol('ref');\n\n let k = false;\n\n function isKeyed() {\n const wasKeyed = k;\n k = false;\n return wasKeyed;\n }\n\n const textCache = new WeakMap();\n\n const getText = (ref, value) => {\n let node = textCache.get(ref);\n if (node) {\n node.data = value;\n } else {\n textCache.set(ref, (node = document.createTextNode(value)));\n }\n return node;\n };\n\n const directRefs = new Map();\n\n const directFor = (name) => {\n let fn = directRefs.get(name);\n if (!fn) directRefs.set(name, (fn = direct(name)));\n return fn;\n };\n\n const attribute = (name) => (node, value) => {\n if (value == null) node.removeAttribute(name);\n else node.setAttribute(name, value);\n };\n\n const direct = (name) => (node, value) => {\n node[name] = value;\n };\n\n const toggle = (name) => (node, value) => {\n node.toggleAttribute(name, !!value);\n };\n\n const data = ({ dataset }, values) => {\n for (const [key, value] of Object.entries(values)) {\n if (value == null) delete dataset[key];\n else dataset[key] = value;\n }\n };\n\n const styleHandler = (node, value) => {\n if (value == null) {\n node.removeAttribute('style');\n } else if (typeof value === 'object') {\n\n for (const [prop, val] of Object.entries(value)) {\n if (val == null) {\n node.style.removeProperty(prop);\n } else {\n node.style.setProperty(prop, val);\n }\n }\n } else {\n\n node.setAttribute('style', value);\n }\n };\n\n const event = (type, at, array) =>\n array\n ? (node, value) => {\n const prev = node[at];\n if (prev?.length) node.removeEventListener(type, ...prev);\n if (value) node.addEventListener(type, ...value);\n node[at] = value;\n }\n : (node, value) => {\n const prev = node[at];\n if (prev) node.removeEventListener(type, prev);\n if (value) node.addEventListener(type, value);\n node[at] = value;\n };\n\n const toNodes = (arr) =>\n arr.map((item) => {\n\n if (typeof item === 'string' || typeof item === 'number') {\n return document.createTextNode(String(item));\n }\n\n return item;\n });\n\n const commentArray = (node, value) => {\n\n const nodeValue = toNodes(value);\n node[nodes] = diff(node[nodes] || children, nodeValue, diffFragment, node);\n };\n\n const replaceComment = (node, value) => {\n const current =\n typeof value === 'object' ? (value ?? node) : getText(node, value);\n const prev = node[nodes] ?? node;\n if (current !== prev) {\n prev.replaceWith(diffFragment((node[nodes] = current), 1));\n }\n };\n\n const commentHoleFactory = (xml) => (node, value) => {\n\n if (value && typeof value === 'object' && value.__unsafe) {\n const html = value.value;\n const prev = node[ref] ?? (node[ref] = {});\n if (prev.v !== html) {\n prev.f = PersistentFragment(createFragment(html, xml));\n prev.v = html;\n }\n value = prev.f;\n }\n replaceComment(node, value);\n };\n\n const commentUnsafe = (xml) => (node, value) => {\n\n const html =\n value && typeof value === 'object' && value.__unsafe ? value.value : value;\n const prev = node[ref] ?? (node[ref] = {});\n if (prev.v !== html) {\n prev.f = PersistentFragment(createFragment(html, xml));\n prev.v = html;\n }\n replaceComment(node, prev.f);\n };\n\n function update(node, type, path, name, hint) {\n switch (type) {\n case COMMENT_TYPE: {\n if (Array.isArray(hint)) return [path, commentArray, COMMENT_ARRAY];\n if (hint && typeof hint === 'object' && hint.__unsafe) {\n return [path, commentUnsafe(node.xml), UNSAFE];\n }\n return [path, commentHoleFactory(node.xml), COMMENT];\n }\n case TEXT_TYPE: {\n return [path, directFor('textContent'), TEXT];\n }\n case ATTRIBUTE_TYPE: {\n switch (name.charAt(0)) {\n case '@': {\n\n const array = Array.isArray(hint);\n return [\n path,\n event(name.slice(1), Symbol(name), array),\n array ? EVENT_ARRAY : EVENT,\n ];\n }\n case '?': {\n\n return [path, toggle(name.slice(1)), TOGGLE];\n }\n case '.': {\n\n if (name === '...') {\n\n return [\n path,\n (node, values) => {\n for (const [n, v] of Object.entries(values))\n attribute(n)(node, v);\n },\n PROP,\n ];\n }\n return [path, direct(name.slice(1)), DIRECT];\n }\n default: {\n\n if (name === 'data' && !/^object$/i.test(node.name)) {\n return [path, data, DATA];\n }\n if (name === 'key') {\n k = true;\n return [path, true, KEY];\n }\n if (name === 'ref') {\n return [path, directFor(ref), DIRECT];\n }\n if (name.startsWith('on')) {\n return [path, directFor(name.toLowerCase()), DIRECT];\n }\n if (name === 'style') {\n\n return [path, styleHandler, ATTRIBUTE];\n }\n return [path, attribute(name), ATTRIBUTE];\n }\n }\n }\n }\n }\n\n // render/hole.js\n const dom = (hole) =>\n diffFragment(hole.n ? hole.update(hole) : hole.valueOf(), 1);\n\n const holed = (prev, current) => {\n const changes = [];\n const h = prev.length;\n const l = current.length;\n for (let c, p, j = 0, i = 0; i < l; i++) {\n c = current[i];\n changes[i] =\n j < h && (p = prev[j++]).t === c.t\n ? (current[i] = p).update(c)\n : c.valueOf();\n }\n return changes;\n };\n\n const getKeyedHole = (hole, value) => {\n const cached = hole.t[2]?.get(value);\n return cached?.update(hole) ?? hole.valueOf();\n };\n\n const getHole = (hole, value) => {\n if (hole.t === value.t) {\n hole.update(value);\n } else {\n hole.n.replaceWith(dom(value));\n hole = value;\n }\n return hole;\n };\n\n class Hole {\n \n constructor(template, values) {\n \n this.t = template;\n \n this.v = values;\n \n this.n = null;\n \n this.k = -1;\n }\n\n valueOf() {\n const [fragment, updates, keys] = this.t;\n const root = document.importNode(fragment, true);\n const values = this.v;\n let length = values.length;\n let changes = children;\n let node;\n let prev;\n\n if (length > 0) {\n changes = updates.slice(0);\n while (length--) {\n const [path, update, type] = updates[length];\n const value = values[length];\n\n if (prev !== path) {\n node = resolve(root, path);\n prev = path;\n }\n\n let commit = true;\n\n if (type & ARRAY) {\n if (type & COMMENT) {\n commit = false;\n if (value.length) {\n update(\n node,\n value[0] instanceof Hole ? holed(children, value) : value\n );\n }\n }\n }\n\n else if (type & COMMENT && value instanceof Hole) {\n commit = false;\n update(node, dom(value));\n }\n\n if (commit) {\n if (type === KEY) {\n this.k = length;\n } else {\n update(node, value);\n }\n }\n\n changes[length] = [type, update, value, node];\n }\n }\n\n const { childNodes } = root;\n const size = childNodes.length;\n const n =\n size === 1 ? childNodes[0] : size ? PersistentFragment(root) : root;\n\n this.v = changes;\n this.n = n;\n\n if (this.k >= 0 && keys) {\n keys.set(changes[this.k][2], n, this);\n }\n\n return n;\n }\n\n update(hole) {\n const key = this.k;\n const changes = this.v;\n const values = hole.v;\n\n if (key >= 0 && changes[key][2] !== values[key]) {\n return getKeyedHole(hole, values[key]);\n }\n\n let { length } = changes;\n while (length--) {\n const entry = changes[length];\n const [type, update, prev] = entry;\n\n if (type === KEY) continue;\n\n let value = values[length];\n let change = value;\n\n if (type & ARRAY) {\n if (type & COMMENT) {\n if (value.length) {\n if (value[0] instanceof Hole) {\n change = holed(prev, value);\n }\n }\n } else if (type & EVENT && value[0] === prev[0]) {\n continue;\n }\n }\n\n else if (type & COMMENT) {\n if (prev instanceof Hole) {\n value = getHole(prev, value);\n change = value.n;\n }\n }\n\n if (value !== prev) {\n entry[2] = value;\n update(entry[3], change);\n }\n }\n\n return this.n;\n }\n }\n\n // render/index.js\n const _parseTemplate = createParser(update);\n\n const rendered = new WeakMap();\n\n const wireCache = new WeakMap();\n\n const create =\n (xml, cache = new WeakMap()) =>\n (template, ...values) => {\n let parsed = cache.get(template);\n if (!parsed) {\n\n parsed = _parseTemplate(template, values, xml);\n\n parsed.push(isKeyed() ? new Keyed() : null);\n\n parsed[0] = createFragment(parsed[0].toString(), xml);\n cache.set(template, parsed);\n }\n return new Hole(parsed, values);\n };\n\n const html = create(false);\n\n const svg = create(true);\n\n function bind(element) {\n return (template, ...values) => {\n const hole = html(template, ...values);\n const known = rendered.get(element);\n\n if (!known || known.t !== hole.t) {\n\n const d = dom(hole);\n element.replaceChildren(d);\n rendered.set(element, hole);\n } else {\n\n known.update(hole);\n }\n return element;\n };\n }\n\n function wire(obj, id = '') {\n let cache = wireCache.get(obj);\n if (!cache) {\n cache = new Map();\n wireCache.set(obj, cache);\n }\n\n return (template, ...values) => {\n let entry = cache.get(id);\n\n if (!entry || entry.tpl !== template) {\n\n const hole = html(template, ...values);\n entry = { hole, tpl: template };\n cache.set(id, entry);\n return hole;\n }\n\n return new Hole(entry.hole.t, values);\n };\n }\n\n // signals/index.js\n let currentEffect = null;\n const effectStack = [];\n\n function signal(initialValue) {\n let value = initialValue;\n const subscribers = new Set();\n\n return {\n get value() {\n\n if (currentEffect) {\n subscribers.add(currentEffect);\n }\n return value;\n },\n set value(newValue) {\n if (value !== newValue) {\n value = newValue;\n\n for (const fn of subscribers) {\n fn();\n }\n }\n },\n \n peek() {\n return value;\n },\n \n subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n },\n };\n }\n\n function computed(fn) {\n let value;\n let dirty = true;\n const subscribers = new Set();\n\n const recompute = () => {\n dirty = true;\n for (const sub of subscribers) {\n sub();\n }\n };\n\n return {\n get value() {\n\n if (currentEffect) {\n subscribers.add(currentEffect);\n }\n if (dirty) {\n\n const prevEffect = currentEffect;\n currentEffect = recompute;\n effectStack.push(recompute);\n try {\n value = fn();\n } finally {\n effectStack.pop();\n currentEffect = prevEffect;\n }\n dirty = false;\n }\n return value;\n },\n \n peek() {\n if (dirty) {\n\n const prevEffect = currentEffect;\n currentEffect = null;\n try {\n value = fn();\n } finally {\n currentEffect = prevEffect;\n }\n dirty = false;\n }\n return value;\n },\n };\n }\n\n function effect(fn) {\n let cleanup = null;\n\n const run = () => {\n\n if (typeof cleanup === 'function') {\n cleanup();\n }\n\n const prevEffect = currentEffect;\n currentEffect = run;\n effectStack.push(run);\n try {\n cleanup = fn();\n } finally {\n effectStack.pop();\n currentEffect = prevEffect;\n }\n };\n\n run();\n\n return () => {\n if (typeof cleanup === 'function') {\n cleanup();\n }\n };\n }\n\n function untracked(fn) {\n const prevEffect = currentEffect;\n currentEffect = null;\n try {\n return fn();\n } finally {\n currentEffect = prevEffect;\n }\n }\n\n let batchDepth = 0;\n let batchedEffects = new Set();\n\n function batch(fn) {\n batchDepth++;\n try {\n fn();\n } finally {\n batchDepth--;\n if (batchDepth === 0) {\n const effects = batchedEffects;\n batchedEffects = new Set();\n for (const effect of effects) {\n effect();\n }\n }\n }\n }\n\n // attributes/parseAttribute.js\n function parseAttribute(key, value) {\n if ('template' === key && '' === value) {\n return true;\n }\n\n if (+value + '' === value.trim()) {\n return +value; // to number\n }\n\n const lowerCaseValue = value.toLowerCase().trim();\n\n if ('true' === lowerCaseValue) {\n return true;\n } else if ('false' === lowerCaseValue) {\n return false;\n }\n\n if (\n (lowerCaseValue[0] === '[' && lowerCaseValue.slice(-1) === ']') ||\n (lowerCaseValue[0] === '{' && lowerCaseValue.slice(-1) === '}')\n ) {\n return JSON.parse(value);\n }\n\n return value;\n }\n\n // template/processAdvancedTemplate.js\n function formatValue(value) {\n if (typeof value === 'function') {\n return formatValue(value());\n }\n if (typeof value === 'string') {\n return escapeHtml(value);\n }\n if (typeof value === 'number' || typeof value === 'boolean') {\n return String(value);\n }\n if (Array.isArray(value)) {\n return escapeHtml(value.join(', '));\n }\n if (value !== null && typeof value === 'object') {\n return escapeHtml(JSON.stringify(value));\n }\n\n return '';\n }\n\n function processAdvancedTemplate(template, data) {\n let result = template;\n\n const eachRegex = /\\{\\+each\\s+(\\w+)\\}([\\s\\S]*?)\\{-each\\}/g;\n result = result.replace(eachRegex, (match, arrayName, content) => {\n const arr = data[arrayName];\n if (!Array.isArray(arr)) return '';\n return arr\n .map((item, index) => {\n let itemContent = content;\n\n itemContent = itemContent.replace(/\\{@\\}/g, index);\n\n itemContent = itemContent.replace(\n /\\{\\s*\\.\\.\\.\\s*\\}/g,\n formatValue(item)\n );\n\n if (typeof item === 'object' && item !== null) {\n Object.keys(item).forEach((key) => {\n itemContent = itemContent.replace(\n new RegExp('\\\\{' + key + '\\\\}', 'g'),\n escapeHtml(String(item[key]))\n );\n });\n }\n return itemContent;\n })\n .join('');\n });\n\n const ifElseRegex = /\\{\\+if\\s+(\\w+)\\}([\\s\\S]*?)\\{else\\}([\\s\\S]*?)\\{-if\\}/g;\n result = result.replace(\n ifElseRegex,\n (match, condition, ifContent, elseContent) => {\n return data[condition] ? ifContent : elseContent;\n }\n );\n\n const ifRegex = /\\{\\+if\\s+(\\w+)\\}([\\s\\S]*?)\\{-if\\}/g;\n result = result.replace(ifRegex, (match, condition, content) => {\n return data[condition] ? content : '';\n });\n\n const unlessRegex = /\\{\\+unless\\s+(\\w+)\\}([\\s\\S]*?)\\{-unless\\}/g;\n result = result.replace(unlessRegex, (match, condition, content) => {\n return data[condition] ? '' : content;\n });\n\n return result;\n }\n\n // template/buildTemplate.js\n function buildTemplate(innerHTML) {\n\n const hasAdvanced = /\\{\\+(if|each|unless)\\s/.test(innerHTML);\n\n if (hasAdvanced) {\n\n return function template(data) {\n if ('object' !== typeof data) {\n throw new Error(\n 'Templates must be passed an object. You passed ' +\n JSON.stringify(data)\n );\n }\n\n let result = processAdvancedTemplate(innerHTML, data);\n\n result = result.replace(/\\{(\\w+)\\}/g, (match, key) => {\n return data[key] != null ? escapeHtml(String(data[key])) : '';\n });\n\n return { html: result };\n };\n }\n\n const re = /(\\{[\\w]+\\})/g;\n const templateVals = innerHTML.split(re).reduce(\n (vals, item) => {\n if ('{' === item[0] && '}' === item.slice(-1)) {\n vals.keys.push(item.slice(1, -1));\n } else {\n vals.markup.push(item);\n }\n\n return vals;\n },\n { markup: [], keys: [] }\n );\n\n templateVals.id = ':' + templateVals.markup.join().trim();\n\n function fragment(data) {\n const output = [\n templateVals.markup,\n\n ...templateVals.keys.map((key) => (data[key] != null ? data[key] : '')),\n ];\n output.raw = { value: templateVals.markup };\n return output;\n }\n\n return function template(data) {\n if ('object' !== typeof data) {\n throw new Error(\n 'Templates must be passed an object to be populated with. You passed ' +\n JSON.stringify(data) +\n ' to ' +\n templateVals.id\n );\n }\n return wire(data, templateVals.id)(...fragment(data));\n };\n }\n\n // attributes/dataset.js\n function addDataset(dataset, dash_key) {\n const camel_key = dash_key.replace(/-([a-z])/g, (g) => g[1].toUpperCase());\n\n Object.defineProperty(dataset, camel_key, {\n enumerable: true, // can be selected\n configurable: true, // can be delete\n get: () => parseAttribute(camel_key, this.dataset[camel_key]),\n set: (value) => {\n manager[this.identifier].attrsToIgnore['data-' + dash_key] = true;\n if ('string' === typeof value) {\n this.dataset[camel_key] = value;\n } else {\n this.dataset[camel_key] = JSON.stringify(value);\n }\n },\n });\n }\n\n function getDataset() {\n const dataset = {};\n Object.keys(this.dataset).forEach((key) =>\n addDataset.call(\n this,\n dataset,\n key.replace(/([A-Z])/g, (g) => `-${g[0].toLowerCase()}`)\n )\n );\n return dataset;\n }\n\n // attributes/attachAttrs.js\n function attachAttrs(attributes) {\n const accumulator = {};\n\n for (let i = 0; i < attributes.length; i++) {\n const { value, name } = attributes[i];\n\n if ('template' === name && !value) {\n const ref = manager[this.identifier];\n ref.Html.template = buildTemplate(ref.innerHTML);\n accumulator[name] = true;\n } else if (\n ('fn-' === value.substr(0, 3) || 'ob-' === value.substr(0, 3)) &&\n !!sharedAttrs[value.substr(3)] &&\n sharedAttrs[value.substr(3)].localName === this.localName\n ) {\n accumulator[name] = sharedAttrs[value.substr(3)].val;\n } else {\n if (+value + '' === (value + '').trim()) {\n accumulator[name] = +value;\n } else {\n accumulator[name] = value;\n }\n }\n }\n return accumulator;\n }\n\n // html/parseEachBlocks.js\n function hasEachBlocks(strings) {\n return strings.some(\n (s) =>\n s.includes('{+each ') ||\n s.includes('{+each{') ||\n s.includes('{+if ') ||\n s.includes('{+unless ')\n );\n }\n\n function resolvePropertyPath(obj, path) {\n return path.split('.').reduce((o, key) => o?.[key], obj);\n }\n\n function parsePropertyReferences(str) {\n const regex = /\\{(@|\\s*\\.\\.\\.\\s*|\\w+(?:\\.\\w+)*)\\}/g;\n const parts = [],\n props = [];\n let lastIndex = 0,\n match;\n while ((match = regex.exec(str)) !== null) {\n parts.push(str.substring(lastIndex, match.index));\n props.push(match[1]);\n lastIndex = regex.lastIndex;\n }\n parts.push(str.substring(lastIndex));\n return { parts, props };\n }\n\n function findMatchingClose(strings, startIdx, startPos, openTag, closeTag) {\n let depth = 1;\n for (let i = startIdx; i < strings.length; i++) {\n const str = strings[i];\n let searchStart = i === startIdx ? startPos : 0;\n while (searchStart < str.length) {\n const openPos = str.indexOf(openTag, searchStart);\n const closePos = str.indexOf(closeTag, searchStart);\n if (closePos !== -1 && (openPos === -1 || closePos < openPos)) {\n if (--depth === 0) return { endIdx: i, endPos: closePos };\n searchStart = closePos + closeTag.length;\n } else if (openPos !== -1) {\n depth++;\n searchStart = openPos + openTag.length;\n } else break;\n }\n }\n throw new Error(`Unclosed ${openTag}} block. Missing ${closeTag}.`);\n }\n\n function buildTemplateStrings(parts) {\n const arr = [...parts];\n arr.raw = [...parts];\n return arr;\n }\n\n const primitiveWrappers = new WeakMap();\n\n function getWireKey(item, index, array) {\n if (item !== null && typeof item === 'object') return item;\n let cache = primitiveWrappers.get(array);\n if (!cache) {\n cache = {};\n primitiveWrappers.set(array, cache);\n }\n if (!cache[index]) cache[index] = { _value: item, _index: index };\n cache[index]._value = item;\n return cache[index];\n }\n\n function resolveProp(prop, item, index) {\n if (prop === '@') return index;\n if (prop.trim() === '...') return item;\n return resolvePropertyPath(item, prop);\n }\n\n function processInnerContent(content, item, index, array, wireFunction) {\n const nestedRegex = /\\{\\+each\\s*\\{(\\w+(?:\\.\\w+)*)\\}\\}([\\s\\S]*?)\\{-each\\}/g;\n const hasNested = nestedRegex.test(content);\n nestedRegex.lastIndex = 0;\n\n if (hasNested) {\n const nestedMatches = [];\n let processedContent = content,\n match;\n while ((match = nestedRegex.exec(content)) !== null) {\n const [fullMatch, propPath, innerContent] = match;\n const nestedArray = resolvePropertyPath(item, propPath);\n if (!Array.isArray(nestedArray)) {\n processedContent = processedContent.replace(fullMatch, '');\n continue;\n }\n const nestedResults = nestedArray.map((nestedItem, nestedIndex) =>\n processInnerContent(\n innerContent.trim(),\n nestedItem,\n nestedIndex,\n nestedArray,\n wireFunction\n )\n );\n processedContent = processedContent.replace(\n fullMatch,\n `__NESTED_${nestedMatches.length}__`\n );\n nestedMatches.push(nestedResults);\n }\n const { parts, props } = parsePropertyReferences(processedContent);\n const finalParts = [],\n finalValues = [];\n let propIndex = 0;\n for (let i = 0; i < parts.length; i++) {\n let part = parts[i],\n placeholderMatch;\n while ((placeholderMatch = part.match(/__NESTED_(\\d+)__/))) {\n const [before, after] = part.split(placeholderMatch[0]);\n finalParts.push(before);\n finalValues.push(nestedMatches[parseInt(placeholderMatch[1], 10)]);\n part = after || '';\n }\n finalParts.push(part);\n if (i < props.length)\n finalValues.push(resolveProp(props[propIndex++], item, index));\n }\n return wireFunction(\n getWireKey(item, index, array),\n JSON.stringify(finalParts)\n )(buildTemplateStrings(finalParts), ...finalValues);\n }\n\n const { parts, props } = parsePropertyReferences(content);\n if (props.length === 0)\n return wireFunction(\n getWireKey(item, index, array),\n JSON.stringify([content])\n )(buildTemplateStrings([content]));\n const values = props.map((prop) => resolveProp(prop, item, index));\n return wireFunction(getWireKey(item, index, array), JSON.stringify(parts))(\n buildTemplateStrings(parts),\n ...values\n );\n }\n\n function findFirstBlock(str) {\n const blocks = [\n { type: 'each', pattern: '{+each ' },\n { type: 'if', pattern: '{+if ' },\n { type: 'unless', pattern: '{+unless ' },\n ];\n let first = null;\n for (const block of blocks) {\n const pos = str.indexOf(block.pattern);\n if (pos !== -1 && (first === null || pos < first.pos))\n first = { type: block.type, pos, pattern: block.pattern };\n }\n return first;\n }\n\n function transformEachBlocks(strings, values, wireFunction) {\n const resultStrings = [],\n resultValues = [];\n let i = 0;\n while (i < strings.length) {\n const str = strings[i],\n firstBlock = findFirstBlock(str);\n if (!firstBlock) {\n resultStrings.push(str);\n if (i < values.length) resultValues.push(values[i]);\n i++;\n continue;\n }\n const { type, pos: blockStartPos, pattern } = firstBlock;\n const closeTag = `{-${type}}`;\n resultStrings.push(str.substring(0, blockStartPos));\n const blockValue = values[i],\n nextStr = strings[i + 1];\n if (!nextStr || !nextStr.startsWith('}'))\n throw new Error(`{+${type}} syntax error: expected \"}\" after value`);\n const afterClose = nextStr.substring(1);\n const { endIdx, endPos } = findMatchingClose(\n strings,\n i + 1,\n 1,\n pattern.slice(0, -1),\n closeTag\n );\n let innerContent,\n elseContent = '';\n if (endIdx === i + 1) innerContent = afterClose.substring(0, endPos - 1);\n else {\n innerContent = afterClose;\n for (let j = i + 2; j <= endIdx; j++) {\n innerContent +=\n String(values[j - 1] ?? '') +\n (j < endIdx ? strings[j] : strings[j].substring(0, endPos));\n }\n }\n if (type === 'if' || type === 'unless') {\n const elsePos = innerContent.indexOf('{else}');\n if (elsePos !== -1) {\n elseContent = innerContent.substring(elsePos + 6);\n innerContent = innerContent.substring(0, elsePos);\n }\n }\n let blockResult;\n \n const trimLeading = (s) => s.replace(/^\\s+/, '');\n if (type === 'each') {\n if (!Array.isArray(blockValue) && blockValue != null)\n throw new Error(`{+each} expects an array, got ${typeof blockValue}`);\n blockResult = (blockValue || []).map((item, idx) =>\n processInnerContent(\n trimLeading(innerContent),\n item,\n idx,\n blockValue || [],\n wireFunction\n )\n );\n } else if (type === 'if')\n blockResult = blockValue\n ? { html: trimLeading(innerContent) }\n : { html: trimLeading(elseContent) };\n else if (type === 'unless')\n blockResult = blockValue\n ? { html: trimLeading(elseContent) }\n : { html: trimLeading(innerContent) };\n resultValues.push(blockResult);\n const afterBlock = strings[endIdx].substring(endPos + closeTag.length);\n i = endIdx;\n if (findFirstBlock(afterBlock)) {\n strings = [\n ...strings.slice(0, endIdx),\n afterBlock,\n ...strings.slice(endIdx + 1),\n ];\n values = [...values.slice(0, endIdx), ...values.slice(endIdx)];\n } else {\n resultStrings.push(afterBlock);\n if (endIdx < values.length) resultValues.push(values[endIdx]);\n i = endIdx + 1;\n }\n }\n while (resultStrings.length <= resultValues.length) resultStrings.push('');\n return { strings: buildTemplateStrings(resultStrings), values: resultValues };\n }\n\n // html/createHtml.js\n function createHtml(shadow) {\n const boundRender = bind(shadow);\n\n function Html(...args) {\n\n if (hasEachBlocks(args[0])) {\n const transformed = transformEachBlocks(\n args[0],\n args.slice(1),\n Html.wire\n );\n args = [transformed.strings, ...transformed.values];\n }\n\n const hasNonString = args\n .slice(1)\n .some((item) => item != null && typeof item !== 'string');\n const hasCustomTag = args[0].some((t) => isCustomTag.test(t));\n\n if (hasNonString && hasCustomTag) {\n let inCustomTag = false;\n let localName = '';\n args[0].forEach((item, index, _items) => {\n if (isCustomTag.test(item)) {\n inCustomTag =\n -1 === item.substring(item.match(isCustomTag).index).indexOf('>');\n localName =\n inCustomTag &&\n item\n .substring(item.indexOf(item.match(isCustomTag)))\n .split(/\\s/)[0]\n .substr(1);\n } else if (0 <= item.indexOf('>')) {\n inCustomTag = false;\n localName = '';\n }\n\n if (!inCustomTag) {\n return;\n }\n const val = args[index + 1];\n\n if (val != null && typeof val !== 'string') {\n const attrName = item.split(/\\s/).pop().slice(0, -1);\n if ('on' === attrName.substring(0, 2)) {\n throw new Error(\n `'on' is reserve for native elements. Change: \"${attrName}\" for \"${localName}\" to something else`\n );\n }\n\n if ('style' === attrName) {\n return;\n }\n const id = makeid();\n sharedAttrs[id] = { attrName, val, localName };\n args[index + 1] = ('function' === typeof val ? 'fn-' : 'ob-') + id;\n }\n });\n }\n\n const processedArgs = [args[0]];\n for (let i = 1; i < args.length; i++) {\n let val = args[i];\n\n if (\n val &&\n typeof val === 'object' &&\n !Array.isArray(val) &&\n !isSafeHtml(val)\n ) {\n const keys = Object.keys(val);\n if (keys.length === 1 && /^[A-Z]/.test(keys[0])) {\n const fragmentName = keys[0];\n const fragmentData = val[fragmentName];\n\n if (Html._fragments && Html._fragments[fragmentName]) {\n val = Html._fragments[fragmentName](fragmentData);\n }\n }\n }\n\n if (isSafeHtml(val)) {\n\n processedArgs.push({ __unsafe: true, value: val.value });\n } else if (val && typeof val === 'object' && val.__unsafe) {\n\n processedArgs.push(val);\n } else if (val && typeof val === 'object' && val.html !== undefined) {\n\n processedArgs.push({ __unsafe: true, value: val.html });\n } else if (Array.isArray(val)) {\n\n processedArgs.push(\n val.map((item) => {\n if (isSafeHtml(item)) {\n return { __unsafe: true, value: item.value };\n }\n return item;\n })\n );\n } else {\n\n processedArgs.push(val);\n }\n }\n\n return boundRender(...processedArgs);\n }\n\n Html._fragments = null;\n\n Html.wire = function wireTemplate(obj, id = '') {\n return wire(obj, id);\n };\n\n Html.raw = function raw(htmlStr) {\n return safeHtml(htmlStr);\n };\n\n Html.lite = function lite(elementOrStrings, ...values) {\n\n if (elementOrStrings && elementOrStrings.raw) {\n\n return html(elementOrStrings, ...values);\n }\n\n return bind(elementOrStrings);\n };\n\n return Html;\n }\n\n // lifecycle/onNext.js\n function onNext(that, store) {\n const storeFn = 'function' == typeof store ? store : () => store;\n\n const baseRender = this._baseRender || this.render;\n this._baseRender = baseRender;\n\n const render2 = (...data) => {\n if (undefined === store) {\n that.store = undefined;\n baseRender(...data);\n } else {\n that.store = storeFn();\n baseRender(that.store, ...data);\n }\n };\n this.render = render2;\n\n if (this._onNextInitialized) {\n render2();\n } else {\n this._onNextInitialized = true;\n }\n\n return render2;\n }\n\n // lifecycle/observer.js\n function observer(ref) {\n const that = ref.this;\n const mutationObserver = new MutationObserver((mutations) => {\n if (!ref.observe) return;\n\n const attrMutations = mutations.filter((m) => m.type === 'attributes');\n if (attrMutations.length > 0) {\n\n that.attrs = this.attachAttrs(this.attributes) || {};\n this.render();\n return;\n }\n\n let textContent = this.textContent;\n\n ref.innerHTML = this.innerHTML;\n if (that.attrs.template) {\n that.attrs = this.attachAttrs(this.attributes) || {};\n }\n\n hyperHTML.bind(ref.shadow)``;\n\n that.wrappedContent = textContent;\n this.render();\n });\n\n mutationObserver.observe(this, {\n\n attributes: true,\n\n childList: true,\n\n subtree: true,\n });\n }\n\n // lifecycle/connectedCallback.js\n function processFragmentResult(result, data, templatestrings, onResolve) {\n\n if (result.text !== undefined) {\n if (typeof result.text === 'string') {\n return result.text;\n }\n\n if (result.text && typeof result.text.then === 'function') {\n result.text.then((resolved) => {\n result.text = resolved;\n if (onResolve) onResolve();\n });\n return result.placeholder !== undefined ? result.placeholder : '';\n }\n }\n\n if (result.html !== undefined) {\n if (typeof result.html === 'string') {\n return { __unsafe: true, value: result.html };\n }\n\n if (result.html && typeof result.html.then === 'function') {\n result.html.then((resolved) => {\n result.html = resolved;\n if (onResolve) onResolve();\n });\n return result.placeholder !== undefined ? result.placeholder : '';\n }\n }\n\n if (result.template) {\n if ('string' === typeof result.template) {\n if (!templatestrings[result.template]) {\n templatestrings[result.template] = buildTemplate(result.template);\n }\n const values = result.values || data;\n\n if (Array.isArray(values)) {\n const mapped = values.map(templatestrings[result.template]);\n\n const combined = mapped\n .map((item) => {\n if (item && item.html) {\n return item.html;\n }\n if (item instanceof Hole) {\n\n const node = dom(item);\n\n if (node.nodeType === 11) {\n\n const div = document.createElement('div');\n div.appendChild(node.cloneNode(true));\n return div.innerHTML;\n }\n return node.outerHTML || node.textContent;\n }\n return String(item);\n })\n .join('');\n return { __unsafe: true, value: combined };\n }\n const templateResult = templatestrings[result.template](values);\n\n if (templateResult && templateResult.html) {\n return { __unsafe: true, value: templateResult.html };\n }\n\n if (templateResult instanceof Hole) {\n const node = dom(templateResult);\n if (node.nodeType === 11) {\n const div = document.createElement('div');\n div.appendChild(node.cloneNode(true));\n return { __unsafe: true, value: div.innerHTML };\n }\n return { __unsafe: true, value: node.outerHTML || node.textContent };\n }\n return templateResult;\n } else if (\n 'object' === typeof result.template &&\n 'function' === typeof result.template.then\n ) {\n\n result.template.then((args) => {\n let { template, values } = args;\n if (!template && 'string' === typeof args) {\n template = args;\n values = {};\n }\n\n result.template = template;\n result.values = values;\n if (onResolve) onResolve();\n });\n return result.placeholder !== undefined ? result.placeholder : '';\n } else {\n throw new Error(\n 'unknow template type:' +\n typeof result.template +\n ' | ' +\n JSON.stringify(result.template)\n );\n }\n }\n\n if (result.any !== undefined) {\n\n if (result.any && typeof result.any.then === 'function') {\n result.any.then((resolved) => {\n result.any = resolved;\n if (onResolve) onResolve();\n });\n return result.placeholder !== undefined ? result.placeholder : '';\n }\n return result.any;\n }\n\n return result;\n }\n\n function createdCallback() {\n\n this.identifier = Symbol(this.localName);\n const ref = (manager[this.identifier] = { attrsToIgnore: {} });\n ref.innerHTML = this.innerHTML;\n const that = (ref.this = { element: this });\n that.wrappedContent = this.textContent;\n\n const fragmentCache = {};\n\n observer.call(this, ref); // observer change to innerHTML\n\n Object.getOwnPropertyNames(this.__proto__)\n .filter(\n (name) =>\n !('constructor' === name || 'setup' === name || 'render' === name)\n )\n .forEach((name) => {\n if (/^[A-Z]/.test(name)) {\n const templatestrings = {};\n \n fragmentCache[name] = (data) => {\n\n if (fragmentCache[name]._cached !== undefined) {\n return fragmentCache[name]._cached;\n }\n\n let result;\n if (fragmentCache[name]._asyncResult) {\n result = fragmentCache[name]._asyncResult;\n } else {\n result = this[name](data);\n }\n\n const hasAsync =\n (result.text && typeof result.text.then === 'function') ||\n (result.html && typeof result.html.then === 'function') ||\n (result.any && typeof result.any.then === 'function') ||\n (result.template && typeof result.template.then === 'function');\n\n if (hasAsync) {\n fragmentCache[name]._asyncResult = result;\n }\n\n const onResolve = () => {\n\n this.render();\n };\n\n const processed = processFragmentResult(\n result,\n data,\n templatestrings,\n onResolve\n );\n\n if (result.once && !hasAsync) {\n fragmentCache[name]._cached = processed;\n }\n\n if (!hasAsync && fragmentCache[name]._asyncResult) {\n delete fragmentCache[name]._asyncResult;\n }\n\n return processed;\n };\n } else {\n that[name] = this[name].bind(that);\n }\n delete this[name];\n });\n\n ref.fragments = fragmentCache;\n\n function toString() {\n return 'hyper-element: ' + this.localName;\n }\n Object.defineProperty(that, 'toString', {\n value: toString.bind(this),\n writable: false,\n });\n\n ref.shadow = this;\n\n ref.Html = createHtml(ref.shadow);\n\n ref.Html._fragments = fragmentCache;\n\n that.attrs = this.attachAttrs(this.attributes);\n that.dataset = this.getDataset();\n const render = this.render;\n this.render = (...data) => {\n ref.observe = false;\n setTimeout(() => {\n ref.observe = true;\n }, 0);\n\n render.call(that, ref.Html, ...data);\n\n Object.getOwnPropertyNames(that.dataset)\n .filter((key) => !this.dataset[key])\n .forEach((key) => {\n const value = that.dataset[key];\n addDataset.call(\n this,\n that.dataset,\n key.replace(/([A-Z])/g, (g) => `-${g[0].toLowerCase()}`)\n );\n that.dataset[key] = value;\n });\n };\n\n if (this.setup) {\n ref.teardown = this.setup.call(that, onNext.bind(this, that));\n }\n\n this.render();\n }\n\n // hyperElement.js\n class hyperElement extends HTMLElement {\n \n identifier;\n\n get innerShadow() {\n return manager[this.identifier].shadow.innerHTML;\n }\n\n connectedCallback() {\n createdCallback.call(this);\n }\n\n addDataset(dataset, dash_key) {\n addDataset.call(this, dataset, dash_key);\n }\n\n getDataset() {\n return getDataset.call(this);\n }\n\n attachAttrs(attributes) {\n return attachAttrs.call(this, attributes);\n }\n\n attributeChangedCallback(name, oldVal, newVal) {\n\n const ref = manager[this.identifier];\n if (!ref) return;\n\n if (newVal !== null && +newVal + '' === newVal.trim()) {\n newVal = +newVal; // to number\n }\n const { attrsToIgnore } = ref;\n const that = ref.this;\n if (0 <= name.indexOf('data-')) {\n\n const dataSetName = name.slice('data-'.length);\n if (null === oldVal) {\n this.addDataset(that.dataset, dataSetName);\n } else if (null === newVal) {\n const camel_key = dataSetName.replace(/-([a-z])/g, (g) =>\n g[1].toUpperCase()\n );\n delete that.dataset[camel_key];\n }\n }\n\n if (newVal === that.attrs[name]) {\n return;\n }\n if (null === newVal) {\n delete that.attrs[name];\n } else {\n that.attrs[name] = newVal;\n }\n if (attrsToIgnore[name]) {\n delete attrsToIgnore[name];\n return;\n } else {\n this.render();\n }\n }\n\n disconnectedCallback() {\n const ref = manager[this.identifier];\n ref.teardown && ref.teardown();\n }\n\n setup(onNext) {} // eslint-disable-line no-unused-vars\n\n render(Html, ...data) {} // eslint-disable-line no-unused-vars\n }\n\n // functional.js\n function createFunctionalElement(tagOrDef, definition) {\n\n let tagName = null;\n if (typeof tagOrDef === 'string') {\n tagName = tagOrDef;\n } else {\n definition = tagOrDef;\n }\n\n if (typeof definition === 'function') {\n definition = { render: definition };\n }\n\n if (!definition || typeof definition !== 'object') {\n throw new Error(\n 'hyperElement: definition must be an object or render function'\n );\n }\n\n const {\n observedAttributes: observed = [],\n setup: setupFn,\n render: renderFn,\n ...methods\n } = definition;\n\n if (!renderFn || typeof renderFn !== 'function') {\n throw new Error('hyperElement: render function is required');\n }\n\n class FunctionalElement extends hyperElement {\n static get observedAttributes() {\n return observed;\n }\n }\n\n if (setupFn) {\n FunctionalElement.prototype.setup = function (onNext) {\n return setupFn(this, onNext);\n };\n }\n\n FunctionalElement.prototype.render = function (Html, ...data) {\n return renderFn(Html, this, ...data);\n };\n\n for (const [name, fn] of Object.entries(methods)) {\n if (typeof fn !== 'function') {\n continue; // Skip non-function properties\n }\n FunctionalElement.prototype[name] = function (...args) {\n return fn(this, ...args);\n };\n }\n\n if (tagName) {\n customElements.define(tagName, FunctionalElement);\n }\n\n return FunctionalElement;\n }\n\n console.info('hyper-element v1.1.0 by Brian Shannon (github.com/codemeasandwich)');\n\n // Wrap hyperElement in Proxy for dual-purpose (class and function) API\n const hyperElementProxy = new Proxy(hyperElement, {\n apply(target, thisArg, args) {\n if (args.length === 0) {\n throw new Error('hyperElement requires a definition object or render function');\n }\n return createFunctionalElement(...args);\n },\n construct(target, args, newTarget) {\n if (newTarget !== hyperElementProxy) {\n return Reflect.construct(target, args, newTarget);\n }\n throw new Error('hyperElement cannot be instantiated directly. Use class extension or functional API.');\n }\n });\n\n window.hyperElement = hyperElementProxy;\n})();\n"],
5
+ "mappings": "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",
6
+ "names": ["isCustomTag", "manager", "sharedAttrs", "makeid", "text", "possible", "i", "escapeHtml", "str", "SAFE_HTML", "safeHtml", "html", "isSafeHtml", "val", "ARRAY", "ATTRIBUTE", "COMMENT", "DATA", "DIRECT", "EVENT", "KEY", "PROP", "TEXT", "TOGGLE", "UNSAFE", "ELEMENT", "ATTRIBUTE_TYPE", "TEXT_TYPE", "COMMENT_TYPE", "FRAGMENT", "COMMENT_ARRAY", "EVENT_ARRAY", "TEXT_ELEMENTS", "VOID_ELEMENTS", "children", "props", "_creatorTpl", "_creatorRange", "createFragment", "content", "xml", "fragment", "resolve", "root", "path", "node", "diff", "a", "b", "get", "before", "parentNode", "bLength", "aEnd", "bEnd", "aStart", "bStart", "map", "index", "sequence", "checkType", "range", "nodes", "drop", "firstChild", "lastChild", "r", "diffFragment", "operation", "replaceWith", "remove", "valueOf", "PersistentFragment", "keyedHoles", "Keyed", "key", "hole", "Node", "type", "Comment", "data", "Text", "Element", "name", "p", "c", "length", "value", "Fragment", "NUL", "DOUBLE_QUOTED_NUL", "SINGLE_QUOTED_NUL", "NEXT", "ATTRS", "append", "child", "prop", "insideout", "parent", "ignore", "defaultUpdate", "_node", "nodePath", "createParser", "update", "template", "holes", "values", "pos", "skip", "resolvedPath", "match", "chunk", "comment", "j", "tag", "dot", "attrName", "closed", "endIndex", "ref", "k", "isKeyed", "wasKeyed", "textCache", "getText", "directRefs", "directFor", "fn", "direct", "attribute", "toggle", "dataset", "styleHandler", "event", "at", "array", "prev", "toNodes", "arr", "item", "commentArray", "nodeValue", "replaceComment", "current", "commentHoleFactory", "commentUnsafe", "hint", "n", "v", "dom", "holed", "changes", "h", "l", "getKeyedHole", "getHole", "Hole", "updates", "keys", "commit", "childNodes", "size", "entry", "change", "_parseTemplate", "rendered", "wireCache", "create", "cache", "parsed", "svg", "bind", "element", "known", "d", "wire", "obj", "id", "currentEffect", "effectStack", "signal", "initialValue", "subscribers", "newValue", "computed", "dirty", "recompute", "sub", "prevEffect", "effect", "cleanup", "run", "untracked", "batchDepth", "batchedEffects", "batch", "effects", "parseAttribute", "lowerCaseValue", "formatValue", "processAdvancedTemplate", "result", "eachRegex", "arrayName", "itemContent", "ifElseRegex", "condition", "ifContent", "elseContent", "ifRegex", "unlessRegex", "buildTemplate", "innerHTML", "re", "templateVals", "vals", "output", "addDataset", "dash_key", "camel_key", "g", "getDataset", "attachAttrs", "attributes", "accumulator", "hasEachBlocks", "strings", "s", "resolvePropertyPath", "o", "parsePropertyReferences", "regex", "parts", "lastIndex", "findMatchingClose", "startIdx", "startPos", "openTag", "closeTag", "depth", "searchStart", "openPos", "closePos", "buildTemplateStrings", "primitiveWrappers", "getWireKey", "resolveProp", "processInnerContent", "wireFunction", "nestedRegex", "hasNested", "nestedMatches", "processedContent", "fullMatch", "propPath", "innerContent", "nestedArray", "nestedResults", "nestedItem", "nestedIndex", "finalParts", "finalValues", "propIndex", "part", "placeholderMatch", "after", "findFirstBlock", "blocks", "first", "block", "transformEachBlocks", "resultStrings", "resultValues", "firstBlock", "blockStartPos", "pattern", "blockValue", "nextStr", "afterClose", "endIdx", "endPos", "elsePos", "blockResult", "trimLeading", "idx", "afterBlock", "createHtml", "shadow", "boundRender", "Html", "args", "transformed", "hasNonString", "hasCustomTag", "t", "inCustomTag", "localName", "_items", "processedArgs", "fragmentName", "fragmentData", "htmlStr", "elementOrStrings", "onNext", "that", "store", "storeFn", "baseRender", "render2", "observer", "mutations", "m", "textContent", "processFragmentResult", "templatestrings", "onResolve", "resolved", "div", "templateResult", "createdCallback", "fragmentCache", "hasAsync", "processed", "toString", "render", "hyperElement", "oldVal", "newVal", "attrsToIgnore", "dataSetName", "createFunctionalElement", "tagOrDef", "definition", "tagName", "observed", "setupFn", "renderFn", "methods", "FunctionalElement", "hyperElementProxy", "target", "thisArg", "newTarget"]
7
7
  }
package/index.d.ts CHANGED
@@ -107,18 +107,115 @@ export type OnNextCallback = (
107
107
  store: any | (() => any)
108
108
  ) => (...data: any[]) => void;
109
109
 
110
+ /**
111
+ * Render function for functional components.
112
+ * Receives Html template function, context, and optional store data.
113
+ */
114
+ export type RenderFunction = (
115
+ Html: HtmlFunction,
116
+ ctx: ElementContext,
117
+ ...data: any[]
118
+ ) => void;
119
+
120
+ /**
121
+ * Setup function for functional components.
122
+ * Receives context and onNext callback.
123
+ * @returns Optional teardown function.
124
+ */
125
+ export type SetupFunction = (
126
+ ctx: ElementContext,
127
+ onNext: OnNextCallback
128
+ ) => void | (() => void);
129
+
130
+ /**
131
+ * Method function for functional components.
132
+ * Context is passed as first argument.
133
+ */
134
+ export type MethodFunction = (ctx: ElementContext, ...args: any[]) => any;
135
+
136
+ /**
137
+ * Functional component definition object.
138
+ */
139
+ export interface FunctionalDefinition {
140
+ /** Attributes to observe for changes */
141
+ observedAttributes?: string[];
142
+ /** Setup lifecycle function */
143
+ setup?: SetupFunction;
144
+ /** Render function (required) */
145
+ render: RenderFunction;
146
+ /** Additional methods */
147
+ [key: string]:
148
+ | string[]
149
+ | SetupFunction
150
+ | RenderFunction
151
+ | MethodFunction
152
+ | undefined;
153
+ }
154
+
155
+ /**
156
+ * Interface for the hyperElement function/class.
157
+ * Can be used as a class base or called as a factory function.
158
+ */
159
+ export interface HyperElementFactory {
160
+ /**
161
+ * Create and register a custom element with a definition object.
162
+ * @param tagName - Custom element tag name (must contain a hyphen)
163
+ * @param definition - Component definition object
164
+ * @returns The generated class
165
+ */
166
+ (tagName: string, definition: FunctionalDefinition): typeof hyperElement;
167
+
168
+ /**
169
+ * Create and register a custom element with a render function.
170
+ * @param tagName - Custom element tag name (must contain a hyphen)
171
+ * @param render - Render function
172
+ * @returns The generated class
173
+ */
174
+ (tagName: string, render: RenderFunction): typeof hyperElement;
175
+
176
+ /**
177
+ * Create a custom element class without registering.
178
+ * @param definition - Component definition object
179
+ * @returns The generated class (call customElements.define to register)
180
+ */
181
+ (definition: FunctionalDefinition): typeof hyperElement;
182
+
183
+ /**
184
+ * Create a custom element class without registering.
185
+ * @param render - Render function
186
+ * @returns The generated class (call customElements.define to register)
187
+ */
188
+ (render: RenderFunction): typeof hyperElement;
189
+
190
+ /** Prototype for class inheritance */
191
+ prototype: hyperElement;
192
+ }
193
+
110
194
  /**
111
195
  * Base class for creating custom elements with hyperHTML templating.
112
196
  * Extend this class and implement the render() method to create a custom element.
113
197
  *
198
+ * Can also be called as a factory function:
199
+ * - `hyperElement('tag-name', { render: ... })` - with auto-registration
200
+ * - `hyperElement({ render: ... })` - returns class for manual registration
201
+ *
114
202
  * @example
115
203
  * ```javascript
204
+ * // Class-based usage
116
205
  * class MyElement extends hyperElement {
117
206
  * render(Html) {
118
207
  * Html`<div>Hello ${this.attrs.name}!</div>`;
119
208
  * }
120
209
  * }
121
210
  * customElements.define('my-element', MyElement);
211
+ *
212
+ * // Functional usage with auto-registration
213
+ * hyperElement('my-element', {
214
+ * render: (Html, ctx) => Html`<div>Hello ${ctx.attrs.name}!</div>`
215
+ * });
216
+ *
217
+ * // Functional shorthand
218
+ * hyperElement('simple-elem', (Html, ctx) => Html`<div>Simple</div>`);
122
219
  * ```
123
220
  */
124
221
  export class hyperElement extends HTMLElement {
@@ -178,11 +275,22 @@ export class hyperElement extends HTMLElement {
178
275
  render(Html: HtmlFunction, ...data: any[]): void;
179
276
  }
180
277
 
278
+ /**
279
+ * The exported hyperElement is typed as an intersection:
280
+ * - HyperElementFactory: callable function signatures
281
+ * - typeof HyperElementBase: class for extension
282
+ */
283
+ type HyperElementType = HyperElementFactory &
284
+ (new () => hyperElement) & { prototype: hyperElement };
285
+
286
+ declare const hyperElement: HyperElementType;
287
+
181
288
  declare global {
182
289
  interface Window {
183
- hyperElement: typeof hyperElement;
290
+ hyperElement: HyperElementType;
184
291
  hyperHTML: any;
185
292
  }
186
293
  }
187
294
 
295
+ export { hyperElement };
188
296
  export default hyperElement;
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
- "version": "1.0.3",
2
+ "version": "1.1.0",
3
3
  "name": "hyper-element",
4
4
  "author": "Brian Shannon (github.com/codemeasandwich)",
5
- "description": "hyperHTML + WebComponents",
5
+ "description": "Fast, lightweight web components",
6
6
  "main": "build/hyperElement.js",
7
7
  "types": "index.d.ts",
8
8
  "files": [
@@ -17,7 +17,7 @@
17
17
  "test:minified": "TEST_BUNDLE=min playwright test",
18
18
  "test:ui": "npm run build && playwright test --ui; rm -rf build",
19
19
  "test:headed": "npm run build && playwright test --headed; rm -rf build",
20
- "kitchensink": "npx serve .",
20
+ "kitchensink": "npm run build && cp -r build kitchensink/ && (sleep 1 && open http://localhost:3000) & npx serve ./kitchensink",
21
21
  "release": "bash scripts/publish.sh",
22
22
  "hooks:install": "cp .hooks/pre-commit .git/hooks/ && cp .hooks/commit-msg .git/hooks/ && cp -r .hooks/pre-commit.d .git/hooks/ && chmod +x .git/hooks/pre-commit .git/hooks/commit-msg .git/hooks/pre-commit.d/*.sh",
23
23
  "prepare": "npm run hooks:install",
@@ -34,9 +34,10 @@
34
34
  "url": "https://github.com/codemeasandwich/hyper-element/issues"
35
35
  },
36
36
  "keywords": [
37
- "hyperhtml",
38
37
  "web-components",
39
- "webcomponents"
38
+ "webcomponents",
39
+ "signals",
40
+ "reactive"
40
41
  ],
41
42
  "devDependencies": {
42
43
  "@commitlint/cli": "^18.6.1",
@@ -49,7 +50,6 @@
49
50
  "eslint-config-prettier": "^9.1.2",
50
51
  "eslint-plugin-prettier": "^5.5.5",
51
52
  "husky": "^9.1.7",
52
- "hyperhtml": "^2.34.2",
53
53
  "lint-staged": "^15.5.2",
54
54
  "lodash": "^4.17.21",
55
55
  "minimist": "^1.2.8",