@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.
- 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 +13 -13
- package/dist/html-bindings.js.map +2 -2
- 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 +22 -22
- 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 +2 -2
- package/dist/scoped-js.js.map +3 -3
- package/package.json +4 -4
- package/src/html-bindings/index.js +52 -52
- 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 +1 -1
- package/src/scoped-js/index.js +2 -2
- package/dist/html-bracelets.js +0 -2
- package/dist/html-bracelets.js.map +0 -7
|
@@ -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 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
|
|
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 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
|