@webqit/oohtml 4.1.5 → 4.1.8
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/data-binding.js +11 -6
- package/dist/data-binding.js.map +3 -3
- package/dist/html-imports.js +1 -1
- package/dist/html-imports.js.map +2 -2
- package/dist/main.js +22 -17
- package/dist/main.js.map +3 -3
- package/dist/main.lite.js +19 -14
- package/dist/main.lite.js.map +3 -3
- package/dist/scoped-js.js +1 -1
- package/dist/scoped-js.js.map +2 -2
- package/package.json +1 -1
- package/src/data-binding/index.js +56 -21
- package/src/html-imports/HTMLModule.js +12 -6
- package/src/init.js +5 -5
- package/src/scoped-js/index.js +32 -18
package/dist/data-binding.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(()=>{function v(n){return!Array.isArray(n)&&typeof n=="object"&&n}function g(n){return Array.isArray(n)}function fe(n,e,r=null){return g(e)?n.filter(t=>r?e.filter(i=>r(t,i)).length:e.indexOf(t)!==-1):[]}function I(n,...e){if(globalThis.webqit||(globalThis.webqit={}),globalThis.webqit.refs||Object.defineProperty(globalThis.webqit,"refs",{value:new U}),!arguments.length)return globalThis.webqit.refs;let r=globalThis.webqit.refs.get(n);r||(r=new U,globalThis.webqit.refs.set(n,r));let t,i;for(;t=e.shift();)(i=r)&&!(r=r.get(t))&&(r=new U,i.set(t,r));return r}var U=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)!(te([e,"*"],i.type)&&te([r,"*"],i.key)&&i.callback===t)||this.observers.delete(i)}fire(e,r,...t){for(let i of this.observers)!(te([e,"*"],i.type)&&te([r,"*"],i.key))||i.callback(...t)}},te=(n,e)=>Array.isArray(e)?fe(n,e).length:n.includes(e);function B(n){return typeof n=="function"}function G(n){return n===null||n===""}function q(n){return arguments.length&&(n===void 0||typeof n>"u")}function A(n){return Array.isArray(n)||typeof n=="object"&&n||B(n)}function ce(n){return G(n)||q(n)||n===!1||n===0||A(n)&&!Object.keys(n).length}function w(n){return B(n)||n&&{}.toString.call(n)==="[object function]"}function X(n){return n instanceof Number||typeof n=="number"}function C(n){return X(n)||n!==!0&&n!==!1&&n!==null&&n!==""&&!isNaN(n*1)}function R(n){return n instanceof String||typeof n=="string"&&n!==null}function ue(n){return!R(n)&&!q(n.length)}function re(n,...e){return e.forEach(r=>{n.indexOf(r)<0&&n.push(r)}),n}function ae(t,e){e=e||Object.prototype,e=e&&!g(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 me(n,e){var r=[];return ae(n,e).forEach(t=>{re(r,...Object.getOwnPropertyNames(t))}),r}function M(n,e,r=!1,t=!1,i=!1){var o=0,s=n.shift();if((C(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,c)=>{!A(l)&&!w(l)||(r?me(l):Object.keys(l)).forEach(u=>{if(!!e(u,s,l,c)){var f=s[u],m=l[u];if((g(f)&&g(m)||v(f)&&v(m))&&(o===!0||o>0))s[u]=g(f)&&g(m)?[]:{},M([C(o)?o-1:o,s[u],f,m],e,r,t,i);else if(g(s)&&g(l))t?s[u]=m:s.push(m);else try{i?Object.defineProperty(s,u,Object.getOwnPropertyDescriptor(l,u)):s[u]=l[u]}catch{}}})}),s}function z(...n){return M(n,(e,r,t)=>!0,!1,!1,!1)}function $(n,e=!0){return g(n)?n:!e&&v(n)?[n]:n!==!1&&n!==0&&ce(n)?[]:ue(n)?Array.prototype.slice.call(n):v(n)?Object.values(n):[n]}function Q(n,e,r={},t={}){e=$(e).slice();for(var i=n;!q(i)&&!G(i)&&e.length;){var o=e.shift();if(!(r.get?r.get(i,o):A(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 pe(n,e,r,t={},i={}){let o=(f,m,a)=>i.set?i.set(f,m,a):(C(e[l])&&g(f)?f.push(a):f[m]=a,!0);e=$(e);for(var s=n,l=0;l<e.length;l++)if(l<e.length-1){if(!s||!A(s)&&!w(s))return!1;var c=Q(s,e[l],i);if(!A(c)){if(i.buildTree===!1)return!1;c=w(i.buildTree)?i.buildTree(l):C(e[l+1])?[]:{};var u=o(s,e[l],c);if(!u)return!1}s=c}else return o(s,e[l],r)}var J=class{constructor(e,r=!1){Object.defineProperty(this,"window",{value:e}),Object.defineProperty(this,"readCallbacks",{value:new Set}),Object.defineProperty(this,"writeCallbacks",{value:new Set}),Object.defineProperty(this,"_synthesis",{value:0,writable:!0}),!r&&this.window.requestAnimationFrame?this._loop():this._synthesis++}get synthesis(){return this._synthesis}async synthesizeWhile(e){this._synthesis++,this._fulfill();let r=await e();return this._synthesis--,r}_fulfill(){for(let e of this.readCallbacks)e(),this.readCallbacks.delete(e);for(let e of this.writeCallbacks)e(),this.writeCallbacks.delete(e)}_loop(){this.window.requestAnimationFrame(()=>{this._fulfill(),this._loop()})}onread(e,r=!1){if(r)return new Promise(t=>{this.synthesis?t(e()):this.readCallbacks.add(()=>{t(e())})});this.synthesis?Promise.resolve().then(e):this.readCallbacks.add(e)}onwrite(e,r=!1){if(r)return new Promise(t=>{this.synthesis?t(e()):this.writeCallbacks.add(()=>{t(e())})});this.synthesis?Promise.resolve().then(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),c=u=>{u!==void 0&&this.cycle(e,r,u)};l instanceof Promise?l.then(c):c(l)})};i instanceof Promise?i.then(o):o(i)})}};function Ie(n){return(n=n.trim())&&n.startsWith("(")&&n.endsWith(")")}function ie(n,e,r,t=!0){r=(Array.isArray(r)?r:[r]).map(s=>(s+"").replace("(",t?"(.//":"(./")).join("|");let i=[],o;try{let s=n.document.evaluate(r,e,null,n.XPathResult.ANY_TYPE);for(;o=s.iterateNext();)i.push(o)}catch{}return i}function Ce(n,e,r){r=(Array.isArray(r)?r:[r]).map(t=>(t+"").replace("(","(self::")).join("|");try{return n.document.evaluate(`${r}`,e,null,n.XPathResult.BOOLEAN_TYPE).booleanValue}catch{}}function Y(n,e,r,t=!1){let i=e.getRootNode(),o=r.getRootNode();return i===o?e.contains(r):t&&o instanceof n.ShadowRoot?Y(n,e,o.host,t):!1}function Te(n,e="|"){return[...n].reduce(([r,t,i,o],s)=>!r&&t===0&&(Array.isArray(e)?e:[e]).includes(s)?[r,t,[""].concat(i)]:(!r&&["(","[","{"].includes(s)&&!i[0].endsWith("\\")&&t++,!r&&[")","]","}"].includes(s)&&!i[0].endsWith("\\")&&t--,['"',"'","`"].includes(s)&&!i[0].endsWith("\\")&&(r=r===s?null:r||s),i[0]+=s,[r,t,i]),[null,0,[""]])[2].reverse()}var T=class{constructor(e){this.content=e,this.type=typeof e=="string"?"selector":"instance",this.kind=this.type==="instance"?null:Ie(e)?"xpath":"css",this.kind==="xpath"&&(this.isXpathAttr=Te(e.trim().slice(1,-1),"@").length>1)}toString(){return this.content}};var D=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(w(e[0])?e=[[],...e]:v(e[0])&&!(e[0]instanceof T)&&e.length===1?e=[[],void 0,e[0]]:v(e[1])&&e.length===2?e=[$(e[0],!1),void 0,e[1]]:e[0]=$(e[0],!1),e[0].filter(r=>typeof r!="string"&&!(r instanceof T)&&!(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 T?r:new T(r)),e}registry(...e){return I("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,c]of this.registry(e))for(let[u,f]of c){let m=o.filter(a=>Y(i,u,a.target,l==="cross-roots")?["subtree","cross-roots"].includes(l)||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[l,c,u]of s)t.call(i,l,c,u)}disconnectables(e,...r){let t={disconnect(){r.forEach(i=>i&&w(i.disconnect)&&i.disconnect()||w(i)&&i()||v(i)&&(i.disconnected=!0))}};return e&&e.addEventListener("abort",()=>t.disconnect()),t}};var L=class extends D{constructor(e,...r){super(e,"attr",...r)}get(e,r=void 0,t={}){let i=typeof e=="string"||e instanceof T;[e=[],r=void 0,t={}]=this.resolveArgs(arguments);let{context:o}=this,s=qe(o,e);if(!r)return s;let l=t.lifecycleSignals&&this.createSignalGenerator();if(i)for(let c of s){let u=l?.generate()||{};r(c,u,o)}else{let c=l?.generate()||{};r(s,c,o)}if(t.live){l&&(t={...t,signalGenerator:l});let c=this.observe(i?e[0]:e,r,{newValue:!0,...t});return this.disconnectables(t.signal,c)}}observe(e,r,t={}){let i=typeof e=="string"||e instanceof T;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&&Me.call(s,"intercept",()=>{});let c=new s.MutationObserver(a=>{a=Pe(a).map(d=>ke.call(s,d)),Ne.call(s,m,a,o)}),u={attributes:!0,attributeOldValue:t.oldValue,subtree:t.subtree&&!0};e.length&&(u.attributeFilter=e.map(a=>a+"")),c.observe(o,u);let f=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),m={context:o,spec:e,callback:r,params:t,atomics:new Map,originalFilterIsString:i,signalGenerator:f,disconnectable:c};return this.disconnectables(t.signal,c,f)}observeSync(e,r,t={}){let i=typeof e=="string"||e instanceof T;[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",c=t.subtree==="cross-roots"?"cross-roots":t.subtree?"subtree":"children";this.registry(l).size||Me.call(s,l,_=>{this.forEachMatchingContext(l,_,Ne)});let u={disconnect(){d.delete(m),d.size||a.delete(o)}},f=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),m={context:o,spec:e,callback:r,params:t,atomics:new Map,originalFilterIsString:i,signalGenerator:f,disconnectable:u},a=this.registry(l,c);a.has(o)||a.set(o,new Set);let d=a.get(o);return d.add(m),this.disconnectables(t.signal,u,f)}};function Pe(n){return n.reduce((e,r,t)=>e[t-1]?.attributeName===r.attributeName||I(r.target,"internalAttrInteractions").get(r.attributeName)?e:e.concat(r),[])}function Ne(n,e){let{context:r,spec:t,callback:i,params:o,atomics:s,originalFilterIsString:l,signalGenerator:c}=n,u=t.map(a=>a+"");if(o.atomic&&!s.size?e=qe(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 d;return o.eventDetails||({event:d,...a}=a),!o.oldValue&&"oldValue"in a&&({oldValue:d,...a}=a),!o.newValue&&"value"in a?{value:d,...a}=a:o.newValue&&typeof a.value>"u"&&(a={...a,value:oe(a.target,a.name,()=>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,m=c?.generate()||{};i(f,m,r)}function oe(n,e,r){let t=I(n,"internalAttrInteractions").get(e);I(n,"internalAttrInteractions").set(e,!0);let i=r();return I(n,"internalAttrInteractions").set(e,t),i}function qe(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:oe(n,o,()=>n.getAttribute(o)),...t})):Array.from(n.attributes).map(o=>r.find(s=>s.name===o.nodeName)||{target:n,name:o.nodeName,value:oe(n,o.nodeName,()=>o.nodeValue),...t})}function ke({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 Me(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,m)=>{t.realdom.attrInterceptionRecords.has(f.target)||t.realdom.attrInterceptionRecords.set(f.target,{});let a=t.realdom.attrInterceptionRecords.get(f.target);if(a[f.name]=a[f.name]||[],a[f.name].unshift(f.event),I(f.target,"internalAttrInteractions").get(f.name))return m();t.realdom.attrInterceptionHooks.get("intercept")?.forEach(_=>_([f]));let d=m();return t.realdom.attrInterceptionHooks.get("sync")?.forEach(_=>_([f])),d};new r.MutationObserver(f=>{f=f.filter(m=>!(r.webqit.realdom.attrInterceptionRecords?.get(m.target)||{})[m.attributeName]?.shift()),f=Pe(f).map(m=>ke.call(r,m)),f.length&&(t.realdom.attrInterceptionHooks.get("intercept")?.forEach(m=>m(f)),t.realdom.attrInterceptionHooks.get("sync")?.forEach(m=>m(f)))}).observe(i,{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,d=oe(this,m[0],()=>this.getAttribute(m[0]));["setAttribute","toggleAttribute"].includes(f)&&(a=m[1]),f==="toggleAttribute"&&a===void 0&&(a=d===null);let _={target:this,name:m[0],value:a,oldValue:d,type:"interception",event:[this,f]};return l(_,()=>u[f].call(this,...m))}}),s}var Z=class extends D{constructor(e,...r){super(e,"tree",...r)}attr(e,r=void 0,t={}){let{context:i,window:o}=this;return new L(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=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)[...i.children].forEach(u=>s(i).entrants.push(u));else if(e.every(u=>u.type==="selector")){let[u,f]=e.reduce(([a,d],_)=>_.kind==="xpath"?[a,d.concat(_)]:[a.concat(_),d],[[],[]]),m=[];t.subtree?(u.length&&m.push(...i.querySelectorAll(u.join(","))),f.length&&m.push(...ie(this.window,i,f))):(u.length&&m.push(...[...i.children].filter(a=>a.matches(u))),f.length&&m.push(...ie(this.window,i,f,!1))),m.forEach(a=>s(a.parentNode||i).entrants.push(a))}}if(!r)return o;let l={disconnected:!1},c=r&&t.lifecycleSignals&&this.createSignalGenerator();for(let[,u]of o){if(l.disconnected)break;let f=c?.generate()||{};r(u,f,i)}if(t.live){c&&(t={...t,signalGenerator:c});let u=this.observe(e,r,t);return this.disconnectables(t.signal,l,u)}return this.disconnectables(t.signal,l,c)}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&&je.call(o,"sync",()=>{});let c=new o.MutationObserver(m=>m.forEach(a=>{_e.call(o,f,Le.call(o,a),i)}));c.observe(i,{childList:!0,subtree:t.subtree&&!0});let u=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),f={context:i,spec:e,callback:r,params:t,signalGenerator:u,disconnectable:c};if(t.staticSensitivity){let m=He.call(o,f);return this.disconnectables(t.signal,c,u,m)}return this.disconnectables(t.signal,c,u)}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==="cross-roots"?"cross-roots":t.subtree?"subtree":"children";this.registry(s).size||je.call(o,s,_=>{this.forEachMatchingContext(s,_,_e)});let c=new o.MutationObserver(_=>_.forEach(O=>{Array.isArray((O=Le.call(o,O)).event)||_e.call(o,m,O,i)}));c.observe(i,{childList:!0,subtree:t.subtree&&!0});let u={disconnect(){c.disconnect(),d.delete(m),d.size||a.delete(i)}},f=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),m={context:i,spec:e,callback:r,params:t,signalGenerator:f,disconnectable:u},a=this.registry(s,l);a.has(i)||a.set(i,new Set);let d=a.get(i);if(d.add(m),t.staticSensitivity){let _=He.call(o,m);return this.disconnectables(t.signal,u,f,_)}return this.disconnectables(t.signal,u,f)}track(e,r,t={}){return t={subtree:!0,...t},this.observe(e,i=>{i.entrants.length&&r(!0,Array.isArray(e)?i.entrants:i.entrants[0]),i.exits.length&&r(!1,Array.isArray(e)?i.exits:i.exits[0])},t)}};function He(n){let e=this,{context:r,spec:t,callback:i,params:o,signalGenerator:s}=n,l=t.filter(d=>d.kind==="css"),c=d=>d.match(/\.([\w-]+)/g)?.length?["class"]:[],u=d=>d.match(/#([\w-]+)/g)?.length?["id"]:[],f=d=>[...d.matchAll(/\[([^\=\]]+)(\=[^\]]+)?\]/g)].map(_=>_[1]).concat(c(d)).concat(u(d));if(!(n.$attrs=Array.from(new Set(l.filter(d=>(d+"").includes("[")).reduce((d,_)=>d.concat(f(_+"")),[])))).length)return;let m=new Set,a=new Set;return m.push=d=>(a.delete(d),m.add(d)),a.push=d=>(m.delete(d),a.add(d)),n.$deliveryCache={entrants:m,exits:a},new L(r,e).observe(n.$attrs,d=>{let _=new Map,O=y=>(_.has(y)||_.set(y,{target:y,entrants:[],exits:[],type:"static",event:null}),_.get(y)),x=new WeakMap,p=y=>(x.has(y)||x.set(y,l.some(b=>y.matches(b+""))),x.get(y));for(let y of d)["entrants","exits"].forEach(b=>{o.generation&&b!==o.generation||n.$deliveryCache[b].has(y.target)||(b==="entrants"?!p(y.target):p(y.target))||(n.$deliveryCache[b].push(y.target),O(y.target)[b].push(y.target),O(y.target).event=y.event)});for(let[,y]of _){let b=s?.generate()||{};i(y,b,r)}},{subtree:o.subtree,timing:o.timing,eventDetails:o.eventDetails})}function _e(n,e){let{context:r,spec:t,callback:i,params:o,signalGenerator:s,$deliveryCache:l}=n,c={...e,entrants:[],exits:[]};if(o.eventDetails||delete c.event,["entrants","exits"].forEach(f=>{if(!(o.generation&&f!==o.generation)&&(t.length?c[f]=ot.call(this,t,o.subtree==="cross-roots",e[f],e.event!=="parse"):c[f]=[...e[f]],!!l))for(let m of c[f])l[f].push(m)}),!c.entrants.length&&!c.exits.length)return;let u=s?.generate()||{};i(c,u,r)}function ot(n,e,r,t){r=Array.isArray(r)?r:[...r];let i=(o,s)=>{if(s.type==="selector"){let l=s.isXpathAttr?[]:o.filter(c=>s.kind==="xpath"?Ce(this,c,s+""):c.matches&&c.matches(s+""));if((t||s.isXpathAttr)&&(l=o.reduce((c,u)=>s.kind==="xpath"?[...c,...ie(this,u,s,t)]:u.querySelectorAll?[...c,...u.querySelectorAll(s+"")]:c,l)),l.length)return l}else if(o.includes(s.content)||t&&o.some(l=>Y(this,l,s.content,e)))return[s.content]};return r.$$searchCache||(r.$$searchCache=new Map),n.reduce((o,s)=>{let l;return r.$$searchCache.has(s.content)?l=r.$$searchCache.get(s.content):(l=i(r,s)||[],s.type==="instance"&&r.$$searchCache.set(s.content,l)),o.concat(l)},[])}function Le({target:n,addedNodes:e,removedNodes:r}){let t=this,i;return i=$(e).reduce((o,s)=>o||t.webqit.realdom.domInterceptionRecords?.get(s),null),i=$(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 je(n,e){let r=this,{webqit:t,document:i,Node:o,CharacterData:s,Element:l,HTMLElement:c,HTMLTemplateElement:u,DocumentFragment:f}=r;t.realdom.domInterceptionHooks||Object.defineProperty(t.realdom,"domInterceptionHooks",{value:new Map}),t.realdom.domInterceptionNoRecurse||Object.defineProperty(t.realdom,"domInterceptionNoRecurse",{value:new Map}),t.realdom.domInterceptionHooks.has(n)||t.realdom.domInterceptionHooks.set(n,new Set),t.realdom.domInterceptionHooks.get(n).add(e);let m=()=>t.realdom.domInterceptionHooks.get(n).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=(p,y,b)=>{t.realdom.domInterceptionNoRecurse.set(p,y);let h=b();return t.realdom.domInterceptionNoRecurse.delete(p),h},d=(p,y)=>{p.entrants.concat(p.exits).forEach(h=>{clearTimeout(t.realdom.domInterceptionRecords.get(h)?.timeout),t.realdom.domInterceptionRecords.set(h,p.event);let N=setTimeout(()=>{t.realdom.domInterceptionRecords.delete(h)},0);Object.defineProperty(p.event,"timeout",{value:N,configurable:!0})}),t.realdom.domInterceptionHooks.get("intercept")?.forEach(h=>h(p));let b=y();return t.realdom.domInterceptionHooks.get("sync")?.forEach(h=>h(p)),b},_={ShadowRoot:["innerHTML"],DocumentFragment:["replaceChildren","append","prepend"],Document:["replaceChildren","append","prepend"],HTMLElement:["outerText","innerText"],Element:["append","prepend","before","after","insertAdjacentElement","insertAdjacentHTML","remove","replaceChildren","replaceWith","setHTML","innerHTML","outerHTML"],CharacterData:["before","after","remove","replaceWith"],Node:["insertBefore","replaceChild","removeChild","appendChild","textContent","nodeValue"]},O={ShadowRoot:Object.create(null),DocumentFragment:Object.create(null),Document:Object.create(null),HTMLElement:Object.create(null),Element:Object.create(null),CharacterData:Object.create(null),Node:Object.create(null)};return new Set(Object.values(_).reduce((p,y)=>p.concat(y),[])).forEach(p=>{Object.keys(_).forEach(h=>{if(!_[h].includes(p))return;let N=Object.getOwnPropertyDescriptor(r[h].prototype,p);!N||(Object.defineProperty(r[h].prototype,p,"value"in N?{...N,value:y}:{...N,set:b}),O[h][p]=N)});function y(...h){let N=Object.keys(O).find(E=>this instanceof r[E]&&p in O[E]),F=O[N],k=()=>F[p].value.call(this,...h);if(t.realdom.domInterceptionNoRecurse.get(this)===p)return k();let P=[],S=[],j=this;["insertBefore"].includes(p)?S=[h[0]]:["insertAdjacentElement","insertAdjacentHTML"].includes(p)?(S=[h[1]],["beforebegin","afterend"].includes(h[0])&&(j=this.parentNode)):["setHTML","replaceChildren"].includes(p)?(P=[...this.childNodes],S=p==="replaceChildren"?[...h]:[h[0]]):["replaceWith","remove"].includes(p)?(P=[this],S=p==="replaceWith"?[...h]:[],j=this.parentNode):["replaceChild"].includes(p)?(P=[h[1]],S=[h[0]]):["removeChild"].includes(p)?P=[...h]:(S=[...h],["before","after"].includes(p)&&(j=this.parentNode));let K=p;if(["insertAdjacentHTML","setHTML"].includes(p)){let E=this.nodeName;if(p==="insertAdjacentHTML"&&["beforebegin","afterend"].includes(h[0])){if(!this.parentNode)return F[p].value.call(this,...h);E=this.parentNode.nodeName}let ee=i.createElement(E);F.setHTML.value.call(ee,S[0],p==="setHTML"?h[1]:{}),S=[...ee.childNodes],p==="insertAdjacentHTML"?(K="insertAdjacentElement",h[1]=new f,a(h[1],"append",()=>h[1].append(...ee.childNodes))):(K="replaceChildren",h=[...ee.childNodes])}return d({target:j,entrants:S,exits:P,type:"interception",event:[this,p]},()=>F[K].value.call(this,...h))}function b(h){let N=Object.keys(O).find(H=>this instanceof r[H]&&p in O[H]),F=O[N],k=()=>F[p].set.call(this,h);if(t.realdom.domInterceptionNoRecurse.get(this)===p)return k();let P=[],S=[],j=this;if(["outerHTML","outerText"].includes(p)?(P=[this],j=this.parentNode):P=[...this.childNodes],["outerHTML","innerHTML"].includes(p)){let H=this.nodeName;if(p==="outerHTML"){if(!this.parentNode)return k();H=this.parentNode.nodeName}let E=i.createElement(H==="TEMPLATE"||H.includes("-")?"div":H);a(E,p,()=>E[p]=h),S=this instanceof u?[]:[...E.childNodes],p==="outerHTML"?(h=new f,a(h,"append",()=>h.append(...E.childNodes)),k=()=>a(this,"replaceWith",()=>l.prototype.replaceWith.call(this,h))):this instanceof u?k=()=>a(this.conten,"replaceChildren",()=>this.content.replaceChildren(...E.childNodes)):k=()=>a(this,"replaceChildren",()=>l.prototype.replaceChildren.call(this,...E.childNodes))}return d({target:j,entrants:S,exits:P,type:"interception",event:[this,p]},k)}}),m}function De(){st.call(this),lt.call(this),ft.call(this)}function st(){let n=this;n.CSS||(n.CSS={}),n.CSS.escape||(n.CSS.escape=e=>e.replace(/([\:@\~\$\&])/g,"\\$1"))}function lt(){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 ft(){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 Fe(){let n=this;if(n.webqit||(n.webqit={}),n.webqit.realdom)return n.webqit.realdom;n.webqit.realdom={},De.call(n),n.webqit.realdom.meta=(...r)=>ct.call(n,...r),n.webqit.realdom.ready=(...r)=>ye.call(n,...r),n.webqit.realdom.realtime=(r,t="dom")=>{if(t==="dom")return new Z(r,n);if(t==="attr")return new L(r,n)};let e=new J(n);return n.webqit.realdom.schedule=(r,...t)=>e[`on${r}`](...t),n.webqit.realdom.synthesizeWhile=(...r)=>e.synthesizeWhile(...r),n.webqit.realdom}function ye(...n){let e="interactive",r;R(n[0])?(e=n[0],w(n[1])&&(r=n[1])):w(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=>ye.call(this,"interactive",o)),complete:new Promise(o=>ye.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 ct(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 pe(i,s[0].split("."),s[1]==="true"?!0:s[1]==="false"?!1:C(s[1])?parseInt(s[1]):s[1]),i},{})),{get name(){return n},get content(){return t.content},json(){return JSON.parse(JSON.stringify(r))}}}function se(n,e){return typeof n!="string"?n:n.replace(/\w\S*/g,function(r){return r.charAt(0).toUpperCase()+(typeof e!==void 0&&e?r.substr(1).toLowerCase():r.substr(1))})}var W=(...n)=>I("oohtml",...n),mt={};function Re(n,e,r){let t=this,i=Fe.call(t);mt.window=t,t.webqitConfig||(t.webqitConfig=i.meta("webqit").json()),t.webqit||(t.webqit={}),t.webqit.oohtml||(t.webqit.oohtml={}),t.webqit.oohtml.configs||(t.webqit.oohtml.configs={});let o=n.toUpperCase().replace("-","_");if(!t.webqit.oohtml.configs[o]){t.webqit.oohtml.configs[o]={};let s=t.webqit.oohtml.configs[o];z(2,s,r,e,i.meta(n).json()),t.webqitConfig.prefix&&Object.keys(s).forEach(l=>{Object.keys(s[l]).forEach(c=>{l==="api"&&typeof s[l][c]=="string"?s[l][c]=`${t.webqitConfig.prefix}${se(s[l][c])}`:["attr","elements"].includes(l)&&s[l][c]?.startsWith("data-")===!1&&(s[l][c]=`${t.webqitConfig.prefix}-${s[l][c]}`)})})}return{config:t.webqit.oohtml.configs[o],realdom:i,window:t}}function le(n,e){return[...n].reduce(([r,t,i],o)=>!r&&t===0&&(Array.isArray(e)?e:[e]).includes(o)?[r,t,[""].concat(i)]:(!r&&["(","[","{"].includes(o)&&!i[0].endsWith("\\")&&t++,!r&&[")","]","}"].includes(o)&&!i[0].endsWith("\\")&&t--,['"',"'","`"].includes(o)&&!i[0].endsWith("\\")&&(r=r===o?null:r||o),i[0]+=o,[r,t,i]),[null,0,[""]])[2].reverse()}function be(n={}){let{config:e,window:r}=Re.call(this,"data-binding",n,{attr:{render:"render",itemIndex:"data-key"},tokens:{nodeType:"processing-instruction",tagStart:"?{",tagEnd:"}?",stateStart:"; [=",stateEnd:"]"}});({CONTEXT_API:e.CONTEXT_API,BINDINGS_API:e.BINDINGS_API,HTML_IMPORTS:e.HTML_IMPORTS}=r.webqit.oohtml.configs),e.attrSelector=`[${r.CSS.escape(e.attr.render)}]`;let t=(i,o)=>{let s=`starts-with(., "${i}")`,l=`substring(., string-length(.) - string-length("${o}") + 1) = "${o}"`;return`${s} and ${l}`};e.discreteBindingsSelector=`comment()[${t(e.tokens.tagStart,e.tokens.tagEnd)}]`,dt.call(r,e)}function dt(n){let e=this,{webqit:{realdom:r}}=e;r.realtime(e.document).query(`(${n.discreteBindingsSelector})`,t=>{We.call(this,...t.exits),pt.call(this,n,...t.entrants)},{live:!0,subtree:"cross-roots",timing:"sync"}),r.realtime(e.document).query(n.attrSelector,t=>{We.call(this,...t.exits),gt.call(this,n,...t.entrants)},{live:!0,subtree:"cross-roots",timing:"sync",staticSensitivity:!0})}function Ve(n,e){let{webqit:{realdom:r,Observer:t,DOMBindingsContext:i}}=this;if(W(e).has("data-binding"))return W(e).get("data-binding");let o=Object.create(null),s=new AbortController;o.$exec__=(c,u,...f)=>{r.schedule("write",()=>c[u](...f))},o.$assign__=(c,u,f)=>{r.schedule("write",()=>c[u]=f)},t.intercept(o,{get:(c,u,f)=>{if(!(c.key in o)){let m={...i.createRequest(c.key),live:!0,signal:s.signal};e[n.CONTEXT_API.api.contexts].request(m,a=>{t.set(o,c.key,a)})}return f(o[c.key]??(c.key in globalThis?globalThis[c.key]:void 0))},has:(c,u,f)=>f(!0)});let l={scope:o,abortController:s,bindings:new Map};return W(e).set("data-binding",l),l}function We(...n){for(let e of n){let r=e.nodeName==="#text"?e.parentNode:e,{bindings:t,abortController:i}=W(r).get("data-binding")||{};if(!t?.has(e))return;t.get(e).state.dispose(),t.get(e).signals?.forEach(o=>o.abort()),t.delete(e),t.size||(i.abort(),W(r).delete("data-binding"))}}async function pt(n,...e){let r=this,t=o=>{let s=n.tokens.tagStart.split("").map(d=>`\\${d}`).join(""),l=n.tokens.tagEnd.split("").map(d=>`\\${d}`).join(""),c=n.tokens.stateStart.split("").map(d=>d===" "?"(?:\\s+)?":`\\${d}`).join(""),u=n.tokens.stateEnd.split("").map(d=>`\\${d}`).join(""),f=`^${s}(.*?)(?:${c}(\\d+)${u}(?:\\s+)?)?${l}$`,[,m,a]=o.match(new RegExp(f));return{raw:o,expr:m,span:parseInt(a??0)}},i=e.reduce((o,s)=>{if(s.isBound)return o;let l=t(s.nodeValue),c=s;if(l.span){if(c=s.nextSibling,c?.nodeName!=="#text"||c.nodeValue.length<l.span)return o;c.nodeValue.length>l.span&&c.splitText(l.span)}else c=s.ownerDocument.createTextNode(""),s.after(c);c.isBound=!0;let u=s;return r.webqit.env!=="server"&&(u.remove(),u=null),o.concat({textNode:c,template:l,anchorNode:u})},[]);for(let{textNode:o,template:s,anchorNode:l}of i){let c=ht(n,s.expr),{scope:u,bindings:f}=Ve.call(this,n,o.parentNode);Object.defineProperty(o,"$oohtml_internal_databinding_anchorNode",{value:l,configurable:!0}),f.set(o,{state:await(await c.bind(o,u)).execute()})}}var we=new Map;function ht(n,e){if(we.has(e))return we.get(e);let r=`let content = ((${e}) ?? '') + '';`;r+="$assign__(this, 'nodeValue', content);",r+=`if ( this.$oohtml_internal_databinding_anchorNode ) { $assign__(this.$oohtml_internal_databinding_anchorNode, 'nodeValue', "${n.tokens.tagStart}${V(e)}${n.tokens.stateStart}" + content.length + "${n.tokens.stateEnd} ${n.tokens.tagEnd}"); }`;let{webqit:{QuantumModule:t}}=this,i=new t(r);return we.set(e,i),i}async function gt(n,...e){for(let r of e){let t=_t(n,r.getAttribute(n.attr.render)),{scope:i,bindings:o}=Ve.call(this,n,r),s=[];Object.defineProperty(r,"$oohtml_internal_databinding_signals",{value:s,configurable:!0}),o.set(r,{signals:s,state:await(await t.bind(r,i)).execute()})}}var xe=new Map;function _t(n,e){if(xe.has(e))return xe.get(e);let r={},t=le(e,";").map(s=>{let[l,c]=le(s,":").map(d=>d.trim()),u=l[0],f=l.slice(1).trim(),m=`(${c})`,a=`(${m} ?? '')`;if(u==="&")return f.startsWith("--")?`$exec__(this.style, 'setProperty', "${V(f)}", ${a});`:`$assign__(this.style, "${V(f)}", ${a});`;if(u==="%")return`$exec__(this.classList, 'toggle', "${V(f)}", !!${m});`;if(u==="~")return f.startsWith("?")?`$exec__(this, 'toggleAttribute', "${V(f.substring(1).trim())}", !!${m});`:`$exec__(this, 'setAttribute', "${V(f)}", ${a});`;if(u==="@"){if(r[f])throw new Error(`Duplicate binding: ${l}.`);if(r[f]=!0,f==="text")return`$assign__(this, 'textContent', ${a});`;if(f==="html")return`$exec__(this, 'setHTML', ${a});`;if(f==="items"){let[d,_]=le(c,"/");if(!_)throw new Error(`Invalid ${u}items spec: ${s}; no import specifier.`);let[O,x,p,y]=d.trim().match(/(.*?[\)\s+])(of|in)([\(\{\[\s+].*)/i)||[];if(!O)throw new Error(`Invalid ${u}items spec: ${s}.`);if(x.startsWith("(")?x=x.trim().slice(1,-1).split(",").map(h=>h.trim()):x=[x],x.length>(p==="in"?3:2))throw new Error(`Invalid ${u}items spec: ${s}.`);let b=p==="in"?x[2]:x[1]||"$index__";return`
|
|
1
|
+
(()=>{function ve(n){return(n=n.trim())&&n.startsWith("(")&&n.endsWith(")")}function te(n,e,r,t=!0){r=(Array.isArray(r)?r:[r]).map(s=>(s+"").replace("(",t?"(.//":"(./")).join("|");let i=[],o;try{let s=n.document.evaluate(r,e,null,n.XPathResult.ANY_TYPE);for(;o=s.iterateNext();)i.push(o)}catch{}return i}function Oe(n,e,r){r=(Array.isArray(r)?r:[r]).map(t=>(t+"").replace("(","(self::")).join("|");try{return n.document.evaluate(`${r}`,e,null,n.XPathResult.BOOLEAN_TYPE).booleanValue}catch{}}function U(n,e,r,t=!1){let i=e.getRootNode(),o=r.getRootNode();return i===o?e.contains(r):t&&o instanceof n.ShadowRoot?U(n,e,o.host,t):!1}function $e(n,e="|"){return[...n].reduce(([r,t,i,o],s)=>!r&&t===0&&(Array.isArray(e)?e:[e]).includes(s)?[r,t,[""].concat(i)]:(!r&&["(","[","{"].includes(s)&&!i[0].endsWith("\\")&&t++,!r&&[")","]","}"].includes(s)&&!i[0].endsWith("\\")&&t--,['"',"'","`"].includes(s)&&!i[0].endsWith("\\")&&(r=r===s?null:r||s),i[0]+=s,[r,t,i]),[null,0,[""]])[2].reverse()}function v(n){return!Array.isArray(n)&&typeof n=="object"&&n}function g(n){return Array.isArray(n)}function ce(n,e,r=null){return g(e)?n.filter(t=>r?e.filter(i=>r(t,i)).length:e.indexOf(t)!==-1):[]}function I(n,...e){if(globalThis.webqit||(globalThis.webqit={}),globalThis.webqit.refs||Object.defineProperty(globalThis.webqit,"refs",{value:new G}),!arguments.length)return globalThis.webqit.refs;let r=globalThis.webqit.refs.get(n);r||(r=new G,globalThis.webqit.refs.set(n,r));let t,i;for(;t=e.shift();)(i=r)&&!(r=r.get(t))&&(r=new G,i.set(t,r));return r}var G=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)!(re([e,"*"],i.type)&&re([r,"*"],i.key)&&i.callback===t)||this.observers.delete(i)}fire(e,r,...t){for(let i of this.observers)!(re([e,"*"],i.type)&&re([r,"*"],i.key))||i.callback(...t)}},re=(n,e)=>Array.isArray(e)?ce(n,e).length:n.includes(e);function B(n){return typeof n=="function"}function X(n){return n===null||n===""}function q(n){return arguments.length&&(n===void 0||typeof n>"u")}function $(n){return Array.isArray(n)||typeof n=="object"&&n||B(n)}function ae(n){return X(n)||q(n)||n===!1||n===0||$(n)&&!Object.keys(n).length}function w(n){return B(n)||n&&{}.toString.call(n)==="[object function]"}function z(n){return n instanceof Number||typeof n=="number"}function C(n){return z(n)||n!==!0&&n!==!1&&n!==null&&n!==""&&!isNaN(n*1)}function R(n){return n instanceof String||typeof n=="string"&&n!==null}function ue(n){return!R(n)&&!q(n.length)}function ne(n,...e){return e.forEach(r=>{n.indexOf(r)<0&&n.push(r)}),n}function me(t,e){e=e||Object.prototype,e=e&&!g(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 de(n,e){var r=[];return me(n,e).forEach(t=>{ne(r,...Object.getOwnPropertyNames(t))}),r}function M(n,e,r=!1,t=!1,i=!1){var o=0,s=n.shift();if((C(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)=>{!$(l)&&!w(l)||(r?de(l):Object.keys(l)).forEach(a=>{if(!!e(a,s,l,u)){var f=s[a],m=l[a];if((g(f)&&g(m)||v(f)&&v(m))&&(o===!0||o>0))s[a]=g(f)&&g(m)?[]:{},M([C(o)?o-1:o,s[a],f,m],e,r,t,i);else if(g(s)&&g(l))t?s[a]=m:s.push(m);else try{i?Object.defineProperty(s,a,Object.getOwnPropertyDescriptor(l,a)):s[a]=l[a]}catch{}}})}),s}function Q(...n){return M(n,(e,r,t)=>!0,!1,!1,!1)}function A(n,e=!0){return g(n)?n:!e&&v(n)?[n]:n!==!1&&n!==0&&ae(n)?[]:ue(n)?Array.prototype.slice.call(n):v(n)?Object.values(n):[n]}function J(n,e,r={},t={}){e=A(e).slice();for(var i=n;!q(i)&&!X(i)&&e.length;){var o=e.shift();if(!(r.get?r.get(i,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,m,c)=>i.set?i.set(f,m,c):(C(e[l])&&g(f)?f.push(c):f[m]=c,!0);e=A(e);for(var s=n,l=0;l<e.length;l++)if(l<e.length-1){if(!s||!$(s)&&!w(s))return!1;var u=J(s,e[l],i);if(!$(u)){if(i.buildTree===!1)return!1;u=w(i.buildTree)?i.buildTree(l):C(e[l+1])?[]:{};var a=o(s,e[l],u);if(!a)return!1}s=u}else return o(s,e[l],r)}var Y=class{constructor(e,r=!1){Object.defineProperty(this,"window",{value:e}),Object.defineProperty(this,"readCallbacks",{value:new Set}),Object.defineProperty(this,"writeCallbacks",{value:new Set}),Object.defineProperty(this,"_synthesis",{value:0,writable:!0}),!r&&this.window.requestAnimationFrame?this._loop():this._synthesis++}get synthesis(){return this._synthesis}async synthesizeWhile(e){this._synthesis++,this._fulfill();let r=await e();return this._synthesis--,r}_fulfill(){for(let e of this.readCallbacks)e(),this.readCallbacks.delete(e);for(let e of this.writeCallbacks)e(),this.writeCallbacks.delete(e)}_loop(){this.window.requestAnimationFrame(()=>{this._fulfill(),this._loop()})}onread(e,r=!1){if(r)return new Promise(t=>{this.synthesis?t(e()):this.readCallbacks.add(()=>{t(e())})});this.synthesis?Promise.resolve().then(e):this.readCallbacks.add(e)}onwrite(e,r=!1){if(r)return new Promise(t=>{this.synthesis?t(e()):this.writeCallbacks.add(()=>{t(e())})});this.synthesis?Promise.resolve().then(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=a=>{a!==void 0&&this.cycle(e,r,a)};l instanceof Promise?l.then(u):u(l)})};i instanceof Promise?i.then(o):o(i)})}};var T=class{constructor(e){this.content=e,this.type=typeof e=="string"?"selector":"instance",this.kind=this.type==="instance"?null:ve(e)?"xpath":"css",this.kind==="xpath"&&(this.isXpathAttr=$e(e.trim().slice(1,-1),"@").length>1)}toString(){return this.content}};var D=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(w(e[0])?e=[[],...e]:v(e[0])&&!(e[0]instanceof T)&&e.length===1?e=[[],void 0,e[0]]:v(e[1])&&e.length===2?e=[A(e[0],!1),void 0,e[1]]:e[0]=A(e[0],!1),e[0].filter(r=>typeof r!="string"&&!(r instanceof T)&&!(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 T?r:new T(r)),e}registry(...e){return I("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[a,f]of u){let m=o.filter(c=>U(i,a,c.target,l==="cross-roots")?["subtree","cross-roots"].includes(l)||c.target===a:!1);if(!!m.length){Array.isArray(r)||(m=m[0]);for(let c of f)s.add([c,m,a])}}for(let[l,u,a]of s)t.call(i,l,u,a)}disconnectables(e,...r){let t={disconnect(){r.forEach(i=>i&&w(i.disconnect)&&i.disconnect()||w(i)&&i()||v(i)&&(i.disconnected=!0))}};return e&&e.addEventListener("abort",()=>t.disconnect()),t}};var L=class extends D{constructor(e,...r){super(e,"attr",...r)}get(e,r=void 0,t={}){let i=typeof e=="string"||e instanceof T;[e=[],r=void 0,t={}]=this.resolveArgs(arguments);let{context:o}=this,s=qe(o,e);if(!r)return s;let l=t.lifecycleSignals&&this.createSignalGenerator();if(i)for(let u of s){let a=l?.generate()||{};r(u,a,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 T;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&&Me.call(s,"intercept",()=>{});let u=new s.MutationObserver(c=>{c=Pe(c).map(p=>ke.call(s,p)),Ne.call(s,m,c,o)}),a={attributes:!0,attributeOldValue:t.oldValue,subtree:t.subtree&&!0};e.length&&(a.attributeFilter=e.map(c=>c+"")),u.observe(o,a);let f=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),m={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 T;[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==="cross-roots"?"cross-roots":t.subtree?"subtree":"children";this.registry(l).size||Me.call(s,l,_=>{this.forEachMatchingContext(l,_,Ne)});let a={disconnect(){p.delete(m),p.size||c.delete(o)}},f=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),m={context:o,spec:e,callback:r,params:t,atomics:new Map,originalFilterIsString:i,signalGenerator:f,disconnectable:a},c=this.registry(l,u);c.has(o)||c.set(o,new Set);let p=c.get(o);return p.add(m),this.disconnectables(t.signal,a,f)}};function Pe(n){return n.reduce((e,r,t)=>e[t-1]?.attributeName===r.attributeName||I(r.target,"internalAttrInteractions").get(r.attributeName)?e:e.concat(r),[])}function Ne(n,e){let{context:r,spec:t,callback:i,params:o,atomics:s,originalFilterIsString:l,signalGenerator:u}=n,a=t.map(c=>c+"");if(o.atomic&&!s.size?e=qe(r,t,e):o.timing!=="async"&&t.length&&(e=e.filter(c=>a.includes(c.name))),!e.length)return;o.newValue===null&&o.oldValue===null&&o.eventDetails||(e=e.map(c=>{let p;return o.eventDetails||({event:p,...c}=c),!o.oldValue&&"oldValue"in c&&({oldValue:p,...c}=c),!o.newValue&&"value"in c?{value:p,...c}=c:o.newValue&&typeof c.value>"u"&&(c={...c,value:oe(c.target,c.name,()=>c.target.getAttribute(c.name))}),c})),o.atomic&&(e.forEach(c=>s.set(c.name,c)),e=Array.from(s.entries()).map(([,c])=>c));let f=l?e[0]:e,m=u?.generate()||{};i(f,m,r)}function oe(n,e,r){let t=I(n,"internalAttrInteractions").get(e);I(n,"internalAttrInteractions").set(e,!0);let i=r();return I(n,"internalAttrInteractions").set(e,t),i}function qe(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:oe(n,o,()=>n.getAttribute(o)),...t})):Array.from(n.attributes).map(o=>r.find(s=>s.name===o.nodeName)||{target:n,name:o.nodeName,value:oe(n,o.nodeName,()=>o.nodeValue),...t})}function ke({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 Me(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,m)=>{t.realdom.attrInterceptionRecords.has(f.target)||t.realdom.attrInterceptionRecords.set(f.target,{});let c=t.realdom.attrInterceptionRecords.get(f.target);if(c[f.name]=c[f.name]||[],c[f.name].unshift(f.event),I(f.target,"internalAttrInteractions").get(f.name))return m();t.realdom.attrInterceptionHooks.get("intercept")?.forEach(_=>_([f]));let p=m();return t.realdom.attrInterceptionHooks.get("sync")?.forEach(_=>_([f])),p};new r.MutationObserver(f=>{f=f.filter(m=>!(r.webqit.realdom.attrInterceptionRecords?.get(m.target)||{})[m.attributeName]?.shift()),f=Pe(f).map(m=>ke.call(r,m)),f.length&&(t.realdom.attrInterceptionHooks.get("intercept")?.forEach(m=>m(f)),t.realdom.attrInterceptionHooks.get("sync")?.forEach(m=>m(f)))}).observe(i,{attributes:!0,subtree:!0,attributeOldValue:!0});let a=Object.create(null);return["setAttribute","removeAttribute","toggleAttribute"].forEach(f=>{a[f]=o.prototype[f],o.prototype[f]=function(...m){let c,p=oe(this,m[0],()=>this.getAttribute(m[0]));["setAttribute","toggleAttribute"].includes(f)&&(c=m[1]),f==="toggleAttribute"&&c===void 0&&(c=p===null);let _={target:this,name:m[0],value:c,oldValue:p,type:"interception",event:[this,f]};return l(_,()=>a[f].call(this,...m))}}),s}var Z=class extends D{constructor(e,...r){super(e,"tree",...r)}attr(e,r=void 0,t={}){let{context:i,window:o}=this;return new L(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=a=>(o.has(a)||o.set(a,{target:a,entrants:[],exits:[],type:"query",event:null}),o.get(a));if(!t.generation||t.generation==="entrants"){if(!e.length)[...i.children].forEach(a=>s(i).entrants.push(a));else if(e.every(a=>a.type==="selector")){let[a,f]=e.reduce(([c,p],_)=>_.kind==="xpath"?[c,p.concat(_)]:[c.concat(_),p],[[],[]]),m=[];t.subtree?(a.length&&m.push(...i.querySelectorAll(a.join(","))),f.length&&m.push(...te(this.window,i,f))):(a.length&&m.push(...[...i.children].filter(c=>c.matches(a))),f.length&&m.push(...te(this.window,i,f,!1))),m.forEach(c=>s(c.parentNode||i).entrants.push(c))}}if(!r)return o;let l={disconnected:!1},u=r&&t.lifecycleSignals&&this.createSignalGenerator();for(let[,a]of o){if(l.disconnected)break;let f=u?.generate()||{};r(a,f,i)}if(t.live){u&&(t={...t,signalGenerator:u});let a=this.observe(e,r,t);return this.disconnectables(t.signal,l,a)}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&&je.call(o,"sync",()=>{});let u=new o.MutationObserver(m=>m.forEach(c=>{_e.call(o,f,Le.call(o,c),i)}));u.observe(i,{childList:!0,subtree:t.subtree&&!0});let a=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),f={context:i,spec:e,callback:r,params:t,signalGenerator:a,disconnectable:u};if(t.staticSensitivity){let m=He.call(o,f);return this.disconnectables(t.signal,u,a,m)}return this.disconnectables(t.signal,u,a)}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==="cross-roots"?"cross-roots":t.subtree?"subtree":"children";this.registry(s).size||je.call(o,s,_=>{this.forEachMatchingContext(s,_,_e)});let u=new o.MutationObserver(_=>_.forEach(O=>{Array.isArray((O=Le.call(o,O)).event)||_e.call(o,m,O,i)}));u.observe(i,{childList:!0,subtree:t.subtree&&!0});let a={disconnect(){u.disconnect(),p.delete(m),p.size||c.delete(i)}},f=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),m={context:i,spec:e,callback:r,params:t,signalGenerator:f,disconnectable:a},c=this.registry(s,l);c.has(i)||c.set(i,new Set);let p=c.get(i);if(p.add(m),t.staticSensitivity){let _=He.call(o,m);return this.disconnectables(t.signal,a,f,_)}return this.disconnectables(t.signal,a,f)}track(e,r,t={}){return t={subtree:!0,...t},this.observe(e,i=>{i.entrants.length&&r(!0,Array.isArray(e)?i.entrants:i.entrants[0]),i.exits.length&&r(!1,Array.isArray(e)?i.exits:i.exits[0])},t)}};function He(n){let e=this,{context:r,spec:t,callback:i,params:o,signalGenerator:s}=n,l=t.filter(p=>p.kind==="css"),u=p=>p.match(/\.([\w-]+)/g)?.length?["class"]:[],a=p=>p.match(/#([\w-]+)/g)?.length?["id"]:[],f=p=>[...p.matchAll(/\[([^\=\]]+)(\=[^\]]+)?\]/g)].map(_=>_[1]).concat(u(p)).concat(a(p));if(!(n.$attrs=Array.from(new Set(l.filter(p=>(p+"").includes("[")).reduce((p,_)=>p.concat(f(_+"")),[])))).length)return;let m=new Set,c=new Set;return m.push=p=>(c.delete(p),m.add(p)),c.push=p=>(m.delete(p),c.add(p)),n.$deliveryCache={entrants:m,exits:c},new L(r,e).observe(n.$attrs,p=>{let _=new Map,O=y=>(_.has(y)||_.set(y,{target:y,entrants:[],exits:[],type:"static",event:null}),_.get(y)),x=new WeakMap,d=y=>(x.has(y)||x.set(y,l.some(b=>y.matches(b+""))),x.get(y));for(let y of p)["entrants","exits"].forEach(b=>{o.generation&&b!==o.generation||n.$deliveryCache[b].has(y.target)||(b==="entrants"?!d(y.target):d(y.target))||(n.$deliveryCache[b].push(y.target),O(y.target)[b].push(y.target),O(y.target).event=y.event)});for(let[,y]of _){let b=s?.generate()||{};i(y,b,r)}},{subtree:o.subtree,timing:o.timing,eventDetails:o.eventDetails})}function _e(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]=ot.call(this,t,o.subtree==="cross-roots",e[f],e.event!=="parse"):u[f]=[...e[f]],!!l))for(let m of u[f])l[f].push(m)}),!u.entrants.length&&!u.exits.length)return;let a=s?.generate()||{};i(u,a,r)}function ot(n,e,r,t){r=Array.isArray(r)?r:[...r];let i=(o,s)=>{if(s.type==="selector"){let l=s.isXpathAttr?[]:o.filter(u=>s.kind==="xpath"?Oe(this,u,s+""):u.matches&&u.matches(s+""));if((t||s.isXpathAttr)&&(l=o.reduce((u,a)=>s.kind==="xpath"?[...u,...te(this,a,s,t)]:a.querySelectorAll?[...u,...a.querySelectorAll(s+"")]:u,l)),l.length)return l}else if(o.includes(s.content)||t&&o.some(l=>U(this,l,s.content,e)))return[s.content]};return r.$$searchCache||(r.$$searchCache=new Map),n.reduce((o,s)=>{let l;return r.$$searchCache.has(s.content)?l=r.$$searchCache.get(s.content):(l=i(r,s)||[],s.type==="instance"&&r.$$searchCache.set(s.content,l)),o.concat(l)},[])}function Le({target:n,addedNodes:e,removedNodes:r}){let t=this,i;return i=A(e).reduce((o,s)=>o||t.webqit.realdom.domInterceptionRecords?.get(s),null),i=A(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 je(n,e){let r=this,{webqit:t,document:i,Node:o,CharacterData:s,Element:l,HTMLElement:u,HTMLTemplateElement:a,DocumentFragment:f}=r;t.realdom.domInterceptionHooks||Object.defineProperty(t.realdom,"domInterceptionHooks",{value:new Map}),t.realdom.domInterceptionNoRecurse||Object.defineProperty(t.realdom,"domInterceptionNoRecurse",{value:new Map}),t.realdom.domInterceptionHooks.has(n)||t.realdom.domInterceptionHooks.set(n,new Set),t.realdom.domInterceptionHooks.get(n).add(e);let m=()=>t.realdom.domInterceptionHooks.get(n).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 c=(d,y,b)=>{t.realdom.domInterceptionNoRecurse.set(d,y);let h=b();return t.realdom.domInterceptionNoRecurse.delete(d),h},p=(d,y)=>{d.entrants.concat(d.exits).forEach(h=>{clearTimeout(t.realdom.domInterceptionRecords.get(h)?.timeout),t.realdom.domInterceptionRecords.set(h,d.event);let N=setTimeout(()=>{t.realdom.domInterceptionRecords.delete(h)},0);Object.defineProperty(d.event,"timeout",{value:N,configurable:!0})}),t.realdom.domInterceptionHooks.get("intercept")?.forEach(h=>h(d));let b=y();return t.realdom.domInterceptionHooks.get("sync")?.forEach(h=>h(d)),b},_={ShadowRoot:["innerHTML"],DocumentFragment:["replaceChildren","append","prepend"],Document:["replaceChildren","append","prepend"],HTMLElement:["outerText","innerText"],Element:["append","prepend","before","after","insertAdjacentElement","insertAdjacentHTML","remove","replaceChildren","replaceWith","setHTML","innerHTML","outerHTML"],CharacterData:["before","after","remove","replaceWith"],Node:["insertBefore","replaceChild","removeChild","appendChild","textContent","nodeValue"]},O={ShadowRoot:Object.create(null),DocumentFragment:Object.create(null),Document:Object.create(null),HTMLElement:Object.create(null),Element:Object.create(null),CharacterData:Object.create(null),Node:Object.create(null)};return new Set(Object.values(_).reduce((d,y)=>d.concat(y),[])).forEach(d=>{Object.keys(_).forEach(h=>{if(!_[h].includes(d))return;let N=Object.getOwnPropertyDescriptor(r[h].prototype,d);!N||(Object.defineProperty(r[h].prototype,d,"value"in N?{...N,value:y}:{...N,set:b}),O[h][d]=N)});function y(...h){let N=Object.keys(O).find(E=>this instanceof r[E]&&d in O[E]),F=O[N],k=()=>F[d].value.call(this,...h);if(t.realdom.domInterceptionNoRecurse.get(this)===d)return k();let P=[],S=[],j=this;["insertBefore"].includes(d)?S=[h[0]]:["insertAdjacentElement","insertAdjacentHTML"].includes(d)?(S=[h[1]],["beforebegin","afterend"].includes(h[0])&&(j=this.parentNode)):["setHTML","replaceChildren"].includes(d)?(P=[...this.childNodes],S=d==="replaceChildren"?[...h]:[h[0]]):["replaceWith","remove"].includes(d)?(P=[this],S=d==="replaceWith"?[...h]:[],j=this.parentNode):["replaceChild"].includes(d)?(P=[h[1]],S=[h[0]]):["removeChild"].includes(d)?P=[...h]:(S=[...h],["before","after"].includes(d)&&(j=this.parentNode));let K=d;if(["insertAdjacentHTML","setHTML"].includes(d)){let E=this.nodeName;if(d==="insertAdjacentHTML"&&["beforebegin","afterend"].includes(h[0])){if(!this.parentNode)return F[d].value.call(this,...h);E=this.parentNode.nodeName}let ee=i.createElement(E);F.setHTML.value.call(ee,S[0],d==="setHTML"?h[1]:{}),S=[...ee.childNodes],d==="insertAdjacentHTML"?(K="insertAdjacentElement",h[1]=new f,c(h[1],"append",()=>h[1].append(...ee.childNodes))):(K="replaceChildren",h=[...ee.childNodes])}return p({target:j,entrants:S,exits:P,type:"interception",event:[this,d]},()=>F[K].value.call(this,...h))}function b(h){let N=Object.keys(O).find(H=>this instanceof r[H]&&d in O[H]),F=O[N],k=()=>F[d].set.call(this,h);if(t.realdom.domInterceptionNoRecurse.get(this)===d)return k();let P=[],S=[],j=this;if(["outerHTML","outerText"].includes(d)?(P=[this],j=this.parentNode):P=[...this.childNodes],["outerHTML","innerHTML"].includes(d)){let H=this.nodeName;if(d==="outerHTML"){if(!this.parentNode)return k();H=this.parentNode.nodeName}let E=i.createElement(H==="TEMPLATE"||H.includes("-")?"div":H);c(E,d,()=>E[d]=h),S=this instanceof a?[]:[...E.childNodes],d==="outerHTML"?(h=new f,c(h,"append",()=>h.append(...E.childNodes)),k=()=>c(this,"replaceWith",()=>l.prototype.replaceWith.call(this,h))):this instanceof a?k=()=>c(this.conten,"replaceChildren",()=>this.content.replaceChildren(...E.childNodes)):k=()=>c(this,"replaceChildren",()=>l.prototype.replaceChildren.call(this,...E.childNodes))}return p({target:j,entrants:S,exits:P,type:"interception",event:[this,d]},k)}}),m}function De(){st.call(this),lt.call(this),ft.call(this)}function st(){let n=this;n.CSS||(n.CSS={}),n.CSS.escape||(n.CSS.escape=e=>e.replace(/([\:@\~\$\&])/g,"\\$1"))}function lt(){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 ft(){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 Fe(){let n=this;if(n.webqit||(n.webqit={}),n.webqit.realdom)return n.webqit.realdom;n.webqit.realdom={},De.call(n),n.webqit.realdom.meta=(...r)=>ct.call(n,...r),n.webqit.realdom.ready=(...r)=>ye.call(n,...r),n.webqit.realdom.realtime=(r,t="dom")=>{if(t==="dom")return new Z(r,n);if(t==="attr")return new L(r,n)};let e=new Y(n);return n.webqit.realdom.schedule=(r,...t)=>e[`on${r}`](...t),n.webqit.realdom.synthesizeWhile=(...r)=>e.synthesizeWhile(...r),n.webqit.realdom}function ye(...n){let e="interactive",r;R(n[0])?(e=n[0],w(n[1])&&(r=n[1])):w(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=>ye.call(this,"interactive",o)),complete:new Promise(o=>ye.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 ct(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:C(s[1])?parseInt(s[1]):s[1]),i},{})),{get name(){return n},get content(){return t.content},json(){return JSON.parse(JSON.stringify(r))}}}function se(n,e){return typeof n!="string"?n:n.replace(/\w\S*/g,function(r){return r.charAt(0).toUpperCase()+(typeof e!==void 0&&e?r.substr(1).toLowerCase():r.substr(1))})}var W=(...n)=>I("oohtml",...n),mt={};function Re(n,e,r){let t=this,i=Fe.call(t);mt.window=t,t.webqitConfig||(t.webqitConfig=i.meta("webqit").json()),t.webqit||(t.webqit={}),t.webqit.oohtml||(t.webqit.oohtml={}),t.webqit.oohtml.configs||(t.webqit.oohtml.configs={});let o=n.toUpperCase().replace("-","_");if(!t.webqit.oohtml.configs[o]){t.webqit.oohtml.configs[o]={};let s=t.webqit.oohtml.configs[o];Q(2,s,r,e,i.meta(n).json()),t.webqitConfig.prefix&&Object.keys(s).forEach(l=>{Object.keys(s[l]).forEach(u=>{l==="api"&&typeof s[l][u]=="string"?s[l][u]=`${t.webqitConfig.prefix}${se(s[l][u])}`:["attr","elements"].includes(l)&&s[l][u]?.startsWith("data-")===!1&&(s[l][u]=`${t.webqitConfig.prefix}-${s[l][u]}`)})})}return{config:t.webqit.oohtml.configs[o],realdom:i,window:t}}function le(n,e){return[...n].reduce(([r,t,i],o)=>!r&&t===0&&(Array.isArray(e)?e:[e]).includes(o)?[r,t,[""].concat(i)]:(!r&&["(","[","{"].includes(o)&&!i[0].endsWith("\\")&&t++,!r&&[")","]","}"].includes(o)&&!i[0].endsWith("\\")&&t--,['"',"'","`"].includes(o)&&!i[0].endsWith("\\")&&(r=r===o?null:r||o),i[0]+=o,[r,t,i]),[null,0,[""]])[2].reverse()}function be(n={}){let{config:e,window:r}=Re.call(this,"data-binding",n,{attr:{render:"render",itemIndex:"data-key"},tokens:{nodeType:"processing-instruction",tagStart:"?{",tagEnd:"}?",stateStart:"; [=",stateEnd:"]"}});({CONTEXT_API:e.CONTEXT_API,BINDINGS_API:e.BINDINGS_API,HTML_IMPORTS:e.HTML_IMPORTS}=r.webqit.oohtml.configs),e.attrSelector=`[${r.CSS.escape(e.attr.render)}]`;let t=(i,o)=>{let s=`starts-with(., "${i}")`,l=`substring(., string-length(.) - string-length("${o}") + 1) = "${o}"`;return`${s} and ${l}`};e.discreteBindingsSelector=`comment()[${t(e.tokens.tagStart,e.tokens.tagEnd)}]`,dt.call(r,e)}function dt(n){let e=this,{webqit:{realdom:r}}=e;r.realtime(e.document).query(`(${n.discreteBindingsSelector})`,t=>{We.call(this,...t.exits),ht.call(e,n,...t.entrants)},{live:!0,subtree:"cross-roots",timing:"sync"}),r.realtime(e.document).query(n.attrSelector,t=>{We.call(this,...t.exits),_t.call(e,n,...t.entrants)},{live:!0,subtree:"cross-roots",timing:"sync",staticSensitivity:!0})}function Ve(n,e){let{webqit:{realdom:r,Observer:t,DOMBindingsContext:i}}=this;if(W(e).has("data-binding"))return W(e).get("data-binding");let o=Object.create(null),s=new AbortController;o.$exec__=(u,a,...f)=>{let m=()=>{try{u[a](...f)}catch(c){console.error(`${c.message} at ${c.cause}`)}};r.schedule("write",m)},o.$assign__=(u,a,f)=>{let m=()=>{try{u[a]=f}catch(c){console.error(`${c.message} at ${c.cause}`)}};r.schedule("write",m)},t.intercept(o,{get:(u,a,f)=>{if(!(u.key in o)){let m={...i.createRequest(u.key),live:!0,signal:s.signal};e[n.CONTEXT_API.api.contexts].request(m,c=>{t.set(o,u.key,c)})}return f(o[u.key]??(u.key in globalThis?globalThis[u.key]:void 0))},has:(u,a,f)=>f(!0)});let l={scope:o,abortController:s,bindings:new Map};return W(e).set("data-binding",l),l}function We(...n){for(let e of n){let r=e.nodeName==="#text"?e.parentNode:e,{bindings:t,abortController:i}=W(r).get("data-binding")||{};if(!t?.has(e))return;t.get(e).state.dispose(),t.get(e).signals?.forEach(o=>o.abort()),t.delete(e),t.size||(i.abort(),W(r).delete("data-binding"))}}function pt(n,e){let r=n.tokens.tagStart.split("").map(a=>`\\${a}`).join(""),t=n.tokens.tagEnd.split("").map(a=>`\\${a}`).join(""),i=n.tokens.stateStart.split("").map(a=>a===" "?"(?:\\s+)?":`\\${a}`).join(""),o=n.tokens.stateEnd.split("").map(a=>`\\${a}`).join(""),s=`^${r}(.*?)(?:${i}(\\d+)${o}(?:\\s+)?)?${t}$`,[,l,u]=e.match(new RegExp(s));return{raw:e,expr:l,span:parseInt(u??0)}}async function ht(n,...e){let r=this,t=e.reduce((i,o)=>{if(o.isBound)return i;let s=pt(n,o.nodeValue),l=o;if(s.span){if(l=o.nextSibling,l?.nodeName!=="#text"||l.nodeValue.length<s.span)return i;l.nodeValue.length>s.span&&l.splitText(s.span)}else l=o.ownerDocument.createTextNode(""),o.after(l);l.isBound=!0;let u=o;return r.webqit.env!=="server"&&(u.remove(),u=null),i.concat({textNode:l,template:s,anchorNode:u})},[]);for(let{textNode:i,template:o,anchorNode:s}of t){let l=gt.call(r,n,o.expr),{scope:u,bindings:a}=Ve.call(this,n,i.parentNode);Object.defineProperty(i,"$oohtml_internal_databinding_anchorNode",{value:s,configurable:!0});try{a.set(i,{state:await(await l.bind(i,u)).execute()})}catch(f){console.log(f)}}}var we=new Map;function gt(n,e){if(we.has(e))return we.get(e);let r=`let content = ((${e}) ?? '') + '';`;r+="$assign__(this, 'nodeValue', content);",r+=`if ( this.$oohtml_internal_databinding_anchorNode ) { $assign__(this.$oohtml_internal_databinding_anchorNode, 'nodeValue', "${n.tokens.tagStart}${V(e)}${n.tokens.stateStart}" + content.length + "${n.tokens.stateEnd} ${n.tokens.tagEnd}"); }`;let{webqit:{QuantumModule:t}}=this,i=new t(r);return we.set(e,i),i}async function _t(n,...e){for(let r of e){let t=yt.call(this,n,r.getAttribute(n.attr.render)),{scope:i,bindings:o}=Ve.call(this,n,r),s=[];Object.defineProperty(r,"$oohtml_internal_databinding_signals",{value:s,configurable:!0});try{o.set(r,{signals:s,state:await(await t.bind(r,i)).execute()})}catch(l){console.log(l)}}}var xe=new Map;function yt(n,e){if(xe.has(e))return xe.get(e);let r={},t=le(e,";").map(s=>{let[l,u]=le(s,":").map(p=>p.trim()),a=l[0],f=l.slice(1).trim(),m=`(${u})`,c=`(${m} ?? '')`;if(a==="&")return f.startsWith("--")?`$exec__(this.style, 'setProperty', "${V(f)}", ${c});`:`$assign__(this.style, "${V(f)}", ${c});`;if(a==="%")return`$exec__(this.classList, 'toggle', "${V(f)}", !!${m});`;if(a==="~")return f.startsWith("?")?`$exec__(this, 'toggleAttribute', "${V(f.substring(1).trim())}", !!${m});`:`$exec__(this, 'setAttribute', "${V(f)}", ${c});`;if(a==="@"){if(r[f])throw new Error(`Duplicate binding: ${l}.`);if(r[f]=!0,f==="text")return`$assign__(this, 'textContent', ${c});`;if(f==="html")return`$exec__(this, 'setHTML', ${c});`;if(f==="items"){let[p,_]=le(u,"/");if(!_)throw new Error(`Invalid ${a}items spec: ${s}; no import specifier.`);let[O,x,d,y]=p.trim().match(/(.*?[\)\s+])(of|in)([\(\{\[\s+].*)/i)||[];if(!O)throw new Error(`Invalid ${a}items spec: ${s}.`);if(x.startsWith("(")?x=x.trim().slice(1,-1).split(",").map(h=>h.trim()):x=[x],x.length>(d==="in"?3:2))throw new Error(`Invalid ${a}items spec: ${s}.`);let b=d==="in"?x[2]:x[1]||"$index__";return`
|
|
2
2
|
let $iteratee__ = ${y};
|
|
3
3
|
let $import__ = this.${n.HTML_IMPORTS.api.import}( ${_.trim()}, true );
|
|
4
4
|
this.$oohtml_internal_databinding_signals?.push( $import__ );
|
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
$existing__.set( x.getAttribute( '${n.attr.itemIndex}' ), x );
|
|
10
10
|
} );
|
|
11
11
|
${b?`let ${b} = -1;`:""}
|
|
12
|
-
for ( let ${x[0]} ${
|
|
12
|
+
for ( let ${x[0]} ${d} $iteratee__ ) {
|
|
13
13
|
${b?`${b} ++;`:""}
|
|
14
|
-
${
|
|
14
|
+
${d==="in"&&x[1]?`let ${x[1]} = $iteratee__[ ${x[0]} ];`:""}
|
|
15
15
|
const $itemBinding__ = { ${x.join(", ")} };
|
|
16
16
|
|
|
17
|
-
const $key___ = ( ${
|
|
17
|
+
const $key___ = ( ${d==="in"?x[0]:b} ) + '';
|
|
18
18
|
let $itemNode__ = $existing__.get( $key___ );
|
|
19
19
|
if ( $itemNode__ ) {
|
|
20
20
|
$existing__.delete( $key___ );
|
|
@@ -26,10 +26,15 @@
|
|
|
26
26
|
$exec__(this, 'appendChild', $itemNode__ );
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
if ( ${
|
|
29
|
+
if ( ${d==="in"?`!( ${x[0]} in $iteratee__ )`:`typeof ${x[0]} === 'undefined'`} ) { $itemNode__.remove(); }
|
|
30
30
|
}
|
|
31
31
|
$existing__.forEach( x => x.remove() );
|
|
32
32
|
$existing__.clear();
|
|
33
|
-
}`}
|
|
33
|
+
}`}return`
|
|
34
|
+
const handler = () => ${m};
|
|
35
|
+
this.addEventListener( '${f}', handler );
|
|
36
|
+
const abort = () => this.removeEventListener( '${f}', handler );
|
|
37
|
+
this.$oohtml_internal_databinding_signals?.push( { abort } );
|
|
38
|
+
`}if(s.trim())throw new Error(`Invalid binding: ${s}.`)}).join(`
|
|
34
39
|
`),{webqit:{QuantumModule:i}}=this,o=new i(t);return xe.set(e,o),o}var V=n=>n.replace(/"/g,'\\"');be.call(window);})();
|
|
35
40
|
//# sourceMappingURL=data-binding.js.map
|