@webqit/oohtml 2.1.58 → 2.1.59

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.
@@ -3,7 +3,6 @@
3
3
  * @imports
4
4
  */
5
5
  import Observer from '@webqit/observer';
6
- import { HTMLContext } from '../context-api/index.js';
7
6
  import _HTMLExportsManager from './_HTMLExportsManager.js';
8
7
  import _HTMLImportElement from './_HTMLImportElement.js';
9
8
  import _HTMLImportsProvider from './_HTMLImportsProvider.js';
@@ -24,16 +23,22 @@ export default function init( $config = {} ) {
24
23
  staticsensitivity: true,
25
24
  isomorphic: true,
26
25
  } );
26
+ config.CONTEXT_API = window.webqit.oohtml.configs.CONTEXT_API;
27
27
  config.templateSelector = `template[${ window.CSS.escape( config.template.attr.moduledef ) }]`;
28
28
  config.ownerContextSelector = [ config.context.attr.contextname, config.context.attr.importscontext ].map( a => `[${ window.CSS.escape( a ) }]` ).join( ',' );
29
29
  config.slottedElementsSelector = `[${ window.CSS.escape( config.template.attr.fragmentdef ) }]`;
30
+ const anchorNodeMatch = ( start, end ) => {
31
+ const starting = `starts-with(., "${ start }")`;
32
+ const ending = `substring(., string-length(.) - string-length("${ end }") + 1) = "${ end }"`;
33
+ return `${ starting } and ${ ending }`;
34
+ }
35
+ config.anchorNodeSelector = `comment()[${ anchorNodeMatch( `<${ config.import.tagName }`, `</${ config.import.tagName }>` ) }]`;
30
36
  window.webqit.HTMLImportElement = _HTMLImportElement.call( window, config );
31
37
  window.webqit.HTMLImportsProvider = class extends _HTMLImportsProvider {
32
38
  static get config() { return config; }
33
39
  };
34
40
  window.webqit.Observer = Observer;
35
41
  exposeAPIs.call( window, config );
36
- realdom.ready( () => hydration.call( window, config ) );
37
42
  realtime.call( window, config );
38
43
  }
39
44
 
@@ -88,7 +93,7 @@ function exposeAPIs( config ) {
88
93
  live = false;
89
94
  }
90
95
  const request = _HTMLImportsProvider.createRequest( { detail: ref, live } );
91
- return HTMLContext.instance( context ).request( request, callback );
96
+ return context[ config.CONTEXT_API.api.context ].request( request, callback );
92
97
  }
93
98
  }
94
99
 
@@ -155,46 +160,22 @@ function realtime( config ) {
155
160
  if ( connectedState ) { elInstance[ '#' ].connectedCallback(); }
156
161
  else { elInstance[ '#' ].disconnectedCallback(); }
157
162
  }
158
- }
159
-
160
- /**
161
- * Performs hydration for server-slotted elements.
162
- *
163
- * @param Object config
164
- *
165
- * @return Void
166
- */
167
- function hydration( config ) {
168
- const window = this, { HTMLImportElement } = window.webqit;
169
- function scan( context ) {
170
- const slottedElements = new Set;
171
- context.childNodes.forEach( node => {
172
- if ( node.nodeType === 1/** ELEMENT_NODE */ ) {
173
- if ( !node.matches( config.slottedElementsSelector ) ) return;
174
- if ( _( node ).get( 'slot@imports' ) ) return;
175
- slottedElements.add( node );
176
- } else if ( node.nodeType === 8/** COMMENT_NODE */ ) {
177
- const nodeValue = node.nodeValue.trim();
178
- if ( !nodeValue.startsWith( '<' + config.import.tagName ) ) return;
179
- if ( !nodeValue.endsWith( '</' + config.import.tagName + '>' ) ) return;
180
- const reviver = window.document.createElement( 'div' );
181
- reviver.innerHTML = nodeValue;
182
- const importEl = reviver.firstChild;
183
- if ( !importEl.matches( config.import.tagName ) ) return;
184
- HTMLImportElement.instance( importEl )[ '#' ].hydrate(
185
- node/* the comment node */, slottedElements
186
- );
187
- slottedElements.clear();
163
+ // Hydration
164
+ if ( window.webqit.env === 'server' ) return;
165
+ realdom.realtime( window.document ).subtree( `(${ config.anchorNodeSelector })`, record => {
166
+ record.entrants.forEach( anchorNode => {
167
+ if ( _( anchorNode ).get( 'isAnchorNode' ) ) return; // Doubling up on the early return above! Ignoring every just created anchorNode
168
+ const reviver = window.document.createElement( 'div' );
169
+ reviver.innerHTML = anchorNode.nodeValue;
170
+ reviver.innerHTML = reviver.firstChild.textContent;
171
+ const importEl = reviver.firstChild;
172
+ let nodecount = parseInt( importEl.getAttribute( 'data-nodecount' ) );
173
+ const slottedElements = new Set;
174
+ let slottedElement = anchorNode;
175
+ while ( ( slottedElement = slottedElement.previousElementSibling ) && slottedElement.matches( config.slottedElementsSelector ) && nodecount -- ) {
176
+ slottedElements.add( slottedElement );
188
177
  }
178
+ HTMLImportElement.instance( importEl )[ '#' ].hydrate( anchorNode, slottedElements );
189
179
  } );
190
- }
191
- Array.from( window.document.querySelectorAll( config.slottedElementsSelector ) ).forEach( slottedElement => {
192
- // hydration() might be running AFTER certain <slots> have resolved
193
- // and slottedElement might be a just-resolved node
194
- if ( _( slottedElement ).get( 'slot@imports' ) ) return;
195
- if ( _( slottedElement.parentNode ).get( 'alreadyscanned@imports' ) ) return;
196
- scan( slottedElement.parentNode );
197
- // Scanning is once for every parent
198
- _( slottedElement.parentNode ).set( 'alreadyscanned@imports', true );
199
- } );
200
- }
180
+ }, { live: true } );
181
+ }
package/src/index.js CHANGED
@@ -5,9 +5,9 @@
5
5
  import Observer from '@webqit/observer';
6
6
  import ContextAPI from './context-api/index.js';
7
7
  import BindingsAPI from './bindings-api/index.js';
8
+ import HTMLImports from './html-imports/index.js';
8
9
  import HTMLBindings from './html-bindings/index.js';
9
10
  import HTMLNamespaces from './html-namespaces/index.js';
10
- import HTMLImports from './html-imports/index.js';
11
11
  import ScopedCSS from './scoped-css/index.js';
12
12
  import ScopedJS from './scoped-js/index.js';
13
13
 
@@ -2,11 +2,11 @@
2
2
  /**
3
3
  * @imports
4
4
  */
5
+ import Observer from '@webqit/observer';
5
6
  import { resolveParams } from '@webqit/stateful-js/params';
6
7
  import { StatefulAsyncFunction, StatefulAsyncScript, StatefulModule, State } from '@webqit/stateful-js/async';
7
- import Observer from '@webqit/observer';
8
- import Hash from './Hash.js';
9
8
  import { _init } from '../util.js';
9
+ import Hash from './Hash.js';
10
10
 
11
11
  export {
12
12
  StatefulAsyncFunction,
@@ -1,2 +0,0 @@
1
- (()=>{var ot=Object.defineProperty;var Ct=(i,e,r)=>e in i?ot(i,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):i[e]=r;var st=(i,e)=>{for(var r in e)ot(i,r,{get:e[r],enumerable:!0})};var T=(i,e,r)=>(Ct(i,typeof e!="symbol"?e+"":e,r),r);function _(i){return!Array.isArray(i)&&typeof i=="object"&&i}function te(i){return typeof i}function x(i){return Array.isArray(i)}function Ne(i,e,r=null){return x(e)?i.filter(t=>r?e.filter(n=>r(t,n)).length:e.indexOf(t)!==-1):[]}function W(i,...e){if(globalThis.webqit||(globalThis.webqit={}),globalThis.webqit.refs||Object.defineProperty(globalThis.webqit,"refs",{value:new se}),!arguments.length)return globalThis.webqit.refs;let r=globalThis.webqit.refs.get(i);r||(r=new se,globalThis.webqit.refs.set(i,r));let t,n;for(;t=e.shift();)(n=r)&&!(r=r.get(t))&&(r=new se,n.set(t,r));return r}var se=class extends Map{constructor(...e){super(...e),this.observers=new Set}set(e,r){let t=super.set(e,r);return this.fire("set",e,r,e),t}delete(e){let r=super.delete(e);return this.fire("delete",e),r}has(e){return this.fire("has",e),super.has(e)}get(e){return this.fire("get",e),super.get(e)}keyNames(){return Array.from(super.keys())}observe(e,r,t){let n={type:e,key:r,callback:t};return this.observers.add(n),()=>this.observers.delete(n)}unobserve(e,r,t){if(Array.isArray(e)||Array.isArray(r))throw new Error('The "type" and "key" arguments can only be strings.');for(let n of this.observers)!(Oe([e,"*"],n.type)&&Oe([r,"*"],n.key)&&n.callback===t)||this.observers.delete(n)}fire(e,r,...t){for(let n of this.observers)!(Oe([e,"*"],n.type)&&Oe([r,"*"],n.key))||n.callback(...t)}},Oe=(i,e)=>Array.isArray(e)?Ne(i,e).length:i.includes(e);function re(i){return typeof i=="function"}function ce(i){return i===null||i===""}function k(i){return arguments.length&&(i===void 0||typeof i>"u")}function O(i){return Array.isArray(i)||typeof i=="object"&&i||re(i)}function De(i){return ce(i)||k(i)||i===!1||i===0||O(i)&&!Object.keys(i).length}function v(i){return re(i)||i&&{}.toString.call(i)==="[object function]"}function le(i){return i instanceof Number||typeof i=="number"}function M(i){return le(i)||i!==!0&&i!==!1&&i!==null&&i!==""&&!isNaN(i*1)}function ne(i){return i instanceof String||typeof i=="string"&&i!==null}function Re(i){return!ne(i)&&!k(i.length)}function Ee(i,...e){return e.forEach(r=>{i.indexOf(r)<0&&i.push(r)}),i}function Ve(t,e){e=e||Object.prototype,e=e&&!x(e)?[e]:e;for(var r=[],t=t;t&&(!e||e.indexOf(t)<0)&&t.name!=="default";)r.push(t),t=t?Object.getPrototypeOf(t):null;return r}function Le(i,e){var r=[];return Ve(i,e).forEach(t=>{Ee(r,...Object.getOwnPropertyNames(t))}),r}function V(i,e,r=!1,t=!1,n=!1){var o=0,s=i.shift();if((M(s)||s===!0||s===!1)&&(o=s,s=i.shift()),!i.length)throw new Error("_merge() requires two or more array/objects.");return i.forEach((c,l)=>{!O(c)&&!v(c)||(r?Le(c):Object.keys(c)).forEach(u=>{if(!!e(u,s,c,l)){var f=s[u],m=c[u];if((x(f)&&x(m)||_(f)&&_(m))&&(o===!0||o>0))s[u]=x(f)&&x(m)?[]:{},V([M(o)?o-1:o,s[u],f,m],e,r,t,n);else if(x(s)&&x(c))t?s[u]=m:s.push(m);else try{n?Object.defineProperty(s,u,Object.getOwnPropertyDescriptor(c,u)):s[u]=c[u]}catch{}}})}),s}function ue(...i){return V(i,(e,r,t)=>!0,!1,!1,!1)}function S(i,e=!0){return x(i)?i:!e&&_(i)?[i]:i!==!1&&i!==0&&De(i)?[]:Re(i)?Array.prototype.slice.call(i):_(i)?Object.values(i):[i]}function fe(i,e,r={},t={}){e=S(e).slice();for(var n=i;!k(n)&&!ce(n)&&e.length;){var o=e.shift();if(!(r.get?r.get(n,o):O(n)?o in n:n[o])){t.exists=!1;return}n=r.get?r.get(n,o):n[o]}return t.exists=!0,n}function ke(i,e,r,t={},n={}){let o=(f,m,a)=>n.set?n.set(f,m,a):(M(e[c])&&x(f)?f.push(a):f[m]=a,!0);e=S(e);for(var s=i,c=0;c<e.length;c++)if(c<e.length-1){if(!s||!O(s)&&!v(s))return!1;var l=fe(s,e[c],n);if(!O(l)){if(n.buildTree===!1)return!1;l=v(n.buildTree)?n.buildTree(c):M(e[c+1])?[]:{};var u=o(s,e[c],l);if(!u)return!1}s=l}else return o(s,e[c],r)}var ae=class{constructor(e,r=!0){Object.defineProperty(this,"window",{value:e}),Object.defineProperty(this,"readCallbacks",{value:new Set}),Object.defineProperty(this,"writeCallbacks",{value:new Set}),this.async=r,this.window.requestAnimationFrame?this._run():this.async=!1}_run(){this.window.requestAnimationFrame(()=>{for(let e of this.readCallbacks)e(),this.readCallbacks.delete(e);for(let e of this.writeCallbacks)e(),this.writeCallbacks.delete(e);this._run()})}onread(e,r=!1){if(r)return new Promise(t=>{this.async===!1?t(e()):this.readCallbacks.add(()=>{t(e())})});this.async===!1?e():this.readCallbacks.add(e)}onwrite(e,r=!1){if(r)return new Promise(t=>{this.async===!1?t(e()):this.writeCallbacks.add(()=>{t(e())})});this.async===!1?e():this.writeCallbacks.add(e)}cycle(e,r,t){this.onread(()=>{let n=e(t),o=s=>{s!==void 0&&this.onwrite(()=>{let c=r(s,t),l=u=>{u!==void 0&&this.cycle(e,r,u)};c instanceof Promise?c.then(l):l(c)})};n instanceof Promise?n.then(o):o(n)})}};function dt(i){return(i=i.trim())&&i.startsWith("(")&&i.endsWith(")")}function Pe(i,e,r,t=!0){r=(Array.isArray(r)?r:[r]).map(c=>(c+"").replace("(",t?"(.//":"(./")).join("|");let n=i.document.evaluate(r,e,null,XPathResult.ANY_TYPE),o=[],s;for(;s=n.iterateNext();)o.push(s);return o}function ht(i,e,r){return r=(Array.isArray(r)?r:[r]).map(t=>(t+"").replace("(","(self::")).join("|"),i.document.evaluate(`${r}`,e,null,XPathResult.BOOLEAN_TYPE).booleanValue}function pt(i,e="|"){return[...i].reduce(([r,t],n)=>n===e&&r===0?[r,[""].concat(t)]:(["(","["].includes(n)&&!t[0].endsWith("\\")&&r++,[")","]"].includes(n)&&!t[0].endsWith("\\")&&r--,t[0]+=n,[r,t]),[0,[""]])[1].reverse()}var j=class{constructor(e){this.content=e,this.type=typeof e=="string"?"selector":"instance",this.kind=this.type==="instance"?null:dt(e)?"xpath":"css",this.kind==="xpath"&&(this.isXpathAttr=pt(e.trim().slice(1,-1),"@").length>1)}toString(){return this.content}};var Y=class{constructor(e,r,t){this.context=e,this.namespace=r,this.window=e.defaultView||e.ownerDocument?.defaultView||t,this.document=this.window.document,this.webqit=this.window.webqit,Object.defineProperty(this,"#",{value:{}})}resolveArgs(e){if(v(e[0])?e=[[],...e]:_(e[0])&&!(e[0]instanceof j)&&e.length===1?e=[[],void 0,e[0]]:_(e[1])&&e.length===2?e=[S(e[0],!1),void 0,e[1]]:e[0]=S(e[0],!1),e[0].filter(r=>typeof r!="string"&&!(r instanceof j)&&!(r instanceof this.window.Node)).length)throw new Error("Argument #2 must be either a string or a Node object, or a list of those.");return e[0]=e[0].map(r=>r instanceof j?r:new j(r)),e}registry(...e){return W("realdom.realtime",this.window,this.namespace,...e)}createSignalGenerator(){return{generate(){return this.lastController?.abort(),this.lastController=new AbortController,{signal:this.lastController.signal}},disconnect(){this.lastController?.abort()}}}forEachMatchingContext(e,r,t){let{window:n}=this,o=Array.isArray(r)?r:[r],s=new Set;for(let[c,l]of this.registry(e))for(let[u,f]of l){let m=o.filter(a=>u.contains(a.target)?c==="subtree"||a.target===u:!1);if(!!m.length){Array.isArray(r)||(m=m[0]);for(let a of f)s.add([a,m,u])}}for(let[c,l,u]of s)t.call(n,c,l,u)}disconnectables(e,...r){let t={disconnect(){r.forEach(n=>n&&v(n.disconnect)&&n.disconnect()||v(n)&&n()||_(n)&&(n.disconnected=!0))}};return e&&e.addEventListener("abort",()=>t.disconnect()),t}};var G=class extends Y{constructor(e,...r){super(e,"attr",...r)}get(e,r=void 0,t={}){let n=typeof e=="string"||e instanceof j;[e=[],r=void 0,t={}]=this.resolveArgs(arguments);let{context:o}=this,s=wt(o,e);if(!r)return s;let c=t.lifecycleSignals&&this.createSignalGenerator();if(n)for(let l of s){let u=c?.generate()||{};r(l,u,o)}else{let l=c?.generate()||{};r(s,l,o)}if(t.live){c&&(t={...t,signalGenerator:c});let l=this.observe(n?e[0]:e,r,{newValue:!0,...t});return this.disconnectables(t.signal,l)}}observe(e,r,t={}){let n=typeof e=="string"||e instanceof j;if([e=[],r,t={}]=this.resolveArgs(arguments),["sync","intercept"].includes(t.timing))return this.observeSync(n?e[0]:e,r,t);if(t.timing&&t.timing!=="async")throw new Error(`Timing option "${t.timing}" invalid.`);let{context:o,window:s,webqit:c}=this;t.eventDetails&&!c.realdom.attrInterceptionHooks?.intercepting&&xt.call(s,"intercept",()=>{});let l=new s.MutationObserver(a=>{a=bt(a).map(h=>_t.call(s,h)),yt.call(s,m,a,o)}),u={attributes:!0,attributeOldValue:t.oldValue,subtree:t.subtree};e.length&&(u.attributeFilter=e.map(a=>a+"")),l.observe(o,u);let f=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),m={context:o,spec:e,callback:r,params:t,atomics:new Map,originalFilterIsString:n,signalGenerator:f,disconnectable:l};return this.disconnectables(t.signal,l,f)}observeSync(e,r,t={}){let n=typeof e=="string"||e instanceof j;[e,r,t={}]=this.resolveArgs(arguments);let{context:o,window:s}=this;if(t.timing&&!["sync","intercept"].includes(t.timing))throw new Error(`Timing option "${t.timing}" invalid.`);let c=t.timing==="intercept"?"intercept":"sync",l=t.subtree?"subtree":"children";this.registry(c).size||xt.call(s,c,y=>{this.forEachMatchingContext(c,y,yt)});let u={disconnect(){h.delete(m),h.size||a.delete(o)}},f=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),m={context:o,spec:e,callback:r,params:t,atomics:new Map,originalFilterIsString:n,signalGenerator:f,disconnectable:u},a=this.registry(c,l);a.has(o)||a.set(o,new Set);let h=a.get(o);return h.add(m),this.disconnectables(t.signal,u,f)}};function bt(i){return i.reduce((e,r,t)=>e[t-1]?.attributeName===r.attributeName?e:e.concat(r),[])}function yt(i,e){let{context:r,spec:t,callback:n,params:o,atomics:s,originalFilterIsString:c,signalGenerator:l}=i,u=t.map(a=>a+"");if(o.atomic&&!s.size?e=wt(r,t,e):o.timing!=="async"&&t.length&&(e=e.filter(a=>u.includes(a.name))),!e.length)return;o.newValue===null&&o.oldValue===null&&o.eventDetails||(e=e.map(a=>{let h;return o.eventDetails||({event:h,...a}=a),!o.oldValue&&"oldValue"in a&&({oldValue:h,...a}=a),!o.newValue&&"value"in a?{value:h,...a}=a:o.newValue&&typeof a.value>"u"&&(a={...a,value:a.target.getAttribute(a.name)}),a})),o.atomic&&(e.forEach(a=>s.set(a.name,a)),e=Array.from(s.entries()).map(([,a])=>a));let f=c?e[0]:e,m=l?.generate()||{};n(f,m,r)}function wt(i,e,r=[]){let t={event:null,type:"attribute"};return e.length?e.map(o=>(o=o+"",r.find(s=>s.name===o)||{target:i,name:o,value:i.getAttribute(o),...t})):Array.from(i.attributes).map(o=>r.find(s=>s.name===o.nodeName)||{target:i,name:o.nodeName,value:o.nodeValue,...t})}function _t({target:i,attributeName:e,value:r,oldValue:t}){let s=(this.webqit.realdom.attrInterceptionRecords?.get(i)||{})[e]?.[0]||"mutation";return{target:i,name:e,value:r,oldValue:t,type:"observation",event:s}}function xt(i,e){let r=this,{webqit:t,document:n,Element:o}=r;t.realdom.attrInterceptionHooks||Object.defineProperty(t.realdom,"attrInterceptionHooks",{value:new Map}),t.realdom.attrInterceptionHooks.has(i)||t.realdom.attrInterceptionHooks.set(i,new Set),t.realdom.attrInterceptionHooks.get(i).add(e);let s=()=>t.realdom.attrInterceptionHooks.get(i).delete(e);if(t.realdom.attrInterceptionHooks?.intercepting)return s;console.warn("Attr mutation APIs are now being intercepted."),t.realdom.attrInterceptionHooks.intercepting=!0,Object.defineProperty(t.realdom,"attrInterceptionRecords",{value:new Map});let c=(f,m)=>{t.realdom.attrInterceptionRecords.has(f.target)||t.realdom.attrInterceptionRecords.set(f.target,{});let a=t.realdom.attrInterceptionRecords.get(f.target);a[f.name]=a[f.name]||[],a[f.name].unshift(f.event),t.realdom.attrInterceptionHooks.get("intercept")?.forEach(y=>y([f]));let h=m();return t.realdom.attrInterceptionHooks.get("sync")?.forEach(y=>y([f])),h};new r.MutationObserver(f=>{f=f.filter(m=>!(r.webqit.realdom.attrInterceptionRecords?.get(m.target)||{})[m.attributeName]?.shift()),f=bt(f).map(m=>_t.call(r,m)),f.length&&(t.realdom.attrInterceptionHooks.get("intercept")?.forEach(m=>m(f)),t.realdom.attrInterceptionHooks.get("sync")?.forEach(m=>m(f)))}).observe(n,{attributes:!0,subtree:!0,attributeOldValue:!0});let u=Object.create(null);return["setAttribute","removeAttribute","toggleAttribute"].forEach(f=>{u[f]=o.prototype[f],o.prototype[f]=function(...m){let a,h=this.getAttribute(m[0]);["setAttribute","toggleAttribute"].includes(f)&&(a=m[1]),f==="toggleAttribute"&&a===void 0&&(a=h===null);let y={target:this,name:m[0],value:a,oldValue:h,type:"interception",event:[this,f]};return c(y,()=>u[f].call(this,...m))}}),s}var me=class extends Y{constructor(e,...r){super(e,"tree",...r)}attr(e,r=void 0,t={}){let{context:n,window:o}=this;return new G(n,o).get(...arguments)}query(e,r=void 0,t={}){[e,r=void 0,t={}]=this.resolveArgs(arguments);let{context:n}=this,o=new Map,s=u=>(o.has(u)||o.set(u,{target:u,entrants:[],exits:[],type:"query",event:null}),o.get(u));if(!t.generation||t.generation==="entrants"){if(!e.length)[...n.children].forEach(u=>s(n).entrants.push(u));else if(e.every(u=>u.type==="selector")){let[u,f]=e.reduce(([a,h],y)=>y.kind==="xpath"?[a,h.concat(y)]:[a.concat(y),h],[[],[]]),m=[];t.subtree?(u.length&&m.push(...n.querySelectorAll(u.join(","))),f.length&&m.push(...Pe(this.window,n,f))):(u.length&&m.push(...[...n.children].filter(a=>a.matches(u))),f.length&&m.push(...Pe(this.window,n,f,!1))),m.forEach(a=>s(a.parentNode||n).entrants.push(a))}}if(!r)return o;let c={disconnected:!1},l=r&&t.lifecycleSignals&&this.createSignalGenerator();for(let[,u]of o){if(c.disconnected)break;let f=l?.generate()||{};r(u,f,n)}if(t.live){l&&(t={...t,signalGenerator:l});let u=this.observe(e,r,t);return this.disconnectables(t.signal,c,u)}return this.disconnectables(t.signal,c,l)}children(e,r=void 0,t={}){return[e,r=void 0,t={}]=this.resolveArgs(arguments),this.query(e,r,{...t,subtree:!1})}subtree(e,r=void 0,t={}){return[e,r=void 0,t={}]=this.resolveArgs(arguments),this.query(e,r,{...t,subtree:!0})}observe(e,r,t={}){if([e,r,t={}]=this.resolveArgs(arguments),["sync","intercept"].includes(t.timing))return this.observeSync(e,r,t);if(t.timing&&t.timing!=="async")throw new Error(`Timing option "${t.timing}" invalid.`);let{context:n,window:o,webqit:s,document:c}=this;t.eventDetails&&(s.realdom.domInterceptionRecordsAlwaysOn=!0),(c.readyState==="loading"||s.realdom.domInterceptionRecordsAlwaysOn)&&!s.realdom.domInterceptionHooks?.intercepting&&Et.call(o,"sync",()=>{});let l=new o.MutationObserver(m=>m.forEach(a=>{ze.call(o,f,Ot.call(o,a),n)}));l.observe(n,{childList:!0,subtree:t.subtree});let u=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),f={context:n,spec:e,callback:r,params:t,signalGenerator:u,disconnectable:l};if(t.staticSensitivity){let m=vt.call(o,f);return this.disconnectables(t.signal,l,u,m)}return this.disconnectables(t.signal,l,u)}observeSync(e,r,t={}){[e,r,t={}]=this.resolveArgs(arguments);let{context:n,window:o}=this;if(t.timing&&!["sync","intercept"].includes(t.timing))throw new Error(`Timing option "${t.timing}" invalid.`);let s=t.timing==="intercept"?"intercept":"sync",c=t.subtree?"subtree":"children";this.registry(s).size||Et.call(o,s,y=>{this.forEachMatchingContext(s,y,ze)});let l=new o.MutationObserver(y=>y.forEach(d=>{Array.isArray((d=Ot.call(o,d)).event)||ze.call(o,m,d,n)}));l.observe(n,{childList:!0,subtree:t.subtree});let u={disconnect(){l.disconnect(),h.delete(m),h.size||a.delete(n)}},f=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),m={context:n,spec:e,callback:r,params:t,signalGenerator:f,disconnectable:u},a=this.registry(s,c);a.has(n)||a.set(n,new Set);let h=a.get(n);if(h.add(m),t.staticSensitivity){let y=vt.call(o,m);return this.disconnectables(t.signal,u,f,y)}return this.disconnectables(t.signal,u,f)}};function vt(i){let e=this,{context:r,spec:t,callback:n,params:o,signalGenerator:s}=i,c=t.filter(h=>h.kind==="css"),l=h=>h.match(/\.([\w-]+)/g)?.length?["class"]:[],u=h=>h.match(/#([\w-]+)/g)?.length?["id"]:[],f=h=>[...h.matchAll(/\[([^\=\]]+)(\=[^\]]+)?\]/g)].map(y=>y[1]).concat(l(h)).concat(u(h));if(!(i.$attrs=Array.from(new Set(c.filter(h=>(h+"").includes("[")).reduce((h,y)=>h.concat(f(y+"")),[])))).length)return;let m=new Set,a=new Set;return m.push=h=>(a.delete(h),m.add(h)),a.push=h=>(m.delete(h),a.add(h)),i.$deliveryCache={entrants:m,exits:a},new G(r,e).observe(i.$attrs,h=>{let y=new Map,d=p=>(y.has(p)||y.set(p,{target:p,entrants:[],exits:[],type:"static",event:null}),y.get(p)),w=new WeakMap,g=p=>(w.has(p)||w.set(p,c.some(b=>p.matches(b+""))),w.get(p));for(let p of h)["entrants","exits"].forEach(b=>{o.generation&&b!==o.generation||i.$deliveryCache[b].has(p.target)||(b==="entrants"?!g(p.target):g(p.target))||(i.$deliveryCache[b].push(p.target),d(p.target)[b].push(p.target),d(p.target).event=p.event)});for(let[,p]of y){let b=s?.generate()||{};n(p,b,r)}},{subtree:o.subtree,timing:o.timing,eventDetails:o.eventDetails})}function ze(i,e){let{context:r,spec:t,callback:n,params:o,signalGenerator:s,$deliveryCache:c}=i,l={...e,entrants:[],exits:[]};if(o.eventDetails||delete l.event,["entrants","exits"].forEach(f=>{if(!(o.generation&&f!==o.generation)&&(t.length?l[f]=Gt.call(this,t,e[f],e.event!=="parse"):l[f]=[...e[f]],!!c))for(let m of l[f])c[f].push(m)}),!l.entrants.length&&!l.exits.length)return;let u=s?.generate()||{};n(l,u,r)}function Gt(i,e,r){e=Array.isArray(e)?e:[...e];let t=(n,o)=>{if(o.type==="selector"){let s=o.isXpathAttr?[]:n.filter(c=>o.kind==="xpath"?ht(this,c,o+""):c.matches&&c.matches(o+""));if((r||o.isXpathAttr)&&(s=n.reduce((c,l)=>o.kind==="xpath"?[...c,...Pe(this,l,o,r)]:l.querySelectorAll?[...c,...l.querySelectorAll(o+"")]:c,s)),s.length)return s}else if(n.includes(o.content)||r&&n.some(s=>s.contains(o.content)))return[o.content]};return e.$$searchCache||(e.$$searchCache=new Map),i.reduce((n,o)=>{let s;return e.$$searchCache.has(o.content)?s=e.$$searchCache.get(o.content):(s=t(e,o)||[],o.type==="instance"&&e.$$searchCache.set(o.content,s)),n.concat(s)},[])}function Ot({target:i,addedNodes:e,removedNodes:r}){let t=this,n;return n=S(e).reduce((o,s)=>o||t.webqit.realdom.domInterceptionRecords?.get(s),null),n=S(r).reduce((o,s)=>o||t.webqit.realdom.domInterceptionRecords?.get(s),n),n=n||t.document.readyState==="loading"&&"parse"||"mutation",{target:i,entrants:e,exits:r,type:"observation",event:n}}function Et(i,e){let r=this,{webqit:t,document:n,Node:o,CharacterData:s,Element:c,HTMLElement:l,HTMLTemplateElement:u,DocumentFragment:f}=r;t.realdom.domInterceptionHooks||Object.defineProperty(t.realdom,"domInterceptionHooks",{value:new Map}),t.realdom.domInterceptionHooks.has(i)||t.realdom.domInterceptionHooks.set(i,new Set),t.realdom.domInterceptionHooks.get(i).add(e);let m=()=>t.realdom.domInterceptionHooks.get(i).delete(e);if(t.realdom.domInterceptionHooks?.intercepting)return m;console.warn("DOM mutation APIs are now being intercepted."),t.realdom.domInterceptionHooks.intercepting=!0,Object.defineProperty(t.realdom,"domInterceptionRecords",{value:new Map});let a=(d,w)=>{d.entrants.concat(d.exits).forEach(p=>{clearTimeout(t.realdom.domInterceptionRecords.get(p)?.timeout),t.realdom.domInterceptionRecords.set(p,d.event);let b=setTimeout(()=>{t.realdom.domInterceptionRecords.delete(p)},0);Object.defineProperty(d.event,"timeout",{value:b,configurable:!0})}),t.realdom.domInterceptionHooks.get("intercept")?.forEach(p=>p(d));let g=w();return t.realdom.domInterceptionHooks.get("sync")?.forEach(p=>p(d)),g},h={characterData:Object.create(null),other:Object.create(null)};["insertBefore","insertAdjacentElement","insertAdjacentHTML","setHTML","replaceChildren","replaceWith","remove","replaceChild","removeChild","before","after","append","prepend","appendChild"].forEach(d=>{function w(...g){let p=this instanceof s?h.characterData:h.other,b=()=>p[d].call(this,...g);if(!(this instanceof s||this instanceof c||this instanceof f))return b();let q=[],E=[],U=this;["insertBefore"].includes(d)?E=[g[0]]:["insertAdjacentElement","insertAdjacentHTML"].includes(d)?(E=[g[1]],["beforebegin","afterend"].includes(g[0])&&(U=this.parentNode)):["setHTML","replaceChildren"].includes(d)?(q=[...this.childNodes],E=d==="replaceChildren"?[...g]:[g[0]]):["replaceWith","remove"].includes(d)?(q=[this],E=d==="replaceWith"?[...g]:[],U=this.parentNode):["replaceChild"].includes(d)?(q=[g[1]],E=[g[0]]):["removeChild"].includes(d)?q=[...g]:(E=[...g],["before","after"].includes(d)&&(U=this.parentNode));let J=d;if(["insertAdjacentHTML","setHTML"].includes(d)){let it=this.nodeName;if(d==="insertAdjacentHTML"&&["beforebegin","afterend"].includes(g[0])){if(!this.parentNode)return p[d].call(this,...g);it=this.parentNode.nodeName}let ve=n.createElement(it);p.setHTML.call(ve,E[0],d==="setHTML"?g[1]:{}),E=[...ve.childNodes],d==="insertAdjacentHTML"?(J="insertAdjacentElement",g[1]=new f,g[1].______isTemp=!0,g[1].append(...ve.childNodes)):(J="replaceChildren",g=[...ve.childNodes])}return a({target:U,entrants:E,exits:q,type:"interception",event:[this,d]},()=>p[J].call(this,...g))}["insertBefore","replaceChild","removeChild","appendChild"].includes(d)?(h.other[d]=o.prototype[d],o.prototype[d]=w):(["after","before","remove","replaceWith"].includes(d)&&(h.characterData[d]=s.prototype[d],s.prototype[d]=w),c.prototype[d]&&(h.other[d]=c.prototype[d],c.prototype[d]=w))});let y=Object.create(null);return["outerHTML","outerText","innerHTML","innerText","textContent","nodeValue"].forEach(d=>{let w=["textContent","nodeValue"].includes(d)?o:["outerText","innerText"].includes(d)?l:c;y[d]=Object.getOwnPropertyDescriptor(w.prototype,d),Object.defineProperty(w.prototype,d,{...y[d],set:function(g){let p=()=>y[d].set.call(this,g);if(!(this instanceof c))return p();let b=[],q=[],E=this;if(["outerHTML","outerText"].includes(d)?(b=[this],E=this.parentNode):b=[...this.childNodes],["outerHTML","innerHTML"].includes(d)){let J=this.nodeName;if(d==="outerHTML"){if(!this.parentNode)return p();J=this.parentNode.nodeName}let ee=n.createElement(J==="TEMPLATE"?"div":J);y[d].set.call(ee,g),q=this instanceof u?[]:[...ee.childNodes],d==="outerHTML"?(g=new f,g.______isTemp=!0,g.append(...ee.childNodes),p=()=>c.prototype.replaceWith.call(this,g)):this instanceof u?p=()=>this.content.replaceChildren(...ee.childNodes):p=()=>c.prototype.replaceChildren.call(this,...ee.childNodes)}return a({target:E,entrants:q,exits:b,type:"interception",event:[this,d]},p)}})}),["append","prepend","replaceChildren"].forEach(d=>{[n,f.prototype].forEach(w=>{let g=w[d];w[d]=function(...p){if(this.______isTemp)return g.call(this,...p);let b=d==="replaceChildren"?[...this.childNodes]:[];return a({target:this,entrants:p,exits:b,type:"interception",event:[this,d]},()=>g.call(this,...p))}})}),m}function At(){Bt.call(this),Xt.call(this),Ut.call(this)}function Bt(){let i=this;i.CSS||(i.CSS={}),i.CSS.escape||(i.CSS.escape=e=>e.replace(/([\:@\~\$\&])/g,"\\$1"))}function Xt(){let i=this;"isConnected"in i.Node.prototype||Object.defineProperty(i.Node.prototype,"isConnected",{get:function(){return!this.ownerDocument||!(this.ownerDocument.compareDocumentPosition(this)&this.DOCUMENT_POSITION_DISCONNECTED)}})}function Ut(){let i=this;i.Element.prototype.matches||(i.Element.prototype.matches=i.Element.prototype.matchesSelector||i.Element.prototype.mozMatchesSelector||i.Element.prototype.msMatchesSelector||i.Element.prototype.oMatchesSelector||i.Element.prototype.webkitMatchesSelector||function(e){for(var r=(this.document||this.ownerDocument).querySelectorAll(e),t=r.length;--t>=0&&r.item(t)!==this;);return t>-1})}function Pt(){let i=this;if(i.webqit||(i.webqit={}),i.webqit.realdom)return i.webqit.realdom;i.webqit.realdom={},At.call(i),i.webqit.realdom.meta=(...r)=>Jt.call(i,...r),i.webqit.realdom.ready=(...r)=>We.call(i,...r),i.webqit.realdom.realtime=(r,t="dom")=>{if(t==="dom")return new me(r,i);if(t==="attr")return new G(r,i)};let e=new ae(i);return i.webqit.realdom.schedule=(r,...t)=>e[`on${r}`](...t),i.webqit.realdom}function We(...i){let e="interactive",r;ne(i[0])?(e=i[0],v(i[1])&&(r=i[1])):v(i[0])&&(r=i[0]);let t={interactive:["interactive","complete"],complete:["complete"]};if(!t[e])throw new Error(`Invalid ready-state timing: ${e}.`);let n=this;if(!r)return n.webqit.realdom.readyStatePromises||(n.webqit.realdom.readyStatePromises={interactive:new Promise(o=>We.call(this,"interactive",o)),complete:new Promise(o=>We.call(this,"complete",o))}),n.webqit.realdom.readyStatePromises[e];if(t[e].includes(n.document.readyState))return r(n);n.webqit.realdom.readyStateCallbacks||(n.webqit.realdom.readyStateCallbacks={interactive:[],complete:[]},n.document.addEventListener("readystatechange",()=>{let o=n.document.readyState;for(let s of n.webqit.realdom.readyStateCallbacks[o].splice(0))s(n)},!1)),n.webqit.realdom.readyStateCallbacks[e].push(r)}function Jt(i){let e=this,r={},t;return(t=e.document.querySelector(`meta[name="${i}"]`))&&(r=(t.content||"").split(";").filter(n=>n).reduce((n,o)=>{let s=o.split("=").map(c=>c.trim());return ke(n,s[0].split("."),s[1]==="true"?!0:s[1]==="false"?!1:M(s[1])?parseInt(s[1]):s[1]),n},{})),{get name(){return i},get content(){return t.content},json(){return JSON.parse(JSON.stringify(r))}}}var P=(...i)=>W("oohtml",...i);function Ge(i,e,r){let t=i.toUpperCase().replace("-","_"),n=this,o=Pt.call(n);return n.webqit||(n.webqit={}),n.webqit.oohtml||(n.webqit.oohtml={}),n.webqit.oohtml.configs||(n.webqit.oohtml.configs={}),n.webqit.oohtml.configs[t]||(n.webqit.oohtml.configs[t]={}),ue(2,n.webqit.oohtml.configs[t],r,e,o.meta(i).json()),{config:n.webqit.oohtml.configs[t],realdom:o,window:n}}function Be(i,e,r=1,t=!1){if(r&&typeof i=="object"&&i&&typeof e=="object"&&e&&(!t||Object.keys(i).length===Object.keys(e).length)){for(let n in i)if(!Be(i[n],e[n],r-1,t))return!1;return!0}return Array.isArray(i)&&Array.isArray(e)&&i.length===e.length?(e=e.slice(0).sort())&&i.slice(0).sort().every((n,o)=>n===e[o]):i===e}var tt={};st(tt,{apply:()=>Te,batch:()=>Ie,construct:()=>Ye,defineProperties:()=>rr,defineProperty:()=>ye,deleteProperties:()=>nr,deleteProperty:()=>xe,get:()=>z,getOwnPropertyDescriptor:()=>Ce,getOwnPropertyDescriptors:()=>er,getPrototypeOf:()=>Ue,has:()=>$e,intercept:()=>Kt,isExtensible:()=>Je,observe:()=>et,ownKeys:()=>ge,path:()=>Zt,preventExtensions:()=>Ze,read:()=>tr,reduce:()=>Ke,set:()=>K,setPrototypeOf:()=>Qe});var A=(...i)=>W("observer-api",...i),ie=(i,e)=>i instanceof Promise?i.then(e):e(i),Se={};var Q=class{constructor(e,r){this.registry=e,Object.assign(this,{...r,target:e.target}),this.params.signal&&this.params.signal.addEventListener("abort",()=>this.remove())}remove(){return this.removed=!0,this.registry.removeRegistration(this)}};var de=class extends Q{constructor(){super(...arguments),this.emit.currentRegistration=this,Object.defineProperty(this,"abortController",{value:new AbortController}),Object.defineProperty(this,"signal",{value:this.abortController.signal}),Se.setMaxListeners?.(0,this.signal)}remove(){this.abortController.abort(),super.remove()}fire(e){if(this.emit.recursionTarget&&!["inject","force-async","force-sync"].includes(this.params.recursions))return;let r=e,t=this.filter;if(t!==1/0&&(t=S(t,!1))&&(r=e.filter(n=>t.includes(n.key))),this.params.diff&&(r=r.filter(n=>n.type!=="set"||n.value!==n.oldValue)),r.length){if(this.emit.recursionTarget&&this.params.recursions!=="force-sync"){this.emit.recursionTarget.push(...r);return}this.emit.recursionTarget=this.params.recursions==="inject"?r:[];let n=this.filter===1/0||Array.isArray(this.filter)?this.emit(r,this):this.emit(r[0],this);return ie(n,o=>{let s=this.emit.recursionTarget;return delete this.emit.recursionTarget,this.params.recursions==="force-async"&&s.length?this.emit.currentRegistration.fire(s):o})}}};var Z=class{constructor(e){this.target=e,this.entries=[]}addRegistration(e){return this.entries.push(e),e}removeRegistration(e){this.entries=this.entries.filter(r=>r!==e)}static _getInstance(e,r,t=!0,n=this.__namespace){if(!O(r))throw new Error(`Subject must be of type object; "${te(r)}" given!`);let o=this;return n&&A("namespaces").has(e+"-"+n)&&(o=A("namespaces").get(e+"-"+n),e+="-"+n),!A(r,"registry").has(e)&&t&&A(r,"registry").set(e,new o(r)),A(r,"registry").get(e)}static _namespace(e,r,t=null){if(e+="-"+r,arguments.length===2)return A("namespaces").get(e);if(!(t.prototype instanceof this))throw new Error(`The implementation of the namespace ${this.name}.${r} must be a subclass of ${this.name}.`);A("namespaces").set(e,t),t.__namespace=r}};var C=class{constructor(e,r){if(this.target=e,!r.operation)throw new Error("Descriptor operation must be given in definition!");Object.assign(this,r)}};var B=class extends Z{static getInstance(e,r=!0,t=null){return super._getInstance("listeners",...arguments)}static namespace(e,r=null){return super._namespace("listeners",...arguments)}constructor(e){super(e),this.batches=[]}addRegistration(e,r,t){return super.addRegistration(new de(this,{filter:e,emit:r,params:t}))}emit(e,r=!1){if(this.batches.length){this.batches[0].snapshots.push({events:[...e],isPropertyDescriptors:r});return}this.$emit(this.entries,[{events:e,isPropertyDescriptors:r}])}$emit(e,r){let t=e.filter(l=>l.params.withPropertyDescriptors).length,n=r.some(l=>l.isPropertyDescriptors),o=[],s=[],c=e.length;r.forEach(l=>{(t||!n)&&o.push(...l.events),t!==c&&n&&(l.isPropertyDescriptors?s.push(...l.events.map(u=>{let{target:f,type:m,...a}=u,h=new C(f,{type:"set",...a});return Object.defineProperty(h,"value","get"in a.value?{get:()=>a.value.get()}:{value:a.value.value}),a.oldValue&&Object.defineProperty(h,"oldValue","get"in a.oldValue?{get:()=>a.oldValue.get()}:{value:a.oldValue.value}),h})):s.push(...l.events))}),e.forEach(l=>{l.params.withPropertyDescriptors?l.fire(o.length?o:s):l.fire(s.length?s:o)})}batch(e){this.batches.unshift({entries:[...this.entries],snapshots:[]});let r=e();return ie(r,t=>{let n=this.batches.shift();return n.snapshots.length&&this.$emit(n.entries,n.snapshots),t})}};var he=class extends Q{exec(e,r,t){return this.running||!this.traps[e.operation]?r(...Array.prototype.slice.call(arguments,2)):(this.running=!0,this.traps[e.operation](e,t,(...n)=>(this.running=!1,r(...n))))}};var F=class extends Z{static getInstance(e,r=!0,t=null){return super._getInstance("traps",...arguments)}static namespace(e,r=null){return super._namespace("traps",...arguments)}addRegistration(e){return super.addRegistration(new he(this,e))}emit(e,r=null){let t=this;return function n(o,...s){let c=t.entries[o];return c?c.exec(e,(...l)=>n(o+1,...l),...s):r?r(e,...s):s[0]}(0)}};var Xe={};st(Xe,{accessorize:()=>Yt,proxy:()=>St,unaccessorize:()=>Qt,unproxy:()=>pe});function Yt(i,e,r={}){i=qe(i);let t=A(i,"accessorizedProps");function n(l){let u,f=i;do u=Object.getOwnPropertyDescriptor(f,l);while(!u&&(f=Object.getPrototypeOf(f)));return u?{proto:f,descriptor:u}:{descriptor:{value:void 0,configurable:!0,enumerable:!0,writable:!0}}}function o(l){if(t.has(l+""))return!0;let u=n(l);u.getValue=function(a=!1){return a?this.descriptor:this.descriptor.get?this.descriptor.get():this.descriptor.value},u.setValue=function(a,h=!1){if(this.dirty=!0,h){this.descriptor=a;return}return this.descriptor.set?this.descriptor.set(a)!==!1:(this.descriptor.value=a,!0)},u.intact=function(){let a=Object.getOwnPropertyDescriptor(i,l);return a?.get===m.get&&a?.set===m.set&&t.get(l+"")===this},u.restore=function(){return this.intact()?(this.proto&&this.proto!==i||!this.proto&&!this.dirty?delete i[l]:Object.defineProperty(i,l,this.descriptor),t.delete(l+""),!0):!1},t.set(isNaN(l)?l:parseInt(l),u);let{enumerable:f=!0}=u.descriptor,m={enumerable:f,configurable:!0};("value"in u.descriptor||u.descriptor.set)&&(m.set=function(a){return K(this,l,a,r)}),("value"in u.descriptor||u.descriptor.get)&&(m.get=function(){return z(this,l,r)});try{return Object.defineProperty(i,l,m),!0}catch{return t.delete(l+""),!1}}let c=(Array.isArray(e)?e:e===void 0?Object.keys(i):[e]).map(o);return e===void 0||Array.isArray(e)?c:c[0]}function Qt(i,e,r={}){i=qe(i);let t=A(i,"accessorizedProps");function n(c){return t.has(c+"")?t.get(c+"").restore():!0}let s=(Array.isArray(e)?e:e===void 0?Object.keys(i):[e]).map(n);return e===void 0||Array.isArray(e)?s:s[0]}function St(i,e={},r=void 0){let t=qe(i);if(typeof e.membrane=="boolean")throw new Error("The params.membrane parameter cannot be of type boolean.");if(e.membrane&&A(t,"membraneRef").has(e.membrane))return A(t,"membraneRef").get(e.membrane);let n={apply(c,l,u){if(Array.isArray(l)){let f=qe(l);return A(f).set("$length",f.length),Ie(f,()=>Te(c,l,u))}return Te(c,pe(l),u)},construct:(c,l,u=null)=>Ye(c,l,u,e),defineProperty:(c,l,u)=>ye(c,l,u,e),deleteProperty:(c,l)=>xe(c,l,e),get:(c,l,u=null)=>{let f={...e,receiver:u};Array.isArray(c)&&l==="length"&&A(c).has("$length")&&(f.forceValue=A(c).get("$length"));let m=z(c,l,f);return Array.isArray(c)&&typeof m=="function"?St(m,{...e,membrane:u}):m},getOwnPropertyDescriptor:(c,l)=>Ce(c,l,e),getPrototypeOf:c=>Ue(c,e),has:(c,l)=>$e(c,l,e),isExtensible:c=>Je(c,e),ownKeys:c=>ge(c,e),preventExtensions:c=>Ze(c,e),set:(c,l,u,f=null)=>{let m={...e,receiver:f};return Array.isArray(c)&&l==="length"&&(m.forceOldValue=A(c).get("$length"),A(c).set("$length",u)),K(c,l,u,m)},setPrototypeOf:(c,l)=>Qe(c,l,e)},o=r?.(n)||n,s=new Proxy(t,o);return e.membrane&&A(t,"membraneRef").set(e.membrane,s),A(s).set(s,t),s}function pe(i){return A(i).get(i)||i}function qe(i){if(!i||!O(i))throw new Error("Target must be of type object!");return pe(i)}var be=class extends Array{};function Zt(...i){return new be(...i)}function Ke(i,e,r,t=o=>o,n={}){if(!!e.length)return function o(s,c,l){let u=c[l.level],f=l.level===c.length-1;return s instanceof C&&s.operation!=="get"?l={...l,probe:"always"}:l.probe!=="always"&&(l={...l,probe:!f}),r(s,u,(m,...a)=>{let h=d=>{d instanceof C&&(d.path=[d.key],s instanceof C&&(d.path=s.path.concat(d.key),Object.defineProperty(d,"context",{get:()=>s,configurable:!0})))},y=d=>{let w=L(d,!1);return ie(w,g=>{d instanceof C?d.value=g:d=g;let p=a[0]||{};return o(d,c,{...l,...p,level:l.level+1})})};return Me(u)&&Array.isArray(m)?(m.forEach(h),f?t(m,...a):m.map(y)):(h(m),f?t(m,...a):y(m))},l)}(i,e.slice(0),{...n,level:0})}function et(i,e,r,t={}){if(i=L(i,!t.level),v(arguments[1])&&([,r,t={}]=arguments,e=1/0),!v(r))throw new Error(`Handler must be a function; "${te(r)}" given!`);if(e instanceof be)return Ke(i,e,et,r,t);if(t={...t,descripted:!0},delete t.live,!O(i))return t.probe&&z(i,e,r,t);let n=qt(i,e,r,t);return t.probe?z(i,e,n,t):n()}function Kt(i,e,r={}){return i=L(i),_(e)||([,,,r={}]=arguments,e={[arguments[1]]:arguments[2]}),F.getInstance(i,!0,r.namespace).addRegistration({traps:e,params:r})}function Ce(i,e,r=n=>n,t={}){return H(i,"getOwnPropertyDescriptor",{key:e},r,t)}function er(i,e,r=n=>n,t={}){return H(i,"getOwnPropertyDescriptors",{key:e},r,t)}function Ue(i,e=t=>t,r={}){return H(i,"getPrototypeOf",{},e,r)}function Je(i,e=t=>t,r={}){return H(i,"isExtensible",{},e,r)}function ge(i,e=t=>t,r={}){return H(i,"ownKeys",{},e,r)}function $e(i,e,r=n=>n,t={}){return H(i,"has",{key:e},r,t)}function z(i,e,r=n=>n,t={}){let n,o=L(i,!t.level);return _(r)?[t,r]=[r,s=>s]:t.live&&(n=!0),e instanceof be?Ke(o,e,z,r,t):ir(o,e,s=>{let c=[...s];return function l(u,f,m){if(!f.length)return m(u);let a=f.shift();if(!["string","number","symbol"].includes(typeof a))throw new Error(`Property name/key ${a} invalid.`);function h(w,g=void 0){let p=E=>(w.value=E,l([...u,t.live||t.descripted?w:E],f,m));if(arguments.length>1)return p(g);if(!O(o))return p(o?.[w.key]);let b=A(o,"accessorizedProps",!1),q=b&&b.get(w.key);if(q&&q.intact())return p(q.getValue(t.withPropertyDescriptors));if(t.withPropertyDescriptors){let E=Object.getOwnPropertyDescriptor(o,w.key);return"forceValue"in t&&"value"in E&&(E.value=t.forceValue),p(E)}return"forceValue"in t?p(t.forceValue):p(Reflect.get(o,w.key,...t.receiver?[t.receiver]:[]))}let y=new C(o,{type:"get",key:a,value:void 0,operation:"get",related:c});if(!O(o))return h(y);let d=F.getInstance(o,!1,t.namespace);return d?d.emit(y,h):h(y)}([],s.slice(0),l=>{let u=Me(e)?l:l[0];return n&&O(o)?qt(o,e,r,t)(u):r(u)})},t)}function Ie(i,e,r={}){return i=L(i),B.getInstance(i,!0,r.namespace).batch(e)}function tr(i,e,r={}){e=L(e),i=L(i);let t=(r.only||[]).slice(0),n=(r.except||[]).slice(0),o=ge(r.spread?[...i]:i).map(u=>isNaN(u)?u:parseInt(u)),s=t.length?t.filter(u=>o.includes(u)):o.filter(u=>!n.includes(u)),c=u=>!Array.isArray(e)||isNaN(u)?u:u-n.filter(f=>f<u).length,l=u=>{let f=Ce(i,u,r);"value"in f&&f.writable&&f.enumerable&&f.configurable?K(e,c(u),f.value,r):(f.enumerable||r.onlyEnumerable===!1)&&ye(e,u,{...f,configurable:!0},r)};return Ie(e,()=>{s.forEach(l)}),et(i,u=>{u.filter(f=>t.length?t.includes(f.key):!n.includes(f.key)).forEach(f=>{if(f.operation==="deleteProperty")return xe(e,c(f.key),r);if(f.operation==="defineProperty"){(f.value.enumerable||r.onlyEnumerable===!1)&&ye(e,c(f.key),{...f.value,configurable:!0},r);return}l(f.key)})},{...r,withPropertyDescriptors:!0})}function K(i,e,r,t=s=>s,n={},o=!1){let s=L(i),c=[[e,r]];_(e)&&([,,t=u=>u,n={},o=!1]=arguments,c=Object.entries(e)),_(t)&&([o,n,t]=[typeof n=="boolean"?n:o,t,u=>u]);let l=c.map(([u])=>u);return function u(f,m,a){if(!m.length)return a(f);let[h,y]=m.shift();function d(g,p=void 0){let b=U=>(g.status=U,u(f.concat(g),m,a));if(arguments.length>1)return b(g,p);let q=A(s,"accessorizedProps",!1),E=q&&q.get(g.key);return g.operation==="defineProperty"?(E&&!E.restore()&&b(!1),Object.defineProperty(s,g.key,g.value),b(!0)):E&&E.intact()?b(E.setValue(g.value)):b(Reflect.set(s,g.key,g.value))}function w(g,p){if(n.diff&&y===p)return u(f,m,a);let b=new C(s,{type:o?"def":"set",key:h,value:y,isUpdate:g,oldValue:p,related:[...l],operation:o?"defineProperty":"set",detail:n.detail}),q=F.getInstance(s,!1,n.namespace);return q?q.emit(b,d):d(b)}return $e(s,h,g=>{if(!g)return w(g);let p={...n,withPropertyDescriptors:o};return"forceOldValue"in n&&(p.forceValue=n.forceOldValue),z(s,h,b=>w(g,b),p)},n)}([],c.slice(0),u=>{let f=B.getInstance(s,!1,n.namespace);return f&&f.emit(u,o),t(Me(e)?u.map(m=>m.status):u[0]?.status)})}function ye(i,e,r,t=o=>o,n={}){return K(i,e,r,t,n,!0)}function rr(i,e,r=n=>n,t={}){return K(i,e,r,t,!0)}function xe(i,e,r=n=>n,t={}){i=L(i),_(r)&&([t,r]=[r,s=>s]);let n=S(e,!1),o=[...n];return function s(c,l,u){if(!l.length)return u(c);let f=l.shift();function m(h,y=void 0){let d=p=>(h.status=p,s(c.concat(h),l,u));if(arguments.length>1)return d(h,y);let w=A(i,"accessorizedProps",!1),g=w&&w.get(h.key);return g&&!g.restore()&&d(!1),d(Reflect.deleteProperty(i,h.key))}function a(h){let y=new C(i,{type:"delete",key:f,oldValue:h,related:[...o],operation:"deleteProperty",detail:t.detail}),d=F.getInstance(i,!1,t.namespace);return d?d.emit(y,m):m(y)}return z(i,f,a,t)}([],n.slice(0),s=>{let c=B.getInstance(i,!1,t.namespace);return c&&c.emit(s),r(Me(e)?s.map(l=>l.status):s[0].status)})}function nr(i,e,r=n=>n,t={}){return xe(...arguments)}function Ye(i,e,r=null,t=o=>o,n={}){return H(i,"construct",arguments.length>2?{argumentsList:e,newTarget:r}:{argumentsList:e},t,n)}function Te(i,e,r,t=o=>o,n={}){return H(i,"apply",{thisArgument:e,argumentsList:r},t,n)}function Qe(i,e,r=n=>n,t={}){return H(i,"setPrototypeOf",{proto:e},r,t)}function Ze(i,e=t=>t,r={}){return H(i,"preventExtensions",{},e,r)}function qt(i,e,r,t={}){let n;t.signal||(n=new AbortController,t={...t,signal:n.signal},Se.setMaxListeners?.(0,n.signal));let o=B.getInstance(i,!0,t.namespace);return function s(c,l=null){l?.remove();let f={signal:o.addRegistration(e,s,t).signal};if(arguments.length){let m=r(c,f);if(arguments.length>1)return m}return n}}function H(i,e,r={},t=o=>o,n={}){i=L(i),_(t)&&([n,t]=[t,l=>l]);function o(l,u){return arguments.length>1?t(u):t((Reflect[e]||Object[e])(i,...Object.values(r)))}let s=new C(i,{operation:e,...r}),c=F.getInstance(i,!1,n.namespace);return c?c.emit(s,o):o(s)}function Me(i){return i===1/0||Array.isArray(i)}function L(i,e=!0){if((!i||!O(i))&&e)throw new Error(`Object must be of type object or array! "${te(i)}" given.`);return i instanceof C&&(i=i.value),i&&pe(i)}function ir(i,e,r,t={}){return e===1/0?t.level&&!O(i)?r([]):ge(i,r,t):r(S(e,!1))}var or={...tt,...Xe},we=or;var _e=class{constructor(e,r){Object.defineProperty(this,"request",{value:e}),Object.defineProperty(this,"hostElement",{value:r}),e.live&&!e.signal&&(Object.defineProperty(this,"abortController",{value:new AbortController}),e.signal=this.abortController.signal)}callback(e){we.defineProperty(this,"value",{value:e,configurable:!0,enumerable:!0})}abort(){if(this.abortController)return this.abortController.abort();let e=this.hostElement.ownerDocument?.defaultView||this.hostElement.defaultView;if(this.request.signal)return this.request.signal.dispatchEvent(new e.Event("abort"))}};function Tt(){let i=this;return class extends i.Event{constructor(r,t,{type:n="contextrequest",...o}={}){super(n,o),Object.defineProperty(this,"request",{get:()=>r}),Object.defineProperty(this,"callback",{get:()=>t})}respondWith(r,...t){if(this.request.diff){if("prevValue"in this&&this.prevValue===r)return;Object.defineProperty(this,"prevValue",{value:r,configurable:!0})}return this.callback(r,...t)}}}var D=class{static instance(e){return P(e).get("context::instance")||new this(e)}constructor(e){P(e).get("context::instance")?.dispose(),P(e).set("context::instance",this);let r={host:e,contexts:new Set};Object.defineProperty(this,"#",{get:()=>r});let t=Tt.call(e.ownerDocument?.defaultView||e.defaultView);Object.defineProperty(this,"ContextRequestEvent",{get:()=>t}),this[Symbol.iterator]=function*(){yield*r.contexts}}get length(){this["#"].contexts.size}findProvider(e){return[...this["#"].contexts].find(e)}attachProvider(e){this["#"].contexts.add(e),e.initialize(this["#"].host)}detachProvider(e){e.dispose(this["#"].host),this["#"].contexts.delete(e)}request(e,r=null,t={}){typeof r=="object"&&(t=r,r=null);let n;r||(n=new _e(e,this["#"].host),r=n.callback.bind(n));let o=this["#"].host.dispatchEvent(new this.ContextRequestEvent(e,r,{bubbles:!0,...t}));return n??o}dispose(){}};var X=class{static get config(){return{}}static attachTo(e,r,t=!1){this.providers.set(this.type,this);let n,o=D.instance(e);return!t&&(n=o.findProvider(s=>this.matchId(s.id,r)))?n:o.attachProvider(new this(r))}static detachFrom(e,r,t=!1){let n,o=D.instance(e);for(n of o["#"].contexts)if(!(!this.matchId(n.id,r)||typeof t=="function"&&!t(n))&&(o.detachProvider(n),typeof multiple!="function"&&!t))return n}static createId(e,r={}){let t={type:this.type,...r};return t.contextName||(e.getAttribute&&!(t.contextName=(e.getAttribute(this.config.context.attr.contextname)||"").trim())?delete t.contextName:e.ownerDocument||(t.contextName="root")),t}static matchId(e,r){return Be(e,r,1,!0)}static createRequest(e={}){return{type:this.type,...e}}static matchRequest(e,r){return r.type===e.type&&(!r.contextName||r.contextName===e.contextName)}constructor(e){Object.defineProperty(this,"id",{get:()=>e}),Object.defineProperty(this,"subscriptions",{value:new Set})}get length(){this.subscriptions.size}handle(e){}subscribe(e){this.subscriptions.add(e),e.request.signal&&e.request.signal.addEventListener("abort",()=>{this.unsubscribe(e)})}unsubscribe(e){this.subscriptions.delete(e),e.request.controller?.abort()}handleEvent(e){if(!(this.disposed||e.target===this.host&&e.request?.superContextOnly||!(typeof e.request=="object"&&e.request)||typeof e.respondWith!="function"||!this.constructor.matchRequest(this.id,e.request)))if(e.stopPropagation(),e.type==="contextclaim"){let r=new Set;this.subscriptions.forEach(t=>{!e.target.contains(t.request.superContextOnly?t.target.parentNode:t.target)||!this.constructor.matchRequest(e.request,t.request)||(this.subscriptions.delete(t),r.add(t))}),e.respondWith(r)}else e.type==="contextrequest"&&(e.request.live&&this.subscribe(e),this.handle(e))}initialize(e){return this.host=e,this.disposed=!1,e.addEventListener("contextrequest",this),e.addEventListener("contextclaim",this),D.instance(e).request({...this.id,superContextOnly:!0},r=>r.forEach(t=>{this.subscribe(t),this.handle(t)}),{type:"contextclaim"}),this}dispose(e){return this.disposed=!0,e.removeEventListener("contextrequest",this),e.removeEventListener("contextclaim",this),this.subscriptions.forEach(r=>{this.unsubscribe(r);let{target:t,request:n,callback:o,options:s}=r;D.instance(t).request(n,o,s)}),this}};T(X,"providers",new Map),T(X,"type");var oe=class extends X{static matchRequest(e,r){return super.matchRequest(e,r)&&(!r.detail||!e.detail||(Array.isArray(r.detail)?r.detail[0]===e.detail:r.detail===e.detail))}get bindingsObj(){return this.host[this.constructor.config.api.bindings]}handle(e){if(e.request.controller?.abort(),!(e.request.detail+"").trim())return e.respondWith(this.bindingsObj);e.request.controller=we.reduce(this.bindingsObj,Array.isArray(e.request.detail)?e.request.detail:[e.request.detail],we.get,r=>{this.disposed||e.respondWith(r.value)},{live:e.request.live,descripted:!0})}};T(oe,"type","bindings");var rt=class{static parseMatch(e,r=!1){let[t,n,o="",s,c]=e;return{input:e.input,index:e.index,raw:t,expr:n,state:o,offset:parseInt(s??e.index),span:parseInt(c??(r?t.length:0))}}parseExpr(e,r){return e.match(/[\+\-\*\/&|\?\:\=\<\>\%]+|(['"])[^'"]*\1|\[[^\]]*\]|\([^)]*\)|\S+/g).map(n=>n.trim()).map(n=>{let o={};if(n[0]==="!"&&(o={negation:!0},n=n.slice(1)),/^\(.*\)$/.test(n))return{type:"expr",value:this.parseExpr(n.slice(1,-1),r),...o};if(['"',"'"].includes(n[0]))return{type:"literal",value:/(['"])(.*?)\1/g.exec(n)[2],...o};if(/[\+\-\*\/&|\?\:\=\<\>\%]/.test(n))return{type:"operator",value:n,...o};if(!isNaN(n))return{type:"literal",value:parseFloat(n),...o};let s=n.match(/[^\.\[\]]+/g);return r.push(s),{type:"ref",value:s,...o}})}renderExpr(e,r){return e.reduce(([t,n,o],s)=>{if(o==="end")return[t,null,"end"];if(o==="consequent"&&s.type==="operator"&&s.value===":")return[t,null,"end"];if(s.type==="operator")return[t,s,o];if(o==="alternate"&&n?.value!==":")return[null,null,"alternate"];let c,l=(u,f)=>u.negation?!f:f;switch(s.type){case"ref":c=l(s,r[s.value.join(".")].value);break;case"expr":c=l(s,this.renderExpr(s.value,r));break;default:c=l(s,s.value)}switch(n?.value){case"-":return[t-c,null,o];case"+":return[t+c,null,o];case"/":return[t/c,null,o];case"*":return[t*c,null,o];case"%":return[t%c,null,o];case"===":return[t===c,null,o];case"==":return[l(n,t==c),null,o];case">=":return[t>=c,null,o];case"<=":return[t<=c,null,o];case">":return[t>c,null,o];case"<":return[t<c,null,o];case"||":return[t||c,null,o];case"&&":return[t&&c,null,o];case"?":return t?[c,null,"consequent"]:[null,null,"alternate"];case"??":return[t??c,null,o];default:return[c]}},[null,null])[0]}render(e){let r=this.renderExpr(this.expr,e);this.value=r}getRaw(e){let r=this.constructor;return`${r.tagStart}${e.expr}${e.state?`${e.state} `:""}${r.tagEnd}`}disconnect(){this.disconnected=!0}},I=rt;T(I,"stateStart","[="),T(I,"stateEnd","]"),T(I,"tokens",{stc:rt,contains(e,r,t){let n=r?`contains(${e}, "${r}")`:"",o=`contains(substring-after(${e}, "${r}"), "${t}")`;return`${n}${n&&o?" and ":""}${o}`},startsAndEnds(e,r,t){let n=r?`starts-with(${e}, "${r}")`:"",o=`substring(${e}, string-length(${e}) - string-length("${t}") + 1) = "${t}"`;return`${n}${n&&o?" and ":""}${o}`},regex(e,r,t=!0){let n="(.+)",o="",s=e.split("").map(l=>"\\"+l),c=r.split("").map(l=>"\\"+l);if(t){let l=this.stc.stateStart.split("").map(f=>"\\"+f),u=this.stc.stateEnd.split("").map(f=>"\\"+f);n=`((?:(?!${l.join("")})${r?`(?!${c.join("")})`:""}.)*)`,o=`(${l.join("")}(\\d+),?(\\d+)?${u.join("")})?(?:\\s+)?`}else r&&(n=`([^${c[0]}]+)`);return`${s.join("")}${n}${o}${c.join("")}`}});var N=class extends Set{static instance(e){return P(e).get("bracelets::instance")||new this(e)}constructor(e){super(),P(e).get("bracelets::instance")?.dispose(),P(e).set("bracelets::instance",this);let r={host:e,bindings:Object.create(null)};Object.defineProperty(this,"#",{get:()=>r})}add(e){if(!(e instanceof I))throw new Error("Argument must be instance of Bracelet.");let r=super.add(e),t=this["#"].bindings;return e.refs.forEach(n=>{let o=n.join(".");if(!(o in t)){t[o]={subs:new Set,controller:new AbortController};let s=oe.createRequest({detail:n,live:!0,signal:t[o].signal});D.instance(this["#"].host).request(s,c=>{t[o].value=c,t[o].subs.forEach(l=>l.render(t))})}t[o].subs.add(e)}),e.render(t),r}delete(e){if(!(e instanceof I))throw new Error("Argument must be instance of Bracelet.");let r=super.delete(e),t=this["#"].bindings;return e.refs.forEach(n=>{let o=n.join(".");t[o].subs.delete(e),t[o].subs.size||(t[o].controller.abort(),delete t[o])}),r}clear(){for(let e of this)this.delete(e)}};var je=class extends I{static get query(){let e=this.nameStart||this.nameEnd?this.tokens.startsAndEnds("name()",this.nameStart,this.nameEnd):"",r=this.tokens.contains(".",this.tagStart,this.tagEnd);return`@*[${e?e+" and ":""}${r}]`}static parse(...e){let r=[],t=e.reduce((n,o)=>n.concat([...o.nodeValue.matchAll(new RegExp(this.tokens.regex(this.tagStart,this.tagEnd),"g"))].reduce((s,c)=>{let l,u={ownerElement:o.ownerElement,nodeName:o.nodeName};if(this.nameStart||this.nameEnd)if(l=u.nodeName,u.nodeName=o.nodeName.match(new RegExp(this.tokens.regex(this.nameStart,this.nameEnd,!1)))?.[1])r.push([o.ownerElement,o.nodeName]);else return s;else l=`${je.nameStart}${u.nodeName}${je.nameEnd}`;let f=new this(u,this.parseMatch(c,!0),l),m=s.slice(-1)[0];return m&&(m._nextSibling=f),s.concat(f)},[])),[]);return r.forEach(n=>n[0].removeAttribute(n[1])),t}static mount(...e){for(let r of e){let t=P(r.ownerElement).get("attr-bracelets");t||(t=new Map,t.active=[],P(r.ownerElement).set("attr-bracelets",t));let n=t.get(r.target.nodeName);n||(n=new Set,t.set(r.target.nodeName,n)),n.add(r),t.active[0]?._nested.add(r),N.instance(r.ownerElement).add(r)}}static cleanup(...e){for(let r of e){let t=P(r.ownerElement).get("attr-bracelets");t?.get(r.nodeName)?.forEach(n=>{n.disconnect(),N.instance(n.ownerElement).delete(n),n.ownerElement.removeAttribute(n.templName)}),t?.delete(r.nodeName),t&&!t.size&&P(r.ownerElement).delete("attr-bracelets")}}constructor(e,r,t=void 0){super();let n=[],o=this.parseExpr(r.expr.trim(),n),s=e.nodeName==="class"||r.raw===r.input.trim();if(Object.defineProperties(this,{ownerElement:{get:()=>e.ownerElement},type:{get:()=>"attr"},expr:{get:()=>o},refs:{get:()=>n},target:{get:()=>e},template:{get:()=>r},templName:{get:()=>t},_dirty:{value:!1,writable:!0},_value:{value:r.raw,writable:!0},_toggleType:{value:s,writable:!0},_nextSibling:{value:void 0,writable:!0},_nested:{value:new Set}}),this.target.nodeName==="class"&&(this.expr.length!==1||this.expr[0].type!=="ref"))throw new Error(`Invalid bracelet for the class attribute: "${this.template.raw}"`)}spanDiff(e){e!==0&&(this.template.span+=e,this.persistState(),this._nextSibling&&this._nextSibling.offsetDiff(e,this.persistState()))}offsetDiff(e,r){e!==0&&(this.template.offset+=e,this._nextSibling&&this._nextSibling.offsetDiff(e,this.persistState(r)))}persistState(e=0){this.template.state=`[=${this.template.offset},${this.template.span}]`;let r=this.getRaw(this.template);return this.template.raw=r,e}get dirty(){return this._dirty}get toggleMode(){return this._toggleType&&["undefined","boolean"].includes(typeof this._value)}get value(){return this._value}set value(e){if(this.disconnected||e===this._value)return;this._value=e,this._dirty=!0;let r=P(this.ownerElement).get("attr-bracelets");r.active.unshift(this),this._nested.forEach(n=>n.disconnect());let t=e;if(this.toggleMode&&this.target.nodeName!=="class")this.ownerElement.toggleAttribute(this.target.nodeName,e),t=(e??"")+"";else{this.toggleMode&&this.target.nodeName==="class"?t=e?this.expr[0].value.join(""):"":t=(e??"")+"";let n=this.ownerElement.getAttribute(this.target.nodeName)||this.template.input;this.ownerElement.setAttribute(this.target.nodeName,n.substring(0,this.template.offset)+t+n.substring(this.template.offset+this.template.span))}this.spanDiff(t.length-this.template.span),r.active.shift()}},$=je;T($,"nameStart",":"),T($,"nameEnd",""),T($,"tagStart","{{"),T($,"tagEnd","}}");var R=class extends I{static get query(){let e="not(ancestor::script) and not(ancestor::style)",r=this.tokens.contains(".",this.tagStart,this.tagEnd);return`${this.nodeType}()[${e} and ${r}]`}static parse(...e){let r=t=>t.match(new RegExp(this.tokens.regex(this.tagStart,this.tagEnd)));return e.reduce((t,n)=>{if(this.nodeType==="text"){let c=n,l=n,u,f;for(;l&&(u=r(l.nodeValue))&&(f=this.parseMatch(u,!0));)f.index>0&&(c=l.splitText(f.index)),c.nodeValue.length>f.raw.length?l=c.splitText(f.raw.length):l=null,t.push(new this(c,f));return t}let o=this.parseMatch(r(n.nodeValue)),s=n;if(o.span){if(n.nextSibling?.nodeName!=="#text")return t;s=n.nextSibling,s.nodeValue.length>o.span&&s.splitText(o.span)}else n.nextSibling?s=n.parentNode.insertBefore(n.ownerDocument.createTextNode(""),n.nextSibling):s=n.parentNode.appendChild(n.ownerDocument.createTextNode(""));return n.remove(),t.concat(new this(s,o,n))},[])}static mount(...e){for(let r of e)P(r.node).set("text-bracelet",r),N.instance(r.ownerElement).add(r)}static cleanup(...e){for(let r of e){let t=P(r).get("text-bracelet");!t||(t.disconnect(),t.templNode?.remove(),N.instance(t.ownerElement).delete(t),P(r).delete("text-bracelet"))}}constructor(e,r,t=void 0){super();let n=[],o=this.parseExpr(r.expr.trim(),n);Object.defineProperties(this,{ownerElement:{get:()=>e.parentNode},type:{get:()=>"text"},expr:{get:()=>o},refs:{get:()=>n},target:{get:()=>e},template:{get:()=>r},templNode:{get:()=>t},_dirty:{value:!1,writable:!0},_value:{value:e.nodeValue,writable:!0}})}stateDiff(e){this.template.state=`[=${this.template.offset},${this.template.span}]`}spanDiff(e){e!==0&&(this.template.span+=e,this.stateDiff())}get dirty(){return this._dirty}get value(){return this._value}set value(e){this.disconnected||e===this._value||(this._value=e,this._dirty=!0,this.target.nodeValue=e,this.spanDiff((e??"").length-this.template.span))}};T(R,"nodeType","comment"),T(R,"tagStart","?"),T(R,"tagEnd","?");function nt(i={}){let{config:e,realdom:r,window:t}=Ge.call(this,"html-bracelets",i,{api:{bracelets:"bracelets"},isomorphic:!0});sr.call(t,e),cr.call(t,e)}function sr(i){let e=this;if(i.api.bracelets in e.document)throw new Error(`document already has a "${i.api.bracelets}" property!`);if(i.api.bracelets in e.HTMLElement.prototype)throw new Error(`The "HTMLElement" class already has a "${i.api.bracelets}" property!`);Object.defineProperty(e.document,i.api.bracelets,{get:function(){return N.instance(e.document)}}),Object.defineProperty(e.HTMLElement.prototype,i.api.bracelets,{get:function(){return N.instance(this)}})}function cr(i){let e=this,{realdom:r}=e.webqit;r.realtime(e.document).subtree(`(${R.query})`,t=>{R.cleanup(...t.exits),R.mount(...R.parse(...t.entrants.filter(n=>!P(n).has("text-bracelet"))))},{live:!0}),r.realtime(e.document).subtree(`(${$.query})`,t=>{$.cleanup(...t.exits),$.mount(...$.parse(...t.entrants))},{live:!0}),r.realtime(e.document,"attr").observe(t=>{for(let n of t)P(n.target).get("attr-bracelets")?.active.some(o=>[o.target.nodeName,o.templName].includes(n.name))||[...P(n.target).get("attr-bracelets")?.get(n.name)||[]].some(o=>o.toggleMode)||(n.oldValue&&$.cleanup(n.target.attributes[n.name]||{ownerElement:n.target,nodeName:n.name}),n.value&&$.mount(...$.parse(n.target.attributes[n.name])))},{subtree:!0,newValue:!0,oldValue:!0,timing:"sync"})}nt.call(window);})();
2
- //# sourceMappingURL=html-bracelets.js.map