@webqit/oohtml 3.0.1-13 → 3.0.1-18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +241 -8
- 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/data-binding.js +2 -2
- package/dist/data-binding.js.map +2 -2
- package/dist/html-imports.js +1 -1
- package/dist/html-imports.js.map +2 -2
- package/dist/main.js +4 -4
- package/dist/main.js.map +2 -2
- package/package.json +1 -1
- package/src/context-api/HTMLContextProvider.js +1 -1
- package/src/context-api/_ContextRequestEvent.js +5 -2
- package/src/context-api/index.js +2 -0
package/README.md
CHANGED
|
@@ -25,7 +25,9 @@ Vanilla HTML is unsurprisingly becoming a compelling option for an increasing nu
|
|
|
25
25
|
|
|
26
26
|
This project pursues an object-oriented approach to HTML and implicitly revisits much of what inhibits the idea of a *component* architecture for HTML!
|
|
27
27
|
|
|
28
|
+
<!--
|
|
28
29
|
└ [See more in the introductory blog post](https://dev.to/oxharris/the-web-native-equations-1m1p-temp-slug-6661657?preview=ba70ad2c17f05b5761bc74516dbde8c9eff8b581a0420d87334fd9ef6bab9d6e6d3ab6aaf3fe02542bb9e7250d0a88a6df91dae40919aabcc9a07320)<sup>draft</sup>
|
|
30
|
+
-->
|
|
29
31
|
|
|
30
32
|
</details>
|
|
31
33
|
|
|
@@ -768,7 +770,7 @@ Here, from the same `<script>` element we already write, we get a direct upgrade
|
|
|
768
770
|
</script>
|
|
769
771
|
```
|
|
770
772
|
|
|
771
|
-
**-->** *which adds up really well with the
|
|
773
|
+
**-->** *which adds up really well with the `scoped` attribute*:
|
|
772
774
|
|
|
773
775
|
```html
|
|
774
776
|
<main>
|
|
@@ -792,7 +794,7 @@ Here, from the same `<script>` element we already write, we get a direct upgrade
|
|
|
792
794
|
</main>
|
|
793
795
|
```
|
|
794
796
|
|
|
795
|
-
**-->** *with content being whatever you normally would write in a `<script>` element,
|
|
797
|
+
**-->** *with content being whatever you normally would write in a `<script>` element, minus the "manual" work for reactivity*:
|
|
796
798
|
|
|
797
799
|
```html
|
|
798
800
|
<main>
|
|
@@ -849,7 +851,7 @@ It's Imperative Reactive Programming ([IRP](https://en.wikipedia.org/wiki/Reacti
|
|
|
849
851
|
|
|
850
852
|
Here, the runtime executes your code in a special execution mode that gets literal JavaScript expressions to statically reflect changes. This makes a lot of things possible on the UI! The [Quantum JS](https://github.com/webqit/quantum-js) documentation has a detailed run down.
|
|
851
853
|
|
|
852
|
-
Now, in each case above, reactivity terminates on script's removal from the DOM
|
|
854
|
+
Now, in each case above, reactivity terminates on script's removal from the DOM or via a programmatic approach:
|
|
853
855
|
|
|
854
856
|
```js
|
|
855
857
|
const script = document.querySelector('script[quantum]');
|
|
@@ -863,7 +865,7 @@ But while that is automatic, DOM event handlers bound via `addEventListener()` w
|
|
|
863
865
|
|
|
864
866
|
## Data Plumbing
|
|
865
867
|
|
|
866
|
-
Components often need to manage, and be driven by, dynamic data. That could get
|
|
868
|
+
Components often need to manage, and also be driven by, dynamic data. That could get pretty problematic and messy if all of that should go on DOM nodes as direct properties:
|
|
867
869
|
|
|
868
870
|
```js
|
|
869
871
|
// Inside a custom element
|
|
@@ -884,7 +886,7 @@ node.prop3 = 3;
|
|
|
884
886
|
node.normalize = true; // ??? - conflict with the standard Node: normalize() method
|
|
885
887
|
```
|
|
886
888
|
|
|
887
|
-
|
|
889
|
+
This calls for a decent API and some data-flow mechanism!
|
|
888
890
|
|
|
889
891
|
### The Bindings API
|
|
890
892
|
|
|
@@ -909,7 +911,7 @@ node.bindings.style = 'tall-dark';
|
|
|
909
911
|
node.bindings.normalize = true;
|
|
910
912
|
```
|
|
911
913
|
|
|
912
|
-
**-->** *with a corresponding `bind()` method that lets us make mutations
|
|
914
|
+
**-->** *with a corresponding `bind()` method that lets us make mutations in batches*:
|
|
913
915
|
|
|
914
916
|
```js
|
|
915
917
|
// ------------
|
|
@@ -929,6 +931,16 @@ document.bind({ name: 'James Boye', cool: '100%' }, { merge: true });
|
|
|
929
931
|
console.log(document.bindings); // { signedIn: false, hot: '100%', name: 'James Boye', cool: '100%' }
|
|
930
932
|
```
|
|
931
933
|
|
|
934
|
+
**-->** *and it becomes easy to pass data down a component tree*:
|
|
935
|
+
|
|
936
|
+
```js
|
|
937
|
+
// Inside a custom element
|
|
938
|
+
connectedCallback() {
|
|
939
|
+
this.child1.bind(this.bindings.child1Data);
|
|
940
|
+
this.child2.bind(this.bindings.child2Data);
|
|
941
|
+
}
|
|
942
|
+
```
|
|
943
|
+
|
|
932
944
|
**-->** *and given the Observer API, reactivity is intrinsic*:
|
|
933
945
|
|
|
934
946
|
```js
|
|
@@ -954,14 +966,14 @@ node.bindings.style = 'tall-dark';
|
|
|
954
966
|
|
|
955
967
|
<details><summary>Details</summary>
|
|
956
968
|
|
|
957
|
-
In the current OOHTML, the `document.bindings` and `Element.prototype.bindings` APIs are implemented as
|
|
969
|
+
In the current OOHTML, the `document.bindings` and `Element.prototype.bindings` APIs are implemented as proxies over their actual bindings interface to enable some interface-level reactivity. This lets us have reactivity over literal property assignments and deletions on the interface:
|
|
958
970
|
|
|
959
971
|
```js
|
|
960
972
|
node.bindings.style = 'tall-dark'; // Reactive assignment
|
|
961
973
|
delete node.bindings.style; // Reactive deletion
|
|
962
974
|
```
|
|
963
975
|
|
|
964
|
-
For mutations at a deeper level be reactive, the corresponding Observer API method must be used:
|
|
976
|
+
For mutations at a deeper level to be reactive, the corresponding Observer API method must be used:
|
|
965
977
|
|
|
966
978
|
```js
|
|
967
979
|
Observer.set(document.bindings.app, 'title', 'Demo App!!!');
|
|
@@ -972,7 +984,228 @@ Observer.deleteProperty(document.bindings.app, 'title');
|
|
|
972
984
|
|
|
973
985
|
### The Context API
|
|
974
986
|
|
|
987
|
+
A complex hierarchy of objects will often call for more than the normal top-down flow of data that the Bindings API facilitates. A child may need the ability to look up the component tree to directly access specific data, or in other words, "request" data from "context". This is possible via the Context API.
|
|
988
|
+
|
|
989
|
+
And interestingly, the Context API is the resolution system behind HTML Imports and Data Binding in OOHTML!
|
|
990
|
+
|
|
991
|
+
Here, we simply leverage the DOM's existing event system to fire a "request" event and let an arbitrary "provider" in context fulfill the request. This becomes very simple with the Context API which is exposed on the document object and on element instances as the readonly `context` property.
|
|
992
|
+
|
|
993
|
+
**-->** *with the `context.request()` method for firing requests*:
|
|
994
|
+
|
|
995
|
+
```js
|
|
996
|
+
// ------------
|
|
997
|
+
// Get an arbitrary
|
|
998
|
+
const node = document.querySelector('my-element');
|
|
999
|
+
|
|
1000
|
+
// ------------
|
|
1001
|
+
// Prepare and fire request event
|
|
1002
|
+
const requestParams = { type: 'html-imports', detail: '/foo#fragment1' };
|
|
1003
|
+
const request = new ContextRequestEvent(requestParams);
|
|
1004
|
+
const contextReturnValue = node.context.request(request);
|
|
1005
|
+
|
|
1006
|
+
// ------------
|
|
1007
|
+
// Handle response
|
|
1008
|
+
console.log(contextReturnValue.value); // It works!
|
|
1009
|
+
```
|
|
1010
|
+
|
|
1011
|
+
**-->** *and the `context.attachProvider()` method for registering providers at arbitrary levels in the DOM tree*:
|
|
1012
|
+
|
|
1013
|
+
```js
|
|
1014
|
+
// ------------
|
|
1015
|
+
// Define a ContextProvider class
|
|
1016
|
+
class FakeImportsProvider extends HTMLContextProvider {
|
|
1017
|
+
static type = 'html-imports';
|
|
1018
|
+
handle(request) {
|
|
1019
|
+
console.log(request.detail); // '/foo#fragment1'
|
|
1020
|
+
request.respondWith('It works!');
|
|
1021
|
+
}
|
|
1022
|
+
}
|
|
1023
|
+
|
|
1024
|
+
// ------------
|
|
1025
|
+
// Instantiate and attach to a node
|
|
1026
|
+
const providerId = FakeImportsProvider.createId(); // { type: 'html-imports' }
|
|
1027
|
+
const fakeImportsProvider = new FakeImportsProvider(providerId);
|
|
1028
|
+
document.context.attachProvider(fakeImportsProvider);
|
|
1029
|
+
|
|
1030
|
+
// ------------
|
|
1031
|
+
// Detach anytime
|
|
1032
|
+
document.context.detachProvider(fakeImportsProvider);
|
|
1033
|
+
```
|
|
1034
|
+
|
|
1035
|
+
<details><summary>Details</summary>
|
|
1036
|
+
|
|
1037
|
+
In the current OOHTML, the Context API interfaces are exposed on the global `webqit` object:
|
|
1038
|
+
|
|
1039
|
+
```js
|
|
1040
|
+
const { HTMLContextProvider, ContextRequestEvent, ContextReturnValue } = window.webqit;
|
|
1041
|
+
```
|
|
1042
|
+
|
|
1043
|
+
That said...
|
|
1044
|
+
|
|
1045
|
+
+ it is possible to specify a name for a provider:
|
|
1046
|
+
|
|
1047
|
+
```js
|
|
1048
|
+
// Instantiate and attach to a node
|
|
1049
|
+
const providerId = FakeImportsProvider.createId({ contextName: 'fake-provider' }); // { type: 'html-imports', contextName: 'fake-provider' }
|
|
1050
|
+
const fakeImportsProvider = new FakeImportsProvider( providerId );
|
|
1051
|
+
document.context.attachProvider(fakeImportsProvider);
|
|
1052
|
+
```
|
|
1053
|
+
|
|
1054
|
+
...which a request could target:
|
|
1055
|
+
|
|
1056
|
+
```js
|
|
1057
|
+
// Prepare and fire request event that specifies the provider name: 'fake-provider', without which only "type" match is performed
|
|
1058
|
+
const requestParams = FakeImportsProvider.createRequest({ contextName: 'fake-provider', detail: '/foo#fragment1' }); // { type: 'html-imports', contextName: 'fake-provider', detail: '/foo#fragment1' }
|
|
1059
|
+
const request = new ContextRequestEvent(requestParams);
|
|
1060
|
+
const contextReturnValue = node.context.request(request);
|
|
1061
|
+
```
|
|
1062
|
+
|
|
1063
|
+
+ and a provider could indicate to manually match requests where the defualt "type" match, plus optional "contextName" match doesn't suffice:
|
|
1064
|
+
|
|
1065
|
+
```js
|
|
1066
|
+
// Define a ContextProvider class
|
|
1067
|
+
class ContextProvider extends HTMLContextProvider {
|
|
1068
|
+
static type = 'html-imports';
|
|
1069
|
+
static matchRequest( id, request ) {
|
|
1070
|
+
// The default request matching algorithm
|
|
1071
|
+
return request.type === id.type && ( !request.contextName || request.contextName === id.contextName );
|
|
1072
|
+
}
|
|
1073
|
+
handle(request) {
|
|
1074
|
+
console.log(request.detail);
|
|
1075
|
+
request.respondWith('It works!');
|
|
1076
|
+
}
|
|
1077
|
+
}
|
|
1078
|
+
```
|
|
1079
|
+
|
|
1080
|
+
+ and a request could choose to stay subscribed to changes on the requested data; the `request` would simply set a `live` flag and either stay alert to said updates on the returned `ContextReturnValue` object or specify a callback function, in which case no `ContextReturnValue` object is returned:
|
|
1081
|
+
|
|
1082
|
+
```js
|
|
1083
|
+
// Set the "live" flag
|
|
1084
|
+
requestParams.live = true;
|
|
1085
|
+
const request = new ContextRequestEvent(requestParams);
|
|
1086
|
+
```
|
|
1087
|
+
|
|
1088
|
+
```js
|
|
1089
|
+
// Handle response without a callback
|
|
1090
|
+
const contextReturnValue = node.context.request(request);
|
|
1091
|
+
console.log(contextReturnValue.value); // It works!
|
|
1092
|
+
Observer.observe(contextReturnValue, 'value', e => {
|
|
1093
|
+
console.log(e.value); // It works live!
|
|
1094
|
+
});
|
|
1095
|
+
```
|
|
1096
|
+
|
|
1097
|
+
```js
|
|
1098
|
+
// Handle response with a callback
|
|
1099
|
+
node.context.request(request, value => {
|
|
1100
|
+
console.log(value);
|
|
1101
|
+
// It works!
|
|
1102
|
+
// It works live!
|
|
1103
|
+
});
|
|
1104
|
+
```
|
|
1105
|
+
|
|
1106
|
+
...while the provider would simply check for the `request.live` flag and keep the updates flowing:
|
|
1107
|
+
|
|
1108
|
+
```js
|
|
1109
|
+
// Define a ContextProvider class
|
|
1110
|
+
class ContextProvider extends HTMLContextProvider {
|
|
1111
|
+
static type = 'html-imports';
|
|
1112
|
+
handle(request) {
|
|
1113
|
+
if (request.live) {
|
|
1114
|
+
setTimeout(() => {
|
|
1115
|
+
request.respondWith('It works live!');
|
|
1116
|
+
}, 5000);
|
|
1117
|
+
}
|
|
1118
|
+
request.respondWith('It works!');
|
|
1119
|
+
}
|
|
1120
|
+
}
|
|
1121
|
+
```
|
|
1122
|
+
|
|
1123
|
+
+ live requests are terminated via the returned `ContextReturnValue` object...
|
|
1124
|
+
|
|
1125
|
+
```js
|
|
1126
|
+
contextReturnValue.abort();
|
|
1127
|
+
```
|
|
1128
|
+
|
|
1129
|
+
...or via an initially specified `AbortSignal`:
|
|
1130
|
+
|
|
1131
|
+
```js
|
|
1132
|
+
// Add a signal to the original request
|
|
1133
|
+
const abortController = new AbortController;
|
|
1134
|
+
requestParams.signal = abortController.signal;
|
|
1135
|
+
```
|
|
1136
|
+
|
|
1137
|
+
```js
|
|
1138
|
+
abortController.abort();
|
|
1139
|
+
```
|
|
1140
|
+
|
|
1141
|
+
+ now, when a node in a provider's subtree is suddenly attached an identical provider, any live requests the super provider already serves are automatically "claimed" by the sub provider:
|
|
1142
|
+
|
|
1143
|
+
```js
|
|
1144
|
+
document: // 'fake-provider' here
|
|
1145
|
+
└── html
|
|
1146
|
+
├── head
|
|
1147
|
+
└── body: // 'fake-provider' here. Our request above is now served from here.
|
|
1148
|
+
```
|
|
1149
|
+
|
|
1150
|
+
And when the sub provider is suddenly detached from said node, any live requests it had served are automatically hoisted back to the super provider.
|
|
975
1151
|
|
|
1152
|
+
```js
|
|
1153
|
+
document: // 'fake-provider' here. Our request above is now served from here.
|
|
1154
|
+
└── html
|
|
1155
|
+
├── head
|
|
1156
|
+
└── body:
|
|
1157
|
+
```
|
|
1158
|
+
|
|
1159
|
+
While, in all, the original receiver needs not bother where a response is from!
|
|
1160
|
+
|
|
1161
|
+
</details>
|
|
1162
|
+
|
|
1163
|
+
**-->** *all of which gives us the programmatic equivalent of declarative HTMLImports and Data Binding*:
|
|
1164
|
+
|
|
1165
|
+
```html
|
|
1166
|
+
<div contextname="vendor1">
|
|
1167
|
+
<div contextname="vendor2">
|
|
1168
|
+
...
|
|
1169
|
+
|
|
1170
|
+
<my-element>
|
|
1171
|
+
<!-- Declarative import -->
|
|
1172
|
+
<import ref="@vendor1/foo#fragment1"></import>
|
|
1173
|
+
<!-- Declarative Data Binding -->
|
|
1174
|
+
<?{ @vendor2.app.title }?>
|
|
1175
|
+
</my-element>
|
|
1176
|
+
|
|
1177
|
+
...
|
|
1178
|
+
</div>
|
|
1179
|
+
</div>
|
|
1180
|
+
```
|
|
1181
|
+
|
|
1182
|
+
```js
|
|
1183
|
+
// ------------
|
|
1184
|
+
// Equivalent import() approach
|
|
1185
|
+
const contextReturnValue = myElement.import('@vendor1/foo#fragment1');
|
|
1186
|
+
|
|
1187
|
+
// ------------
|
|
1188
|
+
// Equivalent raw Context API approach
|
|
1189
|
+
const requestParams = { type: 'html-imports', contextName: 'vendor1', detail: '/foo#fragment1' };
|
|
1190
|
+
const request = new ContextRequestEvent(requestParams);
|
|
1191
|
+
const contextReturnValue = myElement.context.request(request);
|
|
1192
|
+
|
|
1193
|
+
// ------------
|
|
1194
|
+
// Handle response
|
|
1195
|
+
console.log(contextReturnValue.value);
|
|
1196
|
+
```
|
|
1197
|
+
|
|
1198
|
+
```js
|
|
1199
|
+
// ------------
|
|
1200
|
+
// Equivalent raw Context API approach
|
|
1201
|
+
const requestParams = { type: 'bindings', contextName: 'vendor2', detail: 'app' };
|
|
1202
|
+
const request = new ContextRequestEvent(requestParams);
|
|
1203
|
+
const contextReturnValue = myElement.context.request(request);
|
|
1204
|
+
|
|
1205
|
+
// ------------
|
|
1206
|
+
// Handle response
|
|
1207
|
+
console.log(contextReturnValue.value.title);
|
|
1208
|
+
```
|
|
976
1209
|
|
|
977
1210
|
## Polyfill
|
|
978
1211
|
|
package/dist/bindings-api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{var et=Object.defineProperty;var Et=(n,e,r)=>e in n?et(n,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):n[e]=r;var tt=(n,e)=>{for(var r in e)et(n,r,{get:e[r],enumerable:!0})};var re=(n,e,r)=>(Et(n,typeof e!="symbol"?e+"":e,r),r);var Be={};tt(Be,{apply:()=>ve,batch:()=>Ee,construct:()=>Ne,defineProperties:()=>zt,defineProperty:()=>ae,deleteProperties:()=>Bt,deleteProperty:()=>me,get:()=>k,getOwnPropertyDescriptor:()=>Ae,getOwnPropertyDescriptors:()=>Ft,getPrototypeOf:()=>He,has:()=>Pe,intercept:()=>$t,isExtensible:()=>Ve,observe:()=>ze,ownKeys:()=>le,path:()=>Nt,preventExtensions:()=>Fe,read:()=>Wt,reduce:()=>We,set:()=>U,setPrototypeOf:()=>$e});function w(n){return!Array.isArray(n)&&typeof n=="object"&&n}function Q(n){return typeof n}function x(n){return Array.isArray(n)}function Se(n,e,r=null){return x(e)?n.filter(t=>r?e.filter(i=>r(t,i)).length:e.indexOf(t)!==-1):[]}function V(n,...e){if(globalThis.webqit||(globalThis.webqit={}),globalThis.webqit.refs||Object.defineProperty(globalThis.webqit,"refs",{value:new ne}),!arguments.length)return globalThis.webqit.refs;let r=globalThis.webqit.refs.get(n);r||(r=new ne,globalThis.webqit.refs.set(n,r));let t,i;for(;t=e.shift();)(i=r)&&!(r=r.get(t))&&(r=new ne,i.set(t,r));return r}var ne=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)!(be([e,"*"],i.type)&&be([r,"*"],i.key)&&i.callback===t)||this.observers.delete(i)}fire(e,r,...t){for(let i of this.observers)!(be([e,"*"],i.type)&&be([r,"*"],i.key))||i.callback(...t)}},be=(n,e)=>Array.isArray(e)?Se(n,e).length:n.includes(e);function Z(n){return typeof n=="function"}function ie(n){return n===null||n===""}function D(n){return arguments.length&&(n===void 0||typeof n>"u")}function v(n){return Array.isArray(n)||typeof n=="object"&&n||Z(n)}function Ie(n){return ie(n)||D(n)||n===!1||n===0||v(n)&&!Object.keys(n).length}function O(n){return Z(n)||n&&{}.toString.call(n)==="[object function]"}function oe(n){return n instanceof Number||typeof n=="number"}function S(n){return oe(n)||n!==!0&&n!==!1&&n!==null&&n!==""&&!isNaN(n*1)}function K(n){return n instanceof String||typeof n=="string"&&n!==null}function je(n){return!K(n)&&!D(n.length)}function _e(n,...e){return e.forEach(r=>{n.indexOf(r)<0&&n.push(r)}),n}function Me(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 Re(n,e){var r=[];return Me(n,e).forEach(t=>{_e(r,...Object.getOwnPropertyNames(t))}),r}function j(n,e,r=!1,t=!1,i=!1){var o=0,s=n.shift();if((S(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((f,c)=>{!v(f)&&!O(f)||(r?Re(f):Object.keys(f)).forEach(u=>{if(!!e(u,s,f,c)){var l=s[u],m=f[u];if((x(l)&&x(m)||w(l)&&w(m))&&(o===!0||o>0))s[u]=x(l)&&x(m)?[]:{},j([S(o)?o-1:o,s[u],l,m],e,r,t,i);else if(x(s)&&x(f))t?s[u]=m:s.push(m);else try{i?Object.defineProperty(s,u,Object.getOwnPropertyDescriptor(f,u)):s[u]=f[u]}catch{}}})}),s}function se(...n){return j(n,(e,r,t)=>!0,!1,!1,!1)}function E(n,e=!0){return x(n)?n:!e&&w(n)?[n]:n!==!1&&n!==0&&Ie(n)?[]:je(n)?Array.prototype.slice.call(n):w(n)?Object.values(n):[n]}var P=(...n)=>V("observer-api",...n),ee=(n,e)=>n instanceof Promise?n.then(e):e(n),we={};var G=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 fe=class extends G{constructor(){super(...arguments),this.emit.currentRegistration=this,Object.defineProperty(this,"abortController",{value:new AbortController}),Object.defineProperty(this,"signal",{value:this.abortController.signal}),we.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=E(t,!1))&&(r=e.filter(i=>t.includes(i.key))),this.params.diff&&(r=r.filter(i=>i.type!=="set"||i.value!==i.oldValue)),r.length){if(this.emit.recursionTarget&&this.params.recursions!=="force-sync"){this.emit.recursionTarget.push(...r);return}this.emit.recursionTarget=this.params.recursions==="inject"?r:[];let i=this.filter===1/0||Array.isArray(this.filter)?this.emit(r,this):this.emit(r[0],this);return ee(i,o=>{let s=this.emit.recursionTarget;return delete this.emit.recursionTarget,this.params.recursions==="force-async"&&s.length?this.emit.currentRegistration.fire(s):o})}}};var X=class{constructor(e){this.target=e,this.entries=[]}addRegistration(e){return this.entries.push(e),e}removeRegistration(e){this.entries=this.entries.filter(r=>r!==e)}static _getInstance(e,r,t=!0,i=this.__namespace){if(!v(r))throw new Error(`Subject must be of type object; "${Q(r)}" given!`);let o=this;return i&&P("namespaces").has(e+"-"+i)&&(o=P("namespaces").get(e+"-"+i),e+="-"+i),!P(r,"registry").has(e)&&t&&P(r,"registry").set(e,new o(r)),P(r,"registry").get(e)}static _namespace(e,r,t=null){if(e+="-"+r,arguments.length===2)return P("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}.`);P("namespaces").set(e,t),t.__namespace=r}};var q=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 N=class extends X{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 fe(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(c=>c.params.withPropertyDescriptors).length,i=r.some(c=>c.isPropertyDescriptors),o=[],s=[],f=e.length;r.forEach(c=>{(t||!i)&&o.push(...c.events),t!==f&&i&&(c.isPropertyDescriptors?s.push(...c.events.map(u=>{let{target:l,type:m,...a}=u,p=new q(l,{type:"set",...a});return Object.defineProperty(p,"value","get"in a.value?{get:()=>a.value.get()}:{value:a.value.value}),a.oldValue&&Object.defineProperty(p,"oldValue","get"in a.oldValue?{get:()=>a.oldValue.get()}:{value:a.oldValue.value}),p})):s.push(...c.events))}),e.forEach(c=>{c.params.withPropertyDescriptors?c.fire(o.length?o:s):c.fire(s.length?s:o)})}batch(e){this.batches.unshift({entries:[...this.entries],snapshots:[]});let r=e();return ee(r,t=>{let i=this.batches.shift();return i.snapshots.length&&this.$emit(i.entries,i.snapshots),t})}};var ce=class extends G{exec(e,r,t){return this.running||!this.traps[e.operation]?r(...Array.prototype.slice.call(arguments,2)):(this.running=!0,this.traps[e.operation](e,t,(...i)=>(this.running=!1,r(...i))))}};var L=class extends X{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 ce(this,e))}emit(e,r=null){let t=this;return function i(o,...s){let f=t.entries[o];return f?f.exec(e,(...c)=>i(o+1,...c),...s):r?r(e,...s):s[0]}(0)}};var ke={};tt(ke,{accessorize:()=>Ht,proxy:()=>ct,unaccessorize:()=>Vt,unproxy:()=>ue});function Ht(n,e,r={}){n=Oe(n);let t=P(n,"accessorizedProps");function i(c){let u,l=n;do u=Object.getOwnPropertyDescriptor(l,c);while(!u&&(l=Object.getPrototypeOf(l)));return u?{proto:l,descriptor:u}:{descriptor:{value:void 0,configurable:!0,enumerable:!0,writable:!0}}}function o(c){if(t.has(c+""))return!0;let u=i(c);u.getValue=function(a=!1){return a?this.descriptor:this.descriptor.get?this.descriptor.get():this.descriptor.value},u.setValue=function(a,p=!1){if(this.dirty=!0,p){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(n,c);return a?.get===m.get&&a?.set===m.set&&t.get(c+"")===this},u.restore=function(){return this.intact()?(this.proto&&this.proto!==n||!this.proto&&!this.dirty?delete n[c]:Object.defineProperty(n,c,this.descriptor),t.delete(c+""),!0):!1},t.set(isNaN(c)?c:parseInt(c),u);let{enumerable:l=!0}=u.descriptor,m={enumerable:l,configurable:!0};("value"in u.descriptor||u.descriptor.set)&&(m.set=function(a){return U(this,c,a,r)}),("value"in u.descriptor||u.descriptor.get)&&(m.get=function(){return k(this,c,r)});try{return Object.defineProperty(n,c,m),!0}catch{return t.delete(c+""),!1}}let f=(Array.isArray(e)?e:e===void 0?Object.keys(n):[e]).map(o);return e===void 0||Array.isArray(e)?f:f[0]}function Vt(n,e,r={}){n=Oe(n);let t=P(n,"accessorizedProps");function i(f){return t.has(f+"")?t.get(f+"").restore():!0}let s=(Array.isArray(e)?e:e===void 0?Object.keys(n):[e]).map(i);return e===void 0||Array.isArray(e)?s:s[0]}function ct(n,e={},r=void 0){let t=Oe(n);if(typeof e.membrane=="boolean")throw new Error("The params.membrane parameter cannot be of type boolean.");if(e.membrane&&P(t,"membraneRef").has(e.membrane))return P(t,"membraneRef").get(e.membrane);let i={apply(f,c,u){if(Array.isArray(c)){let l=Oe(c);return P(l).set("$length",l.length),Ee(l,()=>ve(f,c,u))}return ve(f,ue(c),u)},construct:(f,c,u=null)=>Ne(f,c,u,e),defineProperty:(f,c,u)=>ae(f,c,u,e),deleteProperty:(f,c)=>me(f,c,e),get:(f,c,u=null)=>{let l={...e,receiver:u};Array.isArray(f)&&c==="length"&&P(f).has("$length")&&(l.forceValue=P(f).get("$length"));let m=k(f,c,l);return Array.isArray(f)&&typeof m=="function"?ct(m,{...e,membrane:u}):m},getOwnPropertyDescriptor:(f,c)=>Ae(f,c,e),getPrototypeOf:f=>He(f,e),has:(f,c)=>Pe(f,c,e),isExtensible:f=>Ve(f,e),ownKeys:f=>le(f,e),preventExtensions:f=>Fe(f,e),set:(f,c,u,l=null)=>{let m={...e,receiver:l};return Array.isArray(f)&&c==="length"&&(m.forceOldValue=P(f).get("$length"),P(f).set("$length",u)),U(f,c,u,m)},setPrototypeOf:(f,c)=>$e(f,c,e)},o=r?.(i)||i,s=new Proxy(t,o);return e.membrane&&P(t,"membraneRef").set(e.membrane,s),P(s).set(s,t),s}function ue(n){return P(n).get(n)||n}function Oe(n){if(!n||!v(n))throw new Error("Target must be of type object!");return ue(n)}var de=class extends Array{};function Nt(...n){return new de(...n)}function We(n,e,r,t=o=>o,i={}){if(!!e.length)return function o(s,f,c){let u=f[c.level],l=c.level===f.length-1;return s instanceof q&&s.operation!=="get"?c={...c,probe:"always"}:c.probe!=="always"&&(c={...c,probe:!l}),r(s,u,(m,...a)=>{let p=d=>{d instanceof q&&(d.path=[d.key],s instanceof q&&(d.path=s.path.concat(d.key),Object.defineProperty(d,"context",{get:()=>s,configurable:!0})))},y=d=>{let _=M(d,!1);return ee(_,g=>{d instanceof q?d.value=g:d=g;let h=a[0]||{};return o(d,f,{...c,...h,level:c.level+1})})};return Te(u)&&Array.isArray(m)?(m.forEach(p),l?t(m,...a):m.map(y)):(p(m),l?t(m,...a):y(m))},c)}(n,e.slice(0),{...i,level:0})}function ze(n,e,r,t={}){if(n=M(n,!t.level),O(arguments[1])&&([,r,t={}]=arguments,e=1/0),!O(r))throw new Error(`Handler must be a function; "${Q(r)}" given!`);if(e instanceof de)return We(n,e,ze,r,t);if(t={...t,descripted:!0},delete t.live,!v(n))return t.probe&&k(n,e,r,t);let i=ut(n,e,r,t);return t.probe?k(n,e,i,t):i()}function $t(n,e,r={}){return n=M(n),w(e)||([,,,r={}]=arguments,e={[arguments[1]]:arguments[2]}),L.getInstance(n,!0,r.namespace).addRegistration({traps:e,params:r})}function Ae(n,e,r=i=>i,t={}){return R(n,"getOwnPropertyDescriptor",{key:e},r,t)}function Ft(n,e,r=i=>i,t={}){return R(n,"getOwnPropertyDescriptors",{key:e},r,t)}function He(n,e=t=>t,r={}){return R(n,"getPrototypeOf",{},e,r)}function Ve(n,e=t=>t,r={}){return R(n,"isExtensible",{},e,r)}function le(n,e=t=>t,r={}){return R(n,"ownKeys",{},e,r)}function Pe(n,e,r=i=>i,t={}){return R(n,"has",{key:e},r,t)}function k(n,e,r=i=>i,t={}){let i,o=M(n,!t.level);return w(r)?[t,r]=[r,s=>s]:t.live&&(i=!0),e instanceof de?We(o,e,k,r,t):Gt(o,e,s=>{let f=[...s];return function c(u,l,m){if(!l.length)return m(u);let a=l.shift();if(!["string","number","symbol"].includes(typeof a))throw new Error(`Property name/key ${a} invalid.`);function p(_,g=void 0){let h=A=>(_.value=A,c([...u,t.live||t.descripted?_:A],l,m));if(arguments.length>1)return h(g);if(!v(o))return h(o?.[_.key]);let b=P(o,"accessorizedProps",!1),T=b&&b.get(_.key);if(T&&T.intact())return h(T.getValue(t.withPropertyDescriptors));if(t.withPropertyDescriptors){let A=Object.getOwnPropertyDescriptor(o,_.key);return"forceValue"in t&&"value"in A&&(A.value=t.forceValue),h(A)}return"forceValue"in t?h(t.forceValue):h(Reflect.get(o,_.key,...t.receiver?[t.receiver]:[]))}let y=new q(o,{type:"get",key:a,value:void 0,operation:"get",related:f});if(!v(o))return p(y);let d=L.getInstance(o,!1,t.namespace);return d?d.emit(y,p):p(y)}([],s.slice(0),c=>{let u=Te(e)?c:c[0];return i&&v(o)?ut(o,e,r,t)(u):r(u)})},t)}function Ee(n,e,r={}){return n=M(n),N.getInstance(n,!0,r.namespace).batch(e)}function Wt(n,e,r={}){e=M(e),n=M(n);let t=(r.only||[]).slice(0),i=(r.except||[]).slice(0),o=le(r.spread?[...n]:n).map(u=>isNaN(u)?u:parseInt(u)),s=t.length?t.filter(u=>o.includes(u)):o.filter(u=>!i.includes(u)),f=u=>!Array.isArray(e)||isNaN(u)?u:u-i.filter(l=>l<u).length,c=u=>{let l=Ae(n,u,r);"value"in l&&l.writable&&l.enumerable&&l.configurable?U(e,f(u),l.value,r):(l.enumerable||r.onlyEnumerable===!1)&&ae(e,u,{...l,configurable:!0},r)};return Ee(e,()=>{s.forEach(c)}),ze(n,u=>{u.filter(l=>t.length?t.includes(l.key):!i.includes(l.key)).forEach(l=>{if(l.operation==="deleteProperty")return me(e,f(l.key),r);if(l.operation==="defineProperty"){(l.value.enumerable||r.onlyEnumerable===!1)&&ae(e,f(l.key),{...l.value,configurable:!0},r);return}c(l.key)})},{...r,withPropertyDescriptors:!0})}function U(n,e,r,t=s=>s,i={},o=!1){let s=M(n),f=[[e,r]];w(e)&&([,,t=u=>u,i={},o=!1]=arguments,f=Object.entries(e)),w(t)&&([o,i,t]=[typeof i=="boolean"?i:o,t,u=>u]);let c=f.map(([u])=>u);return function u(l,m,a){if(!m.length)return a(l);let[p,y]=m.shift();function d(g,h=void 0){let b=z=>(g.status=z,u(l.concat(g),m,a));if(arguments.length>1)return b(g,h);let T=P(s,"accessorizedProps",!1),A=T&&T.get(g.key);return g.operation==="defineProperty"?(A&&!A.restore()&&b(!1),Object.defineProperty(s,g.key,g.value),b(!0)):A&&A.intact()?b(A.setValue(g.value)):b(Reflect.set(s,g.key,g.value))}function _(g,h){if(i.diff&&y===h)return u(l,m,a);let b=new q(s,{type:o?"def":"set",key:p,value:y,isUpdate:g,oldValue:h,related:[...c],operation:o?"defineProperty":"set",detail:i.detail}),T=L.getInstance(s,!1,i.namespace);return T?T.emit(b,d):d(b)}return Pe(s,p,g=>{if(!g)return _(g);let h={...i,withPropertyDescriptors:o};return"forceOldValue"in i&&(h.forceValue=i.forceOldValue),k(s,p,b=>_(g,b),h)},i)}([],f.slice(0),u=>{let l=N.getInstance(s,!1,i.namespace);return l&&l.emit(u,o),t(Te(e)?u.map(m=>m.status):u[0]?.status)})}function ae(n,e,r,t=o=>o,i={}){return U(n,e,r,t,i,!0)}function zt(n,e,r=i=>i,t={}){return U(n,e,r,t,!0)}function me(n,e,r=i=>i,t={}){n=M(n),w(r)&&([t,r]=[r,s=>s]);let i=E(e,!1),o=[...i];return function s(f,c,u){if(!c.length)return u(f);let l=c.shift();function m(p,y=void 0){let d=h=>(p.status=h,s(f.concat(p),c,u));if(arguments.length>1)return d(p,y);let _=P(n,"accessorizedProps",!1),g=_&&_.get(p.key);return g&&!g.restore()&&d(!1),d(Reflect.deleteProperty(n,p.key))}function a(p){let y=new q(n,{type:"delete",key:l,oldValue:p,related:[...o],operation:"deleteProperty",detail:t.detail}),d=L.getInstance(n,!1,t.namespace);return d?d.emit(y,m):m(y)}return k(n,l,a,t)}([],i.slice(0),s=>{let f=N.getInstance(n,!1,t.namespace);return f&&f.emit(s),r(Te(e)?s.map(c=>c.status):s[0].status)})}function Bt(n,e,r=i=>i,t={}){return me(...arguments)}function Ne(n,e,r=null,t=o=>o,i={}){return R(n,"construct",arguments.length>2?{argumentsList:e,newTarget:r}:{argumentsList:e},t,i)}function ve(n,e,r,t=o=>o,i={}){return R(n,"apply",{thisArgument:e,argumentsList:r},t,i)}function $e(n,e,r=i=>i,t={}){return R(n,"setPrototypeOf",{proto:e},r,t)}function Fe(n,e=t=>t,r={}){return R(n,"preventExtensions",{},e,r)}function ut(n,e,r,t={}){let i;t.signal||(i=new AbortController,t={...t,signal:i.signal},we.setMaxListeners?.(0,i.signal));let o=N.getInstance(n,!0,t.namespace);return function s(f,c=null){c?.remove();let l={signal:o.addRegistration(e,s,t).signal};if(arguments.length){let m=r(f,l);if(arguments.length>1)return m}return i}}function R(n,e,r={},t=o=>o,i={}){n=M(n),w(t)&&([i,t]=[t,c=>c]);function o(c,u){return arguments.length>1?t(u):t((Reflect[e]||Object[e])(n,...Object.values(r)))}let s=new q(n,{operation:e,...r}),f=L.getInstance(n,!1,i.namespace);return f?f.emit(s,o):o(s)}function Te(n){return n===1/0||Array.isArray(n)}function M(n,e=!0){if((!n||!v(n))&&e)throw new Error(`Object must be of type object or array! "${Q(n)}" given.`);return n instanceof q&&(n=n.value),n&&ue(n)}function Gt(n,e,r,t={}){return e===1/0?t.level&&!v(n)?r([]):le(n,r,t):r(E(e,!1))}var Xt={...Be,...ke},C=Xt;function pe(n,e,r={},t={}){e=E(e).slice();for(var i=n;!D(i)&&!ie(i)&&e.length;){var o=e.shift();if(!(r.get?r.get(i,o):v(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 Ge(n,e,r,t={},i={}){let o=(l,m,a)=>i.set?i.set(l,m,a):(S(e[f])&&x(l)?l.push(a):l[m]=a,!0);e=E(e);for(var s=n,f=0;f<e.length;f++)if(f<e.length-1){if(!s||!v(s)&&!O(s))return!1;var c=pe(s,e[f],i);if(!v(c)){if(i.buildTree===!1)return!1;c=O(i.buildTree)?i.buildTree(f):S(e[f+1])?[]:{};var u=o(s,e[f],c);if(!u)return!1}s=c}else return o(s,e[f],r)}var he=class{constructor(e,r=!0){Object.defineProperty(this,"window",{value:e}),Object.defineProperty(this,"readCallbacks",{value:new Set}),Object.defineProperty(this,"writeCallbacks",{value:new Set}),this.async=r,this.window.requestAnimationFrame?this._run():this.async=!1}_run(){this.window.requestAnimationFrame(()=>{for(let e of this.readCallbacks)e(),this.readCallbacks.delete(e);for(let e of this.writeCallbacks)e(),this.writeCallbacks.delete(e);this._run()})}onread(e,r=!1){if(r)return new Promise(t=>{this.async===!1?t(e()):this.readCallbacks.add(()=>{t(e())})});this.async===!1?e():this.readCallbacks.add(e)}onwrite(e,r=!1){if(r)return new Promise(t=>{this.async===!1?t(e()):this.writeCallbacks.add(()=>{t(e())})});this.async===!1?e():this.writeCallbacks.add(e)}cycle(e,r,t){this.onread(()=>{let i=e(t),o=s=>{s!==void 0&&this.onwrite(()=>{let f=r(s,t),c=u=>{u!==void 0&&this.cycle(e,r,u)};f instanceof Promise?f.then(c):c(f)})};i instanceof Promise?i.then(o):o(i)})}};function lt(n){return(n=n.trim())&&n.startsWith("(")&&n.endsWith(")")}function Ce(n,e,r,t=!0){r=(Array.isArray(r)?r:[r]).map(f=>(f+"").replace("(",t?"(.//":"(./")).join("|");let i=n.document.evaluate(r,e,null,XPathResult.ANY_TYPE),o=[],s;for(;s=i.iterateNext();)o.push(s);return o}function at(n,e,r){return r=(Array.isArray(r)?r:[r]).map(t=>(t+"").replace("(","(self::")).join("|"),n.document.evaluate(`${r}`,e,null,XPathResult.BOOLEAN_TYPE).booleanValue}function mt(n,e="|"){return[...n].reduce(([r,t,i,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 I=class{constructor(e){this.content=e,this.type=typeof e=="string"?"selector":"instance",this.kind=this.type==="instance"?null:lt(e)?"xpath":"css",this.kind==="xpath"&&(this.isXpathAttr=mt(e.trim().slice(1,-1),"@").length>1)}toString(){return this.content}};var J=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(O(e[0])?e=[[],...e]:w(e[0])&&!(e[0]instanceof I)&&e.length===1?e=[[],void 0,e[0]]:w(e[1])&&e.length===2?e=[E(e[0],!1),void 0,e[1]]:e[0]=E(e[0],!1),e[0].filter(r=>typeof r!="string"&&!(r instanceof I)&&!(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 I?r:new I(r)),e}registry(...e){return V("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[f,c]of this.registry(e))for(let[u,l]of c){let m=o.filter(a=>u.contains(a.target)?f==="subtree"||a.target===u:!1);if(!!m.length){Array.isArray(r)||(m=m[0]);for(let a of l)s.add([a,m,u])}}for(let[f,c,u]of s)t.call(i,f,c,u)}disconnectables(e,...r){let t={disconnect(){r.forEach(i=>i&&O(i.disconnect)&&i.disconnect()||O(i)&&i()||w(i)&&(i.disconnected=!0))}};return e&&e.addEventListener("abort",()=>t.disconnect()),t}};var $=class extends J{constructor(e,...r){super(e,"attr",...r)}get(e,r=void 0,t={}){let i=typeof e=="string"||e instanceof I;[e=[],r=void 0,t={}]=this.resolveArgs(arguments);let{context:o}=this,s=yt(o,e);if(!r)return s;let f=t.lifecycleSignals&&this.createSignalGenerator();if(i)for(let c of s){let u=f?.generate()||{};r(c,u,o)}else{let c=f?.generate()||{};r(s,c,o)}if(t.live){f&&(t={...t,signalGenerator:f});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 I;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:f}=this;t.eventDetails&&!f.realdom.attrInterceptionHooks?.intercepting&&ht.call(s,"intercept",()=>{});let c=new s.MutationObserver(a=>{a=gt(a).map(p=>xt.call(s,p)),pt.call(s,m,a,o)}),u={attributes:!0,attributeOldValue:t.oldValue,subtree:t.subtree};e.length&&(u.attributeFilter=e.map(a=>a+"")),c.observe(o,u);let l=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),m={context:o,spec:e,callback:r,params:t,atomics:new Map,originalFilterIsString:i,signalGenerator:l,disconnectable:c};return this.disconnectables(t.signal,c,l)}observeSync(e,r,t={}){let i=typeof e=="string"||e instanceof I;[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 f=t.timing==="intercept"?"intercept":"sync",c=t.subtree?"subtree":"children";this.registry(f).size||ht.call(s,f,y=>{this.forEachMatchingContext(f,y,pt)});let u={disconnect(){p.delete(m),p.size||a.delete(o)}},l=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),m={context:o,spec:e,callback:r,params:t,atomics:new Map,originalFilterIsString:i,signalGenerator:l,disconnectable:u},a=this.registry(f,c);a.has(o)||a.set(o,new Set);let p=a.get(o);return p.add(m),this.disconnectables(t.signal,u,l)}};function gt(n){return n.reduce((e,r,t)=>e[t-1]?.attributeName===r.attributeName?e:e.concat(r),[])}function pt(n,e){let{context:r,spec:t,callback:i,params:o,atomics:s,originalFilterIsString:f,signalGenerator:c}=n,u=t.map(a=>a+"");if(o.atomic&&!s.size?e=yt(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 p;return o.eventDetails||({event:p,...a}=a),!o.oldValue&&"oldValue"in a&&({oldValue:p,...a}=a),!o.newValue&&"value"in a?{value:p,...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 l=f?e[0]:e,m=c?.generate()||{};i(l,m,r)}function yt(n,e,r=[]){let t={event:null,type:"attribute"};return e.length?e.map(o=>(o=o+"",r.find(s=>s.name===o)||{target:n,name:o,value:n.getAttribute(o),...t})):Array.from(n.attributes).map(o=>r.find(s=>s.name===o.nodeName)||{target:n,name:o.nodeName,value:o.nodeValue,...t})}function xt({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 ht(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 f=(l,m)=>{t.realdom.attrInterceptionRecords.has(l.target)||t.realdom.attrInterceptionRecords.set(l.target,{});let a=t.realdom.attrInterceptionRecords.get(l.target);a[l.name]=a[l.name]||[],a[l.name].unshift(l.event),t.realdom.attrInterceptionHooks.get("intercept")?.forEach(y=>y([l]));let p=m();return t.realdom.attrInterceptionHooks.get("sync")?.forEach(y=>y([l])),p};new r.MutationObserver(l=>{l=l.filter(m=>!(r.webqit.realdom.attrInterceptionRecords?.get(m.target)||{})[m.attributeName]?.shift()),l=gt(l).map(m=>xt.call(r,m)),l.length&&(t.realdom.attrInterceptionHooks.get("intercept")?.forEach(m=>m(l)),t.realdom.attrInterceptionHooks.get("sync")?.forEach(m=>m(l)))}).observe(i,{attributes:!0,subtree:!0,attributeOldValue:!0});let u=Object.create(null);return["setAttribute","removeAttribute","toggleAttribute"].forEach(l=>{u[l]=o.prototype[l],o.prototype[l]=function(...m){let a,p=this.getAttribute(m[0]);["setAttribute","toggleAttribute"].includes(l)&&(a=m[1]),l==="toggleAttribute"&&a===void 0&&(a=p===null);let y={target:this,name:m[0],value:a,oldValue:p,type:"interception",event:[this,l]};return f(y,()=>u[l].call(this,...m))}}),s}var ge=class extends J{constructor(e,...r){super(e,"tree",...r)}attr(e,r=void 0,t={}){let{context:i,window:o}=this;return new $(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,l]=e.reduce(([a,p],y)=>y.kind==="xpath"?[a,p.concat(y)]:[a.concat(y),p],[[],[]]),m=[];t.subtree?(u.length&&m.push(...i.querySelectorAll(u.join(","))),l.length&&m.push(...Ce(this.window,i,l))):(u.length&&m.push(...[...i.children].filter(a=>a.matches(u))),l.length&&m.push(...Ce(this.window,i,l,!1))),m.forEach(a=>s(a.parentNode||i).entrants.push(a))}}if(!r)return o;let f={disconnected:!1},c=r&&t.lifecycleSignals&&this.createSignalGenerator();for(let[,u]of o){if(f.disconnected)break;let l=c?.generate()||{};r(u,l,i)}if(t.live){c&&(t={...t,signalGenerator:c});let u=this.observe(e,r,t);return this.disconnectables(t.signal,f,u)}return this.disconnectables(t.signal,f,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:f}=this;t.eventDetails&&(s.realdom.domInterceptionRecordsAlwaysOn=!0),(f.readyState==="loading"||s.realdom.domInterceptionRecordsAlwaysOn)&&!s.realdom.domInterceptionHooks?.intercepting&&wt.call(o,"sync",()=>{});let c=new o.MutationObserver(m=>m.forEach(a=>{Xe.call(o,l,_t.call(o,a),i)}));c.observe(i,{childList:!0,subtree:t.subtree});let u=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),l={context:i,spec:e,callback:r,params:t,signalGenerator:u,disconnectable:c};if(t.staticSensitivity){let m=bt.call(o,l);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",f=t.subtree?"subtree":"children";this.registry(s).size||wt.call(o,s,y=>{this.forEachMatchingContext(s,y,Xe)});let c=new o.MutationObserver(y=>y.forEach(d=>{Array.isArray((d=_t.call(o,d)).event)||Xe.call(o,m,d,i)}));c.observe(i,{childList:!0,subtree:t.subtree});let u={disconnect(){c.disconnect(),p.delete(m),p.size||a.delete(i)}},l=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),m={context:i,spec:e,callback:r,params:t,signalGenerator:l,disconnectable:u},a=this.registry(s,f);a.has(i)||a.set(i,new Set);let p=a.get(i);if(p.add(m),t.staticSensitivity){let y=bt.call(o,m);return this.disconnectables(t.signal,u,l,y)}return this.disconnectables(t.signal,u,l)}};function bt(n){let e=this,{context:r,spec:t,callback:i,params:o,signalGenerator:s}=n,f=t.filter(p=>p.kind==="css"),c=p=>p.match(/\.([\w-]+)/g)?.length?["class"]:[],u=p=>p.match(/#([\w-]+)/g)?.length?["id"]:[],l=p=>[...p.matchAll(/\[([^\=\]]+)(\=[^\]]+)?\]/g)].map(y=>y[1]).concat(c(p)).concat(u(p));if(!(n.$attrs=Array.from(new Set(f.filter(p=>(p+"").includes("[")).reduce((p,y)=>p.concat(l(y+"")),[])))).length)return;let m=new Set,a=new Set;return m.push=p=>(a.delete(p),m.add(p)),a.push=p=>(m.delete(p),a.add(p)),n.$deliveryCache={entrants:m,exits:a},new $(r,e).observe(n.$attrs,p=>{let y=new Map,d=h=>(y.has(h)||y.set(h,{target:h,entrants:[],exits:[],type:"static",event:null}),y.get(h)),_=new WeakMap,g=h=>(_.has(h)||_.set(h,f.some(b=>h.matches(b+""))),_.get(h));for(let h of p)["entrants","exits"].forEach(b=>{o.generation&&b!==o.generation||n.$deliveryCache[b].has(h.target)||(b==="entrants"?!g(h.target):g(h.target))||(n.$deliveryCache[b].push(h.target),d(h.target)[b].push(h.target),d(h.target).event=h.event)});for(let[,h]of y){let b=s?.generate()||{};i(h,b,r)}},{subtree:o.subtree,timing:o.timing,eventDetails:o.eventDetails})}function Xe(n,e){let{context:r,spec:t,callback:i,params:o,signalGenerator:s,$deliveryCache:f}=n,c={...e,entrants:[],exits:[]};if(o.eventDetails||delete c.event,["entrants","exits"].forEach(l=>{if(!(o.generation&&l!==o.generation)&&(t.length?c[l]=Qt.call(this,t,e[l],e.event!=="parse"):c[l]=[...e[l]],!!f))for(let m of c[l])f[l].push(m)}),!c.entrants.length&&!c.exits.length)return;let u=s?.generate()||{};i(c,u,r)}function Qt(n,e,r){e=Array.isArray(e)?e:[...e];let t=(i,o)=>{if(o.type==="selector"){let s=o.isXpathAttr?[]:i.filter(f=>o.kind==="xpath"?at(this,f,o+""):f.matches&&f.matches(o+""));if((r||o.isXpathAttr)&&(s=i.reduce((f,c)=>o.kind==="xpath"?[...f,...Ce(this,c,o,r)]:c.querySelectorAll?[...f,...c.querySelectorAll(o+"")]:f,s)),s.length)return s}else if(i.includes(o.content)||r&&i.some(s=>s.contains(o.content)))return[o.content]};return e.$$searchCache||(e.$$searchCache=new Map),n.reduce((i,o)=>{let s;return e.$$searchCache.has(o.content)?s=e.$$searchCache.get(o.content):(s=t(e,o)||[],o.type==="instance"&&e.$$searchCache.set(o.content,s)),i.concat(s)},[])}function _t({target:n,addedNodes:e,removedNodes:r}){let t=this,i;return i=E(e).reduce((o,s)=>o||t.webqit.realdom.domInterceptionRecords?.get(s),null),i=E(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 wt(n,e){let r=this,{webqit:t,document:i,Node:o,CharacterData:s,Element:f,HTMLElement:c,HTMLTemplateElement:u,DocumentFragment:l}=r;t.realdom.domInterceptionHooks||Object.defineProperty(t.realdom,"domInterceptionHooks",{value:new Map}),t.realdom.domInterceptionHooks.has(n)||t.realdom.domInterceptionHooks.set(n,new Set),t.realdom.domInterceptionHooks.get(n).add(e);let 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=(d,_)=>{d.entrants.concat(d.exits).forEach(h=>{clearTimeout(t.realdom.domInterceptionRecords.get(h)?.timeout),t.realdom.domInterceptionRecords.set(h,d.event);let b=setTimeout(()=>{t.realdom.domInterceptionRecords.delete(h)},0);Object.defineProperty(d.event,"timeout",{value:b,configurable:!0})}),t.realdom.domInterceptionHooks.get("intercept")?.forEach(h=>h(d));let g=_();return t.realdom.domInterceptionHooks.get("sync")?.forEach(h=>h(d)),g},p={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 _(...g){let h=this instanceof s?p.characterData:p.other,b=()=>h[d].call(this,...g);if(!(this instanceof s||this instanceof f||this instanceof l))return b();let T=[],A=[],z=this;["insertBefore"].includes(d)?A=[g[0]]:["insertAdjacentElement","insertAdjacentHTML"].includes(d)?(A=[g[1]],["beforebegin","afterend"].includes(g[0])&&(z=this.parentNode)):["setHTML","replaceChildren"].includes(d)?(T=[...this.childNodes],A=d==="replaceChildren"?[...g]:[g[0]]):["replaceWith","remove"].includes(d)?(T=[this],A=d==="replaceWith"?[...g]:[],z=this.parentNode):["replaceChild"].includes(d)?(T=[g[1]],A=[g[0]]):["removeChild"].includes(d)?T=[...g]:(A=[...g],["before","after"].includes(d)&&(z=this.parentNode));let B=d;if(["insertAdjacentHTML","setHTML"].includes(d)){let Ke=this.nodeName;if(d==="insertAdjacentHTML"&&["beforebegin","afterend"].includes(g[0])){if(!this.parentNode)return h[d].call(this,...g);Ke=this.parentNode.nodeName}let xe=i.createElement(Ke);h.setHTML.call(xe,A[0],d==="setHTML"?g[1]:{}),A=[...xe.childNodes],d==="insertAdjacentHTML"?(B="insertAdjacentElement",g[1]=new l,g[1].______isTemp=!0,g[1].append(...xe.childNodes)):(B="replaceChildren",g=[...xe.childNodes])}return a({target:z,entrants:A,exits:T,type:"interception",event:[this,d]},()=>h[B].call(this,...g))}["insertBefore","replaceChild","removeChild","appendChild"].includes(d)?(p.other[d]=o.prototype[d],o.prototype[d]=_):(["after","before","remove","replaceWith"].includes(d)&&(p.characterData[d]=s.prototype[d],s.prototype[d]=_),f.prototype[d]&&(p.other[d]=f.prototype[d],f.prototype[d]=_))});let y=Object.create(null);return["outerHTML","outerText","innerHTML","innerText","textContent","nodeValue"].forEach(d=>{let _=["textContent","nodeValue"].includes(d)?o:["outerText","innerText"].includes(d)?c:f;y[d]=Object.getOwnPropertyDescriptor(_.prototype,d),Object.defineProperty(_.prototype,d,{...y[d],set:function(g){let h=()=>y[d].set.call(this,g);if(!(this instanceof f))return h();let b=[],T=[],A=this;if(["outerHTML","outerText"].includes(d)?(b=[this],A=this.parentNode):b=[...this.childNodes],["outerHTML","innerHTML"].includes(d)){let B=this.nodeName;if(d==="outerHTML"){if(!this.parentNode)return h();B=this.parentNode.nodeName}let Y=i.createElement(B==="TEMPLATE"?"div":B);y[d].set.call(Y,g),T=this instanceof u?[]:[...Y.childNodes],d==="outerHTML"?(g=new l,g.______isTemp=!0,g.append(...Y.childNodes),h=()=>f.prototype.replaceWith.call(this,g)):this instanceof u?h=()=>this.content.replaceChildren(...Y.childNodes):h=()=>f.prototype.replaceChildren.call(this,...Y.childNodes)}return a({target:A,entrants:T,exits:b,type:"interception",event:[this,d]},h)}})}),["append","prepend","replaceChildren"].forEach(d=>{[i,l.prototype].forEach(_=>{let g=_[d];_[d]=function(...h){if(this.______isTemp)return g.call(this,...h);let b=d==="replaceChildren"?[...this.childNodes]:[];return a({target:this,entrants:h,exits:b,type:"interception",event:[this,d]},()=>g.call(this,...h))}})}),m}function Ot(){Zt.call(this),Kt.call(this),er.call(this)}function Zt(){let n=this;n.CSS||(n.CSS={}),n.CSS.escape||(n.CSS.escape=e=>e.replace(/([\:@\~\$\&])/g,"\\$1"))}function Kt(){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 er(){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 vt(){let n=this;if(n.webqit||(n.webqit={}),n.webqit.realdom)return n.webqit.realdom;n.webqit.realdom={},Ot.call(n),n.webqit.realdom.meta=(...r)=>tr.call(n,...r),n.webqit.realdom.ready=(...r)=>Ue.call(n,...r),n.webqit.realdom.realtime=(r,t="dom")=>{if(t==="dom")return new ge(r,n);if(t==="attr")return new $(r,n)};let e=new he(n);return n.webqit.realdom.schedule=(r,...t)=>e[`on${r}`](...t),n.webqit.realdom}function Ue(...n){let e="interactive",r;K(n[0])?(e=n[0],O(n[1])&&(r=n[1])):O(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=>Ue.call(this,"interactive",o)),complete:new Promise(o=>Ue.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 tr(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(f=>f.trim());return Ge(i,s[0].split("."),s[1]==="true"?!0:s[1]==="false"?!1:S(s[1])?parseInt(s[1]):s[1]),i},{})),{get name(){return n},get content(){return t.content},json(){return JSON.parse(JSON.stringify(r))}}}var F=(...n)=>V("oohtml",...n);function Je(n,e,r){let t=n.toUpperCase().replace("-","_"),i=this,o=vt.call(i);return i.webqit||(i.webqit={}),i.webqit.oohtml||(i.webqit.oohtml={}),i.webqit.oohtml.configs||(i.webqit.oohtml.configs={}),i.webqit.oohtml.configs[t]||(i.webqit.oohtml.configs[t]={}),se(2,i.webqit.oohtml.configs[t],r,e,o.meta(n).json()),{config:i.webqit.oohtml.configs[t],realdom:o,window:i}}function Ye(n,e,r=1,t=!1){if(r&&typeof n=="object"&&n&&typeof e=="object"&&e&&(!t||Object.keys(n).length===Object.keys(e).length)){for(let i in n)if(!Ye(n[i],e[i],r-1,t))return!1;return!0}return Array.isArray(n)&&Array.isArray(e)&&n.length===e.length?(e=e.slice(0).sort())&&n.slice(0).sort().every((i,o)=>i===e[o]):n===e}var ye=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){C.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 At(){let n=this;return class extends n.Event{constructor(r,t,{type:i="contextrequest",...o}={}){super(i,o),Object.defineProperty(this,"request",{get:()=>r}),Object.defineProperty(this,"callback",{get:()=>t})}respondWith(r,...t){if(this.request.diff){if("prevValue"in this&&this.prevValue===r)return;Object.defineProperty(this,"prevValue",{value:r,configurable:!0})}return this.callback(r,...t)}}}var H=class{static instance(e){return F(e).get("context::instance")||new this(e)}constructor(e){F(e).get("context::instance")?.dispose(),F(e).set("context::instance",this);let r={host:e,contexts:new Set};Object.defineProperty(this,"#",{get:()=>r});let t=At.call(e.ownerDocument?.defaultView||e.defaultView);Object.defineProperty(this,"ContextRequestEvent",{get:()=>t}),this[Symbol.iterator]=function*(){yield*r.contexts}}get length(){this["#"].contexts.size}findProvider(e){return[...this["#"].contexts].find(e)}attachProvider(e){this["#"].contexts.add(e),e.initialize(this["#"].host)}detachProvider(e){e.dispose(this["#"].host),this["#"].contexts.delete(e)}request(e,r=null,t={}){typeof r=="object"&&(t=r,r=null);let i;r||(i=new ye(e,this["#"].host),r=i.callback.bind(i));let o=this["#"].host.dispatchEvent(new this.ContextRequestEvent(e,r,{bubbles:!0,...t}));return i??o}dispose(){}};var W=class{static get config(){return{}}static attachTo(e,r,t=!1){this.providers.set(this.type,this);let i,o=H.instance(e);return!t&&(i=o.findProvider(s=>this.matchId(s.id,r)))?i:o.attachProvider(new this(r))}static detachFrom(e,r,t=!1){let i,o=H.instance(e);for(i of o["#"].contexts)if(!(!this.matchId(i.id,r)||typeof t=="function"&&!t(i))&&(o.detachProvider(i),typeof multiple!="function"&&!t))return i}static createId(e,r={}){let t={type:this.type,...r};return t.contextName||(e.getAttribute&&!(t.contextName=(e.getAttribute(this.config.context.attr.contextname)||"").trim())?delete t.contextName:e.ownerDocument||(t.contextName="root")),t}static matchId(e,r){return Ye(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),H.instance(e).request({...this.id,superContextOnly:!0},r=>r.forEach(t=>{this.subscribe(t),this.handle(t)}),{type:"contextclaim"}),this}dispose(e){return this.disposed=!0,e.removeEventListener("contextrequest",this),e.removeEventListener("contextclaim",this),this.subscriptions.forEach(r=>{this.unsubscribe(r);let{target:t,request:i,callback:o,options:s}=r;H.instance(t).request(i,o,s)}),this}};re(W,"providers",new Map),re(W,"type");var te=class extends W{static createRequest(e={}){let r=super.createRequest(e);if(r.detail?.startsWith("@")){let[t,...i]=r.detail.slice(1).split(".").map(o=>o.trim());r.contextName=t,r.detail=i.join(".")}return r}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=C.reduce(this.bindingsObj,Array.isArray(e.request.detail)?e.request.detail:[e.request.detail],C.get,r=>{this.disposed||e.respondWith(r.value)},{live:e.request.live,descripted:!0})}};re(te,"type","bindings");function Ze(n={}){let{config:e,window:r}=Je.call(this,"bindings-api",n,{context:{attr:{bindingscontext:"bindings"}},api:{bind:"bind",bindings:"bindings"}});e.CONTEXT_API=r.webqit.oohtml.configs.CONTEXT_API,e.context.attr.contextname=e.CONTEXT_API.attr.contextname,r.webqit.HTMLBindingsProvider=class extends te{static get config(){return e}},r.webqit.Observer=C,ir.call(r,e)}function Qe(n,e){let r=this;if(!F(e).has("bindings")){let t=Object.create(null);F(e).set("bindings",t),C.observe(t,i=>{for(let f of i)f.type==="delete"?nr.call(this,e,f.key):rr.call(this,e,f.key);let o=Object.keys(t),s=e===r.document?r.document.documentElement:e;o.length?s.setAttribute(n.context.attr.bindingscontext,o.join(" ")):s.toggleAttribute(n.context.attr.bindingscontext,!1)})}return F(e).get("bindings")}function rr(n,e){let r=this,{HTMLBindingsProvider:t}=r.webqit,i=t.createId(n,{detail:e});t.attachTo(n,i)}function nr(n,e){let r=this,{HTMLBindingsProvider:t}=r.webqit,i=t.createId(n,{detail:e});t.detachFrom(n,i)}function Pt(n,e,r,{merge:t,diff:i,namespace:o}={}){let s=Qe.call(this,n,e),f={diff:i,namespace:o},c=t?[]:C.ownKeys(s,f).filter(u=>!(u in r));return C.batch(s,()=>(c.length&&C.deleteProperties(s,c,f),C.set(s,r,f)),f)}function ir(n){let e=this;if(n.api.bind in e.document)throw new Error(`document already has a "${n.api.bind}" property!`);if(n.api.bindings in e.document)throw new Error(`document already has a "${n.api.bindings}" property!`);if(n.api.bind in e.Element.prototype)throw new Error(`The "Element" class already has a "${n.api.bind}" property!`);if(n.api.bindings in e.Element.prototype)throw new Error(`The "Element" class already has a "${n.api.bindings}" property!`);Object.defineProperty(e.document,n.api.bind,{value:function(r,t={}){return Pt.call(e,t,e.document,r)}}),Object.defineProperty(e.document,n.api.bindings,{get:function(){return C.proxy(Qe.call(e,n,e.document))}}),Object.defineProperty(e.Element.prototype,n.api.bind,{value:function(r,t={}){return Pt.call(e,t,this,r)}}),Object.defineProperty(e.Element.prototype,n.api.bindings,{get:function(){return C.proxy(Qe.call(e,n,this))}})}Ze.call(window);})();
|
|
1
|
+
(()=>{var et=Object.defineProperty;var Et=(n,e,r)=>e in n?et(n,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):n[e]=r;var tt=(n,e)=>{for(var r in e)et(n,r,{get:e[r],enumerable:!0})};var ne=(n,e,r)=>(Et(n,typeof e!="symbol"?e+"":e,r),r);var Be={};tt(Be,{apply:()=>ve,batch:()=>Ee,construct:()=>Ne,defineProperties:()=>zt,defineProperty:()=>me,deleteProperties:()=>Bt,deleteProperty:()=>de,get:()=>k,getOwnPropertyDescriptor:()=>Ae,getOwnPropertyDescriptors:()=>Ft,getPrototypeOf:()=>He,has:()=>Pe,intercept:()=>$t,isExtensible:()=>Ve,observe:()=>ze,ownKeys:()=>ae,path:()=>Nt,preventExtensions:()=>Fe,read:()=>Wt,reduce:()=>We,set:()=>U,setPrototypeOf:()=>$e});function w(n){return!Array.isArray(n)&&typeof n=="object"&&n}function Q(n){return typeof n}function x(n){return Array.isArray(n)}function Se(n,e,r=null){return x(e)?n.filter(t=>r?e.filter(i=>r(t,i)).length:e.indexOf(t)!==-1):[]}function V(n,...e){if(globalThis.webqit||(globalThis.webqit={}),globalThis.webqit.refs||Object.defineProperty(globalThis.webqit,"refs",{value:new ie}),!arguments.length)return globalThis.webqit.refs;let r=globalThis.webqit.refs.get(n);r||(r=new ie,globalThis.webqit.refs.set(n,r));let t,i;for(;t=e.shift();)(i=r)&&!(r=r.get(t))&&(r=new ie,i.set(t,r));return r}var ie=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)!(be([e,"*"],i.type)&&be([r,"*"],i.key)&&i.callback===t)||this.observers.delete(i)}fire(e,r,...t){for(let i of this.observers)!(be([e,"*"],i.type)&&be([r,"*"],i.key))||i.callback(...t)}},be=(n,e)=>Array.isArray(e)?Se(n,e).length:n.includes(e);function Z(n){return typeof n=="function"}function oe(n){return n===null||n===""}function D(n){return arguments.length&&(n===void 0||typeof n>"u")}function v(n){return Array.isArray(n)||typeof n=="object"&&n||Z(n)}function Ie(n){return oe(n)||D(n)||n===!1||n===0||v(n)&&!Object.keys(n).length}function O(n){return Z(n)||n&&{}.toString.call(n)==="[object function]"}function se(n){return n instanceof Number||typeof n=="number"}function S(n){return se(n)||n!==!0&&n!==!1&&n!==null&&n!==""&&!isNaN(n*1)}function K(n){return n instanceof String||typeof n=="string"&&n!==null}function je(n){return!K(n)&&!D(n.length)}function _e(n,...e){return e.forEach(r=>{n.indexOf(r)<0&&n.push(r)}),n}function Me(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 Re(n,e){var r=[];return Me(n,e).forEach(t=>{_e(r,...Object.getOwnPropertyNames(t))}),r}function j(n,e,r=!1,t=!1,i=!1){var o=0,s=n.shift();if((S(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((f,c)=>{!v(f)&&!O(f)||(r?Re(f):Object.keys(f)).forEach(u=>{if(!!e(u,s,f,c)){var l=s[u],m=f[u];if((x(l)&&x(m)||w(l)&&w(m))&&(o===!0||o>0))s[u]=x(l)&&x(m)?[]:{},j([S(o)?o-1:o,s[u],l,m],e,r,t,i);else if(x(s)&&x(f))t?s[u]=m:s.push(m);else try{i?Object.defineProperty(s,u,Object.getOwnPropertyDescriptor(f,u)):s[u]=f[u]}catch{}}})}),s}function fe(...n){return j(n,(e,r,t)=>!0,!1,!1,!1)}function E(n,e=!0){return x(n)?n:!e&&w(n)?[n]:n!==!1&&n!==0&&Ie(n)?[]:je(n)?Array.prototype.slice.call(n):w(n)?Object.values(n):[n]}var P=(...n)=>V("observer-api",...n),ee=(n,e)=>n instanceof Promise?n.then(e):e(n),we={};var G=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 ce=class extends G{constructor(){super(...arguments),this.emit.currentRegistration=this,Object.defineProperty(this,"abortController",{value:new AbortController}),Object.defineProperty(this,"signal",{value:this.abortController.signal}),we.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=E(t,!1))&&(r=e.filter(i=>t.includes(i.key))),this.params.diff&&(r=r.filter(i=>i.type!=="set"||i.value!==i.oldValue)),r.length){if(this.emit.recursionTarget&&this.params.recursions!=="force-sync"){this.emit.recursionTarget.push(...r);return}this.emit.recursionTarget=this.params.recursions==="inject"?r:[];let i=this.filter===1/0||Array.isArray(this.filter)?this.emit(r,this):this.emit(r[0],this);return ee(i,o=>{let s=this.emit.recursionTarget;return delete this.emit.recursionTarget,this.params.recursions==="force-async"&&s.length?this.emit.currentRegistration.fire(s):o})}}};var X=class{constructor(e){this.target=e,this.entries=[]}addRegistration(e){return this.entries.push(e),e}removeRegistration(e){this.entries=this.entries.filter(r=>r!==e)}static _getInstance(e,r,t=!0,i=this.__namespace){if(!v(r))throw new Error(`Subject must be of type object; "${Q(r)}" given!`);let o=this;return i&&P("namespaces").has(e+"-"+i)&&(o=P("namespaces").get(e+"-"+i),e+="-"+i),!P(r,"registry").has(e)&&t&&P(r,"registry").set(e,new o(r)),P(r,"registry").get(e)}static _namespace(e,r,t=null){if(e+="-"+r,arguments.length===2)return P("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}.`);P("namespaces").set(e,t),t.__namespace=r}};var q=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 N=class extends X{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 ce(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(c=>c.params.withPropertyDescriptors).length,i=r.some(c=>c.isPropertyDescriptors),o=[],s=[],f=e.length;r.forEach(c=>{(t||!i)&&o.push(...c.events),t!==f&&i&&(c.isPropertyDescriptors?s.push(...c.events.map(u=>{let{target:l,type:m,...a}=u,p=new q(l,{type:"set",...a});return Object.defineProperty(p,"value","get"in a.value?{get:()=>a.value.get()}:{value:a.value.value}),a.oldValue&&Object.defineProperty(p,"oldValue","get"in a.oldValue?{get:()=>a.oldValue.get()}:{value:a.oldValue.value}),p})):s.push(...c.events))}),e.forEach(c=>{c.params.withPropertyDescriptors?c.fire(o.length?o:s):c.fire(s.length?s:o)})}batch(e){this.batches.unshift({entries:[...this.entries],snapshots:[]});let r=e();return ee(r,t=>{let i=this.batches.shift();return i.snapshots.length&&this.$emit(i.entries,i.snapshots),t})}};var ue=class extends G{exec(e,r,t){return this.running||!this.traps[e.operation]?r(...Array.prototype.slice.call(arguments,2)):(this.running=!0,this.traps[e.operation](e,t,(...i)=>(this.running=!1,r(...i))))}};var L=class extends X{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 ue(this,e))}emit(e,r=null){let t=this;return function i(o,...s){let f=t.entries[o];return f?f.exec(e,(...c)=>i(o+1,...c),...s):r?r(e,...s):s[0]}(0)}};var ke={};tt(ke,{accessorize:()=>Ht,proxy:()=>ct,unaccessorize:()=>Vt,unproxy:()=>le});function Ht(n,e,r={}){n=Oe(n);let t=P(n,"accessorizedProps");function i(c){let u,l=n;do u=Object.getOwnPropertyDescriptor(l,c);while(!u&&(l=Object.getPrototypeOf(l)));return u?{proto:l,descriptor:u}:{descriptor:{value:void 0,configurable:!0,enumerable:!0,writable:!0}}}function o(c){if(t.has(c+""))return!0;let u=i(c);u.getValue=function(a=!1){return a?this.descriptor:this.descriptor.get?this.descriptor.get():this.descriptor.value},u.setValue=function(a,p=!1){if(this.dirty=!0,p){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(n,c);return a?.get===m.get&&a?.set===m.set&&t.get(c+"")===this},u.restore=function(){return this.intact()?(this.proto&&this.proto!==n||!this.proto&&!this.dirty?delete n[c]:Object.defineProperty(n,c,this.descriptor),t.delete(c+""),!0):!1},t.set(isNaN(c)?c:parseInt(c),u);let{enumerable:l=!0}=u.descriptor,m={enumerable:l,configurable:!0};("value"in u.descriptor||u.descriptor.set)&&(m.set=function(a){return U(this,c,a,r)}),("value"in u.descriptor||u.descriptor.get)&&(m.get=function(){return k(this,c,r)});try{return Object.defineProperty(n,c,m),!0}catch{return t.delete(c+""),!1}}let f=(Array.isArray(e)?e:e===void 0?Object.keys(n):[e]).map(o);return e===void 0||Array.isArray(e)?f:f[0]}function Vt(n,e,r={}){n=Oe(n);let t=P(n,"accessorizedProps");function i(f){return t.has(f+"")?t.get(f+"").restore():!0}let s=(Array.isArray(e)?e:e===void 0?Object.keys(n):[e]).map(i);return e===void 0||Array.isArray(e)?s:s[0]}function ct(n,e={},r=void 0){let t=Oe(n);if(typeof e.membrane=="boolean")throw new Error("The params.membrane parameter cannot be of type boolean.");if(e.membrane&&P(t,"membraneRef").has(e.membrane))return P(t,"membraneRef").get(e.membrane);let i={apply(f,c,u){if(Array.isArray(c)){let l=Oe(c);return P(l).set("$length",l.length),Ee(l,()=>ve(f,c,u))}return ve(f,le(c),u)},construct:(f,c,u=null)=>Ne(f,c,u,e),defineProperty:(f,c,u)=>me(f,c,u,e),deleteProperty:(f,c)=>de(f,c,e),get:(f,c,u=null)=>{let l={...e,receiver:u};Array.isArray(f)&&c==="length"&&P(f).has("$length")&&(l.forceValue=P(f).get("$length"));let m=k(f,c,l);return Array.isArray(f)&&typeof m=="function"?ct(m,{...e,membrane:u}):m},getOwnPropertyDescriptor:(f,c)=>Ae(f,c,e),getPrototypeOf:f=>He(f,e),has:(f,c)=>Pe(f,c,e),isExtensible:f=>Ve(f,e),ownKeys:f=>ae(f,e),preventExtensions:f=>Fe(f,e),set:(f,c,u,l=null)=>{let m={...e,receiver:l};return Array.isArray(f)&&c==="length"&&(m.forceOldValue=P(f).get("$length"),P(f).set("$length",u)),U(f,c,u,m)},setPrototypeOf:(f,c)=>$e(f,c,e)},o=r?.(i)||i,s=new Proxy(t,o);return e.membrane&&P(t,"membraneRef").set(e.membrane,s),P(s).set(s,t),s}function le(n){return P(n).get(n)||n}function Oe(n){if(!n||!v(n))throw new Error("Target must be of type object!");return le(n)}var pe=class extends Array{};function Nt(...n){return new pe(...n)}function We(n,e,r,t=o=>o,i={}){if(!!e.length)return function o(s,f,c){let u=f[c.level],l=c.level===f.length-1;return s instanceof q&&s.operation!=="get"?c={...c,probe:"always"}:c.probe!=="always"&&(c={...c,probe:!l}),r(s,u,(m,...a)=>{let p=d=>{d instanceof q&&(d.path=[d.key],s instanceof q&&(d.path=s.path.concat(d.key),Object.defineProperty(d,"context",{get:()=>s,configurable:!0})))},y=d=>{let _=M(d,!1);return ee(_,g=>{d instanceof q?d.value=g:d=g;let h=a[0]||{};return o(d,f,{...c,...h,level:c.level+1})})};return Te(u)&&Array.isArray(m)?(m.forEach(p),l?t(m,...a):m.map(y)):(p(m),l?t(m,...a):y(m))},c)}(n,e.slice(0),{...i,level:0})}function ze(n,e,r,t={}){if(n=M(n,!t.level),O(arguments[1])&&([,r,t={}]=arguments,e=1/0),!O(r))throw new Error(`Handler must be a function; "${Q(r)}" given!`);if(e instanceof pe)return We(n,e,ze,r,t);if(t={...t,descripted:!0},delete t.live,!v(n))return t.probe&&k(n,e,r,t);let i=ut(n,e,r,t);return t.probe?k(n,e,i,t):i()}function $t(n,e,r={}){return n=M(n),w(e)||([,,,r={}]=arguments,e={[arguments[1]]:arguments[2]}),L.getInstance(n,!0,r.namespace).addRegistration({traps:e,params:r})}function Ae(n,e,r=i=>i,t={}){return R(n,"getOwnPropertyDescriptor",{key:e},r,t)}function Ft(n,e,r=i=>i,t={}){return R(n,"getOwnPropertyDescriptors",{key:e},r,t)}function He(n,e=t=>t,r={}){return R(n,"getPrototypeOf",{},e,r)}function Ve(n,e=t=>t,r={}){return R(n,"isExtensible",{},e,r)}function ae(n,e=t=>t,r={}){return R(n,"ownKeys",{},e,r)}function Pe(n,e,r=i=>i,t={}){return R(n,"has",{key:e},r,t)}function k(n,e,r=i=>i,t={}){let i,o=M(n,!t.level);return w(r)?[t,r]=[r,s=>s]:t.live&&(i=!0),e instanceof pe?We(o,e,k,r,t):Gt(o,e,s=>{let f=[...s];return function c(u,l,m){if(!l.length)return m(u);let a=l.shift();if(!["string","number","symbol"].includes(typeof a))throw new Error(`Property name/key ${a} invalid.`);function p(_,g=void 0){let h=A=>(_.value=A,c([...u,t.live||t.descripted?_:A],l,m));if(arguments.length>1)return h(g);if(!v(o))return h(o?.[_.key]);let b=P(o,"accessorizedProps",!1),T=b&&b.get(_.key);if(T&&T.intact())return h(T.getValue(t.withPropertyDescriptors));if(t.withPropertyDescriptors){let A=Object.getOwnPropertyDescriptor(o,_.key);return"forceValue"in t&&"value"in A&&(A.value=t.forceValue),h(A)}return"forceValue"in t?h(t.forceValue):h(Reflect.get(o,_.key,...t.receiver?[t.receiver]:[]))}let y=new q(o,{type:"get",key:a,value:void 0,operation:"get",related:f});if(!v(o))return p(y);let d=L.getInstance(o,!1,t.namespace);return d?d.emit(y,p):p(y)}([],s.slice(0),c=>{let u=Te(e)?c:c[0];return i&&v(o)?ut(o,e,r,t)(u):r(u)})},t)}function Ee(n,e,r={}){return n=M(n),N.getInstance(n,!0,r.namespace).batch(e)}function Wt(n,e,r={}){e=M(e),n=M(n);let t=(r.only||[]).slice(0),i=(r.except||[]).slice(0),o=ae(r.spread?[...n]:n).map(u=>isNaN(u)?u:parseInt(u)),s=t.length?t.filter(u=>o.includes(u)):o.filter(u=>!i.includes(u)),f=u=>!Array.isArray(e)||isNaN(u)?u:u-i.filter(l=>l<u).length,c=u=>{let l=Ae(n,u,r);"value"in l&&l.writable&&l.enumerable&&l.configurable?U(e,f(u),l.value,r):(l.enumerable||r.onlyEnumerable===!1)&&me(e,u,{...l,configurable:!0},r)};return Ee(e,()=>{s.forEach(c)}),ze(n,u=>{u.filter(l=>t.length?t.includes(l.key):!i.includes(l.key)).forEach(l=>{if(l.operation==="deleteProperty")return de(e,f(l.key),r);if(l.operation==="defineProperty"){(l.value.enumerable||r.onlyEnumerable===!1)&&me(e,f(l.key),{...l.value,configurable:!0},r);return}c(l.key)})},{...r,withPropertyDescriptors:!0})}function U(n,e,r,t=s=>s,i={},o=!1){let s=M(n),f=[[e,r]];w(e)&&([,,t=u=>u,i={},o=!1]=arguments,f=Object.entries(e)),w(t)&&([o,i,t]=[typeof i=="boolean"?i:o,t,u=>u]);let c=f.map(([u])=>u);return function u(l,m,a){if(!m.length)return a(l);let[p,y]=m.shift();function d(g,h=void 0){let b=z=>(g.status=z,u(l.concat(g),m,a));if(arguments.length>1)return b(g,h);let T=P(s,"accessorizedProps",!1),A=T&&T.get(g.key);return g.operation==="defineProperty"?(A&&!A.restore()&&b(!1),Object.defineProperty(s,g.key,g.value),b(!0)):A&&A.intact()?b(A.setValue(g.value)):b(Reflect.set(s,g.key,g.value))}function _(g,h){if(i.diff&&y===h)return u(l,m,a);let b=new q(s,{type:o?"def":"set",key:p,value:y,isUpdate:g,oldValue:h,related:[...c],operation:o?"defineProperty":"set",detail:i.detail}),T=L.getInstance(s,!1,i.namespace);return T?T.emit(b,d):d(b)}return Pe(s,p,g=>{if(!g)return _(g);let h={...i,withPropertyDescriptors:o};return"forceOldValue"in i&&(h.forceValue=i.forceOldValue),k(s,p,b=>_(g,b),h)},i)}([],f.slice(0),u=>{let l=N.getInstance(s,!1,i.namespace);return l&&l.emit(u,o),t(Te(e)?u.map(m=>m.status):u[0]?.status)})}function me(n,e,r,t=o=>o,i={}){return U(n,e,r,t,i,!0)}function zt(n,e,r=i=>i,t={}){return U(n,e,r,t,!0)}function de(n,e,r=i=>i,t={}){n=M(n),w(r)&&([t,r]=[r,s=>s]);let i=E(e,!1),o=[...i];return function s(f,c,u){if(!c.length)return u(f);let l=c.shift();function m(p,y=void 0){let d=h=>(p.status=h,s(f.concat(p),c,u));if(arguments.length>1)return d(p,y);let _=P(n,"accessorizedProps",!1),g=_&&_.get(p.key);return g&&!g.restore()&&d(!1),d(Reflect.deleteProperty(n,p.key))}function a(p){let y=new q(n,{type:"delete",key:l,oldValue:p,related:[...o],operation:"deleteProperty",detail:t.detail}),d=L.getInstance(n,!1,t.namespace);return d?d.emit(y,m):m(y)}return k(n,l,a,t)}([],i.slice(0),s=>{let f=N.getInstance(n,!1,t.namespace);return f&&f.emit(s),r(Te(e)?s.map(c=>c.status):s[0].status)})}function Bt(n,e,r=i=>i,t={}){return de(...arguments)}function Ne(n,e,r=null,t=o=>o,i={}){return R(n,"construct",arguments.length>2?{argumentsList:e,newTarget:r}:{argumentsList:e},t,i)}function ve(n,e,r,t=o=>o,i={}){return R(n,"apply",{thisArgument:e,argumentsList:r},t,i)}function $e(n,e,r=i=>i,t={}){return R(n,"setPrototypeOf",{proto:e},r,t)}function Fe(n,e=t=>t,r={}){return R(n,"preventExtensions",{},e,r)}function ut(n,e,r,t={}){let i;t.signal||(i=new AbortController,t={...t,signal:i.signal},we.setMaxListeners?.(0,i.signal));let o=N.getInstance(n,!0,t.namespace);return function s(f,c=null){c?.remove();let l={signal:o.addRegistration(e,s,t).signal};if(arguments.length){let m=r(f,l);if(arguments.length>1)return m}return i}}function R(n,e,r={},t=o=>o,i={}){n=M(n),w(t)&&([i,t]=[t,c=>c]);function o(c,u){return arguments.length>1?t(u):t((Reflect[e]||Object[e])(n,...Object.values(r)))}let s=new q(n,{operation:e,...r}),f=L.getInstance(n,!1,i.namespace);return f?f.emit(s,o):o(s)}function Te(n){return n===1/0||Array.isArray(n)}function M(n,e=!0){if((!n||!v(n))&&e)throw new Error(`Object must be of type object or array! "${Q(n)}" given.`);return n instanceof q&&(n=n.value),n&&le(n)}function Gt(n,e,r,t={}){return e===1/0?t.level&&!v(n)?r([]):ae(n,r,t):r(E(e,!1))}var Xt={...Be,...ke},C=Xt;function he(n,e,r={},t={}){e=E(e).slice();for(var i=n;!D(i)&&!oe(i)&&e.length;){var o=e.shift();if(!(r.get?r.get(i,o):v(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 Ge(n,e,r,t={},i={}){let o=(l,m,a)=>i.set?i.set(l,m,a):(S(e[f])&&x(l)?l.push(a):l[m]=a,!0);e=E(e);for(var s=n,f=0;f<e.length;f++)if(f<e.length-1){if(!s||!v(s)&&!O(s))return!1;var c=he(s,e[f],i);if(!v(c)){if(i.buildTree===!1)return!1;c=O(i.buildTree)?i.buildTree(f):S(e[f+1])?[]:{};var u=o(s,e[f],c);if(!u)return!1}s=c}else return o(s,e[f],r)}var ge=class{constructor(e,r=!0){Object.defineProperty(this,"window",{value:e}),Object.defineProperty(this,"readCallbacks",{value:new Set}),Object.defineProperty(this,"writeCallbacks",{value:new Set}),this.async=r,this.window.requestAnimationFrame?this._run():this.async=!1}_run(){this.window.requestAnimationFrame(()=>{for(let e of this.readCallbacks)e(),this.readCallbacks.delete(e);for(let e of this.writeCallbacks)e(),this.writeCallbacks.delete(e);this._run()})}onread(e,r=!1){if(r)return new Promise(t=>{this.async===!1?t(e()):this.readCallbacks.add(()=>{t(e())})});this.async===!1?e():this.readCallbacks.add(e)}onwrite(e,r=!1){if(r)return new Promise(t=>{this.async===!1?t(e()):this.writeCallbacks.add(()=>{t(e())})});this.async===!1?e():this.writeCallbacks.add(e)}cycle(e,r,t){this.onread(()=>{let i=e(t),o=s=>{s!==void 0&&this.onwrite(()=>{let f=r(s,t),c=u=>{u!==void 0&&this.cycle(e,r,u)};f instanceof Promise?f.then(c):c(f)})};i instanceof Promise?i.then(o):o(i)})}};function lt(n){return(n=n.trim())&&n.startsWith("(")&&n.endsWith(")")}function Ce(n,e,r,t=!0){r=(Array.isArray(r)?r:[r]).map(f=>(f+"").replace("(",t?"(.//":"(./")).join("|");let i=n.document.evaluate(r,e,null,XPathResult.ANY_TYPE),o=[],s;for(;s=i.iterateNext();)o.push(s);return o}function at(n,e,r){return r=(Array.isArray(r)?r:[r]).map(t=>(t+"").replace("(","(self::")).join("|"),n.document.evaluate(`${r}`,e,null,XPathResult.BOOLEAN_TYPE).booleanValue}function mt(n,e="|"){return[...n].reduce(([r,t,i,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 I=class{constructor(e){this.content=e,this.type=typeof e=="string"?"selector":"instance",this.kind=this.type==="instance"?null:lt(e)?"xpath":"css",this.kind==="xpath"&&(this.isXpathAttr=mt(e.trim().slice(1,-1),"@").length>1)}toString(){return this.content}};var J=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(O(e[0])?e=[[],...e]:w(e[0])&&!(e[0]instanceof I)&&e.length===1?e=[[],void 0,e[0]]:w(e[1])&&e.length===2?e=[E(e[0],!1),void 0,e[1]]:e[0]=E(e[0],!1),e[0].filter(r=>typeof r!="string"&&!(r instanceof I)&&!(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 I?r:new I(r)),e}registry(...e){return V("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[f,c]of this.registry(e))for(let[u,l]of c){let m=o.filter(a=>u.contains(a.target)?f==="subtree"||a.target===u:!1);if(!!m.length){Array.isArray(r)||(m=m[0]);for(let a of l)s.add([a,m,u])}}for(let[f,c,u]of s)t.call(i,f,c,u)}disconnectables(e,...r){let t={disconnect(){r.forEach(i=>i&&O(i.disconnect)&&i.disconnect()||O(i)&&i()||w(i)&&(i.disconnected=!0))}};return e&&e.addEventListener("abort",()=>t.disconnect()),t}};var $=class extends J{constructor(e,...r){super(e,"attr",...r)}get(e,r=void 0,t={}){let i=typeof e=="string"||e instanceof I;[e=[],r=void 0,t={}]=this.resolveArgs(arguments);let{context:o}=this,s=yt(o,e);if(!r)return s;let f=t.lifecycleSignals&&this.createSignalGenerator();if(i)for(let c of s){let u=f?.generate()||{};r(c,u,o)}else{let c=f?.generate()||{};r(s,c,o)}if(t.live){f&&(t={...t,signalGenerator:f});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 I;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:f}=this;t.eventDetails&&!f.realdom.attrInterceptionHooks?.intercepting&&ht.call(s,"intercept",()=>{});let c=new s.MutationObserver(a=>{a=gt(a).map(p=>xt.call(s,p)),pt.call(s,m,a,o)}),u={attributes:!0,attributeOldValue:t.oldValue,subtree:t.subtree};e.length&&(u.attributeFilter=e.map(a=>a+"")),c.observe(o,u);let l=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),m={context:o,spec:e,callback:r,params:t,atomics:new Map,originalFilterIsString:i,signalGenerator:l,disconnectable:c};return this.disconnectables(t.signal,c,l)}observeSync(e,r,t={}){let i=typeof e=="string"||e instanceof I;[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 f=t.timing==="intercept"?"intercept":"sync",c=t.subtree?"subtree":"children";this.registry(f).size||ht.call(s,f,y=>{this.forEachMatchingContext(f,y,pt)});let u={disconnect(){p.delete(m),p.size||a.delete(o)}},l=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),m={context:o,spec:e,callback:r,params:t,atomics:new Map,originalFilterIsString:i,signalGenerator:l,disconnectable:u},a=this.registry(f,c);a.has(o)||a.set(o,new Set);let p=a.get(o);return p.add(m),this.disconnectables(t.signal,u,l)}};function gt(n){return n.reduce((e,r,t)=>e[t-1]?.attributeName===r.attributeName?e:e.concat(r),[])}function pt(n,e){let{context:r,spec:t,callback:i,params:o,atomics:s,originalFilterIsString:f,signalGenerator:c}=n,u=t.map(a=>a+"");if(o.atomic&&!s.size?e=yt(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 p;return o.eventDetails||({event:p,...a}=a),!o.oldValue&&"oldValue"in a&&({oldValue:p,...a}=a),!o.newValue&&"value"in a?{value:p,...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 l=f?e[0]:e,m=c?.generate()||{};i(l,m,r)}function yt(n,e,r=[]){let t={event:null,type:"attribute"};return e.length?e.map(o=>(o=o+"",r.find(s=>s.name===o)||{target:n,name:o,value:n.getAttribute(o),...t})):Array.from(n.attributes).map(o=>r.find(s=>s.name===o.nodeName)||{target:n,name:o.nodeName,value:o.nodeValue,...t})}function xt({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 ht(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 f=(l,m)=>{t.realdom.attrInterceptionRecords.has(l.target)||t.realdom.attrInterceptionRecords.set(l.target,{});let a=t.realdom.attrInterceptionRecords.get(l.target);a[l.name]=a[l.name]||[],a[l.name].unshift(l.event),t.realdom.attrInterceptionHooks.get("intercept")?.forEach(y=>y([l]));let p=m();return t.realdom.attrInterceptionHooks.get("sync")?.forEach(y=>y([l])),p};new r.MutationObserver(l=>{l=l.filter(m=>!(r.webqit.realdom.attrInterceptionRecords?.get(m.target)||{})[m.attributeName]?.shift()),l=gt(l).map(m=>xt.call(r,m)),l.length&&(t.realdom.attrInterceptionHooks.get("intercept")?.forEach(m=>m(l)),t.realdom.attrInterceptionHooks.get("sync")?.forEach(m=>m(l)))}).observe(i,{attributes:!0,subtree:!0,attributeOldValue:!0});let u=Object.create(null);return["setAttribute","removeAttribute","toggleAttribute"].forEach(l=>{u[l]=o.prototype[l],o.prototype[l]=function(...m){let a,p=this.getAttribute(m[0]);["setAttribute","toggleAttribute"].includes(l)&&(a=m[1]),l==="toggleAttribute"&&a===void 0&&(a=p===null);let y={target:this,name:m[0],value:a,oldValue:p,type:"interception",event:[this,l]};return f(y,()=>u[l].call(this,...m))}}),s}var ye=class extends J{constructor(e,...r){super(e,"tree",...r)}attr(e,r=void 0,t={}){let{context:i,window:o}=this;return new $(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,l]=e.reduce(([a,p],y)=>y.kind==="xpath"?[a,p.concat(y)]:[a.concat(y),p],[[],[]]),m=[];t.subtree?(u.length&&m.push(...i.querySelectorAll(u.join(","))),l.length&&m.push(...Ce(this.window,i,l))):(u.length&&m.push(...[...i.children].filter(a=>a.matches(u))),l.length&&m.push(...Ce(this.window,i,l,!1))),m.forEach(a=>s(a.parentNode||i).entrants.push(a))}}if(!r)return o;let f={disconnected:!1},c=r&&t.lifecycleSignals&&this.createSignalGenerator();for(let[,u]of o){if(f.disconnected)break;let l=c?.generate()||{};r(u,l,i)}if(t.live){c&&(t={...t,signalGenerator:c});let u=this.observe(e,r,t);return this.disconnectables(t.signal,f,u)}return this.disconnectables(t.signal,f,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:f}=this;t.eventDetails&&(s.realdom.domInterceptionRecordsAlwaysOn=!0),(f.readyState==="loading"||s.realdom.domInterceptionRecordsAlwaysOn)&&!s.realdom.domInterceptionHooks?.intercepting&&wt.call(o,"sync",()=>{});let c=new o.MutationObserver(m=>m.forEach(a=>{Xe.call(o,l,_t.call(o,a),i)}));c.observe(i,{childList:!0,subtree:t.subtree});let u=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),l={context:i,spec:e,callback:r,params:t,signalGenerator:u,disconnectable:c};if(t.staticSensitivity){let m=bt.call(o,l);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",f=t.subtree?"subtree":"children";this.registry(s).size||wt.call(o,s,y=>{this.forEachMatchingContext(s,y,Xe)});let c=new o.MutationObserver(y=>y.forEach(d=>{Array.isArray((d=_t.call(o,d)).event)||Xe.call(o,m,d,i)}));c.observe(i,{childList:!0,subtree:t.subtree});let u={disconnect(){c.disconnect(),p.delete(m),p.size||a.delete(i)}},l=t.signalGenerator||t.lifecycleSignals&&this.createSignalGenerator(),m={context:i,spec:e,callback:r,params:t,signalGenerator:l,disconnectable:u},a=this.registry(s,f);a.has(i)||a.set(i,new Set);let p=a.get(i);if(p.add(m),t.staticSensitivity){let y=bt.call(o,m);return this.disconnectables(t.signal,u,l,y)}return this.disconnectables(t.signal,u,l)}};function bt(n){let e=this,{context:r,spec:t,callback:i,params:o,signalGenerator:s}=n,f=t.filter(p=>p.kind==="css"),c=p=>p.match(/\.([\w-]+)/g)?.length?["class"]:[],u=p=>p.match(/#([\w-]+)/g)?.length?["id"]:[],l=p=>[...p.matchAll(/\[([^\=\]]+)(\=[^\]]+)?\]/g)].map(y=>y[1]).concat(c(p)).concat(u(p));if(!(n.$attrs=Array.from(new Set(f.filter(p=>(p+"").includes("[")).reduce((p,y)=>p.concat(l(y+"")),[])))).length)return;let m=new Set,a=new Set;return m.push=p=>(a.delete(p),m.add(p)),a.push=p=>(m.delete(p),a.add(p)),n.$deliveryCache={entrants:m,exits:a},new $(r,e).observe(n.$attrs,p=>{let y=new Map,d=h=>(y.has(h)||y.set(h,{target:h,entrants:[],exits:[],type:"static",event:null}),y.get(h)),_=new WeakMap,g=h=>(_.has(h)||_.set(h,f.some(b=>h.matches(b+""))),_.get(h));for(let h of p)["entrants","exits"].forEach(b=>{o.generation&&b!==o.generation||n.$deliveryCache[b].has(h.target)||(b==="entrants"?!g(h.target):g(h.target))||(n.$deliveryCache[b].push(h.target),d(h.target)[b].push(h.target),d(h.target).event=h.event)});for(let[,h]of y){let b=s?.generate()||{};i(h,b,r)}},{subtree:o.subtree,timing:o.timing,eventDetails:o.eventDetails})}function Xe(n,e){let{context:r,spec:t,callback:i,params:o,signalGenerator:s,$deliveryCache:f}=n,c={...e,entrants:[],exits:[]};if(o.eventDetails||delete c.event,["entrants","exits"].forEach(l=>{if(!(o.generation&&l!==o.generation)&&(t.length?c[l]=Qt.call(this,t,e[l],e.event!=="parse"):c[l]=[...e[l]],!!f))for(let m of c[l])f[l].push(m)}),!c.entrants.length&&!c.exits.length)return;let u=s?.generate()||{};i(c,u,r)}function Qt(n,e,r){e=Array.isArray(e)?e:[...e];let t=(i,o)=>{if(o.type==="selector"){let s=o.isXpathAttr?[]:i.filter(f=>o.kind==="xpath"?at(this,f,o+""):f.matches&&f.matches(o+""));if((r||o.isXpathAttr)&&(s=i.reduce((f,c)=>o.kind==="xpath"?[...f,...Ce(this,c,o,r)]:c.querySelectorAll?[...f,...c.querySelectorAll(o+"")]:f,s)),s.length)return s}else if(i.includes(o.content)||r&&i.some(s=>s.contains(o.content)))return[o.content]};return e.$$searchCache||(e.$$searchCache=new Map),n.reduce((i,o)=>{let s;return e.$$searchCache.has(o.content)?s=e.$$searchCache.get(o.content):(s=t(e,o)||[],o.type==="instance"&&e.$$searchCache.set(o.content,s)),i.concat(s)},[])}function _t({target:n,addedNodes:e,removedNodes:r}){let t=this,i;return i=E(e).reduce((o,s)=>o||t.webqit.realdom.domInterceptionRecords?.get(s),null),i=E(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 wt(n,e){let r=this,{webqit:t,document:i,Node:o,CharacterData:s,Element:f,HTMLElement:c,HTMLTemplateElement:u,DocumentFragment:l}=r;t.realdom.domInterceptionHooks||Object.defineProperty(t.realdom,"domInterceptionHooks",{value:new Map}),t.realdom.domInterceptionHooks.has(n)||t.realdom.domInterceptionHooks.set(n,new Set),t.realdom.domInterceptionHooks.get(n).add(e);let 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=(d,_)=>{d.entrants.concat(d.exits).forEach(h=>{clearTimeout(t.realdom.domInterceptionRecords.get(h)?.timeout),t.realdom.domInterceptionRecords.set(h,d.event);let b=setTimeout(()=>{t.realdom.domInterceptionRecords.delete(h)},0);Object.defineProperty(d.event,"timeout",{value:b,configurable:!0})}),t.realdom.domInterceptionHooks.get("intercept")?.forEach(h=>h(d));let g=_();return t.realdom.domInterceptionHooks.get("sync")?.forEach(h=>h(d)),g},p={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 _(...g){let h=this instanceof s?p.characterData:p.other,b=()=>h[d].call(this,...g);if(!(this instanceof s||this instanceof f||this instanceof l))return b();let T=[],A=[],z=this;["insertBefore"].includes(d)?A=[g[0]]:["insertAdjacentElement","insertAdjacentHTML"].includes(d)?(A=[g[1]],["beforebegin","afterend"].includes(g[0])&&(z=this.parentNode)):["setHTML","replaceChildren"].includes(d)?(T=[...this.childNodes],A=d==="replaceChildren"?[...g]:[g[0]]):["replaceWith","remove"].includes(d)?(T=[this],A=d==="replaceWith"?[...g]:[],z=this.parentNode):["replaceChild"].includes(d)?(T=[g[1]],A=[g[0]]):["removeChild"].includes(d)?T=[...g]:(A=[...g],["before","after"].includes(d)&&(z=this.parentNode));let B=d;if(["insertAdjacentHTML","setHTML"].includes(d)){let Ke=this.nodeName;if(d==="insertAdjacentHTML"&&["beforebegin","afterend"].includes(g[0])){if(!this.parentNode)return h[d].call(this,...g);Ke=this.parentNode.nodeName}let xe=i.createElement(Ke);h.setHTML.call(xe,A[0],d==="setHTML"?g[1]:{}),A=[...xe.childNodes],d==="insertAdjacentHTML"?(B="insertAdjacentElement",g[1]=new l,g[1].______isTemp=!0,g[1].append(...xe.childNodes)):(B="replaceChildren",g=[...xe.childNodes])}return a({target:z,entrants:A,exits:T,type:"interception",event:[this,d]},()=>h[B].call(this,...g))}["insertBefore","replaceChild","removeChild","appendChild"].includes(d)?(p.other[d]=o.prototype[d],o.prototype[d]=_):(["after","before","remove","replaceWith"].includes(d)&&(p.characterData[d]=s.prototype[d],s.prototype[d]=_),f.prototype[d]&&(p.other[d]=f.prototype[d],f.prototype[d]=_))});let y=Object.create(null);return["outerHTML","outerText","innerHTML","innerText","textContent","nodeValue"].forEach(d=>{let _=["textContent","nodeValue"].includes(d)?o:["outerText","innerText"].includes(d)?c:f;y[d]=Object.getOwnPropertyDescriptor(_.prototype,d),Object.defineProperty(_.prototype,d,{...y[d],set:function(g){let h=()=>y[d].set.call(this,g);if(!(this instanceof f))return h();let b=[],T=[],A=this;if(["outerHTML","outerText"].includes(d)?(b=[this],A=this.parentNode):b=[...this.childNodes],["outerHTML","innerHTML"].includes(d)){let B=this.nodeName;if(d==="outerHTML"){if(!this.parentNode)return h();B=this.parentNode.nodeName}let Y=i.createElement(B==="TEMPLATE"?"div":B);y[d].set.call(Y,g),T=this instanceof u?[]:[...Y.childNodes],d==="outerHTML"?(g=new l,g.______isTemp=!0,g.append(...Y.childNodes),h=()=>f.prototype.replaceWith.call(this,g)):this instanceof u?h=()=>this.content.replaceChildren(...Y.childNodes):h=()=>f.prototype.replaceChildren.call(this,...Y.childNodes)}return a({target:A,entrants:T,exits:b,type:"interception",event:[this,d]},h)}})}),["append","prepend","replaceChildren"].forEach(d=>{[i,l.prototype].forEach(_=>{let g=_[d];_[d]=function(...h){if(this.______isTemp)return g.call(this,...h);let b=d==="replaceChildren"?[...this.childNodes]:[];return a({target:this,entrants:h,exits:b,type:"interception",event:[this,d]},()=>g.call(this,...h))}})}),m}function Ot(){Zt.call(this),Kt.call(this),er.call(this)}function Zt(){let n=this;n.CSS||(n.CSS={}),n.CSS.escape||(n.CSS.escape=e=>e.replace(/([\:@\~\$\&])/g,"\\$1"))}function Kt(){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 er(){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 vt(){let n=this;if(n.webqit||(n.webqit={}),n.webqit.realdom)return n.webqit.realdom;n.webqit.realdom={},Ot.call(n),n.webqit.realdom.meta=(...r)=>tr.call(n,...r),n.webqit.realdom.ready=(...r)=>Ue.call(n,...r),n.webqit.realdom.realtime=(r,t="dom")=>{if(t==="dom")return new ye(r,n);if(t==="attr")return new $(r,n)};let e=new ge(n);return n.webqit.realdom.schedule=(r,...t)=>e[`on${r}`](...t),n.webqit.realdom}function Ue(...n){let e="interactive",r;K(n[0])?(e=n[0],O(n[1])&&(r=n[1])):O(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=>Ue.call(this,"interactive",o)),complete:new Promise(o=>Ue.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 tr(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(f=>f.trim());return Ge(i,s[0].split("."),s[1]==="true"?!0:s[1]==="false"?!1:S(s[1])?parseInt(s[1]):s[1]),i},{})),{get name(){return n},get content(){return t.content},json(){return JSON.parse(JSON.stringify(r))}}}var F=(...n)=>V("oohtml",...n);function Je(n,e,r){let t=n.toUpperCase().replace("-","_"),i=this,o=vt.call(i);return i.webqit||(i.webqit={}),i.webqit.oohtml||(i.webqit.oohtml={}),i.webqit.oohtml.configs||(i.webqit.oohtml.configs={}),i.webqit.oohtml.configs[t]||(i.webqit.oohtml.configs[t]={}),fe(2,i.webqit.oohtml.configs[t],r,e,o.meta(n).json()),{config:i.webqit.oohtml.configs[t],realdom:o,window:i}}function Ye(n,e,r=1,t=!1){if(r&&typeof n=="object"&&n&&typeof e=="object"&&e&&(!t||Object.keys(n).length===Object.keys(e).length)){for(let i in n)if(!Ye(n[i],e[i],r-1,t))return!1;return!0}return Array.isArray(n)&&Array.isArray(e)&&n.length===e.length?(e=e.slice(0).sort())&&n.slice(0).sort().every((i,o)=>i===e[o]):n===e}var te=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){C.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 At(){let n=this;if(n.webqit.ContextRequestEvent)return n.webqit.ContextRequestEvent;class e extends n.Event{constructor(t,i,{type:o="contextrequest",...s}={}){super(o,s),Object.defineProperty(this,"request",{get:()=>t}),Object.defineProperty(this,"callback",{get:()=>i})}respondWith(t,...i){if(this.request.diff){if("prevValue"in this&&this.prevValue===t)return;Object.defineProperty(this,"prevValue",{value:t,configurable:!0})}return this.callback(t,...i)}}return n.webqit.ContextRequestEvent=e,e}var H=class{static instance(e){return F(e).get("context::instance")||new this(e)}constructor(e){F(e).get("context::instance")?.dispose(),F(e).set("context::instance",this);let r={host:e,contexts:new Set};Object.defineProperty(this,"#",{get:()=>r});let t=At.call(e.ownerDocument?.defaultView||e.defaultView);Object.defineProperty(this,"ContextRequestEvent",{get:()=>t}),this[Symbol.iterator]=function*(){yield*r.contexts}}get length(){this["#"].contexts.size}findProvider(e){return[...this["#"].contexts].find(e)}attachProvider(e){this["#"].contexts.add(e),e.initialize(this["#"].host)}detachProvider(e){e.dispose(this["#"].host),this["#"].contexts.delete(e)}request(e,r=null,t={}){typeof r=="object"&&(t=r,r=null);let i;r||(i=new te(e,this["#"].host),r=i.callback.bind(i));let o=this["#"].host.dispatchEvent(new this.ContextRequestEvent(e,r,{bubbles:!0,...t}));return i??o}dispose(){}};var W=class{static get config(){return{}}static attachTo(e,r,t=!1){this.providers.set(this.type,this);let i,o=H.instance(e);return!t&&(i=o.findProvider(s=>this.matchId(s.id,r)))?i:o.attachProvider(new this(r))}static detachFrom(e,r,t=!1){let i,o=H.instance(e);for(i of o["#"].contexts)if(!(!this.matchId(i.id,r)||typeof t=="function"&&!t(i))&&(o.detachProvider(i),typeof multiple!="function"&&!t))return i}static createId(e,r={}){let t={type:this.type,...r};return t.contextName||(e.getAttribute&&this.config.context&&!(t.contextName=(e.getAttribute(this.config.context.attr?.contextname)||"").trim())?delete t.contextName:e.ownerDocument||(t.contextName="root")),t}static matchId(e,r){return Ye(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),H.instance(e).request({...this.id,superContextOnly:!0},r=>r.forEach(t=>{this.subscribe(t),this.handle(t)}),{type:"contextclaim"}),this}dispose(e){return this.disposed=!0,e.removeEventListener("contextrequest",this),e.removeEventListener("contextclaim",this),this.subscriptions.forEach(r=>{this.unsubscribe(r);let{target:t,request:i,callback:o,options:s}=r;H.instance(t).request(i,o,s)}),this}};ne(W,"providers",new Map),ne(W,"type");var re=class extends W{static createRequest(e={}){let r=super.createRequest(e);if(r.detail?.startsWith("@")){let[t,...i]=r.detail.slice(1).split(".").map(o=>o.trim());r.contextName=t,r.detail=i.join(".")}return r}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=C.reduce(this.bindingsObj,Array.isArray(e.request.detail)?e.request.detail:[e.request.detail],C.get,r=>{this.disposed||e.respondWith(r.value)},{live:e.request.live,descripted:!0})}};ne(re,"type","bindings");function Ze(n={}){let{config:e,window:r}=Je.call(this,"bindings-api",n,{context:{attr:{bindingscontext:"bindings"}},api:{bind:"bind",bindings:"bindings"}});e.CONTEXT_API=r.webqit.oohtml.configs.CONTEXT_API,e.context.attr.contextname=e.CONTEXT_API.attr.contextname,r.webqit.HTMLBindingsProvider=class extends re{static get config(){return e}},r.webqit.Observer=C,ir.call(r,e)}function Qe(n,e){let r=this;if(!F(e).has("bindings")){let t=Object.create(null);F(e).set("bindings",t),C.observe(t,i=>{for(let f of i)f.type==="delete"?nr.call(this,e,f.key):rr.call(this,e,f.key);let o=Object.keys(t),s=e===r.document?r.document.documentElement:e;o.length?s.setAttribute(n.context.attr.bindingscontext,o.join(" ")):s.toggleAttribute(n.context.attr.bindingscontext,!1)})}return F(e).get("bindings")}function rr(n,e){let r=this,{HTMLBindingsProvider:t}=r.webqit,i=t.createId(n,{detail:e});t.attachTo(n,i)}function nr(n,e){let r=this,{HTMLBindingsProvider:t}=r.webqit,i=t.createId(n,{detail:e});t.detachFrom(n,i)}function Pt(n,e,r,{merge:t,diff:i,namespace:o}={}){let s=Qe.call(this,n,e),f={diff:i,namespace:o},c=t?[]:C.ownKeys(s,f).filter(u=>!(u in r));return C.batch(s,()=>(c.length&&C.deleteProperties(s,c,f),C.set(s,r,f)),f)}function ir(n){let e=this;if(n.api.bind in e.document)throw new Error(`document already has a "${n.api.bind}" property!`);if(n.api.bindings in e.document)throw new Error(`document already has a "${n.api.bindings}" property!`);if(n.api.bind in e.Element.prototype)throw new Error(`The "Element" class already has a "${n.api.bind}" property!`);if(n.api.bindings in e.Element.prototype)throw new Error(`The "Element" class already has a "${n.api.bindings}" property!`);Object.defineProperty(e.document,n.api.bind,{value:function(r,t={}){return Pt.call(e,t,e.document,r)}}),Object.defineProperty(e.document,n.api.bindings,{get:function(){return C.proxy(Qe.call(e,n,e.document))}}),Object.defineProperty(e.Element.prototype,n.api.bind,{value:function(r,t={}){return Pt.call(e,t,this,r)}}),Object.defineProperty(e.Element.prototype,n.api.bindings,{get:function(){return C.proxy(Qe.call(e,n,this))}})}Ze.call(window);})();
|
|
2
2
|
//# sourceMappingURL=bindings-api.js.map
|