@webqit/oohtml 2.1.57 → 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.
- package/dist/bindings-api.js +1 -1
- package/dist/bindings-api.js.map +2 -2
- package/dist/context-api.js +1 -1
- package/dist/context-api.js.map +2 -2
- package/dist/html-bindings.js +54 -0
- package/dist/html-bindings.js.map +7 -0
- package/dist/html-imports.js +1 -1
- package/dist/html-imports.js.map +3 -3
- package/dist/html-namespaces.js +1 -1
- package/dist/html-namespaces.js.map +2 -2
- package/dist/main.js +38 -6
- package/dist/main.js.map +3 -3
- package/dist/scoped-css.js +1 -1
- package/dist/scoped-css.js.map +2 -2
- package/dist/scoped-js.js +4 -4
- package/dist/scoped-js.js.map +3 -3
- package/package.json +5 -5
- package/src/html-bindings/index.js +233 -0
- package/src/html-imports/_HTMLImportElement copy.js +217 -0
- package/src/html-imports/_HTMLImportElement.js +26 -17
- package/src/html-imports/_HTMLImportsProvider.js +2 -2
- package/src/html-imports/index.js +25 -44
- package/src/index.js +4 -4
- package/src/scoped-js/index.js +2 -2
- package/dist/html-bracelets.js +0 -2
- package/dist/html-bracelets.js.map +0 -7
- package/src/html-bracelets/AttrBracelet.js +0 -122
- package/src/html-bracelets/Bracelet.js +0 -82
- package/src/html-bracelets/HTMLBracelets.js +0 -68
- package/src/html-bracelets/TextBracelet.js +0 -69
- package/src/html-bracelets/index.js +0 -72
- /package/src/{html-bracelets → html-bindings}/targets.browser.js +0 -0
|
@@ -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
|
|
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
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
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
|
-
|
|
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 HTMLBracelets from './html-bracelets/index.js';
|
|
9
|
-
import HTMLNamespaces from './html-namespaces/index.js';
|
|
10
8
|
import HTMLImports from './html-imports/index.js';
|
|
9
|
+
import HTMLBindings from './html-bindings/index.js';
|
|
10
|
+
import HTMLNamespaces from './html-namespaces/index.js';
|
|
11
11
|
import ScopedCSS from './scoped-css/index.js';
|
|
12
12
|
import ScopedJS from './scoped-js/index.js';
|
|
13
13
|
|
|
@@ -24,9 +24,9 @@ export default function init( configs = {} ) {
|
|
|
24
24
|
// --------------
|
|
25
25
|
ContextAPI.call( this, ( configs.CONTEXT_API || {} ) );
|
|
26
26
|
BindingsAPI.call( this, ( configs.BINDINGS_API || {} ) );
|
|
27
|
-
|
|
27
|
+
HTMLImports.call( this, ( configs.HTML_IMPORTS || {} ) ); // Depends ContextAPI
|
|
28
|
+
HTMLBindings.call( this, ( configs.HTML_BRACELETS || {} ) ); // Depends ContextAPI, BindingsAPI, HTMLImports
|
|
28
29
|
HTMLNamespaces.call( this, ( configs.HTML_NAMESPACES || {} ) );
|
|
29
|
-
HTMLImports.call( this, ( configs.HTML_IMPORTS || {} ) );
|
|
30
30
|
ScopedCSS.call( this, ( configs.SCOPED_CSS || {} ) );
|
|
31
31
|
ScopedJS.call( this, ( configs.SCOPED_JS || {} ) );
|
|
32
32
|
// --------------
|
package/src/scoped-js/index.js
CHANGED
|
@@ -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,
|
package/dist/html-bracelets.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(()=>{var nt=Object.defineProperty;var qt=(n,e,r)=>e in n?nt(n,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):n[e]=r;var it=(n,e)=>{for(var r in e)nt(n,r,{get:e[r],enumerable:!0})};var J=(n,e,r)=>(qt(n,typeof e!="symbol"?e+"":e,r),r);function w(n){return!Array.isArray(n)&&typeof n=="object"&&n}function te(n){return typeof n}function x(n){return Array.isArray(n)}function Ve(n,e,r=null){return x(e)?n.filter(t=>r?e.filter(i=>r(t,i)).length:e.indexOf(t)!==-1):[]}function F(n,...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(n);r||(r=new se,globalThis.webqit.refs.set(n,r));let t,i;for(;t=e.shift();)(i=r)&&!(r=r.get(t))&&(r=new se,i.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 i={type:e,key:r,callback:t};return this.observers.add(i),()=>this.observers.delete(i)}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 i of this.observers)!(Oe([e,"*"],i.type)&&Oe([r,"*"],i.key)&&i.callback===t)||this.observers.delete(i)}fire(e,r,...t){for(let i of this.observers)!(Oe([e,"*"],i.type)&&Oe([r,"*"],i.key))||i.callback(...t)}},Oe=(n,e)=>Array.isArray(e)?Ve(n,e).length:n.includes(e);function re(n){return typeof n=="function"}function le(n){return n===null||n===""}function N(n){return arguments.length&&(n===void 0||typeof n>"u")}function O(n){return Array.isArray(n)||typeof n=="object"&&n||re(n)}function $e(n){return le(n)||N(n)||n===!1||n===0||O(n)&&!Object.keys(n).length}function v(n){return re(n)||n&&{}.toString.call(n)==="[object function]"}function ue(n){return n instanceof Number||typeof n=="number"}function I(n){return ue(n)||n!==!0&&n!==!1&&n!==null&&n!==""&&!isNaN(n*1)}function ne(n){return n instanceof String||typeof n=="string"&&n!==null}function Re(n){return!ne(n)&&!N(n.length)}function Ee(n,...e){return e.forEach(r=>{n.indexOf(r)<0&&n.push(r)}),n}function De(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(n,e){var r=[];return De(n,e).forEach(t=>{Ee(r,...Object.getOwnPropertyNames(t))}),r}function R(n,e,r=!1,t=!1,i=!1){var o=0,s=n.shift();if((I(s)||s===!0||s===!1)&&(o=s,s=n.shift()),!n.length)throw new Error("_merge() requires two or more array/objects.");return n.forEach((l,u)=>{!O(l)&&!v(l)||(r?Le(l):Object.keys(l)).forEach(c=>{if(!!e(c,s,l,u)){var f=s[c],d=l[c];if((x(f)&&x(d)||w(f)&&w(d))&&(o===!0||o>0))s[c]=x(f)&&x(d)?[]:{},R([I(o)?o-1:o,s[c],f,d],e,r,t,i);else if(x(s)&&x(l))t?s[c]=d:s.push(d);else try{i?Object.defineProperty(s,c,Object.getOwnPropertyDescriptor(l,c)):s[c]=l[c]}catch{}}})}),s}function ce(...n){return R(n,(e,r,t)=>!0,!1,!1,!1)}function T(n,e=!0){return x(n)?n:!e&&w(n)?[n]:n!==!1&&n!==0&&$e(n)?[]:Re(n)?Array.prototype.slice.call(n):w(n)?Object.values(n):[n]}function fe(n,e,r={},t={}){e=T(e).slice();for(var i=n;!N(i)&&!le(i)&&e.length;){var o=e.shift();if(!(r.get?r.get(i,o):O(i)?o in i:i[o])){t.exists=!1;return}i=r.get?r.get(i,o):i[o]}return t.exists=!0,i}function He(n,e,r,t={},i={}){let o=(f,d,a)=>i.set?i.set(f,d,a):(I(e[l])&&x(f)?f.push(a):f[d]=a,!0);e=T(e);for(var s=n,l=0;l<e.length;l++)if(l<e.length-1){if(!s||!O(s)&&!v(s))return!1;var u=fe(s,e[l],i);if(!O(u)){if(i.buildTree===!1)return!1;u=v(i.buildTree)?i.buildTree(l):I(e[l+1])?[]:{};var c=o(s,e[l],u);if(!c)return!1}s=u}else return o(s,e[l],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 i=e(t),o=s=>{s!==void 0&&this.onwrite(()=>{let l=r(s,t),u=c=>{c!==void 0&&this.cycle(e,r,c)};l instanceof Promise?l.then(u):u(l)})};i instanceof Promise?i.then(o):o(i)})}};function at(n){return(n=n.trim())&&n.startsWith("(")&&n.endsWith(")")}function Pe(n,e,r,t=!0){r=(Array.isArray(r)?r:[r]).map(l=>(l+"").replace("(",t?"(.//":"(./")).join("|");let i=n.document.evaluate(r,e,null,XPathResult.ANY_TYPE),o=[],s;for(;s=i.iterateNext();)o.push(s);return o}function dt(n,e,r){return r=(Array.isArray(r)?r:[r]).map(t=>(t+"").replace("(","(self::")).join("|"),n.document.evaluate(`${r}`,e,null,XPathResult.BOOLEAN_TYPE).booleanValue}function mt(n,e="|"){return[...n].reduce(([r,t],i)=>i===e&&r===0?[r,[""].concat(t)]:(["(","["].includes(i)&&!t[0].endsWith("\\")&&r++,[")","]"].includes(i)&&!t[0].endsWith("\\")&&r--,t[0]+=i,[r,t]),[0,[""]])[1].reverse()}var C=class{constructor(e){this.content=e,this.type=typeof e=="string"?"selector":"instance",this.kind=this.type==="instance"?null:at(e)?"xpath":"css",this.kind==="xpath"&&(this.isXpathAttr=mt(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]:w(e[0])&&!(e[0]instanceof C)&&e.length===1?e=[[],void 0,e[0]]:w(e[1])&&e.length===2?e=[T(e[0],!1),void 0,e[1]]:e[0]=T(e[0],!1),e[0].filter(r=>typeof r!="string"&&!(r instanceof C)&&!(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 C?r:new C(r)),e}registry(...e){return F("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:i}=this,o=Array.isArray(r)?r:[r],s=new Set;for(let[l,u]of this.registry(e))for(let[c,f]of u){let d=o.filter(a=>c.contains(a.target)?l==="subtree"||a.target===c:!1);if(!!d.length){Array.isArray(r)||(d=d[0]);for(let a of f)s.add([a,d,c])}}for(let[l,u,c]of s)t.call(i,l,u,c)}disconnectables(e,...r){let t={disconnect(){r.forEach(i=>i&&v(i.disconnect)&&i.disconnect()||v(i)&&i()||w(i)&&(i.disconnected=!0))}};return e&&e.addEventListener("abort",()=>t.disconnect()),t}};var B=class extends Y{constructor(e,...r){super(e,"attr",...r)}get(e,r=void 0,t={}){let i=typeof e=="string"||e instanceof C;[e=[],r=void 0,t={}]=this.resolveArgs(arguments);let{context:o}=this,s=xt(o,e);if(!r)return s;let l=t.lifecycleSignals&&this.createSignalGenerator();if(i)for(let u of s){let c=l?.generate()||{};r(u,c,o)}else{let u=l?.generate()||{};r(s,u,o)}if(t.live){l&&(t={...t,signalGenerator:l});let u=this.observe(i?e[0]:e,r,{newValue:!0,...t});return this.disconnectables(t.signal,u)}}observe(e,r,t={}){let i=typeof e=="string"||e instanceof C;if([e=[],r,t={}]=this.resolveArgs(arguments),["sync","intercept"].includes(t.timing))return this.observeSync(i?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:l}=this;t.eventDetails&&!l.realdom.attrInterceptionHooks?.intercepting&>.call(s,"intercept",()=>{});let u=new s.MutationObserver(a=>{a=yt(a).map(h=>bt.call(s,h)),pt.call(s,d,a,o)}),c={attributes:!0,attributeOldValue:t.oldValue,subtree:t.subtree};e.length&&(c.attributeFilter=e.map(a=>a+"")),u.observe(o,c);let f=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),d={context:o,spec:e,callback:r,params:t,atomics:new Map,originalFilterIsString:i,signalGenerator:f,disconnectable:u};return this.disconnectables(t.signal,u,f)}observeSync(e,r,t={}){let i=typeof e=="string"||e instanceof C;[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 l=t.timing==="intercept"?"intercept":"sync",u=t.subtree?"subtree":"children";this.registry(l).size||gt.call(s,l,y=>{this.forEachMatchingContext(l,y,pt)});let c={disconnect(){h.delete(d),h.size||a.delete(o)}},f=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),d={context:o,spec:e,callback:r,params:t,atomics:new Map,originalFilterIsString:i,signalGenerator:f,disconnectable:c},a=this.registry(l,u);a.has(o)||a.set(o,new Set);let h=a.get(o);return h.add(d),this.disconnectables(t.signal,c,f)}};function yt(n){return n.reduce((e,r,t)=>e[t-1]?.attributeName===r.attributeName?e:e.concat(r),[])}function pt(n,e){let{context:r,spec:t,callback:i,params:o,atomics:s,originalFilterIsString:l,signalGenerator:u}=n,c=t.map(a=>a+"");if(o.atomic&&!s.size?e=xt(r,t,e):o.timing!=="async"&&t.length&&(e=e.filter(a=>c.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=l?e[0]:e,d=u?.generate()||{};i(f,d,r)}function xt(n,e,r=[]){let t={event:null,type:"attribute"};return e.length?e.map(o=>(o=o+"",r.find(s=>s.name===o)||{target:n,name:o,value:n.getAttribute(o),...t})):Array.from(n.attributes).map(o=>r.find(s=>s.name===o.nodeName)||{target:n,name:o.nodeName,value:o.nodeValue,...t})}function bt({target:n,attributeName:e,value:r,oldValue:t}){let s=(this.webqit.realdom.attrInterceptionRecords?.get(n)||{})[e]?.[0]||"mutation";return{target:n,name:e,value:r,oldValue:t,type:"observation",event:s}}function gt(n,e){let r=this,{webqit:t,document:i,Element:o}=r;t.realdom.attrInterceptionHooks||Object.defineProperty(t.realdom,"attrInterceptionHooks",{value:new Map}),t.realdom.attrInterceptionHooks.has(n)||t.realdom.attrInterceptionHooks.set(n,new Set),t.realdom.attrInterceptionHooks.get(n).add(e);let s=()=>t.realdom.attrInterceptionHooks.get(n).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 l=(f,d)=>{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=d();return t.realdom.attrInterceptionHooks.get("sync")?.forEach(y=>y([f])),h};new r.MutationObserver(f=>{f=f.filter(d=>!(r.webqit.realdom.attrInterceptionRecords?.get(d.target)||{})[d.attributeName]?.shift()),f=yt(f).map(d=>bt.call(r,d)),f.length&&(t.realdom.attrInterceptionHooks.get("intercept")?.forEach(d=>d(f)),t.realdom.attrInterceptionHooks.get("sync")?.forEach(d=>d(f)))}).observe(i,{attributes:!0,subtree:!0,attributeOldValue:!0});let c=Object.create(null);return["setAttribute","removeAttribute","toggleAttribute"].forEach(f=>{c[f]=o.prototype[f],o.prototype[f]=function(...d){let a,h=this.getAttribute(d[0]);["setAttribute","toggleAttribute"].includes(f)&&(a=d[1]),f==="toggleAttribute"&&a===void 0&&(a=h===null);let y={target:this,name:d[0],value:a,oldValue:h,type:"interception",event:[this,f]};return l(y,()=>c[f].call(this,...d))}}),s}var de=class extends Y{constructor(e,...r){super(e,"tree",...r)}attr(e,r=void 0,t={}){let{context:i,window:o}=this;return new B(i,o).get(...arguments)}query(e,r=void 0,t={}){[e,r=void 0,t={}]=this.resolveArgs(arguments);let{context:i}=this,o=new Map,s=c=>(o.has(c)||o.set(c,{target:c,entrants:[],exits:[],type:"query",event:null}),o.get(c));if(!t.generation||t.generation==="entrants"){if(!e.length)[...i.children].forEach(c=>s(i).entrants.push(c));else if(e.every(c=>c.type==="selector")){let[c,f]=e.reduce(([a,h],y)=>y.kind==="xpath"?[a,h.concat(y)]:[a.concat(y),h],[[],[]]),d=[];t.subtree?(c.length&&d.push(...i.querySelectorAll(c.join(","))),f.length&&d.push(...Pe(this.window,i,f))):(c.length&&d.push(...[...i.children].filter(a=>a.matches(c))),f.length&&d.push(...Pe(this.window,i,f,!1))),d.forEach(a=>s(a.parentNode||i).entrants.push(a))}}if(!r)return o;let l={disconnected:!1},u=r&&t.lifecycleSignals&&this.createSignalGenerator();for(let[,c]of o){if(l.disconnected)break;let f=u?.generate()||{};r(c,f,i)}if(t.live){u&&(t={...t,signalGenerator:u});let c=this.observe(e,r,t);return this.disconnectables(t.signal,l,c)}return this.disconnectables(t.signal,l,u)}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:i,window:o,webqit:s,document:l}=this;t.eventDetails&&(s.realdom.domInterceptionRecordsAlwaysOn=!0),(l.readyState==="loading"||s.realdom.domInterceptionRecordsAlwaysOn)&&!s.realdom.domInterceptionHooks?.intercepting&&vt.call(o,"sync",()=>{});let u=new o.MutationObserver(d=>d.forEach(a=>{Fe.call(o,f,wt.call(o,a),i)}));u.observe(i,{childList:!0,subtree:t.subtree});let c=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),f={context:i,spec:e,callback:r,params:t,signalGenerator:c,disconnectable:u};if(t.staticSensitivity){let d=_t.call(o,f);return this.disconnectables(t.signal,u,c,d)}return this.disconnectables(t.signal,u,c)}observeSync(e,r,t={}){[e,r,t={}]=this.resolveArgs(arguments);let{context:i,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",l=t.subtree?"subtree":"children";this.registry(s).size||vt.call(o,s,y=>{this.forEachMatchingContext(s,y,Fe)});let u=new o.MutationObserver(y=>y.forEach(m=>{Array.isArray((m=wt.call(o,m)).event)||Fe.call(o,d,m,i)}));u.observe(i,{childList:!0,subtree:t.subtree});let c={disconnect(){u.disconnect(),h.delete(d),h.size||a.delete(i)}},f=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),d={context:i,spec:e,callback:r,params:t,signalGenerator:f,disconnectable:c},a=this.registry(s,l);a.has(i)||a.set(i,new Set);let h=a.get(i);if(h.add(d),t.staticSensitivity){let y=_t.call(o,d);return this.disconnectables(t.signal,c,f,y)}return this.disconnectables(t.signal,c,f)}};function _t(n){let e=this,{context:r,spec:t,callback:i,params:o,signalGenerator:s}=n,l=t.filter(h=>h.kind==="css"),u=h=>h.match(/\.([\w-]+)/g)?.length?["class"]:[],c=h=>h.match(/#([\w-]+)/g)?.length?["id"]:[],f=h=>[...h.matchAll(/\[([^\=\]]+)(\=[^\]]+)?\]/g)].map(y=>y[1]).concat(u(h)).concat(c(h));if(!(n.$attrs=Array.from(new Set(l.filter(h=>(h+"").includes("[")).reduce((h,y)=>h.concat(f(y+"")),[])))).length)return;let d=new Set,a=new Set;return d.push=h=>(a.delete(h),d.add(h)),a.push=h=>(d.delete(h),a.add(h)),n.$deliveryCache={entrants:d,exits:a},new B(r,e).observe(n.$attrs,h=>{let y=new Map,m=p=>(y.has(p)||y.set(p,{target:p,entrants:[],exits:[],type:"static",event:null}),y.get(p)),_=new WeakMap,g=p=>(_.has(p)||_.set(p,l.some(b=>p.matches(b+""))),_.get(p));for(let p of h)["entrants","exits"].forEach(b=>{o.generation&&b!==o.generation||n.$deliveryCache[b].has(p.target)||(b==="entrants"?!g(p.target):g(p.target))||(n.$deliveryCache[b].push(p.target),m(p.target)[b].push(p.target),m(p.target).event=p.event)});for(let[,p]of y){let b=s?.generate()||{};i(p,b,r)}},{subtree:o.subtree,timing:o.timing,eventDetails:o.eventDetails})}function Fe(n,e){let{context:r,spec:t,callback:i,params:o,signalGenerator:s,$deliveryCache:l}=n,u={...e,entrants:[],exits:[]};if(o.eventDetails||delete u.event,["entrants","exits"].forEach(f=>{if(!(o.generation&&f!==o.generation)&&(t.length?u[f]=Bt.call(this,t,e[f],e.event!=="parse"):u[f]=[...e[f]],!!l))for(let d of u[f])l[f].push(d)}),!u.entrants.length&&!u.exits.length)return;let c=s?.generate()||{};i(u,c,r)}function Bt(n,e,r){e=Array.isArray(e)?e:[...e];let t=(i,o)=>{if(o.type==="selector"){let s=o.isXpathAttr?[]:i.filter(l=>o.kind==="xpath"?dt(this,l,o+""):l.matches&&l.matches(o+""));if((r||o.isXpathAttr)&&(s=i.reduce((l,u)=>o.kind==="xpath"?[...l,...Pe(this,u,o,r)]:u.querySelectorAll?[...l,...u.querySelectorAll(o+"")]:l,s)),s.length)return s}else if(i.includes(o.content)||r&&i.some(s=>s.contains(o.content)))return[o.content]};return e.$$searchCache||(e.$$searchCache=new Map),n.reduce((i,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)),i.concat(s)},[])}function wt({target:n,addedNodes:e,removedNodes:r}){let t=this,i;return i=T(e).reduce((o,s)=>o||t.webqit.realdom.domInterceptionRecords?.get(s),null),i=T(r).reduce((o,s)=>o||t.webqit.realdom.domInterceptionRecords?.get(s),i),i=i||t.document.readyState==="loading"&&"parse"||"mutation",{target:n,entrants:e,exits:r,type:"observation",event:i}}function vt(n,e){let r=this,{webqit:t,document:i,Node:o,CharacterData:s,Element:l,HTMLElement:u,HTMLTemplateElement:c,DocumentFragment:f}=r;t.realdom.domInterceptionHooks||Object.defineProperty(t.realdom,"domInterceptionHooks",{value:new Map}),t.realdom.domInterceptionHooks.has(n)||t.realdom.domInterceptionHooks.set(n,new Set),t.realdom.domInterceptionHooks.get(n).add(e);let d=()=>t.realdom.domInterceptionHooks.get(n).delete(e);if(t.realdom.domInterceptionHooks?.intercepting)return d;console.warn("DOM mutation APIs are now being intercepted."),t.realdom.domInterceptionHooks.intercepting=!0,Object.defineProperty(t.realdom,"domInterceptionRecords",{value:new Map});let a=(m,_)=>{m.entrants.concat(m.exits).forEach(p=>{clearTimeout(t.realdom.domInterceptionRecords.get(p)?.timeout),t.realdom.domInterceptionRecords.set(p,m.event);let b=setTimeout(()=>{t.realdom.domInterceptionRecords.delete(p)},0);Object.defineProperty(m.event,"timeout",{value:b,configurable:!0})}),t.realdom.domInterceptionHooks.get("intercept")?.forEach(p=>p(m));let g=_();return t.realdom.domInterceptionHooks.get("sync")?.forEach(p=>p(m)),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(m=>{function _(...g){let p=this instanceof s?h.characterData:h.other,b=()=>p[m].call(this,...g);if(!(this instanceof s||this instanceof l||this instanceof f))return b();let q=[],E=[],X=this;["insertBefore"].includes(m)?E=[g[0]]:["insertAdjacentElement","insertAdjacentHTML"].includes(m)?(E=[g[1]],["beforebegin","afterend"].includes(g[0])&&(X=this.parentNode)):["setHTML","replaceChildren"].includes(m)?(q=[...this.childNodes],E=m==="replaceChildren"?[...g]:[g[0]]):["replaceWith","remove"].includes(m)?(q=[this],E=m==="replaceWith"?[...g]:[],X=this.parentNode):["replaceChild"].includes(m)?(q=[g[1]],E=[g[0]]):["removeChild"].includes(m)?q=[...g]:(E=[...g],["before","after"].includes(m)&&(X=this.parentNode));let U=m;if(["insertAdjacentHTML","setHTML"].includes(m)){let rt=this.nodeName;if(m==="insertAdjacentHTML"&&["beforebegin","afterend"].includes(g[0])){if(!this.parentNode)return p[m].call(this,...g);rt=this.parentNode.nodeName}let ve=i.createElement(rt);p.setHTML.call(ve,E[0],m==="setHTML"?g[1]:{}),E=[...ve.childNodes],m==="insertAdjacentHTML"?(U="insertAdjacentElement",g[1]=new f,g[1].______isTemp=!0,g[1].append(...ve.childNodes)):(U="replaceChildren",g=[...ve.childNodes])}return a({target:X,entrants:E,exits:q,type:"interception",event:[this,m]},()=>p[U].call(this,...g))}["insertBefore","replaceChild","removeChild","appendChild"].includes(m)?(h.other[m]=o.prototype[m],o.prototype[m]=_):(["after","before","remove","replaceWith"].includes(m)&&(h.characterData[m]=s.prototype[m],s.prototype[m]=_),l.prototype[m]&&(h.other[m]=l.prototype[m],l.prototype[m]=_))});let y=Object.create(null);return["outerHTML","outerText","innerHTML","innerText","textContent","nodeValue"].forEach(m=>{let _=["textContent","nodeValue"].includes(m)?o:["outerText","innerText"].includes(m)?u:l;y[m]=Object.getOwnPropertyDescriptor(_.prototype,m),Object.defineProperty(_.prototype,m,{...y[m],set:function(g){let p=()=>y[m].set.call(this,g);if(!(this instanceof l))return p();let b=[],q=[],E=this;if(["outerHTML","outerText"].includes(m)?(b=[this],E=this.parentNode):b=[...this.childNodes],["outerHTML","innerHTML"].includes(m)){let U=this.nodeName;if(m==="outerHTML"){if(!this.parentNode)return p();U=this.parentNode.nodeName}let ee=i.createElement(U==="TEMPLATE"?"div":U);y[m].set.call(ee,g),q=this instanceof c?[]:[...ee.childNodes],m==="outerHTML"?(g=new f,g.______isTemp=!0,g.append(...ee.childNodes),p=()=>l.prototype.replaceWith.call(this,g)):this instanceof c?p=()=>this.content.replaceChildren(...ee.childNodes):p=()=>l.prototype.replaceChildren.call(this,...ee.childNodes)}return a({target:E,entrants:q,exits:b,type:"interception",event:[this,m]},p)}})}),["append","prepend","replaceChildren"].forEach(m=>{[i,f.prototype].forEach(_=>{let g=_[m];_[m]=function(...p){if(this.______isTemp)return g.call(this,...p);let b=m==="replaceChildren"?[...this.childNodes]:[];return a({target:this,entrants:p,exits:b,type:"interception",event:[this,m]},()=>g.call(this,...p))}})}),d}function Ot(){zt.call(this),Wt.call(this),Gt.call(this)}function zt(){let n=this;n.CSS||(n.CSS={}),n.CSS.escape||(n.CSS.escape=e=>e.replace(/([\:@\~\$\&])/g,"\\$1"))}function Wt(){let n=this;"isConnected"in n.Node.prototype||Object.defineProperty(n.Node.prototype,"isConnected",{get:function(){return!this.ownerDocument||!(this.ownerDocument.compareDocumentPosition(this)&this.DOCUMENT_POSITION_DISCONNECTED)}})}function Gt(){let n=this;n.Element.prototype.matches||(n.Element.prototype.matches=n.Element.prototype.matchesSelector||n.Element.prototype.mozMatchesSelector||n.Element.prototype.msMatchesSelector||n.Element.prototype.oMatchesSelector||n.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 Et(){let n=this;if(n.webqit||(n.webqit={}),n.webqit.realdom)return n.webqit.realdom;n.webqit.realdom={},Ot.call(n),n.webqit.realdom.meta=(...r)=>Xt.call(n,...r),n.webqit.realdom.ready=(...r)=>Be.call(n,...r),n.webqit.realdom.realtime=(r,t="dom")=>{if(t==="dom")return new de(r,n);if(t==="attr")return new B(r,n)};let e=new ae(n);return n.webqit.realdom.schedule=(r,...t)=>e[`on${r}`](...t),n.webqit.realdom}function Be(...n){let e="interactive",r;ne(n[0])?(e=n[0],v(n[1])&&(r=n[1])):v(n[0])&&(r=n[0]);let t={interactive:["interactive","complete"],complete:["complete"]};if(!t[e])throw new Error(`Invalid ready-state timing: ${e}.`);let i=this;if(!r)return i.webqit.realdom.readyStatePromises||(i.webqit.realdom.readyStatePromises={interactive:new Promise(o=>Be.call(this,"interactive",o)),complete:new Promise(o=>Be.call(this,"complete",o))}),i.webqit.realdom.readyStatePromises[e];if(t[e].includes(i.document.readyState))return r(i);i.webqit.realdom.readyStateCallbacks||(i.webqit.realdom.readyStateCallbacks={interactive:[],complete:[]},i.document.addEventListener("readystatechange",()=>{let o=i.document.readyState;for(let s of i.webqit.realdom.readyStateCallbacks[o].splice(0))s(i)},!1)),i.webqit.realdom.readyStateCallbacks[e].push(r)}function Xt(n){let e=this,r={},t;return(t=e.document.querySelector(`meta[name="${n}"]`))&&(r=(t.content||"").split(";").filter(i=>i).reduce((i,o)=>{let s=o.split("=").map(l=>l.trim());return He(i,s[0].split("."),s[1]==="true"?!0:s[1]==="false"?!1:I(s[1])?parseInt(s[1]):s[1]),i},{})),{get name(){return n},get content(){return t.content},json(){return JSON.parse(JSON.stringify(r))}}}var P=(...n)=>F("oohtml",...n);function ze(n,e,r){let t=n.toUpperCase().replace("-","_"),i=this,o=Et.call(i);return i.webqit||(i.webqit={}),i.webqit.oohtml||(i.webqit.oohtml={}),i.webqit.oohtml.configs||(i.webqit.oohtml.configs={}),i.webqit.oohtml.configs[t]||(i.webqit.oohtml.configs[t]={}),ce(2,i.webqit.oohtml.configs[t],r,e,o.meta(n).json()),{config:i.webqit.oohtml.configs[t],realdom:o,window:i}}function We(n,e,r=1,t=!1){if(r&&typeof n=="object"&&n&&typeof e=="object"&&e&&(!t||Object.keys(n).length===Object.keys(e).length)){for(let i in n)if(!We(n[i],e[i],r-1,t))return!1;return!0}return Array.isArray(n)&&Array.isArray(e)&&n.length===e.length?(e=e.slice(0).sort())&&n.slice(0).sort().every((i,o)=>i===e[o]):n===e}var et={};it(et,{apply:()=>Se,batch:()=>je,construct:()=>Je,defineProperties:()=>er,defineProperty:()=>ye,deleteProperties:()=>tr,deleteProperty:()=>xe,get:()=>k,getOwnPropertyDescriptor:()=>Ie,getOwnPropertyDescriptors:()=>Zt,getPrototypeOf:()=>Xe,has:()=>Ce,intercept:()=>Qt,isExtensible:()=>Ue,observe:()=>Ke,ownKeys:()=>ge,path:()=>Yt,preventExtensions:()=>Qe,read:()=>Kt,reduce:()=>Ze,set:()=>K,setPrototypeOf:()=>Ye});var A=(...n)=>F("observer-api",...n),ie=(n,e)=>n instanceof Promise?n.then(e):e(n),Te={};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 me=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}),Te.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=T(t,!1))&&(r=e.filter(i=>t.includes(i.key))),this.params.diff&&(r=r.filter(i=>i.type!=="set"||i.value!==i.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 i=this.filter===1/0||Array.isArray(this.filter)?this.emit(r,this):this.emit(r[0],this);return ie(i,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,i=this.__namespace){if(!O(r))throw new Error(`Subject must be of type object; "${te(r)}" given!`);let o=this;return i&&A("namespaces").has(e+"-"+i)&&(o=A("namespaces").get(e+"-"+i),e+="-"+i),!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 S=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 z=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 me(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(u=>u.params.withPropertyDescriptors).length,i=r.some(u=>u.isPropertyDescriptors),o=[],s=[],l=e.length;r.forEach(u=>{(t||!i)&&o.push(...u.events),t!==l&&i&&(u.isPropertyDescriptors?s.push(...u.events.map(c=>{let{target:f,type:d,...a}=c,h=new S(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(...u.events))}),e.forEach(u=>{u.params.withPropertyDescriptors?u.fire(o.length?o:s):u.fire(s.length?s:o)})}batch(e){this.batches.unshift({entries:[...this.entries],snapshots:[]});let r=e();return ie(r,t=>{let i=this.batches.shift();return i.snapshots.length&&this.$emit(i.entries,i.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,(...i)=>(this.running=!1,r(...i))))}};var H=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 i(o,...s){let l=t.entries[o];return l?l.exec(e,(...u)=>i(o+1,...u),...s):r?r(e,...s):s[0]}(0)}};var Ge={};it(Ge,{accessorize:()=>Ut,proxy:()=>At,unaccessorize:()=>Jt,unproxy:()=>pe});function Ut(n,e,r={}){n=qe(n);let t=A(n,"accessorizedProps");function i(u){let c,f=n;do c=Object.getOwnPropertyDescriptor(f,u);while(!c&&(f=Object.getPrototypeOf(f)));return c?{proto:f,descriptor:c}:{descriptor:{value:void 0,configurable:!0,enumerable:!0,writable:!0}}}function o(u){if(t.has(u+""))return!0;let c=i(u);c.getValue=function(a=!1){return a?this.descriptor:this.descriptor.get?this.descriptor.get():this.descriptor.value},c.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)},c.intact=function(){let a=Object.getOwnPropertyDescriptor(n,u);return a?.get===d.get&&a?.set===d.set&&t.get(u+"")===this},c.restore=function(){return this.intact()?(this.proto&&this.proto!==n||!this.proto&&!this.dirty?delete n[u]:Object.defineProperty(n,u,this.descriptor),t.delete(u+""),!0):!1},t.set(isNaN(u)?u:parseInt(u),c);let{enumerable:f=!0}=c.descriptor,d={enumerable:f,configurable:!0};("value"in c.descriptor||c.descriptor.set)&&(d.set=function(a){return K(this,u,a,r)}),("value"in c.descriptor||c.descriptor.get)&&(d.get=function(){return k(this,u,r)});try{return Object.defineProperty(n,u,d),!0}catch{return t.delete(u+""),!1}}let l=(Array.isArray(e)?e:e===void 0?Object.keys(n):[e]).map(o);return e===void 0||Array.isArray(e)?l:l[0]}function Jt(n,e,r={}){n=qe(n);let t=A(n,"accessorizedProps");function i(l){return t.has(l+"")?t.get(l+"").restore():!0}let s=(Array.isArray(e)?e:e===void 0?Object.keys(n):[e]).map(i);return e===void 0||Array.isArray(e)?s:s[0]}function At(n,e={},r=void 0){let t=qe(n);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 i={apply(l,u,c){if(Array.isArray(u)){let f=qe(u);return A(f).set("$length",f.length),je(f,()=>Se(l,u,c))}return Se(l,pe(u),c)},construct:(l,u,c=null)=>Je(l,u,c,e),defineProperty:(l,u,c)=>ye(l,u,c,e),deleteProperty:(l,u)=>xe(l,u,e),get:(l,u,c=null)=>{let f={...e,receiver:c};Array.isArray(l)&&u==="length"&&A(l).has("$length")&&(f.forceValue=A(l).get("$length"));let d=k(l,u,f);return Array.isArray(l)&&typeof d=="function"?At(d,{...e,membrane:c}):d},getOwnPropertyDescriptor:(l,u)=>Ie(l,u,e),getPrototypeOf:l=>Xe(l,e),has:(l,u)=>Ce(l,u,e),isExtensible:l=>Ue(l,e),ownKeys:l=>ge(l,e),preventExtensions:l=>Qe(l,e),set:(l,u,c,f=null)=>{let d={...e,receiver:f};return Array.isArray(l)&&u==="length"&&(d.forceOldValue=A(l).get("$length"),A(l).set("$length",c)),K(l,u,c,d)},setPrototypeOf:(l,u)=>Ye(l,u,e)},o=r?.(i)||i,s=new Proxy(t,o);return e.membrane&&A(t,"membraneRef").set(e.membrane,s),A(s).set(s,t),s}function pe(n){return A(n).get(n)||n}function qe(n){if(!n||!O(n))throw new Error("Target must be of type object!");return pe(n)}var be=class extends Array{};function Yt(...n){return new be(...n)}function Ze(n,e,r,t=o=>o,i={}){if(!!e.length)return function o(s,l,u){let c=l[u.level],f=u.level===l.length-1;return s instanceof S&&s.operation!=="get"?u={...u,probe:"always"}:u.probe!=="always"&&(u={...u,probe:!f}),r(s,c,(d,...a)=>{let h=m=>{m instanceof S&&(m.path=[m.key],s instanceof S&&(m.path=s.path.concat(m.key),Object.defineProperty(m,"context",{get:()=>s,configurable:!0})))},y=m=>{let _=D(m,!1);return ie(_,g=>{m instanceof S?m.value=g:m=g;let p=a[0]||{};return o(m,l,{...u,...p,level:u.level+1})})};return Me(c)&&Array.isArray(d)?(d.forEach(h),f?t(d,...a):d.map(y)):(h(d),f?t(d,...a):y(d))},u)}(n,e.slice(0),{...i,level:0})}function Ke(n,e,r,t={}){if(n=D(n,!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 Ze(n,e,Ke,r,t);if(t={...t,descripted:!0},delete t.live,!O(n))return t.probe&&k(n,e,r,t);let i=Pt(n,e,r,t);return t.probe?k(n,e,i,t):i()}function Qt(n,e,r={}){return n=D(n),w(e)||([,,,r={}]=arguments,e={[arguments[1]]:arguments[2]}),H.getInstance(n,!0,r.namespace).addRegistration({traps:e,params:r})}function Ie(n,e,r=i=>i,t={}){return L(n,"getOwnPropertyDescriptor",{key:e},r,t)}function Zt(n,e,r=i=>i,t={}){return L(n,"getOwnPropertyDescriptors",{key:e},r,t)}function Xe(n,e=t=>t,r={}){return L(n,"getPrototypeOf",{},e,r)}function Ue(n,e=t=>t,r={}){return L(n,"isExtensible",{},e,r)}function ge(n,e=t=>t,r={}){return L(n,"ownKeys",{},e,r)}function Ce(n,e,r=i=>i,t={}){return L(n,"has",{key:e},r,t)}function k(n,e,r=i=>i,t={}){let i,o=D(n,!t.level);return w(r)?[t,r]=[r,s=>s]:t.live&&(i=!0),e instanceof be?Ze(o,e,k,r,t):rr(o,e,s=>{let l=[...s];return function u(c,f,d){if(!f.length)return d(c);let a=f.shift();if(!["string","number","symbol"].includes(typeof a))throw new Error(`Property name/key ${a} invalid.`);function h(_,g=void 0){let p=E=>(_.value=E,u([...c,t.live||t.descripted?_:E],f,d));if(arguments.length>1)return p(g);if(!O(o))return p(o?.[_.key]);let b=A(o,"accessorizedProps",!1),q=b&&b.get(_.key);if(q&&q.intact())return p(q.getValue(t.withPropertyDescriptors));if(t.withPropertyDescriptors){let E=Object.getOwnPropertyDescriptor(o,_.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,_.key,...t.receiver?[t.receiver]:[]))}let y=new S(o,{type:"get",key:a,value:void 0,operation:"get",related:l});if(!O(o))return h(y);let m=H.getInstance(o,!1,t.namespace);return m?m.emit(y,h):h(y)}([],s.slice(0),u=>{let c=Me(e)?u:u[0];return i&&O(o)?Pt(o,e,r,t)(c):r(c)})},t)}function je(n,e,r={}){return n=D(n),z.getInstance(n,!0,r.namespace).batch(e)}function Kt(n,e,r={}){e=D(e),n=D(n);let t=(r.only||[]).slice(0),i=(r.except||[]).slice(0),o=ge(r.spread?[...n]:n).map(c=>isNaN(c)?c:parseInt(c)),s=t.length?t.filter(c=>o.includes(c)):o.filter(c=>!i.includes(c)),l=c=>!Array.isArray(e)||isNaN(c)?c:c-i.filter(f=>f<c).length,u=c=>{let f=Ie(n,c,r);"value"in f&&f.writable&&f.enumerable&&f.configurable?K(e,l(c),f.value,r):(f.enumerable||r.onlyEnumerable===!1)&&ye(e,c,{...f,configurable:!0},r)};return je(e,()=>{s.forEach(u)}),Ke(n,c=>{c.filter(f=>t.length?t.includes(f.key):!i.includes(f.key)).forEach(f=>{if(f.operation==="deleteProperty")return xe(e,l(f.key),r);if(f.operation==="defineProperty"){(f.value.enumerable||r.onlyEnumerable===!1)&&ye(e,l(f.key),{...f.value,configurable:!0},r);return}u(f.key)})},{...r,withPropertyDescriptors:!0})}function K(n,e,r,t=s=>s,i={},o=!1){let s=D(n),l=[[e,r]];w(e)&&([,,t=c=>c,i={},o=!1]=arguments,l=Object.entries(e)),w(t)&&([o,i,t]=[typeof i=="boolean"?i:o,t,c=>c]);let u=l.map(([c])=>c);return function c(f,d,a){if(!d.length)return a(f);let[h,y]=d.shift();function m(g,p=void 0){let b=X=>(g.status=X,c(f.concat(g),d,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 _(g,p){if(i.diff&&y===p)return c(f,d,a);let b=new S(s,{type:o?"def":"set",key:h,value:y,isUpdate:g,oldValue:p,related:[...u],operation:o?"defineProperty":"set",detail:i.detail}),q=H.getInstance(s,!1,i.namespace);return q?q.emit(b,m):m(b)}return Ce(s,h,g=>{if(!g)return _(g);let p={...i,withPropertyDescriptors:o};return"forceOldValue"in i&&(p.forceValue=i.forceOldValue),k(s,h,b=>_(g,b),p)},i)}([],l.slice(0),c=>{let f=z.getInstance(s,!1,i.namespace);return f&&f.emit(c,o),t(Me(e)?c.map(d=>d.status):c[0]?.status)})}function ye(n,e,r,t=o=>o,i={}){return K(n,e,r,t,i,!0)}function er(n,e,r=i=>i,t={}){return K(n,e,r,t,!0)}function xe(n,e,r=i=>i,t={}){n=D(n),w(r)&&([t,r]=[r,s=>s]);let i=T(e,!1),o=[...i];return function s(l,u,c){if(!u.length)return c(l);let f=u.shift();function d(h,y=void 0){let m=p=>(h.status=p,s(l.concat(h),u,c));if(arguments.length>1)return m(h,y);let _=A(n,"accessorizedProps",!1),g=_&&_.get(h.key);return g&&!g.restore()&&m(!1),m(Reflect.deleteProperty(n,h.key))}function a(h){let y=new S(n,{type:"delete",key:f,oldValue:h,related:[...o],operation:"deleteProperty",detail:t.detail}),m=H.getInstance(n,!1,t.namespace);return m?m.emit(y,d):d(y)}return k(n,f,a,t)}([],i.slice(0),s=>{let l=z.getInstance(n,!1,t.namespace);return l&&l.emit(s),r(Me(e)?s.map(u=>u.status):s[0].status)})}function tr(n,e,r=i=>i,t={}){return xe(...arguments)}function Je(n,e,r=null,t=o=>o,i={}){return L(n,"construct",arguments.length>2?{argumentsList:e,newTarget:r}:{argumentsList:e},t,i)}function Se(n,e,r,t=o=>o,i={}){return L(n,"apply",{thisArgument:e,argumentsList:r},t,i)}function Ye(n,e,r=i=>i,t={}){return L(n,"setPrototypeOf",{proto:e},r,t)}function Qe(n,e=t=>t,r={}){return L(n,"preventExtensions",{},e,r)}function Pt(n,e,r,t={}){let i;t.signal||(i=new AbortController,t={...t,signal:i.signal},Te.setMaxListeners?.(0,i.signal));let o=z.getInstance(n,!0,t.namespace);return function s(l,u=null){u?.remove();let f={signal:o.addRegistration(e,s,t).signal};if(arguments.length){let d=r(l,f);if(arguments.length>1)return d}return i}}function L(n,e,r={},t=o=>o,i={}){n=D(n),w(t)&&([i,t]=[t,u=>u]);function o(u,c){return arguments.length>1?t(c):t((Reflect[e]||Object[e])(n,...Object.values(r)))}let s=new S(n,{operation:e,...r}),l=H.getInstance(n,!1,i.namespace);return l?l.emit(s,o):o(s)}function Me(n){return n===1/0||Array.isArray(n)}function D(n,e=!0){if((!n||!O(n))&&e)throw new Error(`Object must be of type object or array! "${te(n)}" given.`);return n instanceof S&&(n=n.value),n&&pe(n)}function rr(n,e,r,t={}){return e===1/0?t.level&&!O(n)?r([]):ge(n,r,t):r(T(e,!1))}var nr={...et,...Ge},_e=nr;var we=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){_e.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 n=this;return class extends n.Event{constructor(r,t,{type:i="contextrequest",...o}={}){super(i,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 M=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 i;r||(i=new we(e,this["#"].host),r=i.callback.bind(i));let o=this["#"].host.dispatchEvent(new this.ContextRequestEvent(e,r,{bubbles:!0,...t}));return i??o}dispose(){}};var W=class{static get config(){return{}}static attachTo(e,r,t=!1){this.providers.set(this.type,this);let i,o=M.instance(e);return!t&&(i=o.findProvider(s=>this.matchId(s.id,r)))?i:o.attachProvider(new this(r))}static detachFrom(e,r,t=!1){let i,o=M.instance(e);for(i of o["#"].contexts)if(!(!this.matchId(i.id,r)||typeof t=="function"&&!t(i))&&(o.detachProvider(i),typeof multiple!="function"&&!t))return i}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 We(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),M.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:i,callback:o,options:s}=r;M.instance(t).request(i,o,s)}),this}};J(W,"providers",new Map),J(W,"type");var oe=class extends W{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=_e.reduce(this.bindingsObj,Array.isArray(e.request.detail)?e.request.detail:[e.request.detail],_e.get,r=>{this.disposed||e.respondWith(r.value)},{live:e.request.live,descripted:!0})}};J(oe,"type","bindings");var V=class{parseExpr(e,r){return e.match(/[\+\-\*\/&|\?\:\=\<\>\%]+|(['"])[^'"]*\1|\[[^\]]*\]|\([^)]*\)|\S+/g).map(i=>i.trim()).map(i=>{let o={};if(i[0]==="!"&&(o={negation:!0},i=i.slice(1)),/^\(.*\)$/.test(i))return{type:"expr",value:this.parseExpr(i.slice(1,-1),r),...o};if(['"',"'"].includes(i[0]))return{type:"literal",value:/(['"])(.*?)\1/g.exec(i)[2],...o};if(/[\+\-\*\/&|\?\:\=\<\>\%]/.test(i))return{type:"operator",value:i,...o};if(!isNaN(i))return{type:"literal",value:parseFloat(i),...o};let s=i.match(/[^\.\[\]]+/g);return r.push(s),{type:"ref",value:s,...o}})}renderExpr(e,r){return e.reduce(([t,i,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"&&i?.value!==":")return[null,null,"alternate"];let l,u=(c,f)=>c.negation?!f:f;switch(s.type){case"ref":l=u(s,r[s.value.join(".")].value);break;case"expr":l=u(s,this.renderExpr(s.value,r));break;default:l=u(s,s.value)}switch(i?.value){case"-":return[t-l,null,o];case"+":return[t+l,null,o];case"/":return[t/l,null,o];case"*":return[t*l,null,o];case"%":return[t%l,null,o];case"===":return[t===l,null,o];case"==":return[u(i,t==l),null,o];case">=":return[t>=l,null,o];case"<=":return[t<=l,null,o];case">":return[t>l,null,o];case"<":return[t<l,null,o];case"||":return[t||l,null,o];case"&&":return[t&&l,null,o];case"?":return t?[l,null,"consequent"]:[null,null,"alternate"];case"??":return[t??l,null,o];default:return[l]}},[null,null])[0]}render(e){let r=this.renderExpr(this.expr,e);if(typeof r>"u"){if(r=this.originalValue,!this.dirty)if(this._booleanAble)r=!1;else return;this.value=r;return}this.value=r}disconnect(){this.disconnected=!0}};J(V,"tokens",{startTag:"{",endTag:"}",get contains(){return`contains(., "${this.startTag}") and contains(substring-after(., "${this.startTag}"), "${this.endTag}")`},get startsAndEnds(){return`starts-with(., "${this.startTag}") and substring(., string-length(.) - string-length("${this.endTag}") + 1) = "${this.endTag}"`},get regex(){let e=this.startTag.split("").map(t=>"\\"+t),r=this.endTag.split("").map(t=>"\\"+t);return`${e.join("")}([^${e[0]}]+)${r.join("")}`}});var j=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 V))throw new Error("Argument must be instance of Bracelet.");let r=super.add(e),t=this["#"].bindings;return e.refs.forEach(i=>{let o=i.join(".");if(!(o in t)){t[o]={subs:new Set,controller:new AbortController};let s=oe.createRequest({detail:i,live:!0,signal:t[o].signal});M.instance(this["#"].host).request(s,l=>{t[o].value=l,t[o].subs.forEach(u=>u.render(t))})}t[o].subs.add(e)}),e.render(t),r}delete(e){if(!(e instanceof V))throw new Error("Argument must be instance of Bracelet.");let r=super.delete(e),t=this["#"].bindings;return e.refs.forEach(i=>{let o=i.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 $=class extends V{static get query(){return`@*[${this.tokens.contains}]`}static parse(...e){return e.reduce((r,t)=>r.concat([...t.nodeValue.matchAll(new RegExp(this.tokens.regex,"g"))].reduce((i,o)=>{let s=new this(t,o[0],o.index,o[1].trim(),t.nodeName==="class"||o[0]===t.nodeValue.trim()),l=i.slice(-1)[0];return l&&(l._nextSibling=s),i.concat(s)},[])),[])}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 i=t.get(r.attr.nodeName);i||(i=new Set,t.set(r.attr.nodeName,i)),i.add(r),t.active[0]?._nested.add(r),j.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(i=>{i.disconnect(),j.instance(i.ownerElement).delete(i)}),t?.delete(r.nodeName),t&&!t.size&&P(r.ownerElement).delete("attr-bracelets")}}constructor(e,r,t,i,o){super();let s=[],l=this.parseExpr(i,s),u=e.ownerElement;if(Object.defineProperties(this,{type:{get:()=>"attr"},expr:{get:()=>l},refs:{get:()=>s},attr:{get:()=>e},ownerElement:{get:()=>u},originalValue:{value:r},_value:{value:r,writable:!0},_dirty:{value:!1,writable:!0},_startIndex:{value:void 0,writable:!0},_endIndex:{value:void 0,writable:!0},_nextSibling:{value:void 0,writable:!0},_booleanAble:{value:o,writable:!0},_nested:{value:new Set}}),this.attr.nodeName==="class"&&(this.expr.length!==1||this.expr[0].type!=="ref"))throw new Error(`Invalid bracelet for the class attribute: "${this.originalValue}"`);this.startIndex=t}get isBoolean(){return this._booleanAble&&typeof this._value=="boolean"}get startIndex(){return this._startIndex}set startIndex(e){this._startIndex=e,this.endIndex=this._startIndex+this.value.length}get endIndex(){return this._endIndex}set endIndex(e){e!==this._endIndex&&(this.nextSibling&&(this.nextSibling.startIndex+=e-this._endIndex),this._endIndex=e)}get value(){return this._value}set value(e){if(this.disconnected||e===this._value)return;this._value=e,this._dirty=!0,this._nested.forEach(i=>i.disconnect());let r=P(this.ownerElement).get("attr-bracelets");r.active.unshift(this),this.isBoolean&&this.attr.nodeName!=="class"?this.ownerElement.toggleAttribute(this.attr.nodeName,e):(this.isBoolean&&this.attr.nodeName==="class"&&(e=e?this.expr[0].value.join(""):""),this.ownerElement.setAttribute(this.attr.nodeName,this.attr.nodeValue.substring(0,this.startIndex)+e+this.attr.nodeValue.substring(this.endIndex))),r.active.shift();let t=this.startIndex+e.length;t!==this.endIndex&&(this.endIndex=t)}get nextSibling(){return this._nextSibling}get dirty(){return this._dirty}};var G=class extends V{static get query(){return`text()[not(ancestor::script) and not(ancestor::style) and ${this.tokens.contains}]`}static parse(...e){return e.reduce((r,t)=>{let i=t,o=t,s,l;for(;o&&(s=o.nodeValue.indexOf(this.tokens.startTag))>-1;)s>0&&(i=o.splitText(s)),(l=i.nodeValue.indexOf(this.tokens.endTag)+this.tokens.endTag.length)!==i.nodeValue.length?o=i.splitText(l):o=null,r.push(new this(i));return r},[])}static mount(...e){for(let r of e)P(r.node).set("text-bracelet",r),j.instance(r.ownerElement).add(r)}static cleanup(...e){for(let r of e){let t=P(r).get("text-bracelet");!t||(t.disconnect(),j.instance(t.ownerElement).delete(t),P(r).delete("text-bracelet"))}}constructor(e){super();let r=[...e.nodeValue.match(new RegExp(this.constructor.tokens.regex))][1].trim(),t=[],i=this.parseExpr(r,t);Object.defineProperties(this,{_value:{value:e.nodeValue,writable:!0},_dirty:{value:!1,writable:!0},type:{get:()=>"text"},expr:{get:()=>i},refs:{get:()=>t},node:{get:()=>e},ownerElement:{get:()=>e.parentNode},originalValue:{value:e.nodeValue}})}get value(){return this._value}set value(e){this.disconnected||e===this._value||(this._value=e,this._dirty=!0,this.node.nodeValue=e)}get nextSibling(){return this.node.nextSibling}get dirty(){return this._dirty}};function tt(n={}){let{config:e,realdom:r,window:t}=ze.call(this,"html-bracelets",n,{api:{bracelets:"bracelets"},isomorphic:!0});ir.call(t,e),or.call(t,e)}function ir(n){let e=this;if(n.api.bracelets in e.document)throw new Error(`document already has a "${n.api.bracelets}" property!`);if(n.api.bracelets in e.HTMLElement.prototype)throw new Error(`The "HTMLElement" class already has a "${n.api.bracelets}" property!`);Object.defineProperty(e.document,n.api.bracelets,{get:function(){return j.instance(e.document)}}),Object.defineProperty(e.HTMLElement.prototype,n.api.bracelets,{get:function(){return j.instance(this)}})}function or(n){let e=this,{realdom:r}=e.webqit;r.realtime(e.document).subtree(`(${G.query})`,t=>{G.cleanup(...t.exits),G.mount(...G.parse(...t.entrants.filter(i=>!P(i).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 i of t)P(i.target).get("attr-bracelets")?.active.some(o=>o.attr.nodeName===i.name)||[...P(i.target).get("attr-bracelets")?.get(i.name)||[]].some(o=>o.isBoolean)||(i.oldValue&&$.cleanup(i.value?i.target.attributes[i.name]:{ownerElement:i.target,nodeName:i.name}),i.value&&$.mount(...$.parse(i.target.attributes[i.name])))},{subtree:!0,newValue:!0,oldValue:!0,timing:"sync"})}tt.call(window);})();
|
|
2
|
-
//# sourceMappingURL=html-bracelets.js.map
|