@jinntec/fore 2.5.0 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/fore-dev.js +36088 -9
- package/dist/fore.js +35918 -9
- package/index.js +3 -1
- package/package.json +10 -4
- package/resources/fore.css +30 -5
- package/src/DataObserver.js +181 -0
- package/src/DependencyNotifyingDomFacade.js +27 -21
- package/src/DependentXPathQueries.js +32 -0
- package/src/ForeElementMixin.js +60 -26
- package/src/actions/abstract-action.js +24 -29
- package/src/actions/fx-append.js +25 -2
- package/src/actions/fx-call.js +2 -2
- package/src/actions/fx-delete.js +58 -21
- package/src/actions/fx-hide.js +1 -1
- package/src/actions/fx-insert.js +62 -48
- package/src/actions/fx-load.js +7 -2
- package/src/actions/fx-refresh.js +15 -5
- package/src/actions/fx-replace.js +18 -3
- package/src/actions/fx-reset.js +6 -0
- package/src/actions/fx-send.js +10 -7
- package/src/actions/fx-setattribute.js +12 -0
- package/src/actions/fx-setfocus.js +11 -8
- package/src/actions/fx-setvalue.js +20 -2
- package/src/actions/fx-show.js +4 -2
- package/src/actions/fx-toggle.js +1 -1
- package/src/extract-predicate-deps.js +57 -0
- package/src/extractPredicateDependencies.js +36 -0
- package/src/fore.js +78 -36
- package/src/fx-bind.js +128 -23
- package/src/fx-connection.js +24 -7
- package/src/fx-fore.js +552 -306
- package/src/fx-instance.js +9 -11
- package/src/fx-model.js +154 -65
- package/src/fx-submission.js +45 -51
- package/src/fx-var.js +5 -0
- package/src/getInScopeContext.js +8 -8
- package/src/modelitem.js +218 -72
- package/src/tools/fx-action-log.js +21 -19
- package/src/tools/fx-log-settings.js +4 -2
- package/src/ui/TemplateExpression.js +12 -0
- package/src/ui/UIElement.js +206 -0
- package/src/ui/abstract-control.js +15 -7
- package/src/ui/fx-case.js +15 -3
- package/src/ui/fx-container.js +10 -3
- package/src/ui/fx-control-menu.js +207 -0
- package/src/ui/fx-control.js +116 -32
- package/src/ui/fx-dialog.js +2 -2
- package/src/ui/fx-group.js +14 -0
- package/src/ui/fx-items.js +10 -4
- package/src/ui/fx-repeat-attributes.js +111 -35
- package/src/ui/fx-repeat.js +364 -87
- package/src/ui/fx-repeat.updated.js +821 -0
- package/src/ui/fx-repeatitem.js +23 -20
- package/src/ui/fx-switch.js +5 -3
- package/src/ui/fx-upload.js +36 -40
- package/src/ui/repeat-base.js +532 -0
- package/src/withDraggability.js +8 -4
- package/src/xpath-evaluation.js +26 -8
- package/src/xpath-path.js +79 -0
- package/src/xpath-util.js +107 -11
- package/dist/fore-dev.js.map +0 -1
- package/dist/fore.js.map +0 -1
- package/src/ui/fx-select.js +0 -89
package/dist/fore-dev.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fore-dev.js","sources":["../node_modules/whynot/dist/whynot.esm.js","../node_modules/xspattern/dist/xspattern.esm.js","../node_modules/prsc/dist/prsc.esm.js","../node_modules/fontoxpath/dist/fontoxpath.esm.js","../src/DependencyNotifyingDomFacade.js","../src/xpath-util.js","../src/dep_graph.js","../src/functions/common-function.js","../src/xpath-evaluation.js","../src/getInScopeContext.js","../src/fore.js","../src/fx-instance.js","../src/modelitem.js","../src/fx-model.js","../src/DependentXPathQueries.js","../src/ForeElementMixin.js","../src/fx-bind.js","../src/fx-connection.js","../node_modules/toastify-js/src/toastify-es.js","../node_modules/@jinntec/jinn-toast/src/JinnToast.js","../src/withDraggability.js","../src/ui/fx-repeat-attributes.js","../src/fx-fore.js","../src/relevance.js","../src/fx-submission.js","../src/fx-header.js","../src/fx-var.js","../src/ui/abstract-control.js","../src/ui/fx-alert.js","../src/events.js","../src/ui/fx-control.js","../src/ui/fx-container.js","../src/ui/fx-group.js","../src/ui/fx-hint.js","../src/ui/fx-output.js","../src/ui/fx-repeatitem.js","../src/ui/fx-repeat.js","../src/ui/fx-switch.js","../src/ui/fx-trigger.js","../src/ui/fx-case.js","../src/ui/fx-inspector.js","../src/ui/fx-dialog.js","../src/ui/fx-items.js","../src/ui/fx-droptarget.js","../src/tools/fx-log-item.js","../src/tools/fx-log-settings.js","../src/tools/fx-action-log.js","../src/tools/helpers.js","../src/tools/adi.js","../src/tools/fx-dom-inspector.js","../src/tools/fx-json-instance.js","../src/tools/fx-devtools.js","../src/lab/fore-component.js","../tools/fx-lens.js","../src/ui/fx-upload.js","../src/actions/abstract-action.js","../src/actions/fx-append.js","../src/actions/fx-delete.js","../src/actions/fx-setfocus.js","../src/actions/fx-insert.js","../src/actions/fx-message.js","../src/actions/fx-setvalue.js","../src/actions/fx-send.js","../src/actions/fx-toggle.js","../src/actions/fx-dispatch.js","../src/actions/fx-update.js","../src/actions/fx-refresh.js","../src/actions/fx-replace.js","../src/actions/fx-return.js","../src/actions/fx-action.js","../src/actions/fx-confirm.js","../src/actions/fx-show.js","../src/actions/fx-hide.js","../src/actions/fx-reload.js","../src/actions/fx-reset.js","../src/actions/fx-load.js","../src/actions/fx-toggleboolean.js","../src/actions/fx-call.js","../src/actions/fx-setattribute.js","../src/actions/fx-construct-done.js","../src/actions/fx-unmodified.js","../src/functions/registerFunction.js","../src/functions/fx-function.js","../src/functions/fx-functionlib.js"],"sourcesContent":["function t(t,s,r,i){const n={op:s,func:r,data:i};return t.push(n),n}function s(t,s){return t}class r{constructor(){this.program=[]}test(s,r){return t(this.program,5,s,void 0===r?null:r)}jump(s){return t(this.program,3,null,s)}record(r,i){return t(this.program,4,void 0===i?s:i,r)}bad(s=1){return t(this.program,1,null,s)}accept(){return t(this.program,0,null,null)}fail(s){return t(this.program,2,s||null,null)}}class i{constructor(t,s,r){this.programLength=t,this.maxFromByPc=s,this.maxSurvivorFromByPc=r}static fromProgram(t){const s=t.length,r=[],n=[];return t.forEach(t=>{r.push(0),n.push(0)}),t.forEach((t,i)=>{switch(t.op){case 2:if(null===t.func)return;if(i+1>=s)throw new Error(\"Invalid program: program could run past end\");r[i+1]+=1;break;case 1:case 4:if(i+1>=s)throw new Error(\"Invalid program: program could run past end\");r[i+1]+=1;break;case 3:t.data.forEach(t=>{if(t<0||t>=s)throw new Error(\"Invalid program: program could run past end\");r[t]+=1});break;case 5:if(i+1>=s)throw new Error(\"Invalid program: program could run past end\");n[i+1]+=1;break;case 0:n[i]+=1}}),new i(s,r,n)}static createStub(t){const s=[],r=[];for(let i=0;i<t;++i)s.push(t),r.push(t);return new i(t,s,r)}}class n{constructor(t){this.acceptingTraces=t,this.success=t.length>0}}class h{constructor(t){this.t=0,this.i=0,this.h=new Uint16Array(t),this.l=new Uint8Array(t)}getBadness(t){return this.l[t]}add(t,s){this.l[t]=s>255?255:s;const r=function(t,s,r,i,n){let h=i,e=n;for(;h<e;){const i=h+e>>>1;r<s[t[i]]?e=i:h=i+1}return h}(this.h,this.l,s,this.i,this.t);this.h.copyWithin(r+1,r,this.t),this.h[r]=t,this.t+=1}reschedule(t,s){const r=Math.max(this.l[t],s>255?255:s);if(this.l[t]!==r){const s=this.h.indexOf(t,this.i);if(s<0||s>=this.t)return void(this.l[t]=r);this.h.copyWithin(s,s+1,this.t),this.t-=1,this.add(t,r)}}getNextPc(){return this.i>=this.t?null:this.h[this.i++]}reset(){this.t=0,this.i=0,this.l.fill(0)}}class e{constructor(t){this.o=[];let s=t.length;t.forEach(t=>{this.o.push(t>0?s:-1),s+=t}),this.u=new Uint16Array(s)}clear(){this.u.fill(0,0,this.o.length)}add(t,s){const r=this.u[s],i=this.o[s];this.u[s]+=1,this.u[i+r]=t}has(t){return this.u[t]>0}forEach(t,s){const r=this.u[t],i=this.o[t];for(let t=i;t<i+r;++t)s(this.u[t])}}function l(t,s,r=!1){return null===t?s:Array.isArray(t)?(-1===t.indexOf(s)&&(r&&(t=t.slice()),t.push(s)),t):t===s?t:[t,s]}class c{constructor(t,s){this.prefixes=t,this.record=s}}function o(t,s){let r;if(null===s){if(!Array.isArray(t))return t;r=t}else r=t===c.EMPTY?[]:Array.isArray(t)?t:[t];return new c(r,s)}c.EMPTY=new c([],null);class u{constructor(t){this.p=[],this.v=[];for(let s=0;s<t;++s)this.p.push(0),this.v.push(null)}mergeTraces(t,s,r,i,n,h){let e=!1;return r.forEach(s,s=>{const r=this.trace(s,i,n,h);var c,o,u;o=r,u=e,t=null===(c=t)?o:null===o?c:Array.isArray(o)?o.reduce((t,s)=>l(t,s,t===o),c):l(c,o,u),e=t===r}),t}trace(t,s,r,i){switch(this.p[t]){case 2:return this.v[t];case 1:return null}this.p[t]=1;let n=null;const h=s[t];if(null!==h)n=h;else if(!r.has(t))throw new Error(\"Trace without source at pc \"+t);if(n=this.mergeTraces(n,t,r,s,r,i),null!==n){const s=i[t];null!==s&&(n=o(n,s))}return this.v[t]=n,this.p[t]=2,n}buildSurvivorTraces(t,s,r,i,n){for(let h=0,e=t.length;h<e;++h){if(!r.has(h)){s[h]=null;continue}this.v.fill(null),this.p.fill(0);const e=this.mergeTraces(null,h,r,t,i,n);if(null===e)throw new Error(\"No non-cyclic paths found to survivor \"+h);s[h]=o(e,null)}this.v.fill(null)}}class a{constructor(t){this.g=[],this.k=[],this.m=[],this.A=new e(t.maxFromByPc),this.T=new e(t.maxSurvivorFromByPc),this.S=new u(t.programLength);for(let s=0;s<t.programLength;++s)this.g.push(null),this.k.push(null),this.m.push(null);this.k[0]=c.EMPTY}reset(t){this.A.clear(),this.T.clear(),this.g.fill(null),t&&(this.k.fill(null),this.m.fill(null),this.k[0]=c.EMPTY)}record(t,s){this.g[t]=s}has(t){return this.A.has(t)||null!==this.k[t]}add(t,s){this.A.add(t,s)}hasSurvivor(t){return this.T.has(t)}addSurvivor(t,s){this.T.add(t,s)}buildSurvivorTraces(){const t=this.k;this.S.buildSurvivorTraces(t,this.m,this.T,this.A,this.g),this.k=this.m,this.m=t}getTraces(t){const s=t.reduce((t,s)=>l(t,this.k[s]),null);return null===s?[]:Array.isArray(s)?s:[s]}}class f{constructor(t){this.I=[],this.N=new h(t.programLength),this.M=new h(t.programLength),this.P=new a(t)}reset(){this.N.reset(),this.N.add(0,0),this.I.length=0,this.P.reset(!0)}getNextThreadPc(){return this.N.getNextPc()}step(t,s,r){const i=this.P.has(s);this.P.add(t,s);const n=this.N.getBadness(t)+r;i?this.N.reschedule(s,n):this.N.add(s,n)}stepToNextGeneration(t,s){const r=this.P.hasSurvivor(s);this.P.addSurvivor(t,s);const i=this.N.getBadness(t);r?this.M.reschedule(s,i):this.M.add(s,i)}accept(t){this.I.push(t),this.P.addSurvivor(t,t)}fail(t){}record(t,s){this.P.record(t,s)}nextGeneration(){this.P.buildSurvivorTraces(),this.P.reset(!1);const t=this.N;t.reset(),this.N=this.M,this.M=t}getAcceptingTraces(){return this.P.getTraces(this.I)}}class d{constructor(t){this.U=[],this.G=t,this.V=i.fromProgram(t),this.U.push(new f(this.V))}execute(t,s){const r=this.U.pop()||new f(this.V);r.reset();const i=t.length;let h,e=-1;do{let n=r.getNextThreadPc();if(null===n)break;for(++e,h=e>=i?null:t[e];null!==n;){const t=this.G[n];switch(t.op){case 0:null===h?r.accept(n):r.fail(n);break;case 2:{const i=t.func;if(null===i||i(s)){r.fail(n);break}r.step(n,n+1,0);break}case 1:r.step(n,n+1,t.data);break;case 5:if(null===h){r.fail(n);break}if(!(0,t.func)(h,t.data,s)){r.fail(n);break}r.stepToNextGeneration(n,n+1);break;case 3:{const s=t.data,i=s.length;if(0===i){r.fail(n);break}for(let t=0;t<i;++t)r.step(n,s[t],0);break}case 4:{const i=(0,t.func)(t.data,e,s);null!=i&&r.record(n,i),r.step(n,n+1,0);break}}n=r.getNextThreadPc()}r.nextGeneration()}while(null!==h);const l=new n(r.getAcceptingTraces());return r.reset(),this.U.push(r),l}}function w(t){const s=new r;return t(s),new d(s.program)}var p={Assembler:r,VM:d,compileVM:w};export{r as Assembler,d as VM,w as compileVM,p as default};\n//# sourceMappingURL=whynot.esm.js.map\n","import{compileVM as A}from\"whynot\";function B(A){return B=>B===A}function a(A,B){if(null===A||null===B)throw new Error(\"unescaped hyphen may not be used as a range endpoint\");if(B<A)throw new Error(\"character range is in the wrong order\");return a=>A<=a&&a<=B}function n(A){return!0}function e(){return!1}function t(A,B){return a=>A(a)||B(a)}function G(A,B){switch(B.kind){case\"predicate\":return void A.test(B.value);case\"regexp\":return void r(A,B.value,!1)}}function i(A,B){B.forEach(B=>{!function(A,B){const[a,{min:n,max:e}]=B;if(null!==e){for(let B=0;B<n;++B)G(A,a);for(let B=n;B<e;++B){const B=A.jump([]);B.data.push(A.program.length),G(A,a),B.data.push(A.program.length)}}else if(n>0){for(let B=0;B<n-1;++B)G(A,a);const B=A.program.length;G(A,a),A.jump([B]).data.push(A.program.length)}else{const B=A.program.length,n=A.jump([]);n.data.push(A.program.length),G(A,a),A.jump([B]),n.data.push(A.program.length)}}(A,B)})}function r(A,B,a){const n=A.program.length,e=A.jump([]);a&&(e.data.push(A.program.length),A.test(()=>!0),A.jump([n]));const t=[];if(B.forEach(B=>{e.data.push(A.program.length),i(A,B),t.push(A.jump([]))}),t.forEach(B=>{B.data.push(A.program.length)}),a){const B=A.program.length,a=A.jump([]);a.data.push(A.program.length),A.test(()=>!0),A.jump([B]),a.data.push(A.program.length)}}function o(A,B){return{success:!0,offset:A,value:B}}function l(A){return o(A,void 0)}function H(A,B,a=!1){return{success:!1,offset:A,expected:B,fatal:a}}function C(A){return(B,a)=>{const n=a+A.length;return B.slice(a,n)===A?o(n,A):H(a,[A])}}function u(A,B){return(a,n)=>{const e=A(a,n);return e.success?o(e.offset,B(e.value)):e}}function s(A,B,a,n){return(e,t)=>{const G=A(e,t);return G.success?B(G.value)?G:H(t,a,n):G}}function c(A,B){return(a,n)=>{let e=null;for(const t of A){const A=t(a,n);if(A.success)return A;if(null===e||A.offset>e.offset?e=A:A.offset===e.offset&&void 0===B&&(e.expected=e.expected.concat(A.expected)),A.fatal)return A}return B=B||(null==e?void 0:e.expected)||[],e&&(e.expected=B),e||H(n,B)}}function D(A){return(B,a)=>{const n=A(B,a);return n.success||n.fatal?n:o(a,null)}}function m(A){return(B,a)=>{let n=[],e=a;for(;;){const a=A(B,e);if(!a.success){if(a.fatal)return a;break}if(n.push(a.value),a.offset===e)break;e=a.offset}return o(e,n)}}function I(A,B,a){return(n,e)=>{const t=A(n,e);if(!t.success)return t;const G=B(n,t.offset);return G.success?o(G.offset,a(t.value,G.value)):G}}function d(A){return I(A,m(A),(A,B)=>[A].concat(B))}function h(A,B){return A}function p(A,B){return B}function T(A,B){return I(A,B,p)}function F(A,B){return I(A,B,h)}function E(A,B,a,n=!1){return T(A,n?f(F(B,a)):F(B,a))}function g(A,B){return(a,n)=>A(a,n).success?H(n,B):l(n)}function f(A){return(B,a)=>{const n=A(B,a);return n.success?n:H(n.offset,n.expected,!0)}}const P=(A,B)=>A.length===B?l(B):H(B,[\"end of input\"]);const M=[\"Lu\",\"Ll\",\"Lt\",\"Lm\",\"Lo\",\"Mn\",\"Mc\",\"Me\",\"Nd\",\"Nl\",\"No\",\"Pc\",\"Pd\",\"Ps\",\"Pe\",\"Pi\",\"Pf\",\"Po\",\"Zs\",\"Zl\",\"Zp\",\"Sm\",\"Sc\",\"Sk\",\"So\",\"Cc\",\"Cf\",\"Co\",\"Cn\"];const J={};function S(A){return A.codePointAt(0)}\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\".split(\"\").forEach((A,B)=>{J[A]=B});const K=A=>-1===A||-2===A;function b(A){return B=>!K(B)&&!A(B)}function y(A,B){return null===B?A:a=>A(a)&&!B(a)}const Q=function(A,B){const n=new Map;let e=0;return A.forEach((A,G)=>{const i=B[G];null!==A&&A.split(\"|\").forEach(A=>{const B=n.get(A),G=a(e,e+i-1);n.set(A,B?t(B,G):G)}),e+=i}),n}([\"BasicLatin\",\"Latin-1Supplement\",\"LatinExtended-A\",\"LatinExtended-B\",\"IPAExtensions\",\"SpacingModifierLetters\",\"CombiningDiacriticalMarks\",\"GreekandCoptic|Greek\",\"Cyrillic\",\"CyrillicSupplement\",\"Armenian\",\"Hebrew\",\"Arabic\",\"Syriac\",\"ArabicSupplement\",\"Thaana\",\"NKo\",\"Samaritan\",\"Mandaic\",\"SyriacSupplement\",\"ArabicExtended-B\",\"ArabicExtended-A\",\"Devanagari\",\"Bengali\",\"Gurmukhi\",\"Gujarati\",\"Oriya\",\"Tamil\",\"Telugu\",\"Kannada\",\"Malayalam\",\"Sinhala\",\"Thai\",\"Lao\",\"Tibetan\",\"Myanmar\",\"Georgian\",\"HangulJamo\",\"Ethiopic\",\"EthiopicSupplement\",\"Cherokee\",\"UnifiedCanadianAboriginalSyllabics\",\"Ogham\",\"Runic\",\"Tagalog\",\"Hanunoo\",\"Buhid\",\"Tagbanwa\",\"Khmer\",\"Mongolian\",\"UnifiedCanadianAboriginalSyllabicsExtended\",\"Limbu\",\"TaiLe\",\"NewTaiLue\",\"KhmerSymbols\",\"Buginese\",\"TaiTham\",\"CombiningDiacriticalMarksExtended\",\"Balinese\",\"Sundanese\",\"Batak\",\"Lepcha\",\"OlChiki\",\"CyrillicExtended-C\",\"GeorgianExtended\",\"SundaneseSupplement\",\"VedicExtensions\",\"PhoneticExtensions\",\"PhoneticExtensionsSupplement\",\"CombiningDiacriticalMarksSupplement\",\"LatinExtendedAdditional\",\"GreekExtended\",\"GeneralPunctuation\",\"SuperscriptsandSubscripts\",\"CurrencySymbols\",\"CombiningDiacriticalMarksforSymbols|CombiningMarksforSymbols\",\"LetterlikeSymbols\",\"NumberForms\",\"Arrows\",\"MathematicalOperators\",\"MiscellaneousTechnical\",\"ControlPictures\",\"OpticalCharacterRecognition\",\"EnclosedAlphanumerics\",\"BoxDrawing\",\"BlockElements\",\"GeometricShapes\",\"MiscellaneousSymbols\",\"Dingbats\",\"MiscellaneousMathematicalSymbols-A\",\"SupplementalArrows-A\",\"BraillePatterns\",\"SupplementalArrows-B\",\"MiscellaneousMathematicalSymbols-B\",\"SupplementalMathematicalOperators\",\"MiscellaneousSymbolsandArrows\",\"Glagolitic\",\"LatinExtended-C\",\"Coptic\",\"GeorgianSupplement\",\"Tifinagh\",\"EthiopicExtended\",\"CyrillicExtended-A\",\"SupplementalPunctuation\",\"CJKRadicalsSupplement\",\"KangxiRadicals\",null,\"IdeographicDescriptionCharacters\",\"CJKSymbolsandPunctuation\",\"Hiragana\",\"Katakana\",\"Bopomofo\",\"HangulCompatibilityJamo\",\"Kanbun\",\"BopomofoExtended\",\"CJKStrokes\",\"KatakanaPhoneticExtensions\",\"EnclosedCJKLettersandMonths\",\"CJKCompatibility\",\"CJKUnifiedIdeographsExtensionA\",\"YijingHexagramSymbols\",\"CJKUnifiedIdeographs\",\"YiSyllables\",\"YiRadicals\",\"Lisu\",\"Vai\",\"CyrillicExtended-B\",\"Bamum\",\"ModifierToneLetters\",\"LatinExtended-D\",\"SylotiNagri\",\"CommonIndicNumberForms\",\"Phags-pa\",\"Saurashtra\",\"DevanagariExtended\",\"KayahLi\",\"Rejang\",\"HangulJamoExtended-A\",\"Javanese\",\"MyanmarExtended-B\",\"Cham\",\"MyanmarExtended-A\",\"TaiViet\",\"MeeteiMayekExtensions\",\"EthiopicExtended-A\",\"LatinExtended-E\",\"CherokeeSupplement\",\"MeeteiMayek\",\"HangulSyllables\",\"HangulJamoExtended-B\",\"HighSurrogates\",\"HighPrivateUseSurrogates\",\"LowSurrogates\",\"PrivateUseArea|PrivateUse\",\"CJKCompatibilityIdeographs\",\"AlphabeticPresentationForms\",\"ArabicPresentationForms-A\",\"VariationSelectors\",\"VerticalForms\",\"CombiningHalfMarks\",\"CJKCompatibilityForms\",\"SmallFormVariants\",\"ArabicPresentationForms-B\",\"HalfwidthandFullwidthForms\",\"Specials\",\"LinearBSyllabary\",\"LinearBIdeograms\",\"AegeanNumbers\",\"AncientGreekNumbers\",\"AncientSymbols\",\"PhaistosDisc\",null,\"Lycian\",\"Carian\",\"CopticEpactNumbers\",\"OldItalic\",\"Gothic\",\"OldPermic\",\"Ugaritic\",\"OldPersian\",null,\"Deseret\",\"Shavian\",\"Osmanya\",\"Osage\",\"Elbasan\",\"CaucasianAlbanian\",\"Vithkuqi\",null,\"LinearA\",\"LatinExtended-F\",null,\"CypriotSyllabary\",\"ImperialAramaic\",\"Palmyrene\",\"Nabataean\",null,\"Hatran\",\"Phoenician\",\"Lydian\",null,\"MeroiticHieroglyphs\",\"MeroiticCursive\",\"Kharoshthi\",\"OldSouthArabian\",\"OldNorthArabian\",null,\"Manichaean\",\"Avestan\",\"InscriptionalParthian\",\"InscriptionalPahlavi\",\"PsalterPahlavi\",null,\"OldTurkic\",null,\"OldHungarian\",\"HanifiRohingya\",null,\"RumiNumeralSymbols\",\"Yezidi\",\"ArabicExtended-C\",\"OldSogdian\",\"Sogdian\",\"OldUyghur\",\"Chorasmian\",\"Elymaic\",\"Brahmi\",\"Kaithi\",\"SoraSompeng\",\"Chakma\",\"Mahajani\",\"Sharada\",\"SinhalaArchaicNumbers\",\"Khojki\",null,\"Multani\",\"Khudawadi\",\"Grantha\",null,\"Newa\",\"Tirhuta\",null,\"Siddham\",\"Modi\",\"MongolianSupplement\",\"Takri\",null,\"Ahom\",null,\"Dogra\",null,\"WarangCiti\",\"DivesAkuru\",null,\"Nandinagari\",\"ZanabazarSquare\",\"Soyombo\",\"UnifiedCanadianAboriginalSyllabicsExtended-A\",\"PauCinHau\",\"DevanagariExtended-A\",null,\"Bhaiksuki\",\"Marchen\",null,\"MasaramGondi\",\"GunjalaGondi\",null,\"Makasar\",\"Kawi\",null,\"LisuSupplement\",\"TamilSupplement\",\"Cuneiform\",\"CuneiformNumbersandPunctuation\",\"EarlyDynasticCuneiform\",null,\"Cypro-Minoan\",\"EgyptianHieroglyphs\",\"EgyptianHieroglyphFormatControls\",null,\"AnatolianHieroglyphs\",null,\"BamumSupplement\",\"Mro\",\"Tangsa\",\"BassaVah\",\"PahawhHmong\",null,\"Medefaidrin\",null,\"Miao\",null,\"IdeographicSymbolsandPunctuation\",\"Tangut\",\"TangutComponents\",\"KhitanSmallScript\",\"TangutSupplement\",null,\"KanaExtended-B\",\"KanaSupplement\",\"KanaExtended-A\",\"SmallKanaExtension\",\"Nushu\",null,\"Duployan\",\"ShorthandFormatControls\",null,\"ZnamennyMusicalNotation\",null,\"ByzantineMusicalSymbols\",\"MusicalSymbols\",\"AncientGreekMusicalNotation\",null,\"KaktovikNumerals\",\"MayanNumerals\",\"TaiXuanJingSymbols\",\"CountingRodNumerals\",null,\"MathematicalAlphanumericSymbols\",\"SuttonSignWriting\",null,\"LatinExtended-G\",\"GlagoliticSupplement\",\"CyrillicExtended-D\",null,\"NyiakengPuachueHmong\",null,\"Toto\",\"Wancho\",null,\"NagMundari\",null,\"EthiopicExtended-B\",\"MendeKikakui\",null,\"Adlam\",null,\"IndicSiyaqNumbers\",null,\"OttomanSiyaqNumbers\",null,\"ArabicMathematicalAlphabeticSymbols\",null,\"MahjongTiles\",\"DominoTiles\",\"PlayingCards\",\"EnclosedAlphanumericSupplement\",\"EnclosedIdeographicSupplement\",\"MiscellaneousSymbolsandPictographs\",\"Emoticons\",\"OrnamentalDingbats\",\"TransportandMapSymbols\",\"AlchemicalSymbols\",\"GeometricShapesExtended\",\"SupplementalArrows-C\",\"SupplementalSymbolsandPictographs\",\"ChessSymbols\",\"SymbolsandPictographsExtended-A\",\"SymbolsforLegacyComputing\",null,\"CJKUnifiedIdeographsExtensionB\",null,\"CJKUnifiedIdeographsExtensionC\",\"CJKUnifiedIdeographsExtensionD\",\"CJKUnifiedIdeographsExtensionE\",\"CJKUnifiedIdeographsExtensionF\",null,\"CJKCompatibilityIdeographsSupplement\",null,\"CJKUnifiedIdeographsExtensionG\",\"CJKUnifiedIdeographsExtensionH\",null,\"Tags\",null,\"VariationSelectorsSupplement\",null,\"SupplementaryPrivateUseArea-A|PrivateUse\",\"SupplementaryPrivateUseArea-B|PrivateUse\"],[128,128,128,208,96,80,112,144,256,48,96,112,256,80,48,64,64,64,32,16,48,96,128,128,128,128,128,128,128,128,128,128,128,128,256,160,96,256,384,32,96,640,32,96,32,32,32,32,128,176,80,80,48,96,32,32,144,80,128,64,64,80,48,16,48,16,48,128,64,64,256,256,112,48,48,48,80,64,112,256,256,64,32,160,128,32,96,256,192,48,16,256,128,128,256,256,96,32,128,48,80,96,32,128,128,224,16,16,64,96,96,48,96,16,32,48,16,256,256,6592,64,20992,1168,64,48,320,96,96,32,224,48,16,64,96,32,48,48,32,96,32,96,32,96,32,48,64,80,64,11184,80,896,128,1024,6400,512,80,688,16,16,16,32,32,144,240,16,128,128,64,80,64,48,128,32,64,32,48,32,48,32,64,32,80,48,48,80,48,64,80,64,384,64,64,64,32,32,48,48,32,32,32,64,32,96,96,32,32,32,64,64,32,32,48,80,80,48,128,64,288,32,64,64,48,64,64,48,32,128,80,48,80,48,96,32,80,48,48,80,128,128,128,96,160,128,96,32,80,48,80,176,80,80,96,96,64,96,80,96,16,64,96,160,112,80,64,96,80,304,32,96,80,16,64,1024,128,208,2624,112,1072,48,4e3,640,8576,576,48,96,48,144,688,96,96,160,64,32,6144,768,512,128,8816,16,256,48,64,400,2304,160,16,4688,208,48,256,256,80,112,32,32,96,32,128,1024,688,1104,256,48,96,112,80,320,48,64,464,48,736,32,224,32,96,784,80,64,80,176,256,256,48,112,96,256,256,768,80,48,128,128,128,256,256,112,144,256,1024,42720,32,4160,224,5776,7488,3088,544,1504,4944,4192,711760,128,128,240,65040,65536,65536]),x=function(A){const n=new Map,G=A.split(\"\"),i=M.map(()=>[]);let r=0,o=0;for(;o<G.length;){const A=J[G[o]],n=(31&A)-2;let e=1+J[G[o+1]];switch(32&A?(e+=J[G[o+2]]<<6,e+=J[G[o+3]]<<12,e+=J[G[o+4]]<<18,o+=5):o+=2,n){case-2:{let A=0;for(let a=r;a<r+e;++a){i[A].push(B(a)),A=(A+1)%2}break}case-1:break;default:{const A=i[n];1===e?A.push(B(r)):A.push(a(r,r+e-1));break}}r+=e}const l=new Map;return M.forEach((A,B)=>{const a=i[B].reduce(t,e);n.set(A,a);const G=A.charAt(0),r=l.get(G)||[];l.set(G,r),r.push(a)}),l.forEach((A,B)=>{n.set(B,A.reduce(t,e))}),n}(\"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\");function L(A){return 32===A||9===A||10===A||13===A}const X=[B(S(\":\")),a(S(\"A\"),S(\"Z\")),B(S(\"_\")),a(S(\"a\"),S(\"z\")),a(192,214),a(216,246),a(192,214),a(216,246),a(248,767),a(880,893),a(895,8191),a(8204,8205),a(8304,8591),a(11264,12271),a(12289,55295),a(63744,64975),a(65008,65533),a(65536,983039)].reduce(t),Z=[X,B(S(\"-\")),B(S(\".\")),a(S(\"0\"),S(\"9\")),B(183),a(768,879),a(8255,8256)].reduce(t),O=x.get(\"Nd\"),k=b(O),N=y(a(0,1114111),[x.get(\"P\"),x.get(\"Z\"),x.get(\"C\")].reduce(t)),v=b(N);function w(A){return 10!==A&&13!==A&&!K(A)}const Y={s:L,S:b(L),i:X,I:b(X),c:Z,C:b(Z),d:O,D:k,w:N,W:v},U=C(\"*\"),j=C(\"\\\\\"),R=C(\"{\"),V=C(\"}\"),W=C(\"[\"),q=C(\"]\"),z=C(\"^\"),$=C(\"$\"),_=C(\",\"),AA=C(\"-\"),BA=C(\"(\"),aA=C(\")\"),nA=C(\".\"),eA=C(\"|\"),tA=C(\"+\"),GA=C(\"?\"),iA=C(\"-[\"),rA=S(\"0\");function oA(A){function e(A){return new Set(A.split(\"\").map(A=>S(A)))}function G(A,B){const a=A.codePointAt(B);return void 0===a?H(B,[\"any character\"]):o(B+String.fromCodePoint(a).length,a)}const i=\"xpath\"===A.language?T(j,c([u(C(\"n\"),()=>10),u(C(\"r\"),()=>13),u(C(\"t\"),()=>9),u(c([j,eA,nA,AA,z,GA,U,tA,R,V,$,BA,aA,W,q]),A=>S(A))])):T(j,c([u(C(\"n\"),()=>10),u(C(\"r\"),()=>13),u(C(\"t\"),()=>9),u(c([j,eA,nA,AA,z,GA,U,tA,R,V,BA,aA,W,q]),A=>S(A))]));function r(A,B){const a=e(B);return I(C(A),D(s(G,A=>a.has(A),B.split(\"\"))),(A,B)=>function(A){const B=x.get(A);if(null==B)throw new Error(A+\" is not a valid unicode category\");return B}(null===B?A:A+String.fromCodePoint(B)))}const l=c([r(\"L\",\"ultmo\"),r(\"M\",\"nce\"),r(\"N\",\"dlo\"),r(\"P\",\"cdseifo\"),r(\"Z\",\"slp\"),r(\"S\",\"mcko\"),r(\"C\",\"cfon\")]),p=[a(S(\"a\"),S(\"z\")),a(S(\"A\"),S(\"Z\")),a(S(\"0\"),S(\"9\")),B(45)].reduce(t),M=c([l,u(T(C(\"Is\"),function(A){return(B,a)=>{const n=A(B,a);return n.success?o(n.offset,B.slice(a,n.offset)):n}}(d(s(G,p,[\"block identifier\"])))),B=>function(A,B){const a=Q.get(A);if(void 0===a){if(B)return n;throw new Error(`The unicode block identifier \"${A}\" is not known.`)}return a}(B,\"xpath\"!==A.language))]),J=E(C(\"\\\\p{\"),M,V,!0),K=u(E(C(\"\\\\P{\"),M,V,!0),b),L=T(j,u(c(\"sSiIcCdDwW\".split(\"\").map(A=>C(A))),A=>Y[A])),X=u(nA,()=>w),Z=c([L,J,K]),O=e(\"\\\\[]\"),k=c([i,s(G,A=>!O.has(A),[\"unescaped character\"])]),N=c([u(AA,()=>null),k]),v=I(N,T(AA,N),a);function oA(A,B){return[A].concat(B||[])}const lA=u(function(A){return(B,a)=>{const n=A(B,a);return n.success?o(a,n.value):n}}(c([q,iA])),()=>null),HA=S(\"-\"),CA=c([u(F(F(AA,g(W,[\"not [\"])),lA),()=>HA),T(g(AA,[\"not -\"]),k)]),uA=c([I(u(CA,B),c([function(A,B){return uA(A,B)},lA]),oA),I(c([v,Z]),c([cA,lA]),oA)]);const sA=c([I(u(k,B),c([uA,lA]),oA),I(c([v,Z]),c([cA,lA]),oA)]);function cA(A,B){return sA(A,B)}const DA=u(sA,A=>A.reduce(t)),mA=u(T(z,DA),b),IA=I(c([T(g(z,[\"not ^\"]),DA),mA]),D(T(AA,(function(A,B){return dA(A,B)}))),y),dA=E(W,IA,q,!0);const hA=\"xpath\"===A.language?c([u(i,B),Z,dA,X,u(z,()=>A=>-1===A),u($,()=>A=>-2===A)]):c([u(i,B),Z,dA,X]),pA=\"xpath\"===A.language?e(\".\\\\?*+{}()|^$[]\"):e(\".\\\\?*+{}()|[]\"),TA=s(G,A=>!pA.has(A),[\"NormalChar\"]),FA=u(T(j,I(u(s(G,a(S(\"1\"),S(\"9\")),[\"digit\"]),A=>A-rA),m(u(s(G,a(rA,S(\"9\")),[\"digit\"]),A=>A-rA)),(A,B)=>{B.reduce((A,B)=>10*A+B,A)})),A=>{throw new Error(\"Backreferences in XPath patterns are not yet implemented.\")}),EA=\"xpath\"===A.language?c([u(TA,A=>({kind:\"predicate\",value:B(A)})),u(hA,A=>({kind:\"predicate\",value:A})),u(E(BA,T(D(C(\"?:\")),SA),aA,!0),A=>({kind:\"regexp\",value:A})),FA]):c([u(TA,A=>({kind:\"predicate\",value:B(A)})),u(hA,A=>({kind:\"predicate\",value:A})),u(E(BA,SA,aA,!0),A=>({kind:\"regexp\",value:A}))]),gA=u(d(u(s(G,a(rA,S(\"9\")),[\"digit\"]),A=>A-rA)),A=>A.reduce((A,B)=>10*A+B)),fA=c([I(gA,T(_,gA),(A,B)=>{if(B<A)throw new Error(\"quantifier range is in the wrong order\");return{min:A,max:B}}),I(gA,_,A=>({min:A,max:null})),u(gA,A=>({min:A,max:A}))]),PA=\"xpath\"===A.language?I(c([u(GA,()=>({min:0,max:1})),u(U,()=>({min:0,max:null})),u(tA,()=>({min:1,max:null})),E(R,fA,V,!0)]),D(GA),(A,B)=>A):c([u(GA,()=>({min:0,max:1})),u(U,()=>({min:0,max:null})),u(tA,()=>({min:1,max:null})),E(R,fA,V,!0)]),MA=m(I(EA,u(D(PA),A=>null===A?{min:1,max:1}:A),(A,B)=>[A,B])),JA=I(MA,m(T(eA,f(MA))),(A,B)=>[A].concat(B));function SA(A,B){return JA(A,B)}const KA=function(A){return I(A,P,h)}(JA);return function(A){let B;try{B=KA(A,0)}catch(B){throw new Error(`Error parsing pattern \"${A}\": ${B instanceof Error?B.message:B}`)}return B.success?B.value:function(A,B,a){const n=a.map(A=>`\"${A}\"`);throw new Error(`Error parsing pattern \"${A}\" at offset ${B}: expected ${n.length>1?\"one of \"+n.join(\", \"):n[0]} but found \"${A.slice(B,B+1)}\"`)}(A,B.offset,B.expected)}}function lA(A){return[...A].map(A=>A.codePointAt(0))}function HA(B,a={language:\"xsd\"}){const n=oA(a)(B),e=A(A=>{r(A,n,\"xpath\"===a.language),A.accept()});return function(A){const B=\"xpath\"===a.language?[-1,...lA(A),-2]:lA(A);return e.execute(B).success}}export{HA as compile};\n//# sourceMappingURL=xspattern.esm.js.map\n","function n(n,t){return{success:!0,offset:n,value:t}}function t(t){return n(t,void 0)}function e(n,t,e=!1){return{success:!1,offset:n,expected:t,fatal:e}}function r(t){return(r,u)=>{const o=u+t.length;return r.slice(u,o)===t?n(o,t):e(u,[t])}}function u(n){return n>65535?2:1}function o(n,r){return(o,c)=>{const f=o.codePointAt(c);return void 0!==f&&n(f)?t(c+u(f)):e(c,r)}}function c(n,r){return(u,o)=>{const c=o;for(;;){const t=u.codePointAt(o);if(void 0===t)break;if(!n(t))break;o+=t>65535?2:1}return void 0!==r&&o===c?e(o,r):t(o)}}function f(n,t,e){return o(e=>n<=e&&e<=t,e||[`${String.fromCodePoint(n)}-${String.fromCodePoint(t)}`])}function s(n){return(r,o)=>{let c=n;for(;c>0;){const n=r.codePointAt(o);if(void 0===n)return e(o,[\"any character\"]);o+=u(n),c-=1}return t(o)}}function i(t,e){return(r,u)=>{const o=t(r,u);return o.success?n(o.offset,e(o.value)):o}}function l(n){return i(n,()=>{})}function a(n,t,r,u){return(o,c)=>{const f=n(o,c);return f.success?t(f.value)?f:e(c,r,u):f}}function d(n,t){return(r,u)=>{let o=null;for(const e of n){const n=e(r,u);if(n.success)return n;if(null===o||n.offset>o.offset?o=n:n.offset===o.offset&&void 0===t&&(o.expected=o.expected.concat(n.expected)),n.fatal)return n}return t=t||(null==o?void 0:o.expected)||[],o&&(o.expected=t),o||e(u,t)}}function v(t){return(e,r)=>{const u=t(e,r);return u.success||u.fatal?u:n(r,null)}}function p(t){return(e,r)=>{let u=[],o=r;for(;;){const n=t(e,o);if(!n.success){if(n.fatal)return n;break}if(u.push(n.value),n.offset===o)break;o=n.offset}return n(o,u)}}function x(n){return(e,r)=>{let u=r;for(;;){const t=n(e,u);if(!t.success){if(t.fatal)return t;break}if(t.offset===u)break;u=t.offset}return t(u)}}function y(n){return i(n,n=>n.filter(n=>void 0!==n))}function b(t,e,r){return(u,o)=>{const c=t(u,o);if(!c.success)return c;const f=e(u,c.offset);return f.success?n(f.offset,r(c.value,f.value)):f}}function h(...t){return(e,r)=>{const u=[];for(const n of t){const t=n(e,r);if(!t.success)return t;r=t.offset,u.push(t.value)}return n(r,u)}}function k(...n){return(e,r)=>{for(const t of n){const n=t(e,r);if(!n.success)return n;r=n.offset}return t(r)}}function P(n){return b(n,p(n),(n,t)=>[n].concat(t))}function g(n,t){return n}function A(n,t){return t}function m(n){return b(n,x(n),A)}function C(n,t){return b(n,t,A)}function S(n,t){return b(n,t,g)}function $(n,t,e,r=!1){return C(n,r?D(S(t,e)):S(t,e))}function j(t){return(e,r)=>{const u=t(e,r);return u.success?n(u.offset,e.slice(r,u.offset)):u}}function q(t){return(e,r)=>{const u=t(e,r);return u.success?n(r,u.value):u}}function w(n,r){return(u,o)=>n(u,o).success?e(o,r):t(o)}function z(n,t,e){return C(w(t,e),n)}function B(n,t,r=0,u=[]){return(o,c)=>{const f=o.codePointAt(c+r);if(void 0===f)return e(c,u);const s=n[f];return void 0===s?void 0===t?e(c,u):t(o,c):s(o,c)}}function D(n){return(t,r)=>{const u=n(t,r);return u.success?u:e(u.offset,u.expected,!0)}}const E=(n,r)=>0===r?t(r):e(r,[\"start of input\"]),F=(n,r)=>n.length===r?t(r):e(r,[\"end of input\"]);function G(n){return b(n,F,g)}function H(n){const t=[];let e=n.next();for(;!e.done;)t.push(e.value),e=n.next();return[t,e.value]}function I(n){return function*(t,e){const r=n(t,e);return r.success&&(yield r.value),r}}function J(n,t){return function*(e,r){const u=yield*n(e,r);return u.success?yield*t(e,u.offset):u}}function K(n){return function*(t,e){const r=n(t,e);let u=r.next();for(;!u.done;){const n=u.value;void 0!==n&&(yield n),u=r.next()}return u.value}}function L(n){return function*(e,r){for(;;){const[u,o]=H(n(e,r));if(!o.success)return o.fatal?o:t(r);if(yield*u,r===o.offset)return t(r);r=o.offset}}}function M(n){return function*(e,r){const[u,o]=H(n(e,r));return o.success?(yield*u,o):o.fatal?o:t(r)}}function N(n){return function*(t,e){const r=yield*n(t,e);return r.success?F(t,r.offset):r}}export{o as codepoint,c as codepoints,H as collect,G as complete,l as consume,D as cut,$ as delimited,B as dispatch,F as end,e as error,z as except,a as filter,y as filterUndefined,g as first,S as followed,i as map,w as not,t as ok,n as okWithValue,v as optional,d as or,q as peek,P as plus,m as plusConsumed,C as preceded,f as range,j as recognize,A as second,h as sequence,k as sequenceConsumed,s as skipChars,p as star,x as starConsumed,E as start,I as streaming,N as streamingComplete,K as streamingFilterUndefined,M as streamingOptional,L as streamingStar,J as streamingThen,b as then,r as token};\n//# sourceMappingURL=prsc.esm.js.map\n","import * as xspattern from 'xspattern';\nimport * as prsc from 'prsc';\nconst fontoxpath = (function (xspattern, prsc) {\nconst VERSION='3.33.0';\nconst fontoxpathGlobal = {};\nfunction aa(a,b){if(!(\"0\"!==a&&\"-0\"!==a||\"0\"!==b&&\"-0\"!==b))return 0;var c=/(?:\\+|(-))?(\\d+)?(?:\\.(\\d+))?/;a=c.exec(a+\"\");var d=c.exec(b+\"\"),e=!a[1];const f=!d[1];b=(a[2]||\"\").replace(/^0*/,\"\");c=(d[2]||\"\").replace(/^0*/,\"\");a=a[3]||\"\";d=d[3]||\"\";if(e&&!f)return 1;if(!e&&f)return-1;e=e&&f;if(b.length>c.length)return e?1:-1;if(b.length<c.length)return e?-1:1;if(b>c)return e?1:-1;if(b<c)return e?-1:1;b=Math.max(a.length,d.length);c=a.padEnd(b,\"0\");b=d.padEnd(b,\"0\");return c>b?e?1:-1:c<b?e?-1:1:0};function ba(a,b){a=a.toString();if(-1<a.indexOf(\".\")&&0===b)return!1;a=/^[-+]?0*([1-9]\\d*)?(?:\\.((?:\\d*[1-9])*)0*)?$/.exec(a);return a[2]?a[2].length<=b:!0}function da(){return function(a,b){return 1>aa(a,b)}}function fa(){return function(a,b){return 0>aa(a,b)}}function ha(){return function(a,b){return-1<aa(a,b)}}function ia(){return function(a,b){return 0<aa(a,b)}}\nfunction ja(a,b){switch(b){case \"required\":return/(Z)|([+-])([01]\\d):([0-5]\\d)$/.test(a.toString());case \"prohibited\":return!/(Z)|([+-])([01]\\d):([0-5]\\d)$/.test(a.toString());case \"optional\":return!0}}function ka(a){switch(a){case 1:case 0:case 6:case 3:return{};case 4:return{ka:ba,wa:da(),nc:fa(),xa:ha(),oc:ia()};case 18:return{};case 9:case 8:case 7:case 11:case 12:case 13:case 15:case 14:return{Ba:ja};case 22:case 21:case 20:case 23:case 44:return{};default:return null}}var la={},ma={};function na(a){return/^([+-]?(\\d*(\\.\\d*)?([eE][+-]?\\d*)?|INF)|NaN)$/.test(a)}function oa(a){return/^[_:A-Za-z][-._:A-Za-z0-9]*$/.test(a)}function pa(a){return oa(a)&&/^[_A-Za-z]([-._A-Za-z0-9])*$/.test(a)}function qa(a){a=a.split(\":\");return 1===a.length?pa(a[0]):2!==a.length?!1:pa(a[0])&&pa(a[1])}function ra(a){return!/[\\u0009\\u000A\\u000D]/.test(a)}function sa(a){return pa(a)}\nconst ta=new Map([[45,function(){return!0}],[46,function(){return!0}],[1,function(){return!0}],[0,function(a){return/^(0|1|true|false)$/.test(a)}],[6,function(a){return na(a)}],[3,na],[4,function(a){return/^[+-]?\\d*(\\.\\d*)?$/.test(a)}],[18,function(a){return/^(-)?P(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(\\.\\d*)?S)?)?$/.test(a)}],[9,function(a){return/^-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$/.test(a)}],\n[8,function(a){return/^(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$/.test(a)}],[7,function(a){return/^-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$/.test(a)}],[11,function(a){return/^-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$/.test(a)}],[12,function(a){return/^-?([1-9][0-9]{3,}|0[0-9]{3})(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$/.test(a)}],\n[13,function(a){return/^--(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$/.test(a)}],[15,function(a){return/^---(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$/.test(a)}],[14,function(a){return/^--(0[1-9]|1[0-2])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$/.test(a)}],[22,function(a){return/^([0-9A-Fa-f]{2})*$/.test(a)}],[21,function(a){return(new RegExp(/^((([A-Za-z0-9+/] ?){4})*((([A-Za-z0-9+/] ?){3}[A-Za-z0-9+/])|(([A-Za-z0-9+/] ?){2}[AEIMQUYcgkosw048] ?=)|(([A-Za-z0-9+/] ?)[AQgw] ?= ?=)))?$/)).test(a)}],\n[20,function(){return!0}],[44,qa],[48,ra],[52,function(a){return ra(a)&&!/^ | {2,}| $/.test(a)}],[51,function(a){return/^[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*$/.test(a)}],[50,function(a){return/^[-._:A-Za-z0-9]+$/.test(a)}],[25,oa],[23,qa],[24,pa],[42,sa],[41,sa],[26,function(a){return pa(a)}],[5,function(a){return/^[+-]?\\d+$/.test(a)}],[16,function(a){return/^-?P[0-9]+(Y([0-9]+M)?|M)$/.test(a)}],[17,function(a){return/^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]+)?S)?)?$/.test(a)}]]);var ua=Object.create(null);\n[{C:0,name:59},{C:0,name:46,parent:59,K:{whiteSpace:\"preserve\"}},{C:0,name:19,parent:46},{C:0,name:1,parent:46},{C:0,name:0,parent:46,K:{whiteSpace:\"collapse\"}},{C:0,name:4,parent:46,K:{whiteSpace:\"collapse\"}},{C:0,name:6,parent:46,K:{whiteSpace:\"collapse\"}},{C:0,name:3,parent:46,K:{whiteSpace:\"collapse\"}},{C:0,name:18,parent:46,K:{whiteSpace:\"collapse\"}},{C:0,name:9,parent:46,K:{Ba:\"optional\",whiteSpace:\"collapse\"}},{C:0,name:8,parent:46,K:{Ba:\"optional\",whiteSpace:\"collapse\"}},{C:0,name:7,parent:46,\nK:{Ba:\"optional\",whiteSpace:\"collapse\"}},{C:0,name:11,parent:46,K:{Ba:\"optional\",whiteSpace:\"collapse\"}},{C:0,name:12,parent:46,K:{Ba:\"optional\",whiteSpace:\"collapse\"}},{C:0,name:13,parent:46,K:{Ba:\"optional\",whiteSpace:\"collapse\"}},{C:0,name:15,parent:46,K:{Ba:\"optional\",whiteSpace:\"collapse\"}},{C:0,name:14,parent:46,K:{Ba:\"optional\",whiteSpace:\"collapse\"}},{C:0,name:22,parent:46,K:{whiteSpace:\"collapse\"}},{C:0,name:21,parent:46,K:{whiteSpace:\"collapse\"}},{C:0,name:20,parent:46,K:{whiteSpace:\"collapse\"}},\n{C:0,name:23,parent:46,K:{whiteSpace:\"collapse\"}},{C:0,name:44,parent:46,K:{whiteSpace:\"collapse\"}},{C:1,name:10,S:9,K:{whiteSpace:\"collapse\",Ba:\"required\"}},{C:1,name:48,S:1,K:{whiteSpace:\"replace\"}},{C:1,name:52,S:48,K:{whiteSpace:\"collapse\"}},{C:1,name:51,S:52,K:{whiteSpace:\"collapse\"}},{C:1,name:50,S:52,K:{whiteSpace:\"collapse\"}},{C:2,name:49,type:50,K:{minLength:1,whiteSpace:\"collapse\"}},{C:1,name:25,S:52,K:{whiteSpace:\"collapse\"}},{C:1,name:24,S:25,K:{whiteSpace:\"collapse\"}},{C:1,name:42,S:24,\nK:{whiteSpace:\"collapse\"}},{C:1,name:41,S:24,K:{whiteSpace:\"collapse\"}},{C:2,name:43,type:41,K:{minLength:1,whiteSpace:\"collapse\"}},{C:1,name:26,S:24,K:{whiteSpace:\"collapse\"}},{C:2,name:40,type:26,K:{minLength:1,whiteSpace:\"collapse\"}},{C:0,name:5,parent:4,K:{ka:0,whiteSpace:\"collapse\"}},{C:1,name:27,S:5,K:{ka:0,wa:\"0\",whiteSpace:\"collapse\"}},{C:1,name:28,S:27,K:{ka:0,wa:\"-1\",whiteSpace:\"collapse\"}},{C:1,name:31,S:5,K:{ka:0,wa:\"9223372036854775807\",xa:\"-9223372036854775808\",whiteSpace:\"collapse\"}},\n{C:1,name:32,S:31,K:{ka:0,wa:\"2147483647\",xa:\"-2147483648\",whiteSpace:\"collapse\"}},{C:1,name:33,S:32,K:{ka:0,wa:\"32767\",xa:\"-32768\",whiteSpace:\"collapse\"}},{C:1,name:34,S:33,K:{ka:0,wa:\"127\",xa:\"-128\",whiteSpace:\"collapse\"}},{C:1,name:30,S:5,K:{ka:0,xa:\"0\",whiteSpace:\"collapse\"}},{C:1,name:36,S:30,K:{ka:0,wa:\"18446744073709551615\",xa:\"0\",whiteSpace:\"collapse\"}},{C:1,name:35,S:36,K:{ka:0,wa:\"4294967295\",xa:\"0\",whiteSpace:\"collapse\"}},{C:1,name:38,S:35,K:{ka:0,wa:\"65535\",xa:\"0\",whiteSpace:\"collapse\"}},\n{C:1,name:37,S:38,K:{ka:0,wa:\"255\",xa:\"0\",whiteSpace:\"collapse\"}},{C:1,name:29,S:30,K:{ka:0,xa:\"1\",whiteSpace:\"collapse\"}},{C:1,name:16,S:18,K:{whiteSpace:\"collapse\"}},{C:1,name:17,S:18,K:{whiteSpace:\"collapse\"}},{C:1,name:60,S:59},{C:3,name:39,Ca:[]},{C:1,name:61,S:60},{C:1,name:62,S:60},{C:0,name:53,parent:59},{C:1,name:54,S:53},{C:1,name:58,S:53},{C:1,name:47,S:53},{C:1,name:56,S:53},{C:1,name:57,S:53},{C:1,name:55,S:53},{C:3,name:2,Ca:[4,5,6,3]},{C:3,name:63,Ca:[]}].forEach(a=>{const b=a.name,\nc=a.K||{};switch(a.C){case 0:a=a.parent?ua[a.parent]:null;var d=ta.get(b)||null;ua[b]={C:0,type:b,Ka:c,parent:a,gb:d,Oa:ka(b),Ca:[]};break;case 1:a=ua[a.S];d=ta.get(b)||null;ua[b]={C:1,type:b,Ka:c,parent:a,gb:d,Oa:a.Oa,Ca:[]};break;case 2:ua[b]={C:2,type:b,Ka:c,parent:ua[a.type],gb:null,Oa:la,Ca:[]};break;case 3:a=a.Ca.map(e=>ua[e]),ua[b]={C:3,type:b,Ka:c,parent:null,gb:null,Oa:ma,Ca:a}}});function g(a,b){if(!ua[b])throw Error(\"Unknown type\");return{type:b,value:a}}var va=g(!0,0),wa=g(!1,0);var xa=(a=\"A wrong argument type was specified in a function call.\")=>Error(`FORG0006: ${a}`);var ya=class{constructor(a,b){this.done=a;this.value=b}},p=new ya(!0);function q(a){return new ya(!1,a)};function za(a,b){if(3===b.C)return!!b.Ca.find(c=>za(a,c));for(;a;){if(a.type===b.type)return!0;if(3===a.C)return!!a.Ca.find(c=>v(c.type,b.type));a=a.parent}return!1}function v(a,b){return a===b?!0:za(ua[a],ua[b])};var Aa=class{constructor(a){this.o=w;this.h=a;let b=-1;this.value={next:()=>{b++;return b>=a.length?p:q(a[b])}}}hb(){return this}filter(a){let b=-1;return this.o.create({next:()=>{for(b++;b<this.h.length&&!a(this.h[b],b,this);)b++;return b>=this.h.length?p:q(this.h[b])}})}first(){return this.h[0]}O(){return this.h}fa(){if(v(this.h[0].type,53))return!0;throw xa(\"Cannot determine the effective boolean value of a sequence with a length higher than one.\");}Pa(){return this.h.length}F(){return!1}oa(){return!1}map(a){let b=\n-1;return this.o.create({next:()=>++b>=this.h.length?p:q(a(this.h[b],b,this))},this.h.length)}N(a){return a(this.h)}X(a){return a.multiple?a.multiple(this):a.default(this)}};var Ba=class{constructor(){this.value={next:()=>p}}hb(){return this}filter(){return this}first(){return null}O(){return[]}fa(){return!1}Pa(){return 0}F(){return!0}oa(){return!1}map(){return this}N(a){return a([])}X(a){return a.empty?a.empty(this):a.default(this)}};var Ca=class{constructor(a,b){this.type=a;this.value=b}};\nconst Da={[0]:\"xs:boolean\",[1]:\"xs:string\",[2]:\"xs:numeric\",[3]:\"xs:double\",[4]:\"xs:decimal\",[5]:\"xs:integer\",[6]:\"xs:float\",[7]:\"xs:date\",[8]:\"xs:time\",[9]:\"xs:dateTime\",[10]:\"xs:dateTimeStamp\",[11]:\"xs:gYearMonth\",[12]:\"xs:gYear\",[13]:\"xs:gMonthDay\",[14]:\"xs:gMonth\",[15]:\"xs:gDay\",[16]:\"xs:yearMonthDuration\",[17]:\"xs:dayTimeDuration\",[18]:\"xs:duration\",[19]:\"xs:untypedAtomic\",[20]:\"xs:anyURI\",[21]:\"xs:base64Binary\",[22]:\"xs:hexBinary\",[23]:\"xs:QName\",[24]:\"xs:NCName\",[25]:\"xs:Name\",[26]:\"xs:ENTITY\",\n[27]:\"xs:nonPositiveInteger\",[28]:\"xs:negativeInteger\",[29]:\"xs:positiveInteger\",[30]:\"xs:nonNegativeInteger\",[31]:\"xs:long\",[32]:\"xs:int\",[33]:\"xs:short\",[34]:\"xs:byte\",[35]:\"xs:unsignedInt\",[36]:\"xs:unsignedLong\",[37]:\"xs:unsignedByte\",[38]:\"xs:unsignedShort\",[39]:\"xs:error\",[40]:\"xs:ENTITIES\",[41]:\"xs:IDREF\",[42]:\"xs:ID\",[43]:\"xs:IDREFS\",[44]:\"xs:NOTATION\",[45]:\"xs:anySimpleType\",[46]:\"xs:anyAtomicType\",[47]:\"attribute()\",[48]:\"xs:normalizedString\",[49]:\"xs:NMTOKENS\",[50]:\"xs:NMTOKEN\",[51]:\"xs:language\",\n[52]:\"xs:token\",[53]:\"node()\",[54]:\"element()\",[55]:\"document-node()\",[56]:\"text()\",[57]:\"processing-instruction()\",[58]:\"comment()\",[59]:\"item()\",[60]:\"function(*)\",[61]:\"map(*)\",[62]:\"array(*)\",[63]:\"none\"},Ea={\"xs:boolean\":0,\"xs:string\":1,\"xs:numeric\":2,\"xs:double\":3,\"xs:decimal\":4,\"xs:integer\":5,\"xs:float\":6,\"xs:date\":7,\"xs:time\":8,\"xs:dateTime\":9,\"xs:dateTimeStamp\":10,\"xs:gYearMonth\":11,\"xs:gYear\":12,\"xs:gMonthDay\":13,\"xs:gMonth\":14,\"xs:gDay\":15,\"xs:yearMonthDuration\":16,\"xs:dayTimeDuration\":17,\n\"xs:duration\":18,\"xs:untypedAtomic\":19,\"xs:anyURI\":20,\"xs:base64Binary\":21,\"xs:hexBinary\":22,\"xs:QName\":23,\"xs:NCName\":24,\"xs:Name\":25,\"xs:ENTITY\":26,\"xs:nonPositiveInteger\":27,\"xs:negativeInteger\":28,\"xs:positiveInteger\":29,\"xs:nonNegativeInteger\":30,\"xs:long\":31,\"xs:int\":32,\"xs:short\":33,\"xs:byte\":34,\"xs:unsignedInt\":35,\"xs:unsignedLong\":36,\"xs:unsignedByte\":37,\"xs:unsignedShort\":38,\"xs:error\":39,\"xs:ENTITIES\":40,\"xs:IDREF\":41,\"xs:ID\":42,\"xs:IDREFS\":43,\"xs:NOTATION\":44,\"xs:anySimpleType\":45,\"xs:anyAtomicType\":46,\n\"attribute()\":47,\"xs:normalizedString\":48,\"xs:NMTOKENS\":49,\"xs:NMTOKEN\":50,\"xs:language\":51,\"xs:token\":52,\"node()\":53,\"element()\":54,\"document-node()\":55,\"text()\":56,\"processing-instruction()\":57,\"comment()\":58,\"item()\":59,\"function(*)\":60,\"map(*)\":61,\"array(*)\":62};function Ha(a){return 2===a.g?Da[a.type]+\"*\":1===a.g?Da[a.type]+\"+\":0===a.g?Da[a.type]+\"?\":Da[a.type]}\nfunction Ia(a){if(\"none\"===a)throw Error('XPST0051: The type \"none\" could not be found');if(!a.startsWith(\"xs:\")&&0<=a.indexOf(\":\"))throw Error(`XPST0081: Invalid prefix for input ${a}`);const b=Ea[a];if(void 0===b)throw Error(`XPST0051: The type \"${a}\" could not be found`);return b}\nfunction Ja(a){switch(a[a.length-1]){case \"*\":return{type:Ia(a.substr(0,a.length-1)),g:2};case \"?\":return{type:Ia(a.substr(0,a.length-1)),g:0};case \"+\":return{type:Ia(a.substr(0,a.length-1)),g:1};default:return{type:Ia(a),g:3}}}function Ka(a){switch(a){case \"*\":return 2;case \"?\":return 0;case \"+\":return 1;default:return 3}};function La(a){const b=a.value;if(v(a.type,53))return!0;if(v(a.type,0))return b;if(v(a.type,1)||v(a.type,20)||v(a.type,19))return 0!==b.length;if(v(a.type,2))return!isNaN(b)&&0!==b;throw xa(`Cannot determine the effective boolean value of a value with the type ${Da[a.type]}`);};function Ma(a,b=0){a.h=b}\nvar Na=class{constructor(a,b=null){this.D=w;this.value={next:c=>{if(null!==this.o&&this.h>=this.o)return p;if(void 0!==this.v[this.h])return q(this.v[this.h++]);c=a.next(c);if(c.done)return this.o=this.h,c;if(this.l||2>this.h)this.v[this.h]=c.value;this.h++;return c}};this.l=!1;this.v=[];this.h=0;this.o=b}hb(){return this.D.create(this.O())}filter(a){let b=-1;const c=this.value;return this.D.create({next:d=>{b++;for(d=c.next(d);!d.done&&!a(d.value,b,this);)b++,d=c.next(0);return d}})}first(){if(void 0!==\nthis.v[0])return this.v[0];const a=this.value.next(0);Ma(this);return a.done?null:a.value}O(){if(this.h>this.v.length&&this.o!==this.v.length)throw Error(\"Implementation error: Sequence Iterator has progressed.\");const a=this.value;this.l=!0;let b=a.next(0);for(;!b.done;)b=a.next(0);return this.v}fa(){const a=this.value,b=this.h;Ma(this);var c=a.next(0);if(c.done)return Ma(this,b),!1;c=c.value;if(v(c.type,53))return Ma(this,b),!0;if(!a.next(0).done)throw xa(\"Cannot determine the effective boolean value of a sequence with a length higher than one.\");\nMa(this,b);return La(c)}Pa(a=!1){if(null!==this.o)return this.o;if(a)return-1;a=this.h;const b=this.O().length;Ma(this,a);return b}F(){return 0===this.o?!0:null===this.first()}oa(){if(null!==this.o)return 1===this.o;var a=this.value;const b=this.h;Ma(this);if(a.next(0).done)return Ma(this,b),!1;a=a.next(0);Ma(this,b);return a.done}map(a){let b=0;const c=this.value;return this.D.create({next:d=>{d=c.next(d);return d.done?p:q(a(d.value,b++,this))}},this.o)}N(a,b){const c=this.value;let d;const e=[];\nlet f=!0;(function(){for(let h=c.next(f?0:b);!h.done;h=c.next(b))f=!1,e.push(h.value);d=a(e).value})();return this.D.create({next:()=>d.next(0)})}X(a){let b=null;const c=d=>{b=d.value;d=d.Pa(!0);-1!==d&&(this.o=d)};return this.D.create({next:d=>{if(b)return b.next(d);if(this.F())return c(a.empty?a.empty(this):a.default(this)),b.next(d);if(this.oa())return c(a.m?a.m(this):a.default(this)),b.next(d);c(a.multiple?a.multiple(this):a.default(this));return b.next(d)}})}};var Oa=class{constructor(a){this.v=w;this.h=a;let b=!1;this.value={next:()=>{if(b)return p;b=!0;return q(a)}};this.o=null}hb(){return this}filter(a){return a(this.h,0,this)?this:this.v.create()}first(){return this.h}O(){return[this.h]}fa(){null===this.o&&(this.o=La(this.h));return this.o}Pa(){return 1}F(){return!1}oa(){return!0}map(a){return this.v.create(a(this.h,0,this))}N(a){return a([this.h])}X(a){return a.m?a.m(this):a.default(this)}};const Pa=new Ba;function Qa(a=null,b=null){if(null===a)return Pa;if(Array.isArray(a))switch(a.length){case 0:return Pa;case 1:return new Oa(a[0]);default:return new Aa(a)}return a.next?new Na(a,b):new Oa(a)}var w={create:Qa,m:a=>new Oa(a),empty:()=>Qa(),aa:()=>Qa(va),T:()=>Qa(wa)};function Ra(a){const b=[],c=a.value;return()=>{let d=0;return w.create({next:()=>{if(void 0!==b[d])return b[d++];const e=c.next(0);return e.done?e:b[d++]=e}})}};var Sa=class{constructor(a,b,c){this.namespaceURI=b||null;this.prefix=a||\"\";this.localName=c}za(){return this.prefix?this.prefix+\":\"+this.localName:this.localName}};function Ua(a,b){const c=a.value,d=b.map(e=>null===e?null:Ra(e));b=b.reduce((e,f,h)=>{null===f&&e.push(a.o[h]);return e},[]);b=new Va({j:b,arity:b.length,Ya:!0,I:a.I,localName:\"boundFunction\",namespaceURI:a.l,i:a.s,value:function(e,f,h){const k=Array.from(arguments).slice(3),l=d.map(n=>null===n?k.shift():n());return c.apply(void 0,[e,f,h].concat(l))}});return w.m(b)}\nvar Va=class extends Ca{constructor({j:a,arity:b,Ya:c=!1,I:d=!1,localName:e,namespaceURI:f,i:h,value:k}){super(60,null);this.value=k;this.I=d;d=-1;for(k=0;k<a.length;k++)4===a[k]&&(d=k);-1<d&&(k=Array(b-(a.length-1)).fill(a[d-1]),a=a.slice(0,d).concat(k));this.o=a;this.v=b;this.ia=c;this.D=e;this.l=f;this.s=h}Ya(){return this.ia}};function Wa(a,b){const c=[];2!==a&&1!==a||c.push(\"type-1-or-type-2\");c.push(`type-${a}`);b&&c.push(`name-${b}`);return c}function Xa(a){const b=a.node.nodeType;let c;if(2===b||1===b)c=a.node.localName;return Wa(b,c)}function Ya(a){let b=a.nodeType;4===b&&(b=3);let c;if(2===b||1===b)c=a.localName;return Wa(b,c)};var Za=class{getAllAttributes(a,b=null){if(1!==a.nodeType)return[];a=Array.from(a.attributes);return null===b?a:a.filter(c=>Ya(c).includes(b))}getAttribute(a,b){return 1!==a.nodeType?null:a.getAttribute(b)}getChildNodes(a,b=null){a=Array.from(a.childNodes);return null===b?a:a.filter(c=>Ya(c).includes(b))}getData(a){return 2===a.nodeType?a.value:a.data}getFirstChild(a,b=null){for(a=a.firstChild;a;a=a.nextSibling)if(null===b||Ya(a).includes(b))return a;return null}getLastChild(a,b=null){for(a=a.lastChild;a;a=\na.previousSibling)if(null===b||Ya(a).includes(b))return a;return null}getNextSibling(a,b=null){for(a=a.nextSibling;a;a=a.nextSibling)if(null===b||Ya(a).includes(b))return a;return null}getParentNode(a,b=null){return(a=2===a.nodeType?a.ownerElement:a.parentNode)?null===b||Ya(a).includes(b)?a:null:null}getPreviousSibling(a,b=null){for(a=a.previousSibling;a;a=a.previousSibling)if(null===b||Ya(a).includes(b))return a;return null}};class $a{insertBefore(a,b,c){return a.insertBefore(b,c)}removeAttributeNS(a,b,c){return a.removeAttributeNS(b,c)}removeChild(a,b){return a.removeChild(b)}setAttributeNS(a,b,c,d){a.setAttributeNS(b,c,d)}setData(a,b){a.data=b}}var ab=new $a;class bb{constructor(a){this.h=a}insertBefore(a,b,c){return this.h.insertBefore(a,b,c)}removeAttributeNS(a,b,c){return this.h.removeAttributeNS(a,b,c)}removeChild(a,b){return this.h.removeChild(a,b)}setAttributeNS(a,b,c,d){this.h.setAttributeNS(a,b,c,d)}setData(a,b){this.h.setData(a,b)}};function cb(a){return void 0!==a.Ra};function db(a,b,c){let d=null;b&&(cb(b.node)?d={G:b.G,offset:c,parent:b.node}:b.G&&(d=b.G));return{node:a,G:d}}function eb(a,b,c=null){return a.getAllAttributes(b.node,c).map(d=>db(d,b,d.nodeName))}function fb(a,b,c){b=b.node;return cb(b)?(a=b.attributes.find(d=>c===d.name))?a.value:null:(a=a.h.getAttribute(b,c))?a:null}function hb(a,b,c=null){return a.getChildNodes(b.node,c).map((d,e)=>db(d,b,e))}function ib(a,b){return a.getData(b.node)}\nfunction jb(a,b,c=null){const d=b.node;cb(d)?a=d.childNodes[0]:((c=a.h.getFirstChild(d,c))&&10===c.nodeType&&(c=a.h.getNextSibling(c)),a=c);return a?db(a,b,0):null}function kb(a,b,c=null){var d=b.node;cb(d)?(a=d.childNodes.length-1,d=d.childNodes[a]):((d=a.h.getLastChild(d,c))&&10===d.nodeType&&(d=a.h.getPreviousSibling(d)),a=a.getChildNodes(b.node,c).length-1);return d?db(d,b,a):null}\nfunction x(a,b,c=null){const d=b.node,e=b.G;if(e)\"number\"===typeof e.offset&&d===e.parent.childNodes[e.offset]||\"string\"===typeof e.offset&&d===e.parent.attributes.find(f=>e.offset===f.nodeName)?(a=e.parent,b=e.G):(a=a.getParentNode(d,c),b=e);else{if(cb(d))return null;a=a.getParentNode(d,c);b=null}return a?{node:a,G:b}:null}\nfunction lb(a,b,c=null){const d=b.node;let e,f,h;const k=b.G;if(cb(d))k&&(h=k.offset+1,e=k.parent.childNodes[h]);else if(k)h=k.offset+1,f=x(a,b,null),e=a.getChildNodes(f.node,c)[h];else{for(e=d;e&&(!(e=a.h.getNextSibling(e,c))||10===e.nodeType););return e?{node:e,G:null}:null}return e?db(e,f||x(a,b,c),h):null}\nfunction mb(a,b,c=null){const d=b.node;let e,f;const h=b.G;let k;if(cb(d))h&&(k=h.offset-1,e=h.parent.childNodes[k]);else if(h)k=h.offset-1,f=x(a,b,null),e=a.getChildNodes(f.node,c)[k];else{for(e=d;e&&(!(e=a.h.getPreviousSibling(e,c))||10===e.nodeType););return e?{node:e,G:null}:null}return e?db(e,f||x(a,b,c),k):null}\nvar nb=class{constructor(a){this.h=a;this.o=[]}getAllAttributes(a,b=null){return cb(a)?a.attributes:this.h.getAllAttributes(a,b)}getChildNodes(a,b=null){b=cb(a)?a.childNodes:this.h.getChildNodes(a,b);return 9===a.nodeType?b.filter(c=>10!==c.nodeType):b}getData(a){return cb(a)?2===a.nodeType?a.value:a.data:this.h.getData(a)||\"\"}getParentNode(a,b=null){return this.h.getParentNode(a,b)}};var ob=(a,b,c,d,e)=>e.N(([f])=>d.N(([h])=>{const k=f.value;if(0>=k||k>h.h.length)throw Error(\"FOAY0001: array position out of bounds.\");return h.h[k-1]()}));var pb=class extends Va{constructor(a){super({value:(b,c,d,e)=>ob(b,c,d,w.m(this),e),localName:\"get\",namespaceURI:\"http://www.w3.org/2005/xpath-functions/array\",j:[{type:5,g:3}],arity:1,i:{type:59,g:2}});this.type=62;this.h=a}};function qb(a){switch(a.node.nodeType){case 2:return 47;case 1:return 54;case 3:case 4:return 56;case 7:return 57;case 8:return 58;case 9:return 55;default:return 53}}function rb(a){return{type:qb(a),value:a}};function A(a,b){a=a.map(c=>c.first());return b(a)};function sb(a,b){var c=v(a.type,1)||v(a.type,20)||v(a.type,19),d=v(b.type,1)||v(b.type,20)||v(b.type,19);if(c&&d)return a.value===b.value;c=v(a.type,4)||v(a.type,3)||v(a.type,6);d=v(b.type,4)||v(b.type,3)||v(b.type,6);if(c&&d)return isNaN(a.value)&&isNaN(b.value)?!0:a.value===b.value;c=v(a.type,0)||v(a.type,22)||v(a.type,18)||v(a.type,23)||v(a.type,44);d=v(b.type,0)||v(b.type,22)||v(b.type,18)||v(b.type,23)||v(b.type,44);return c&&d?a.value===b.value:!1};var tb=(a,b,c,d,e)=>A([d,e],([f,h])=>(f=f.h.find(k=>sb(k.key,h)))?f.value():w.empty());var ub=class extends Va{constructor(a){super({j:[{type:59,g:3}],arity:1,localName:\"get\",namespaceURI:\"http://www.w3.org/2005/xpath-functions/map\",value:(b,c,d,e)=>tb(b,c,d,w.m(this),e),i:{type:59,g:2}});this.type=61;this.h=a}};function vb(a,b){return a.h()===b.h()&&a.o()===b.o()}var wb=class{$a(){return 0}getHours(){return 0}getMinutes(){return 0}ab(){return 0}h(){return 0}o(){return 0}getSeconds(){return 0}bb(){return 0}na(){return!0}};function xb(a){var b=Math.abs(a.$a()),c=Math.abs(a.getHours());const d=Math.abs(a.getMinutes());a=Math.abs(a.getSeconds());b=`${b?`${b}D`:\"\"}`;c=(c?`${c}H`:\"\")+(d?`${d}M`:\"\")+(a?`${a}S`:\"\");return b&&c?`${b}T${c}`:b?b:c?`T${c}`:\"T0S\"}\nvar yb=class extends wb{constructor(a){super();if(a>Number.MAX_SAFE_INTEGER||a<Number.MIN_SAFE_INTEGER)throw Error(\"FODT0002: Number of seconds given to construct DayTimeDuration overflows MAX_SAFE_INTEGER or MIN_SAFE_INTEGER\");this.ca=a}$a(){return Math.trunc(this.ca/86400)}getHours(){return Math.trunc(this.ca%86400/3600)}getMinutes(){return Math.trunc(this.ca%3600/60)}o(){return this.ca}getSeconds(){const a=this.ca%60;return Object.is(-0,a)?0:a}na(){return Object.is(-0,this.ca)?!1:0<=this.ca}toString(){return(this.na()?\n\"P\":\"-P\")+xb(this)}},zb=(a,b,c,d,e,f)=>{a=86400*a+3600*b+60*c+d+e;return new yb(f||0===a?a:-a)},Ab=a=>(a=/^(-)?P(\\d+Y)?(\\d+M)?(\\d+D)?(?:T(\\d+H)?(\\d+M)?(\\d+(\\.\\d*)?S)?)?$/.exec(a))?zb(a[4]?parseInt(a[4],10):0,a[5]?parseInt(a[5],10):0,a[6]?parseInt(a[6],10):0,a[7]?parseInt(a[7],10):0,a[8]?parseFloat(a[8]):0,!a[1]):null,Bb=a=>{a=/^(Z)|([+-])([01]\\d):([0-5]\\d)$/.exec(a);return\"Z\"===a[1]?zb(0,0,0,0,0,!0):zb(0,a[3]?parseInt(a[3],10):0,a[4]?parseInt(a[4],10):0,0,0,\"+\"===a[2])};\nfunction Cb(a,b){if(isNaN(b))throw Error(\"FOCA0005: Cannot multiply xs:dayTimeDuration by NaN\");a=a.ca*b;if(a>Number.MAX_SAFE_INTEGER||!Number.isFinite(a))throw Error(\"FODT0002: Value overflow while multiplying xs:dayTimeDuration\");return new yb(a<Number.MIN_SAFE_INTEGER||Object.is(-0,a)?0:a)};function Db(a){return a?parseInt(a,10):null}function Eb(a){a+=\"\";const b=a.startsWith(\"-\");b&&(a=a.substring(1));return(b?\"-\":\"\")+a.padStart(4,\"0\")}function Fb(a){return(a+\"\").padStart(2,\"0\")}function Hb(a){a+=\"\";1===a.split(\".\")[0].length&&(a=a.padStart(a.length+1,\"0\"));return a}function Ib(a){return 0===a.getHours()&&0===a.getMinutes()?\"Z\":(a.na()?\"+\":\"-\")+Fb(Math.abs(a.getHours()))+\":\"+Fb(Math.abs(a.getMinutes()))}\nfunction Jb(a){var b=/^(?:(-?\\d{4,}))?(?:--?(\\d\\d))?(?:-{1,3}(\\d\\d))?(T)?(?:(\\d\\d):(\\d\\d):(\\d\\d))?(\\.\\d+)?(Z|(?:[+-]\\d\\d:\\d\\d))?$/.exec(a);a=b[1]?parseInt(b[1],10):null;const c=Db(b[2]),d=Db(b[3]),e=b[4],f=Db(b[5]),h=Db(b[6]),k=Db(b[7]),l=b[8]?parseFloat(b[8]):0;b=b[9]?Bb(b[9]):null;if(a&&(-271821>a||273860<a))throw Error(\"FODT0001: Datetime year is out of bounds\");return e?new Kb(a,c,d,f,h,k,l,b,9):null!==f&&null!==h&&null!==k?new Kb(1972,12,31,f,h,k,l,b,8):null!==a&&null!==c&&null!==d?new Kb(a,\nc,d,0,0,0,0,b,7):null!==a&&null!==c?new Kb(a,c,1,0,0,0,0,b,11):null!==c&&null!==d?new Kb(1972,c,d,0,0,0,0,b,13):null!==a?new Kb(a,1,1,0,0,0,0,b,12):null!==c?new Kb(1972,c,1,0,0,0,0,b,14):new Kb(1972,12,d,0,0,0,0,b,15)}\nfunction Lb(a,b){switch(b){case 15:return new Kb(1972,12,a.o,0,0,0,0,a.Y,15);case 14:return new Kb(1972,a.h,1,0,0,0,0,a.Y,14);case 12:return new Kb(a.v,1,1,0,0,0,0,a.Y,12);case 13:return new Kb(1972,a.h,a.o,0,0,0,0,a.Y,13);case 11:return new Kb(a.v,a.h,1,0,0,0,0,a.Y,11);case 8:return new Kb(1972,12,31,a.l,a.s,a.D,a.qa,a.Y,8);case 7:return new Kb(a.v,a.h,a.o,0,0,0,0,a.Y,7);default:return new Kb(a.v,a.h,a.o,a.l,a.s,a.D,a.qa,a.Y,9)}}\nfunction Mb(a,b){b=a.Y||b||Bb(\"Z\");return new Date(Date.UTC(a.v,a.h-1,a.o,a.l-b.getHours(),a.s-b.getMinutes(),a.D,1E3*a.qa))}\nvar Kb=class{constructor(a,b,c,d,e,f,h,k,l=9){this.v=a;this.h=b;this.o=c+(24===d?1:0);this.l=24===d?0:d;this.s=e;this.D=f;this.qa=h;this.Y=k;this.type=l}getDay(){return this.o}getHours(){return this.l}getMinutes(){return this.s}getMonth(){return this.h}getSeconds(){return this.D}getYear(){return this.v}toString(){switch(this.type){case 9:return Eb(this.v)+\"-\"+Fb(this.h)+\"-\"+Fb(this.o)+\"T\"+Fb(this.l)+\":\"+Fb(this.s)+\":\"+Hb(this.D+this.qa)+(this.Y?Ib(this.Y):\"\");case 7:return Eb(this.v)+\"-\"+Fb(this.h)+\n\"-\"+Fb(this.o)+(this.Y?Ib(this.Y):\"\");case 8:return Fb(this.l)+\":\"+Fb(this.s)+\":\"+Hb(this.D+this.qa)+(this.Y?Ib(this.Y):\"\");case 15:return\"---\"+Fb(this.o)+(this.Y?Ib(this.Y):\"\");case 14:return\"--\"+Fb(this.h)+(this.Y?Ib(this.Y):\"\");case 13:return\"--\"+Fb(this.h)+\"-\"+Fb(this.o)+(this.Y?Ib(this.Y):\"\");case 12:return Eb(this.v)+(this.Y?Ib(this.Y):\"\");case 11:return Eb(this.v)+\"-\"+Fb(this.h)+(this.Y?Ib(this.Y):\"\")}throw Error(\"Unexpected subType\");}};\nfunction Nb(a,b,c){const d=Mb(a,c).getTime();c=Mb(b,c).getTime();return d===c?a.qa===b.qa?0:a.qa>b.qa?1:-1:d>c?1:-1}function Ob(a,b,c){return 0===Nb(a,b,c)}function Pb(a,b,c){a=(Mb(a,c).getTime()-Mb(b,c).getTime())/1E3;return new yb(a)}function Qb(a){throw Error(`Not implemented: adding durations to ${Da[a.type]}`);}function Rb(a){throw Error(`Not implemented: subtracting durations from ${Da[a.type]}`);};function Sb(a,b){if(null===a)return null;switch(typeof a){case \"boolean\":return a?va:wa;case \"number\":return g(a,3);case \"string\":return g(a,1);case \"object\":if(\"nodeType\"in a)return rb({node:a,G:null});if(Array.isArray(a))return new pb(a.map(c=>{if(void 0===c)return()=>w.empty();c=Sb(c,b);c=null===c?w.empty():w.m(c);return Ra(c)}));if(a instanceof Date){const c=Jb(a.toISOString());return g(c,c.type)}return new ub(Object.keys(a).filter(c=>void 0!==a[c]).map(c=>{var d=Sb(a[c],b);d=null===d?w.empty():\nw.m(d);return{key:g(c,1),value:Ra(d)}}))}throw Error(`Value ${String(a)} of type \"${typeof a}\" is not adaptable to an XPath value.`);}function Tb(a,b){if(\"number\"!==typeof a&&(\"string\"!==typeof a||!ta.get(b)(a)))throw Error(`Cannot convert JavaScript value '${a}' to the XPath type ${Da[b]} since it is not valid.`);}\nfunction Ub(a,b,c){if(null===b)return null;switch(a){case 0:return b?va:wa;case 1:return g(b+\"\",1);case 3:case 2:return Tb(b,3),g(+b,3);case 4:return Tb(b,a),g(+b,4);case 5:return Tb(b,a),g(b|0,5);case 6:return Tb(b,a),g(+b,6);case 7:case 8:case 9:case 11:case 12:case 13:case 14:case 15:if(!(b instanceof Date))throw Error(`The JavaScript value ${b} with type ${typeof b} is not a valid type to be converted to an XPath ${Da[a]}.`);return g(Lb(Jb(b.toISOString()),a),a);case 53:case 47:case 55:case 54:case 56:case 57:case 58:if(\"object\"!==\ntypeof b||!(\"nodeType\"in b))throw Error(`The JavaScript value ${b} with type ${typeof b} is not a valid type to be converted to an XPath ${Da[a]}.`);return rb({node:b,G:null});case 59:return Sb(b,c);case 61:return Sb(b,c);default:throw Error(`Values of the type \"${Da[a]}\" can not be adapted from JavaScript to equivalent XPath values.`);}}\nfunction Vb(a,b,c){if(0===c.g)return b=Ub(c.type,b,a),null===b?[]:[b];if(2===c.g||1===c.g){if(!Array.isArray(b))throw Error(`The JavaScript value ${b} should be an array if it is to be converted to ${Ha(c)}.`);return b.map(e=>Ub(c.type,e,a)).filter(e=>null!==e)}const d=Ub(c.type,b,a);if(null===d)throw Error(`The JavaScript value ${b} should be a single entry if it is to be converted to ${Ha(c)}.`);return[d]}function Wb(a,b,c={type:59,g:0}){return w.create(Vb(a,b,c))};var ac=class{constructor(){this.h=Math.abs(Math.floor(Math.random()*$b)%$b)}},$b=2**32;function bc(a,b,c,d){return new cc({M:c,Aa:b,ta:d||a.ta,ra:a.ra},a.h,a.o)}function dc(a,b){let c=0;const d=b.value;return{next:e=>{e=d.next(e);return e.done?p:q(bc(a,c++,e.value,b))}}}function ec(a){a.h.ib||(a.h.ib=!0,a.h.qb=Jb((new Date).toISOString()),a.h.vb=Ab(\"PT0S\"));return a.h.qb}function fc(a){a.h.ib||(a.h.ib=!0,a.h.qb=Jb((new Date).toISOString()),a.h.vb=Ab(\"PT0S\"));return a.h.vb}function gc(a,b=null){a=29421*(null!==b&&void 0!==b?b:a.o.h)%$b;return{rb:Math.floor(a),$b:a/$b}}\nfunction hc(a,b){return new cc({M:a.M,Aa:a.Aa,ta:a.ta,ra:Object.assign(Object.create(null),a.ra,b)},a.h,a.o)}var cc=class{constructor(a,b={qb:null,vb:null,ib:!1},c=new ac){this.h=b;this.Aa=a.Aa;this.ta=a.ta;this.M=a.M;this.ra=a.ra||Object.create(null);this.o=c}};var ic=class{constructor(a,b,c,d,e,f,h,k,l){this.debug=a;this.Ha=b;this.h=c;this.Ja=d;this.Ma=e;this.o=f;this.v=h;this.jb=k;this.Ua=l}};function jc(a){let b=0,c=null,d=!0;return w.create({next:e=>{for(;b<a.length;){c||(c=a[b].value,d=!0);const f=c.next(d?0:e);d=!1;if(f.done)b++,c=null;else return f}return p}})};var kc=(a,b,c)=>Error(`FORG0001: Cannot cast ${a} to ${Da[b]}${c?`, ${c}`:\"\"}`),lc=a=>Error(`XPDY0002: ${a}`),mc=a=>Error(`XPTY0004: ${a}`),nc=a=>Error(`FOTY0013: Atomization is not supported for ${Da[a]}.`),oc=a=>Error(`XPST0081: The prefix ${a} could not be resolved.`);function pc(a,b){if(v(a.type,46)||v(a.type,19)||v(a.type,0)||v(a.type,4)||v(a.type,3)||v(a.type,6)||v(a.type,5)||v(a.type,2)||v(a.type,23)||v(a.type,1))return w.create(a);const c=b.h;if(v(a.type,53)){const d=a.value;if(2===d.node.nodeType||3===d.node.nodeType)return w.create(g(ib(c,d),19));if(8===d.node.nodeType||7===d.node.nodeType)return w.create(g(ib(c,d),1));const e=[];(function k(h){if(8!==d.node.nodeType&&7!==d.node.nodeType){var l=h.nodeType;3===l||4===l?e.push(c.getData(h)):1!==l&&9!==l&&\n11!==l||c.getChildNodes(h).forEach(n=>{k(n)})}})(d.node);return w.create(g(e.join(\"\"),19))}if(v(a.type,60)&&!v(a.type,62))throw nc(a.type);if(v(a.type,62))return jc(a.h.map(d=>qc(d(),b)));throw Error(`Atomizing ${a.type} is not implemented.`);}function qc(a,b){let c=!1;const d=a.value;let e=null;return w.create({next:()=>{for(;!c;){if(!e){var f=d.next(0);if(f.done){c=!0;break}e=pc(f.value,b).value}f=e.next(0);if(f.done)e=null;else return f}return p}})};function rc(a){for(a=ua[a];a&&0!==a.C;)a=a.parent;return a?a.type:null}function sc(a,b){b=ua[b];const c=b.Ka;if(!c||!c.whiteSpace)return b.parent?sc(a,b.parent.type):a;switch(b.Ka.whiteSpace){case \"replace\":return a.replace(/[\\u0009\\u000A\\u000D]/g,\" \");case \"collapse\":return a.replace(/[\\u0009\\u000A\\u000D]/g,\" \").replace(/ {2,}/g,\" \").replace(/^ | $/g,\"\")}return a}function tc(a,b){for(b=ua[b];b&&null===b.gb;){if(2===b.C||3===b.C)return!0;b=b.parent}return b?b.gb(a):!0}\nfunction uc(a,b){for(;a;){if(a.Oa&&a.Oa[b])return a.Oa[b];a=a.parent}return()=>!0}function vc(a,b){let c=ua[b];for(;c;){if(c.Ka&&!Object.keys(c.Ka).every(d=>{if(\"whiteSpace\"===d)return!0;const e=uc(c,d);return e?e(a,c.Ka[d]):!0}))return!1;c=c.parent}return!0}function wc(a){return a?2===a.g||0===a.g:!0};function xc(a){return a(1)||a(19)?b=>({u:!0,value:g(b,20)}):()=>({u:!1,error:Error(\"XPTY0004: Casting not supported from given type to xs:anyURI or any of its derived types.\")})};function yc(a){return a(22)?b=>{let c=\"\";for(let d=0;d<b.length;d+=2)c+=String.fromCharCode(parseInt(b.substr(d,2),16));return{u:!0,value:g(btoa(c),21)}}:a(1)||a(19)?b=>({u:!0,value:g(b,21)}):()=>({error:Error(\"XPTY0004: Casting not supported from given type to xs:base64Binary or any of its derived types.\"),u:!1})};function zc(a){return a(2)?b=>({u:!0,value:0===b||isNaN(b)?wa:va}):a(1)||a(19)?b=>{switch(b){case \"true\":case \"1\":return{u:!0,value:va};case \"false\":case \"0\":return{u:!0,value:wa};default:return{u:!1,error:Error(\"XPTY0004: Casting not supported from given type to xs:boolean or any of its derived types.\")}}}:()=>({u:!1,error:Error(\"XPTY0004: Casting not supported from given type to xs:boolean or any of its derived types.\")})};function Dc(a){return a(9)?b=>({u:!0,value:g(Lb(b,7),7)}):a(19)||a(1)?b=>({u:!0,value:g(Jb(b),7)}):()=>({u:!1,error:Error(\"XPTY0004: Casting not supported from given type to xs:date or any of its derived types.\")})};function Ec(a){return a(7)?b=>({u:!0,value:g(Lb(b,9),9)}):a(19)||a(1)?b=>({u:!0,value:g(Jb(b),9)}):()=>({u:!1,error:Error(\"XPTY0004: Casting not supported from given type to xs:dateTime or any of its derived types.\")})};function Fc(a){return a(18)&&!a(16)?b=>({u:!0,value:g(b.Ga,17)}):a(16)?()=>({u:!0,value:g(Ab(\"PT0.0S\"),17)}):a(19)||a(1)?b=>{const c=Ab(b);return c?{u:!0,value:g(c,17)}:{u:!1,error:Error(`FORG0001: Can not cast ${b} to xs:dayTimeDuration`)}}:()=>({u:!1,error:Error(\"XPTY0004: Casting not supported from given type to xs:dayTimeDuration or any of its derived types.\")})};function Gc(a){return a(5)?b=>({u:!0,value:g(b,4)}):a(6)||a(3)?b=>isNaN(b)||!isFinite(b)?{u:!1,error:Error(`FOCA0002: Can not cast ${b} to xs:decimal`)}:Math.abs(b)>Number.MAX_VALUE?{u:!1,error:Error(`FOAR0002: Can not cast ${b} to xs:decimal, it is out of bounds for JavaScript numbers`)}:{u:!0,value:g(b,4)}:a(0)?b=>({u:!0,value:g(b?1:0,4)}):a(1)||a(19)?b=>{const c=parseFloat(b);return!isNaN(c)||isFinite(c)?{u:!0,value:g(c,4)}:{u:!1,error:Error(`FORG0001: Can not cast ${b} to xs:decimal`)}}:()=>({u:!1,\nerror:Error(\"XPTY0004: Casting not supported from given type to xs:decimal or any of its derived types.\")})};function Hc(a,b){return a(2)?c=>({u:!0,value:c}):a(0)?c=>({u:!0,value:c?1:0}):a(1)||a(19)?c=>{switch(c){case \"NaN\":return{u:!0,value:NaN};case \"INF\":case \"+INF\":return{u:!0,value:Infinity};case \"-INF\":return{u:!0,value:-Infinity};case \"0\":case \"+0\":return{u:!0,value:0};case \"-0\":return{u:!0,value:-0}}const d=parseFloat(c);return isNaN(d)?{u:!1,error:kc(c,b)}:{u:!0,value:d}}:()=>({u:!1,error:Error(`XPTY0004: Casting not supported from given type to ${b} or any of its derived types.`)})};function Ic(a){const b=Hc(a,3);return c=>{c=b(c);return c.u?{u:!0,value:g(c.value,3)}:c}};function Jc(a){const b=Math.abs(a.bb());a=Math.abs(a.ab());return`${b?`${b}Y`:\"\"}`+`${a?`${a}M`:\"\"}`||\"0M\"}\nvar Kc=class extends wb{constructor(a){super();if(a>Number.MAX_SAFE_INTEGER||a<Number.MIN_SAFE_INTEGER)throw Error(\"FODT0002: Number of months given to construct YearMonthDuration overflows MAX_SAFE_INTEGER or MIN_SAFE_INTEGER\");this.ea=a}ab(){const a=this.ea%12;return 0===a?0:a}h(){return this.ea}bb(){return Math.trunc(this.ea/12)}na(){return Object.is(-0,this.ea)?!1:0<=this.ea}toString(){return(this.na()?\"P\":\"-P\")+Jc(this)}},Lc=a=>{var b=/^(-)?P(\\d+Y)?(\\d+M)?(\\d+D)?(?:T(\\d+H)?(\\d+M)?(\\d+(\\.\\d*)?S)?)?$/.exec(a);\nif(b){a=!b[1];b=12*(b[2]?parseInt(b[2],10):0)+(b[3]?parseInt(b[3],10):0);if(b>Number.MAX_SAFE_INTEGER||!Number.isFinite(b))throw Error(\"FODT0002: Value overflow while constructing xs:yearMonthDuration\");a=new Kc(a||0===b?b:-b)}else a=null;return a};\nfunction Mc(a,b){if(isNaN(b))throw Error(\"FOCA0005: Cannot multiply xs:yearMonthDuration by NaN\");a=Math.round(a.ea*b);if(a>Number.MAX_SAFE_INTEGER||!Number.isFinite(a))throw Error(\"FODT0002: Value overflow while constructing xs:yearMonthDuration\");return new Kc(a<Number.MIN_SAFE_INTEGER||0===a?0:a)};var Nc=class extends wb{constructor(a,b){super();this.Va=a;this.Ga=b}$a(){return this.Ga.$a()}getHours(){return this.Ga.getHours()}getMinutes(){return this.Ga.getMinutes()}ab(){return this.Va.ab()}h(){return this.Va.h()}o(){return this.Ga.o()}getSeconds(){return this.Ga.getSeconds()}bb(){return this.Va.bb()}na(){return this.Va.na()&&this.Ga.na()}toString(){const a=this.na()?\"P\":\"-P\",b=Jc(this.Va),c=xb(this.Ga);return\"0M\"===b?a+c:\"T0S\"===c?a+b:a+b+c}};function Oc(a){return a(16)?b=>({u:!0,value:g(new Nc(b,new yb(b.na()?0:-0)),18)}):a(17)?b=>{b=new Nc(new Kc(b.na()?0:-0),b);return{u:!0,value:g(b,18)}}:a(18)?b=>({u:!0,value:g(b,18)}):a(19)||a(1)?b=>{var c;return c=new Nc(Lc(b),Ab(b)),{u:!0,value:g(c,18)}}:()=>({u:!1,error:Error(\"XPTY0004: Casting not supported from given type to xs:duration or any of its derived types.\")})};function Pc(a){const b=Hc(a,6);return c=>{c=b(c);return c.u?{u:!0,value:g(c.value,6)}:c}};function Qc(a){return a(7)||a(9)?b=>({u:!0,value:g(Lb(b,15),15)}):a(19)||a(1)?b=>({u:!0,value:g(Jb(b),15)}):()=>({u:!1,error:Error(\"XPTY0004: Casting not supported from given type to xs:gDay or any of its derived types.\")})};function Rc(a){return a(7)||a(9)?b=>({u:!0,value:g(Lb(b,14),14)}):a(19)||a(1)?b=>({u:!0,value:g(Jb(b),14)}):()=>({u:!1,error:Error(\"XPTY0004: Casting not supported from given type to xs:gMonth or any of its derived types.\")})};function Sc(a){return a(7)||a(9)?b=>({u:!0,value:g(Lb(b,13),13)}):a(19)||a(1)?b=>({u:!0,value:g(Jb(b),13)}):()=>({u:!1,error:Error(\"XPTY0004: Casting not supported from given type to xs:gMonthDay or any of its derived types.\")})};function Tc(a){return a(7)||a(9)?b=>({u:!0,value:g(Lb(b,12),12)}):a(19)||a(1)?b=>({u:!0,value:g(Jb(b),12)}):()=>({u:!1,error:Error(\"XPTY0004: Casting not supported from given type to xs:gYear or any of its derived types.\")})};function Uc(a){return a(7)||a(9)?b=>({u:!0,value:g(Lb(b,11),11)}):a(19)||a(1)?b=>({u:!0,value:g(Jb(b),11)}):()=>({u:!1,error:Error(\"XPTY0004: Casting not supported from given type to xs:gYearMonth or any of its derived types.\")})};function Vc(a){return a(21)?b=>{b=atob(b);let c=\"\";for(let d=0,e=b.length;d<e;d++)c+=Number(b.charCodeAt(d)).toString(16);return{u:!0,value:g(c.toUpperCase(),22)}}:a(1)||a(19)?b=>({u:!0,value:g(b,22)}):()=>({u:!1,error:Error(\"XPTY0004: Casting not supported from given type to xs:hexBinary or any of its derived types.\")})};function Wc(a){return a(0)?b=>({u:!0,value:g(b?1:0,5)}):a(2)?b=>{const c=Math.trunc(b);return!isFinite(c)||isNaN(c)?{u:!1,error:Error(`FOCA0002: can not cast ${b} to xs:integer`)}:Number.isSafeInteger(c)?{u:!0,value:g(c,5)}:{u:!1,error:Error(`FOAR0002: can not cast ${b} to xs:integer, it is out of bounds for JavaScript numbers.`)}}:a(1)||a(19)?b=>{const c=parseInt(b,10);return isNaN(c)?{u:!1,error:kc(b,5)}:Number.isSafeInteger(c)?{u:!0,value:g(c,5)}:{u:!1,error:Error(`FOCA0003: can not cast ${b} to xs:integer, it is out of bounds for JavaScript numbers.`)}}:\n()=>({u:!1,error:Error(\"XPTY0004: Casting not supported from given type to xs:integer or any of its derived types.\")})};const Xc=[3,6,4,5];function Yc(a){var b=Zc;return c=>{for(const d of Xc){const e=b(a,d)(c);if(e.u)return e}return{u:!1,error:Error(`XPTY0004: Casting not supported from \"${c}\" given type to xs:numeric or any of its derived types.`)}}};function $c(a){if(a(1)||a(19))return b=>({u:!0,value:b+\"\"});if(a(20))return b=>({u:!0,value:b});if(a(23))return b=>({u:!0,value:b.prefix?`${b.prefix}:${b.localName}`:b.localName});if(a(44))return b=>({u:!0,value:b.toString()});if(a(2)){if(a(5)||a(4))return b=>({u:!0,value:(b+\"\").replace(\"e\",\"E\")});if(a(6)||a(3))return b=>isNaN(b)?{u:!0,value:\"NaN\"}:isFinite(b)?Object.is(b,-0)?{u:!0,value:\"-0\"}:{u:!0,value:(b+\"\").replace(\"e\",\"E\").replace(\"E+\",\"E\")}:{u:!0,value:`${0>b?\"-\":\"\"}INF`}}return a(9)||a(7)||\na(8)||a(15)||a(14)||a(13)||a(12)||a(11)?b=>({u:!0,value:b.toString()}):a(16)?b=>({u:!0,value:b.toString()}):a(17)?b=>({u:!0,value:b.toString()}):a(18)?b=>({u:!0,value:b.toString()}):a(22)?b=>({u:!0,value:b.toUpperCase()}):b=>({u:!0,value:b+\"\"})};function ad(a){const b=$c(a);return c=>{c=b(c);return c.u?{u:!0,value:g(c.value,1)}:c}};function bd(a){return a(9)?b=>({u:!0,value:g(Lb(b,8),8)}):a(19)||a(1)?b=>({u:!0,value:g(Jb(b),8)}):()=>({u:!1,error:Error(\"XPTY0004: Casting not supported from given type to xs:time or any of its derived types.\")})};function cd(a){const b=$c(a);return c=>{c=b(c);return c.u?{u:!0,value:g(c.value,19)}:c}};function dd(a){return a(18)&&!a(17)?b=>({u:!0,value:g(b.Va,16)}):a(17)?()=>({u:!0,value:g(Lc(\"P0M\"),16)}):a(19)||a(1)?b=>{const c=Lc(b);return c?{u:!0,value:g(c,16)}:{u:!1,error:kc(b,16)}}:()=>({u:!1,error:Error(\"XPTY0004: Casting not supported from given type to xs:yearMonthDuration or any of its derived types.\")})};const ed=[2,5,17,16];\nfunction Zc(a,b){const c=d=>v(a,d);if(39===b)return()=>({u:!1,error:Error(\"FORG0001: Casting to xs:error is always invalid.\")});switch(b){case 19:return cd(c);case 1:return ad(c);case 6:return Pc(c);case 3:return Ic(c);case 4:return Gc(c);case 5:return Wc(c);case 2:return Yc(a);case 18:return Oc(c);case 16:return dd(c);case 17:return Fc(c);case 9:return Ec(c);case 8:return bd(c);case 7:return Dc(c);case 11:return Uc(c);case 12:return Tc(c);case 13:return Sc(c);case 15:return Qc(c);case 14:return Rc(c);\ncase 0:return zc(c);case 21:return yc(c);case 22:return Vc(c);case 20:return xc(c);case 23:throw Error(\"Casting to xs:QName is not implemented.\");}return()=>({u:!1,error:Error(`XPTY0004: Casting not supported from ${a} to ${b}.`)})}const gd=Object.create(null);\nfunction hd(a,b){if(19===a&&1===b)return f=>({u:!0,value:g(f,1)});if(44===b)return()=>({u:!1,error:Error(\"XPST0080: Casting to xs:NOTATION is not permitted.\")});if(39===b)return()=>({u:!1,error:Error(\"FORG0001: Casting to xs:error is not permitted.\")});if(45===a||45===b)return()=>({u:!1,error:Error(\"XPST0080: Casting from or to xs:anySimpleType is not permitted.\")});if(46===a||46===b)return()=>({u:!1,error:Error(\"XPST0080: Casting from or to xs:anyAtomicType is not permitted.\")});if(v(a,60)&&1===\nb)return()=>({u:!1,error:Error(\"FOTY0014: Casting from function item to xs:string is not permitted.\")});if(a===b)return f=>({u:!0,value:{type:b,value:f}});const c=ed.includes(a)?a:rc(a),d=ed.includes(b)?b:rc(b);if(null===d||null===c)return()=>({u:!1,error:Error(`XPST0081: Can not cast: type ${d?Da[a]:Da[b]} is unknown.`)});const e=[];1!==c&&19!==c||e.push(f=>{const h=sc(f,b);return tc(h,b)?{u:!0,value:h}:{u:!1,error:kc(f,b,\"pattern validation failed.\")}});c!==d&&(e.push(Zc(c,d)),e.push(f=>({u:!0,\nvalue:f.value})));19!==d&&1!==d||e.push(f=>tc(f,b)?{u:!0,value:f}:{u:!1,error:kc(f,b,\"pattern validation failed.\")});e.push(f=>vc(f,b)?{u:!0,value:f}:{u:!1,error:kc(f,b,\"pattern validation failed.\")});e.push(f=>({u:!0,value:{type:b,value:f}}));return f=>{f={u:!0,value:f};for(let h=0,k=e.length;h<k&&(f=e[h](f.value),!1!==f.u);++h);return f}}function id(a,b){const c=a.type+1E4*b;let d=gd[c];d||=gd[c]=hd(a.type,b);return d.call(void 0,a.value,b)};function jd(a,b){a=id(a,b);if(!0===a.u)return a.value;throw a.error;};function kd(a){let b=!1;return{next:()=>{if(b)return p;b=!0;return q(a)}}};function ld(a,b){return a===b?!0:a&&b&&a.offset===b.offset&&a.parent===b.parent?ld(a.G,b.G):!1}function md(a,b){return a===b||a.node===b.node&&ld(a.G,b.G)?!0:!1};function nd(a,b,c){var d=x(a,b,null);a=hb(a,d,null);for(let e=0,f=a.length;e<f;++e){d=a[e];if(md(d,b))return-1;if(md(d,c))return 1}}function od(a,b){const c=[];for(;b;b=x(a,b,null))c.unshift(b);return c}function pd(a,b){const c=[];for(;b;b=a.getParentNode(b,null))c.unshift(b);return c}\nfunction qd(a,b,c,d){if(c.G||d.G||cb(c.node)||cb(d.node)){if(md(c,d))return 0;c=od(b,c);d=od(b,d);const f=c[0],h=d[0];if(!md(f,h))return b=a.findIndex(k=>md(k,f)),c=a.findIndex(k=>md(k,h)),-1===b&&(b=a.push(f)),-1===c&&(c=a.push(h)),b-c;a=1;for(var e=Math.min(c.length,d.length);a<e&&md(c[a],d[a]);++a);return c[a]?d[a]?nd(b,c[a],d[a]):1:-1}c=c.node;e=d.node;if(c===e)return 0;d=pd(b,c);c=pd(b,e);if(d[0]!==c[0]){const f={node:d[0],G:null},h={node:c[0],G:null};b=a.findIndex(k=>md(k,f));c=a.findIndex(k=>\nmd(k,h));-1===b&&(b=a.push(f));-1===c&&(c=a.push(h));return b-c}a=1;for(e=Math.min(d.length,c.length);a<e&&d[a]===c[a];++a);d=d[a];e=c[a];if(!d)return-1;if(!e)return 1;b=b.getChildNodes(c[a-1],null);for(let f=0,h=b.length;f<h;++f){a=b[f];if(a===d)return-1;if(a===e)return 1}}\nfunction rd(a,b,c,d){const e=v(c.type,47),f=v(d.type,47);if(e&&!f){if(c=x(b,c.value),d=d.value,md(c,d))return 1}else if(f&&!e){if(c=c.value,d=x(b,d.value),md(c,d))return-1}else if(e&&f){if(md(x(b,d.value),x(b,c.value)))return c.value.node.localName>d.value.node.localName?1:-1;c=x(b,c.value);d=x(b,d.value)}else c=c.value,d=d.value;return qd(a,b,c,d)}function sd(a,b,c){return rd(a.o,a,b,c)}function td(a,b){return ud(b,(c,d)=>rd(a.o,a,c,d)).filter((c,d,e)=>0===d?!0:!md(c.value,e[d-1].value))}\nconst vd=(a,b)=>a<b?-1:0;function ud(a,b=vd){if(1>=a.length)return a;var c=Math.floor(a.length/2);const d=ud(a.slice(0,c),b);a=ud(a.slice(c),b);for(c=[];d.length&&a.length;)0>b(d[0],a[0])?c.push(d.shift()):c.push(a.shift());return c.concat(d.concat(a))};var wd=xspattern;function xd(a,b){if(v(a.type,2)){if(v(a.type,6))return 3===b?g(a.value,3):null;if(v(a.type,4)){if(6===b)return g(a.value,6);if(3===b)return g(a.value,3)}return null}return v(a.type,20)&&1===b?g(a.value,1):null};function yd(a,b,c,d,e){if(v(a.type,b.type))return a;v(b.type,46)&&v(a.type,53)&&(a=pc(a,c).first());if(v(a.type,b.type)||46===b.type)return a;if(v(a.type,19)){c=jd(a,b.type);if(!c)throw Error(`XPTY0004 Unable to convert ${e?\"return\":\"argument\"} of type ${Da[a.type]} to type ${Ha(b)} while calling ${d}`);return c}c=xd(a,b.type);if(!c)throw Error(`XPTY0004 Unable to cast ${e?\"return\":\"argument\"} of type ${Da[a.type]} to type ${Ha(b)} while calling ${d}`);return c}\nfunction zd(a){switch(a){case 2:return\"*\";case 1:return\"+\";case 0:return\"?\";case 3:return\"\"}}\nvar Ad=(a,b,c,d,e)=>0===a.g?b.X({default:()=>b.map(f=>yd(f,a,c,d,e)),multiple:()=>{throw Error(`XPTY0004: Multiplicity of ${e?\"function return value\":\"function argument\"} of type ${Da[a.type]}${zd(a.g)} for ${d} is incorrect. Expected \"?\", but got \"+\".`);}}):1===a.g?b.X({empty:()=>{throw Error(`XPTY0004: Multiplicity of ${e?\"function return value\":\"function argument\"} of type ${Da[a.type]}${zd(a.g)} for ${d} is incorrect. Expected \"+\", but got \"empty-sequence()\"`);},default:()=>b.map(f=>yd(f,a,c,\nd,e))}):2===a.g?b.map(f=>yd(f,a,c,d,e)):b.X({m:()=>b.map(f=>yd(f,a,c,d,e)),default:()=>{throw Error(`XPTY0004: Multiplicity of ${e?\"function return value\":\"function argument\"} of type ${Da[a.type]}${zd(a.g)} for ${d} is incorrect. Expected exactly one`);}});function Bd(a,b){return v(a,5)?g(b,5):v(a,6)?g(b,6):v(a,3)?g(b,3):g(b,4)}const Cd=[{la:\"M\",ja:1E3},{la:\"CM\",ja:900},{la:\"D\",ja:500},{la:\"CD\",ja:400},{la:\"C\",ja:100},{la:\"XC\",ja:90},{la:\"L\",ja:50},{la:\"XL\",ja:40},{la:\"X\",ja:10},{la:\"IX\",ja:9},{la:\"V\",ja:5},{la:\"IV\",ja:4},{la:\"I\",ja:1}];function Dd(a,b){const c=0>a;a=Math.abs(a);if(!a)return\"-\";let d=Cd.reduce((e,f)=>{const h=Math.floor(a/f.ja);a-=h*f.ja;return e+f.la.repeat(h)},\"\");b&&(d=d.toLowerCase());c&&(d=`-${d}`);return d}const Ed=\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\".split(\"\");\nfunction Fd(a,b){const c=0>a;a=Math.abs(a);if(!a)return\"-\";let d=\"\",e;for(;0<a;)e=(a-1)%Ed.length,d=Ed[e]+d,a=(a-e)/Ed.length|0;b&&(d=d.toLowerCase());c&&(d=`-${d}`);return d}function Gd(a,b,c=[]){return Array.from({length:b},(d,e)=>e+a).filter(d=>!c.includes(d))}\nconst Hd=Gd(1488,27,[1498,1501,1503,1507,1509]),Id=Gd(1575,36,[1577,1595,1596,1597,1598,1599,1600,1609]),Jd=\"\\u0623\\u0628\\u062c\\u062f\\u0647\\u0648\\u0632\\u062d\\u0637\\u064a\\u0643\\u0644\\u0645\\u0646\\u0633\\u0639\\u0641\\u0635\\u0642\\u0631\\u0634\\u062a\\u062b\\u062e\\u0630\\u0636\\u0638\\u063a\".split(\"\"),Kd=[[1E3,\"\\u063a\"],[900,\"\\u0638\"],[800,\"\\u0636\"],[700,\"\\u0630\"],[600,\"\\u062e\"],[500,\"\\u062b\"],[400,\"\\u062a\"],[300,\"\\u0634\"],[200,\"\\u0631\"],[100,\"\\u0642\"],[90,\"\\u0635\"],[80,\"\\u0641\"],[70,\"\\u0639\"],[60,\"\\u0633\"],[50,\n\"\\u0646\"],[40,\"\\u0645\"],[30,\"\\u0644\"],[20,\"\\u0643\"],[10,\"\\u064a\"],[9,\"\\u0637\"],[8,\"\\u062d\"],[7,\"\\u0632\"],[6,\"\\u0648\"],[5,\"\\u0647\"],[4,\"\\u062f\"],[3,\"\\u062c\"],[2,\"\\u0628\"],[1,\"\\u0623\"]],Ld=[[400,\"\\u05ea\"],[300,\"\\u05e9\"],[200,\"\\u05e8\"],[100,\"\\u05e7\"],[90,\"\\u05e6\"],[80,\"\\u05e4\"],[70,\"\\u05e2\"],[60,\"\\u05e1\"],[50,\"\\u05e0\"],[40,\"\\u05de\"],[30,\"\\u05dc\"],[20,\"\\u05db\"],[10,\"\\u05d9\"],[9,\"\\u05d8\"],[8,\"\\u05d7\"],[7,\"\\u05d6\"],[6,\"\\u05d5\"],[5,\"\\u05d4\"],[4,\"\\u05d3\"],[3,\"\\u05d2\"],[2,\"\\u05d1\"],[1,\"\\u05d0\"]];\nfunction Md(a,b=[]){var c=25;b.sort((d,e)=>d-e);c-=b.length;return function(d){const e=0>d;d=Math.abs(d);if(!d)return\"-\";const f=[];for(;0<d;){let h=a+(d-1)%c;b.forEach(k=>{h>=k&&h++});f.unshift(String.fromCodePoint(h));d=Math.floor((d-1)/c)}d=f.join(\"\");e&&(d=`-${d}`);return d}}const Nd=Md(945,[962]),Od=Md(913,[930]);function Pd(a){return(new Intl.NumberFormat([],{numberingSystem:\"arab\",useGrouping:!1})).format(a)}\nfunction Qd(a){return(new Intl.NumberFormat([],{numberingSystem:\"arabext\",useGrouping:!1})).format(a)}\nconst Rd=new Map([[\"A\",function(a){return Fd(a,!1)}],[\"a\",function(a){return Fd(a,!0)}],[\"I\",function(a){return Dd(a,!1)}],[\"i\",function(a){return Dd(a,!0)}],[\"lowerGreek\",Nd],[\"\\u03b1\",Nd],[\"upperGreek\",Od],[\"\\u0391\",Od],[\"arabicAbjadi\",function(a){const b=0>a;a=Math.abs(a);if(!a)return\"-\";a=Array(Math.floor((a-1)/Jd.length)+1).fill(Jd[(a-1)%Jd.length]).join(String.fromCodePoint(8204));b&&(a=`-${a}`);return a}],[\"arabicAbjadNumeral\",function(a){const b=0>a;a=Math.abs(a);if(!a)return\"-\";var c=[],\nd=Math.floor(a/1E3);a-=1E3*d;if(1===d)c.push(Kd[0][1]);else if(1<d){for(const [f,h]of Kd){var e=f;const k=h;for(;d>=e;)c.push(k),d-=e}c.push(Kd[0][1])}for(const [f,h]of Kd)for(d=f,e=h;a>=d;)a-=d,c.push(e);c=c.join(\"\");b&&(c=`-${c}`);return c}],[\"arabicAlifBaTa\",function(a){const b=0>a;a=Math.abs(a);if(!a)return\"-\";a=Array(Math.floor((a-1)/Id.length)+1).fill(String.fromCodePoint(Id[(a-1)%Id.length])).join(String.fromCodePoint(8204));b&&(a=`-${a}`);return a}],[\"hebrewAlefBet\",function(a){const b=0>\na;a=Math.abs(a);if(!a)return\"-\";var c=Math.floor((a-1)/Hd.length);const d=String.fromCodePoint(1514);c=Array(c).fill(d);c.push(String.fromCodePoint(Hd[(a-1)%Hd.length]));a=c.join(\"\");b&&(a=`-${a}`);return a}],[\"hebrewNumeral\",function(a){const b=0>a;a=Math.abs(a);if(!a)return\"-\";var c=[],d=Math.floor(a/400);a-=400*d;for(var e=0;e<d;e++)c.push(\"\\u05ea\");for(const [f,h]of Ld)for(d=f,e=h;a>=d;)a-=d,c.push(e);a=c.slice(-2).join(\"\");\"\\u05d9\\u05d4\"===a&&c.splice(-2,2,\"\\u05d8\",\"\\u05d5\");\"\\u05d9\\u05d5\"===\na&&c.splice(-2,2,\"\\u05d8\",\"\\u05d6\");c=c.join(\"\");b&&(c=`-${c}`);return c}],[\"arabicIndicNumeral\",Pd],[\"\\u0661\",Pd],[\"\\u0662\",Pd],[\"\\u0663\",Pd],[\"\\u0664\",Pd],[\"\\u0665\",Pd],[\"\\u0666\",Pd],[\"\\u0667\",Pd],[\"\\u0668\",Pd],[\"\\u0669\",Pd],[\"persianNumeral\",Qd],[\"\\u06f1\",Qd],[\"\\u06f2\",Qd],[\"\\u06f3\",Qd],[\"\\u06f4\",Qd],[\"\\u06f5\",Qd],[\"\\u06f6\",Qd],[\"\\u06f7\",Qd],[\"\\u06f8\",Qd],[\"\\u06f9\",Qd]]);\nfunction Sd(a){if(Math.floor(a)===a||isNaN(a))return 0;a=/\\d+(?:\\.(\\d*))?(?:[Ee](-)?(\\d+))*/.exec(`${a}`);const b=a[1]?a[1].length:0;if(a[3]){if(a[2])return b+parseInt(a[3],10);a=b-parseInt(a[3],10);return 0>a?0:a}return b}function Td(a,b,c){return b&&0===a*c%1%.5?0===Math.floor(a*c)%2?Math.floor(a*c)/c:Math.ceil(a*c)/c:Math.round(a*c)/c}\nfunction Ud(a,b,c,d,e,f){let h=!1;return w.create({next:()=>{if(h)return p;const k=e.first();if(!k)return h=!0,p;if((v(k.type,6)||v(k.type,3))&&(0===k.value||isNaN(k.value)||Infinity===k.value||-Infinity===k.value))return h=!0,q(k);var l;f?l=f.first().value:l=0;h=!0;if(Sd(k.value)<l)return q(k);const n=[5,4,3,6].find(u=>v(k.type,u)),t=jd(k,4);l=Td(t.value,a,Math.pow(10,l));switch(n){case 4:return q(g(l,4));case 3:return q(g(l,3));case 6:return q(g(l,6));case 5:return q(g(l,5))}}})}\nconst Vd=(a,b,c,d)=>qc(d,b).X({empty:()=>w.m(g(NaN,3)),m:()=>{const e=id(d.first(),3);return e.u?w.m(e.value):w.m(g(NaN,3))},multiple:()=>{throw Error(\"fn:number may only be called with zero or one values\");}});function Wd(a){let b=5381;for(let c=0;c<a.length;++c)b=33*b+a.charCodeAt(c),b%=Number.MAX_SAFE_INTEGER;return b}\nconst Xd=(a,b,c,d=w.empty())=>{function e(f){const h=(k,l,n,t)=>{if(t.F()||t.oa())return t;k=t.O();l=f;for(n=k.length-1;1<n;n--){l=gc(a,l).rb;t=l%n;const u=k[t];k[t]=k[n];k[n]=u}return w.create(k)};return w.m(new ub([{key:g(\"number\",1),value:()=>w.m(g(gc(a,f).$b,3))},{key:g(\"next\",1),value:()=>w.m(new Va({value:()=>e(gc(a,f).rb),Ya:!0,localName:\"\",namespaceURI:\"\",j:[],arity:0,i:{type:61,g:3}}))},{key:g(\"permute\",1),value:()=>w.m(new Va({value:h,Ya:!0,localName:\"\",namespaceURI:\"\",j:[{type:59,g:2}],\narity:1,i:{type:59,g:2}}))}]))}b=d.F()?gc(a):gc(a,Wd(jd(d.first(),1).value));return e(b.rb)};\nvar Yd=[{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"abs\",j:[{type:2,g:0}],i:{type:2,g:0},callFunction:(a,b,c,d)=>d.map(e=>Bd(e.type,Math.abs(e.value)))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"format-integer\",j:[{type:5,g:0},{type:1,g:3}],i:{type:1,g:3},callFunction:(a,b,c,d,e)=>{a=d.first();e=e.first();if(d.F())return w.m(g(\"\",1));d=Rd.get(e.value);e=a.value;return d?(d=d(e),w.m(g(d,1))):w.m(g(e.toString(),1))}},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",\nlocalName:\"ceiling\",j:[{type:2,g:0}],i:{type:2,g:0},callFunction:(a,b,c,d)=>d.map(e=>Bd(e.type,Math.ceil(e.value)))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"floor\",j:[{type:2,g:0}],i:{type:2,g:0},callFunction:(a,b,c,d)=>d.map(e=>Bd(e.type,Math.floor(e.value)))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"round\",j:[{type:2,g:0}],i:{type:2,g:0},callFunction:Ud.bind(null,!1)},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"round\",j:[{type:2,\ng:0},{type:5,g:3}],i:{type:2,g:0},callFunction:Ud.bind(null,!1)},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"round-half-to-even\",j:[{type:2,g:0}],i:{type:2,g:0},callFunction:Ud.bind(null,!0)},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"round-half-to-even\",j:[{type:2,g:0},{type:5,g:3}],i:{type:2,g:0},callFunction:Ud.bind(null,!0)},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"number\",j:[{type:46,g:0}],i:{type:3,g:3},callFunction:Vd},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",\nlocalName:\"number\",j:[],i:{type:3,g:3},callFunction:(a,b,c)=>{const d=a.M&&Ad({type:46,g:0},w.m(a.M),b,\"fn:number\",!1);if(!d)throw lc(\"fn:number needs an atomizable context item.\");return Vd(a,b,c,d)}},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"random-number-generator\",j:[],i:{type:61,g:3},callFunction:Xd},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"random-number-generator\",j:[{type:46,g:0}],i:{type:61,g:3},callFunction:Xd}];function Zd(){throw Error(\"FOCH0002: No collations are supported\");}function $d(a,b,c,d){if(null===b.M)throw lc(\"The function which was called depends on dynamic context, which is absent.\");return a(b,c,d,w.m(b.M))}\nconst ae=(a,b,c,d)=>d.X({empty:()=>w.m(g(\"\",1)),default:()=>d.map(e=>{if(v(e.type,53)){const f=pc(e,b).first();return v(e.type,47)?jd(f,1):f}return jd(e,1)})}),be=(a,b,c,d,e)=>A([e],([f])=>qc(d,b).N(h=>{h=h.map(k=>jd(k,1).value).join(f.value);return w.m(g(h,1))})),ce=(a,b,c,d)=>{if(d.F())return w.m(g(0,5));a=d.first().value;return w.m(g(Array.from(a).length,5))},ee=(a,b,c,d,e,f)=>{const h=Ud(!1,a,b,c,e,null),k=null!==f?Ud(!1,a,b,c,f,null):null;let l=!1,n=null,t=null,u=null;return w.create({next:()=>\n{if(l)return p;if(!n&&(n=d.first(),null===n))return l=!0,q(g(\"\",1));t||=h.first();!u&&f&&(u=null,u=k.first());l=!0;return q(g(Array.from(n.value).slice(Math.max(t.value-1,0),f?t.value+u.value-1:void 0).join(\"\"),1))}})},ge=(a,b,c,d,e)=>{if(d.F()||0===d.first().value.length)return w.empty();a=d.first().value;e=e.first().value;e=fe(e);e.lastIndex=0;b=[];c=e.exec(a);for(d=0;c;)b.push(a.slice(d,c.index)),d=e.lastIndex,c=e.exec(a);b.push(a.slice(d));return w.create(b.map(f=>g(f,1)))},he=(a,b,c,d)=>{if(d.F())return w.m(g(\"\",\n1));a=d.first().value.trim();return w.m(g(a.replace(/\\s+/g,\" \"),1))},ie=new Map,je=new Map;function fe(a){if(je.has(a))return je.get(a);let b;try{b=new RegExp(a,\"g\")}catch(c){throw Error(`FORX0002: ${c}`);}if(b.test(\"\"))throw Error(`FORX0003: the pattern ${a} matches the zero length string`);je.set(a,b);return b}\nvar ke=[{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"compare\",j:[{type:1,g:0},{type:1,g:0}],i:{type:5,g:0},callFunction:(a,b,c,d,e)=>{if(d.F()||e.F())return w.empty();a=d.first().value;e=e.first().value;return a>e?w.m(g(1,5)):a<e?w.m(g(-1,5)):w.m(g(0,5))}},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"compare\",j:[{type:1,g:0},{type:1,g:0},{type:1,g:3}],i:{type:5,g:0},callFunction:Zd},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"concat\",\nj:[{type:46,g:0},{type:46,g:0},4],i:{type:1,g:3},callFunction:(a,b,c,...d)=>{d=d.map(e=>qc(e,b).N(f=>w.m(g(f.map(h=>null===h?\"\":jd(h,1).value).join(\"\"),1))));return A(d,e=>w.m(g(e.map(f=>f.value).join(\"\"),1)))}},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"contains\",j:[{type:1,g:0},{type:1,g:0},{type:1,g:0}],i:{type:0,g:3},callFunction:Zd},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"contains\",j:[{type:1,g:0},{type:1,g:0}],i:{type:0,g:3},callFunction:(a,b,\nc,d,e)=>{a=d.F()?\"\":d.first().value;e=e.F()?\"\":e.first().value;return 0===e.length?w.aa():0===a.length?w.T():a.includes(e)?w.aa():w.T()}},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"ends-with\",j:[{type:1,g:0},{type:1,g:0}],i:{type:0,g:3},callFunction:(a,b,c,d,e)=>{a=e.F()?\"\":e.first().value;if(0===a.length)return w.aa();d=d.F()?\"\":d.first().value;return 0===d.length?w.T():d.endsWith(a)?w.aa():w.T()}},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"ends-with\",\nj:[{type:1,g:0},{type:1,g:0},{type:1,g:3}],i:{type:0,g:3},callFunction:Zd},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"normalize-space\",j:[{type:1,g:0}],i:{type:1,g:3},callFunction:he},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"normalize-space\",j:[],i:{type:1,g:3},callFunction:$d.bind(null,(a,b,c,d)=>he(a,b,c,ae(a,b,c,d)))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"starts-with\",j:[{type:1,g:0},{type:1,g:0}],i:{type:0,g:3},callFunction:(a,\nb,c,d,e)=>{a=e.F()?\"\":e.first().value;if(0===a.length)return w.aa();d=d.F()?\"\":d.first().value;return 0===d.length?w.T():d.startsWith(a)?w.aa():w.T()}},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"starts-with\",j:[{type:1,g:0},{type:1,g:0},{type:1,g:3}],i:{type:0,g:3},callFunction:Zd},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"string\",j:[{type:59,g:0}],i:{type:1,g:3},callFunction:ae},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"string\",\nj:[],i:{type:1,g:3},callFunction:$d.bind(null,ae)},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"substring-before\",j:[{type:1,g:0},{type:1,g:0}],i:{type:1,g:3},callFunction:(a,b,c,d,e)=>{a=d.F()?\"\":d.first().value;e=e.F()?\"\":e.first().value;if(\"\"===e)return w.m(g(\"\",1));e=a.indexOf(e);return-1===e?w.m(g(\"\",1)):w.m(g(a.substring(0,e),1))}},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"substring-after\",j:[{type:1,g:0},{type:1,g:0}],i:{type:1,g:3},callFunction:(a,\nb,c,d,e)=>{a=d.F()?\"\":d.first().value;e=e.F()?\"\":e.first().value;if(\"\"===e)return w.m(g(a,1));b=a.indexOf(e);return-1===b?w.m(g(\"\",1)):w.m(g(a.substring(b+e.length),1))}},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"substring\",j:[{type:1,g:0},{type:3,g:3}],i:{type:1,g:3},callFunction:ee},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"substring\",j:[{type:1,g:0},{type:3,g:3},{type:3,g:3}],i:{type:1,g:3},callFunction:ee},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",\nlocalName:\"upper-case\",j:[{type:1,g:0}],i:{type:1,g:3},callFunction:(a,b,c,d)=>d.F()?w.m(g(\"\",1)):d.map(e=>g(e.value.toUpperCase(),1))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"lower-case\",j:[{type:1,g:0}],i:{type:1,g:3},callFunction:(a,b,c,d)=>d.F()?w.m(g(\"\",1)):d.map(e=>g(e.value.toLowerCase(),1))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"string-join\",j:[{type:46,g:2},{type:1,g:3}],i:{type:1,g:3},callFunction:be},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",\nlocalName:\"string-join\",j:[{type:46,g:2}],i:{type:1,g:3},callFunction(a,b,c,d){return be(a,b,c,d,w.m(g(\"\",1)))}},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"string-length\",j:[{type:1,g:0}],i:{type:5,g:3},callFunction:ce},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"string-length\",j:[],i:{type:5,g:3},callFunction:$d.bind(null,(a,b,c,d)=>ce(a,b,c,ae(a,b,c,d)))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"tokenize\",j:[{type:1,g:0},{type:1,\ng:3},{type:1,g:3}],i:{type:1,g:2},callFunction(){throw Error(\"Not implemented: Using flags in tokenize is not supported\");}},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"tokenize\",j:[{type:1,g:0},{type:1,g:3}],i:{type:1,g:2},callFunction:ge},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"tokenize\",j:[{type:1,g:0}],i:{type:1,g:2},callFunction(a,b,c,d){return ge(a,b,c,he(a,b,c,d),w.m(g(\" \",1)))}},{j:[{type:1,g:0},{type:1,g:3},{type:1,g:3}],callFunction:(a,b,c,\nd,e,f)=>A([d,e,f],([h,k,l])=>{h=Array.from(h?h.value:\"\");const n=Array.from(k.value),t=Array.from(l.value);k=h.map(u=>{if(n.includes(u)){if(u=n.indexOf(u),u<=t.length)return t[u]}else return u});return w.m(g(k.join(\"\"),1))}),localName:\"translate\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:1,g:3}},{j:[{type:5,g:2}],callFunction:(a,b,c,d)=>d.N(e=>{e=e.map(f=>{f=f.value;if(9===f||10===f||13===f||32<=f&&55295>=f||57344<=f&&65533>=f||65536<=f&&1114111>=f)return String.fromCodePoint(f);\nthrow Error(\"FOCH0001\");}).join(\"\");return w.m(g(e,1))}),localName:\"codepoints-to-string\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:1,g:3}},{j:[{type:1,g:0}],callFunction:(a,b,c,d)=>A([d],([e])=>{e=e?e.value.split(\"\"):[];return 0===e.length?w.empty():w.create(e.map(f=>g(f.codePointAt(0),5)))}),localName:\"string-to-codepoints\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:5,g:2}},{j:[{type:1,g:0}],callFunction:(a,b,c,d)=>A([d],([e])=>null===e||0===e.value.length?\nw.create(g(\"\",1)):w.create(g(encodeURIComponent(e.value).replace(/[!'()*]/g,f=>\"%\"+f.charCodeAt(0).toString(16).toUpperCase()),1))),localName:\"encode-for-uri\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:1,g:3}},{j:[{type:1,g:0}],callFunction:(a,b,c,d)=>A([d],([e])=>null===e||0===e.value.length?w.create(g(\"\",1)):w.create(g(e.value.replace(/([\\u00A0-\\uD7FF\\uE000-\\uFDCF\\uFDF0-\\uFFEF \"<>{}|\\\\^`/\\n\\u007f\\u0080-\\u009f]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF])/g,f=>encodeURI(f)),1))),localName:\"iri-to-uri\",\nnamespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:1,g:3}},{j:[{type:1,g:0},{type:1,g:0}],callFunction:(a,b,c,d,e)=>A([d,e],([f,h])=>{if(null===f||null===h)return w.empty();f=f.value;var k=h.value;if(f.length!==k.length)return w.T();h=f.split(\"\");f=k.split(\"\");for(k=0;k<h.length;k++)if(h[k].codePointAt(0)!==f[k].codePointAt(0))return w.T();return w.aa()}),localName:\"codepoint-equal\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:0,g:0}},{j:[{type:1,g:0},{type:1,g:3}],callFunction:(a,\nb,c,d,e)=>A([d,e],([f,h])=>{f=f?f.value:\"\";h=h.value;let k=ie.get(h);if(!k){try{k=(0,wd.compile)(h,{language:\"xpath\"})}catch(l){throw Error(`FORX0002: ${l}`);}ie.set(h,k)}return k(f)?w.aa():w.T()}),localName:\"matches\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:0,g:3}},{j:[{type:1,g:0},{type:1,g:3},{type:1,g:3}],callFunction:(a,b,c,d,e,f)=>A([d,e,f],([h,k,l])=>{h=h?h.value:\"\";k=k.value;l=l.value;if(l.includes(\"$0\"))throw Error(\"Using $0 in fn:replace to replace substrings with full matches is not supported.\");\nl=l.split(/((?:\\$\\$)|(?:\\\\\\$)|(?:\\\\\\\\))/).map(n=>{switch(n){case \"\\\\$\":return\"$$\";case \"\\\\\\\\\":return\"\\\\\";case \"$$\":throw Error('FORX0004: invalid replacement: \"$$\"');default:return n}}).join(\"\");k=fe(k);h=h.replace(k,l);return w.m(g(h,1))}),localName:\"replace\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:1,g:3}},{j:[{type:1,g:0},{type:1,g:3},{type:1,g:3},{type:1,g:3}],localName:\"replace\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:1,g:3},callFunction(){throw Error(\"Not implemented: Using flags in replace is not supported\");\n}}];const le=new WeakMap;let me=0;function ne(a,b,c,d,e){if(null===c.M)throw lc(`The function ${a} depends on dynamic context, which is absent.`);return b(c,d,e,w.m(c.M))}\nconst oe=(a,b,c,d)=>A([d],([e])=>{if(null===e)return w.empty();e=e.value;switch(e.node.nodeType){case 1:case 2:return w.m(g(new Sa(e.node.prefix,e.node.namespaceURI,e.node.localName),23));case 7:return w.m(g(new Sa(\"\",\"\",e.node.target),23));default:return w.empty()}}),pe=(a,b,c,d)=>d.X({default:()=>ae(a,b,c,oe(a,b,c,d)),empty:()=>w.m(g(\"\",1))}),qe=(a,b,c,d)=>qc(d,b),re=(a,b,c,d)=>{if(d.F())return w.m(g(\"\",1));if(!v(d.first().type,53))throw Error(\"XPTY0004: The context item must be a node.\");c=d.first().value;\na=w;b=a.m;c=c.node;le.has(c)||le.set(c,`id${++me}`);c=le.get(c);return b.call(a,g(c,1))},se=(a,b,c,d)=>A([d],([e])=>{e=e?e.value:null;return null!==e&&jb(b.h,e,null)?w.aa():w.T()});function te(a,b){a=a.toLowerCase();b=b.toLowerCase();return a===b?!0:5>a.length||!a.startsWith(b)?!1:te(a.replace(/-[a-z0-9]+$/,\"\"),b)}\nconst ue=(a,b,c,d,e)=>{b=b.h;if(d.F())d=\"\";else if(v(d.first().type,1))d=d.first().value;else throw Error(\"XPTY0004: The first argument of lang must be a string.\");if(e)e=e.first().value;else{if(!a||!a.M)throw lc(\"The function lang depends on dynamic context if a node is not passed as the second argument.\");if(!v(a.M.type,53))throw Error(\"XPTY0004: The context item must be a node.\");e=a.M.value}a:{for(a=d;e;)if(1!==e.node.nodeType)e=x(b,e);else if(1===e.node.nodeType){if(d=fb(b,e,\"xml:lang\")){b=te(d,\na)?w.aa():w.T();break a}e=x(b,e)}b=w.T()}return b},ve=(a,b,c,d)=>A([d],([e])=>{function f(n){let t=0,u=n;for(;null!==u;)(n.node.nodeType!==u.node.nodeType?0:1===u.node.nodeType?u.node.localName===n.node.localName&&u.node.namespaceURI===n.node.namespaceURI:7===u.node.nodeType?u.node.target===n.node.target:1)&&t++,u=mb(h,u,null);return t}if(null===e)return w.empty();const h=b.h;let k=\"\";for(e=e.value;null!==x(b.h,e,null);e=x(b.h,e,null))switch(e.node.nodeType){case 1:var l=e;k=`/Q{${l.node.namespaceURI||\n\"\"}}${l.node.localName}[${f(l)}]${k}`;break;case 2:l=e;k=`/@${l.node.namespaceURI?`Q{${l.node.namespaceURI}}`:\"\"}${l.node.localName}${k}`;break;case 3:k=`/text()[${f(e)}]${k}`;break;case 7:l=e;k=`/processing-instruction(${l.node.target})[${f(l)}]${k}`;break;case 8:k=`/comment()[${f(e)}]${k}`}return 9===e.node.nodeType?w.create(g(k||\"/\",1)):w.create(g(\"Q{http://www.w3.org/2005/xpath-functions}root()\"+k,1))}),we=(a,b,c,d)=>d.map(e=>g(e.value.node.namespaceURI||\"\",20)),xe=(a,b,c,d)=>d.X({default:()=>\nd.map(e=>7===e.value.node.nodeType?g(e.value.node.target,1):g(e.value.node.localName||\"\",1)),empty:()=>w.m(g(\"\",1))});function ye(a,b,c){if(2===b.node.nodeType)return md(b,c);for(;c;){if(md(b,c))return!0;if(9===c.node.nodeType)break;c=x(a,c,null)}return!1}const ze=(a,b,c,d)=>d.map(e=>{if(!v(e.type,53))throw Error(\"XPTY0004 Argument passed to fn:root() should be of the type node()\");let f;for(e=e.value;e;)f=e,e=x(b.h,f,null);return rb(f)});\nvar Ae=[{j:[{type:53,g:0}],callFunction:pe,localName:\"name\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:1,g:3}},{j:[],callFunction:ne.bind(null,\"name\",pe),localName:\"name\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:1,g:3}},{j:[{type:53,g:3}],callFunction:we,localName:\"namespace-uri\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:20,g:3}},{j:[],callFunction:ne.bind(null,\"namespace-uri\",we),localName:\"namespace-uri\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",\ni:{type:20,g:3}},{j:[{type:53,g:2}],callFunction:(a,b,c,d)=>d.N(e=>{if(!e.length)return w.empty();e=td(b.h,e).reduceRight((f,h,k,l)=>{if(k===l.length-1)return f.push(h),f;if(ye(b.h,h.value,f[0].value))return f;f.unshift(h);return f},[]);return w.create(e)}),localName:\"innermost\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:53,g:2}},{j:[{type:53,g:2}],callFunction:(a,b,c,d)=>d.N(e=>{if(!e.length)return w.empty();e=td(b.h,e).reduce((f,h,k)=>{if(0===k)return f.push(h),f;if(ye(b.h,f[f.length-\n1].value,h.value))return f;f.push(h);return f},[]);return w.create(e)},1),localName:\"outermost\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:53,g:2}},{j:[{type:53,g:0}],callFunction:se,localName:\"has-children\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:0,g:3}},{j:[],callFunction:ne.bind(null,\"has-children\",se),localName:\"has-children\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:0,g:3}},{j:[{type:53,g:0}],callFunction:ve,localName:\"path\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",\ni:{type:1,g:0}},{j:[],callFunction:ne.bind(null,\"path\",ve),localName:\"path\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:1,g:0}},{j:[{type:53,g:0}],callFunction:oe,localName:\"node-name\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:23,g:0}},{j:[],callFunction:ne.bind(null,\"node-name\",oe),localName:\"node-name\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:23,g:0}},{j:[{type:53,g:0}],callFunction:xe,localName:\"local-name\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",\ni:{type:1,g:3}},{j:[],callFunction:ne.bind(null,\"local-name\",xe),localName:\"local-name\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:1,g:3}},{j:[{type:53,g:0}],callFunction:ze,localName:\"root\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:53,g:0}},{j:[],callFunction:ne.bind(null,\"root\",ze),localName:\"root\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:53,g:0}},{j:[],callFunction:ne.bind(null,\"data\",qe),localName:\"data\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",\ni:{type:46,g:2}},{j:[{type:59,g:2}],callFunction:qe,localName:\"data\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:46,g:2}},{j:[{type:1,g:0}],callFunction:ue,localName:\"lang\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:0,g:3}},{j:[{type:1,g:0},{type:53,g:3}],callFunction:ue,localName:\"lang\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:0,g:3}},{j:[],callFunction:ne.bind(null,\"generate-id\",re),localName:\"generate-id\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",\ni:{type:1,g:3}},{j:[{type:53,g:0}],callFunction:re,localName:\"generate-id\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:1,g:3}}];function Be(a,b){let c=0;const d=a.length;let e=!1,f=null;return{next:()=>{if(!e){for(;c<d;){f||=b(a[c],c,a);const h=f.next(0);f=null;if(h.value)c++;else return q(!1)}e=!0;return q(!0)}return p}}}function Ce(a){a=a.node.nodeType;return 1===a||3===a}\nfunction De(a,b){if((v(a.type,4)||v(a.type,6))&&(v(b.type,4)||v(b.type,6))){var c=jd(a,6),d=jd(b,6);return c.value===d.value||isNaN(a.value)&&isNaN(b.value)}return(v(a.type,4)||v(a.type,6)||v(a.type,3))&&(v(b.type,4)||v(b.type,6)||v(b.type,3))?(c=jd(a,3),d=jd(b,3),c.value===d.value||isNaN(a.value)&&isNaN(b.value)):v(a.type,23)&&v(b.type,23)?a.value.namespaceURI===b.value.namespaceURI&&a.value.localName===b.value.localName:(v(a.type,9)||v(a.type,7)||v(a.type,8)||v(a.type,11)||v(a.type,12)||v(a.type,\n13)||v(a.type,14)||v(a.type,15))&&(v(b.type,9)||v(b.type,7)||v(b.type,8)||v(b.type,11)||v(b.type,12)||v(b.type,13)||v(b.type,14)||v(b.type,15))?Ob(a.value,b.value):(v(a.type,16)||v(a.type,17)||v(a.type,18))&&(v(b.type,16)||v(b.type,17)||v(b.type,17))?vb(a.value,b.value):a.value===b.value}function Ee(a,b,c){const [d,e]=[b,c].map(f=>({type:1,value:f.reduce((h,k)=>h+=pc(k,a).first().value,\"\")}));return q(De(d,e))}\nfunction Fe(a,b,c,d){for(;a.value&&v(a.value.type,56);){b.push(a.value);const e=lb(d,a.value.value);a=c.next(0);if(e&&3!==e.node.nodeType)break}return a}\nfunction Ge(a,b,c,d,e){const f=b.h,h=d.value,k=e.value;let l=null,n=null,t=null,u;const z=[],y=[];return{next:()=>{for(;!u;)if(l||=h.next(0),l=Fe(l,z,h,f),n||=k.next(0),n=Fe(n,y,k,f),z.length||y.length){var G=Ee(b,z,y);z.length=0;y.length=0;if(!1===G.value)return u=!0,G}else{if(l.done||n.done)return u=!0,q(l.done===n.done);t||=He(a,b,c,l.value,n.value);G=t.next(0);t=null;if(!1===G.value)return u=!0,G;n=l=null}return p}}}\nfunction Ie(a,b,c,d,e){return d.h.length!==e.h.length?kd(!1):Be(d.h,f=>{const h=e.h.find(k=>De(k.key,f.key));return h?Ge(a,b,c,f.value(),h.value()):kd(!1)})}function Je(a,b,c,d,e){return d.h.length!==e.h.length?kd(!1):Be(d.h,(f,h)=>{h=e.h[h];return Ge(a,b,c,f(),h())})}function Ke(a,b,c,d,e){d=hb(b.h,d.value);e=hb(b.h,e.value);d=d.filter(f=>Ce(f));e=e.filter(f=>Ce(f));d=w.create(d.map(f=>rb(f)));e=w.create(e.map(f=>rb(f)));return Ge(a,b,c,d,e)}\nfunction Le(a,b,c,d,e){const f=Ge(a,b,c,oe(a,b,c,w.m(d)),oe(a,b,c,w.m(e))),h=Ke(a,b,c,d,e);d=eb(b.h,d.value).filter(n=>\"http://www.w3.org/2000/xmlns/\"!==n.node.namespaceURI).sort((n,t)=>n.node.nodeName>t.node.nodeName?1:-1).map(n=>rb(n));e=eb(b.h,e.value).filter(n=>\"http://www.w3.org/2000/xmlns/\"!==n.node.namespaceURI).sort((n,t)=>n.node.nodeName>t.node.nodeName?1:-1).map(n=>rb(n));const k=Ge(a,b,c,w.create(d),w.create(e));let l=!1;return{next:()=>{if(l)return p;var n=f.next(0);if(!n.done&&!1===n.value)return l=\n!0,n;n=k.next(0);if(!n.done&&!1===n.value)return l=!0,n;n=h.next(0);l=!0;return n}}}function Me(a,b,c,d,e){const f=Ge(a,b,c,oe(a,b,c,w.m(d)),oe(a,b,c,w.m(e)));let h=!1;return{next:()=>{if(h)return p;const k=f.next(0);return k.done||!1!==k.value?q(De(pc(d,b).first(),pc(e,b).first())):(h=!0,k)}}}\nfunction He(a,b,c,d,e){if(v(d.type,46)&&v(e.type,46))return kd(De(d,e));if(v(d.type,61)&&v(e.type,61))return Ie(a,b,c,d,e);if(v(d.type,62)&&v(e.type,62))return Je(a,b,c,d,e);if(v(d.type,53)&&v(e.type,53)){if(v(d.type,55)&&v(e.type,55))return Ke(a,b,c,d,e);if(v(d.type,54)&&v(e.type,54))return Le(a,b,c,d,e);if(v(d.type,47)&&v(e.type,47)||v(d.type,57)&&v(e.type,57)||v(d.type,58)&&v(e.type,58))return Me(a,b,c,d,e)}return kd(!1)};var Ne=class extends cc{constructor(){super({M:null,Aa:-1,ta:w.empty(),ra:{}})}};var Oe=(a=\"Can not execute an updating expression in a non-updating context.\")=>Error(`XUST0001: ${a}`),Pe=a=>Error(`XUTY0004: The attribute ${a.name}=\"${a.value}\" follows a node that is not an attribute node.`),Qe=()=>Error(\"XUTY0005: The target of a insert expression with into must be a single element or document node.\"),Re=()=>Error(\"XUTY0006: The target of a insert expression with before or after must be a single element, text, comment, or processing instruction node.\"),Se=()=>Error(\"XUTY0008: The target of a replace expression must be a single element, attribute, text, comment, or processing instruction node.\"),\nTe=()=>Error(\"XUTY0012: The target of a rename expression must be a single element, attribute, or processing instruction node.\"),Ue=a=>Error(`XUDY0017: The target ${a.outerHTML} is used in more than one replace value of expression.`),Ve=a=>Error(`XUDY0021: Applying the updates will result in the XDM instance violating constraint: '${a}'`),We=a=>Error(`XUDY0023: The namespace binding ${a} is conflicting.`),Xe=a=>Error(`XUDY0024: The namespace binding ${a} is conflicting.`),Ye=()=>Error(\"XUDY0027: The target for an insert, replace, or rename expression expression should not be empty.\");function C(a,b,c){b&&null!==b.M?a.B?(null===a.ob&&(a.ob=Ra(a.h(new Ne,c).hb())),a=a.ob()):a=a.h(b,c):a=a.h(b,c);return a}var D=class{constructor(a,b,c={B:!1,W:!1,R:\"unsorted\",subtree:!1},d=!1,e){this.o=a;this.ia=c.R||\"unsorted\";this.subtree=!!c.subtree;this.W=!!c.W;this.B=!!c.B;this.Fa=b;this.I=!1;this.ob=null;this.Qb=d;this.type=e}D(){return null}v(a){this.Fa.forEach(b=>b.v(a));if(!this.Qb&&this.Fa.some(b=>b.I))throw Oe();}};var Ze=class{constructor(a,b){this.J=a;this.da=b}};var $e=class{constructor(a){a&&\"object\"===typeof a&&\"nodeType\"in a&&(a=a.ownerDocument||a,\"function\"===typeof a.createElementNS&&\"function\"===typeof a.createProcessingInstruction&&\"function\"===typeof a.createTextNode&&\"function\"===typeof a.createComment&&(this.h=a));this.h||(this.h=null)}createAttributeNS(a,b){if(!this.h)throw Error(\"Please pass a node factory if an XQuery script uses node constructors\");return this.h.createAttributeNS(a,b)}createCDATASection(a){if(!this.h)throw Error(\"Please pass a node factory if an XQuery script uses node constructors\");\nreturn this.h.createCDATASection(a)}createComment(a){if(!this.h)throw Error(\"Please pass a node factory if an XQuery script uses node constructors\");return this.h.createComment(a)}createDocument(){if(!this.h)throw Error(\"Please pass a node factory if an XQuery script uses node constructors\");return this.h.implementation.createDocument(null,null,null)}createElementNS(a,b){if(!this.h)throw Error(\"Please pass a node factory if an XQuery script uses node constructors\");return this.h.createElementNS(a,\nb)}createProcessingInstruction(a,b){if(!this.h)throw Error(\"Please pass a node factory if an XQuery script uses node constructors\");return this.h.createProcessingInstruction(a,b)}createTextNode(a){if(!this.h)throw Error(\"Please pass a node factory if an XQuery script uses node constructors\");return this.h.createTextNode(a)}};function af(a,b,c,d){return eb(d,a,`name-${b}`).some(e=>e.node.localName===b&&e.node.namespaceURI===c)}\nvar bf=(a,b,c,d)=>{const e=x(c,a).node,f=(a=lb(c,a))?a.node:null;b.forEach(h=>{d.insertBefore(e,h.node,f)})},cf=(a,b,c,d)=>{const e=x(c,a).node;b.forEach(f=>{d.insertBefore(e,f.node,a.node)})},df=(a,b,c,d)=>{const e=(c=jb(c,a))?c.node:null;b.forEach(f=>{d.insertBefore(a.node,f.node,e)})},ef=(a,b,c)=>{b.forEach(d=>{c.insertBefore(a.node,d.node,null)})},ff=(a,b,c,d)=>{b.forEach(e=>{const f=e.node.localName,h=e.node.namespaceURI;if(af(a,f,h,c))throw Ve(`An attribute ${h?`Q{${h}}${f}`:f} already exists.`);\nd.setAttributeNS(a.node,h,f,ib(c,e))})},hf=(a,b,c,d,e)=>{d||=new $e(a?a.node:null);let f;switch(a.node.nodeType){case 1:const h=c.getAllAttributes(a.node),k=c.getChildNodes(a.node),l=d.createElementNS(b.namespaceURI,b.za());f={node:l,G:null};h.forEach(n=>{e.setAttributeNS(l,n.namespaceURI,n.nodeName,n.value)});k.forEach(n=>{e.insertBefore(l,n,null)});break;case 2:b=d.createAttributeNS(b.namespaceURI,b.za());b.value=ib(c,a);f={node:b,G:null};break;case 7:f={node:d.createProcessingInstruction(b.za(),\nib(c,a)),G:null}}if(!x(c,a))throw Error(\"Not supported: renaming detached nodes.\");gf(a,[f],c,e)},jf=(a,b,c,d)=>{c.getChildNodes(a.node).forEach(e=>d.removeChild(a.node,e));b&&d.insertBefore(a.node,b.node,null)},gf=(a,b,c,d)=>{const e=x(c,a);var f=a.node.nodeType;if(2===f){if(b.some(k=>2!==k.node.nodeType))throw Error('Constraint \"If $target is an attribute node, $replacement must consist of zero or more attribute nodes.\" failed.');const h=e?e.node:null;d.removeAttributeNS(h,a.node.namespaceURI,a.node.localName);\nb.forEach(k=>{const l=k.node.localName,n=k.node.namespaceURI;if(af(e,l,n,c))throw Ve(`An attribute ${n?`Q{${n}}${l}`:l} already exists.`);d.setAttributeNS(h,n,l,ib(c,k))})}if(1===f||3===f||8===f||7===f){const h=(f=lb(c,a))?f.node:null;d.removeChild(e.node,a.node);b.forEach(k=>{d.insertBefore(e.node,k.node,h)})}};var lf=(a,b,c,d)=>{kf(a,b);a.filter(e=>-1!==[\"insertInto\",\"insertAttributes\",\"replaceValue\",\"rename\"].indexOf(e.type)).forEach(e=>{switch(e.type){case \"insertInto\":ef(e.target,e.content,d);break;case \"insertAttributes\":ff(e.target,e.content,b,d);break;case \"rename\":hf(e.target,e.o,b,c,d);break;case \"replaceValue\":var f=e.target;e=e.o;if(2===f.node.nodeType){const h=x(b,f);h?d.setAttributeNS(h.node,f.node.namespaceURI,f.node.localName,e):f.node.value=e}else d.setData(f.node,e)}});a.filter(e=>-1!==\n[\"insertBefore\",\"insertAfter\",\"insertIntoAsFirst\",\"insertIntoAsLast\"].indexOf(e.type)).forEach(e=>{switch(e.type){case \"insertAfter\":bf(e.target,e.content,b,d);break;case \"insertBefore\":cf(e.target,e.content,b,d);break;case \"insertIntoAsFirst\":df(e.target,e.content,b,d);break;case \"insertIntoAsLast\":ef(e.target,e.content,d)}});a.filter(e=>\"replaceNode\"===e.type).forEach(e=>{gf(e.target,e.o,b,d)});a.filter(e=>\"replaceElementContent\"===e.type).forEach(e=>{jf(e.target,e.text,b,d)});a.filter(e=>\"delete\"===\ne.type).forEach(e=>{e=e.target;var f=x(b,e);(f=f?f.node:null)&&(2===e.node.nodeType?d.removeAttributeNS(f,e.node.namespaceURI,e.node.localName):d.removeChild(f,e.node))});if(a.some(e=>\"put\"===e.type))throw Error('Not implemented: the execution for pendingUpdate \"put\" is not yet implemented.');};\nconst kf=(a,b)=>{function c(f,h){const k=new Set;a.filter(l=>l.type===f).map(l=>l.target).forEach(l=>{l=l?l.node:null;k.has(l)&&h(l);k.add(l)})}c(\"rename\",f=>{throw Error(`XUDY0015: The target ${f.outerHTML} is used in more than one rename expression.`);});c(\"replaceNode\",f=>{throw Error(`XUDY0016: The target ${f.outerHTML} is used in more than one replace expression.`);});c(\"replaceValue\",f=>{throw Ue(f);});c(\"replaceElementContent\",f=>{throw Ue(f);});const d=new Map,e=f=>new Sa(f.node.prefix,f.node.namespaceURI,\nf.node.localName);a.filter(f=>\"replaceNode\"===f.type&&2===f.target.node.nodeType).forEach(f=>{var h=x(b,f.target);h=h?h.node:null;const k=d.get(h);k?k.push(...f.o.map(e)):d.set(h,f.o.map(e))});a.filter(f=>\"rename\"===f.type&&2===f.target.node.nodeType).forEach(f=>{var h=x(b,f.target);if(h){h=h.node;var k=d.get(h);k?k.push(f.o):d.set(h,[f.o])}});d.forEach(f=>{const h={};f.forEach(k=>{h[k.prefix]||(h[k.prefix]=k.namespaceURI);if(h[k.prefix]!==k.namespaceURI)throw Xe(k.namespaceURI);})})};\nvar mf=(a,...b)=>a.concat(...b.filter(Boolean));function nf(a){return a.I?(b,c)=>a.s(b,c):(b,c)=>{const d=a.h(b,c);return{next:()=>{const e=d.O();return q({da:[],J:e})}}}}var of=class extends D{constructor(a,b,c,d){super(a,b,c,!0,d);this.I=!0}h(){throw Oe();}};function pf(a,b){a=a.next(0);b(a.value.da);return w.create(a.value.J)}function qf(a){a.Fa.some(b=>b.I)&&(a.I=!0)}var rf=class extends of{constructor(a,b,c,d){super(a,b,c,d);this.I=this.Fa.some(e=>e.I)}h(a,b){return this.A(a,b,this.Fa.map(c=>d=>c.h(d,b)))}s(a,b){let c=[];const d=this.A(a,b,this.Fa.map(f=>f.I?h=>{h=f.s(h,b);return pf(h,k=>c=mf(c,k))}:h=>f.h(h,b)));let e=!1;return{next:()=>{if(e)return p;const f=d.O();e=!0;return q(new Ze(f,c))}}}v(a){super.v(a);qf(this)}};const sf=[\"external\",\"attribute\",\"nodeName\",\"nodeType\",\"universal\"],tf=sf.length;function uf(a,b){for(let c=0;c<tf;++c){if(b.h[c]<a.h[c])return 1;if(b.h[c]>a.h[c])return-1}return 0}var vf=class{constructor(a){this.h=sf.map(b=>a[b]||0);if(Object.keys(a).some(b=>!sf.includes(b)))throw Error(\"Invalid specificity kind passed\");}add(a){const b=sf.reduce((c,d,e)=>{c[d]=this.h[e]+a.h[e];return c},Object.create(null));return new vf(b)}};const wf=()=>mc(\"Expected base expression of a function call to evaluate to a sequence of single function item\");function xf(a,b,c,d){const e=[];for(let f=0;f<b.length;++f){if(null===b[f]){e.push(null);continue}const h=Ad(a[f],b[f],c,d,!1);e.push(h)}return e}function Df(a,b){if(!v(a.type,60))throw mc(\"Expected base expression to evaluate to a function item\");if(a.v!==b)throw wf();return a}\nfunction Ef(a,b,c,d,e,f,h){let k=0;e=e.map(l=>l?null:f[k++](c));e=xf(a.o,e,d,a.D);if(0<=e.indexOf(null))return Ua(a,e);b=b.apply(void 0,[c,d,h,...e]);return Ad(a.s,b,d,a.D,!0)}\nvar Gf=class extends rf{constructor(a,b,c){super(new vf({external:1}),[a].concat(b.filter(d=>!!d)),{R:\"unsorted\",W:!1,subtree:!1,B:!1},c);this.ma=b.length;this.P=b.map(d=>null===d);this.L=null;this.ya=a;this.La=b}s(a,b){if(!this.l||!this.l.I)return super.s(a,b);let c=[];const d=Ef(this.l,(f,h,k,...l)=>pf(this.l.value(f,h,k,...l),n=>{c=mf(c,n)}),a,b,this.P,this.La.map(f=>()=>f.I?pf(f.s(a,b),h=>{c=mf(c,h)}):C(f,a,b)),this.L);let e=!1;return{next:()=>{if(e)return p;const f=d.O();e=!0;return q({da:c,\nJ:f})}}}A(a,b,[c,...d]){if(this.l)return Ef(this.l,(f,h,k,...l)=>this.l.value(f,h,k,...l),a,b,this.P,d,this.L);const e=c(a);return e.X({default:()=>{throw wf();},m:()=>e.N(([f])=>{f=Df(f,this.ma);if(f.I)throw Error(\"XUDY0038: The function returned by the PrimaryExpr of a dynamic function invocation can not be an updating function\");return Ef(f,f.value,a,b,this.P,d,this.L)})})}v(a){this.L=Ff(a);super.v(a);if(this.ya.B){a=C(this.ya,null,null);if(!a.oa())throw wf();this.l=Df(a.first(),this.ma);this.l.I&&\n(this.I=!0)}}};const Hf=(a,b,c,d,e,f)=>A([d,e,f],([h,k,l])=>{k=k.value;l=l.value;if(k>h.h.length||0>=k)throw Error(\"FOAY0001: subarray start out of bounds.\");if(0>l)throw Error(\"FOAY0002: subarray length out of bounds.\");if(k+l>h.h.length+1)throw Error(\"FOAY0001: subarray start + length out of bounds.\");return w.m(new pb(h.h.slice(k-1,l+k-1)))}),If=(a,b,c,d,e)=>A([d],([f])=>e.N(h=>{h=h.map(l=>l.value).sort((l,n)=>n-l).filter((l,n,t)=>t[n-1]!==l);const k=f.h.concat();for(let l=0,n=h.length;l<n;++l){const t=h[l];\nif(t>f.h.length||0>=t)throw Error(\"FOAY0001: subarray position out of bounds.\");k.splice(t-1,1)}return w.m(new pb(k))})),Jf=a=>v(a,1)||v(a,20)||v(a,19),Kf=(a,b,c,d,e)=>0===d.length?0!==e.length:0!==e.length&&He(a,b,c,d[0],e[0]).next(0).value?Kf(a,b,c,d.slice(1),e.slice(1)):d[0].value!==d[0].value?!0:Jf(d[0].type)&&0!==e.length&&Jf(e[0].type)?d[0].value<e[0].value:0===e.length?!1:d[0].value<e[0].value,Lf=(a,b,c,d)=>{d.sort((e,f)=>Ge(a,b,c,w.create(e),w.create(f)).next(0).value?0:Kf(a,b,c,e,f)?-1:1);\nreturn w.m(new pb(d.map(e=>()=>w.create(e))))};function Mf(a){return v(a.type,62)?jc(a.h.map(b=>b().N(c=>jc(c.map(Mf))))):w.m(a)}\nvar Nf=[{namespaceURI:\"http://www.w3.org/2005/xpath-functions/array\",localName:\"size\",j:[{type:62,g:3}],i:{type:5,g:3},callFunction:(a,b,c,d)=>A([d],([e])=>w.m(g(e.h.length,5)))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/array\",localName:\"get\",j:[{type:62,g:3},{type:5,g:3}],i:{type:59,g:2},callFunction:ob},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/array\",localName:\"put\",j:[{type:62,g:3},{type:5,g:3},{type:59,g:2}],i:{type:62,g:3},callFunction:(a,b,c,d,e,f)=>A([e,d],([h,k])=>\n{h=h.value;if(0>=h||h>k.h.length)throw Error(\"FOAY0001: array position out of bounds.\");k=k.h.concat();k.splice(h-1,1,Ra(f));return w.m(new pb(k))})},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/array\",localName:\"append\",j:[{type:62,g:3},{type:59,g:2}],i:{type:62,g:3},callFunction:(a,b,c,d,e)=>A([d],([f])=>w.m(new pb(f.h.concat([Ra(e)]))))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/array\",localName:\"subarray\",j:[{type:62,g:3},{type:5,g:3},{type:5,g:3}],i:{type:62,g:3},callFunction:Hf},\n{namespaceURI:\"http://www.w3.org/2005/xpath-functions/array\",localName:\"subarray\",j:[{type:62,g:3},{type:5,g:3}],i:{type:62,g:3},callFunction(a,b,c,d,e){const f=w.m(g(d.first().value.length-e.first().value+1,5));return Hf(a,b,c,d,e,f)}},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/array\",localName:\"remove\",j:[{type:62,g:3},{type:5,g:2}],i:{type:62,g:3},callFunction:If},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/array\",localName:\"insert-before\",j:[{type:62,g:3},{type:5,g:3},{type:59,\ng:2}],i:{type:62,g:3},callFunction:(a,b,c,d,e,f)=>A([d,e],([h,k])=>{k=k.value;if(k>h.h.length+1||0>=k)throw Error(\"FOAY0001: subarray position out of bounds.\");h=h.h.concat();h.splice(k-1,0,Ra(f));return w.m(new pb(h))})},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/array\",localName:\"head\",j:[{type:62,g:3}],i:{type:59,g:2},callFunction(a,b,c,d){return ob(a,b,c,d,w.m(g(1,5)))}},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/array\",localName:\"tail\",j:[{type:62,g:3}],i:{type:59,g:2},\ncallFunction(a,b,c,d){return If(a,b,c,d,w.m(g(1,5)))}},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/array\",localName:\"reverse\",j:[{type:62,g:3}],i:{type:62,g:3},callFunction:(a,b,c,d)=>A([d],([e])=>w.m(new pb(e.h.concat().reverse())))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/array\",localName:\"join\",j:[{type:62,g:2}],i:{type:62,g:3},callFunction:(a,b,c,d)=>d.N(e=>{e=e.reduce((f,h)=>f.concat(h.h),[]);return w.m(new pb(e))})},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/array\",\nlocalName:\"for-each\",j:[{type:62,g:3},{type:60,g:3}],i:{type:62,g:3},callFunction:(a,b,c,d,e)=>A([d,e],([f,h])=>{if(1!==h.v)throw mc(\"The callback passed into array:for-each has a wrong arity.\");f=f.h.map(k=>Ra(h.value.call(void 0,a,b,c,xf(h.o,[k()],b,\"array:for-each\")[0])));return w.m(new pb(f))})},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/array\",localName:\"filter\",j:[{type:62,g:3},{type:60,g:3}],i:{type:62,g:3},callFunction:(a,b,c,d,e)=>A([d,e],([f,h])=>{if(1!==h.v)throw mc(\"The callback passed into array:filter has a wrong arity.\");\nconst k=f.h.map(t=>{t=xf(h.o,[t()],b,\"array:filter\")[0];const u=h.value;return u(a,b,c,t)}),l=[];let n=!1;return w.create({next:()=>{if(n)return p;for(let u=0,z=f.h.length;u<z;++u){var t=k[u].fa();l[u]=t}t=f.h.filter((u,z)=>l[z]);n=!0;return q(new pb(t))}})})},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/array\",localName:\"fold-left\",j:[{type:62,g:3},{type:59,g:2},{type:60,g:3}],i:{type:59,g:2},callFunction:(a,b,c,d,e,f)=>A([d,f],([h,k])=>{if(2!==k.v)throw mc(\"The callback passed into array:fold-left has a wrong arity.\");\nreturn h.h.reduce((l,n)=>{n=xf(k.o,[n()],b,\"array:fold-left\")[0];return k.value.call(void 0,a,b,c,l,n)},e)})},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/array\",localName:\"fold-right\",j:[{type:62,g:3},{type:59,g:2},{type:60,g:3}],i:{type:59,g:2},callFunction:(a,b,c,d,e,f)=>A([d,f],([h,k])=>{if(2!==k.v)throw mc(\"The callback passed into array:fold-right has a wrong arity.\");return h.h.reduceRight((l,n)=>{n=xf(k.o,[n()],b,\"array:fold-right\")[0];return k.value.call(void 0,a,b,c,l,n)},e)})},\n{namespaceURI:\"http://www.w3.org/2005/xpath-functions/array\",localName:\"for-each-pair\",j:[{type:62,g:3},{type:62,g:3},{type:60,g:3}],i:{type:62,g:3},callFunction:(a,b,c,d,e,f)=>A([d,e,f],([h,k,l])=>{if(2!==l.v)throw mc(\"The callback passed into array:for-each-pair has a wrong arity.\");const n=[];for(let t=0,u=Math.min(h.h.length,k.h.length);t<u;++t){const [z,y]=xf(l.o,[h.h[t](),k.h[t]()],b,\"array:for-each-pair\");n[t]=Ra(l.value.call(void 0,a,b,c,z,y))}return w.m(new pb(n))})},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/array\",\nlocalName:\"sort\",j:[{type:62,g:3}],i:{type:62,g:3},callFunction:(a,b,c,d)=>A([d],([e])=>{e=e.h.map(f=>f().O());return Lf(a,b,c,e)})},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/array\",localName:\"flatten\",j:[{type:59,g:2}],i:{type:59,g:2},callFunction:(a,b,c,d)=>d.N(e=>jc(e.map(Mf)))}];function E(a,b,c,d,e){return e.F()?e:w.m(jd(e.first(),a))}\nvar Of=[{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"untypedAtomic\",j:[{type:46,g:0}],i:{type:19,g:0},callFunction:E.bind(null,19)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"error\",j:[{type:46,g:0}],i:{type:39,g:0},callFunction:E.bind(null,39)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"string\",j:[{type:46,g:0}],i:{type:1,g:0},callFunction:E.bind(null,1)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"boolean\",j:[{type:46,g:0}],i:{type:0,\ng:0},callFunction:E.bind(null,0)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"decimal\",j:[{type:46,g:0}],i:{type:4,g:0},callFunction:E.bind(null,4)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"float\",j:[{type:46,g:0}],i:{type:6,g:0},callFunction:E.bind(null,6)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"double\",j:[{type:46,g:0}],i:{type:3,g:0},callFunction:E.bind(null,3)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"duration\",j:[{type:46,\ng:0}],i:{type:18,g:0},callFunction:E.bind(null,18)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"dateTime\",j:[{type:46,g:0}],i:{type:9,g:0},callFunction:E.bind(null,9)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"dateTimeStamp\",j:[{type:46,g:0}],i:{type:10,g:0},callFunction:E.bind(null,10)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"time\",j:[{type:46,g:0}],i:{type:8,g:0},callFunction:E.bind(null,8)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"date\",\nj:[{type:46,g:0}],i:{type:7,g:0},callFunction:E.bind(null,7)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"gYearMonth\",j:[{type:46,g:0}],i:{type:11,g:0},callFunction:E.bind(null,11)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"gYear\",j:[{type:46,g:0}],i:{type:12,g:0},callFunction:E.bind(null,12)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"gMonthDay\",j:[{type:46,g:0}],i:{type:13,g:0},callFunction:E.bind(null,13)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",\nlocalName:\"gDay\",j:[{type:46,g:0}],i:{type:15,g:0},callFunction:E.bind(null,15)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"gMonth\",j:[{type:46,g:0}],i:{type:14,g:0},callFunction:E.bind(null,14)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"hexBinary\",j:[{type:46,g:0}],i:{type:22,g:0},callFunction:E.bind(null,22)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"base64Binary\",j:[{type:46,g:0}],i:{type:21,g:0},callFunction:E.bind(null,21)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",\nlocalName:\"QName\",j:[{type:46,g:0}],i:{type:23,g:0},callFunction:(a,b,c,d)=>{if(d.F())return d;a=d.first();if(v(a.type,2))throw Error(\"XPTY0004: The provided QName is not a string-like value.\");a=jd(a,1).value;a=sc(a,23);if(!tc(a,23))throw Error(\"FORG0001: The provided QName is invalid.\");if(!a.includes(\":\"))return c=c.$(\"\"),w.m(g(new Sa(\"\",c,a),23));const [e,f]=a.split(\":\");c=c.$(e);if(!c)throw Error(`FONS0004: The value ${a} can not be cast to a QName. Did you mean to use fn:QName?`);return w.m(g(new Sa(e,\nc,f),23))}},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"anyURI\",j:[{type:46,g:0}],i:{type:20,g:0},callFunction:E.bind(null,20)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"normalizedString\",j:[{type:46,g:0}],i:{type:48,g:0},callFunction:E.bind(null,48)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"token\",j:[{type:46,g:0}],i:{type:52,g:0},callFunction:E.bind(null,52)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"language\",j:[{type:46,g:0}],\ni:{type:51,g:0},callFunction:E.bind(null,51)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"NMTOKEN\",j:[{type:46,g:0}],i:{type:50,g:0},callFunction:E.bind(null,50)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"NMTOKENS\",j:[{type:46,g:0}],i:{type:49,g:2},callFunction:E.bind(null,49)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"Name\",j:[{type:46,g:0}],i:{type:25,g:0},callFunction:E.bind(null,25)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"NCName\",\nj:[{type:46,g:0}],i:{type:24,g:0},callFunction:E.bind(null,24)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"ID\",j:[{type:46,g:0}],i:{type:42,g:0},callFunction:E.bind(null,42)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"IDREF\",j:[{type:46,g:0}],i:{type:41,g:0},callFunction:E.bind(null,41)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"IDREFS\",j:[{type:46,g:0}],i:{type:43,g:2},callFunction:E.bind(null,43)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",\nlocalName:\"ENTITY\",j:[{type:46,g:0}],i:{type:26,g:0},callFunction:E.bind(null,26)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"ENTITIES\",j:[{type:46,g:0}],i:{type:40,g:2},callFunction:E.bind(null,40)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"integer\",j:[{type:46,g:0}],i:{type:5,g:0},callFunction:E.bind(null,5)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"nonPositiveInteger\",j:[{type:46,g:0}],i:{type:27,g:0},callFunction:E.bind(null,27)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",\nlocalName:\"negativeInteger\",j:[{type:46,g:0}],i:{type:28,g:0},callFunction:E.bind(null,28)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"long\",j:[{type:46,g:0}],i:{type:31,g:0},callFunction:E.bind(null,31)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"int\",j:[{type:46,g:0}],i:{type:32,g:0},callFunction:E.bind(null,32)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"short\",j:[{type:46,g:0}],i:{type:33,g:0},callFunction:E.bind(null,33)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",\nlocalName:\"byte\",j:[{type:46,g:0}],i:{type:34,g:0},callFunction:E.bind(null,34)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"nonNegativeInteger\",j:[{type:46,g:0}],i:{type:30,g:0},callFunction:E.bind(null,30)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"unsignedLong\",j:[{type:46,g:0}],i:{type:36,g:0},callFunction:E.bind(null,36)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"unsignedInt\",j:[{type:46,g:0}],i:{type:35,g:0},callFunction:E.bind(null,35)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",\nlocalName:\"unsignedShort\",j:[{type:46,g:0}],i:{type:38,g:0},callFunction:E.bind(null,38)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"unsignedByte\",j:[{type:46,g:0}],i:{type:37,g:0},callFunction:E.bind(null,37)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"positiveInteger\",j:[{type:46,g:0}],i:{type:29,g:0},callFunction:E.bind(null,29)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"yearMonthDuration\",j:[{type:46,g:0}],i:{type:16,g:0},callFunction:E.bind(null,\n16)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"dayTimeDuration\",j:[{type:46,g:0}],i:{type:17,g:0},callFunction:E.bind(null,17)},{namespaceURI:\"http://www.w3.org/2001/XMLSchema\",localName:\"dateTimeStamp\",j:[{type:46,g:0}],i:{type:10,g:0},callFunction:E.bind(null,10)}];const Pf=(a,b,c,d)=>d.F()?d:w.m(g(d.first().value.getYear(),5)),Qf=(a,b,c,d)=>d.F()?d:w.m(g(d.first().value.getMonth(),5)),Rf=(a,b,c,d)=>d.F()?d:w.m(g(d.first().value.getDay(),5)),Sf=(a,b,c,d)=>d.F()?d:w.m(g(d.first().value.getHours(),5)),Tf=(a,b,c,d)=>d.F()?d:w.m(g(d.first().value.getMinutes(),5)),Uf=(a,b,c,d)=>{d.F()||(a=w,b=a.m,d=d.first().value,d=b.call(a,g(d.D+d.qa,4)));return d},Vf=(a,b,c,d)=>d.F()?d:(a=d.first().value.Y)?w.m(g(a,17)):w.empty();\nvar Wf=[{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"dateTime\",j:[{type:7,g:0},{type:8,g:0}],i:{type:9,g:0},callFunction:(a,b,c,d,e)=>{if(d.F())return d;if(e.F())return e;a=d.first().value;e=e.first().value;b=a.Y;c=e.Y;if(b||c){if(!b||c)if(!b&&c)b=c;else if(!vb(b,c))throw Error(\"FORG0008: fn:dateTime: got a date and time value with different timezones.\");}else b=null;return w.m(g(new Kb(a.getYear(),a.getMonth(),a.getDay(),e.getHours(),e.getMinutes(),e.getSeconds(),e.qa,b),9))}},\n{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"year-from-dateTime\",j:[{type:9,g:0}],i:{type:5,g:0},callFunction:Pf},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"month-from-dateTime\",j:[{type:9,g:0}],i:{type:5,g:0},callFunction:Qf},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"day-from-dateTime\",j:[{type:9,g:0}],i:{type:5,g:0},callFunction:Rf},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"hours-from-dateTime\",j:[{type:9,\ng:0}],i:{type:5,g:0},callFunction:Sf},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"minutes-from-dateTime\",j:[{type:9,g:0}],i:{type:5,g:0},callFunction:Tf},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"seconds-from-dateTime\",j:[{type:9,g:0}],i:{type:4,g:0},callFunction:Uf},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"timezone-from-dateTime\",j:[{type:9,g:0}],i:{type:17,g:0},callFunction:Vf},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",\nlocalName:\"year-from-date\",j:[{type:7,g:0}],i:{type:5,g:0},callFunction:Pf},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"month-from-date\",j:[{type:7,g:0}],i:{type:5,g:0},callFunction:Qf},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"day-from-date\",j:[{type:7,g:0}],i:{type:5,g:0},callFunction:Rf},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"timezone-from-date\",j:[{type:7,g:0}],i:{type:17,g:0},callFunction:Vf},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",\nlocalName:\"hours-from-time\",j:[{type:8,g:0}],i:{type:5,g:0},callFunction:Sf},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"minutes-from-time\",j:[{type:8,g:0}],i:{type:5,g:0},callFunction:Tf},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"seconds-from-time\",j:[{type:8,g:0}],i:{type:4,g:0},callFunction:Uf},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"timezone-from-time\",j:[{type:8,g:0}],i:{type:17,g:0},callFunction:Vf}];function Xf(a,b){const c=b.h,d=b.Ja,e=b.Ma;switch(a.node.nodeType){case 1:const h=d.createElementNS(a.node.namespaceURI,a.node.nodeName);c.getAllAttributes(a.node).forEach(k=>e.setAttributeNS(h,k.namespaceURI,k.nodeName,k.value));for(var f of hb(c,a))a=Xf(f,b),e.insertBefore(h,a.node,null);return{node:h,G:null};case 2:return b=d.createAttributeNS(a.node.namespaceURI,a.node.nodeName),b.value=ib(c,a),{node:b,G:null};case 4:return{node:d.createCDATASection(ib(c,a)),G:null};case 8:return{node:d.createComment(ib(c,\na)),G:null};case 9:f=d.createDocument();for(const k of hb(c,a))a=Xf(k,b),e.insertBefore(f,a.node,null);return{node:f,G:null};case 7:return{node:d.createProcessingInstruction(a.node.target,ib(c,a)),G:null};case 3:return{node:d.createTextNode(ib(c,a)),G:null}}};function Yf(a,b){const c=b.Ma;var d=b.Ja;const e=b.h;if(cb(a.node))switch(a.node.nodeType){case 2:return d=d.createAttributeNS(a.node.namespaceURI,a.node.nodeName),d.value=ib(e,a),d;case 8:return d.createComment(ib(e,a));case 1:const f=a.node.prefix,h=a.node.localName,k=d.createElementNS(a.node.namespaceURI,f?f+\":\"+h:h);hb(e,a).forEach(l=>{l=Yf(l,b);c.insertBefore(k,l,null)});eb(e,a).forEach(l=>{c.setAttributeNS(k,l.node.namespaceURI,l.node.nodeName,ib(e,l))});k.normalize();return k;case 7:return d.createProcessingInstruction(a.node.target,\nib(e,a));case 3:return d.createTextNode(ib(e,a))}else return Xf(a,b).node}function Zf(a,b,c){let d=a;for(a=x(c,d);null!==a;){if(2===d.node.nodeType)b.push(d.node.nodeName);else{const e=hb(c,a);b.push(e.findIndex(f=>md(f,d)))}d=a;a=x(c,d)}return d}function $f(a,b,c){for(;0<b.length;){const d=b.pop();\"string\"===typeof d?a=eb(c,a).find(e=>e.node.nodeName===d):a=hb(c,a)[d]}return a.node}\nfunction ag(a,b,c){var d=a.node;if(!(cb(d)||c||a.G))return d;d=b.v;const e=[];if(c)return Yf(a,b);a=Zf(a,e,b.h);c=d.get(a.node);c||(c={node:Yf(a,b),G:null},d.set(a.node,c));return $f(c,e,b.h)};const bg=(a,b,c,d,e)=>d.N(f=>{var h;let k=\"\";for(let l=0;l<f.length;l++){const n=f[l],t=b.Ua&&v(n.type,53)?b.Ua.serializeToString(ag(n.value,b,!1)):null===(h=qc(w.m(n),b).map(u=>jd(u,1)).first())||void 0===h?void 0:h.value;t&&(k+=`{type: ${Da[n.type]}, value: ${t}}\\n`)}void 0!==e&&(k+=e.first().value);b.jb.trace(k);return w.create(f)});\nvar cg=[{j:[{type:59,g:2}],callFunction:bg,localName:\"trace\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:59,g:2}},{j:[{type:59,g:2},{type:1,g:3}],callFunction:bg,localName:\"trace\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:59,g:2}}];const dg=(a,b,c,d,e)=>{a=void 0===d||d.F()?new Sa(\"err\",\"http://www.w3.org/2005/xqt-errors\",\"FOER0000\"):d.first().value;b=\"\";void 0===e||e.F()||(b=`: ${e.first().value}`);throw Error(`${a.localName}${b}`);};\nvar eg=[{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"error\",j:[],i:{type:63,g:3},callFunction:dg},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"error\",j:[{type:23,g:0}],i:{type:63,g:3},callFunction:dg},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"error\",j:[{type:23,g:0},{type:1,g:3}],i:{type:63,g:3},callFunction:dg},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"error\",j:[{type:23,g:0},{type:1,g:3},{type:59,g:2}],i:{type:63,\ng:3},callFunction(){throw Error(\"Not implemented: Using an error object in error is not supported\");}}];function fg(a){return\"string\"===typeof a?a:(a=(new Za).getChildNodes(a).find(b=>8===b.nodeType))?a.data:\"some expression\"};var gg=class extends Error{constructor(a,b){super(a);this.position={end:{ha:b.end.ha,line:b.end.line,offset:b.end.offset},start:{ha:b.start.ha,line:b.start.line,offset:b.start.offset}}}};function hg(a,b){if(b instanceof Error)throw b;\"string\"!==typeof a&&(a=fg(a));const c=ig(b);a=a.replace(/\\r/g,\"\").split(\"\\n\");const d=Math.floor(Math.log10(Math.min(c.end.line+2,a.length)))+1;a=a.reduce((e,f,h)=>{var k=h+1;if(2<c.start.line-k||2<k-c.end.line)return e;h=`${Array(d).fill(\" \",0,Math.floor(Math.log10(k))+1-d).join(\"\")}${k}: `;e.push(`${h}${f}`);if(k>=c.start.line&&k<=c.end.line){const l=k<c.end.line?f.length+h.length:c.end.ha-1+h.length;k=k>c.start.line?h.length:c.start.ha-1+h.length;\nf=\" \".repeat(h.length)+Array.from(f.substring(0,k-h.length),n=>\"\\t\"===n?\"\\t\":\" \").join(\"\")+\"^\".repeat(l-k);e.push(f)}return e},[]);b=jg(b).join(\"\\n\");throw new gg(a.join(\"\\n\")+\"\\n\\n\"+b,c);};const kg=Object.create(null);function lg(a,b){const c=new Map;for(let d=0;d<a.length+1;++d)c.set(d,new Map);return function h(e,f){if(0===e)return f;if(0===f)return e;if(c.get(e).has(f))return c.get(e).get(f);var k=0;a[e-1]!==b[f-1]&&(k=1);k=Math.min(h(e-1,f)+1,h(e,f-1)+1,h(e-1,f-1)+k);c.get(e).set(f,k);return k}(a.length,b.length)}\nfunction mg(a){const b=kg[a]?kg[a]:Object.keys(kg).map(c=>({name:c,sb:lg(a,c.slice(c.lastIndexOf(\":\")+1))})).sort((c,d)=>c.sb-d.sb).slice(0,5).filter(c=>c.sb<a.length/2).reduce((c,d)=>c.concat(kg[d.name]),[]).slice(0,5);return b.length?b.map(c=>`\"Q{${c.namespaceURI}}${c.localName} (${c.j.map(d=>4===d?\"...\":Ha(d)).join(\", \")})\"`).reduce((c,d,e,f)=>0===e?c+d:c+((e!==f.length-1?\", \":\" or \")+d),\"Did you mean \")+\"?\":\"No similar functions found.\"}\nfunction ng(a,b,c){var d=kg[a+\":\"+b];return d?(d=d.find(e=>e.j.some(f=>4===f)?e.j.length-1<=c:e.j.length===c))?{j:d.j,arity:c,callFunction:d.callFunction,I:d.I,localName:b,namespaceURI:a,i:d.i}:null:null}function og(a,b,c,d,e){kg[a+\":\"+b]||(kg[a+\":\"+b]=[]);kg[a+\":\"+b].push({j:c,arity:c.length,callFunction:e,I:!1,localName:b,namespaceURI:a,i:d})};var pg={xml:\"http://www.w3.org/XML/1998/namespace\",xs:\"http://www.w3.org/2001/XMLSchema\",fn:\"http://www.w3.org/2005/xpath-functions\",map:\"http://www.w3.org/2005/xpath-functions/map\",array:\"http://www.w3.org/2005/xpath-functions/array\",math:\"http://www.w3.org/2005/xpath-functions/math\",fontoxpath:\"http://fontoxml.com/fontoxpath\",local:\"http://www.w3.org/2005/xquery-local-functions\"};var qg=class{constructor(a,b,c,d){this.Da=[Object.create(null)];this.Ea=Object.create(null);this.s=a;this.ia=Object.keys(b).reduce((e,f)=>{if(void 0===b[f])return e;e[f]=`Q{}${f}[0]`;return e},Object.create(null));this.o=Object.create(null);this.h=Object.create(null);this.v=c;this.l=d;this.D=[]}va(a,b,c){return ng(a,b,c)}eb(a,b){if(a)return null;a=this.ia[b];this.o[b]||(this.o[b]={name:b});return a}Sa(a,b){const c=this.l(a,b);if(c)this.D.push({cc:a,arity:b,Db:c});else if(\"\"===a.prefix){if(this.v)return{namespaceURI:this.v,\nlocalName:a.localName}}else if(b=this.$(a.prefix,!0))return{namespaceURI:b,localName:a.localName};return c}$(a,b=!0){if(!b)return null;if(pg[a])return pg[a];b=this.s(a);this.h[a]||(this.h[a]={namespaceURI:b,prefix:a});return void 0!==b||a?b:null}};var rg=(a,b)=>{a=2===a.node.nodeType?`${a.node.nodeName}=\"${ib(b,a)}\"`:a.node.outerHTML;return Error(`XQTY0024: The node ${a} follows a node that is not an attribute node or a namespace node.`)},sg=a=>Error(`XQDY0044: The node name \"${a.za()}\" is invalid for a computed attribute constructor.`),tg=()=>Error(\"XQST0045: Functions and variables may not be declared in one of the reserved namespace URIs.\"),ug=(a,b)=>Error(`XQST0049: The function or variable \"Q{${a}}${b}\" is declared more than once.`),vg=\n()=>Error(\"XQST0060: Functions declared in a module or as an external function must reside in a namespace.\"),wg=()=>Error(\"XQST0066: A Prolog may contain at most one default function namespace declaration.\"),xg=()=>Error(\"XQST0070: The prefixes xml and xmlns may not be used in a namespace declaration or be bound to another namespaceURI.\"),yg=a=>Error(`XQDY0074: The value \"${a}\" of a name expressions cannot be converted to an expanded QName.`),zg=a=>Error(`XPST0081: The prefix \"${a}\" could not be resolved`);function Ag(a,b){return`Q{${a||\"\"}}${b}`}function Bg(a,b){for(let c=a.length-1;0<=c;--c)if(b in a[c])return a[c][b]}function Ff(a){const b=new Cg(a.o);for(let c=0;c<a.h+1;++c)b.D=[Object.assign(Object.create(null),b.D[0],a.D[c])],b.Da=[Object.assign(Object.create(null),b.Da[0],a.Da[c])],b.l=Object.assign(Object.create(null),a.l),b.Ea=a.Ea,b.v=a.v;return b}function Dg(a){a.s++;a.h++;a.D[a.h]=Object.create(null);a.Da[a.h]=Object.create(null)}function Eg(a,b,c){return(a=a.Ea[Ag(b,c)])?a:null}\nfunction Fg(a,b,c,d,e){d=Ag(b,c)+\"~\"+d;if(a.l[d])throw ug(b,c);a.l[d]=e}function Gg(a,b,c){a.D[a.h][b]=c}function Hg(a,b,c){b=Ag(b||\"\",c);return a.Da[a.h][b]=`${b}[${a.s}]`}function Ig(a,b,c,d){a.Ea[`${Ag(b||\"\",c)}[${a.s}]`]=d}function Jg(a){a.D.length=a.h;a.Da.length=a.h;a.h--}\nvar Cg=class{constructor(a){this.o=a;this.s=this.h=0;this.D=[Object.create(null)];this.l=Object.create(null);this.v=null;this.Ea=a&&a.Ea;this.Da=a&&a.Da}va(a,b,c,d=!1){const e=this.l[Ag(a,b)+\"~\"+c];return!e||d&&e.wb?null===this.o?null:this.o.va(a,b,c,d):e}eb(a,b){const c=Bg(this.Da,Ag(a,b));return c?c:null===this.o?null:this.o.eb(a,b)}Sa(a,b){var c=a.prefix;const d=a.localName;return\"\"===c&&this.v?{localName:d,namespaceURI:this.v}:c&&(c=this.$(c,!1))?{localName:d,namespaceURI:c}:null===this.o?null:\nthis.o.Sa(a,b)}$(a,b=!0){const c=Bg(this.D,a||\"\");return void 0===c?null===this.o?void 0:this.o.$(a||\"\",b):c}};function F(a,b){\"*\"===b||Array.isArray(b)||(b=[b]);for(let c=1;c<a.length;++c){if(!Array.isArray(a[c]))continue;const d=a[c];if(\"*\"===b||b.includes(d[0]))return d}return null}function H(a){return 2>a.length?\"\":\"object\"===typeof a[1]?a[2]||\"\":a[1]||\"\"}function I(a,b){if(!Array.isArray(a))return null;a=a[1];return\"object\"!==typeof a||Array.isArray(a)?null:b in a?a[b]:null}function J(a,b){return b.reduce(F,a)}\nfunction K(a,b){const c=[];for(let d=1;d<a.length;++d){if(!Array.isArray(a[d]))continue;const e=a[d];\"*\"!==b&&e[0]!==b||c.push(e)}return c}function Kg(a){return{localName:H(a),namespaceURI:I(a,\"URI\"),prefix:I(a,\"prefix\")}}\nfunction Lg(a){const b=F(a,\"typeDeclaration\");if(!b||F(b,\"voidSequenceType\"))return{type:59,g:2};const c=f=>{switch(f[0]){case \"documentTest\":return 55;case \"elementTest\":return 54;case \"attributeTest\":return 47;case \"piTest\":return 57;case \"commentTest\":return 58;case \"textTest\":return 56;case \"anyKindTest\":return 53;case \"anyItemType\":return 59;case \"anyFunctionTest\":case \"functionTest\":case \"typedFunctionTest\":return 60;case \"anyMapTest\":case \"typedMapTest\":return 61;case \"anyArrayTest\":case \"typedArrayTest\":return 62;\ncase \"atomicType\":return Ia([I(f,\"prefix\"),H(f)].join(\":\"));case \"parenthesizedItemType\":return c(F(f,\"*\"));default:throw Error(`Type declaration \"${F(b,\"*\")[0]}\" is not supported.`);}};a={type:c(F(b,\"*\")),g:3};let d=null;const e=F(b,\"occurrenceIndicator\");e&&(d=H(e));switch(d){case \"*\":return a.g=2,a;case \"?\":return a.g=0,a;case \"+\":return a.g=1,a;case \"\":case null:return a}}function L(a,b,c){if(\"object\"!==typeof a[1]||Array.isArray(a[1])){const d={};d[b]=c;a.splice(1,0,d)}else a[1][b]=c};function Mg(a){const b={type:62,g:3};L(a,\"type\",b);return b};function Ng(a,b){if(!b||!b.ga)return{type:59,g:2};var c=F(a,\"EQName\");if(!c)return{type:59,g:2};var d=Kg(c);c=d.localName;const e=d.prefix;d=K(F(a,\"arguments\"),\"*\");c=b.ga.Sa({localName:c,prefix:e},d.length);if(!c)return{type:59,g:2};b=b.ga.va(c.namespaceURI,c.localName,d.length+1);if(!b)return{type:59,g:2};59!==b.i.type&&L(a,\"type\",b.i);return b.i};function M(a,b,c){return(a<<20)+(b<<12)+(c.charCodeAt(0)<<8)+c.charCodeAt(1)}\nvar Og={[M(2,2,\"idivOp\")]:5,[M(16,16,\"addOp\")]:16,[M(16,16,\"subtractOp\")]:16,[M(16,16,\"divOp\")]:4,[M(16,2,\"multiplyOp\")]:16,[M(16,2,\"divOp\")]:16,[M(2,16,\"multiplyOp\")]:16,[M(17,17,\"addOp\")]:17,[M(17,17,\"subtractOp\")]:17,[M(17,17,\"divOp\")]:4,[M(17,2,\"multiplyOp\")]:17,[M(17,2,\"divOp\")]:17,[M(2,17,\"multiplyOp\")]:17,[M(9,9,\"subtractOp\")]:17,[M(7,7,\"subtractOp\")]:17,[M(8,8,\"subtractOp\")]:17,[M(9,16,\"addOp\")]:9,[M(9,16,\"subtractOp\")]:9,[M(9,17,\"addOp\")]:9,[M(9,17,\"subtractOp\")]:9,[M(7,16,\"addOp\")]:7,[M(7,\n16,\"subtractOp\")]:7,[M(7,17,\"addOp\")]:7,[M(7,17,\"subtractOp\")]:7,[M(8,17,\"addOp\")]:8,[M(8,17,\"subtractOp\")]:8,[M(9,16,\"addOp\")]:9,[M(9,16,\"subtractOp\")]:9,[M(9,17,\"addOp\")]:9,[M(9,17,\"subtractOp\")]:9,[M(7,17,\"addOp\")]:7,[M(7,17,\"subtractOp\")]:7,[M(7,16,\"addOp\")]:7,[M(7,16,\"subtractOp\")]:7,[M(8,17,\"addOp\")]:8,[M(8,17,\"subtractOp\")]:8},Pg={[M(2,2,\"addOp\")]:(a,b)=>a+b,[M(2,2,\"subtractOp\")]:(a,b)=>a-b,[M(2,2,\"multiplyOp\")]:(a,b)=>a*b,[M(2,2,\"divOp\")]:(a,b)=>a/b,[M(2,2,\"modOp\")]:(a,b)=>a%b,[M(2,2,\"idivOp\")]:(a,\nb)=>Math.trunc(a/b),[M(16,16,\"addOp\")]:function(a,b){return new Kc(a.ea+b.ea)},[M(16,16,\"subtractOp\")]:function(a,b){return new Kc(a.ea-b.ea)},[M(16,16,\"divOp\")]:function(a,b){return a.ea/b.ea},[M(16,2,\"multiplyOp\")]:Mc,[M(16,2,\"divOp\")]:function(a,b){if(isNaN(b))throw Error(\"FOCA0005: Cannot divide xs:yearMonthDuration by NaN\");a=Math.round(a.ea/b);if(a>Number.MAX_SAFE_INTEGER||!Number.isFinite(a))throw Error(\"FODT0002: Value overflow while dividing xs:yearMonthDuration\");return new Kc(a<Number.MIN_SAFE_INTEGER||\n0===a?0:a)},[M(2,16,\"multiplyOp\")]:(a,b)=>Mc(b,a),[M(17,17,\"addOp\")]:function(a,b){return new yb(a.ca+b.ca)},[M(17,17,\"subtractOp\")]:function(a,b){return new yb(a.ca-b.ca)},[M(17,17,\"divOp\")]:function(a,b){if(0===b.ca)throw Error(\"FOAR0001: Division by 0\");return a.ca/b.ca},[M(17,2,\"multiplyOp\")]:Cb,[M(17,2,\"divOp\")]:function(a,b){if(isNaN(b))throw Error(\"FOCA0005: Cannot divide xs:dayTimeDuration by NaN\");a=a.ca/b;if(a>Number.MAX_SAFE_INTEGER||!Number.isFinite(a))throw Error(\"FODT0002: Value overflow while dividing xs:dayTimeDuration\");\nreturn new yb(a<Number.MIN_SAFE_INTEGER||Object.is(-0,a)?0:a)},[M(2,17,\"multiplyOp\")]:(a,b)=>Cb(b,a),[M(9,9,\"subtractOp\")]:Pb,[M(7,7,\"subtractOp\")]:Pb,[M(8,8,\"subtractOp\")]:Pb,[M(9,16,\"addOp\")]:Qb,[M(9,16,\"subtractOp\")]:Rb,[M(9,17,\"addOp\")]:Qb,[M(9,17,\"subtractOp\")]:Rb,[M(7,16,\"addOp\")]:Qb,[M(7,16,\"subtractOp\")]:Rb,[M(7,17,\"addOp\")]:Qb,[M(7,17,\"subtractOp\")]:Rb,[M(8,17,\"addOp\")]:Qb,[M(8,17,\"subtractOp\")]:Rb,[M(9,16,\"addOp\")]:Qb,[M(9,16,\"subtractOp\")]:Rb,[M(9,17,\"addOp\")]:Qb,[M(9,17,\"subtractOp\")]:Rb,\n[M(7,17,\"addOp\")]:Qb,[M(7,17,\"subtractOp\")]:Rb,[M(7,16,\"addOp\")]:Qb,[M(7,16,\"subtractOp\")]:Rb,[M(8,17,\"addOp\")]:Qb,[M(8,17,\"subtractOp\")]:Rb};function Qg(a,b){return v(a,5)&&v(b,5)?5:v(a,4)&&v(b,4)?4:v(a,6)&&v(b,6)?6:3}const Rg=[2,16,17,9,7,8];\nfunction Sg(a,b,c){function d(l,n){return{U:e?e(l):l,V:f?f(n):n}}let e=null,f=null;v(b,19)&&(e=l=>jd(l,3),b=3);v(c,19)&&(f=l=>jd(l,3),c=3);const h=Rg.filter(l=>v(b,l)),k=Rg.filter(l=>v(c,l));if(h.includes(2)&&k.includes(2)){const l=Pg[M(2,2,a)];let n=Og[M(2,2,a)];n||=Qg(b,c);\"divOp\"===a&&5===n&&(n=4);return\"idivOp\"===a?Tg(d,l)[0]:(t,u)=>{const {U:z,V:y}=d(t,u);return g(l(z.value,y.value),n)}}for(const l of h)for(const n of k){const t=Pg[M(l,n,a)],u=Og[M(l,n,a)];if(t&&void 0!==u)return(z,y)=>{const {U:G,\nV:N}=d(z,y);return g(t(G.value,N.value),u)}}}\nfunction Ug(a,b,c){function d(n,t){return{U:f?f(n):n,V:h?h(t):t}}var e=[2,53,59,46,47];if(e.includes(b)||e.includes(c))return 2;let f=null,h=null;v(b,19)&&(f=n=>jd(n,3),b=3);v(c,19)&&(h=n=>jd(n,3),c=3);var k=Rg.filter(n=>v(b,n));e=Rg.filter(n=>v(c,n));if(k.includes(2)&&e.includes(2)){var l=Og[M(2,2,a)];void 0===l&&(l=Qg(b,c));\"divOp\"===a&&5===l&&(l=4);return\"idivOp\"===a?Tg(d,(n,t)=>Math.trunc(n/t))[1]:l}for(l of k)for(const n of e)if(k=Og[M(l,n,a)],void 0!==k)return k}\nfunction Tg(a,b){return[(c,d)=>{const {U:e,V:f}=a(c,d);if(0===f.value)throw Error(\"FOAR0001: Divisor of idiv operator cannot be (-)0\");if(Number.isNaN(e.value)||Number.isNaN(f.value)||!Number.isFinite(e.value))throw Error(\"FOAR0002: One of the operands of idiv is NaN or the first operand is (-)INF\");return Number.isFinite(e.value)&&!Number.isFinite(f.value)?g(0,5):g(b(e.value,f.value),5)},5]}const Vg=Object.create(null);\nvar Wg=class extends D{constructor(a,b,c,d,e){super(b.o.add(c.o),[b,c],{B:!1},!1,d);this.A=b;this.L=c;this.l=a;this.s=e}h(a,b){return qc(C(this.A,a,b),b).N(c=>0===c.length?w.empty():qc(C(this.L,a,b),b).N(d=>{if(0===d.length)return w.empty();if(1<c.length||1<d.length)throw Error('XPTY0004: the operands of the \"'+this.l+'\" operator should be empty or singleton.');const e=c[0];d=d[0];if(this.s&&this.type)return w.m(this.s(e,d));var f=e.type;var h=d.type,k=this.l;const l=`${f}~${h}~${k}`;let n=Vg[l];\nn||=Vg[l]=Sg(k,f,h);f=n;if(!f)throw Error(`XPTY0004: ${this.l} not available for types ${Da[e.type]} and ${Da[d.type]}`);return w.m(f(e,d))}))}};function Xg(a,b){var c=O;let d=!1;for(var e=1;e<a.length;e++)switch(a[e][0]){case \"letClause\":Yg(b);var f=a[e],h=b,k=c,l=J(f,[\"letClauseItem\",\"typedVariableBinding\",\"varName\"]);l=Kg(l);f=J(f,[\"letClauseItem\",\"letExpr\"]);k=k(f[1],h);Zg(h,l.localName,k);break;case \"forClause\":d=!0;Yg(b);$g(a[e],b,c);break;case \"whereClause\":Yg(b);h=a[e];c(h,b);L(h,\"type\",{type:0,g:3});break;case \"orderByClause\":Yg(b);break;case \"returnClause\":e=a[e];h=c;c=J(e,[\"*\"]);b=h(c,b);L(c,\"type\",b);L(e,\"type\",b);c=b;if(!c)return{type:59,\ng:2};d&&(c={type:c.type,g:2});59!==c.type&&L(a,\"type\",c);return c;default:c=c(a[e],b);if(!c)return{type:59,g:2};d&&(c={type:c.type,g:2});59!==c.type&&L(a,\"type\",c);return c}if(0<b.h)b.h--,b.o.pop(),b.v.pop();else throw Error(\"Variable scope out of bound\");}\nfunction $g(a,b,c){const d=Kg(J(a,[\"forClauseItem\",\"typedVariableBinding\",\"varName\"]));if(a=J(a,[\"forClauseItem\",\"forExpr\",\"sequenceExpr\"]))a=K(a,\"*\").map(e=>c(e,b)),a.includes(void 0)||a.includes(null)||(a=ah(a),1===a.length&&Zg(b,d.localName,a[0]))}function ah(a){return a.filter((b,c,d)=>d.findIndex(e=>e.type===b.type&&e.g===b.g)===c)};function bh(a,b){if(!b||!b.ga)return{type:59,g:2};const c=F(a,\"functionName\");var d=Kg(c);let e=d.localName;var f=d.prefix;let h=d.namespaceURI;d=K(F(a,\"arguments\"),\"*\");if(null===h){f=b.ga.Sa({localName:e,prefix:f},d.length);if(!f)return{type:59,g:2};e=f.localName;h=f.namespaceURI;L(c,\"URI\",h);c[2]=e}b=b.ga.va(h,e,d.length);if(!b||63===b.i.type)return{type:59,g:2};59!==b.i.type&&L(a,\"type\",b.i);return b.i};function ch(a){const b={type:61,g:3};L(a,\"type\",b);return b};function dh(a,b){if(!b||!b.ga)return{type:59,g:2};const c=F(a,\"functionName\");var d=Kg(c);let e=d.localName;var f=d.namespaceURI;const h=d.prefix;d=Number(J(a,[\"integerConstantExpr\",\"value\"])[1]);if(!f){f=b.ga.Sa({localName:e,prefix:h},d);if(!f)return{type:59,g:2};e=f.localName;f=f.namespaceURI;L(c,\"URI\",f)}b=b.ga.va(f,e,d)||null;if(!b)return{type:59,g:2};59!==b.i.type&&63!==b.i.type&&L(a,\"type\",b.i);return b.i};function eh(a,b){var c=K(a,\"stepExpr\");if(!c)return{type:59,g:2};for(const f of c){a:{c=f;var d=b;let h=null;if(!c)break a;var e=K(c,\"*\");let k=\"\";for(const l of e)switch(l[0]){case \"filterExpr\":h=I(J(l,[\"*\"]),\"type\");break;case \"xpathAxis\":k=l[1];b:{switch(k){case \"attribute\":h={type:47,g:2};break b;case \"child\":case \"decendant\":case \"self\":case \"descendant-or-self\":case \"following-sibling\":case \"following\":case \"namespace\":case \"parent\":case \"ancestor\":case \"preceding-sibling\":case \"preceding\":case \"ancestor-or-self\":h=\n{type:53,g:2};break b}h=void 0}break;case \"nameTest\":e=Kg(l);if(null!==e.namespaceURI)break;if(\"attribute\"===k&&!e.prefix)break;e=d.$(e.prefix||\"\");void 0!==e&&L(l,\"URI\",e);break;case \"lookup\":h={type:59,g:2}}h&&59!==h.type&&L(c,\"type\",h)}d=I(f,\"type\")}d&&59!==d.type&&L(a,\"type\",d);return d};function fh(a){const b={type:0,g:3};L(a,\"type\",b);return b};function gh(a,b,c){0===b?b={type:53,g:2}:1===b?b=c[0]:c.includes(void 0)||c.includes(null)?b={type:59,g:2}:(b=ah(c),b=1<b.length?{type:59,g:2}:{type:b[0].type,g:2});b&&59!==b.type&&L(a,\"type\",b);return b};function hh(a,b,c,d){if(!b||c.includes(void 0))return{type:59,g:2};var e=K(a,\"typeswitchExprCaseClause\");for(let h=0;h<c.length;h++){var f=F(e[h],\"*\");switch(f[0]){case \"sequenceType\":if(f=ih(f,b,c[h]))return 59!==f.type&&L(a,\"type\",f),f;continue;case \"sequenceTypeUnion\":for(d=K(f,\"*\"),e=0;2>e;e++)if(f=ih(d[e],b,c[h]))return 59!==f.type&&L(a,\"type\",f),f;default:return{type:59,g:2}}}59!==d.type&&L(a,\"type\",d);return d}\nfunction ih(a,b,c){const d=K(a,\"*\"),e=F(a,\"atomicType\");if(!e)return{type:59,g:2};if(Ia(I(e,\"prefix\")+\":\"+e[2])===b.type)if(1===d.length){if(3===b.g)return c}else if(a=F(a,\"occurrenceIndicator\")[1],b.g===Ka(a))return c};function jh(a,b){O(a,b)}function O(a,b){var c=kh.get(a[0]);if(c)return c(a,b);for(c=1;c<a.length;c++)a[c]&&O(a[c],b)}\nconst lh=(a,b)=>{var c=O(F(a,\"firstOperand\")[1],b);const d=O(F(a,\"secondOperand\")[1],b);var e=a[0];if(c&&d)if(b=Ug(e,c.type,d.type))c={type:b,g:c.g},2!==b&&59!==b&&L(a,\"type\",c),a=c;else throw Error(`XPTY0004: ${e} not available for types ${Ha(c)} and ${Ha(d)}`);else a={type:2,g:3};return a},mh=(a,b)=>{O(F(a,\"firstOperand\")[1],b);O(F(a,\"secondOperand\")[1],b);a:{switch(a[0]){case \"orOp\":b={type:0,g:3};L(a,\"type\",b);a=b;break a;case \"andOp\":b={type:0,g:3};L(a,\"type\",b);a=b;break a}a=void 0}return a},\nnh=(a,b)=>{O(F(a,\"firstOperand\")[1],b);O(F(a,\"secondOperand\")[1],b);a:{switch(a[0]){case \"unionOp\":b={type:53,g:2};L(a,\"type\",b);a=b;break a;case \"intersectOp\":b={type:53,g:2};L(a,\"type\",b);a=b;break a;case \"exceptOp\":b={type:53,g:2};L(a,\"type\",b);a=b;break a}a=void 0}return a},oh=(a,b)=>{O(F(a,\"firstOperand\")[1],b);O(F(a,\"secondOperand\")[1],b);b={type:0,g:3};L(a,\"type\",b);return b},ph=(a,b)=>{O(F(a,\"firstOperand\")[1],b);O(F(a,\"secondOperand\")[1],b);b=I(J(a,[\"firstOperand\",\"*\"]),\"type\");const c=I(J(a,\n[\"secondOperand\",\"*\"]),\"type\");b={type:0,g:wc(b)||wc(c)?0:3};L(a,\"type\",b);return b},qh=(a,b)=>{O(F(a,\"firstOperand\")[1],b);O(F(a,\"secondOperand\")[1],b);b=I(J(a,[\"firstOperand\",\"*\"]),\"type\");const c=I(J(a,[\"secondOperand\",\"*\"]),\"type\");b={type:0,g:wc(b)||wc(c)?0:3};L(a,\"type\",b);return b},kh=new Map([[\"unaryMinusOp\",(a,b)=>{b=O(F(a,\"operand\")[1],b);b?v(b.type,2)?(b={type:b.type,g:b.g},L(a,\"type\",b),a=b):(b={type:3,g:3},L(a,\"type\",b),a=b):(b={type:2,g:2},L(a,\"type\",b),a=b);return a}],[\"unaryPlusOp\",\n(a,b)=>{b=O(F(a,\"operand\")[1],b);b?v(b.type,2)?(b={type:b.type,g:b.g},L(a,\"type\",b),a=b):(b={type:3,g:3},L(a,\"type\",b),a=b):(b={type:2,g:2},L(a,\"type\",b),a=b);return a}],[\"addOp\",lh],[\"subtractOp\",lh],[\"divOp\",lh],[\"idivOp\",lh],[\"modOp\",lh],[\"multiplyOp\",lh],[\"andOp\",mh],[\"orOp\",mh],[\"sequenceExpr\",(a,b)=>{const c=K(a,\"*\"),d=c.map(e=>O(e,b));return gh(a,c.length,d)}],[\"unionOp\",nh],[\"intersectOp\",nh],[\"exceptOp\",nh],[\"stringConcatenateOp\",(a,b)=>{O(F(a,\"firstOperand\")[1],b);O(F(a,\"secondOperand\")[1],\nb);b={type:1,g:3};L(a,\"type\",b);return b}],[\"rangeSequenceExpr\",(a,b)=>{O(F(a,\"startExpr\")[1],b);O(F(a,\"endExpr\")[1],b);b={type:5,g:1};L(a,\"type\",b);return b}],[\"equalOp\",oh],[\"notEqualOp\",oh],[\"lessThanOrEqualOp\",oh],[\"lessThanOp\",oh],[\"greaterThanOrEqualOp\",oh],[\"greaterThanOp\",oh],[\"eqOp\",ph],[\"neOp\",ph],[\"ltOp\",ph],[\"leOp\",ph],[\"gtOp\",ph],[\"geOp\",ph],[\"isOp\",qh],[\"nodeBeforeOp\",qh],[\"nodeAfterOp\",qh],[\"pathExpr\",(a,b)=>{const c=F(a,\"rootExpr\");c&&c[1]&&O(c[1],b);K(a,\"stepExpr\").map(d=>O(d,b));\nreturn eh(a,b)}],[\"contextItemExpr\",()=>({type:59,g:2})],[\"ifThenElseExpr\",(a,b)=>{var c=F(a,\"ifClause\")||F(K(a,\"x:stackTrace\")[0],\"ifClause\");const d=F(a,\"thenClause\")||F(K(a,\"x:stackTrace\")[1],\"thenClause\"),e=F(a,\"elseClause\")||F(K(a,\"x:stackTrace\")[2],\"elseClause\");O(F(c,\"*\"),b);c=O(F(d,\"*\"),b);b=O(F(e,\"*\"),b);c&&b?c.type===b.type&&c.g===b.g?(59!==c.type&&L(a,\"type\",c),a=c):a={type:59,g:2}:a={type:59,g:2};return a}],[\"instanceOfExpr\",(a,b)=>{O(F(a,\"argExpr\"),b);O(F(a,\"sequenceType\"),b);b={type:0,\ng:3};L(a,\"type\",b);return b}],[\"integerConstantExpr\",a=>{const b={type:5,g:3};L(a,\"type\",b);return b}],[\"doubleConstantExpr\",a=>{const b={type:3,g:3};L(a,\"type\",b);return b}],[\"decimalConstantExpr\",a=>{const b={type:4,g:3};L(a,\"type\",b);return b}],[\"stringConstantExpr\",a=>{const b={type:1,g:3};L(a,\"type\",b);return b}],[\"functionCallExpr\",(a,b)=>{const c=F(a,\"arguments\");K(c,\"*\").map(d=>O(d,b));return bh(a,b)}],[\"arrowExpr\",(a,b)=>{O(F(a,\"argExpr\")[1],b);return Ng(a,b)}],[\"dynamicFunctionInvocationExpr\",\n(a,b)=>{O(J(a,[\"functionItem\",\"*\"]),b);(a=F(a,\"arguments\"))&&O(a,b);return{type:59,g:2}}],[\"namedFunctionRef\",(a,b)=>dh(a,b)],[\"inlineFunctionExpr\",(a,b)=>{O(F(a,\"functionBody\")[1],b);b={type:60,g:3};L(a,\"type\",b);return b}],[\"castExpr\",a=>{var b=J(a,[\"singleType\",\"atomicType\"]);b={type:Ia(I(b,\"prefix\")+\":\"+b[2]),g:3};59!==b.type&&L(a,\"type\",b);return b}],[\"castableExpr\",a=>{const b={type:0,g:3};L(a,\"type\",b);return b}],[\"simpleMapExpr\",(a,b)=>{const c=K(a,\"pathExpr\");let d;for(let e=0;e<c.length;e++)d=\nO(c[e],b);void 0!==d&&null!==d?((b={type:d.type,g:2},59!==b.type)&&L(a,\"type\",b),a=b):a={type:59,g:2};return a}],[\"mapConstructor\",(a,b)=>{K(a,\"mapConstructorEntry\").map(c=>({key:O(J(c,[\"mapKeyExpr\",\"*\"]),b),value:O(J(c,[\"mapValueExpr\",\"*\"]),b)}));return ch(a)}],[\"arrayConstructor\",(a,b)=>{K(F(a,\"*\"),\"arrayElem\").map(c=>O(c,b));return Mg(a)}],[\"unaryLookup\",a=>{F(a,\"NCName\");return{type:59,g:2}}],[\"typeswitchExpr\",(a,b)=>{const c=O(F(a,\"argExpr\")[1],b),d=K(a,\"typeswitchExprCaseClause\").map(f=>O(J(f,\n[\"resultExpr\"])[1],b)),e=O(J(a,[\"typeswitchExprDefaultClause\",\"resultExpr\"])[1],b);return hh(a,c,d,e)}],[\"quantifiedExpr\",(a,b)=>{K(a,\"*\").map(c=>O(c,b));return fh(a)}],[\"x:stackTrace\",(a,b)=>{a=K(a,\"*\");return O(a[0],b)}],[\"queryBody\",(a,b)=>O(a[1],b)],[\"flworExpr\",(a,b)=>Xg(a,b)],[\"varRef\",(a,b)=>{const c=Kg(F(a,\"name\"));var d;a:{for(d=b.h;0<=d;d--){const e=b.o[d][c.localName];if(e){d=e;break a}}d=void 0}d&&59!==d.type&&L(a,\"type\",d);null===c.namespaceURI&&(b=b.$(c.prefix),void 0!==b&&L(a,\"URI\",\nb));return d}]]);function Yg(a){a.h++;a.o.push({});a.v.push({})}function Zg(a,b,c){if(a.o[a.h][b])throw Error(`Another variable of in the scope ${a.h} with the same name ${b} already exists`);a.o[a.h][b]=c}var rh=class{constructor(a){this.h=0;this.ga=a;this.o=[{}];this.v=[{}]}$(a){for(let b=this.h;0<=b;b--){const c=this.v[b][a];if(void 0!==c)return c}return this.ga?this.ga.$(a):void 0}};var sh=class extends D{constructor(a,b){super(new vf({external:1}),a,{B:a.every(c=>c.B)},!1,b);this.l=a}h(a,b){return 0===this.l.length?w.m(new pb([])):C(this.l[0],a,b).N(c=>w.m(new pb(c.map(d=>Ra(w.m(d))))))}};var th=class extends D{constructor(a,b){super(new vf({external:1}),a,{B:a.every(c=>c.B)},!1,b);this.l=a}h(a,b){return w.m(new pb(this.l.map(c=>Ra(C(c,a,b)))))}};function uh(a){if(null===a)throw lc(\"context is absent, it needs to be present to use axes.\");if(!v(a.type,53))throw Error(\"XPTY0020: Axes can only be applied to nodes.\");return a.value};function vh(a,b,c){let d=b;return{next:()=>{if(!d)return p;const e=d;d=x(a,e,c);return q(rb(e))}}}var wh=class extends D{constructor(a,b){b=b||{Qa:!1};super(a.o,[a],{R:\"reverse-sorted\",W:!1,subtree:!1,B:!1});this.l=a;this.s=!!b.Qa}h(a,b){b=b.h;a=uh(a.M);var c=this.l.D();c=c&&(c.startsWith(\"name-\")||\"type-1\"===c)?\"type-1\":null;return w.create(vh(b,this.s?a:x(b,a,c),c)).filter(d=>this.l.l(d))}};const xh=new Map([[\"type-1-or-type-2\",[\"name\",\"type-1\",\"type-2\"]],[\"type-1\",[\"name\"]],[\"type-2\",[\"name\"]]]);function yh(a,b){if(null===a)return b;if(null===b||a===b)return a;const c=a.startsWith(\"name-\")?\"name\":a,d=b.startsWith(\"name-\")?\"name\":b,e=xh.get(c);if(void 0!==e&&e.includes(d))return b;b=xh.get(d);return void 0!==b&&b.includes(c)?a:\"empty\"};var zh=class extends D{constructor(a,b){super(new vf({attribute:1}),[a],{R:\"unsorted\",subtree:!0,W:!0,B:!1});this.l=a;this.s=yh(this.l.D(),b)}h(a,b){b=b.h;a=uh(a.M);if(1!==a.node.nodeType)return w.empty();a=eb(b,a,this.s).filter(c=>\"http://www.w3.org/2000/xmlns/\"!==c.node.namespaceURI).map(c=>rb(c)).filter(c=>this.l.l(c));return w.create(a)}D(){return\"type-1\"}};var Ah=class extends D{constructor(a,b){super(a.o,[a],{R:\"sorted\",subtree:!0,W:!0,B:!1});this.s=a;this.l=yh(b,a.D())}h(a,b){const c=b.h,d=uh(a.M);a=d.node.nodeType;if(1!==a&&9!==a)return w.empty();let e=null,f=!1;return w.create({next:()=>{for(;!f;){if(!e){e=jb(c,d,this.l);if(!e){f=!0;continue}return q(rb(e))}if(e=lb(c,e,this.l))return q(rb(e));f=!0}return p}}).filter(h=>this.s.l(h))}};function Bh(a,b,c){const d=b.node.nodeType;if(1!==d&&9!==d)return{next:()=>p};let e=jb(a,b,c);return{next(){if(!e)return p;const f=e;e=lb(a,e,c);return q(f)}}};function Ch(a,b,c){const d=[kd(b)];return{next:e=>{0<d.length&&0!==(e&1)&&d.shift();if(!d.length)return p;for(e=d[0].next(0);e.done;){d.shift();if(!d.length)return p;e=d[0].next(0)}d.unshift(Bh(a,e.value,c));return q(rb(e.value))}}}\nvar Dh=class extends D{constructor(a,b){b=b||{Qa:!1};super(a.o,[a],{B:!1,W:!1,R:\"sorted\",subtree:!0});this.l=a;this.s=!!b.Qa;this.A=(a=this.l.D())&&(a.startsWith(\"name-\")||\"type-1\"===a)||\"type-1-or-type-2\"===a?\"type-1\":null}h(a,b){b=b.h;a=uh(a.M);a=Ch(b,a,this.A);this.s||a.next(0);return w.create(a).filter(c=>this.l.l(c))}};function Eh(a,b,c){var d=a.node.nodeType;if(1!==d&&9!==d)return a;for(d=kb(b,a,c);null!==d;){if(1!==d.node.nodeType)return d;a=d;d=kb(b,a,c)}return a}\nfunction Fh(a,b,c=!1,d){if(c){let f=b,h=!1;return{next:()=>{if(h)return p;if(md(f,b))return f=Eh(b,a,d),md(f,b)?(h=!0,p):q(rb(f));const k=f.node.nodeType,l=9===k||2===k?null:mb(a,f,d);if(null!==l)return f=Eh(l,a,d),q(rb(f));f=9===k?null:x(a,f,d);return md(f,b)?(h=!0,p):q(rb(f))}}}const e=[Bh(a,b,d)];return{next:()=>{if(!e.length)return p;let f=e[0].next(0);for(;f.done;){e.shift();if(!e.length)return p;f=e[0].next(0)}e.unshift(Bh(a,f.value,d));return q(rb(f.value))}}};function Gh(a,b,c){const d=[];for(;b&&9!==b.node.nodeType;b=x(a,b,null)){const f=lb(a,b,c);f&&d.push(f)}let e=null;return{next:()=>{for(;e||d.length;){if(!e){e=Fh(a,d[0],!1,c);var f=q(rb(d[0]));const h=lb(a,d[0],c);h?d[0]=h:d.shift();return f}f=e.next(0);if(f.done)e=null;else return f}return p}}}\nvar Hh=class extends D{constructor(a){super(a.o,[a],{R:\"sorted\",W:!0,subtree:!1,B:!1});this.l=a;this.s=(a=this.l.D())&&(a.startsWith(\"name-\")||\"type-1\"===a)?\"type-1\":null}h(a,b){b=b.h;a=uh(a.M);return w.create(Gh(b,a,this.s)).filter(c=>this.l.l(c))}};function Ih(a,b,c){return{next:()=>(b=b&&lb(a,b,c))?q(rb(b)):p}}var Jh=class extends D{constructor(a,b){super(a.o,[a],{R:\"sorted\",W:!0,subtree:!1,B:!1});this.l=a;this.s=yh(this.l.D(),b)}h(a,b){b=b.h;a=uh(a.M);return w.create(Ih(b,a,this.s)).filter(c=>this.l.l(c))}};var Kh=class extends D{constructor(a,b){super(a.o,[a],{R:\"reverse-sorted\",W:!0,subtree:!0,B:!1});this.l=a;this.s=yh(b,this.l.D())}h(a,b){b=b.h;a=uh(a.M);a=x(b,a,this.s);if(!a)return w.empty();a=rb(a);return this.l.l(a)?w.m(a):w.empty()}};function Lh(a,b,c){const d=[];for(;b&&9!==b.node.nodeType;b=x(a,b,null)){const f=mb(a,b,c);null!==f&&d.push(f)}let e=null;return{next:()=>{for(;e||d.length;){e||=Fh(a,d[0],!0,c);var f=e.next(0);if(f.done){e=null;f=mb(a,d[0],c);const h=q(rb(d[0]));null===f?d.shift():d[0]=f;return h}return f}return p}}}\nvar Mh=class extends D{constructor(a){super(a.o,[a],{B:!1,W:!0,R:\"reverse-sorted\",subtree:!1});this.l=a;this.s=(a=this.l.D())&&(a.startsWith(\"name-\")||\"type-1\"===a)?\"type-1\":null}h(a,b){b=b.h;a=uh(a.M);return w.create(Lh(b,a,this.s)).filter(c=>this.l.l(c))}};function Nh(a,b,c){return{next:()=>(b=b&&mb(a,b,c))?q(rb(b)):p}}var Oh=class extends D{constructor(a,b){super(a.o,[a],{B:!1,W:!0,R:\"reverse-sorted\",subtree:!1});this.l=a;this.s=yh(this.l.D(),b)}h(a,b){b=b.h;a=uh(a.M);return w.create(Nh(b,a,this.s)).filter(c=>this.l.l(c))}};var Ph=class extends D{constructor(a,b){super(a.o,[a],{R:\"sorted\",subtree:!0,W:!0,B:!1});this.l=a;this.s=yh(this.l.D(),b)}h(a){uh(a.M);return this.l.l(a.M)?w.m(a.M):w.empty()}D(){return this.s}};var Qh=class extends rf{constructor(a,b,c,d){super(a.o.add(b.o).add(c.o),[a,b,c],{B:a.B&&b.B&&c.B,W:b.W===c.W&&b.W,R:b.ia===c.ia?b.ia:\"unsorted\",subtree:b.subtree===c.subtree&&b.subtree},d);this.l=a}A(a,b,c){let d=null;const e=c[0](a);return w.create({next:f=>{d||(d=(e.fa()?c[1](a):c[2](a)).value);return d.next(f)}})}v(a){super.v(a);if(this.l.I)throw Oe();}};function ig(a){return a.h instanceof Error?a.location:ig(a.h)}function jg(a){let b;b=a.h instanceof gg?[\"Inner error:\",a.h.message]:a.h instanceof Error?[a.h.toString()]:jg(a.h);b.push(` at <${a.o}${a.Wa?` (${a.Wa})`:\"\"}>:${a.location.start.line}:${a.location.start.ha} - ${a.location.end.line}:${a.location.end.ha}`);return b}var Rh=class{constructor(a,b,c,d){this.location=a;this.o=b;this.Wa=c;this.h=d}};var Sh=class extends rf{constructor(a,b,c,d){super(c.o,[c],{B:c.B,W:c.W,R:c.ia,subtree:c.subtree});this.L=b;this.P={end:{ha:a.end.ha,line:a.end.line,offset:a.end.offset},start:{ha:a.start.ha,line:a.start.line,offset:a.start.offset}};this.l=d}A(a,b,[c]){let d;try{d=c(a)}catch(e){throw new Rh(this.P,this.L,this.l,e);}return w.create({next:e=>{try{return d.value.next(e)}catch(f){throw new Rh(this.P,this.L,this.l,f);}}})}v(a){try{super.v(a)}catch(b){throw new Rh(this.P,this.L,this.l,b);}}D(){return this.Fa[0].D()}};function Th(a,b,c,d){let e=[];const f=a.L(b,c,d,k=>{if(a.l instanceof Uh){const n=Th(a.l,b,k,d);return pf(n,t=>e=t)}let l=null;return w.create({next:()=>{for(;;){if(!l){var n=k.next(0);if(n.done)return p;n=a.l.s(n.value,d);l=pf(n,t=>e=mf(e,t)).value}n=l.next(0);if(n.done)l=null;else return n}}})});let h=!1;return{next:()=>{if(h)return p;const k=f.O();h=!0;return q(new Ze(k,e))}}}\nfunction Vh(a,b,c,d){return a.L(b,c,d,e=>{if(a.l instanceof Uh)return Vh(a.l,b,e,d);let f=null;return w.create({next:()=>{for(;;){if(!f){var h=e.next(0);if(h.done)return p;f=C(a.l,h.value,d).value}h=f.next(0);if(h.done)f=null;else return h}}})})}\nvar Uh=class extends D{constructor(a,b,c,d){super(a,b,c,!0);this.l=d;this.I=this.l.I}h(a,b){return this.L(a,kd(a),b,c=>{if(this.l instanceof Uh)return Vh(this.l,a,c,b);let d=null;return w.create({next:e=>{for(;;){if(!d){var f=c.next(0);if(f.done)return p;d=C(this.l,f.value,b).value}f=d.next(e);if(f.done)d=null;else return f}}})})}s(a,b){return Th(this,a,kd(a),b)}v(a){super.v(a);this.I=this.l.I;for(const b of this.Fa)if(b!==this.l&&b.I)throw Oe();}};var Wh=class extends Uh{constructor(a,b,c,d){super(b.o.add(d.o),[b,d],{B:!1},d);this.P=a.prefix;this.ma=a.namespaceURI;this.Pb=a.localName;this.yb=null;this.A=c;this.La=null;this.ya=b}L(a,b,c,d){let e=null,f=null,h=0;return d({next:()=>{for(;;){if(!e){var k=b.next(0);if(k.done)return p;f=k.value;h=0;e=C(this.ya,f,c).value}const l=e.next(0);if(l.done)e=null;else return h++,k={[this.yb]:()=>w.m(l.value)},this.La&&(k[this.La]=()=>w.m(new Ca(5,h))),q(hc(f,k))}}})}v(a){if(this.P&&(this.ma=a.$(this.P),\n!this.ma&&this.P))throw Error(`XPST0081: Could not resolve namespace for prefix ${this.P} in a for expression`);this.ya.v(a);Dg(a);this.yb=Hg(a,this.ma,this.Pb);if(this.A){if(this.A.prefix&&(this.A.namespaceURI=a.$(this.A.prefix),!this.A.namespaceURI&&this.A.prefix))throw Error(`XPST0081: Could not resolve namespace for prefix ${this.P} in the positionalVariableBinding in a for expression`);this.La=Hg(a,this.A.namespaceURI,this.A.localName)}this.l.v(a);Jg(a);if(this.ya.I)throw Oe();this.l.I&&(this.I=\n!0)}};var Xh=class extends D{constructor(a,b,c){super(new vf({external:1}),[c],{B:!1,R:\"unsorted\"});this.P=a.map(({name:d})=>d);this.A=a.map(({type:d})=>d);this.s=null;this.L=b;this.l=c}h(a,b){const c=new Va({j:this.A,arity:this.A.length,Ya:!0,I:this.l.I,localName:\"dynamic-function\",namespaceURI:\"\",i:this.L,value:(d,e,f,...h)=>{d=hc(bc(a,-1,null,w.empty()),this.s.reduce((k,l,n)=>{k[l]=Ra(h[n]);return k},Object.create(null)));return C(this.l,d,b)}});return w.m(c)}v(a){Dg(a);this.s=this.P.map(b=>Hg(a,b.namespaceURI,\nb.localName));this.l.v(a);Jg(a);if(this.l.I)throw Error(\"Not implemented: inline functions can not yet be updating.\");}};var Yh=class extends Uh{constructor(a,b,c){super(b.o.add(c.o),[b,c],{B:!1,W:c.W,R:c.ia,subtree:c.subtree},c);if(a.prefix||a.namespaceURI)throw Error(\"Not implemented: let expressions with namespace usage.\");this.A=a.prefix;this.P=a.namespaceURI;this.La=a.localName;this.ma=b;this.ya=null}L(a,b,c,d){return d({next:()=>{var e=b.next(0);if(e.done)return p;e=e.value;e=hc(e,{[this.ya]:Ra(C(this.ma,e,c))});return q(e)}})}v(a){if(this.A&&(this.P=a.$(this.A),!this.P&&this.A))throw Error(`XPST0081: Could not resolve namespace for prefix ${this.A} using in a for expression`);\nthis.ma.v(a);Dg(a);this.ya=Hg(a,this.P,this.La);this.l.v(a);Jg(a);this.I=this.l.I;if(this.ma.I)throw Oe();}};var Zh=class extends D{constructor(a,b){super(new vf({}),[],{B:!0,R:\"sorted\"},!1,b);let c;switch(b.type){case 5:c=g(parseInt(a,10),b.type);break;case 1:c=g(a,b.type);break;case 4:case 3:c=g(parseFloat(a),b.type);break;default:throw new TypeError(\"Type \"+b+\" not expected in a literal\");}this.l=()=>w.m(c)}h(){return this.l()}};var $h=class extends D{constructor(a,b){super(new vf({external:1}),a.reduce((c,{key:d,value:e})=>c.concat(d,e),[]),{B:!1},!1,b);this.l=a}h(a,b){const c=this.l.map(d=>qc(C(d.key,a,b),b).X({default:()=>{throw Error(\"XPTY0004: A key of a map should be a single atomizable value.\");},m:e=>e}));return A(c,d=>w.m(new ub(d.map((e,f)=>({key:e,value:Ra(C(this.l[f].value,a,b))})))))}};var ai=class extends D{constructor(a,b,c){super(new vf({external:1}),[],{B:!0},!1,c);this.s=b;this.A=a;this.l=null}h(){const a=new Va({j:this.l.j,I:this.l.I,arity:this.s,localName:this.l.localName,namespaceURI:this.l.namespaceURI,i:this.l.i,value:this.l.callFunction});return w.m(a)}v(a){let b=this.A.namespaceURI,c=this.A.localName;const d=this.A.prefix;if(null===b){const e=a.Sa({localName:c,prefix:d},this.s);if(!e)throw Error(`XPST0017: The function ${d?d+\":\":\"\"}${c} with arity ${this.s} could not be resolved. ${mg(c)}`);\nb=e.namespaceURI;c=e.localName}this.l=a.va(b,c,this.s)||null;if(!this.l)throw a=this.A,Error(`XPST0017: Function ${`${a.namespaceURI?`Q{${a.namespaceURI}}`:a.prefix?`${a.prefix}:`:\"\"}${a.localName}`} with arity of ${this.s} not registered. ${mg(c)}`);super.v(a)}};const bi={[5]:5,[27]:5,[28]:5,[31]:5,[32]:5,[33]:5,[34]:5,[30]:5,[36]:5,[35]:5,[38]:5,[37]:5,[29]:5,[4]:4,[6]:6,[3]:3};\nvar ci=class extends D{constructor(a,b,c){super(b.o,[b],{B:!1},!1,c);this.s=b;this.l=a}h(a,b){return qc(C(this.s,a,b),b).N(c=>{if(0===c.length)return w.empty();var d=c[0];if(this.type)return c=\"+\"===this.l?+d.value:-d.value,0===d.type&&(c=Number.NaN),w.m(g(c,this.type.type));if(1<c.length)throw Error(\"XPTY0004: The operand to a unary operator must be a sequence with a length less than one\");return v(d.type,19)?(d=jd(d,3).value,w.m(g(\"+\"===this.l?d:-d,3))):v(d.type,2)?\"+\"===this.l?w.m(d):w.m(g(-1*\nd.value,bi[d.type])):w.m(g(Number.NaN,3))})}};var di=class extends D{constructor(a,b){super(a.reduce((c,d)=>c.add(d.o),new vf({})),a,{B:a.every(c=>c.B)},!1,b);this.l=a;this.s=a.reduce((c,d)=>yh(c,d.D()),null)}h(a,b){let c=0,d=null,e=!1,f=null;if(null!==a){const h=a.M;null!==h&&v(h.type,53)&&(f=Xa(h.value))}return w.create({next:()=>{if(!e){for(;c<this.l.length;){if(!d){const h=this.l[c];if(null!==f&&null!==h.D()&&!f.includes(h.D()))return c++,e=!0,q(wa);d=C(h,a,b)}if(!1===d.fa())return e=!0,q(wa);d=null;c++}e=!0;return q(va)}return p}})}D(){return this.s}};var ei=class extends D{constructor(a,b){super(a.reduce((d,e)=>0<uf(d,e.o)?d:e.o,new vf({})),a,{B:a.every(d=>d.B)},!1,b);let c;for(b=0;b<a.length;++b){void 0===c&&(c=a[b].D());if(null===c)break;if(c!==a[b].D()){c=null;break}}this.s=c;this.l=a}h(a,b){let c=0,d=null,e=!1,f=null;if(null!==a){const h=a.M;null!==h&&v(h.type,53)&&(f=Xa(h.value))}return w.create({next:()=>{if(!e){for(;c<this.l.length;){if(!d){const h=this.l[c];if(null!==f&&null!==h.D()&&!f.includes(h.D())){c++;continue}d=C(h,a,b)}if(!0===\nd.fa())return e=!0,q(va);d=null;c++}e=!0;return q(wa)}return p}})}D(){return this.s}};function fi(a,b){let c;return w.create({next:d=>{for(;;){if(!c){var e=a.value.next(d);if(e.done)return p;c=pc(e.value,b)}e=c.value.next(d);if(e.done)c=null;else return e}}})};function gi(a,b){if(\"eqOp\"===a)return(c,d)=>{const {U:e,V:f}=b(c,d);return e.value.namespaceURI===f.value.namespaceURI&&e.value.localName===f.value.localName};if(\"neOp\"===a)return(c,d)=>{const {U:e,V:f}=b(c,d);return e.value.namespaceURI!==f.value.namespaceURI||e.value.localName!==f.value.localName};throw Error('XPTY0004: Only the \"eq\" and \"ne\" comparison is defined for xs:QName');}\nfunction hi(a,b){switch(a){case \"eqOp\":return(c,d)=>{const {U:e,V:f}=b(c,d);return e.value===f.value};case \"neOp\":return(c,d)=>{const {U:e,V:f}=b(c,d);return e.value!==f.value};case \"ltOp\":return(c,d)=>{const {U:e,V:f}=b(c,d);return e.value<f.value};case \"leOp\":return(c,d)=>{const {U:e,V:f}=b(c,d);return e.value<=f.value};case \"gtOp\":return(c,d)=>{const {U:e,V:f}=b(c,d);return e.value>f.value};case \"geOp\":return(c,d)=>{const {U:e,V:f}=b(c,d);return e.value>=f.value}}}\nfunction ii(a,b){switch(a){case \"ltOp\":return(c,d)=>{const {U:e,V:f}=b(c,d);return e.value.ea<f.value.ea};case \"leOp\":return(c,d)=>{const {U:e,V:f}=b(c,d);return vb(e.value,f.value)||e.value.ea<f.value.ea};case \"gtOp\":return(c,d)=>{const {U:e,V:f}=b(c,d);return e.value.ea>f.value.ea};case \"geOp\":return(c,d)=>{const {U:e,V:f}=b(c,d);return vb(e.value,f.value)||e.value.ea>f.value.ea}}}\nfunction ji(a,b){switch(a){case \"eqOp\":return(c,d)=>{const {U:e,V:f}=b(c,d);return vb(e.value,f.value)};case \"ltOp\":return(c,d)=>{const {U:e,V:f}=b(c,d);return e.value.ca<f.value.ca};case \"leOp\":return(c,d)=>{const {U:e,V:f}=b(c,d);return vb(e.value,f.value)||e.value.ca<f.value.ca};case \"gtOp\":return(c,d)=>{const {U:e,V:f}=b(c,d);return e.value.ca>f.value.ca};case \"geOp\":return(c,d)=>{const {U:e,V:f}=b(c,d);return vb(e.value,f.value)||e.value.ca>f.value.ca}}}\nfunction ki(a,b){switch(a){case \"eqOp\":return(c,d)=>{const {U:e,V:f}=b(c,d);return vb(e.value,f.value)};case \"neOp\":return(c,d)=>{const {U:e,V:f}=b(c,d);return!vb(e.value,f.value)}}}\nfunction li(a,b){switch(a){case \"eqOp\":return(c,d,e)=>{const {U:f,V:h}=b(c,d);return Ob(f.value,h.value,fc(e))};case \"neOp\":return(c,d,e)=>{const {U:f,V:h}=b(c,d);return!Ob(f.value,h.value,fc(e))};case \"ltOp\":return(c,d,e)=>{const {U:f,V:h}=b(c,d);c=fc(e);return 0>Nb(f.value,h.value,c)};case \"leOp\":return(c,d,e)=>{const {U:f,V:h}=b(c,d);(c=Ob(f.value,h.value,fc(e)))||(e=fc(e),c=0>Nb(f.value,h.value,e));return c};case \"gtOp\":return(c,d,e)=>{const {U:f,V:h}=b(c,d);c=fc(e);return 0<Nb(f.value,h.value,\nc)};case \"geOp\":return(c,d,e)=>{const {U:f,V:h}=b(c,d);(c=Ob(f.value,h.value,fc(e)))||(e=fc(e),c=0<Nb(f.value,h.value,e));return c}}}function mi(a,b){switch(a){case \"eqOp\":return(c,d,e)=>{const {U:f,V:h}=b(c,d);return Ob(f.value,h.value,fc(e))};case \"neOp\":return(c,d,e)=>{const {U:f,V:h}=b(c,d);return!Ob(f.value,h.value,fc(e))}}}\nfunction ni(a,b,c){function d(n,t){return{U:h?h(n):n,V:k?k(t):t}}function e(n){return v(b,n)&&v(c,n)}function f(n){return 0<n.filter(t=>v(b,t)).length&&0<n.filter(t=>v(c,t)).length}let h=null,k=null;v(b,19)&&v(c,19)?b=c=1:v(b,19)?(h=n=>jd(n,c),b=c):v(c,19)&&(k=n=>jd(n,b),c=b);if(v(b,23)&&v(c,23))return gi(a,d);if(e(0)||f([1,47,61])||f([2,47,61])||e(20)||e(22)||e(21)||f([1,20])){var l=hi(a,d);if(void 0!==l)return l}if(e(16)&&(l=ii(a,d),void 0!==l)||e(17)&&(l=ji(a,d),void 0!==l)||e(18)&&(l=ki(a,d),\nvoid 0!==l))return l;if(e(9)||e(7)||e(8))if(l=li(a,d),void 0!==l)return l;if(e(11)||e(12)||e(13)||e(14)||e(15))if(l=mi(a,d),void 0!==l)return l;throw Error(`XPTY0004: ${a} not available for ${Da[b]} and ${Da[c]}`);}const oi=Object.create(null);function pi(a,b,c){const d=`${b}~${c}~${a}`;let e=oi[d];e||=oi[d]=ni(a,b,c);return e}\nvar qi=class extends D{constructor(a,b,c){super(b.o.add(c.o),[b,c],{B:!1});this.l=b;this.A=c;this.s=a}h(a,b){const c=C(this.l,a,b),d=C(this.A,a,b),e=fi(c,b),f=fi(d,b);return e.X({empty:()=>w.empty(),m:()=>f.X({empty:()=>w.empty(),m:()=>{const h=e.first(),k=f.first();return pi(this.s,h.type,k.type)(h,k,a)?w.aa():w.T()},multiple:()=>{throw Error(\"XPTY0004: Sequences to compare are not singleton.\");}}),multiple:()=>{throw Error(\"XPTY0004: Sequences to compare are not singleton.\");}})}};const ri={equalOp:\"eqOp\",notEqualOp:\"neOp\",lessThanOrEqualOp:\"leOp\",lessThanOp:\"ltOp\",greaterThanOrEqualOp:\"geOp\",greaterThanOp:\"gtOp\"};\nfunction si(a,b,c,d){a=ri[a];return c.N(e=>b.filter(f=>{for(let l=0,n=e.length;l<n;++l){let t=e[l],u=void 0,z=void 0;var h=f.type,k=t.type;if(v(h,19)||v(k,19))v(h,2)?u=3:v(k,2)?z=3:v(h,17)?u=17:v(k,17)?z=17:v(h,16)?u=16:v(k,16)?z=16:v(h,19)?z=k:v(k,19)&&(u=h);const [y,G]=[z,u];h=y;k=G;h?f=jd(f,h):k&&(t=jd(t,k));if(pi(a,f.type,t.type)(f,t,d))return!0}return!1}).X({default:()=>w.aa(),empty:()=>w.T()}))}\nvar ti=class extends D{constructor(a,b,c){super(b.o.add(c.o),[b,c],{B:!1});this.l=b;this.A=c;this.s=a}h(a,b){const c=C(this.l,a,b),d=C(this.A,a,b);return c.X({empty:()=>w.T(),default:()=>d.X({empty:()=>w.T(),default:()=>{const e=fi(c,b),f=fi(d,b);return si(this.s,e,f,a)}})})}};function ui(a,b,c,d){if(!v(c,53)||!v(d,53))throw Error(\"XPTY0004: Sequences to compare are not nodes\");switch(a){case \"isOp\":return vi(c,d);case \"nodeBeforeOp\":return b?(e,f)=>0>sd(b,e.first(),f.first()):void 0;case \"nodeAfterOp\":return b?(e,f)=>0<sd(b,e.first(),f.first()):void 0;default:throw Error(\"Unexpected operator\");}}function vi(a,b){return a!==b||47!==a&&53!==a&&54!==a&&55!==a&&56!==a&&57!==a&&58!==a?()=>!1:(c,d)=>md(c.first().value,d.first().value)}\nvar wi=class extends D{constructor(a,b,c){super(b.o.add(c.o),[b,c],{B:!1});this.l=b;this.A=c;this.s=a}h(a,b){const c=C(this.l,a,b),d=C(this.A,a,b);return c.X({empty:()=>w.empty(),multiple:()=>{throw Error(\"XPTY0004: Sequences to compare are not singleton\");},m:()=>d.X({empty:()=>w.empty(),multiple:()=>{throw Error(\"XPTY0004: Sequences to compare are not singleton\");},m:()=>{const e=c.first(),f=d.first();return ui(this.s,b.h,e.type,f.type)(c,d,a)?w.aa():w.T()}})})}};function xi(a,b,c,d){return c.N(e=>{if(e.some(f=>!v(f.type,53)))throw Error(`XPTY0004: Sequences given to ${a} should only contain nodes.`);return\"sorted\"===d?w.create(e):\"reverse-sorted\"===d?w.create(e.reverse()):w.create(td(b,e))})}\nvar yi=class extends D{constructor(a,b,c,d){super(0<uf(b.o,c.o)?b.o:c.o,[b,c],{B:b.B&&c.B},!1,d);this.l=a;this.s=b;this.A=c}h(a,b){const c=xi(this.l,b.h,C(this.s,a,b),this.s.ia);a=xi(this.l,b.h,C(this.A,a,b),this.A.ia);const d=c.value,e=a.value;let f=null,h=null,k=!1,l=!1;return w.create({next:()=>{if(k)return p;for(;!l;){if(!f){var n=d.next(0);if(n.done)return k=!0,p;f=n.value}if(!h){n=e.next(0);if(n.done){l=!0;break}h=n.value}if(md(f.value,h.value)){if(n=q(f),h=f=null,\"intersectOp\"===this.l)return n}else if(0>\nsd(b.h,f,h)){if(n=q(f),f=null,\"exceptOp\"===this.l)return n}else h=null}if(\"exceptOp\"===this.l)return null!==f?(n=q(f),f=null,n):d.next(0);k=!0;return p}})}};var zi=class extends rf{constructor(a,b){super(a.reduce((c,d)=>c.add(d.o),new vf({})),a,{R:\"unsorted\",B:a.every(c=>c.B)},b)}A(a,b,c){return c.length?jc(c.map(d=>d(a))):w.empty()}};var Ai=class extends D{constructor(a,b,c){super((new vf({})).add(a.o),[a,b],{B:a.B&&b.B},!1,c);this.l=a;this.s=b}h(a,b){const c=C(this.l,a,b),d=dc(a,c);let e=null,f=null,h=!1;return w.create({next:k=>{for(;!h;){if(!e&&(e=d.next(k),e.done))return h=!0,p;f||=C(this.s,e.value,b);const l=f.value.next(k);if(l.done)e=f=null;else return l}}})}};var Bi=class extends D{constructor(a,b,c){super(a.o,[a],{B:!1});this.l=Ia(b.prefix?`${b.prefix}:${b.localName}`:b.localName);if(46===this.l||45===this.l||44===this.l)throw Error(\"XPST0080: Casting to xs:anyAtomicType, xs:anySimpleType or xs:NOTATION is not permitted.\");if(b.namespaceURI)throw Error(\"Not implemented: castable as expressions with a namespace URI.\");this.A=a;this.s=c}h(a,b){const c=qc(C(this.A,a,b),b);return c.X({empty:()=>this.s?w.aa():w.T(),m:()=>c.map(d=>id(d,this.l).u?va:wa),multiple:()=>\nw.T()})}};var Ci=class extends D{constructor(a,b,c){super(a.o,[a],{B:!1});this.l=Ia(b.prefix?`${b.prefix}:${b.localName}`:b.localName);if(46===this.l||45===this.l||44===this.l)throw Error(\"XPST0080: Casting to xs:anyAtomicType, xs:anySimpleType or xs:NOTATION is not permitted.\");if(b.namespaceURI)throw Error(\"Not implemented: casting expressions with a namespace URI.\");this.A=a;this.s=c}h(a,b){const c=qc(C(this.A,a,b),b);return c.X({empty:()=>{if(!this.s)throw Error(\"XPTY0004: Sequence to cast is empty while target type is singleton.\");\nreturn w.empty()},m:()=>c.map(d=>jd(d,this.l)),multiple:()=>{throw Error(\"XPTY0004: Sequence to cast is not singleton or empty.\");}})}};function Di(a,b){const c=a.value;let d=null,e=!1;return w.create({next:()=>{for(;!e;){if(!d){var f=c.next(0);if(f.done)return e=!0,q(va);d=b(f.value)}f=d.fa();d=null;if(!1===f)return e=!0,q(wa)}return p}})};var Ei=class extends D{constructor(a,b,c,d){super(a.o,[a],{B:!1},!1,d);this.A=a;this.s=b;this.l=c}h(a,b){const c=C(this.A,a,b);return c.X({empty:()=>\"?\"===this.l||\"*\"===this.l?w.aa():w.T(),multiple:()=>\"+\"===this.l||\"*\"===this.l?Di(c,d=>{const e=w.m(d);d=bc(a,0,d,e);return C(this.s,d,b)}):w.T(),m:()=>Di(c,d=>{const e=w.m(d);d=bc(a,0,d,e);return C(this.s,d,b)})})}};function Fi(a,b){return null!==a&&null!==b&&v(a.type,53)&&v(b.type,53)?md(a.value,b.value):!1}function Gi(a){let b=a.next(0);if(b.done)return w.empty();let c=null,d=null;return w.create({next(e){if(b.done)return p;c||(c=b.value.value);let f;do if(f=c.next(e),f.done){b=a.next(0);if(b.done)return f;c=b.value.value}while(f.done||Fi(f.value,d));d=f.value;return f}})}\nfunction Hi(a,b){const c=[];(function(){for(var f=b.next(0);!f.done;){const h=f.value.value;f={current:h.next(0),next:k=>h.next(k)};f.current.done||c.push(f);f=b.next(0)}})();let d=null,e=!1;return w.create({[Symbol.iterator](){return this},next:()=>{e||(e=!0,c.every(h=>v(h.current.value.type,53))&&c.sort((h,k)=>sd(a,h.current.value,k.current.value)));let f;do{if(!c.length)return p;const h=c.shift();f=h.current;h.current=h.next(0);if(!v(f.value.type,53))return f;if(!h.current.done){let k=0,l=c.length-\n1,n=0;for(;k<=l;){n=Math.floor((k+l)/2);const t=sd(a,h.current.value,c[n].current.value);if(0===t){k=n;break}0<t?k=n+1:l=n-1}c.splice(k,0,h)}}while(Fi(f.value,d));d=f.value;return f}})};var Ii=class extends D{constructor(a,b){super(a.reduce((c,d)=>0<uf(c,d.o)?c:d.o,new vf({})),a,{B:a.every(c=>c.B)},!1,b);this.l=a}h(a,b){if(this.l.every(c=>\"sorted\"===c.ia)){let c=0;return Hi(b.h,{next:()=>c>=this.l.length?p:q(C(this.l[c++],a,b))}).map(d=>{if(!v(d.type,53))throw Error(\"XPTY0004: The sequences to union are not of type node()*\");return d})}return jc(this.l.map(c=>C(c,a,b))).N(c=>{if(c.some(d=>!v(d.type,53)))throw Error(\"XPTY0004: The sequences to union are not of type node()*\");c=td(b.h,\nc);return w.create(c)})}};function Ji(a){return a.every(b=>null===b||v(b.type,5)||v(b.type,4))||null!==a.map(b=>b?rc(b.type):null).reduce((b,c)=>null===c?b:c===b?b:null)?a:a.every(b=>null===b||v(b.type,1)||v(b.type,20))?a.map(b=>b?jd(b,1):null):a.every(b=>null===b||v(b.type,4)||v(b.type,6))?a.map(b=>b?jd(b,6):b):a.every(b=>null===b||v(b.type,4)||v(b.type,6)||v(b.type,3))?a.map(b=>b?jd(b,3):b):null};function Ki(a){return(a=a.find(b=>!!b))?rc(a.type):null}\nvar Li=class extends Uh{constructor(a,b){super(new vf({}),[b,...a.map(c=>c.ba)],{B:!1,W:!1,R:\"unsorted\",subtree:!1},b);this.A=a}L(a,b,c,d){if(this.A[1])throw Error(\"More than one order spec is not supported for the order by clause.\");const e=[];let f=!1,h,k,l=null;const n=this.A[0];return w.create({next:()=>{if(!f){for(var t=b.next(0);!t.done;)e.push(t.value),t=b.next(0);t=e.map(z=>n.ba.h(z,c)).map(z=>qc(z,c));if(t.find(z=>!z.F()&&!z.oa()))throw Error(\"XPTY0004: Order by only accepts empty or singleton sequences\");h=\nt.map(z=>z.first());h=h.map(z=>null===z?z:v(19,z.type)?jd(z,1):z);if(Ki(h)&&(h=Ji(h),!h))throw Error(\"XPTY0004: Could not cast values\");t=h.length;k=h.map((z,y)=>y);for(let z=0;z<t;z++)if(z+1!==t)for(let y=z;0<=y;y--){const G=y,N=y+1;if(N===t)continue;const U=h[k[G]],ca=h[k[N]];if(null!==ca||null!==U){if(n.bc){if(null===U)continue;if(null===ca&&null!==U){[k[G],k[N]]=[k[N],k[G]];continue}if(isNaN(ca.value)&&null!==U&&!isNaN(U.value)){[k[G],k[N]]=[k[N],k[G]];continue}}else{if(null===ca)continue;if(null===\nU&&null!==ca){[k[G],k[N]]=[k[N],k[G]];continue}if(isNaN(U.value)&&null!==ca&&!isNaN(ca.value)){[k[G],k[N]]=[k[N],k[G]];continue}}pi(\"gtOp\",U.type,ca.type)(U,ca,a)&&([k[G],k[N]]=[k[N],k[G]])}}let u=n.Bb?0:h.length-1;l=d({next:()=>n.Bb?u>=h.length?p:q(e[k[u++]]):0>u?p:q(e[k[u--]])}).value;f=!0}return l.next(0)}})}};var Mi=class extends D{constructor(a){super(a?a.o:new vf({}),a?[a]:[],{R:\"sorted\",subtree:!1,W:!1,B:!1});this.l=a}h(a,b){if(null===a.M)throw lc(\"context is absent, it needs to be present to use paths.\");var c=b.h;let d=a.M.value;for(;9!==d.node.nodeType;)if(d=x(c,d),null===d)throw Error(\"XPDY0050: the root node of the context node is not a document node.\");c=w.m(rb(d));return this.l?C(this.l,bc(a,0,c.first(),c),b):c}};var Ni=class extends D{constructor(a){super(new vf({}),[],{R:\"sorted\"},!1,a)}h(a){if(null===a.M)throw lc('context is absent, it needs to be present to use the \".\" operator');return w.m(a.M)}};function Oi(a,b){let c=!1,d=!1;b.forEach(e=>{v(e.type,53)?c=!0:d=!0});if(d&&c)throw Error(\"XPTY0018: The path operator should either return nodes or non-nodes. Mixed sequences are not allowed.\");return c?td(a,b):b}\nvar Pi=class extends D{constructor(a,b){const c=a.every(e=>e.W),d=a.every(e=>e.subtree);super(a.reduce((e,f)=>e.add(f.o),new vf({})),a,{B:!1,W:c,R:b?\"sorted\":\"unsorted\",subtree:d});this.l=a;this.s=b}h(a,b){let c=!0;return this.l.reduce((d,e,f)=>{const h=null===d?kd(a):dc(a,d);d={next:l=>{l=h.next(l);if(l.done)return p;if(null!==l.value.M&&!v(l.value.M.type,53)&&0<f)throw Error(\"XPTY0019: The result of E1 in a path expression E1/E2 should not evaluate to a sequence of nodes.\");return q(C(e,l.value,\nb))}};let k;if(this.s)switch(e.ia){case \"reverse-sorted\":const l=d;d={next:n=>{n=l.next(n);return n.done?n:q(n.value.N(t=>w.create(t.reverse())))}};case \"sorted\":if(e.subtree&&c){k=Gi(d);break}k=Hi(b.h,d);break;case \"unsorted\":return Gi(d).N(n=>w.create(Oi(b.h,n)))}else k=Gi(d);c=c&&e.W;return k},null)}D(){return this.l[0].D()}};var Qi=class extends D{constructor(a,b){super(a.o.add(b.o),[a,b],{B:a.B&&b.B,W:a.W,R:a.ia,subtree:a.subtree});this.s=a;this.l=b}h(a,b){const c=C(this.s,a,b);if(this.l.B){const k=C(this.l,a,b);if(k.F())return k;const l=k.first();if(v(l.type,2)){let n=l.value;if(!Number.isInteger(n))return w.empty();const t=c.value;let u=!1;return w.create({next:()=>{if(!u){for(let z=t.next(0);!z.done;z=t.next(0))if(1===n--)return u=!0,z;u=!0}return p}})}return k.fa()?c:w.empty()}const d=c.value;let e=null,f=0,h=null;\nreturn w.create({next:k=>{let l=!1;for(;!e||!e.done;){e||(e=d.next(l?0:k),l=!0);if(e.done)break;h||=C(this.l,bc(a,f,e.value,c),b);var n=h.first();n=null===n?!1:v(n.type,2)?n.value===f+1:h.fa();h=null;const t=e.value;e=null;f++;if(n)return q(t)}return e}})}D(){return this.s.D()}};function Ri(a,b,c){c=[c];if(v(a.type,62))if(\"*\"===b)c.push(...a.h.map(d=>d()));else if(v(b.type,5)){const d=b.value;if(a.h.length<d||0>=d)throw Error(\"FOAY0001: Array index out of bounds\");c.push(a.h[d-1]())}else throw Error(\"XPTY0004: The key specifier is not an integer.\");else if(v(a.type,61))\"*\"===b?c.push(...a.h.map(d=>d.value())):(a=a.h.find(d=>sb(d.key,b)))&&c.push(a.value());else throw Error(\"XPTY0004: The provided context item is not a map or an array.\");return jc(c)}\nfunction Si(a,b,c,d,e){if(\"*\"===b)return Ri(a,b,c);b=C(b,d,e);b=Ra(b)().N(f=>f.reduce((h,k)=>Ri(a,k,h),new Ba));return jc([c,b])};var Ti=class extends D{constructor(a,b){super(a.o,[a].concat(\"*\"===b?[]:[b]),{B:a.B,R:a.ia,subtree:a.subtree});this.l=a;this.s=b}h(a,b){return C(this.l,a,b).N(c=>c.reduce((d,e)=>Si(e,this.s,d,a,b),new Ba))}D(){return this.l.D()}};var Ui=class extends D{constructor(a,b){super(new vf({external:1}),\"*\"===a?[]:[a],{B:!1},!1,b);this.l=a}h(a,b){return Si(a.M,this.l,new Ba,a,b)}};var Vi=class extends D{constructor(a,b,c,d){const e=b.map(f=>f.fb);b=b.map(f=>f.name);super(e.reduce((f,h)=>f.add(h.o),c.o),e.concat(c),{B:!1},!1,d);this.s=a;this.A=b;this.L=e;this.P=c;this.l=null}h(a,b){let c=a;const d=this.l.map((k,l)=>{const n=C(this.L[l],c,b).O();c=hc(a,{[k]:()=>w.create(n)});return n});if(d.some(k=>0===k.length))return\"every\"===this.s?w.aa():w.T();const e=Array(d.length).fill(0);e[0]=-1;for(var f=!0;f;){f=!1;for(let k=0,l=e.length;k<l;++k){var h=d[k];if(++e[k]>h.length-1)e[k]=\n0;else{f=Object.create(null);for(h=0;h<e.length;h++){const n=d[h][e[h]];f[this.l[h]]=()=>w.m(n)}f=hc(a,f);f=C(this.P,f,b);if(f.fa()&&\"some\"===this.s)return w.aa();if(!f.fa()&&\"every\"===this.s)return w.T();f=!0;break}}}return\"every\"===this.s?w.aa():w.T()}v(a){this.l=[];for(let c=0,d=this.A.length;c<d;++c){this.L[c].v(a);Dg(a);var b=this.A[c];const e=b.prefix?a.$(b.prefix):null;b=Hg(a,e,b.localName);this.l[c]=b}this.P.v(a);for(let c=0,d=this.A.length;c<d;++c)Jg(a)}};var Wi=class extends D{constructor(a){super(a,[],{B:!1})}h(a){return this.l(a.M)?w.aa():w.T()}};var Xi=class extends Wi{constructor(a){super(new vf({nodeType:1}));this.s=a}l(a){if(!v(a.type,53))return!1;a=a.value.node.nodeType;return 3===this.s&&4===a?!0:this.s===a}D(){return`type-${this.s}`}};var Yi=class extends Wi{constructor(a,b={kind:null}){const c=a.prefix,d=a.namespaceURI;a=a.localName;const e={};\"*\"!==a&&(e.nodeName=1);e.nodeType=1;super(new vf(e));this.s=a;this.L=d;this.A=c;this.P=b.kind}l(a){const b=v(a.type,54),c=v(a.type,47);if(!b&&!c)return!1;a=a.value;return null!==this.P&&(1===this.P&&!b||2===this.P&&!c)?!1:null===this.A&&\"\"!==this.L&&\"*\"===this.s?!0:\"*\"===this.A?\"*\"===this.s?!0:this.s===a.node.localName:\"*\"!==this.s&&this.s!==a.node.localName?!1:(a.node.namespaceURI||null)===\n((\"\"===this.A?b?this.L:null:this.L)||null)}D(){return\"*\"===this.s?null===this.P?\"type-1-or-type-2\":`type-${this.P}`:`name-${this.s}`}v(a){if(null===this.L&&\"*\"!==this.A&&(this.L=a.$(this.A||\"\")||null,!this.L&&this.A))throw Error(`XPST0081: The prefix ${this.A} could not be resolved.`);}};var Zi=class extends Wi{constructor(a){super(new vf({nodeName:1}));this.s=a}l(a){return v(a.type,57)&&a.value.node.target===this.s}D(){return\"type-7\"}};var $i=class extends Wi{constructor(a){super(new vf({}));this.s=a}l(a){return v(a.type,Ia(this.s.prefix?this.s.prefix+\":\"+this.s.localName:this.s.localName))}};var aj=class extends D{constructor(a,b,c){super(new vf({}),[],{B:!1,R:\"unsorted\"});this.A=c;this.s=b;this.L=a;this.l=null}h(a,b){if(!a.ra[this.l]){if(this.P)return this.P(a,b);throw Error(\"XQDY0054: The variable \"+this.A+\" is declared but not in scope.\");}return a.ra[this.l]()}v(a){null===this.s&&this.L&&(this.s=a.$(this.L));this.l=a.eb(this.s||\"\",this.A);if(!this.l)throw Error(\"XPST0008, The variable \"+this.A+\" is not in scope.\");if(a=a.Ea[this.l])this.P=a}};var bj=class extends Uh{constructor(a,b){super(new vf({}),[a,b],{B:!1,W:!1,R:\"unsorted\",subtree:!1},b);this.A=a}L(a,b,c,d){let e=null,f=null;return d({next:()=>{for(;;){if(!f){var h=b.next(0);if(h.done)return p;e=h.value;f=C(this.A,e,c)}h=f.fa();const k=e;f=e=null;if(h)return q(k)}}})}};var cj=class{constructor(a){this.type=a}};var dj=class extends cj{constructor(a){super(\"delete\");this.target=a}h(a){return{type:this.type,target:ag(this.target,a,!1)}}};var ej=class extends cj{constructor(a,b,c){super(c);this.target=a;this.content=b}h(a){return{type:this.type,target:ag(this.target,a,!1),content:this.content.map(b=>ag(b,a,!0))}}};var fj=class extends ej{constructor(a,b){super(a,b,\"insertAfter\")}};var gj=class extends cj{constructor(a,b){super(\"insertAttributes\");this.target=a;this.content=b}h(a){return{type:this.type,target:ag(this.target,a,!1),content:this.content.map(b=>ag(b,a,!0))}}};var hj=class extends ej{constructor(a,b){super(a,b,\"insertBefore\")}};var ij=class extends ej{constructor(a,b){super(a,b,\"insertIntoAsFirst\")}};var jj=class extends ej{constructor(a,b){super(a,b,\"insertIntoAsLast\")}};var kj=class extends ej{constructor(a,b){super(a,b,\"insertInto\")}};var lj=class extends cj{constructor(a,b){super(\"rename\");this.target=a;this.o=b.za?b:new Sa(b.prefix,b.namespaceURI,b.localName)}h(a){return{type:this.type,target:ag(this.target,a,!1),newName:{prefix:this.o.prefix,namespaceURI:this.o.namespaceURI,localName:this.o.localName}}}};var mj=class extends cj{constructor(a,b){super(\"replaceElementContent\");this.target=a;this.text=b}h(a){return{type:this.type,target:ag(this.target,a,!1),text:this.text?ag(this.text,a,!0):null}}};var nj=class extends cj{constructor(a,b){super(\"replaceNode\");this.target=a;this.o=b}h(a){return{type:this.type,target:ag(this.target,a,!1),replacement:this.o.map(b=>ag(b,a,!0))}}};var oj=class extends cj{constructor(a,b){super(\"replaceValue\");this.target=a;this.o=b}h(a){return{type:this.type,target:ag(this.target,a,!1),[\"string-value\"]:this.o}}};var pj=(a,b)=>new nj(a,b);var qj=class extends of{constructor(a){super(new vf({}),[a],{B:!1,R:\"unsorted\"});this.l=a}s(a,b){const c=nf(this.l)(a,b),d=b.h;let e,f;return{next:()=>{if(!e){const h=c.next(0);if(h.value.J.some(k=>!v(k.type,53)))throw Error(\"XUTY0007: The target of a delete expression must be a sequence of zero or more nodes.\");e=h.value.J;f=h.value.da}e=e.filter(h=>x(d,h.value));return q({da:mf(e.map(h=>new dj(h.value)),f),J:[]})}}}};function rj(a,b,c,d,e,f){const h=b.h;a.reduce(function t(l,n){if(v(n.type,62))return n.h.forEach(u=>u().O().forEach(z=>t(l,z))),l;l.push(n);return l},[]).forEach((l,n,t)=>{if(v(l.type,47)){if(e)throw f(l.value,h);c.push(l.value.node)}else if(v(l.type,46)||v(l.type,53)&&3===l.value.node.nodeType){const u=v(l.type,46)?jd(pc(l,b).first(),1).value:ib(h,l.value);0!==n&&v(t[n-1].type,46)&&v(l.type,46)?(d.push({data:\" \"+u,Ra:!0,nodeType:3}),e=!0):u&&(d.push({data:\"\"+u,Ra:!0,nodeType:3}),e=!0)}else if(v(l.type,\n55)){const u=[];hb(h,l.value).forEach(z=>u.push(rb(z)));e=rj(u,b,c,d,e,f)}else if(v(l.type,53))d.push(l.value.node),e=!0;else{if(v(l.type,60))throw nc(l.type);throw Error(`Atomizing ${l.type} is not implemented.`);}});return e}function sj(a,b,c){const d=[],e=[];let f=!1;a.forEach(h=>{f=rj(h,b,d,e,f,c)});return{attributes:d,Xa:e}};function tj(a,b,c,d,e){const f=[];switch(a){case 4:d.length&&f.push(new gj(b,d));e.length&&f.push(new ij(b,e));break;case 5:d.length&&f.push(new gj(b,d));e.length&&f.push(new jj(b,e));break;case 3:d.length&&f.push(new gj(b,d));e.length&&f.push(new kj(b,e));break;case 2:d.length&&f.push(new gj(c,d));e.length&&f.push(new hj(b,e));break;case 1:d.length&&f.push(new gj(c,d)),e.length&&f.push(new fj(b,e))}return f}\nvar uj=class extends of{constructor(a,b,c){super(new vf({}),[a,c],{B:!1,R:\"unsorted\"});this.L=a;this.l=b;this.A=c}s(a,b){const c=nf(this.L)(a,b),d=nf(this.A)(a,b),e=b.h;let f,h,k,l,n,t;return{next:()=>{if(!f){var u=c.next(0);const z=sj([u.value.J],b,Pe);f=z.attributes.map(y=>({node:y,G:null}));h=z.Xa.map(y=>({node:y,G:null}));k=u.value.da}if(!l){u=d.next(0);if(0===u.value.J.length)throw Ye();if(3<=this.l){if(1!==u.value.J.length)throw Qe();if(!v(u.value.J[0].type,54)&&!v(u.value.J[0].type,55))throw Qe();\n}else{if(1!==u.value.J.length)throw Re();if(!(v(u.value.J[0].type,54)||v(u.value.J[0].type,56)||v(u.value.J[0].type,58)||v(u.value.J[0].type,57)))throw Re();t=x(e,u.value.J[0].value,null);if(null===t)throw Error(`XUDY0029: The target ${u.value.J[0].value.outerHTML} for inserting a node before or after must have a parent.`);}l=u.value.J[0];n=u.value.da}if(f.length){if(3<=this.l){if(!v(l.type,54))throw Error(\"XUTY0022: An insert expression specifies the insertion of an attribute node into a document node.\");\n}else if(1!==t.node.nodeType)throw Error(\"XUDY0030: An insert expression specifies the insertion of an attribute node before or after a child of a document node.\");f.reduce((z,y)=>{const G=y.node.prefix||\"\";var N=y.node.prefix||\"\";const U=y.node.namespaceURI,ca=N?l.value.node.lookupNamespaceURI(N):null;if(ca&&ca!==U)throw We(U);if((N=z[N])&&U!==N)throw Xe(U);z[G]=y.node.namespaceURI;return z},{})}return q({J:[],da:mf(tj(this.l,l.value,t?t:null,f,h),k,n)})}}}};const vj=()=>mc(\"Casting not supported from given type to a single xs:string or xs:untypedAtomic or any of its derived types.\"),wj=/([A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])/,xj=new RegExp(`${wj.source}${(new RegExp(`(${wj.source}|[-.0-9\\xB7\\u0300-\\u036F\\u203F\\u2040])`)).source}*`,\"g\"),yj=a=>(a=a.match(xj))?1===a.length:!1;\nfunction zj(a,b){return qc(b,a).X({m:c=>{c=c.first();if(v(c.type,1)||v(c.type,19)){if(!yj(c.value))throw Error(`XQDY0041: The value \"${c.value}\" of a name expressions cannot be converted to a NCName.`);return w.m(c)}throw vj();},default:()=>{throw vj();}}).value}\nfunction Aj(a,b,c){return qc(c,b).X({m:d=>{d=d.first();if(v(d.type,23))return w.m(d);if(v(d.type,1)||v(d.type,19)){let e,f;d=d.value.split(\":\");1===d.length?d=d[0]:(e=d[0],f=a.$(e),d=d[1]);if(!yj(d)||e&&!yj(e))throw yg(e?`${e}:${d}`:d);if(e&&!f)throw yg(`${e}:${d}`);return w.m({type:23,value:new Sa(e,f,d)})}throw vj();},default:()=>{throw vj();}}).value};var Nj=class extends of{constructor(a,b){super(new vf({}),[a,b],{B:!1,R:\"unsorted\"});this.A=a;this.L=b;this.l=void 0}s(a,b){const c=nf(this.A)(a,b),d=nf(this.L)(a,b);return{next:()=>{const e=c.next(0);var f=e.value.J;if(0===f.length)throw Ye();if(1!==f.length)throw Te();if(!v(f[0].type,54)&&!v(f[0].type,47)&&!v(f[0].type,57))throw Te();f=f[0];const h=d.next(0);a:{var k=this.l;var l=w.create(h.value.J);switch(f.type){case 54:k=Aj(k,b,l).next(0).value.value;if((l=f.value.node.lookupNamespaceURI(k.prefix))&&\nl!==k.namespaceURI)throw We(k.namespaceURI);break a;case 47:k=Aj(k,b,l).next(0).value.value;if(k.namespaceURI&&(l=f.value.node.lookupNamespaceURI(k.prefix))&&l!==k.namespaceURI)throw We(k.namespaceURI);break a;case 57:k=zj(b,l).next(0).value.value;k=new Sa(\"\",null,k);break a}k=void 0}return q({J:[],da:mf([new lj(f.value,k)],e.value.da,h.value.da)})}}}v(a){this.l=Ff(a);super.v(a)}};function Oj(a,b,c){let d,e,f;return{next:()=>{if(!d){var h=c.next(0),k=sj([h.value.J],a,Xe);d={attributes:k.attributes.map(l=>({node:l,G:null})),Xa:k.Xa.map(l=>({node:l,G:null}))};e=h.value.da}k=b.next(0);if(0===k.value.J.length)throw Ye();if(1!==k.value.J.length)throw Se();if(!(v(k.value.J[0].type,54)||v(k.value.J[0].type,47)||v(k.value.J[0].type,56)||v(k.value.J[0].type,58)||v(k.value.J[0].type,57)))throw Se();f=x(a.h,k.value.J[0].value,null);if(null===f)throw Error(`XUDY0009: The target ${k.value.J[0].value.outerHTML} for replacing a node must have a parent.`);\nh=k.value.J[0];k=k.value.da;if(v(h.type,47)){if(d.Xa.length)throw Error(\"XUTY0011: When replacing an attribute the new value must be zero or more attribute nodes.\");d.attributes.reduce((l,n)=>{const t=n.node.prefix||\"\";n=n.node.namespaceURI;var u=f.node.lookupNamespaceURI(t);if(u&&u!==n)throw We(n);if((u=l[t])&&n!==u)throw Xe(n);l[t]=n;return l},{})}else if(d.attributes.length)throw Error(\"XUTY0010: When replacing an an element, text, comment, or processing instruction node the new value must be a single node.\");\nreturn q({J:[],da:mf([pj(h.value,[].concat(d.attributes,d.Xa))],e,k)})}}}\nfunction Pj(a,b,c){let d,e,f,h,k=!1;return{next:()=>{if(k)return p;if(!f){var l=c.next(0);const n=qc(w.create(l.value.J),a).map(t=>jd(t,1)).O().map(t=>t.value).join(\" \");f=0===n.length?null:{node:a.Ja.createTextNode(n),G:null};h=l.value.da}if(!d){l=b.next(0);if(0===l.value.J.length)throw Ye();if(1!==l.value.J.length)throw Se();if(!(v(l.value.J[0].type,54)||v(l.value.J[0].type,47)||v(l.value.J[0].type,56)||v(l.value.J[0].type,58)||v(l.value.J[0].type,57)))throw Se();d=l.value.J[0];e=l.value.da}if(v(d.type,\n54))return k=!0,q({J:[],da:mf([new mj(d.value,f)],h,e)});if(v(d.type,47)||v(d.type,56)||v(d.type,58)||v(d.type,57)){l=f?ib(a.h,f):\"\";if(v(d.type,58)&&(l.includes(\"--\")||l.endsWith(\"-\")))throw Error(`XQDY0072: The content \"${l}\" for a comment node contains two adjacent hyphens or ends with a hyphen.`);if(v(d.type,57)&&l.includes(\"?>\"))throw Error(`XQDY0026: The content \"${l}\" for a processing instruction node contains \"?>\".`);k=!0;return q({J:[],da:mf([new oj(d.value,l)],h,e)})}}}}\nvar Qj=class extends of{constructor(a,b,c){super(new vf({}),[b,c],{B:!1,R:\"unsorted\"});this.L=a;this.l=b;this.A=c}s(a,b){const c=nf(this.l)(a,b);a=nf(this.A)(a,b);return this.L?Pj(b,c,a):Oj(b,c,a)}};function Rj(a){switch(a.type){case \"delete\":return new dj({node:a.target,G:null});case \"insertAfter\":return new fj({node:a.target,G:null},a.content.map(b=>({node:b,G:null})));case \"insertBefore\":return new hj({node:a.target,G:null},a.content.map(b=>({node:b,G:null})));case \"insertInto\":return new kj({node:a.target,G:null},a.content.map(b=>({node:b,G:null})));case \"insertIntoAsFirst\":return new ij({node:a.target,G:null},a.content.map(b=>({node:b,G:null})));case \"insertIntoAsLast\":return new jj({node:a.target,\nG:null},a.content.map(b=>({node:b,G:null})));case \"insertAttributes\":return new gj({node:a.target,G:null},a.content.map(b=>({node:b,G:null})));case \"rename\":return new lj({node:a.target,G:null},a.newName);case \"replaceNode\":return new nj({node:a.target,G:null},a.replacement.map(b=>({node:b,G:null})));case \"replaceValue\":return new oj({node:a.target,G:null},a[\"string-value\"]);case \"replaceElementContent\":return new mj({node:a.target,G:null},a.text?{node:a.text,G:null}:null);default:throw Error(`Unexpected type \"${a.type}\" when parsing a transferable pending update.`);\n}};function Sj(a,b,c){if(b.find(e=>md(e,a)))return!0;const d=x(c,a);return d?Sj(d,b,c):!1}\nvar Tj=class extends of{constructor(a,b,c){super(new vf({}),a.reduce((d,e)=>{d.push(e.fb);return d},[b,c]),{B:!1,R:\"unsorted\"});this.l=a;this.L=b;this.A=c;this.I=null}h(a,b){a=this.s(a,b);return pf(a,()=>{})}s(a,b){const c=b.h,d=b.Ja,e=b.Ma,f=[];let h,k,l;const n=[],t=[];return{next:()=>{if(n.length!==this.l.length)for(var u=n.length;u<this.l.length;u++){const y=this.l[u];var z=f[u];z||(f[u]=z=nf(y.fb)(a,b));z=z.next(0);if(1!==z.value.J.length||!v(z.value.J[0].type,53))throw Error(\"XUTY0013: The source expression of a copy modify expression must return a single node.\");\nconst G=rb(Xf(z.value.J[0].value,b));n.push(G.value);t.push(z.value.da);a=hc(a,{[y.fc]:()=>w.m(G)})}l||(h||=nf(this.L)(a,b),l=h.next(0).value.da);l.forEach(y=>{if(y.target&&!Sj(y.target,n,c))throw Error(`XUDY0014: The target ${y.target.node.outerHTML} must be a node created by the copy clause.`);if(\"put\"===y.type)throw Error(\"XUDY0037: The modify expression of a copy modify expression can not contain a fn:put.\");});u=l.map(y=>{y=y.h(b);return Rj(y)});lf(u,c,d,e);k||=nf(this.A)(a,b);u=k.next(0);return q({J:u.value.J,\nda:mf(u.value.da,...t)})}}}v(a){Dg(a);this.l.forEach(b=>b.fc=Hg(a,b.Jb.namespaceURI,b.Jb.localName));super.v(a);Jg(a);this.I=this.l.some(b=>b.fb.I)||this.A.I}};function Uj(a,b){return{node:{nodeType:2,Ra:!0,nodeName:a.za(),namespaceURI:a.namespaceURI,prefix:a.prefix,localName:a.localName,name:a.za(),value:b},G:null}}\nvar Vj=class extends D{constructor(a,b){let c=b.nb||[];c=c.concat(a.Na||[]);super(new vf({}),c,{B:!1,R:\"unsorted\"});a.Na?this.s=a.Na:this.name=new Sa(a.prefix,a.namespaceURI,a.localName);this.l=b;this.A=void 0}h(a,b){let c,d,e,f=!1;return w.create({next:()=>{if(f)return p;if(!d){if(this.s){if(!c){var h=this.s.h(a,b);c=Aj(this.A,b,h)}d=c.next(0).value.value}else d=this.name;if(d){if(\"xmlns\"===d.prefix)throw sg(d);if(\"\"===d.prefix&&\"xmlns\"===d.localName)throw sg(d);if(\"http://www.w3.org/2000/xmlns/\"===\nd.namespaceURI)throw sg(d);if(\"xml\"===d.prefix&&\"http://www.w3.org/XML/1998/namespace\"!==d.namespaceURI)throw sg(d);if(\"\"!==d.prefix&&\"xml\"!==d.prefix&&\"http://www.w3.org/XML/1998/namespace\"===d.namespaceURI)throw sg(d);}}if(this.l.nb)return h=this.l.nb,e||(e=jc(h.map(k=>qc(k.h(a,b),b).N(l=>w.m(g(l.map(n=>n.value).join(\" \"),1))))).N(k=>w.m(rb(Uj(d,k.map(l=>l.value).join(\"\"))))).value),e.next(0);f=!0;return q(rb(Uj(d,this.l.value)))}})}v(a){this.A=Ff(a);if(this.name&&this.name.prefix&&!this.name.namespaceURI){const b=\na.$(this.name.prefix);if(void 0===b&&this.name.prefix)throw oc(this.name.prefix);this.name.namespaceURI=b||null}super.v(a)}};var Wj=class extends D{constructor(a){super(a?a.o:new vf({}),a?[a]:[],{B:!1,R:\"unsorted\"});this.l=a}h(a,b){const c={data:\"\",Ra:!0,nodeType:8},d={node:c,G:null};if(!this.l)return w.m(rb(d));a=C(this.l,a,b);return qc(a,b).N(e=>{e=e.map(f=>jd(f,1).value).join(\" \");if(-1!==e.indexOf(\"--\\x3e\"))throw Error('XQDY0072: The contents of the data of a comment may not include \"--\\x3e\"');c.data=e;return w.m(rb(d))})}};var Xj=class extends D{constructor(a,b,c,d){super(new vf({}),d.concat(b).concat(a.Na||[]),{B:!1,R:\"unsorted\"});a.Na?this.s=a.Na:this.l=new Sa(a.prefix,a.namespaceURI,a.localName);this.P=c.reduce((e,f)=>{if(f.prefix in e)throw Error(`XQST0071: The namespace declaration with the prefix ${f.prefix} has already been declared on the constructed element.`);e[f.prefix||\"\"]=f.uri;return e},{});this.L=b;this.ma=d;this.A=void 0}h(a,b){let c=!1,d,e,f=!1,h,k,l,n=!1;return w.create({next:()=>{if(n)return p;c||\n(d||=jc(this.L.map(G=>C(G,a,b))),e=d.O(),c=!0);if(!f){h||=this.ma.map(G=>C(G,a,b));var t=[];for(var u=0;u<h.length;u++){var z=h[u].O();t.push(z)}k=t;f=!0}this.s&&(l||(t=this.s.h(a,b),l=Aj(this.A,b,t)),this.l=l.next(0).value.value);if(\"xmlns\"===this.l.prefix||\"http://www.w3.org/2000/xmlns/\"===this.l.namespaceURI||\"xml\"===this.l.prefix&&\"http://www.w3.org/XML/1998/namespace\"!==this.l.namespaceURI||this.l.prefix&&\"xml\"!==this.l.prefix&&\"http://www.w3.org/XML/1998/namespace\"===this.l.namespaceURI)throw Error(`XQDY0096: The node name \"${this.l.za()}\" is invalid for a computed element constructor.`);\nconst y={nodeType:1,Ra:!0,attributes:[],childNodes:[],nodeName:this.l.za(),namespaceURI:this.l.namespaceURI,prefix:this.l.prefix,localName:this.l.localName};t={node:y,G:null};e.forEach(G=>{y.attributes.push(G.value.node)});u=sj(k,b,rg);u.attributes.forEach(G=>{if(y.attributes.find(N=>N.namespaceURI===G.namespaceURI&&N.localName===G.localName))throw Error(`XQDY0025: The attribute ${G.name} does not have an unique name in the constructed element.`);y.attributes.push(G)});u.Xa.forEach(G=>{y.childNodes.push(G)});\nfor(u=0;u<y.childNodes.length;u++){z=y.childNodes[u];if(!cb(z)||3!==z.nodeType)continue;const G=y.childNodes[u-1];G&&cb(G)&&3===G.nodeType&&(G.data+=z.data,y.childNodes.splice(u,1),u--)}n=!0;return q(rb(t))}})}v(a){Dg(a);Object.keys(this.P).forEach(b=>Gg(a,b,this.P[b]));this.Fa.forEach(b=>b.v(a));this.L.reduce((b,c)=>{if(c.name){c=`Q{${null===c.name.namespaceURI?a.$(c.name.prefix):c.name.namespaceURI}}${c.name.localName}`;if(b.includes(c))throw Error(`XQST0040: The attribute ${c} does not have an unique name in the constructed element.`);\nb.push(c)}return b},[]);if(this.l&&null===this.l.namespaceURI){const b=a.$(this.l.prefix);if(void 0===b&&this.l.prefix)throw oc(this.l.prefix);this.l.namespaceURI=b}this.A=Ff(a);Jg(a)}};function Yj(a){if(/^xml$/i.test(a))throw Error(`XQDY0064: The target of a created PI may not be \"${a}\"`);}function Zj(a,b){return{node:{data:b,Ra:!0,nodeName:a,nodeType:7,target:a},G:null}}\nvar ak=class extends D{constructor(a,b){const c=a.xb?[a.xb].concat(b):[b];super(c.reduce((d,e)=>d.add(e.o),new vf({})),c,{B:!1,R:\"unsorted\"});this.l=a;this.s=b}h(a,b){const c=C(this.s,a,b);return qc(c,b).N(d=>{const e=d.map(h=>jd(h,1).value).join(\" \");if(-1!==e.indexOf(\"?>\"))throw Error('XQDY0026: The contents of the data of a processing instruction may not include \"?>\"');if(null!==this.l.Fb)return d=this.l.Fb,Yj(d),w.m(rb(Zj(d,e)));d=C(this.l.xb,a,b);const f=zj(b,d);return w.create({next:()=>{var h=\nf.next(0);if(h.done)return h;h=h.value.value;Yj(h);return q(rb(Zj(h,e)))}})})}};var bk=class extends D{constructor(a){super(a?a.o:new vf({}),a?[a]:[],{B:!1,R:\"unsorted\"});this.l=a}h(a,b){if(!this.l)return w.empty();a=C(this.l,a,b);return qc(a,b).N(c=>{if(0===c.length)return w.empty();c={node:{data:c.map(d=>jd(d,1).value).join(\" \"),Ra:!0,nodeType:3},G:null};return w.m(rb(c))})}};var ck=class extends rf{constructor(a,b,c,d){super(new vf({}),[a,...b.map(e=>e.pb),c].concat(...b.map(e=>e.Ib.map(f=>f.Hb))),{B:!1,W:!1,R:\"unsorted\",subtree:!1},d);this.L=a;this.l=b.length;this.P=b.map(e=>e.Ib)}A(a,b,c){return c[0](a).N(d=>{for(let e=0;e<this.l;e++)if(this.P[e].some(f=>{switch(f.dc){case \"?\":if(1<d.length)return!1;break;case \"*\":break;case \"+\":if(1>d.length)return!1;break;default:if(1!==d.length)return!1}const h=w.create(d);return d.every((k,l)=>{k=bc(a,l,k,h);return C(f.Hb,k,b).fa()})}))return c[e+\n1](a);return c[this.l+1](a)})}v(a){super.v(a);if(this.L.I)throw Oe();}};var dk=class extends rf{constructor(a,b,c,d){super(new vf({}),[a,c,...b.map(e=>e.pb)].concat(...b.map(e=>e.Gb.map(f=>f))),{B:!1,W:!1,R:\"unsorted\",subtree:!1},d);this.L=a;this.l=b.length;this.P=b.map(e=>e.Gb)}A(a,b,c){const d=fi(c[0](a),b),[,e,...f]=c;return d.X({multiple:()=>{throw Error(\"XPTY0004: The operand for a switch expression should result in zero or one item\");},default:()=>{const h=d.first(),k=!h;for(let n=0;n<this.l;n++){var l=this.P[n].map(t=>C(t,a,b));for(const t of l)if(l=fi(t,b),l.F()){if(k)return f[n](a)}else{if(!l.oa())throw Error(\"XPTY0004: The operand for a switch case should result in zero or one item\");\nif(!k&&(l=l.first(),He(a,b,null,h,l).next(0).value))return f[n](a)}}return e(a)}})}v(a){super.v(a);if(this.L.I)throw Oe();}};var ek={Z:!1,sa:!1},fk={Z:!0,sa:!1},gk={Z:!0,sa:!0};function P(a){return a.Z?a.sa?gk:fk:ek}\nfunction Q(a,b){switch(a[0]){case \"andOp\":var c=I(a,\"type\");return new di(hk(\"andOp\",a,P(b)),c);case \"orOp\":return c=I(a,\"type\"),new ei(hk(\"orOp\",a,P(b)),c);case \"unaryPlusOp\":return c=F(F(a,\"operand\"),\"*\"),a=I(a,\"type\"),new ci(\"+\",Q(c,b),a);case \"unaryMinusOp\":return c=F(F(a,\"operand\"),\"*\"),a=I(a,\"type\"),new ci(\"-\",Q(c,b),a);case \"addOp\":case \"subtractOp\":case \"multiplyOp\":case \"divOp\":case \"idivOp\":case \"modOp\":var d=a[0],e=Q(J(a,[\"firstOperand\",\"*\"]),P(b));b=Q(J(a,[\"secondOperand\",\"*\"]),P(b));\nconst f=I(a,\"type\"),h=I(J(a,[\"firstOperand\",\"*\"]),\"type\"),k=I(J(a,[\"secondOperand\",\"*\"]),\"type\");h&&k&&I(a,\"type\")&&(c=Sg(d,h.type,k.type));return new Wg(d,e,b,f,c);case \"sequenceExpr\":return ik(a,b);case \"unionOp\":return c=I(a,\"type\"),new Ii([Q(J(a,[\"firstOperand\",\"*\"]),P(b)),Q(J(a,[\"secondOperand\",\"*\"]),P(b))],c);case \"exceptOp\":case \"intersectOp\":return c=I(a,\"type\"),new yi(a[0],Q(J(a,[\"firstOperand\",\"*\"]),P(b)),Q(J(a,[\"secondOperand\",\"*\"]),P(b)),c);case \"stringConcatenateOp\":return jk(a,b);case \"rangeSequenceExpr\":return kk(a,\nb);case \"equalOp\":case \"notEqualOp\":case \"lessThanOrEqualOp\":case \"lessThanOp\":case \"greaterThanOrEqualOp\":case \"greaterThanOp\":return lk(\"generalCompare\",a,b);case \"eqOp\":case \"neOp\":case \"ltOp\":case \"leOp\":case \"gtOp\":case \"geOp\":return lk(\"valueCompare\",a,b);case \"isOp\":case \"nodeBeforeOp\":case \"nodeAfterOp\":return lk(\"nodeCompare\",a,b);case \"pathExpr\":return mk(a,b);case \"contextItemExpr\":return new Ni(I(a,\"type\"));case \"functionCallExpr\":return nk(a,b);case \"inlineFunctionExpr\":return ok(a,b);\ncase \"arrowExpr\":return pk(a,b);case \"dynamicFunctionInvocationExpr\":return qk(a,b);case \"namedFunctionRef\":return b=F(a,\"functionName\"),c=I(a,\"type\"),a=H(J(a,[\"integerConstantExpr\",\"value\"])),new ai(Kg(b),parseInt(a,10),c);case \"integerConstantExpr\":return new Zh(H(F(a,\"value\")),{type:5,g:3});case \"stringConstantExpr\":return new Zh(H(F(a,\"value\")),{type:1,g:3});case \"decimalConstantExpr\":return new Zh(H(F(a,\"value\")),{type:4,g:3});case \"doubleConstantExpr\":return new Zh(H(F(a,\"value\")),{type:3,g:3});\ncase \"varRef\":const {prefix:l,namespaceURI:n,localName:t}=Kg(F(a,\"name\"));return new aj(l,n,t);case \"flworExpr\":return rk(a,b);case \"quantifiedExpr\":return sk(a,b);case \"ifThenElseExpr\":return c=I(a,\"type\"),d=F(a,\"ifClause\")||K(a,\"x:stackTrace\")[0],e=F(a,\"thenClause\")||K(a,\"x:stackTrace\")[1],a=F(a,\"elseClause\")||K(a,\"x:stackTrace\")[2],new Qh(Q(d,P(b)),Q(e,b),Q(a,b),c);case \"instanceOfExpr\":return c=Q(J(a,[\"argExpr\",\"*\"]),b),d=J(a,[\"sequenceType\",\"*\"]),e=J(a,[\"sequenceType\",\"occurrenceIndicator\"]),\na=I(a,\"type\"),new Ei(c,Q(d,P(b)),e?H(e):\"\",a);case \"castExpr\":return b=Q(F(F(a,\"argExpr\"),\"*\"),P(b)),c=F(a,\"singleType\"),a=Kg(F(c,\"atomicType\")),c=null!==F(c,\"optional\"),new Ci(b,a,c);case \"castableExpr\":return b=Q(F(F(a,\"argExpr\"),\"*\"),P(b)),c=F(a,\"singleType\"),a=Kg(F(c,\"atomicType\")),c=null!==F(c,\"optional\"),new Bi(b,a,c);case \"simpleMapExpr\":return tk(a,b);case \"mapConstructor\":return uk(a,b);case \"arrayConstructor\":return vk(a,b);case \"unaryLookup\":return c=I(a,\"type\"),new Ui(wk(a,b),c);case \"typeswitchExpr\":return xk(a,\nb);case \"switchExpr\":return yk(a,b);case \"elementConstructor\":return zk(a,b);case \"attributeConstructor\":return Ak(a,b);case \"computedAttributeConstructor\":return(c=F(a,\"tagName\"))?c=Kg(c):(c=F(a,\"tagNameExpr\"),c={Na:Q(F(c,\"*\"),P(b))}),b=Q(F(F(a,\"valueExpr\"),\"*\"),P(b)),new Vj(c,{nb:[b]});case \"computedCommentConstructor\":if(!b.Z)throw Error(\"XPST0003: Use of XQuery functionality is not allowed in XPath context\");b=(a=F(a,\"argExpr\"))?Q(F(a,\"*\"),P(b)):null;return new Wj(b);case \"computedTextConstructor\":if(!b.Z)throw Error(\"XPST0003: Use of XQuery functionality is not allowed in XPath context\");\nb=(a=F(a,\"argExpr\"))?Q(F(a,\"*\"),P(b)):null;return new bk(b);case \"computedElementConstructor\":return Bk(a,b);case \"computedPIConstructor\":if(!b.Z)throw Error(\"XPST0003: Use of XQuery functionality is not allowed in XPath context\");c=F(a,\"piTargetExpr\");d=F(a,\"piTarget\");e=F(a,\"piValueExpr\");a=I(a,\"type\");return new ak({xb:c?Q(F(c,\"*\"),P(b)):null,Fb:d?H(d):null},e?Q(F(e,\"*\"),P(b)):new zi([],a));case \"CDataSection\":return new Zh(H(a),{type:1,g:3});case \"deleteExpr\":return b=Q(J(a,[\"targetExpr\",\"*\"]),\nb),new qj(b);case \"insertExpr\":c=Q(J(a,[\"sourceExpr\",\"*\"]),b);e=K(a,\"*\")[1];switch(e[0]){case \"insertAfter\":d=1;break;case \"insertBefore\":d=2;break;case \"insertInto\":d=(d=F(e,\"*\"))?\"insertAsFirst\"===d[0]?4:5:3}b=Q(J(a,[\"targetExpr\",\"*\"]),b);return new uj(c,d,b);case \"renameExpr\":return c=Q(J(a,[\"targetExpr\",\"*\"]),b),b=Q(J(a,[\"newNameExpr\",\"*\"]),b),new Nj(c,b);case \"replaceExpr\":return c=!!F(a,\"replaceValue\"),d=Q(J(a,[\"targetExpr\",\"*\"]),b),b=Q(J(a,[\"replacementExpr\",\"*\"]),b),new Qj(c,d,b);case \"transformExpr\":return Ck(a,\nb);case \"x:stackTrace\":c=a;for(a=c[2];\"x:stackTrace\"===a[0];)c=a,a=a[2];c=c[1];return new Sh(c,a[0],Q(a,b),c.Wa);case \"ifClause\":case \"thenClause\":case \"elseClause\":return Q(F(a,\"*\"),b);default:return Dk(a)}}\nfunction Dk(a){switch(a[0]){case \"nameTest\":return new Yi(Kg(a));case \"piTest\":return(a=F(a,\"piTarget\"))?new Zi(H(a)):new Xi(7);case \"commentTest\":return new Xi(8);case \"textTest\":return new Xi(3);case \"documentTest\":return new Xi(9);case \"attributeTest\":var b=(a=F(a,\"attributeName\"))&&F(a,\"star\");return!a||b?new Xi(2):new Yi(Kg(F(a,\"QName\")),{kind:2});case \"elementTest\":return b=(a=F(a,\"elementName\"))&&F(a,\"star\"),!a||b?new Xi(1):new Yi(Kg(F(a,\"QName\")),{kind:1});case \"anyKindTest\":return new $i({prefix:\"\",\nnamespaceURI:null,localName:\"node()\"});case \"anyMapTest\":return new $i({prefix:\"\",namespaceURI:null,localName:\"map(*)\"});case \"anyArrayTest\":return new $i({prefix:\"\",namespaceURI:null,localName:\"array(*)\"});case \"Wildcard\":return F(a,\"star\")?(b=F(a,\"uri\"))?a=new Yi({localName:\"*\",namespaceURI:H(b),prefix:\"\"}):(b=F(a,\"NCName\"),a=\"star\"===F(a,\"*\")[0]?new Yi({localName:H(b),namespaceURI:null,prefix:\"*\"}):new Yi({localName:\"*\",namespaceURI:null,prefix:H(b)})):a=new Yi({localName:\"*\",namespaceURI:null,\nprefix:\"*\"}),a;case \"atomicType\":return new $i(Kg(a));case \"anyItemType\":return new $i({prefix:\"\",namespaceURI:null,localName:\"item()\"});default:throw Error(\"No selector counterpart for: \"+a[0]+\".\");}}function vk(a,b){const c=I(a,\"type\");a=F(a,\"*\");const d=K(a,\"arrayElem\").map(e=>Q(F(e,\"*\"),P(b)));switch(a[0]){case \"curlyArray\":return new sh(d,c);case \"squareArray\":return new th(d,c);default:throw Error(\"Unrecognized arrayType: \"+a[0]);}}\nfunction uk(a,b){const c=I(a,\"type\");return new $h(K(a,\"mapConstructorEntry\").map(d=>({key:Q(J(d,[\"mapKeyExpr\",\"*\"]),P(b)),value:Q(J(d,[\"mapValueExpr\",\"*\"]),P(b))})),c)}function hk(a,b,c){function d(f){const h=F(F(f,\"firstOperand\"),\"*\");f=F(F(f,\"secondOperand\"),\"*\");h[0]===a?d(h):e.push(Q(h,c));f[0]===a?d(f):e.push(Q(f,c))}const e=[];d(b);return e}function wk(a,b){a=F(a,\"*\");switch(a[0]){case \"NCName\":return new Zh(H(a),{type:1,g:3});case \"star\":return\"*\";default:return Q(a,P(b))}}\nfunction lk(a,b,c){var d=J(b,[\"firstOperand\",\"*\"]);const e=J(b,[\"secondOperand\",\"*\"]);d=Q(d,P(c));c=Q(e,P(c));switch(a){case \"valueCompare\":return new qi(b[0],d,c);case \"nodeCompare\":return new wi(b[0],d,c);case \"generalCompare\":return new ti(b[0],d,c)}}\nfunction Ek(a,b,c){a=K(a,\"*\");return new Li(a.filter(d=>\"stable\"!==d[0]).map(d=>{var e=F(d,\"orderModifier\"),f=e?F(e,\"orderingKind\"):null;e=e?F(e,\"emptyOrderingMode\"):null;f=f?\"ascending\"===H(f):!0;e=e?\"empty least\"===H(e):!0;return{ba:Q(J(d,[\"orderByExpr\",\"*\"]),b),Bb:f,bc:e}}),c)}\nfunction rk(a,b){var c=K(a,\"*\");a=F(c[c.length-1],\"*\");c=c.slice(0,-1);if(1<c.length&&!b.Z)throw Error(\"XPST0003: Use of XQuery FLWOR expressions in XPath is no allowed\");return c.reduceRight((d,e)=>{switch(e[0]){case \"forClause\":e=K(e,\"*\");for(var f=e.length-1;0<=f;--f){var h=e[f],k=J(h,[\"forExpr\",\"*\"]);const l=F(h,\"positionalVariableBinding\");d=new Wh(Kg(J(h,[\"typedVariableBinding\",\"varName\"])),Q(k,P(b)),l?Kg(l):null,d)}return d;case \"letClause\":e=K(e,\"*\");for(f=e.length-1;0<=f;--f)h=e[f],k=J(h,\n[\"letExpr\",\"*\"]),d=new Yh(Kg(J(h,[\"typedVariableBinding\",\"varName\"])),Q(k,P(b)),d);return d;case \"whereClause\":e=K(e,\"*\");for(f=e.length-1;0<=f;--f)d=new bj(Q(e[f],b),d);return d;case \"windowClause\":throw Error(`Not implemented: ${e[0]} is not implemented yet.`);case \"groupByClause\":throw Error(`Not implemented: ${e[0]} is not implemented yet.`);case \"orderByClause\":return Ek(e,b,d);case \"countClause\":throw Error(`Not implemented: ${e[0]} is not implemented yet.`);default:throw Error(`Not implemented: ${e[0]} is not supported in a flwor expression`);\n}},Q(a,b))}function nk(a,b){const c=F(a,\"functionName\"),d=K(F(a,\"arguments\"),\"*\");a=I(a,\"type\");return new Gf(new ai(Kg(c),d.length,a),d.map(e=>\"argumentPlaceholder\"===e[0]?null:Q(e,b)),a)}\nfunction pk(a,b){const c=I(a,\"type\");var d=J(a,[\"argExpr\",\"*\"]);a=K(a,\"*\").slice(1);d=[Q(d,b)];for(let f=0;f<a.length;f++)if(\"arguments\"!==a[f][0]){if(\"arguments\"===a[f+1][0]){var e=K(a[f+1],\"*\");d=d.concat(e.map(h=>\"argumentPlaceholder\"===h[0]?null:Q(h,b)))}e=\"EQName\"===a[f][0]?new ai(Kg(a[f]),d.length,c):Q(a[f],P(b));d=[new Gf(e,d,c)]}return d[0]}\nfunction qk(a,b){const c=J(a,[\"functionItem\",\"*\"]),d=I(a,\"type\");a=F(a,\"arguments\");let e=[];a&&(e=K(a,\"*\").map(f=>\"argumentPlaceholder\"===f[0]?null:Q(f,b)));return new Gf(Q(c,b),e,d)}function ok(a,b){const c=K(F(a,\"paramList\"),\"*\"),d=J(a,[\"functionBody\",\"*\"]),e=I(a,\"type\");return new Xh(c.map(f=>({name:Kg(F(f,\"varName\")),type:Lg(f)})),Lg(a),d?Q(d,b):new zi([],e))}\nfunction mk(a,b){const c=I(a,\"type\");var d=K(a,\"stepExpr\");let e=!1;var f=d.map(h=>{var k=F(h,\"xpathAxis\");let l;var n=K(h,\"*\");const t=[];let u=null,z=!1;for(const y of n)switch(y[0]){case \"lookup\":t.push([\"lookup\",wk(y,b)]);break;case \"predicate\":case \"predicates\":for(const G of K(y,\"*\")){n=Q(G,P(b));if(!z){const N=n.D();null===N?z=!0:u=yh(u,N)}t.push([\"predicate\",n])}}if(k)switch(e=!0,h=F(h,\"attributeTest anyElementTest piTest documentTest elementTest commentTest namespaceTest anyKindTest textTest anyFunctionTest typedFunctionTest schemaAttributeTest atomicType anyItemType parenthesizedItemType typedMapTest typedArrayTest nameTest Wildcard\".split(\" \")),\nh=Dk(h),H(k)){case \"ancestor\":l=new wh(h,{Qa:!1});break;case \"ancestor-or-self\":l=new wh(h,{Qa:!0});break;case \"attribute\":l=new zh(h,u);break;case \"child\":l=new Ah(h,u);break;case \"descendant\":l=new Dh(h,{Qa:!1});break;case \"descendant-or-self\":l=new Dh(h,{Qa:!0});break;case \"parent\":l=new Kh(h,u);break;case \"following-sibling\":l=new Jh(h,u);break;case \"preceding-sibling\":l=new Oh(h,u);break;case \"following\":l=new Hh(h);break;case \"preceding\":l=new Mh(h);break;case \"self\":l=new Ph(h,u)}else k=J(h,\n[\"filterExpr\",\"*\"]),l=Q(k,P(b));for(const y of t)switch(y[0]){case \"lookup\":l=new Ti(l,y[1]);break;case \"predicate\":l=new Qi(l,y[1])}l.type=c;return l});a=F(a,\"rootExpr\");d=e||null!==a||1<d.length;if(!d&&1===f.length||!a&&1===f.length&&\"sorted\"===f[0].ia)return f[0];if(a&&0===f.length)return new Mi(null);f=new Pi(f,d);return a?new Mi(f):f}\nfunction sk(a,b){const c=I(a,\"type\"),d=H(F(a,\"quantifier\")),e=J(a,[\"predicateExpr\",\"*\"]);a=K(a,\"quantifiedExprInClause\").map(f=>{const h=Kg(J(f,[\"typedVariableBinding\",\"varName\"]));f=J(f,[\"sourceExpr\",\"*\"]);return{name:h,fb:Q(f,P(b))}});return new Vi(d,a,Q(e,P(b)),c)}function ik(a,b){var c=K(a,\"*\").map(d=>Q(d,b));if(1===c.length)return c[0];c=I(a,\"type\");return new zi(K(a,\"*\").map(d=>Q(d,b)),c)}\nfunction tk(a,b){const c=I(a,\"type\");return K(a,\"*\").reduce((d,e)=>null===d?Q(e,P(b)):new Ai(d,Q(e,P(b)),c),null)}function jk(a,b){const c=I(a,\"type\");a=[J(a,[\"firstOperand\",\"*\"]),J(a,[\"secondOperand\",\"*\"])];return new Gf(new ai({localName:\"concat\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",prefix:\"\"},a.length,c),a.map(d=>Q(d,P(b))),c)}\nfunction kk(a,b){const c=I(a,\"type\");a=[F(F(a,\"startExpr\"),\"*\"),F(F(a,\"endExpr\"),\"*\")];const d=new ai({localName:\"to\",namespaceURI:\"http://fontoxpath/operators\",prefix:\"\"},a.length,c);return new Gf(d,a.map(e=>Q(e,P(b))),c)}\nfunction zk(a,b){if(!b.Z)throw Error(\"XPST0003: Use of XQuery functionality is not allowed in XPath context\");const c=Kg(F(a,\"tagName\"));var d=F(a,\"attributeList\");const e=d?K(d,\"attributeConstructor\").map(f=>Q(f,P(b))):[];d=d?K(d,\"namespaceDeclaration\").map(f=>{const h=F(f,\"prefix\");return{prefix:h?H(h):\"\",uri:H(F(f,\"uri\"))}}):[];a=(a=F(a,\"elementContent\"))?K(a,\"*\").map(f=>Q(f,P(b))):[];return new Xj(c,e,d,a)}\nfunction Ak(a,b){if(!b.Z)throw Error(\"XPST0003: Use of XQuery functionality is not allowed in XPath context\");const c=Kg(F(a,\"attributeName\"));var d=F(a,\"attributeValue\");d=d?H(d):null;a=(a=F(a,\"attributeValueExpr\"))?K(a,\"*\").map(e=>Q(e,P(b))):null;return new Vj(c,{value:d,nb:a})}function Bk(a,b){var c=F(a,\"tagName\");c?c=Kg(c):(c=F(a,\"tagNameExpr\"),c={Na:Q(F(c,\"*\"),P(b))});a=(a=F(a,\"contentExpr\"))?K(a,\"*\").map(d=>Q(d,P(b))):[];return new Xj(c,[],[],a)}\nfunction Ck(a,b){const c=K(F(a,\"transformCopies\"),\"transformCopy\").map(e=>{const f=Kg(F(F(e,\"varRef\"),\"name\"));return{fb:Q(F(F(e,\"copySource\"),\"*\"),b),Jb:new Sa(f.prefix,f.namespaceURI,f.localName)}}),d=Q(F(F(a,\"modifyExpr\"),\"*\"),b);a=Q(F(F(a,\"returnExpr\"),\"*\"),b);return new Tj(c,d,a)}\nfunction xk(a,b){if(!b.Z)throw Error(\"XPST0003: Use of XQuery functionality is not allowed in XPath context\");const c=I(a,\"type\"),d=Q(F(F(a,\"argExpr\"),\"*\"),b),e=K(a,\"typeswitchExprCaseClause\").map(f=>{const h=0===K(f,\"sequenceTypeUnion\").length?[F(f,\"sequenceType\")]:K(F(f,\"sequenceTypeUnion\"),\"sequenceType\");return{pb:Q(J(f,[\"resultExpr\",\"*\"]),b),Ib:h.map(k=>{const l=F(k,\"occurrenceIndicator\");return{dc:l?H(l):\"\",Hb:Q(F(k,\"*\"),b)}})}});a=Q(J(a,[\"typeswitchExprDefaultClause\",\"resultExpr\",\"*\"]),b);\nreturn new ck(d,e,a,c)}function yk(a,b){if(!b.Z)throw Error(\"XPST0003: Use of XQuery functionality is not allowed in XPath context\");const c=I(a,\"type\"),d=Q(F(F(a,\"argExpr\"),\"*\"),b),e=K(a,\"switchExprCaseClause\").map(f=>{const h=K(f,\"switchCaseExpr\");return{pb:Q(J(f,[\"resultExpr\",\"*\"]),b),Gb:h.map(k=>Q(F(k,\"*\"),b))}});a=Q(J(a,[\"switchExprDefaultClause\",\"resultExpr\",\"*\"]),b);return new dk(d,e,a,c)}function Fk(a,b){return Q(a,b)};const Gk=new Map;class Hk{constructor(a,b,c,d,e,f){this.v=a;this.D=b;this.h=c;this.kb=d;this.o=e;this.l=f}}function Ik(a,b,c,d,e,f,h,k){a=Gk.get(a);if(!a)return null;b=a[b+(f?\"_DEBUG\":\"\")];return b?(b=b.find(l=>l.o===h&&l.v.every(n=>c(n.prefix)===n.namespaceURI)&&l.D.every(n=>void 0!==d[n.name])&&l.kb.every(n=>e[n.prefix]===n.namespaceURI)&&l.l.every(n=>{const t=k(n.cc,n.arity);return t&&t.namespaceURI===n.Db.namespaceURI&&t.localName===n.Db.localName})))?{ba:b.h,hc:!1}:null:null}\nfunction Jk(a,b,c,d,e,f,h){let k=Gk.get(a);k||(k=Object.create(null),Gk.set(a,k));a=b+(f?\"_DEBUG\":\"\");(b=k[a])||(b=k[a]=[]);b.push(new Hk(Object.values(c.h),Object.values(c.o),e,Object.keys(d).map(l=>({namespaceURI:d[l],prefix:l})),h,c.D))};function Kk(a){var b=new Za;if(\"http://www.w3.org/2005/XQueryX\"!==a.namespaceURI&&\"http://www.w3.org/2005/XQueryX\"!==a.namespaceURI&&\"http://fontoxml.com/fontoxpath\"!==a.namespaceURI&&\"http://www.w3.org/2007/xquery-update-10\"!==a.namespaceURI)throw mc(\"The XML structure passed as an XQueryX program was not valid XQueryX\");const c=[\"stackTrace\"===a.localName?\"x:stackTrace\":a.localName],d=b.getAllAttributes(a);d&&0<d.length&&c.push(Array.from(d).reduce((e,f)=>{\"comment\"!==f.localName&&\"start\"!==f.localName&&\n\"end\"!==f.localName||\"stackTrace\"!==a.localName?\"type\"===f.localName?e[f.localName]=Ja(f.value):e[f.localName]=f.value:e[f.localName]=JSON.parse(f.value);return e},{}));b=b.getChildNodes(a);for(const e of b)switch(e.nodeType){case 1:c.push(Kk(e));break;case 3:c.push(e.data)}return c};const Lk=Object.create(null);\nvar Mk=(a,b)=>{let c=Lk[a];c||=Lk[a]={Ia:[],Ta:[],pa:null,source:b.source};const d=c.pa||(()=>{});c.Ia=c.Ia.concat(b.Ia);c.Ta=c.Ta.concat(b.Ta);c.pa=e=>{d(e);b.pa&&b.pa(e)}},Nk=(a,b)=>{const c=Lk[b];if(!c)throw Error(`XQST0051: No modules found with the namespace uri ${b}`);c.Ia.forEach(d=>{d.cb&&Fg(a,b,d.localName,d.arity,d)});c.Ta.forEach(d=>{Hg(a,b,d.localName);Ig(a,b,d.localName,(e,f)=>C(d.ba,e,f))})},Ok=()=>{Object.keys(Lk).forEach(a=>{a=Lk[a];if(a.pa)try{a.pa(a)}catch(b){a.pa=null,hg(a.source,\nb)}a.pa=null})};function Pk(a){return a.replace(/(\\x0D\\x0A)|(\\x0D(?!\\x0A))/g,String.fromCharCode(10))};var R=prsc;function Qk(a,b){return(c,d)=>{if(b.has(d))return b.get(d);c=a(c,d);b.set(d,c);return c}}function S(a,b){return(0,R.delimited)(b,a,b)}function T(a,b){return a.reverse().reduce((c,d)=>(0,R.preceded)(d,c),b)}function Rk(a,b,c,d){return(0,R.then)((0,R.then)(a,b,(e,f)=>[e,f]),c,([e,f],h)=>d(e,f,h))}function Sk(a,b,c,d,e){return(0,R.then)((0,R.then)((0,R.then)(a,b,(f,h)=>[f,h]),c,([f,h],k)=>[f,h,k]),d,([f,h,k],l)=>e(f,h,k,l))}\nfunction Tk(a,b,c,d,e,f){return(0,R.then)((0,R.then)((0,R.then)((0,R.then)(a,b,(h,k)=>[h,k]),c,([h,k],l)=>[h,k,l]),d,([h,k,l],n)=>[h,k,l,n]),e,([h,k,l,n],t)=>f(h,k,l,n,t))}function Uk(a){return(0,R.map)(a,b=>[b])}function Vk(a,b){return(0,R.map)((0,R.or)(a),()=>b)}function Wk(a){return(b,c)=>(b=a.exec(b.substring(c)))&&0===b.index?(0,R.okWithValue)(c+b[0].length,b[0]):(0,R.error)(c,[a.source],!1)};var Xk=(0,R.or)([(0,R.token)(\" \"),(0,R.token)(\"\\t\"),(0,R.token)(\"\\r\"),(0,R.token)(\"\\n\")]),Yk=(0,R.token)(\"(:\"),Zk=(0,R.token)(\":)\"),$k=(0,R.token)(\"(#\"),al=(0,R.token)(\"#)\"),bl=(0,R.token)(\"(\"),cl=(0,R.token)(\")\"),dl=(0,R.token)(\"[\"),el=(0,R.token)(\"]\"),fl=(0,R.token)(\"{\"),gl=(0,R.token)(\"}\"),hl=(0,R.token)(\"{{\"),il=(0,R.token)(\"}}\"),jl=(0,R.token)(\"'\"),kl=(0,R.token)(\"''\"),ll=(0,R.token)('\"'),ml=(0,R.token)('\"\"'),nl=(0,R.token)(\"<![CDATA[\"),ol=(0,R.token)(\"]]\\x3e\"),pl=(0,R.token)(\"/>\"),ql=(0,R.token)(\"</\"),\nrl=(0,R.token)(\"\\x3c!--\"),sl=(0,R.token)(\"--\\x3e\"),tl=(0,R.token)(\"<?\"),ul=(0,R.token)(\"?>\"),vl=(0,R.token)(\"&#x\"),wl=(0,R.token)(\"&#\"),xl=(0,R.token)(\":*\"),yl=(0,R.token)(\"*:\"),zl=(0,R.token)(\":=\"),Al=(0,R.token)(\"&\"),Bl=(0,R.token)(\":\"),Cl=(0,R.token)(\";\"),Dl=(0,R.token)(\"*\"),El=(0,R.token)(\"@\"),Fl=(0,R.token)(\"$\"),Gl=(0,R.token)(\"#\"),Hl=(0,R.token)(\"%\"),Il=(0,R.token)(\"?\"),Jl=(0,R.token)(\"=\"),Kl=(0,R.followed)((0,R.token)(\"!\"),(0,R.not)((0,R.peek)(Jl),[])),Ll=(0,R.followed)((0,R.token)(\"|\"),(0,R.not)((0,R.peek)((0,R.token)(\"|\")),\n[])),Ml=(0,R.token)(\"||\"),Nl=(0,R.token)(\"!=\"),Ol=(0,R.token)(\"<\"),Pl=(0,R.token)(\"<<\"),Ql=(0,R.token)(\"<=\"),Rl=(0,R.token)(\">\"),Sl=(0,R.token)(\">>\"),Tl=(0,R.token)(\">=\"),Ul=(0,R.token)(\",\"),Vl=(0,R.token)(\".\"),Wl=(0,R.token)(\"..\"),Xl=(0,R.token)(\"+\"),Yl=(0,R.token)(\"-\"),Zl=(0,R.token)(\"/\"),$l=(0,R.token)(\"//\"),am=(0,R.token)(\"=>\"),bm=(0,R.token)(\"e\"),cm=(0,R.token)(\"E\");(0,R.token)(\"l\");(0,R.token)(\"L\");(0,R.token)(\"m\");(0,R.token)(\"M\");var dm=(0,R.token)(\"Q\");(0,R.token)(\"x\");(0,R.token)(\"X\");\nvar em=(0,R.token)(\"as\"),fm=(0,R.token)(\"cast\"),gm=(0,R.token)(\"castable\"),hm=(0,R.token)(\"treat\"),im=(0,R.token)(\"instance\"),jm=(0,R.token)(\"of\"),km=(0,R.token)(\"node\"),lm=(0,R.token)(\"nodes\"),mm=(0,R.token)(\"delete\"),nm=(0,R.token)(\"value\"),om=(0,R.token)(\"function\"),pm=(0,R.token)(\"map\"),qm=(0,R.token)(\"element\"),rm=(0,R.token)(\"attribute\"),sm=(0,R.token)(\"schema-element\"),tm=(0,R.token)(\"intersect\"),um=(0,R.token)(\"except\"),vm=(0,R.token)(\"union\"),wm=(0,R.token)(\"to\"),xm=(0,R.token)(\"is\"),ym=\n(0,R.token)(\"or\"),zm=(0,R.token)(\"and\"),Am=(0,R.token)(\"div\"),Bm=(0,R.token)(\"idiv\"),Cm=(0,R.token)(\"mod\"),Dm=(0,R.token)(\"eq\"),Em=(0,R.token)(\"ne\"),Fm=(0,R.token)(\"lt\"),Gm=(0,R.token)(\"le\"),Hm=(0,R.token)(\"gt\"),Im=(0,R.token)(\"ge\"),Jm=(0,R.token)(\"amp\"),Km=(0,R.token)(\"quot\"),Lm=(0,R.token)(\"apos\"),Mm=(0,R.token)(\"if\"),Nm=(0,R.token)(\"then\"),Om=(0,R.token)(\"else\"),Pm=(0,R.token)(\"allowing\"),Qm=(0,R.token)(\"empty\"),Rm=(0,R.token)(\"at\"),Sm=(0,R.token)(\"in\"),Tm=(0,R.token)(\"for\"),Um=(0,R.token)(\"let\"),\nVm=(0,R.token)(\"where\"),Wm=(0,R.token)(\"collation\"),Xm=(0,R.token)(\"group\"),Ym=(0,R.token)(\"by\"),Zm=(0,R.token)(\"order\"),$m=(0,R.token)(\"stable\"),an=(0,R.token)(\"return\"),bn=(0,R.token)(\"array\"),cn=(0,R.token)(\"document\"),dn=(0,R.token)(\"namespace\"),en=(0,R.token)(\"text\"),fn=(0,R.token)(\"comment\"),gn=(0,R.token)(\"processing-instruction\"),hn=(0,R.token)(\"lax\"),jn=(0,R.token)(\"strict\"),kn=(0,R.token)(\"validate\"),ln=(0,R.token)(\"type\"),mn=(0,R.token)(\"declare\"),nn=(0,R.token)(\"default\"),on=(0,R.token)(\"boundary-space\"),\npn=(0,R.token)(\"strip\"),qn=(0,R.token)(\"preserve\"),rn=(0,R.token)(\"no-preserve\"),sn=(0,R.token)(\"inherit\"),tn=(0,R.token)(\"no-inherit\"),un=(0,R.token)(\"greatest\"),vn=(0,R.token)(\"least\"),wn=(0,R.token)(\"copy-namespaces\"),xn=(0,R.token)(\"decimal-format\"),yn=(0,R.token)(\"case\"),zn=(0,R.token)(\"typeswitch\"),An=(0,R.token)(\"some\"),Bn=(0,R.token)(\"every\"),Cn=(0,R.token)(\"satisfies\"),Dn=(0,R.token)(\"replace\"),En=(0,R.token)(\"with\"),Fn=(0,R.token)(\"copy\"),Gn=(0,R.token)(\"modify\"),Hn=(0,R.token)(\"first\"),\nIn=(0,R.token)(\"last\"),Jn=(0,R.token)(\"before\"),Kn=(0,R.token)(\"after\"),Ln=(0,R.token)(\"into\"),Mn=(0,R.token)(\"insert\"),Nn=(0,R.token)(\"rename\"),On=(0,R.token)(\"switch\"),Pn=(0,R.token)(\"variable\"),Qn=(0,R.token)(\"external\"),Rn=(0,R.token)(\"updating\"),Sn=(0,R.token)(\"import\"),Tn=(0,R.token)(\"schema\"),Un=(0,R.token)(\"module\"),Vn=(0,R.token)(\"base-uri\"),Wn=(0,R.token)(\"construction\"),Xn=(0,R.token)(\"ordering\"),Yn=(0,R.token)(\"ordered\"),Zn=(0,R.token)(\"unordered\"),$n=(0,R.token)(\"option\"),ao=(0,R.token)(\"context\"),\nbo=(0,R.token)(\"item\"),co=(0,R.token)(\"xquery\"),eo=(0,R.token)(\"version\"),fo=(0,R.token)(\"encoding\"),go=(0,R.token)(\"document-node\"),ho=(0,R.token)(\"namespace-node\"),io=(0,R.token)(\"schema-attribute\"),jo=(0,R.token)(\"ascending\"),ko=(0,R.token)(\"descending\"),lo=(0,R.token)(\"empty-sequence\"),mo=(0,R.token)(\"child::\"),no=(0,R.token)(\"descendant::\"),oo=(0,R.token)(\"attribute::\"),po=(0,R.token)(\"self::\"),qo=(0,R.token)(\"descendant-or-self::\"),ro=(0,R.token)(\"following-sibling::\"),so=(0,R.token)(\"following::\"),\nto=(0,R.token)(\"parent::\"),uo=(0,R.token)(\"ancestor::\"),vo=(0,R.token)(\"preceding-sibling::\"),wo=(0,R.token)(\"preceding::\"),xo=(0,R.token)(\"ancestor-or-self::\"),yo=(0,R.token)(\"decimal-separator\"),zo=(0,R.token)(\"grouping-separator\"),Ao=(0,R.token)(\"infinity\"),Bo=(0,R.token)(\"minus-sign\"),Co=(0,R.token)(\"NaN\"),Do=(0,R.token)(\"per-mille\"),Eo=(0,R.token)(\"zero-digit\"),Fo=(0,R.token)(\"digit\"),Go=(0,R.token)(\"pattern-separator\"),Ho=(0,R.token)(\"exponent-separator\"),Io=(0,R.token)(\"schema-attribute(\"),\nJo=(0,R.token)(\"document-node(\"),Ko=(0,R.token)(\"processing-instruction(\"),Lo=(0,R.token)(\"processing-instruction()\"),Mo=(0,R.token)(\"comment()\"),No=(0,R.token)(\"text()\"),Oo=(0,R.token)(\"namespace-node()\"),Po=(0,R.token)(\"node()\"),Qo=(0,R.token)(\"item()\"),Ro=(0,R.token)(\"empty-sequence()\");var So=new Map,To=new Map,Uo=(0,R.or)([Wk(/[\\t\\n\\r -\\uD7FF\\uE000\\uFFFD]/),Wk(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/)]),Vo=(0,R.preceded)((0,R.peek)((0,R.not)((0,R.or)([Yk,Zk]),['comment contents cannot contain \"(:\" or \":)\"'])),Uo),Wo=(0,R.map)((0,R.delimited)(Yk,(0,R.star)((0,R.or)([Vo,function(a,b){return Wo(a,b)}])),Zk,!0),a=>a.join(\"\")),Xo=(0,R.or)([Xk,Wo]),Yo=(0,R.map)((0,R.plus)(Xk),a=>a.join(\"\")),V=Qk((0,R.map)((0,R.star)(Xo),a=>a.join(\"\")),So),W=Qk((0,R.map)((0,R.plus)(Xo),a=>a.join(\"\")),To);const Zo=(0,R.or)([Wk(/[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/),(0,R.then)(Wk(/[\\uD800-\\uDB7F]/),Wk(/[\\uDC00-\\uDFFF]/),(a,b)=>a+b)]),$o=(0,R.or)([Zo,Wk(/[\\-\\.0-9\\xB7\\u0300-\\u036F\\u203F\\u2040]/)]);var ap=(0,R.then)(Zo,(0,R.star)($o),(a,b)=>a+b.join(\"\")),bp=(0,R.map)(ap,a=>[\"prefix\",a]);const cp=(0,R.or)([Zo,Bl]),dp=(0,R.or)([$o,Bl]);(0,R.then)(cp,(0,R.star)(dp),(a,b)=>a+b.join(\"\"));\nconst ep=(0,R.map)(ap,a=>[{prefix:\"\",URI:null},a]),fp=(0,R.then)(ap,(0,R.preceded)(Bl,ap),(a,b)=>[{prefix:a,URI:null},b]);var gp=(0,R.or)([fp,ep]),hp=(0,R.followed)(T([dm,V,fl],(0,R.map)((0,R.star)(Wk(/[^{}]/)),a=>a.join(\"\").replace(/\\s+/g,\" \").trim())),gl);const ip=(0,R.then)(hp,ap,(a,b)=>[a,b]);var jp=(0,R.or)([(0,R.map)(ip,a=>[{prefix:null,URI:a[0]},a[1]]),gp]),kp=(0,R.or)([(0,R.map)(jp,a=>[\"QName\",...a]),(0,R.map)(Dl,()=>[\"star\"])]),lp=(0,R.map)((0,R.preceded)(Fl,jp),a=>[\"varRef\",[\"name\",...a]]);var mp=(0,R.peek)((0,R.or)([bl,ll,jl,Xo])),np=(0,R.map)((0,R.or)([mo,no,oo,po,qo,ro,so]),a=>a.substring(0,a.length-2)),op=(0,R.map)((0,R.or)([to,uo,vo,wo,xo]),a=>a.substring(0,a.length-2)),pp=Rk(Al,(0,R.or)([Fm,Hm,Jm,Km,Lm]),Cl,(a,b,c)=>a+b+c),qp=(0,R.or)([Rk(vl,Wk(/[0-9a-fA-F]+/),Cl,(a,b,c)=>a+b+c),Rk(wl,Wk(/[0-9]+/),Cl,(a,b,c)=>a+b+c)]),rp=Vk([ml],'\"'),sp=Vk([kl],\"'\"),tp=Uk(Vk([Mo],\"commentTest\")),up=Uk(Vk([No],\"textTest\")),vp=Uk(Vk([Oo],\"namespaceTest\")),wp=Uk(Vk([Po],\"anyKindTest\"));\nconst xp=Wk(/[0-9]+/),yp=(0,R.then)((0,R.or)([(0,R.then)(Vl,xp,(a,b)=>a+b),(0,R.then)(xp,(0,R.optional)((0,R.preceded)(Vl,Wk(/[0-9]*/))),(a,b)=>a+(null!==b?\".\"+b:\"\"))]),Rk((0,R.or)([bm,cm]),(0,R.optional)((0,R.or)([Xl,Yl])),xp,(a,b,c)=>a+(b?b:\"\")+c),(a,b)=>[\"doubleConstantExpr\",[\"value\",a+b]]),zp=(0,R.or)([(0,R.map)((0,R.preceded)(Vl,xp),a=>[\"decimalConstantExpr\",[\"value\",\".\"+a]]),(0,R.then)((0,R.followed)(xp,Vl),(0,R.optional)(xp),(a,b)=>[\"decimalConstantExpr\",[\"value\",a+\".\"+(null!==b?b:\"\")]])]);\nvar Ap=(0,R.map)(xp,a=>[\"integerConstantExpr\",[\"value\",a]]),Bp=(0,R.followed)((0,R.or)([yp,zp,Ap]),(0,R.peek)((0,R.not)(Wk(/[a-zA-Z]/),[\"no alphabetical characters after numeric literal\"]))),Cp=(0,R.map)((0,R.followed)(Vl,(0,R.peek)((0,R.not)(Vl,[\"context item should not be followed by another .\"]))),()=>[\"contextItemExpr\"]),Dp=(0,R.or)([bn,rm,fn,go,qm,lo,om,Mm,bo,pm,ho,km,gn,io,sm,On,en,zn]),Ep=Uk(Vk([Il],\"argumentPlaceholder\")),Fp=(0,R.or)([Il,Dl,Xl]),Gp=(0,R.preceded)((0,R.peek)((0,R.not)(Wk(/[{}<&]/),\n[\"elementContentChar cannot be {, }, <, or &\"])),Uo),Hp=(0,R.map)((0,R.delimited)(nl,(0,R.star)((0,R.preceded)((0,R.peek)((0,R.not)(ol,['CDataSection content may not contain \"]]\\x3e\"'])),Uo)),ol,!0),a=>[\"CDataSection\",a.join(\"\")]),Ip=(0,R.preceded)((0,R.peek)((0,R.not)(Wk(/[\"{}<&]/),['quotAttrValueContentChar cannot be \", {, }, <, or &'])),Uo),Jp=(0,R.preceded)((0,R.peek)((0,R.not)(Wk(/['{}<&]/),[\"aposAttrValueContentChar cannot be ', {, }, <, or &\"])),Uo),Kp=(0,R.map)((0,R.star)((0,R.or)([(0,R.preceded)((0,R.peek)((0,R.not)(Yl,\n[])),Uo),(0,R.map)(T([Yl,(0,R.peek)((0,R.not)(Yl,[]))],Uo),a=>\"-\"+a)])),a=>a.join(\"\")),Lp=(0,R.map)((0,R.delimited)(rl,Kp,sl,!0),a=>[\"computedCommentConstructor\",[\"argExpr\",[\"stringConstantExpr\",[\"value\",a]]]]);const Mp=(0,R.filter)(ap,a=>\"xml\"!==a.toLowerCase(),['A processing instruction target cannot be \"xml\"']),Np=(0,R.map)((0,R.star)((0,R.preceded)((0,R.peek)((0,R.not)(ul,[])),Uo)),a=>a.join(\"\"));\nvar Op=(0,R.then)((0,R.preceded)(tl,(0,R.cut)(Mp)),(0,R.cut)((0,R.followed)((0,R.optional)((0,R.preceded)(Yo,Np)),ul)),(a,b)=>[\"computedPIConstructor\",[\"piTarget\",a],[\"piValueExpr\",[\"stringConstantExpr\",[\"value\",b]]]]),Pp=(0,R.map)($l,()=>[\"stepExpr\",[\"xpathAxis\",\"descendant-or-self\"],[\"anyKindTest\"]]),Qp=(0,R.or)([hn,jn]),Rp=(0,R.map)((0,R.star)((0,R.followed)(Uo,(0,R.peek)((0,R.not)(al,[\"Pragma contents should not contain '#)'\"])))),a=>a.join(\"\")),Sp=(0,R.map)((0,R.followed)((0,R.or)([Dm,Em,Fm,\nGm,Hm,Im]),mp),a=>a+\"Op\"),Tp=(0,R.or)([(0,R.followed)(Vk([xm],\"isOp\"),mp),Vk([Pl],\"nodeBeforeOp\"),Vk([Sl],\"nodeAfterOp\")]),Up=(0,R.or)([Vk([Jl],\"equalOp\"),Vk([Nl],\"notEqualOp\"),Vk([Ql],\"lessThanOrEqualOp\"),Vk([Ol],\"lessThanOp\"),Vk([Tl],\"greaterThanOrEqualOp\"),Vk([Rl],\"greaterThanOp\")]),Vp=(0,R.map)(Rn,()=>[\"annotation\",[\"annotationName\",\"updating\"]]);const Wp=(0,R.or)([qn,rn]),Xp=(0,R.or)([sn,tn]);\nvar Yp=(0,R.or)([yo,zo,Ao,Bo,Co,Hl,Do,Eo,Fo,Go,Ho]),Zp=(0,R.map)(T([mn,W,on,W],(0,R.or)([qn,pn])),a=>[\"boundarySpaceDecl\",a]),$p=(0,R.map)(T([mn,W,Wn,W],(0,R.or)([qn,pn])),a=>[\"constructionDecl\",a]),aq=(0,R.map)(T([mn,W,Xn,W],(0,R.or)([Yn,Zn])),a=>[\"orderingModeDecl\",a]),bq=(0,R.map)(T([mn,W,nn,W,Zm,W,Qm,W],(0,R.or)([un,vn])),a=>[\"emptyOrderDecl\",a]),cq=(0,R.then)(T([mn,W,wn,W],Wp),T([V,Ul,V],Xp),(a,b)=>[\"copyNamespacesDecl\",[\"preserveMode\",a],[\"inheritMode\",b]]);function dq(a){switch(a[0]){case \"constantExpr\":case \"varRef\":case \"contextItemExpr\":case \"functionCallExpr\":case \"sequenceExpr\":case \"elementConstructor\":case \"computedElementConstructor\":case \"computedAttributeConstructor\":case \"computedDocumentConstructor\":case \"computedTextConstructor\":case \"computedCommentConstructor\":case \"computedNamespaceConstructor\":case \"computedPIConstructor\":case \"orderedExpr\":case \"unorderedExpr\":case \"namedFunctionRef\":case \"inlineFunctionExpr\":case \"dynamicFunctionInvocationExpr\":case \"mapConstructor\":case \"arrayConstructor\":case \"stringConstructor\":case \"unaryLookup\":return a}return[\"sequenceExpr\",\na]}function eq(a){if(!(1<=a&&55295>=a||57344<=a&&65533>=a||65536<=a&&1114111>=a))throw Error(\"XQST0090: The character reference \"+a+\" (\"+a.toString(16)+\") does not reference a valid codePoint.\");}\nfunction fq(a){return a.replace(/(&[^;]+);/g,b=>{if(/^&#x/.test(b))return b=parseInt(b.slice(3,-1),16),eq(b),String.fromCodePoint(b);if(/^&#/.test(b))return b=parseInt(b.slice(2,-1),10),eq(b),String.fromCodePoint(b);switch(b){case \"<\":return\"<\";case \">\":return\">\";case \"&\":return\"&\";case \""\":return String.fromCharCode(34);case \"'\":return String.fromCharCode(39)}throw Error('XPST0003: Unknown character reference: \"'+b+'\"');})}\nfunction gq(a,b,c){if(!a.length)return[];let d=[a[0]];for(let e=1;e<a.length;++e){const f=d[d.length-1];\"string\"===typeof f&&\"string\"===typeof a[e]?d[d.length-1]=f+a[e]:d.push(a[e])}if(\"string\"===typeof d[0]&&0===d.length)return[];d=d.reduce((e,f,h)=>{if(\"string\"!==typeof f)e.push(f);else if(c&&/^\\s*$/.test(f)){const k=d[h+1];k&&\"CDataSection\"===k[0]?e.push(fq(f)):(h=d[h-1])&&\"CDataSection\"===h[0]&&e.push(fq(f))}else e.push(fq(f));return e},[]);if(!d.length)return d;if(1<d.length||b)for(a=0;a<d.length;a++)\"string\"===\ntypeof d[a]&&(d[a]=[\"stringConstantExpr\",[\"value\",d[a]]]);return d}function hq(a){return a[0].prefix?a[0].prefix+\":\"+a[1]:a[1]};var iq=(0,R.then)(jp,(0,R.optional)(Il),(a,b)=>null!==b?[\"singleType\",[\"atomicType\",...a],[\"optional\"]]:[\"singleType\",[\"atomicType\",...a]]),jq=(0,R.map)(jp,a=>[\"atomicType\",...a]);const kq=new Map;\nfunction lq(a){function b(m,r){return r.reduce((B,X)=>[X[0],[\"firstOperand\",B],[\"secondOperand\",X[1]]],m)}function c(m,r,B){return(0,R.then)(m,(0,R.star)((0,R.then)(S(r,V),(0,R.cut)(m),(X,ea)=>[X,ea])),B)}function d(m,r,B=\"firstOperand\",X=\"secondOperand\"){return(0,R.then)(m,(0,R.optional)((0,R.then)(S(r,V),(0,R.cut)(m),(ea,Fa)=>[ea,Fa])),(ea,Fa)=>null===Fa?ea:[Fa[0],[B,ea],[X,Fa[1]]])}function e(m){return a.mb?(r,B)=>{r=m(r,B);if(!r.success)return r;const X=n.has(B)?n.get(B):{offset:B,line:-1,ha:-1},\nea=n.has(r.offset)?n.get(r.offset):{offset:r.offset,line:-1,ha:-1};n.set(B,X);n.set(r.offset,ea);B=r.value.Wa;return(0,R.okWithValue)(r.offset,[\"x:stackTrace\",Object.assign({start:X,end:ea},B?{Wa:B}:{}),r.value])}:m}function f(m,r){return Bj(m,r)}function h(m,r){return yf(m,r)}function k(m,r){return e((0,R.or)([zr,Ar,Br,Cr,Dr,Er,Fr,Gr,Hr,Ir,Jr]))(m,r)}function l(m,r){return c(k,Ul,(B,X)=>0===X.length?B:[\"sequenceExpr\",B,...X.map(ea=>ea[1])])(m,r)}const n=new Map,t=(0,R.preceded)(dl,(0,R.followed)(S(l,\nV),el)),u=(0,R.map)(a.Za?(0,R.or)([S((0,R.star)((0,R.or)([pp,qp,rp,Wk(/[^\"&]/)])),ll),S((0,R.star)((0,R.or)([pp,qp,sp,Wk(/[^'&]/)])),jl)]):(0,R.or)([S((0,R.star)((0,R.or)([rp,Wk(/[^\"]/)])),ll),S((0,R.star)((0,R.or)([sp,Wk(/[^']/)])),jl)]),m=>m.join(\"\")),z=(0,R.or)([(0,R.map)(T([qm,V],(0,R.delimited)((0,R.followed)(bl,V),(0,R.then)(kp,T([V,Ul,V],jp),(m,r)=>[[\"elementName\",m],[\"typeName\",...r]]),(0,R.preceded)(V,cl))),([m,r])=>[\"elementTest\",m,r]),(0,R.map)(T([qm,V],(0,R.delimited)(bl,kp,cl)),m=>[\"elementTest\",\n[\"elementName\",m]]),(0,R.map)(T([qm,V],(0,R.delimited)(bl,V,cl)),()=>[\"elementTest\"])]),y=(0,R.or)([(0,R.map)(jp,m=>[\"QName\",...m]),(0,R.map)(Dl,()=>[\"star\"])]),G=(0,R.or)([(0,R.map)(T([rm,V],(0,R.delimited)((0,R.followed)(bl,V),(0,R.then)(y,T([V,Ul,V],jp),(m,r)=>[[\"attributeName\",m],[\"typeName\",...r]]),(0,R.preceded)(V,cl))),([m,r])=>[\"attributeTest\",m,r]),(0,R.map)(T([rm,V],(0,R.delimited)(bl,y,cl)),m=>[\"attributeTest\",[\"attributeName\",m]]),(0,R.map)(T([rm,V],(0,R.delimited)(bl,V,cl)),()=>[\"attributeTest\"])]),\nN=(0,R.map)(T([sm,V,bl],(0,R.followed)(jp,cl)),m=>[\"schemaElementTest\",...m]),U=(0,R.map)((0,R.delimited)(Io,S(jp,V),cl),m=>[\"schemaAttributeTest\",...m]),ca=(0,R.map)((0,R.preceded)(Jo,(0,R.followed)(S((0,R.optional)((0,R.or)([z,N])),V),cl)),m=>[\"documentTest\",...(m?[m]:[])]),Ga=(0,R.or)([(0,R.map)((0,R.preceded)(Ko,(0,R.followed)(S((0,R.or)([ap,u]),V),cl)),m=>[\"piTest\",[\"piTarget\",m]]),Uk(Vk([Lo],\"piTest\"))]),Gb=(0,R.or)([ca,z,G,N,U,Ga,tp,up,vp,wp]),Xb=(0,R.or)([(0,R.map)((0,R.preceded)(yl,ap),m=>\n[\"Wildcard\",[\"star\"],[\"NCName\",m]]),Uk(Vk([Dl],\"Wildcard\")),(0,R.map)((0,R.followed)(hp,Dl),m=>[\"Wildcard\",[\"uri\",m],[\"star\"]]),(0,R.map)((0,R.followed)(ap,xl),m=>[\"Wildcard\",[\"NCName\",m],[\"star\"]])]),fd=(0,R.or)([Xb,(0,R.map)(jp,m=>[\"nameTest\",...m])]),Yb=(0,R.or)([Gb,fd]),Kr=(0,R.then)((0,R.optional)(El),Yb,(m,r)=>null!==m||\"attributeTest\"===r[0]||\"schemaAttributeTest\"===r[0]?[\"stepExpr\",[\"xpathAxis\",\"attribute\"],r]:[\"stepExpr\",[\"xpathAxis\",\"child\"],r]),Lr=(0,R.or)([(0,R.then)(np,Yb,(m,r)=>[\"stepExpr\",\n[\"xpathAxis\",m],r]),Kr]),Mr=(0,R.map)(Wl,()=>[\"stepExpr\",[\"xpathAxis\",\"parent\"],[\"anyKindTest\"]]),Nr=(0,R.or)([(0,R.then)(op,Yb,(m,r)=>[\"stepExpr\",[\"xpathAxis\",m],r]),Mr]),Or=(0,R.map)((0,R.star)((0,R.preceded)(V,t)),m=>0<m.length?[\"predicates\",...m]:void 0),Pr=(0,R.then)((0,R.or)([Nr,Lr]),Or,(m,r)=>void 0===r?m:m.concat([r])),zf=(0,R.or)([Bp,(0,R.map)(u,m=>[\"stringConstantExpr\",[\"value\",a.Za?fq(m):m]])]),Af=(0,R.or)([(0,R.delimited)(bl,S(l,V),cl),(0,R.map)((0,R.delimited)(bl,V,cl),()=>[\"sequenceExpr\"])]),\nCj=(0,R.or)([k,Ep]),de=(0,R.map)((0,R.delimited)(bl,S((0,R.optional)((0,R.then)(Cj,(0,R.star)((0,R.preceded)(S(Ul,V),Cj)),(m,r)=>[m,...r])),V),cl),m=>null!==m?m:[]),Qr=(0,R.preceded)((0,R.not)(Rk(Dp,V,bl,()=>{}),[\"cannot use reserved keyword for function names\"]),e((0,R.then)(jp,(0,R.preceded)(V,de),(m,r)=>{r=[\"functionCallExpr\",[\"functionName\",...m],null!==r?[\"arguments\",...r]:[\"arguments\"]];const B=m[0].prefix,X=m[0].URI;m=m[1];r.Wa=B?`${B}:${m}`:X?`Q{${X}}${m}`:m;return r}))),Rr=(0,R.then)(jp,\n(0,R.preceded)(Gl,Ap),(m,r)=>[\"namedFunctionRef\",[\"functionName\",...m],r]),Ta=(0,R.delimited)(fl,S((0,R.optional)(l),V),gl),Dj=(0,R.map)(Ta,m=>m?m:[\"sequenceExpr\"]),gb=(0,R.or)([(0,R.map)(Ro,()=>[[\"voidSequenceType\"]]),(0,R.then)(f,(0,R.optional)((0,R.preceded)(V,Fp)),(m,r)=>[m,...(null!==r?[[\"occurrenceIndicator\",r]]:[])])]),Bf=(0,R.then)(T([Hl,V],jp),(0,R.optional)((0,R.followed)((0,R.then)(T([bl,V],zf),(0,R.star)(T([Ul,V],zf)),(m,r)=>m.concat(r)),cl)),(m,r)=>[\"annotation\",[\"annotationName\",...m],\n...(r?[\"arguments\",r]:[])]),Sr=(0,R.map)(T([om,V,bl,V,Dl,V],cl),()=>[\"anyFunctionTest\"]),Tr=(0,R.then)(T([om,V,bl,V],(0,R.optional)(c(gb,Ul,(m,r)=>m.concat.apply(m,r.map(B=>B[1]))))),T([V,cl,W,em,W],gb),(m,r)=>[\"typedFunctionTest\",[\"paramTypeList\",[\"sequenceType\",...(m?m:[])]],[\"sequenceType\",...r]]),Ur=(0,R.then)((0,R.star)(Bf),(0,R.or)([Sr,Tr]),(m,r)=>[r[0],...m,...r.slice(1)]),Vr=(0,R.map)(T([pm,V,bl,V,Dl,V],cl),()=>[\"anyMapTest\"]),Wr=(0,R.then)(T([pm,V,bl,V],jq),T([V,Ul],(0,R.followed)(S(gb,V),\ncl)),(m,r)=>[\"typedMapTest\",m,[\"sequenceType\",...r]]),Xr=(0,R.or)([Vr,Wr]),Yr=(0,R.map)(T([bn,V,bl,V,Dl,V],cl),()=>[\"anyArrayTest\"]),Zr=(0,R.map)(T([bn,V,bl],(0,R.followed)(S(gb,V),cl)),m=>[\"typedArrayTest\",[\"sequenceType\",...m]]),$r=(0,R.or)([Yr,Zr]),as=(0,R.map)((0,R.delimited)(bl,S(f,V),cl),m=>[\"parenthesizedItemType\",m]),Bj=(0,R.or)([Gb,Uk(Vk([Qo],\"anyItemType\")),Ur,Xr,$r,jq,as]),Ac=(0,R.map)(T([em,W],gb),m=>[\"typeDeclaration\",...m]),bs=(0,R.then)((0,R.preceded)(Fl,jp),(0,R.optional)((0,R.preceded)(W,\nAc)),(m,r)=>[\"param\",[\"varName\",...m],...(r?[r]:[])]),Ej=c(bs,Ul,(m,r)=>[m,...r.map(B=>B[1])]),cs=Sk((0,R.star)(Bf),T([V,om,V,bl,V],(0,R.optional)(Ej)),T([V,cl,V],(0,R.optional)((0,R.map)(T([em,V],(0,R.followed)(gb,V)),m=>[\"typeDeclaration\",...m]))),Dj,(m,r,B,X)=>[\"inlineFunctionExpr\",...m,[\"paramList\",...(r?r:[])],...(B?[B]:[]),[\"functionBody\",X]]),ds=(0,R.or)([Rr,cs]),es=(0,R.map)(k,m=>[\"mapKeyExpr\",m]),fs=(0,R.map)(k,m=>[\"mapValueExpr\",m]),gs=(0,R.then)(es,(0,R.preceded)(S(Bl,V),fs),(m,r)=>[\"mapConstructorEntry\",\nm,r]),hs=(0,R.preceded)(pm,(0,R.delimited)(S(fl,V),(0,R.map)((0,R.optional)(c(gs,S(Ul,V),(m,r)=>[m,...r.map(B=>B[1])])),m=>m?[\"mapConstructor\",...m]:[\"mapConstructor\"]),(0,R.preceded)(V,gl))),is=(0,R.map)((0,R.delimited)(dl,S((0,R.optional)(c(k,Ul,(m,r)=>[m,...r.map(B=>B[1])].map(B=>[\"arrayElem\",B]))),V),el),m=>[\"squareArray\",...(null!==m?m:[])]),js=(0,R.map)((0,R.preceded)(bn,(0,R.preceded)(V,Ta)),m=>[\"curlyArray\",...(null!==m?[[\"arrayElem\",m]]:[])]),ks=(0,R.map)((0,R.or)([is,js]),m=>[\"arrayConstructor\",\nm]),Fj=(0,R.or)([ap,Ap,Af,Dl]),ls=(0,R.map)((0,R.preceded)(Il,(0,R.preceded)(V,Fj)),m=>\"*\"===m?[\"unaryLookup\",[\"star\"]]:\"string\"===typeof m?[\"unaryLookup\",[\"NCName\",m]]:[\"unaryLookup\",m]),Cf=(0,R.or)([pp,qp,Vk([hl],\"{\"),Vk([il],\"}\"),(0,R.map)(Ta,m=>m||[\"sequenceExpr\"])]),ms=(0,R.or)([Hp,function(m,r){return Gj(m,r)},Cf,Gp]),ns=(0,R.or)([(0,R.map)(Ip,m=>m.replace(/[\\x20\\x0D\\x0A\\x09]/g,\" \")),Cf]),os=(0,R.or)([(0,R.map)(Jp,m=>m.replace(/[\\x20\\x0D\\x0A\\x09]/g,\" \")),Cf]),ps=(0,R.map)((0,R.or)([S((0,R.star)((0,R.or)([rp,\nns])),ll),S((0,R.star)((0,R.or)([sp,os])),jl)]),m=>gq(m,!1,!1)),qs=(0,R.then)(gp,(0,R.preceded)(S(Jl,(0,R.optional)(Yo)),ps),(m,r)=>{if(\"\"===m[0].prefix&&\"xmlns\"===m[1]){if(r.length&&\"string\"!==typeof r[0])throw Error(\"XQST0022: A namespace declaration may not contain enclosed expressions\");return[\"namespaceDeclaration\",r.length?[\"uri\",r[0]]:[\"uri\"]]}if(\"xmlns\"===m[0].prefix){if(r.length&&\"string\"!==typeof r[0])throw Error(\"XQST0022: The namespace declaration for 'xmlns:\"+m[1]+\"' may not contain enclosed expressions\");\nreturn[\"namespaceDeclaration\",[\"prefix\",m[1]],r.length?[\"uri\",r[0]]:[\"uri\"]]}return[\"attributeConstructor\",[\"attributeName\"].concat(m),0===r.length?[\"attributeValue\"]:1===r.length&&\"string\"===typeof r[0]?[\"attributeValue\",r[0]]:[\"attributeValueExpr\"].concat(r)]}),rs=(0,R.map)((0,R.star)((0,R.preceded)(Yo,(0,R.optional)(qs))),m=>m.filter(Boolean)),ss=Rk((0,R.preceded)(Ol,gp),rs,(0,R.or)([(0,R.map)(pl,()=>null),(0,R.then)((0,R.preceded)(Rl,(0,R.star)(ms)),T([V,ql],(0,R.followed)(gp,(0,R.then)((0,R.optional)(Yo),\nRl,()=>null))),(m,r)=>[gq(m,!0,!0),r])]),(m,r,B)=>{var X=B;if(B&&B.length){X=hq(m);const ea=hq(B[1]);if(X!==ea)throw Error('XQST0118: The start and the end tag of an element constructor must be equal. \"'+X+'\" does not match \"'+ea+'\"');X=B[0]}return[\"elementConstructor\",[\"tagName\",...m],...(r.length?[[\"attributeList\",...r]]:[]),...(X&&X.length?[[\"elementContent\",...X]]:[])]}),Gj=(0,R.or)([ss,Lp,Op]),ts=(0,R.map)(T([cn,V],Ta),m=>[\"computedDocumentConstructor\",...(m?[[\"argExpr\",m]]:[])]),us=(0,R.map)(Ta,\nm=>m?[[\"contentExpr\",m]]:[]),vs=(0,R.then)(T([qm,V],(0,R.or)([(0,R.map)(jp,m=>[\"tagName\",...m]),(0,R.map)((0,R.delimited)(fl,S(l,V),gl),m=>[\"tagNameExpr\",m])])),(0,R.preceded)(V,us),(m,r)=>[\"computedElementConstructor\",m,...r]),ws=(0,R.then)((0,R.preceded)(rm,(0,R.or)([(0,R.map)(T([mp,V],jp),m=>[\"tagName\",...m]),(0,R.map)((0,R.preceded)(V,(0,R.delimited)(fl,S(l,V),gl)),m=>[\"tagNameExpr\",m])])),(0,R.preceded)(V,Ta),(m,r)=>[\"computedAttributeConstructor\",m,[\"valueExpr\",r?r:[\"sequenceExpr\"]]]),xs=(0,R.map)(Ta,\nm=>m?[[\"prefixExpr\",m]]:[]),ys=(0,R.map)(Ta,m=>m?[[\"URIExpr\",m]]:[]),zs=(0,R.then)(T([dn,V],(0,R.or)([bp,xs])),(0,R.preceded)(V,ys),(m,r)=>[\"computedNamespaceConstructor\",...m,...r]),As=(0,R.map)(T([en,V],Ta),m=>[\"computedTextConstructor\",...(m?[[\"argExpr\",m]]:[])]),Bs=(0,R.map)(T([fn,V],Ta),m=>[\"computedCommentConstructor\",...(m?[[\"argExpr\",m]]:[])]),Cs=T([gn,V],(0,R.then)((0,R.or)([(0,R.map)(ap,m=>[\"piTarget\",m]),(0,R.map)((0,R.delimited)(fl,S(l,V),gl),m=>[\"piTargetExpr\",m])]),(0,R.preceded)(V,\nTa),(m,r)=>[\"computedPIConstructor\",m,...(r?[[\"piValueExpr\",r]]:[])])),Ds=(0,R.or)([ts,vs,ws,zs,As,Bs,Cs]),Es=(0,R.or)([Gj,Ds]),Hj=(0,R.or)([zf,lp,Af,Cp,Qr,Es,ds,hs,ks,ls]),Ij=(0,R.map)(T([Il,V],Fj),m=>\"*\"===m?[\"lookup\",[\"star\"]]:\"string\"===typeof m?[\"lookup\",[\"NCName\",m]]:[\"lookup\",m]),Fs=(0,R.then)((0,R.map)(Hj,m=>dq(m)),(0,R.star)((0,R.or)([(0,R.map)((0,R.preceded)(V,t),m=>[\"predicate\",m]),(0,R.map)((0,R.preceded)(V,de),m=>[\"argumentList\",m]),(0,R.preceded)(V,Ij)])),(m,r)=>{function B(){Jj&&1===\nFa.length?Bc.push([\"predicate\",Fa[0]]):0!==Fa.length&&Bc.push([\"predicates\",...Fa]);Fa.length=0}function X(Zb){B();0!==Bc.length?(\"sequenceExpr\"===ea[0][0]&&2<ea[0].length&&(ea=[[\"sequenceExpr\",...ea]]),ea=[[\"filterExpr\",...ea],...Bc],Bc.length=0):Zb&&(ea=[[\"filterExpr\",...ea]])}let ea=[m];const Fa=[],Bc=[];let Jj=!1;for(const Zb of r)switch(Zb[0]){case \"predicate\":Fa.push(Zb[1]);break;case \"lookup\":Jj=!0;B();Bc.push(Zb);break;case \"argumentList\":X(!1);1<ea.length&&(ea=[[\"sequenceExpr\",[\"pathExpr\",\n[\"stepExpr\",...ea]]]]);ea=[[\"dynamicFunctionInvocationExpr\",[\"functionItem\",...ea],...(Zb[1].length?[[\"arguments\",...Zb[1]]]:[])]];break;default:throw Error(\"unreachable\");}X(!0);return ea}),Cc=(0,R.or)([(0,R.map)(Fs,m=>[\"stepExpr\",...m]),Pr]),Gs=(0,R.followed)(Hj,(0,R.peek)((0,R.not)((0,R.preceded)(V,(0,R.or)([t,de,Ij])),[\"primary expression not followed by predicate, argumentList, or lookup\"]))),Hs=(0,R.or)([Rk(Cc,(0,R.preceded)(V,Pp),(0,R.preceded)(V,h),(m,r,B)=>[\"pathExpr\",m,r,...B]),(0,R.then)(Cc,\n(0,R.preceded)(S(Zl,V),h),(m,r)=>[\"pathExpr\",m,...r]),Gs,(0,R.map)(Cc,m=>[\"pathExpr\",m])]),yf=(0,R.or)([Rk(Cc,(0,R.preceded)(V,Pp),(0,R.preceded)(V,h),(m,r,B)=>[m,r,...B]),(0,R.then)(Cc,(0,R.preceded)(S(Zl,V),h),(m,r)=>[m,...r]),(0,R.map)(Cc,m=>[m])]),Is=(0,R.or)([(0,R.map)(T([Zl,V],yf),m=>[\"pathExpr\",[\"rootExpr\"],...m]),(0,R.then)(Pp,(0,R.preceded)(V,yf),(m,r)=>[\"pathExpr\",[\"rootExpr\"],m,...r]),(0,R.map)((0,R.followed)(Zl,(0,R.not)((0,R.preceded)(V,a.Za?Wk(/[*<a-zA-Z]/):Wk(/[*a-zA-Z]/)),[\"Single rootExpr cannot be by followed by something that can be interpreted as a relative path\"])),\n()=>[\"pathExpr\",[\"rootExpr\"]])]),Js=Qk((0,R.or)([Hs,Is]),kq),Ks=(0,R.preceded)(kn,(0,R.then)((0,R.optional)((0,R.or)([(0,R.map)((0,R.preceded)(V,Qp),m=>[\"validationMode\",m]),(0,R.map)(T([V,ln,V],jp),m=>[\"type\",...m])])),(0,R.delimited)((0,R.preceded)(V,fl),S(l,V),gl),(m,r)=>[\"validateExpr\",...(m?[m]:[]),[\"argExpr\",r]])),Ls=(0,R.delimited)($k,(0,R.then)((0,R.preceded)(V,jp),(0,R.optional)((0,R.preceded)(W,Rp)),(m,r)=>r?[\"pragma\",[\"pragmaName\",m],[\"pragmaContents\",r]]:[\"pragma\",[\"pragmaName\",m]]),(0,R.preceded)(V,\nal)),Ms=(0,R.map)((0,R.followed)((0,R.plus)(Ls),(0,R.preceded)(V,(0,R.delimited)(fl,S((0,R.optional)(l),V),gl))),m=>[\"extensionExpr\",...m]),Ns=e(c(Js,Kl,(m,r)=>0===r.length?m:[\"simpleMapExpr\",\"pathExpr\"===m[0]?m:[\"pathExpr\",[\"stepExpr\",[\"filterExpr\",dq(m)]]]].concat(r.map(B=>{B=B[1];return\"pathExpr\"===B[0]?B:[\"pathExpr\",[\"stepExpr\",[\"filterExpr\",dq(B)]]]})))),Os=(0,R.or)([Ks,Ms,Ns]),Kj=(0,R.or)([(0,R.then)((0,R.or)([Vk([Yl],\"unaryMinusOp\"),Vk([Xl],\"unaryPlusOp\")]),(0,R.preceded)(V,function(m,r){return Kj(m,\nr)}),(m,r)=>[m,[\"operand\",r]]),Os]),Ps=(0,R.or)([(0,R.map)(jp,m=>[\"EQName\",...m]),lp,Af]),Qs=(0,R.then)(Kj,(0,R.star)(T([V,am,V],(0,R.then)(Ps,(0,R.preceded)(V,de),(m,r)=>[m,r]))),(m,r)=>r.reduce((B,X)=>[\"arrowExpr\",[\"argExpr\",B],X[0],[\"arguments\",...X[1]]],m)),Rs=(0,R.then)(Qs,(0,R.optional)(T([V,fm,W,em,mp,V],iq)),(m,r)=>null!==r?[\"castExpr\",[\"argExpr\",m],r]:m),Ss=(0,R.then)(Rs,(0,R.optional)(T([V,gm,W,em,mp,V],iq)),(m,r)=>null!==r?[\"castableExpr\",[\"argExpr\",m],r]:m),Ts=(0,R.then)(Ss,(0,R.optional)(T([V,\nhm,W,em,mp,V],gb)),(m,r)=>null!==r?[\"treatExpr\",[\"argExpr\",m],[\"sequenceType\",...r]]:m),Us=(0,R.then)(Ts,(0,R.optional)(T([V,im,W,jm,mp,V],gb)),(m,r)=>null!==r?[\"instanceOfExpr\",[\"argExpr\",m],[\"sequenceType\",...r]]:m),Vs=c(Us,(0,R.followed)((0,R.or)([Vk([tm],\"intersectOp\"),Vk([um],\"exceptOp\")]),mp),b),Ws=c(Vs,(0,R.or)([Vk([Ll],\"unionOp\"),(0,R.followed)(Vk([vm],\"unionOp\"),mp)]),b),Xs=c(Ws,(0,R.or)([Vk([Dl],\"multiplyOp\"),(0,R.followed)(Vk([Am],\"divOp\"),mp),(0,R.followed)(Vk([Bm],\"idivOp\"),mp),(0,R.followed)(Vk([Cm],\n\"modOp\"),mp)]),b),Ys=c(Xs,(0,R.or)([Vk([Yl],\"subtractOp\"),Vk([Xl],\"addOp\")]),b),Zs=d(Ys,(0,R.followed)(Vk([wm],\"rangeSequenceExpr\"),mp),\"startExpr\",\"endExpr\"),$s=c(Zs,Vk([Ml],\"stringConcatenateOp\"),b),at=d($s,(0,R.or)([Sp,Tp,Up])),bt=c(at,(0,R.followed)(Vk([zm],\"andOp\"),mp),b),Jr=c(bt,(0,R.followed)(Vk([ym],\"orOp\"),mp),b),ct=e((0,R.map)(l,m=>[\"ifClause\",m])),dt=e((0,R.map)(k,m=>[\"thenClause\",m])),et=e((0,R.map)(k,m=>[\"elseClause\",m])),Dr=(0,R.then)((0,R.then)(T([Mm,V,bl,V],ct),T([V,cl,V,Nm,mp,V],\ndt),(m,r)=>[m,r]),T([V,Om,mp,V],et),(m,r)=>[\"ifThenElseExpr\",m[0],m[1],r]),ft=(0,R.delimited)(Pm,W,Qm),gt=(0,R.map)(T([Rm,W,Fl],jp),m=>[\"positionalVariableBinding\",...m]),ht=Tk((0,R.preceded)(Fl,(0,R.cut)(jp)),(0,R.cut)((0,R.preceded)(V,(0,R.optional)(Ac))),(0,R.cut)((0,R.preceded)(V,(0,R.optional)(ft))),(0,R.cut)((0,R.preceded)(V,(0,R.optional)(gt))),(0,R.cut)((0,R.preceded)(S(Sm,V),k)),(m,r,B,X,ea)=>[\"forClauseItem\",[\"typedVariableBinding\",[\"varName\",...m,...(r?[r]:[])]],...(B?[[\"allowingEmpty\"]]:\n[]),...(X?[X]:[]),[\"forExpr\",ea]]),it=T([Tm,W],c(ht,Ul,(m,r)=>[\"forClause\",m,...r.map(B=>B[1])])),jt=Rk((0,R.preceded)(Fl,jp),(0,R.preceded)(V,(0,R.optional)(Ac)),(0,R.preceded)(S(zl,V),k),(m,r,B)=>[\"letClauseItem\",[\"typedVariableBinding\",[\"varName\",...m],...(r?[r]:[])],[\"letExpr\",B]]),kt=(0,R.map)(T([Um,V],c(jt,Ul,(m,r)=>[m,...r.map(B=>B[1])])),m=>[\"letClause\",...m]),Lj=(0,R.or)([it,kt]),lt=(0,R.map)(T([Vm,mp,V],k),m=>[\"whereClause\",m]),mt=(0,R.map)((0,R.preceded)(Fl,jp),m=>[\"varName\",...m]),nt=\n(0,R.then)((0,R.preceded)(V,(0,R.optional)(Ac)),(0,R.preceded)(S(zl,V),k),(m,r)=>[\"groupVarInitialize\",...(m?[[\"typeDeclaration\",...m]]:[]),[\"varValue\",r]]),ot=Rk(mt,(0,R.optional)(nt),(0,R.optional)((0,R.map)((0,R.preceded)(S(Wm,V),u),m=>[\"collation\",m])),(m,r,B)=>[\"groupingSpec\",m,...(r?[r]:[]),...(B?[B]:[])]),pt=c(ot,Ul,(m,r)=>[m,...r.map(B=>B[1])]),qt=(0,R.map)(T([Xm,W,Ym,V],pt),m=>[\"groupByClause\",...m]),rt=Rk((0,R.optional)((0,R.or)([jo,ko])),(0,R.optional)(T([V,Qm,V],(0,R.or)([un,vn].map(m=>\n(0,R.map)(m,r=>\"empty \"+r))))),(0,R.preceded)(V,(0,R.optional)(T([Wm,V],u))),(m,r,B)=>m||r||B?[\"orderModifier\",...(m?[[\"orderingKind\",m]]:[]),...(r?[[\"emptyOrderingMode\",r]]:[]),...(B?[[\"collation\",B]]:[])]:null),st=(0,R.then)(k,(0,R.preceded)(V,rt),(m,r)=>[\"orderBySpec\",[\"orderByExpr\",m],...(r?[r]:[])]),tt=c(st,Ul,(m,r)=>[m,...r.map(B=>B[1])]),ut=(0,R.then)((0,R.or)([(0,R.map)(T([Zm,W],Ym),()=>!1),(0,R.map)(T([$m,W,Zm,W],Ym),()=>!0)]),(0,R.preceded)(V,tt),(m,r)=>[\"orderByClause\",...(m?[[\"stable\"]]:\n[]),...r]),vt=(0,R.or)([Lj,lt,qt,ut]),wt=(0,R.map)(T([an,V],k),m=>[\"returnClause\",m]),zr=Rk(Lj,(0,R.cut)((0,R.star)((0,R.preceded)(V,vt))),(0,R.cut)((0,R.preceded)(V,wt)),(m,r,B)=>[\"flworExpr\",m,...r,B]),xt=c(gb,Ll,(m,r)=>0===r.length?[\"sequenceType\",...m]:[\"sequenceTypeUnion\",[\"sequenceType\",...m],...r.map(B=>[\"sequenceType\",...B[1]])]),yt=Rk(T([yn,V],(0,R.optional)((0,R.preceded)(Fl,(0,R.followed)((0,R.followed)(jp,W),em)))),(0,R.preceded)(V,xt),T([W,an,W],k),(m,r,B)=>[\"typeswitchExprCaseClause\"].concat(m?\n[[\"variableBinding\",...m]]:[],[r],[[\"resultExpr\",B]])),Cr=Sk((0,R.preceded)(zn,S((0,R.delimited)(bl,S(l,V),cl),V)),(0,R.plus)((0,R.followed)(yt,V)),T([nn,W],(0,R.optional)((0,R.preceded)(Fl,(0,R.followed)(jp,W)))),T([an,W],k),(m,r,B,X)=>[\"typeswitchExpr\",[\"argExpr\",m],...r,[\"typeswitchExprDefaultClause\",...(B||[]),[\"resultExpr\",X]]]),zt=Rk((0,R.preceded)(Fl,jp),(0,R.optional)((0,R.preceded)(W,Ac)),(0,R.preceded)(S(Sm,W),k),(m,r,B)=>[\"quantifiedExprInClause\",[\"typedVariableBinding\",[\"varName\",...m],\n...(r?[r]:[])],[\"sourceExpr\",B]]),At=c(zt,Ul,(m,r)=>[m,...r.map(B=>B[1])]),Ar=Rk((0,R.or)([An,Bn]),(0,R.preceded)(W,At),(0,R.preceded)(S(Cn,V),k),(m,r,B)=>[\"quantifiedExpr\",[\"quantifier\",m],...r,[\"predicateExpr\",B]]),Fr=(0,R.map)(T([mm,W,(0,R.or)([lm,km]),W],k),m=>[\"deleteExpr\",[\"targetExpr\",m]]),Hr=Rk(T([Dn,W],(0,R.optional)(T([nm,W,jm],W))),T([km,W],k),(0,R.preceded)(S(En,W),k),(m,r,B)=>m?[\"replaceExpr\",[\"replaceValue\"],[\"targetExpr\",r],[\"replacementExpr\",B]]:[\"replaceExpr\",[\"targetExpr\",r],[\"replacementExpr\",\nB]]),Bt=(0,R.then)(lp,(0,R.preceded)(S(zl,V),k),(m,r)=>[\"transformCopy\",m,[\"copySource\",r]]),Ir=Rk(T([Fn,W],c(Bt,Ul,(m,r)=>[m,...r.map(B=>B[1])])),T([V,Gn,W],k),(0,R.preceded)(S(an,W),k),(m,r,B)=>[\"transformExpr\",[\"transformCopies\",...m],[\"modifyExpr\",r],[\"returnExpr\",B]]),Ct=(0,R.or)([(0,R.followed)((0,R.map)((0,R.optional)((0,R.followed)(T([em,W],(0,R.or)([(0,R.map)(Hn,()=>[\"insertAsFirst\"]),(0,R.map)(In,()=>[\"insertAsLast\"])])),W)),m=>m?[\"insertInto\",m]:[\"insertInto\"]),Ln),(0,R.map)(Kn,()=>[\"insertAfter\"]),\n(0,R.map)(Jn,()=>[\"insertBefore\"])]),Er=Rk(T([Mn,W,(0,R.or)([lm,km]),W],k),(0,R.preceded)(W,Ct),(0,R.preceded)(W,k),(m,r,B)=>[\"insertExpr\",[\"sourceExpr\",m],r,[\"targetExpr\",B]]),Gr=(0,R.then)(T([Nn,W,km,V],k),T([W,em,W],k),(m,r)=>[\"renameExpr\",[\"targetExpr\",m],[\"newNameExpr\",r]]),Dt=(0,R.then)((0,R.plus)((0,R.then)((0,R.map)(T([yn,W],(0,R.cut)(k)),m=>[\"switchCaseExpr\",m]),(0,R.cut)(W),m=>m)),(0,R.cut)(T([an,W],(0,R.cut)(k))),(m,r)=>[\"switchExprCaseClause\",...m,[\"resultExpr\",r]]),Br=Rk(T([On,V,bl],\n(0,R.cut)(l)),(0,R.cut)(T([V,cl,(0,R.cut)(V)],(0,R.plus)((0,R.followed)(Dt,V)))),(0,R.cut)(T([nn,W,an,W],k)),(m,r,B)=>[\"switchExpr\",[\"argExpr\",m],...r,[\"switchExprDefaultClause\",[\"resultExpr\",B]]]),Et=(0,R.map)(l,m=>[\"queryBody\",m]),Ft=T([mn,W,dn,W],(0,R.cut)((0,R.then)(ap,(0,R.preceded)(S(Jl,V),u),(m,r)=>[\"namespaceDecl\",[\"prefix\",m],[\"uri\",r]]))),Gt=(0,R.then)(T([Pn,W,Fl,V],(0,R.then)(jp,(0,R.optional)((0,R.preceded)(V,Ac)),(m,r)=>[m,r])),(0,R.cut)((0,R.or)([(0,R.map)(T([V,zl,V],k),m=>[\"varValue\",\nm]),(0,R.map)(T([W,Qn],(0,R.optional)(T([V,zl,V],k))),m=>[\"external\",...(m?[[\"varValue\",m]]:[])])])),([m,r],B)=>[\"varDecl\",[\"varName\",...m],...(null!==r?[r]:[]),B]),Ht=Sk(T([om,W,(0,R.cut)((0,R.peek)((0,R.not)((0,R.followed)(Dp,(0,R.not)(Bl,[\"\"])),[\"Cannot use reserved function name\"])))],jp),(0,R.cut)(T([V,bl,V],(0,R.optional)(Ej))),(0,R.cut)(T([V,cl],(0,R.optional)(T([W,em,W],gb)))),(0,R.cut)((0,R.preceded)(V,(0,R.or)([(0,R.map)(Dj,m=>[\"functionBody\",m]),(0,R.map)(Qn,()=>[\"externalDefinition\"])]))),\n(m,r,B,X)=>[\"functionDecl\",[\"functionName\",...m],[\"paramList\",...(r||[])],...(B?[[\"typeDeclaration\",...B]]:[]),X]),It=T([mn,W],(0,R.then)((0,R.star)((0,R.followed)((0,R.or)([Bf,Vp]),W)),(0,R.or)([Gt,Ht]),(m,r)=>[r[0],...m,...r.slice(1)])),Jt=(0,R.then)(T([mn,W,nn,W],(0,R.or)([qm,om])),T([W,dn,W],u),(m,r)=>[\"defaultNamespaceDecl\",[\"defaultNamespaceCategory\",m],[\"uri\",r]]),Kt=(0,R.or)([(0,R.map)((0,R.followed)(T([dn,W],ap),(0,R.preceded)(V,Jl)),m=>[\"namespacePrefix\",m]),(0,R.map)(T([nn,W,qm,W],dn),\n()=>[\"defaultElementNamespace\"])]),Lt=T([Sn,W,Tn],Rk((0,R.optional)((0,R.preceded)(W,Kt)),(0,R.preceded)(V,u),(0,R.optional)((0,R.then)(T([W,Rm,W],u),(0,R.star)(T([V,Ul,V],u)),(m,r)=>[m,...r])),(m,r,B)=>[\"schemaImport\",...(m?[m]:[]),[\"targetNamespace\",r],...(B?[B]:[])])),Mt=T([Sn,W,Un],Rk((0,R.optional)((0,R.followed)(T([W,dn,W],ap),(0,R.preceded)(V,Jl))),(0,R.preceded)(V,u),(0,R.optional)((0,R.then)(T([W,Rm,W],u),(0,R.star)(T([V,Ul,V],u)),(m,r)=>[m,...r])),(m,r)=>[\"moduleImport\",[\"namespacePrefix\",\nm],[\"targetNamespace\",r]])),Nt=(0,R.or)([Lt,Mt]),Ot=(0,R.map)(T([mn,W,nn,W,Wm,W],u),m=>[\"defaultCollationDecl\",m]),Pt=(0,R.map)(T([mn,W,Vn,W],u),m=>[\"baseUriDecl\",m]),Qt=(0,R.then)(T([mn,W],(0,R.or)([(0,R.map)(T([xn,W],jp),m=>[\"decimalFormatName\",...m]),(0,R.map)(T([nn,W],xn),()=>null)])),(0,R.star)((0,R.then)((0,R.preceded)(W,Yp),(0,R.preceded)(S(Jl,W),u),(m,r)=>[\"decimalFormatParam\",[\"decimalFormatParamName\",m],[\"decimalFormatParamValue\",r]])),(m,r)=>[\"decimalFormatDecl\",...(m?[m]:[]),...r]),Rt=\n(0,R.or)([Zp,Ot,Pt,$p,aq,bq,cq,Qt]),St=(0,R.then)(T([mn,W,$n,W],jp),(0,R.preceded)(W,u),(m,r)=>[\"optionDecl\",[\"optionName\",m],[\"optionContents\",r]]),Tt=(0,R.then)(T([mn,W,ao,W,bo],(0,R.optional)(T([W,em],Bj))),(0,R.or)([(0,R.map)((0,R.preceded)(S(zl,V),k),m=>[\"varValue\",m]),(0,R.map)(T([W,Qn],(0,R.optional)((0,R.preceded)(S(zl,V),k))),()=>[\"external\"])]),(m,r)=>[\"contextItemDecl\",...(m?[[\"contextItemType\",m]]:[]),r]),Mj=(0,R.then)((0,R.star)((0,R.followed)((0,R.or)([Jt,Rt,Ft,Nt]),(0,R.cut)(S(Cl,V)))),\n(0,R.star)((0,R.followed)((0,R.or)([Tt,It,St]),(0,R.cut)(S(Cl,V)))),(m,r)=>0===m.length&&0===r.length?null:[\"prolog\",...m,...r]),Ut=T([Un,W,dn,W],(0,R.then)((0,R.followed)(ap,S(Jl,V)),(0,R.followed)(u,S(Cl,V)),(m,r)=>[\"moduleDecl\",[\"prefix\",m],[\"uri\",r]])),Vt=(0,R.then)(Ut,(0,R.preceded)(V,Mj),(m,r)=>[\"libraryModule\",m,...(r?[r]:[])]),Wt=(0,R.then)(Mj,(0,R.preceded)(V,Et),(m,r)=>[\"mainModule\",...(m?[m]:[]),r]),Xt=(0,R.map)(T([co,V],(0,R.followed)((0,R.or)([(0,R.then)((0,R.preceded)(fo,W),u,m=>[\"encoding\",\nm]),(0,R.then)(T([eo,W],u),(0,R.optional)(T([W,fo,W],u)),(m,r)=>[[\"version\",m],...(r?[[\"encoding\",r]]:[])])]),(0,R.preceded)(V,Cl))),m=>[\"versionDecl\",...m]),Yt=(0,R.then)((0,R.optional)(S(Xt,V)),(0,R.or)([Vt,Wt]),(m,r)=>[\"module\",...(m?[m]:[]),r]),Zt=(0,R.complete)(S(Yt,V));return(m,r)=>{n.clear();r=Zt(m,r);let B=1,X=1;for(let ea=0;ea<m.length+1;ea++){if(n.has(ea)){const Fa=n.get(ea);Fa.line=X;Fa.ha=B}\"\\n\"===m[ea]?(X++,B=1):B++}return r}}\nconst mq=lq({mb:!1,Za:!1}),nq=lq({mb:!0,Za:!1}),oq=lq({mb:!1,Za:!0}),pq=lq({mb:!0,Za:!0});function qq(a,b){var c=!!b.Z;b=!!b.debug;So.clear();To.clear();kq.clear();c=c?b?pq(a,0):oq(a,0):b?nq(a,0):mq(a,0);if(!0===c.success)return c.value;a=a.substring(0,c.offset).split(\"\\n\");b=a[a.length-1].length+1;throw new Rh({start:{offset:c.offset,line:a.length,ha:b},end:{offset:c.offset+1,line:a.length,ha:b+1}},\"\",\"\",Error(`XPST0003: Failed to parse script. Expected ${[...(new Set(c.expected))]}`));};const rq=\"http://www.w3.org/XML/1998/namespace http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema-instance http://www.w3.org/2005/xpath-functions http://www.w3.org/2005/xpath-functions/math http://www.w3.org/2012/xquery http://www.w3.org/2005/xpath-functions/array http://www.w3.org/2005/xpath-functions/map\".split(\" \");\nfunction sq(a,b,c,d,e){var f=F(a,\"functionName\"),h=I(f,\"prefix\")||\"\";let k=I(f,\"URI\");const l=H(f);if(null===k&&(k=\"\"===h?null===b.v?\"http://www.w3.org/2005/xpath-functions\":b.v:b.$(h),!k&&h))throw zg(h);if(rq.includes(k))throw tg();h=K(a,\"annotation\").map(y=>F(y,\"annotationName\"));f=h.every(y=>!I(y,\"URI\")&&\"private\"!==H(y));h=h.some(y=>!I(y,\"URI\")&&\"updating\"===H(y));if(!k)throw vg();const n=Lg(a),t=K(F(a,\"paramList\"),\"param\"),u=t.map(y=>F(y,\"varName\")),z=t.map(y=>Lg(y));if(a=F(a,\"functionBody\")){if(b.va(k,\nl,z.length))throw ug(k,l);if(!e)return;const y=Fk(a[1],{sa:!1,Z:!0}),G=new Cg(b),N=u.map(U=>{let ca=I(U,\"URI\");const Ga=I(U,\"prefix\");U=H(U);Ga&&null===ca&&(ca=b.$(Ga||\"\"));return Hg(G,ca,U)});e=h?{j:z,arity:u.length,callFunction:(U,ca,Ga,...Gb)=>{U=hc(bc(U,-1,null,w.empty()),N.reduce((Xb,fd,Yb)=>{Xb[fd]=Ra(Gb[Yb]);return Xb},Object.create(null)));return y.s(U,ca)},wb:!1,I:!0,cb:f,localName:l,namespaceURI:k,i:n}:{j:z,arity:u.length,callFunction:(U,ca,Ga,...Gb)=>{U=hc(bc(U,-1,null,w.empty()),N.reduce((Xb,\nfd,Yb)=>{Xb[fd]=Ra(Gb[Yb]);return Xb},Object.create(null)));return C(y,U,ca)},wb:!1,I:!1,cb:f,localName:l,namespaceURI:k,i:n};c.push({ba:y,Eb:G});d.push({arity:u.length,ba:y,Ab:e,localName:l,namespaceURI:k,cb:f})}else{if(h)throw Error(\"Updating external function declarations are not supported\");e={j:z,arity:u.length,callFunction:(y,G,N,...U)=>{const ca=N.va(k,l,u.length,!0);if(!ca)throw Error(`XPST0017: Function Q{${k}}${l} with arity of ${u.length} not registered. ${mg(l)}`);if(ca.i.type!==n.type||\nca.j.some((Ga,Gb)=>Ga.type!==z[Gb].type))throw Error(\"External function declaration types do not match actual function\");return ca.callFunction(y,G,N,...U)},wb:!0,I:!1,localName:l,namespaceURI:k,cb:f,i:n}}Fg(b,k,l,u.length,e)}\nfunction tq(a,b,c,d){const e=[],f=[];K(a,\"*\").forEach(t=>{switch(t[0]){case \"moduleImport\":case \"namespaceDecl\":case \"defaultNamespaceDecl\":case \"functionDecl\":case \"varDecl\":break;default:throw Error(\"Not implemented: only module imports, namespace declarations, and function declarations are implemented in XQuery modules\");}});const h=new Set;K(a,\"moduleImport\").forEach(t=>{const u=H(F(t,\"namespacePrefix\"));t=H(F(t,\"targetNamespace\"));if(h.has(t))throw Error(`XQST0047: The namespace \"${t}\" is imported more than once.`);\nh.add(t);Gg(b,u,t)});K(a,\"namespaceDecl\").forEach(t=>{const u=H(F(t,\"prefix\"));t=H(F(t,\"uri\"));if(\"xml\"===u||\"xmlns\"===u)throw xg();if(\"http://www.w3.org/XML/1998/namespace\"===t||\"http://www.w3.org/2000/xmlns/\"===t)throw xg();Gg(b,u,t)});let k=null,l=null;for(const t of K(a,\"defaultNamespaceDecl\")){const u=H(F(t,\"defaultNamespaceCategory\")),z=H(F(t,\"uri\"));if(!z)throw vg();if(\"http://www.w3.org/XML/1998/namespace\"===z||\"http://www.w3.org/2000/xmlns/\"===z)throw xg();if(\"function\"===u){if(k)throw wg();\nk=z}else if(\"element\"===u){if(l)throw wg();l=z}}k&&(b.v=k);l&&Gg(b,\"\",l);K(a,\"functionDecl\").forEach(t=>{sq(t,b,e,f,c)});const n=[];K(a,\"varDecl\").forEach(t=>{const u=Kg(F(t,\"varName\"));let z=u.namespaceURI;if(null===z&&(z=b.$(u.prefix),!z&&u.prefix))throw zg(u.prefix);if(rq.includes(z))throw tg();var y=F(t,\"external\");t=F(t,\"varValue\");let G,N;null!==y?(y=F(y,\"varValue\"),null!==y&&(G=F(y,\"*\"))):null!==t&&(G=F(t,\"*\"));if(n.some(U=>U.namespaceURI===z&&U.localName===u.localName))throw Error(`XQST0049: The variable ${z?\n`Q{${z}}`:\"\"}${u.localName} has already been declared.`);Hg(b,z||\"\",u.localName);if(c&&(G&&(N=Fk(G,{sa:!1,Z:!0})),G&&!Eg(b,z||\"\",u.localName))){let U=null;Ig(b,z,u.localName,(ca,Ga)=>{if(U)return U();U=Ra(C(N,ca,Ga));return U()});e.push({ba:N,Eb:new Cg(b)});n.push({ba:N,localName:u.localName,namespaceURI:z})}});f.forEach(t=>{if(!t.Ab.I&&t.ba.I)throw Oe(`The function Q{${t.namespaceURI}}${t.localName} is updating but the %updating annotation is missing.`);});return{Ia:f.map(t=>t.Ab),Ta:n,source:d,\npa:t=>{h.forEach(u=>{Nk(b,u)});e.forEach(({ba:u,Eb:z})=>{h.forEach(y=>{Nk(z,y)});t.Ia.forEach(y=>{z.va(y.namespaceURI,y.localName,y.arity,!0)||y.cb&&Fg(z,y.namespaceURI,y.localName,y.arity,y)});t.Ta.forEach(y=>{z.eb(y.namespaceURI,y.localName)||Hg(z,y.namespaceURI,y.localName)});u.v(z)})}}};function uq(a,b,c,d,e,f,h){const k=b.Z?\"XQuery\":\"XPath\";c=b.Ha?null:Ik(a,k,c,d,e,b.debug,f,h);return null!==c?{state:c.hc?1:2,ba:c.ba}:{state:0,Zb:\"string\"===typeof a?qq(a,b):Kk(a)}}function vq(a,b,c,d){const e=F(a,\"mainModule\");if(!e)throw Error(\"Can not execute a library module.\");const f=F(e,\"prolog\");if(f){if(!b.Z)throw Error(\"XPST0003: Use of XQuery functionality is not allowed in XPath context\");Ok();d=tq(f,c,!0,d);d.pa(d)}O(a,new rh(c));a=J(e,[\"queryBody\",\"*\"]);return Q(a,b)}\nfunction wq(a,b,c,d,e,f,h){const k=new qg(c,d,f,h),l=new Cg(k);0<Object.keys(e).length&&Ok();Object.keys(e).forEach(n=>{const t=e[n];Nk(l,t);Gg(l,n,t)});\"string\"===typeof a&&(a=Pk(a));c=uq(a,b,c,d,e,f,h);switch(c.state){case 2:return{ga:l,ba:c.ba};case 1:return c.ba.v(l),Jk(a,b.Z?\"XQuery\":\"XPath\",k,e,c.ba,b.debug,f),{ga:l,ba:c.ba};case 0:return c=vq(c.Zb,b,l,a),c.v(l),b.Ha||Jk(a,b.Z?\"XQuery\":\"XPath\",k,e,c,b.debug,f),{ga:l,ba:c}}};function xq(a){if(v(a.type,1))return a.value;if(v(a.type,54))return a.value.node;throw mc(`Unable to convert selector argument of type ${Da[a.type]} to either an ${Da[1]} or an ${Da[54]} representing an XQueryX program while calling 'fontoxpath:evaluate'`);}\nfunction yq(a,b,c,d){a=a.first();const e=b.first().h.reduce((f,h)=>{f[h.key.value]=Ra(h.value());return f},Object.create(null));b=e[\".\"]?e[\".\"]():w.empty();delete e[\".\"];try{const {ba:f,ga:h}=wq(xq(a),{sa:!1,Z:!0,debug:d.debug,Ha:d.Ha},n=>c.$(n),Object.keys(e).reduce((n,t)=>{n[t]=t;return n},{}),{},\"http://www.w3.org/2005/xpath-functions\",(n,t)=>c.Sa(n,t)),k=!b.F(),l=new cc({M:k?b.first():null,Aa:k?0:-1,ta:b,ra:Object.keys(e).reduce((n,t)=>{n[h.eb(null,t)]=e[t];return n},Object.create(null))});return{ic:f.h(l,\nd).value,ec:a}}catch(f){hg(a.value,f)}};function zq(a,b,c){if(1!==b.node.nodeType&&9!==b.node.nodeType)return[];const d=hb(a,b).reduce((e,f)=>{for(const h of zq(a,f,c))e.push(h);return e},[]);c(b)&&d.unshift(b);return d}\nconst Aq=(a,b,c,d,e)=>{a=e.first();if(!a)throw lc(\"The context is absent, it needs to be present to use id function.\");if(!v(a.type,53))throw mc(\"The context item is not a node, it needs to be node to use id function.\");const f=b.h,h=d.O().reduce((k,l)=>{l.value.split(/\\s+/).forEach(n=>{k[n]=!0});return k},Object.create(null));for(b=a.value;9!==b.node.nodeType;)if(b=x(f,b),null===b)throw Error(\"FODC0001: the root node of the target node is not a document node.\");b=zq(f,b,k=>{if(1!==k.node.nodeType)return!1;\nk=fb(f,k,\"id\");if(!k||!h[k])return!1;h[k]=!1;return!0});return w.create(b.map(k=>rb(k)))},Bq=(a,b,c,d,e)=>{a=e.first();if(!a)throw lc(\"The context is absent, it needs to be present to use idref function.\");if(!v(a.type,53))throw mc(\"The context item is not a node, it needs to be node to use idref function.\");const f=b.h,h=d.O().reduce((k,l)=>{k[l.value]=!0;return k},Object.create(null));for(b=a.value;9!==b.node.nodeType;)if(b=x(f,b),null===b)throw Error(\"FODC0001: the root node of the context node is not a document node.\");\nb=zq(f,b,k=>1!==k.node.nodeType?!1:(k=fb(f,k,\"idref\"))?k.split(/\\s+/).some(l=>h[l]):!1);return w.create(b.map(k=>rb(k)))};function Cq(a){switch(typeof a){case \"object\":return Array.isArray(a)?w.m(new pb(a.map(b=>Ra(Cq(b))))):null===a?w.empty():w.m(new ub(Object.keys(a).map(b=>({key:g(b,1),value:Ra(Cq(a[b]))}))));case \"number\":return w.m(g(a,3));case \"string\":return w.m(g(a,1));case \"boolean\":return a?w.aa():w.T();default:throw Error(\"Unexpected type in JSON parse\");}};const Dq=(a,b,c,d,e)=>{const f=w.m(g(\"duplicates\",1));a=tb(a,b,c,e,f);const h=a.F()?\"use-first\":a.first().value;return d.N(k=>w.m(new ub(k.reduce((l,n)=>{n.h.forEach(t=>{const u=l.findIndex(z=>sb(z.key,t.key));if(0<=u)switch(h){case \"reject\":throw Error(\"FOJS0003: Duplicate encountered when merging maps.\");case \"use-last\":l.splice(u,1,t);return;case \"combine\":l.splice(u,1,{key:t.key,value:Ra(w.create(l[u].value().O().concat(t.value().O())))});return;default:return}l.push(t)});return l},[]))))};function Eq(a,b,c){let d=1;const e=a.value;a=a.Pa(!0);let f=null;const h=Math.max(b-1,0);-1!==a&&(f=Math.max(0,(null===c?a:Math.max(0,Math.min(a,c+(b-1))))-h));return w.create({next:k=>{for(;d<b;)e.next(k),d++;if(null!==c&&d>=b+c)return p;k=e.next(k);d++;return k}},f)}function Fq(a){return a.map(b=>v(b.type,19)?jd(b,3):b)}function Gq(a){a=Fq(a);if(a.some(b=>Number.isNaN(b.value)))return[g(NaN,3)];a=Ji(a);if(!a)throw Error(\"FORG0006: Incompatible types to be converted to a common type\");return a}\nconst Hq=(a,b,c,d,e,f)=>A([e,f],([h,k])=>{if(Infinity===h.value)return w.empty();if(-Infinity===h.value)return k&&Infinity===k.value?w.empty():d;if(k){if(isNaN(k.value))return w.empty();Infinity===k.value&&(k=null)}return isNaN(h.value)?w.empty():Eq(d,Math.round(h.value),k?Math.round(k.value):null)}),Iq=(a,b,c,d,e)=>{if(d.F())return e;a=Fq(d.O());a=Ji(a);if(!a)throw Error(\"FORG0006: Incompatible types to be converted to a common type\");if(!a.every(f=>v(f.type,2)))throw Error(\"FORG0006: items passed to fn:sum are not all numeric.\");\nb=a.reduce((f,h)=>f+h.value,0);return a.every(f=>v(f.type,5))?w.m(g(b,5)):a.every(f=>v(f.type,3))?w.m(g(b,3)):a.every(f=>v(f.type,4))?w.m(g(b,4)):w.m(g(b,6))};var Jq=[].concat(Nf,[{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"boolean\",j:[{type:59,g:2}],i:{type:0,g:3},callFunction:(a,b,c,d)=>d.fa()?w.aa():w.T()},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"true\",j:[],i:{type:0,g:3},callFunction:()=>w.aa()},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"not\",j:[{type:59,g:2}],i:{type:0,g:3},callFunction:(a,b,c,d)=>!1===d.fa()?w.aa():w.T()},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"false\",\nj:[],i:{type:0,g:3},callFunction:()=>w.T()}],[{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"last\",j:[],i:{type:5,g:3},callFunction:a=>{if(null===a.M)throw lc(\"The fn:last() function depends on dynamic context, which is absent.\");let b=!1;return w.create({next:()=>{if(b)return p;const c=a.ta.Pa();b=!0;return q(g(c,5))}},1)}},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"position\",j:[],i:{type:5,g:3},callFunction:a=>{if(null===a.M)throw lc(\"The fn:position() function depends on dynamic context, which is absent.\");\nreturn w.m(g(a.Aa+1,5))}},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"current-dateTime\",j:[],i:{type:10,g:3},callFunction:a=>w.m(g(ec(a),10))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"current-date\",j:[],i:{type:7,g:3},callFunction:a=>w.m(g(Lb(ec(a),7),7))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"current-time\",j:[],i:{type:8,g:3},callFunction:a=>w.m(g(Lb(ec(a),8),8))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"implicit-timezone\",\nj:[],i:{type:17,g:3},callFunction:a=>w.m(g(fc(a),17))}],Of,Wf,cg,[{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"years-from-duration\",j:[{type:18,g:0}],i:{type:5,g:0},callFunction:(a,b,c,d)=>d.F()?d:w.m(g(d.first().value.bb(),5))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"months-from-duration\",j:[{type:18,g:0}],i:{type:5,g:0},callFunction:(a,b,c,d)=>d.F()?d:w.m(g(d.first().value.ab(),5))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"days-from-duration\",\nj:[{type:18,g:0}],i:{type:5,g:0},callFunction:(a,b,c,d)=>d.F()?d:w.m(g(d.first().value.$a(),5))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"hours-from-duration\",j:[{type:18,g:0}],i:{type:5,g:0},callFunction:(a,b,c,d)=>d.F()?d:w.m(g(d.first().value.getHours(),5))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"minutes-from-duration\",j:[{type:18,g:0}],i:{type:5,g:0},callFunction:(a,b,c,d)=>d.F()?d:w.m(g(d.first().value.getMinutes(),5))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",\nlocalName:\"seconds-from-duration\",j:[{type:18,g:0}],i:{type:4,g:0},callFunction:(a,b,c,d)=>d.F()?d:w.m(g(d.first().value.getSeconds(),4))}],eg,[{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"id\",j:[{type:1,g:2},{type:53,g:3}],i:{type:54,g:2},callFunction:Aq},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"id\",j:[{type:1,g:2}],i:{type:54,g:2},callFunction(a,b,c,d){return Aq(a,b,c,d,w.m(a.M))}},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"idref\",\nj:[{type:1,g:2},{type:53,g:3}],i:{type:53,g:2},callFunction:Bq},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"idref\",j:[{type:1,g:2}],i:{type:53,g:2},callFunction(a,b,c,d){return Bq(a,b,c,d,w.m(a.M))}}],[{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"parse-json\",j:[{type:1,g:3}],i:{type:59,g:0},callFunction:(a,b,c,d)=>{let e;try{e=JSON.parse(d.first().value)}catch(f){throw Error(\"FOJS0001: parsed JSON string contains illegal JSON.\");}return Cq(e)}}],[{namespaceURI:\"http://www.w3.org/2005/xpath-functions/map\",\nlocalName:\"contains\",j:[{type:61,g:3},{type:46,g:3}],i:{type:0,g:3},callFunction:(a,b,c,d,e)=>A([d,e],([f,h])=>f.h.some(k=>sb(k.key,h))?w.aa():w.T())},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/map\",localName:\"entry\",j:[{type:46,g:3},{type:59,g:2}],i:{type:61,g:3},callFunction:(a,b,c,d,e)=>d.map(f=>new ub([{key:f,value:Ra(e)}]))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/map\",localName:\"for-each\",j:[{type:61,g:3},{type:59,g:2}],i:{type:59,g:2},callFunction:(a,b,c,d,e)=>A([d,\ne],([f,h])=>jc(f.h.map(k=>h.value.call(void 0,a,b,c,w.m(k.key),k.value()))))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/map\",localName:\"get\",j:[{type:61,g:3},{type:46,g:3}],i:{type:59,g:2},callFunction:tb},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/map\",localName:\"keys\",j:[{type:61,g:3}],i:{type:46,g:2},callFunction:(a,b,c,d)=>A([d],([e])=>w.create(e.h.map(f=>f.key)))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/map\",localName:\"merge\",j:[{type:61,g:2},{type:61,g:3}],\ni:{type:61,g:3},callFunction:Dq},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/map\",localName:\"merge\",j:[{type:61,g:2}],i:{type:61,g:3},callFunction(a,b,c,d){return Dq(a,b,c,d,w.m(new ub([{key:g(\"duplicates\",1),value:()=>w.m(g(\"use-first\",1))}])))}},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/map\",localName:\"put\",j:[{type:61,g:3},{type:46,g:3},{type:59,g:2}],i:{type:61,g:3},callFunction:(a,b,c,d,e,f)=>A([d,e],([h,k])=>{h=h.h.concat();const l=h.findIndex(n=>sb(n.key,k));0<=l?h.splice(l,\n1,{key:k,value:Ra(f)}):h.push({key:k,value:Ra(f)});return w.m(new ub(h))})},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/map\",localName:\"remove\",j:[{type:61,g:3},{type:46,g:2}],i:{type:61,g:3},callFunction:(a,b,c,d,e)=>A([d],([f])=>{const h=f.h.concat();return e.N(k=>{k.forEach(l=>{const n=h.findIndex(t=>sb(t.key,l));0<=n&&h.splice(n,1)});return w.m(new ub(h))})})},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/map\",localName:\"size\",j:[{type:61,g:3}],i:{type:5,g:3},callFunction:(a,\nb,c,d)=>d.map(e=>g(e.h.length,5))}],[{namespaceURI:\"http://www.w3.org/2005/xpath-functions/math\",localName:\"pi\",j:[],i:{type:3,g:3},callFunction:()=>w.m(g(Math.PI,3))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/math\",localName:\"exp\",j:[{type:3,g:0}],i:{type:3,g:0},callFunction:(a,b,c,d)=>d.map(e=>g(Math.pow(Math.E,e.value),3))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/math\",localName:\"exp10\",j:[{type:3,g:0}],i:{type:3,g:0},callFunction:(a,b,c,d)=>d.map(e=>g(Math.pow(10,e.value),\n3))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/math\",localName:\"log\",j:[{type:3,g:0}],i:{type:3,g:0},callFunction:(a,b,c,d)=>d.map(e=>g(Math.log(e.value),3))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/math\",localName:\"log10\",j:[{type:3,g:0}],i:{type:3,g:0},callFunction:(a,b,c,d)=>d.map(e=>g(Math.log10(e.value),3))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/math\",localName:\"pow\",j:[{type:3,g:0},{type:2,g:3}],i:{type:3,g:0},callFunction:(a,b,c,d,e)=>e.N(([f])=>d.map(h=>\n1!==Math.abs(h.value)||Number.isFinite(f.value)?g(Math.pow(h.value,f.value),3):g(1,3)))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/math\",localName:\"sqrt\",j:[{type:3,g:0}],i:{type:3,g:0},callFunction:(a,b,c,d)=>d.map(e=>g(Math.sqrt(e.value),3))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/math\",localName:\"sin\",j:[{type:3,g:0}],i:{type:3,g:0},callFunction:(a,b,c,d)=>d.map(e=>g(Math.sin(e.value),3))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/math\",localName:\"cos\",j:[{type:3,\ng:0}],i:{type:3,g:0},callFunction:(a,b,c,d)=>d.map(e=>g(Math.cos(e.value),3))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/math\",localName:\"tan\",j:[{type:3,g:0}],i:{type:3,g:0},callFunction:(a,b,c,d)=>d.map(e=>g(Math.tan(e.value),3))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/math\",localName:\"asin\",j:[{type:3,g:0}],i:{type:3,g:0},callFunction:(a,b,c,d)=>d.map(e=>g(Math.asin(e.value),3))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/math\",localName:\"acos\",j:[{type:3,\ng:0}],i:{type:3,g:0},callFunction:(a,b,c,d)=>d.map(e=>g(Math.acos(e.value),3))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/math\",localName:\"atan\",j:[{type:3,g:0}],i:{type:3,g:0},callFunction:(a,b,c,d)=>d.map(e=>g(Math.atan(e.value),3))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions/math\",localName:\"atan2\",j:[{type:3,g:0},{type:3,g:3}],i:{type:3,g:0},callFunction:(a,b,c,d,e)=>e.N(([f])=>d.map(h=>g(Math.atan2(h.value,f.value),3)))}],Ae,Yd,[{namespaceURI:\"http://fontoxpath/operators\",\nlocalName:\"to\",j:[{type:5,g:0},{type:5,g:0}],i:{type:5,g:2},callFunction:(a,b,c,d,e)=>{a=d.first();e=e.first();if(null===a||null===e)return w.empty();let f=a.value;e=e.value;return f>e?w.empty():w.create({next:()=>q(g(f++,5))},e-f+1)}}],[{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"QName\",j:[{type:1,g:0},{type:1,g:3}],i:{type:23,g:3},callFunction:(a,b,c,d,e)=>A([d,e],([f,h])=>{h=h.value;if(!tc(h,23))throw Error(\"FOCA0002: The provided QName is invalid.\");f=f?f.value||null:null;\nif(null===f&&h.includes(\":\"))throw Error(\"FOCA0002: The URI of a QName may not be empty if a prefix is provided.\");if(d.F())return w.m(g(new Sa(\"\",null,h),23));if(!h.includes(\":\"))return w.m(g(new Sa(\"\",f,h),23));const [k,l]=h.split(\":\");return w.m(g(new Sa(k,f,l),23))})},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"prefix-from-QName\",j:[{type:23,g:0}],i:{type:24,g:0},callFunction:(a,b,c,d)=>A([d],([e])=>{if(null===e)return w.empty();e=e.value;return e.prefix?w.m(g(e.prefix,24)):\nw.empty()})},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"local-name-from-QName\",j:[{type:23,g:0}],i:{type:24,g:0},callFunction:(a,b,c,d)=>d.map(e=>g(e.value.localName,24))},{namespaceURI:\"http://www.w3.org/2005/xpath-functions\",localName:\"namespace-uri-from-QName\",j:[{type:23,g:0}],i:{type:20,g:0},callFunction:(a,b,c,d)=>d.map(e=>g(e.value.namespaceURI||\"\",20))}],[{j:[{type:59,g:2}],callFunction:(a,b,c,d)=>d.X({empty:()=>w.aa(),multiple:()=>w.T(),m:()=>w.T()}),localName:\"empty\",\nnamespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:0,g:3}},{j:[{type:59,g:2}],callFunction:(a,b,c,d)=>d.X({empty:()=>w.T(),multiple:()=>w.aa(),m:()=>w.aa()}),localName:\"exists\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:0,g:3}},{j:[{type:59,g:2}],callFunction:(a,b,c,d)=>Eq(d,1,1),localName:\"head\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:59,g:0}},{j:[{type:59,g:2}],callFunction:(a,b,c,d)=>Eq(d,2,null),localName:\"tail\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",\ni:{type:59,g:2}},{j:[{type:59,g:2},{type:5,g:3},{type:59,g:2}],callFunction:(a,b,c,d,e,f)=>{if(d.F())return f;if(f.F())return d;a=d.O();e=e.first().value-1;0>e?e=0:e>a.length&&(e=a.length);b=a.slice(e);return w.create(a.slice(0,e).concat(f.O(),b))},localName:\"insert-before\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:59,g:2}},{j:[{type:59,g:2},{type:5,g:3}],callFunction:(a,b,c,d,e)=>{a=e.first().value;d=d.O();if(!d.length||1>a||a>d.length)return w.create(d);d.splice(a-1,1);return w.create(d)},\nlocalName:\"remove\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:59,g:2}},{j:[{type:59,g:2}],callFunction:(a,b,c,d)=>d.N(e=>w.create(e.reverse())),localName:\"reverse\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:59,g:2}},{j:[{type:59,g:2},{type:3,g:3}],callFunction:(a,b,c,d,e)=>Hq(a,b,c,d,e,w.empty()),localName:\"subsequence\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:59,g:2}},{j:[{type:59,g:2},{type:3,g:3},{type:3,g:3}],callFunction:Hq,localName:\"subsequence\",\nnamespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:59,g:2}},{j:[{type:59,g:2}],callFunction:(a,b,c,d)=>d,localName:\"unordered\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:59,g:2}},{j:[{type:46,g:2}],callFunction:(a,b,c,d)=>{const e=qc(d,b).O();return w.create(e).filter((f,h)=>e.slice(0,h).every(k=>!De(f,k)))},localName:\"distinct-values\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:46,g:2}},{j:[{type:46,g:2},{type:1,g:3}],callFunction(){throw Error(\"FOCH0002: No collations are supported\");\n},localName:\"distinct-values\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:46,g:2}},{j:[{type:46,g:2},{type:46,g:3}],callFunction:(a,b,c,d,e)=>e.N(([f])=>qc(d,b).map((h,k)=>pi(\"eqOp\",h.type,f.type)(h,f,a)?g(k+1,5):g(-1,5)).filter(h=>-1!==h.value)),localName:\"index-of\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:5,g:2}},{j:[{type:46,g:2},{type:46,g:3},{type:1,g:3}],callFunction(){throw Error(\"FOCH0002: No collations are supported\");},localName:\"index-of\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",\ni:{type:5,g:2}},{j:[{type:59,g:2},{type:59,g:2}],callFunction:(a,b,c,d,e)=>{let f=!1;const h=Ge(a,b,c,d,e);return w.create({next:()=>{if(f)return p;const k=h.next(0);if(k.done)return k;f=!0;return q(g(k.value,0))}})},localName:\"deep-equal\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:0,g:3}},{j:[{type:59,g:2},{type:59,g:2},{type:1,g:3}],callFunction(){throw Error(\"FOCH0002: No collations are supported\");},localName:\"deep-equal\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",\ni:{type:0,g:3}},{j:[{type:59,g:2}],callFunction:(a,b,c,d)=>{let e=!1;return w.create({next:()=>{if(e)return p;const f=d.Pa();e=!0;return q(g(f,5))}})},localName:\"count\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:5,g:3}},{j:[{type:46,g:2}],callFunction:(a,b,c,d)=>{if(d.F())return d;a=Fq(d.O());a=Ji(a);if(!a)throw Error(\"FORG0006: Incompatible types to be converted to a common type\");if(!a.every(e=>v(e.type,2)))throw Error(\"FORG0006: items passed to fn:avg are not all numeric.\");\nb=a.reduce((e,f)=>e+f.value,0)/a.length;return a.every(e=>v(e.type,5)||v(e.type,3))?w.m(g(b,3)):a.every(e=>v(e.type,4))?w.m(g(b,4)):w.m(g(b,6))},localName:\"avg\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:46,g:0}},{j:[{type:46,g:2}],callFunction:(a,b,c,d)=>{if(d.F())return d;a=Gq(d.O());return w.m(a.reduce((e,f)=>e.value<f.value?f:e))},localName:\"max\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:46,g:0}},{j:[{type:46,g:2},{type:1,g:3}],callFunction(){throw Error(\"FOCH0002: No collations are supported\");\n},localName:\"max\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:46,g:0}},{j:[{type:46,g:2}],callFunction:(a,b,c,d)=>{if(d.F())return d;a=Gq(d.O());return w.m(a.reduce((e,f)=>e.value>f.value?f:e))},localName:\"min\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:46,g:0}},{j:[{type:46,g:2},{type:1,g:3}],callFunction(){throw Error(\"FOCH0002: No collations are supported\");},localName:\"min\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:46,g:0}},{j:[{type:46,\ng:2}],callFunction:(a,b,c,d)=>Iq(a,b,c,d,w.m(g(0,5))),localName:\"sum\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:46,g:3}},{j:[{type:46,g:2},{type:46,g:0}],callFunction:Iq,localName:\"sum\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:46,g:0}},{j:[{type:59,g:2}],callFunction:(a,b,c,d)=>{if(!d.F()&&!d.oa())throw Error(\"FORG0003: The argument passed to fn:zero-or-one contained more than one item.\");return d},localName:\"zero-or-one\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",\ni:{type:59,g:0}},{j:[{type:59,g:2}],callFunction:(a,b,c,d)=>{if(d.F())throw Error(\"FORG0004: The argument passed to fn:one-or-more was empty.\");return d},localName:\"one-or-more\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:59,g:1}},{j:[{type:59,g:2}],callFunction:(a,b,c,d)=>{if(!d.oa())throw Error(\"FORG0005: The argument passed to fn:exactly-one is empty or contained more than one item.\");return d},localName:\"exactly-one\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:59,\ng:3}},{j:[{type:59,g:2},{type:60,g:3}],callFunction:(a,b,c,d,e)=>{if(d.F())return d;const f=e.first(),h=f.o;if(1!==h.length)throw Error(\"XPTY0004: signature of function passed to fn:filter is incompatible.\");return d.filter(k=>{k=Ad(h[0],w.m(k),b,\"fn:filter\",!1);k=f.value.call(void 0,a,b,c,k);if(!k.oa()||!v(k.first().type,0))throw Error(\"XPTY0004: signature of function passed to fn:filter is incompatible.\");return k.first().value})},localName:\"filter\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",\ni:{type:59,g:2}},{j:[{type:59,g:2},{type:60,g:3}],callFunction:(a,b,c,d,e)=>{if(d.F())return d;const f=e.first(),h=f.o;if(1!==h.length)throw Error(\"XPTY0004: signature of function passed to fn:for-each is incompatible.\");const k=d.value;let l;return w.create({next:n=>{for(;;){if(!l){var t=k.next(0);if(t.done)return t;t=Ad(h[0],w.m(t.value),b,\"fn:for-each\",!1);l=f.value.call(void 0,a,b,c,t).value}t=l.next(n);if(!t.done)return t;l=null}}})},localName:\"for-each\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",\ni:{type:59,g:2}},{j:[{type:59,g:2},{type:59,g:2},{type:60,g:3}],callFunction:(a,b,c,d,e,f)=>{if(d.F())return d;const h=f.first(),k=h.o;if(2!==k.length)throw Error(\"XPTY0004: signature of function passed to fn:fold-left is incompatible.\");return d.N(l=>l.reduce((n,t)=>{n=Ad(k[0],n,b,\"fn:fold-left\",!1);t=Ad(k[1],w.m(t),b,\"fn:fold-left\",!1);return h.value.call(void 0,a,b,c,n,t)},e))},localName:\"fold-left\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:59,g:2}},{j:[{type:59,g:2},{type:59,\ng:2},{type:60,g:3}],callFunction:(a,b,c,d,e,f)=>{if(d.F())return d;const h=f.first(),k=h.o;if(2!==k.length)throw Error(\"XPTY0004: signature of function passed to fn:fold-right is incompatible.\");return d.N(l=>l.reduceRight((n,t)=>{n=Ad(k[0],n,b,\"fn:fold-right\",!1);t=Ad(k[1],w.m(t),b,\"fn:fold-right\",!1);return h.value.call(void 0,a,b,c,t,n)},e))},localName:\"fold-right\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:59,g:2}},{j:[{type:59,g:2}],callFunction:(a,b,c,d)=>{if(!b.Ua)throw Error(\"serialize() called but no xmlSerializer set in execution parameters.\");\na=d.O();if(!a.every(e=>v(e.type,53)))throw Error(\"Expected argument to fn:serialize to resolve to a sequence of Nodes.\");return w.m(g(a.map(e=>b.Ua.serializeToString(ag(e.value,b,!1))).join(\"\"),1))},localName:\"serialize\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:1,g:3}}],ke,[{j:[{type:59,g:3},{type:61,g:3}],callFunction:(a,b,c,d,e)=>{let f,h;return w.create({next:()=>{f||({ic:f,ec:h}=yq(d,e,c,b));try{return f.next(0)}catch(k){hg(h.value,k)}}})},localName:\"evaluate\",namespaceURI:\"http://fontoxml.com/fontoxpath\",\ni:{type:59,g:2}},{j:[],callFunction:()=>w.m(g(\"undefined\"===typeof VERSION?\"devbuild\":VERSION,1)),localName:\"version\",namespaceURI:\"http://fontoxml.com/fontoxpath\",i:{type:1,g:3}}],[{j:[{type:23,g:3},{type:5,g:3}],callFunction:(a,b,c,d,e)=>A([d,e],([f,h])=>{const k=c.va(f.value.namespaceURI,f.value.localName,h.value);if(null===k)return w.empty();f=new Va({j:k.j,arity:h.value,localName:f.value.localName,namespaceURI:f.value.namespaceURI,i:k.i,value:k.callFunction});return w.m(f)}),localName:\"function-lookup\",\nnamespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{g:0,type:60}},{j:[{type:60,g:3}],callFunction:(a,b,c,d)=>A([d],([e])=>e.Ya()?w.empty():w.m(g(new Sa(\"\",e.l,e.D),23))),localName:\"function-name\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:23,g:0}},{j:[{type:60,g:3}],callFunction:(a,b,c,d)=>A([d],([e])=>w.m(g(e.v,5))),localName:\"function-arity\",namespaceURI:\"http://www.w3.org/2005/xpath-functions\",i:{type:5,g:3}}]);class Kq{constructor(a){this.h=a}createAttributeNS(a,b){return this.h.createAttributeNS(a,b)}createCDATASection(a){return this.h.createCDATASection(a)}createComment(a){return this.h.createComment(a)}createDocument(){return this.h.createDocument()}createElementNS(a,b){return this.h.createElementNS(a,b)}createProcessingInstruction(a,b){return this.h.createProcessingInstruction(a,b)}createTextNode(a){return this.h.createTextNode(a)}};var Lq=Symbol(\"IS_XPATH_VALUE_SYMBOL\");function Mq(a){return(b,c)=>{b=Vb(new nb(null===c?new Za:c),b,Ja(a));return{[Lq]:!0,zb:b}}};Jq.forEach(a=>{og(a.namespaceURI,a.localName,a.j,a.i,a.callFunction)});function Nq(a){return a&&\"object\"===typeof a&&\"lookupNamespaceURI\"in a?b=>a.lookupNamespaceURI(b||null):()=>null}function Oq(a){return({prefix:b,localName:c})=>b?null:{namespaceURI:a,localName:c}}\nfunction Pq(a,b,c,d,e,f){if(null===d||void 0===d)d=d||{};const h=e?{jb:e.logger||{trace:console.log.bind(console)},Ma:e.documentWriter,kb:e.moduleImports,Cb:e.namespaceResolver,ac:e.functionNameResolver,Ja:e.nodesFactory,Ua:e.xmlSerializer}:{jb:{trace:console.log.bind(console)},kb:{},Cb:null,Ja:null,Ma:null,Ua:null},k=new nb(null===c?new Za:c);c=h.kb||Object.create(null);var l=void 0===e.defaultFunctionNamespaceURI?\"http://www.w3.org/2005/xpath-functions\":e.defaultFunctionNamespaceURI;const n=wq(a,\nf,h.Cb||Nq(b),d,c,l,h.ac||Oq(l));a=b?Wb(k,b):w.empty();b=!h.Ja&&f.Z?new $e(b):new Kq(h.Ja);c=h.Ma?new bb(h.Ma):ab;l=h.Ua;const t=Object.keys(d).reduce((y,G)=>{const N=d[G];y[`Q{}${G}[0]`]=N&&\"object\"===typeof N&&Lq in N?()=>w.create(N.zb):()=>Wb(k,d[G]);return y},Object.create(null));let u;for(const y of Object.keys(n.ga.Ea))t[y]||(t[y]=()=>(0,n.ga.Ea[y])(u,z));u=new cc({M:a.first(),Aa:0,ta:a,ra:t});const z=new ic(f.debug,f.Ha,k,b,c,e.currentContext,new Map,h.jb,l);return{tb:u,ub:z,ba:n.ba}};function Qq(a,b){const c={};let d=0,e=!1,f=null;return{next:()=>{if(e)return p;for(;d<a.h.length;){const k=a.h[d].key.value;if(!f){const l=a.h[d];var h=l.value().X({default:n=>n,multiple:()=>{throw Error(`Serialization error: The value of an entry in a map is expected to be a single item or an empty sequence. Use arrays when putting multiple values in a map. The value of the key ${l.key.value} holds multiple items`);}}).first();if(null===h){c[k]=null;d++;continue}f=Rq(h,b)}h=f.next(0);f=null;c[k]=\nh.value;d++}e=!0;return q(c)}}}function Sq(a,b){const c=[];let d=0,e=!1,f=null;return{next:()=>{if(e)return p;for(;d<a.h.length;){if(!f){var h=a.h[d]().X({default:k=>k,multiple:()=>{throw Error(\"Serialization error: The value of an entry in an array is expected to be a single item or an empty sequence. Use nested arrays when putting multiple values in an array.\");}}).first();if(null===h){c[d++]=null;continue}f=Rq(h,b)}h=f.next(0);f=null;c[d++]=h.value}e=!0;return q(c)}}}\nfunction Rq(a,b){if(v(a.type,61))return Qq(a,b);if(v(a.type,62))return Sq(a,b);if(v(a.type,23)){const c=a.value;return{next:()=>q(`Q{${c.namespaceURI||\"\"}}${c.localName}`)}}switch(a.type){case 7:case 8:case 9:case 11:case 12:case 13:case 14:case 15:const c=a.value;return{next:()=>q(Mb(c))};case 47:case 53:case 54:case 55:case 56:case 57:case 58:const d=a.value;return{next:()=>q(ag(d,b,!1))};default:return{next:()=>q(a.value)}}};var Tq={ANY:0,NUMBER:1,STRING:2,BOOLEAN:3,NODES:7,FIRST_NODE:9,STRINGS:10,MAP:11,ARRAY:12,NUMBERS:13,ALL_RESULTS:14,ASYNC_ITERATOR:99};Tq[Tq.ANY]=\"ANY\";Tq[Tq.NUMBER]=\"NUMBER\";Tq[Tq.STRING]=\"STRING\";Tq[Tq.BOOLEAN]=\"BOOLEAN\";Tq[Tq.NODES]=\"NODES\";Tq[Tq.FIRST_NODE]=\"FIRST_NODE\";Tq[Tq.STRINGS]=\"STRINGS\";Tq[Tq.MAP]=\"MAP\";Tq[Tq.ARRAY]=\"ARRAY\";Tq[Tq.NUMBERS]=\"NUMBERS\";Tq[Tq.ALL_RESULTS]=\"ALL_RESULTS\";Tq[Tq.ASYNC_ITERATOR]=\"ASYNC_ITERATOR\";\nfunction Uq(a,b,c,d){switch(c){case 3:return b.fa();case 2:return b=qc(b,d).O(),b.length?b.map(l=>jd(l,1).value).join(\" \"):\"\";case 10:return b=qc(b,d).O(),b.length?b.map(l=>l.value+\"\"):[];case 1:return b=b.first(),null!==b&&v(b.type,2)?b.value:NaN;case 9:b=b.first();if(null===b)return null;if(!v(b.type,53))throw Error(\"Expected XPath \"+fg(a)+\" to resolve to Node. Got \"+Da[b.type]);return ag(b.value,d,!1);case 7:b=b.O();if(!b.every(l=>v(l.type,53)))throw Error(\"Expected XPath \"+fg(a)+\" to resolve to a sequence of Nodes.\");\nreturn b.map(l=>ag(l.value,d,!1));case 11:b=b.O();if(1!==b.length)throw Error(\"Expected XPath \"+fg(a)+\" to resolve to a single map.\");b=b[0];if(!v(b.type,61))throw Error(\"Expected XPath \"+fg(a)+\" to resolve to a map\");return Qq(b,d).next(0).value;case 12:b=b.O();if(1!==b.length)throw Error(\"Expected XPath \"+fg(a)+\" to resolve to a single array.\");b=b[0];if(!v(b.type,62))throw Error(\"Expected XPath \"+fg(a)+\" to resolve to an array\");return Sq(b,d).next(0).value;case 13:return b.O().map(l=>{if(!v(l.type,\n2))throw Error(\"Expected XPath \"+fg(a)+\" to resolve to numbers\");return l.value});case 99:const e=b.value;let f=null,h=!1;const k=()=>{for(;!h;){if(!f){var l=e.next(0);if(l.done){h=!0;break}f=Rq(l.value,d)}l=f.next(0);f=null;return l}return Promise.resolve({done:!0,value:null})};return\"asyncIterator\"in Symbol?{[Symbol.asyncIterator](){return this},next:()=>(new Promise(l=>l(k()))).catch(l=>{hg(a,l)})}:{next:()=>new Promise(l=>l(k()))};case 14:return b.O().map(l=>Rq(l,d).next(0).value);default:return b=\nb.O(),b.every(l=>v(l.type,53)&&!v(l.type,47))?(b=b.map(l=>ag(l.value,d,!1)),1===b.length?b[0]:b):1===b.length?(b=b[0],v(b.type,62)?Sq(b,d).next(0).value:v(b.type,61)?Qq(b,d).next(0).value:pc(b,d).first().value):qc(w.create(b),d).O().map(l=>l.value)}};let Vq=!1,Wq=null;\nvar Xq={getPerformanceSummary(){const a=Wq.getEntriesByType(\"measure\").filter(b=>b.name.startsWith(\"XPath: \"));return Array.from(a.reduce((b,c)=>{var d=c.name.substring(7);b.has(d)?(d=b.get(d),d.times+=1,d.totalDuration+=c.duration):b.set(d,{xpath:d,times:1,totalDuration:c.duration,average:0});return b},new Map).values()).map(b=>{b.average=b.totalDuration/b.times;return b}).sort((b,c)=>c.totalDuration-b.totalDuration)},setPerformanceImplementation(a){Wq=a},startProfiling(){if(null===Wq)throw Error(\"Performance API object must be set using `profiler.setPerformanceImplementation` before starting to profile\");\nWq.clearMarks();Wq.clearMeasures();Vq=!0},stopProfiling(){Vq=!1}};let Yq=0;var Zq={XPATH_3_1_LANGUAGE:\"XPath3.1\",XQUERY_3_1_LANGUAGE:\"XQuery3.1\",XQUERY_UPDATE_3_1_LANGUAGE:\"XQueryUpdate3.1\"};const $q=(a,b,c,d,e,f)=>{e=e||0;if(!a||\"string\"!==typeof a&&!(\"nodeType\"in a))throw new TypeError(\"Failed to execute 'evaluateXPath': xpathExpression must be a string or an element depicting an XQueryX DOM tree.\");f=f||{};let h,k;try{const n=Pq(a,b,c||null,d||{},f,{sa:\"XQueryUpdate3.1\"===f.language,Z:\"XQuery3.1\"===f.language||\"XQueryUpdate3.1\"===f.language,debug:!!f.debug,Ha:!!f.disableCache});var l=n.tb;h=n.ub;k=n.ba}catch(n){hg(a,n)}if(k.I)throw Error(\"XUST0001: Updating expressions should be evaluated as updating expressions\");\nif(3===e&&b&&\"object\"===typeof b&&\"nodeType\"in b&&(c=k.D(),b=Ya(b),null!==c&&!b.includes(c)))return!1;try{b=a;Vq&&(\"string\"!==typeof b&&(b=fg(b)),Wq.mark(`${b}${0===Yq?\"\":\"@\"+Yq}`),Yq++);const n=C(k,l,h),t=Uq(a,n,e,h);e=a;Vq&&(\"string\"!==typeof e&&(e=fg(e)),Yq--,l=`${e}${0===Yq?\"\":\"@\"+Yq}`,Wq.measure(`XPath: ${e}`,l),Wq.clearMarks(l));return t}catch(n){hg(a,n)}};\nObject.assign($q,{jc:14,ANY_TYPE:0,Lb:12,Mb:99,BOOLEAN_TYPE:3,Ob:9,Rb:11,Tb:7,Ub:13,NUMBER_TYPE:1,Vb:10,STRING_TYPE:2,kc:\"XPath3.1\",lc:\"XQuery3.1\",Yb:\"XQueryUpdate3.1\"});Object.assign($q,{ALL_RESULTS_TYPE:14,ANY_TYPE:0,ARRAY_TYPE:12,ASYNC_ITERATOR_TYPE:99,BOOLEAN_TYPE:3,FIRST_NODE_TYPE:9,MAP_TYPE:11,NODES_TYPE:7,NUMBERS_TYPE:13,NUMBER_TYPE:1,STRINGS_TYPE:10,STRING_TYPE:2,XPATH_3_1_LANGUAGE:\"XPath3.1\",XQUERY_3_1_LANGUAGE:\"XQuery3.1\",XQUERY_UPDATE_3_1_LANGUAGE:\"XQueryUpdate3.1\"});function ar(a,b,c,d,e){return $q(a,b,c,d,$q.Mb,e)};function br(a,b,c,d){return{pendingUpdateList:a.da.map(e=>e.h(d)),xdmValue:Uq(b,w.create(a.J),c,d)}};async function cr(a,b,c,d,e){e=e||{};Ok();let f,h;try{const n=Pq(a,b,c||null,d||{},e||{},{sa:!0,Z:!0,debug:!!e.debug,Ha:!!e.disableCache});var k=n.tb;f=n.ub;h=n.ba}catch(n){hg(a,n)}if(!h.I){k=[];a=ar(a,b,c,d,Object.assign(Object.assign({},e),{language:\"XQueryUpdate3.1\"}));for(b=await a.next();!b.done;b=await a.next())k.push(b.value);return Promise.resolve({pendingUpdateList:[],xdmValue:k})}let l;try{l=h.s(k,f).next(0)}catch(n){hg(a,n)}return br(l.value,a,e.returnType,f)};function dr(a,b,c,d,e){e=e||{};Ok();let f,h,k;try{const n=Pq(a,b,c||null,d||{},e||{},{sa:!0,Z:!0,debug:!!e.debug,Ha:!!e.disableCache});f=n.tb;h=n.ub;k=n.ba}catch(n){hg(a,n)}if(!k.I)return{pendingUpdateList:[],xdmValue:$q(a,b,c,d,e.i,Object.assign(Object.assign({},e),{language:$q.Yb}))};let l;try{l=k.s(f,h).next(0)}catch(n){hg(a,n)}return br(l.value,a,e.returnType,h)};function er(a,b,c,d,e){return $q(a,b,c,d,$q.Lb,e)};function fr(a,b,c,d,e){return $q(a,b,c,d,$q.BOOLEAN_TYPE,e)};function gr(a,b,c,d,e){return $q(a,b,c,d,$q.Ob,e)};function hr(a,b,c,d,e){return $q(a,b,c,d,$q.Rb,e)};function ir(a,b,c,d,e){return $q(a,b,c,d,$q.Tb,e)};function jr(a,b,c,d,e){return $q(a,b,c,d,$q.NUMBER_TYPE,e)};function kr(a,b,c,d,e){return $q(a,b,c,d,$q.Ub,e)};function lr(a,b,c,d,e){return $q(a,b,c,d,$q.STRING_TYPE,e)};function mr(a,b,c,d,e){return $q(a,b,c,d,$q.Vb,e)};function nr(a,b,c,d){b=new nb(b?b:new Za);d=d?new bb(d):ab;c=c?c=new Kq(c):null;a=a.map(Rj);lf(a,b,c,d)};function Y(a,b,c){return{code:a,ua:b,H:c,isAstAccepted:!0}}function or(a){return{isAstAccepted:!1,reason:a}};function Z(a,b){return a.isAstAccepted?b(a):a}function pr(a,b){return a.isAstAccepted?b(a):[a,null]}function qr(a,b,c){return Z(a,d=>{switch(d.ua.type){case 0:return d;case 1:return Z(rr(c,d,\"nodes\"),e=>Z(rr(c,b,\"contextItem\"),f=>Y(`(function () {\n\t\t\t\t\t\t\tconst { done, value } = ${e.code}(${f.code}).next();\n\t\t\t\t\t\t\treturn done ? null : value;\n\t\t\t\t\t\t})()`,{type:0},[...e.H,...f.H])));default:throw Error(`invalid generated code type to convert to value: ${d.ua.type}`);}})}function sr(a,b,c,d){a=qr(a,c,d);return b&&0===b.type&&3===b.g?a:Z(a,e=>Y(`!!${e.code}`,{type:0},e.H))}\nfunction tr(a,b,c){return b?a.isAstAccepted&&0!==a.ua.type?or(\"Atomization only implemented for single value\"):v(b.type,1)?a:v(b.type,47)?Z(rr(c,a,\"attr\"),d=>Y(`(${d.code} ? domFacade.getData(${d.code}) : null)`,{type:0},d.H)):or(\"Atomization only implemented for string and attribute\"):or(\"Can not atomize value if type was not annotated\")}function ur(a,b,c,d){a=qr(a,c,d);d=tr(a,b,d);return wc(b)?Z(d,e=>Y(`${e.code} ?? ''`,{type:0},e.H)):d}\nfunction vr(a,b,c){return Z(rr(c,a,\"node\"),d=>1===d.ua.type?d:b&&!v(b.type,53)?or(\"Can not evaluate to node if expression does not result in nodes\"):Y(`(function () {\n\t\t\t\tif (${d.code} !== null && !${d.code}.nodeType) {\n\t\t\t\t\tthrow new Error('XPDY0050: The result of the expression was not a node');\n\t\t\t\t}\n\t\t\t\treturn ${d.code};\n\t\t\t})()`,{type:0},d.H))}function wr(a,b,c,d){return Z(a,e=>{switch(e.ua.type){case 1:return Z(rr(d,e,\"nodes\"),f=>Z(rr(d,c,\"contextItem\"),h=>Y(`Array.from(${f.code}(${h.code}))`,{type:0},[...f.H,...h.H])));case 0:return Z(rr(d,vr(e,b,d),\"node\"),f=>Y(`(${f.code} === null ? [] : [${f.code}])`,{type:0},f.H));default:return or(\"Unsupported code type to evaluate to nodes\")}})}\nfunction xr(a,b){return Z(a,c=>Z(b,d=>{if(0!==c.ua.type||0!==d.ua.type)throw Error(\"can only use emitAnd with value expressions\");return Y(`${c.code} && ${d.code}`,{type:0},[...c.H,...d.H])}))};function yr(a,b,c,d){return(a=J(a,[b,\"*\"]))?d.h(a,c,d):[or(`${b} expression not found`),null]};const $t={equalOp:\"eqOp\",notEqualOp:\"neOp\",lessThanOrEqualOp:\"leOp\",lessThanOp:\"ltOp\",greaterThanOrEqualOp:\"geOp\",greaterThanOp:\"gtOp\"},au={eqOp:\"eqOp\",neOp:\"neOp\",leOp:\"geOp\",ltOp:\"gtOp\",geOp:\"leOp\",gtOp:\"ltOp\"};\nfunction bu(a,b,c,d){const e=I(J(a,[\"firstOperand\",\"*\"]),\"type\"),f=I(J(a,[\"secondOperand\",\"*\"]),\"type\");if(!e||!f)return or(\"Can not generate code for value compare without both types\");var h=[47,1];if(!h.includes(e.type)||!h.includes(f.type))return or(`Unsupported types in compare: [${Da[e.type]}, ${Da[f.type]}]`);h=new Map([[\"eqOp\",\"===\"],[\"neOp\",\"!==\"]]);if(!h.has(b))return or(b+\" not yet implemented\");const k=h.get(b);[b]=yr(a,\"firstOperand\",c,d);b=qr(b,c,d);b=tr(b,e,d);return Z(rr(d,b,\"first\"),\nl=>{var [n]=yr(a,\"secondOperand\",c,d);n=qr(n,c,d);n=tr(n,f,d);return Z(rr(d,n,\"second\"),t=>{const u=[];wc(e)&&u.push(`${l.code} === null`);wc(f)&&u.push(`${t.code} === null`);return Y(`(${u.length?`${u.join(\" || \")} ? null : `:\"\"}${l.code} ${k} ${t.code})`,{type:0},[...l.H,...t.H])})})}\nfunction cu(a,b,c,d,e,f){var h=I(J(a,[b,\"*\"]),\"type\");const k=I(J(a,[c,\"*\"]),\"type\");if(!h||!k)return or(\"Can not generate code for general compare without both types\");var l=[47,1];if(!l.includes(h.type)||!l.includes(k.type))return or(`Unsupported types in compare: [${Da[h.type]}, ${Da[k.type]}]`);l=new Map([[\"eqOp\",\"===\"],[\"neOp\",\"!==\"]]);if(!l.has(d))return or(d+\" not yet implemented\");const n=l.get(d);[b]=yr(a,b,e,f);b=qr(b,e,f);h=tr(b,h,f);return Z(rr(f,h,\"single\"),t=>{const [u]=yr(a,c,e,f);\nreturn Z(rr(f,u,\"multiple\"),z=>{if(1!==z.ua.type)return or(\"can only generate general compare for a single value and a generator\");const y=du(f,eu(f,\"n\")),G=tr(y,k,f);return Z(e,N=>Z(G,U=>Y(`(function () {\n\t\t\t\t\t\t\t\t\tfor (const ${y.code} of ${z.code}(${N.code})) {\n\t\t\t\t\t\t\t\t\t\t${U.H.join(\"\\n\")}\n\t\t\t\t\t\t\t\t\t\tif (${U.code} ${n} ${t.code}) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t})()`,{type:0},[...t.H,...y.H,...N.H,...z.H])))})})};function fu(a){return JSON.stringify(a).replace(/\\u2028/g,\"\\\\u2028\").replace(/\\u2029/g,\"\\\\u2029\")};const lu={\"false#0\":gu,\"local-name#0\":hu,\"local-name#1\":hu,\"name#0\":iu,\"name#1\":iu,\"not#1\":ju,\"true#0\":ku},mu={[\"http://fontoxml.com/fontoxpath\"]:[\"version#0\"],[\"\"]:[\"root#1\",\"path#1\"]};\nfunction nu(a,b,c,d){const [e]=d.h(a,c,d);a=I(a,\"type\");if(b?2===b.g||1===b.g:1)return or(\"Not supported: sequence arguments with multiple items\");if(v(b.type,53))return b=qr(e,c,d),vr(b,a,d);switch(b.type){case 59:return qr(e,c,d);case 0:return sr(e,a,c,d);case 1:return ur(e,a,c,d)}return or(`Argument types not supported: ${a?Da[a.type]:\"unknown\"} -> ${Da[b.type]}`)}\nfunction ou(a,b,c,d){if(a.length!==b.length||b.some(l=>4===l))return or(\"Not supported: variadic function or mismatch in argument count\");if(0===a.length)return Y(\"\",{type:0},[]);const [e,...f]=a,[h,...k]=b;a=rr(d,nu(e,h,c,d),\"arg\");return 0===f.length?a:Z(a,l=>{const n=ou(f,k,c,d);return Z(n,t=>Y(`${l.code}, ${t.code}`,{type:0},[...l.H,...t.H]))})}\nfunction pu(a,b){return Z(a,c=>(b?2===b.g||1===b.g:1)||![0,1].includes(b.type)&&!v(b.type,53)?or(`Function return type ${Da[b.type]} not supported`):c)}\nfunction qu(a,b,c){const {localName:d,namespaceURI:e}=Kg(F(a,\"functionName\")),f=K(F(a,\"arguments\"),\"*\");var h=f.length;const k=`${d}#${h}`,l=e===c.D;if(l){const n=lu[k];if(void 0!==n)return n(a,b,c)}if((a=mu[l?\"\":e])&&!a.includes(k))return or(`Not supported: built-in function not on allow list: ${k}`);h=ng(e,d,h);if(!h)return or(`Unknown function / arity: ${k}`);if(h.I)return or(\"Not supported: updating functions\");b=ou(f,h.j,b,c);b=Z(b,n=>Y(`runtimeLib.callFunction(domFacade, ${fu(e)}, ${fu(d)}, [${n.code}], options)`,\n{type:0},n.H));return pu(b,h.i)}function ru(a,b){return Z(rr(b,a,\"contextItem\"),c=>Y(c.code,{type:0},[...c.H,`if (${c.code} === undefined || ${c.code} === null) {\n\t\t\t\t\tthrow errXPDY0002('The function which was called depends on dynamic context, which is absent.');\n\t\t\t\t}`]))}function su(a,b,c,d){if((a=J(a,[\"arguments\",\"*\"]))&&\"contextItemExpr\"!==a[0]){const e=I(a,\"type\");if(!e||!v(e.type,53))return or(\"name function only implemented if arg is a node\");[a]=c.h(a,b,c)}else a=ru(b,c);b=qr(a,b,c);return Z(rr(c,b,\"arg\"),e=>Y(`(${e.code} ? ${d(e.code)} : '')`,{type:0},e.H))}function iu(a,b,c){return su(a,b,c,d=>`(((${d}.prefix || '').length !== 0 ? ${d}.prefix + ':' : '')\n\t\t+ (${d}.localName || ${d}.target || ''))`)}function hu(a,b,c){return su(a,b,c,d=>`(${d}.localName || ${d}.target || '')`)}function ju(a,b,c){var d=J(a,[\"arguments\",\"*\"]);a=I(d,\"type\");[d]=c.h(d,b,c);b=sr(d,a,b,c);return Z(b,e=>Y(`!${e.code}`,{type:0},e.H))}function gu(){return Y(\"false\",{type:0},[])}function ku(){return Y(\"true\",{type:0},[])};function tu(a,b,c,d){const [e,f]=yr(a,\"firstOperand\",c,d);var h=I(J(a,[\"firstOperand\",\"*\"]),\"type\");h=sr(e,h,c,d);const [k,l]=yr(a,\"secondOperand\",c,d);h=Z(h,t=>{var u=I(J(a,[\"secondOperand\",\"*\"]),\"type\");u=sr(k,u,c,d);return Z(u,z=>Y(`(${t.code} ${b} ${z.code})`,{type:0},[...t.H,...z.H]))});const n=\"&&\"===b?yh(f,l):f===l?f:null;return[h,n]};function uu(a,b,c){return Z(a,d=>Z(b,e=>Z(c,f=>Y(`for (${d.code}) {\n\t\t\t\t\t\t${e.H.join(\"\\n\")}\n\t\t\t\t\t\tif (!(${e.code})) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t${f.H.join(\"\\n\")}\n\t\t\t\t\t\t${f.code}\n\t\t\t\t\t}`,{type:2},d.H))))}function vu(a,b,c,d,e){const f=b?`, \"${b}\"`:\"\";b=Z(d,h=>Z(e,k=>Y(`let ${h.code} = domFacade.getFirstChild(${k.code}${f});\n\t\t\t\t\t\t\t${h.code};\n\t\t\t\t\t\t\t${h.code} = domFacade.getNextSibling(${h.code}${f})`,{type:2},[...h.H,...k.H])));return uu(b,a,c)}function wu(a,b,c,d,e){const f=yh(b,\"type-2\"),h=Z(e,k=>Y(`(${k.code} && ${k.code}.nodeType === /*ELEMENT_NODE*/ ${1} ? domFacade.getAllAttributes(${k.code}${f?`, \"${f}\"`:\"\"}) : [])`,{type:0},k.H));b=Z(d,k=>Z(h,l=>Y(`const ${k.code} of ${l.code}`,{type:2},[...k.H,...l.H])));return uu(b,a,c)}\nfunction xu(a,b,c,d,e){const f=b?`, \"${b}\"`:\"\";b=Z(e,h=>Y(`domFacade.getParentNode(${h.code}${f})`,{type:0},h.H));return yu(d,b,a,c)}function yu(a,b,c,d){const e=xr(a,c);return Z(a,f=>Z(b,h=>Z(e,k=>Z(d,l=>Y(`const ${f.code} = ${h.code};\n\t\t\t\t\t\t${k.H.join(\"\\n\")}\n\t\t\t\t\t\tif (${k.code}) {\n\t\t\t\t\t\t\t${l.H.join(\"\\n\")}\n\t\t\t\t\t\t\t${l.code}\n\t\t\t\t\t\t}`,{type:2},[...f.H,...h.H])))))}function zu(a,b,c,d,e,f){a=H(a);switch(a){case \"attribute\":return[wu(b,c,d,e,f),\"type-1\"];case \"child\":return[vu(b,c,d,e,f),null];case \"parent\":return[xu(b,c,d,e,f),null];case \"self\":return[yu(e,f,b,d),c];default:return[or(`Unsupported: the ${a} axis`),null]}};const Au={Wb:\"textTest\",Nb:\"elementTest\",Sb:\"nameTest\",Xb:\"Wildcard\",Kb:\"anyKindTest\"};var Bu=Object.values(Au);function Cu(a){return[Z(a,b=>Y(`(${b.code}.nodeType === /*TEXT_NODE*/ ${3} ||\n\t\t\t\t${b.code}.nodeType === /* CDATA_SECTION_NODE */ ${4})`,{type:0},[])),\"type-3\"]}function Du(a,b){if(null===a.namespaceURI&&\"*\"!==a.prefix){b=b.$(a.prefix||\"\")||null;if(!b&&a.prefix)throw Error(`XPST0081: The prefix ${a.prefix} could not be resolved.`);a.namespaceURI=b}}function Eu(a,b,c,d){Du(a,d);const e=a.prefix,f=a.namespaceURI,h=a.localName;return pr(c,k=>{var l=b?Y(`${k.code}.nodeType\n\t\t\t\t\t\t&& (${k.code}.nodeType === /*ELEMENT_NODE*/ ${1}\n\t\t\t\t\t\t|| ${k.code}.nodeType === /*ATTRIBUTE_NODE*/ ${2})`,{type:0},[]):Y(`${k.code}.nodeType\n\t\t\t\t\t\t&& ${k.code}.nodeType === /*ELEMENT_NODE*/ ${1}`,{type:0},[]);if(\"*\"===e)return\"*\"===h?[l,b?\"type-1-or-type-2\":\"type-1\"]:[xr(l,Y(`${k.code}.localName === ${fu(h)}`,{type:0},[])),`name-${h}`];l=\"*\"===h?l:xr(l,Y(`${k.code}.localName === ${fu(h)}`,{type:0},[]));var n=Y(fu(f),{type:0},[]);n=\"\"===e&&b?Z(n,t=>Y(`${k.code}.nodeType === /*ELEMENT_NODE*/ ${1} ? ${t.code} : null`,{type:0},t.H)):n;n=Z(n,t=>Y(`(${k.code}.namespaceURI || null) === ((${t.code}) || null)`,{type:0},t.H));return[xr(l,n),`name-${h}`]})}\nfunction Fu(a,b,c){const d=(a=F(a,\"elementName\"))&&F(a,\"star\");if(null===a||d)return[Z(b,e=>Y(`${e.code}.nodeType === /*ELEMENT_NODE*/ ${1}`,{type:0},[])),\"type-1\"];a=Kg(F(a,\"QName\"));return Eu(a,!1,b,c)}function Gu(a){return[Z(a,b=>Y(`!!${b.code}.nodeType`,{type:0},[])),null]}\nfunction Hu(a,b,c,d){var e=a[0];switch(e){case Au.Nb:return Fu(a,c,d);case Au.Wb:return Cu(c);case Au.Sb:return Eu(Kg(a),b,c,d);case Au.Xb:return F(a,\"star\")?(e=F(a,\"uri\"),null!==e?a=Eu({localName:\"*\",namespaceURI:H(e),prefix:\"\"},b,c,d):(e=F(a,\"NCName\"),a=\"star\"===F(a,\"*\")[0]?Eu({localName:H(e),namespaceURI:null,prefix:\"*\"},b,c,d):Eu({localName:\"*\",namespaceURI:null,prefix:H(e)},b,c,d))):a=Eu({localName:\"*\",namespaceURI:null,prefix:\"*\"},b,c,d),a;case Au.Kb:return Gu(c);default:return[or(`Test not implemented: '${e}`),\nnull]}};function Iu(a,b,c){const [d,e]=c.h(a,b,c);return[sr(d,I(a,\"type\"),b,c),e]}function Ju(a,b,c){a=a?K(a,\"*\"):[];const [d,e]=a.reduce(([f,h],k)=>{if(!f)return Iu(k,b,c);let l=h;return pr(f,n=>{const [t,u]=Iu(k,b,c);l=yh(h,u);return[Z(t,z=>Y(`${n.code} && ${z.code}`,{type:0},[...n.H,...z.H])),l]})},[null,null]);return[d?Z(d,f=>Y(`(function () {\n\t\t\t\t\t\t\t${f.H.join(\"\\n\")}\n\t\t\t\t\t\t\treturn ${f.code};\n\t\t\t\t\t\t})()`,{type:0},[])):null,e]}\nfunction Ku(a,b,c,d){if(0===a.length)return[Z(c,y=>Y(`yield ${y.code};`,{type:2},y.H)),null];const [e,...f]=a;if(0<K(e,\"lookup\").length)return[or(\"Unsupported: lookups\"),null];const h=du(d,eu(d,\"contextItem\"));a=F(e,\"predicates\");const [k,l]=Ju(a,h,d);if(a=F(e,\"xpathAxis\")){var n=F(e,Bu);if(!n)return[or(\"Unsupported test in step\"),null];var t=H(a);b=\"attribute\"===t||\"self\"===t&&b;const [y,G]=Hu(n,b,h,d);n=null===k?y:xr(y,k);t=yh(G,l);[b]=Ku(f,b,h,d);return zu(a,n,t,b,h,c)}a=J(e,[\"filterExpr\",\"*\"]);\nif(!a)return[or(\"Unsupported: unknown step type\"),null];const [u,z]=d.h(a,c,d);return[Z(u,y=>{const G=0===f.length?Y(\"\",{type:2},[]):Y(`if (${h.code} !== null && !${h.code}.nodeType) {\n\t\t\t\t\t\t\t\t\tthrow new Error('XPTY0019: The result of E1 in a path expression E1/E2 should evaluate to a sequence of nodes.');\n\t\t\t\t\t\t\t\t}`,{type:2},[]),[N]=Ku(f,!0,h,d),U=null===k?N:Z(k,ca=>Z(N,Ga=>Y(`if (${ca.code}) {\n\t\t\t\t\t\t\t\t\t${Ga.H.join(\"\\n\")}\n\t\t\t\t\t\t\t\t\t${Ga.code}\n\t\t\t\t\t\t\t\t}`,{type:2},ca.H)));return Z(U,ca=>{switch(y.ua.type){case 1:return Z(c,Ga=>Y(`for (const ${h.code} of ${y.code}(${Ga.code})) {\n\t\t\t\t\t\t\t\t\t${ca.H.join(\"\\n\")}\n\t\t\t\t\t\t\t\t\t${ca.code}\n\t\t\t\t\t\t\t\t}`,{type:2},[...h.H,...y.H,...G.H]));case 0:return Y(`const ${h.code} = ${y.code};\n\t\t\t\t\t\t\t${G.code}\n\t\t\t\t\t\t\tif (${h.code} !== null) {\n\t\t\t\t\t\t\t\t${ca.H.join(\"\\n\")}\n\t\t\t\t\t\t\t\t${ca.code}\n\t\t\t\t\t\t\t}`,{type:2},[...h.H,...y.H,...G.H]);default:return or(\"Unsupported generated code type for filterExpr\")}})}),z]}function Lu(a){return Z(a,b=>Y(`(function () {\n\t\t\t\tlet n = ${b.code};\n\t\t\t\twhile (n.nodeType !== /*DOCUMENT_NODE*/${9}) {\n\t\t\t\t\tn = domFacade.getParentNode(n);\n\t\t\t\t\tif (n === null) {\n\t\t\t\t\t\tthrow new Error('XPDY0050: the root node of the context node is not a document node.');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn n;\n\t\t\t})()`,{type:0},b.H))}function Mu(a,b,c){return pr(b,d=>{if(0<K(a,\"lookup\").length)return[or(\"Unsupported: lookups\"),null];var e=F(a,\"predicates\");const [f,h]=Ju(e,d,c);e=F(a,Bu);if(!e)return[or(\"Unsupported test in step\"),null];const [k,l]=Hu(e,!0,d,c);e=null===f?k:xr(k,f);const n=yh(l,h);return[Z(e,t=>Y(`((${t.code}) ? ${d.code} : null)`,{type:0},[...d.H,...t.H])),n]})}\nfunction Nu(a,b,c){const d=K(a,\"stepExpr\");if(1===d.length){const k=F(d[0],\"xpathAxis\");if(k&&\"self\"===H(k))return Mu(d[0],b,c)}const e=du(c,eu(c,\"contextItem\"));b=(a=F(a,\"rootExpr\"))?rr(c,Lu(e),\"root\"):e;const [f,h]=Ku(d,!a,b,c);return[Z(f,k=>Y(`(function* (${e.code}) {\n\t\t\t${k.H.join(\"\\n\")}\n\t\t\t${k.code}\n\t\t})`,{type:1},[])),h]};function Ou(a,b,c){const d=a[0];switch(d){case \"contextItemExpr\":return[b,null];case \"pathExpr\":return Nu(a,b,c);case \"andOp\":return tu(a,\"&&\",b,c);case \"orOp\":return tu(a,\"||\",b,c);case \"stringConstantExpr\":return a=F(a,\"value\")[1]||\"\",a=fu(a),[Y(a,{type:0},[]),null];case \"equalOp\":case \"notEqualOp\":case \"lessThanOrEqualOp\":case \"lessThanOp\":case \"greaterThanOrEqualOp\":case \"greaterThanOp\":case \"eqOp\":case \"neOp\":case \"ltOp\":case \"leOp\":case \"gtOp\":case \"geOp\":case \"isOp\":case \"nodeBeforeOp\":case \"nodeAfterOp\":a:switch(d){case \"eqOp\":case \"neOp\":case \"ltOp\":case \"leOp\":case \"gtOp\":case \"geOp\":case \"isOp\":a=\nbu(a,d,b,c);break a;case \"equalOp\":case \"notEqualOp\":case \"lessThanOrEqualOp\":case \"lessThanOp\":case \"greaterThanOrEqualOp\":case \"greaterThanOp\":const e=I(J(a,[\"firstOperand\",\"*\"]),\"type\"),f=I(J(a,[\"secondOperand\",\"*\"]),\"type\");a=e&&f?3===e.g&&3===f.g?bu(a,$t[d],b,c):3===e.g?cu(a,\"firstOperand\",\"secondOperand\",$t[d],b,c):3===f.g?cu(a,\"secondOperand\",\"firstOperand\",au[$t[d]],b,c):or(\"General comparison for sequences is not implemented\"):or(\"types of compare are not known\");break a;default:a=or(`Unsupported compare type: ${d}`)}return[a,\nnull];case \"functionCallExpr\":return[qu(a,b,c),null];default:return[or(`Unsupported: the base expression '${d}'.`),null]}};function rr(a,b,c){return Z(b,d=>{var e=a.o.get(d);e||(e=eu(a,c),e=Y(e,d.ua,[...d.H,`const ${e} = ${d.code};`]),a.o.set(d,e),a.o.set(e,e));return e})}function eu(a,b=\"v\"){const c=a.v.get(b)||0;a.v.set(b,c+1);return`${b}${c}`}function du(a,b){b=Y(b,{type:0},[]);a.o.set(b,b);return b}var Pu=class{constructor(a,b){this.o=new Map;this.v=new Map;this.$=a;this.D=b;this.h=Ou}};function Qu(a){const b=K(a,\"*\");if(\"pathExpr\"===a[0])return!0;for(const c of b)if(Qu(c))return!0;return!1};function Ru(a,b,c){c=c||{};b=b||0;if(\"string\"===typeof a){a=Pk(a);var d={Z:\"XQuery3.1\"===c.language||\"XQueryUpdate3.1\"===c.language,debug:!1};try{var e=qq(a,d)}catch(h){hg(a,h)}}else e=Kk(a);a=F(e,\"mainModule\");if(!a)return or(\"Unsupported: XQuery Library modules are not supported.\");if(F(a,\"prolog\"))return or(\"Unsupported: XQuery Prologs are not supported.\");d=void 0===c.defaultFunctionNamespaceURI?\"http://www.w3.org/2005/xpath-functions\":c.defaultFunctionNamespaceURI;a=new Pu(c.namespaceResolver||\nNq(null),d);c=new rh(new Cg(new qg(a.$,{},d,c.functionNameResolver||Oq(\"http://www.w3.org/2005/xpath-functions\"))));O(e,c);if(c=F(e,\"mainModule\"))if(F(c,\"prolog\"))a=or(\"Unsupported: XQuery.\");else{var f=J(c,[\"queryBody\",\"*\"]);c=du(a,\"contextItem\");[d]=a.h(f,c,a);b:switch(f=I(f,\"type\"),b){case 9:b=qr(d,c,a);a=vr(b,f,a);break b;case 7:a=wr(d,f,c,a);break b;case 3:a=sr(d,f,c,a);break b;case 2:a=ur(d,f,c,a);break b;default:a=or(`Unsupported: the return type '${b}'.`)}a.isAstAccepted&&(a=`\n\t\t${a.H.join(\"\\n\")}\n\t\treturn ${a.code};`,b=\"\\n\\treturn (contextItem, domFacade, runtimeLib, options) => {\\n\\t\\tconst {\\n\\t\\t\\terrXPDY0002,\\n\\t\\t} = runtimeLib;\",Qu(e)&&(b+='\\n\\t\\tif (!contextItem) {\\n\\t\\t\\tthrow errXPDY0002(\"Context is needed to evaluate the given path expression.\");\\n\\t\\t}\\n\\n\\t\\tif (!contextItem.nodeType) {\\n\\t\\t\\tthrow new Error(\"Context item must be subtype of node().\");\\n\\t\\t}\\n\\t\\t'),a={code:b+(a+\"}\\n//# sourceURL=generated.js\"),isAstAccepted:!0})}else a=or(\"Unsupported: Can not execute a library module.\");\nreturn a};class Su extends Error{constructor(a,b,c){var d=a.stack;d&&(d.includes(a.message)&&(d=d.substr(d.indexOf(a.message)+a.message.length).trim()),d=d.split(\"\\n\"),d.splice(10),d=d.map(e=>e.startsWith(\" \")||e.startsWith(\"\\t\")?e:` ${e}`),d=d.join(\"\\n\"));super(`Custom XPath function Q{${c}}${b} raised:\\n${a.message}\\n${d}`)}}\nfunction Tu(a,b,c){return 0===b.g?a.F()?null:Rq(a.first(),c).next(0).value:2===b.g||1===b.g?a.O().map(d=>{if(v(d.type,47))throw Error(\"Cannot pass attribute nodes to custom functions\");return Rq(d,c).next(0).value}):Rq(a.first(),c).next(0).value}\nfunction Uu(a){if(\"object\"===typeof a)return a;a=a.split(\":\");if(2!==a.length)throw Error(\"Do not register custom functions in the default function namespace\");const [b,c]=a;a=pg[b];if(!a){a=`generated_namespace_uri_${b}`;if(pg[b])throw Error(\"Prefix already registered: Do not register the same prefix twice.\");pg[b]=a}return{localName:c,namespaceURI:a}}\nfunction Vu(a,b,c,d){const {namespaceURI:e,localName:f}=Uu(a);if(!e)throw vg();const h=b.map(l=>Ja(l)),k=Ja(c);og(e,f,h,k,function(l,n,t){var u=Array.from(arguments);u.splice(0,3);u=u.map((G,N)=>Tu(G,h[N],n));const z={currentContext:n.o,domFacade:n.h.h};let y;try{y=d.apply(void 0,[z,...u])}catch(G){throw new Su(G,f,e);}return y&&\"object\"===typeof y&&Object.getOwnPropertySymbols(y).includes(Lq)?w.create(y.zb):Wb(n.h,y,k)})};var Wu={callFunction(a,b,c,d,e){const f=ng(b,c,d.length);if(!f)throw Error(\"function not found for codegen function call\");b=new cc({M:null,Aa:0,ta:w.empty(),ra:{}});const h=new nb(a);a=new ic(!1,!1,h,null,null,e?e.currentContext:null,null);d=f.callFunction(b,a,null,...d.map((k,l)=>Wb(h,k,f.j[l])));return Tu(d,{type:59,g:0},a)},errXPDY0002:lc};var Xu=(a,b,c,d)=>{c=c?c:new Za;return a()(null!==b&&void 0!==b?b:null,c,Wu,d)};const Yu={[\"http://www.w3.org/2005/XQueryX\"]:\"xqx\",[\"http://www.w3.org/2007/xquery-update-10\"]:\"xquf\",[\"http://fontoxml.com/fontoxpath\"]:\"x\"};\nfunction Zu(a,b){switch(a){case \"copySource\":case \"insertAfter\":case \"insertAsFirst\":case \"insertAsLast\":case \"insertBefore\":case \"insertInto\":case \"modifyExpr\":case \"newNameExpr\":case \"replacementExpr\":case \"replaceValue\":case \"returnExpr\":case \"sourceExpr\":case \"targetExpr\":case \"transformCopies\":case \"transformCopy\":return{localName:a,lb:b||\"http://www.w3.org/2005/XQueryX\"};case \"deleteExpr\":case \"insertExpr\":case \"renameExpr\":case \"replaceExpr\":case \"transformExpr\":return{localName:a,lb:\"http://www.w3.org/2007/xquery-update-10\"};\ncase \"x:stackTrace\":return{localName:\"stackTrace\",lb:\"http://fontoxml.com/fontoxpath\"};default:return{localName:a,lb:\"http://www.w3.org/2005/XQueryX\"}}}\nfunction $u(a,b,c,d,e){if(\"string\"===typeof c)return 0===c.length?null:b.createTextNode(c);if(!Array.isArray(c))throw new TypeError(\"JsonML element should be an array or string\");var f=Zu(c[0],d);d=f.localName;f=f.lb;const h=b.createElementNS(f,Yu[f]+\":\"+d),k=c[1];var l=1;if(\"object\"===typeof k&&!Array.isArray(k)){if(null!==k)for(var n of Object.keys(k))l=k[n],null!==l&&(\"type\"===n?void 0!==l&&a.setAttributeNS(h,f,\"fontoxpath:\"+n,Ha(l)):(\"start\"!==n&&\"end\"!==n&&\"comment\"!==n||\"stackTrace\"!==d||(l=\nJSON.stringify(l)),e&&\"prefix\"===n&&\"\"===l||a.setAttributeNS(h,f,Yu[f]+\":\"+n,l)));l=2}for(let t=l,u=c.length;t<u;++t)n=$u(a,b,c[t],f,e),null!==n&&a.insertBefore(h,n,null);return h}\nfunction av(a,b,c,d=ab){a=Pk(a);let e;try{e=qq(a,{Z:\"XQuery3.1\"===b.language||\"XQueryUpdate3.1\"===b.language,debug:b.debug})}catch(l){hg(a,l)}var f=new qg(b.namespaceResolver||(()=>null),{},void 0===b.defaultFunctionNamespaceURI?\"http://www.w3.org/2005/xpath-functions\":b.defaultFunctionNamespaceURI,b.functionNameResolver||(()=>null));f=new Cg(f);var h=F(e,[\"mainModule\",\"libraryModule\"]),k=F(h,\"moduleDecl\");if(k){const l=H(F(k,\"prefix\"));k=H(F(k,\"uri\"));Gg(f,l,k)}(h=F(h,\"prolog\"))&&tq(h,f,!1,a);!1!==\nb.annotateAst&&jh(e,new rh(f));f=new Za;b=$u(d,c,e,null,!1===b.mc);d.insertBefore(b,c.createComment(a),f.getFirstChild(b));return b};function bv(a){return Promise.resolve(a)};function cv(a,b={debug:!1}){try{var c=qq(a,{Z:!0,debug:b.debug})}catch(f){hg(a,f)}jh(c,new rh);b=F(c,\"libraryModule\");if(!b)throw Error(\"XQuery module must be declared in a library module.\");c=F(b,\"moduleDecl\");var d=F(c,\"uri\");const e=H(d);c=F(c,\"prefix\");d=H(c);c=new Cg(new qg(()=>null,Object.create(null),\"http://www.w3.org/2005/xpath-functions\",Oq(\"http://www.w3.org/2005/xpath-functions\")));Gg(c,d,e);b=F(b,\"prolog\");if(null!==b){let f;try{f=tq(b,c,!0,a)}catch(h){hg(a,h)}f.Ia.forEach(({namespaceURI:h})=>\n{if(e!==h)throw Error(\"XQST0048: Functions and variables declared in a module must reside in the module target namespace.\");});Mk(e,f)}else Mk(e,{Ia:[],Ta:[],pa:null,source:a});return e};const dv=new Map;function ev(a){var b;a:{if(b=Gk.get(a))for(const c of Object.keys(b))if(b[c]&&b[c].length){b=b[c][0].h;break a}b=null}if(b)return b;if(dv.has(a))return dv.get(a);b=\"string\"===typeof a?qq(a,{Z:!1}):Kk(a);b=J(b,[\"mainModule\",\"queryBody\",\"*\"]);if(null===b)throw Error(\"Library modules do not have a specificity\");b=Fk(b,{sa:!1,Z:!1});dv.set(a,b);return b}function fv(a){return ev(a).D()}function gv(a,b){return uf(ev(a).o,ev(b).o)}var hv=new Za;\n\"undefined\"!==typeof fontoxpathGlobal&&(fontoxpathGlobal.compareSpecificity=gv,fontoxpathGlobal.compileXPathToJavaScript=Ru,fontoxpathGlobal.domFacade=hv,fontoxpathGlobal.evaluateXPath=$q,fontoxpathGlobal.evaluateXPathToArray=er,fontoxpathGlobal.evaluateXPathToAsyncIterator=ar,fontoxpathGlobal.evaluateXPathToBoolean=fr,fontoxpathGlobal.evaluateXPathToFirstNode=gr,fontoxpathGlobal.evaluateXPathToMap=hr,fontoxpathGlobal.evaluateXPathToNodes=ir,fontoxpathGlobal.evaluateXPathToNumber=jr,fontoxpathGlobal.evaluateXPathToNumbers=\nkr,fontoxpathGlobal.evaluateXPathToString=lr,fontoxpathGlobal.evaluateXPathToStrings=mr,fontoxpathGlobal.evaluateUpdatingExpression=cr,fontoxpathGlobal.evaluateUpdatingExpressionSync=dr,fontoxpathGlobal.executeJavaScriptCompiledXPath=Xu,fontoxpathGlobal.executePendingUpdateList=nr,fontoxpathGlobal.getBucketForSelector=fv,fontoxpathGlobal.getBucketsForNode=Ya,fontoxpathGlobal.precompileXPath=bv,fontoxpathGlobal.registerXQueryModule=cv,fontoxpathGlobal.registerCustomXPathFunction=Vu,fontoxpathGlobal.parseScript=\nav,fontoxpathGlobal.profiler=Xq,fontoxpathGlobal.createTypedValueFactory=Mq,fontoxpathGlobal.finalizeModuleRegistration=Ok,fontoxpathGlobal.Language=Zq,fontoxpathGlobal.ReturnType=Tq);\nreturn fontoxpathGlobal;\n}\n\n)\n\t.call(typeof window === 'undefined' ? undefined : window, xspattern, prsc);\nexport const compareSpecificity = fontoxpath.compareSpecificity;\nexport const compileXPathToJavaScript = fontoxpath.compileXPathToJavaScript;\nexport const createTypedValueFactory = fontoxpath.createTypedValueFactory;\nexport const domFacade = fontoxpath.domFacade;\nexport const evaluateUpdatingExpression = fontoxpath.evaluateUpdatingExpression;\nexport const evaluateUpdatingExpressionSync = fontoxpath.evaluateUpdatingExpressionSync;\nexport const evaluateXPath = fontoxpath.evaluateXPath;\nexport const evaluateXPathToArray = fontoxpath.evaluateXPathToArray;\nexport const evaluateXPathToAsyncIterator = fontoxpath.evaluateXPathToAsyncIterator;\nexport const evaluateXPathToBoolean = fontoxpath.evaluateXPathToBoolean;\nexport const evaluateXPathToFirstNode = fontoxpath.evaluateXPathToFirstNode;\nexport const evaluateXPathToMap = fontoxpath.evaluateXPathToMap;\nexport const evaluateXPathToNodes = fontoxpath.evaluateXPathToNodes;\nexport const evaluateXPathToNumber = fontoxpath.evaluateXPathToNumber;\nexport const evaluateXPathToNumbers = fontoxpath.evaluateXPathToNumbers;\nexport const evaluateXPathToString = fontoxpath.evaluateXPathToString;\nexport const evaluateXPathToStrings = fontoxpath.evaluateXPathToStrings;\nexport const executeJavaScriptCompiledXPath = fontoxpath.executeJavaScriptCompiledXPath;\nexport const executePendingUpdateList = fontoxpath.executePendingUpdateList;\nexport const finalizeModuleRegistration = fontoxpath.finalizeModuleRegistration;\nexport const getBucketForSelector = fontoxpath.getBucketForSelector;\nexport const getBucketsForNode = fontoxpath.getBucketsForNode;\nexport const Language = fontoxpath.Language;\nexport const parseScript = fontoxpath.parseScript;\nexport const precompileXPath = fontoxpath.precompileXPath;\nexport const profiler = fontoxpath.profiler;\nexport const registerCustomXPathFunction = fontoxpath.registerCustomXPathFunction;\nexport const registerXQueryModule = fontoxpath.registerXQueryModule;\nexport const ReturnType = fontoxpath.ReturnType;\nexport default fontoxpath;\n","import { getBucketsForNode } from 'fontoxpath';\n\n/**\n * A DomFacade that will intercept any and all accesses to _nodes_ from an XPath. Basically the same\n * as the `depends` function, but less explicit and will automatically be called for any node that\n * will be touched in the XPath.\n *\n * Maybe some more granularity is better. Maybe only notify a node's attributes are touched?\n *\n */\nexport class DependencyNotifyingDomFacade {\n /**\n * @param onNodeTouched - onNodeTouched A function what will be executed whenever a node is 'touched' by the XPath\n */\n constructor(onNodeTouched) {\n this._onNodeTouched = onNodeTouched;\n }\n\n /**\n * Get all attributes of this element.\n * The bucket can be used to narrow down which attributes should be retrieved.\n *\n * @param node -\n */\n // eslint-disable-next-line class-methods-use-this\n getAllAttributes(node) {\n return Array.from(node.attributes);\n }\n\n /**\n * Get the value of specified attribute of this element.\n *\n * @param node -\n * @param attributeName -\n */\n // eslint-disable-next-line class-methods-use-this\n getAttribute(node, attributeName) {\n return node.getAttribute(attributeName);\n }\n\n /**\n * Get all child nodes of this element.\n * The bucket can be used to narrow down which child nodes should be retrieved.\n *\n * @param node -\n * @param bucket - The bucket that matches the attribute that will be used.\n */\n // eslint-disable-next-line class-methods-use-this\n getChildNodes(node, bucket) {\n const matchingNodes = Array.from(node.childNodes).filter(\n childNode => !bucket || getBucketsForNode(childNode).includes(bucket),\n );\n matchingNodes.forEach(matchingNode => this._onNodeTouched(matchingNode));\n return matchingNodes;\n }\n\n /**\n * Get the data of this node.\n *\n * @param node -\n */\n getData(node) {\n if (node.nodeType === Node.ATTRIBUTE_NODE) {\n this._onNodeTouched(node);\n return node.value;\n }\n // Text node\n this._onNodeTouched(node.parentNode);\n return node.data;\n }\n\n /**\n * Get the first child of this element.\n * An implementation of IDomFacade is free to interpret the bucket to skip returning nodes that do not match the bucket, or use this information to its advantage.\n *\n * @param node -\n * @param bucket - The bucket that matches the attribute that will be used.\n */\n getFirstChild(node, bucket) {\n for (const child of node.childNodes) {\n if (!bucket || getBucketsForNode(child).includes(bucket)) {\n this._onNodeTouched(child);\n return child;\n }\n }\n return null;\n }\n\n /**\n * Get the last child of this element.\n * An implementation of IDomFacade is free to interpret the bucket to skip returning nodes that do not match the bucket, or use this information to its advantage.\n *\n * @param node -\n * @param bucket - The bucket that matches the attribute that will be used.\n */\n // eslint-disable-next-line class-methods-use-this\n getLastChild(node, bucket) {\n const matchingNodes = node\n .getChildNodes()\n .filter(childNode => !bucket || getBucketsForNode(childNode).includes(bucket));\n const matchNode = matchingNodes[matchingNodes.length - 1];\n if (matchNode) {\n return matchNode;\n }\n return null;\n }\n\n /**\n * Get the next sibling of this node\n * An implementation of IDomFacade is free to interpret the bucket to skip returning nodes that do not match the bucket, or use this information to its advantage.\n *\n * @param node -\n * @param bucket - The bucket that matches the nextSibling that is requested.\n */\n // eslint-disable-next-line class-methods-use-this\n getNextSibling(node, bucket) {\n for (let sibling = node.nextSibling; sibling; sibling = sibling.nextSibling) {\n if (bucket && !getBucketsForNode(sibling).includes(bucket)) {\n // eslint-disable-next-line no-continue\n continue;\n }\n this._onNodeTouched(sibling);\n return sibling;\n }\n return null;\n }\n\n /**\n * Get the parent of this element.\n * An implementation of IDomFacade is free to interpret the bucket to skip returning nodes that do not match the bucket, or use this information to its advantage.\n *\n * @param node - the starting node\n */\n // eslint-disable-next-line class-methods-use-this\n getParentNode(node) {\n return node.parentNode;\n }\n\n /**\n * Get the previous sibling of this element.\n * An implementation of IDomFacade is free to interpret the bucket to skip returning nodes that do not match the bucket, or use this information to its advantage.\n *\n * @param node -\n * @param bucket - The bucket that matches the attribute that will be used.\n */\n // eslint-disable-next-line class-methods-use-this\n getPreviousSibling(node, bucket) {\n for (\n let { previousSibling } = node;\n previousSibling;\n previousSibling = previousSibling.previousSibling\n ) {\n if (bucket && !getBucketsForNode(previousSibling).includes(bucket)) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n return previousSibling;\n }\n return null;\n }\n}\n","import * as fx from 'fontoxpath';\n\nexport class XPathUtil {\n /**\n * creates DOM Nodes from an XPath locationpath expression. Support namespaced and un-namespaced\n * nodes.\n * E.g. 'foo/bar' creates an element 'foo' with an child element 'bar'\n * 'foo/@bar' creates a 'foo' element with an 'bar' attribute\n *\n * supports multiple steps\n *\n * @param xpath\n * @param doc\n * @param fore\n * @return {*}\n */\n static createElementFromXPath(xpath, doc, fore) {\n if (!doc) {\n doc = document.implementation.createDocument(null, null, null); // Create a new XML document if not provided\n }\n\n const parts = xpath.split('/');\n let rootNode = null;\n let currentNode = null;\n\n for (const part of parts) {\n if (!part) continue; // Skip empty parts (e.g., leading slashes)\n\n // Handle attributes\n if (part.startsWith('@')) {\n const attrName = part.slice(1); // Strip '@'\n if (!currentNode) {\n throw new Error('Cannot create an attribute without a parent element.');\n }\n currentNode.setAttribute(attrName, '');\n } else {\n // Handle namespaces if present\n const [prefix, localName] = part.includes(':') ? part.split(':') : [null, part];\n const namespace = prefix ? XPathUtil.lookupNamespace(fore, prefix) : null;\n\n const newElement = namespace\n ? doc.createElementNS(namespace, part)\n : doc.createElement(localName);\n\n if (!rootNode) {\n rootNode = newElement; // Set as the root node\n } else {\n currentNode.appendChild(newElement);\n }\n\n currentNode = newElement;\n }\n }\n\n if (!rootNode) {\n throw new Error('Invalid XPath; no root element could be created.');\n }\n\n return rootNode;\n }\n\n /**\n * looks up namespace on ownerForm. Though not strictly in the sense of resolving namespaces in XML, the\n * fx-fore element is a convenient place to put namespace declarations for 2 reasons:\n * - this way namespaces are scoped to a Fore element\n * - as fx-fore is a web component we can add our xmlns attributes as we got no restrictions to attributes\n * though strictly speaking they are no xmlns declarations and just serve the purpose of namespace lookup.\n *\n * @param boundElement\n * @param prefix\n * @return {string}\n */\n static lookupNamespace(ownerForm, prefix) {\n return ownerForm.getAttribute(`xmlns:${prefix}`);\n }\n\n static querySelectorAll(querySelector, start) {\n const queue = [start];\n const found = [];\n while (queue.length) {\n const item = queue.shift();\n for (const child of Array.from(item.children).reverse()) {\n queue.unshift(child);\n }\n\n if (item.matches && item.matches('template')) {\n queue.unshift(item.content);\n }\n\n if (item.matches && item.matches(querySelector)) {\n found.push(item);\n }\n }\n\n return found;\n }\n\n /**\n * Alternative to `contains` that respects shadowroots\n * @param {Node} ancestor\n * @param {Node} descendant\n * @returns {boolean}\n */\n static contains(ancestor, descendant) {\n while (descendant) {\n if (descendant === ancestor) {\n return true;\n }\n\n if (descendant.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n // We are passing a shadow root boundary\n descendant = descendant.host;\n } else {\n descendant = descendant.parentNode;\n }\n }\n return false;\n }\n\n /**\n * Alternative to `closest` that respects subcontrol boundaries\n *\n * @param {string} querySelector\n * @param {Node} start\n * @returns {HTMLElement}\n */\n static getClosest(querySelector, start) {\n while ((start && !start.matches) || !start.matches(querySelector)) {\n if (start.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n // We are passing a shadow root boundary\n start = start.host;\n continue;\n }\n if (start.nodeType === Node.ATTRIBUTE_NODE) {\n // We are passing an attribute\n start = start.ownerElement;\n continue;\n }\n if (start.nodeType === Node.TEXT_NODE) {\n start = start.parentNode;\n }\n if (start.matches('fx-fore')) {\n // Subform reached. Bail out\n return null;\n }\n start = start.parentNode;\n if (!start) {\n return null;\n }\n }\n return start;\n }\n\n /**\n * returns next bound element upwards in tree\n * @param {Node} start where to start the search\n * @returns {*|null}\n */\n static getParentBindingElement(start) {\n /* if (start.parentNode.host) {\n const { host } = start.parentNode;\n if (host.hasAttribute('ref')) {\n return host;\n }\n } else */\n if (\n start.parentNode &&\n (start.parentNode.nodeType !== Node.DOCUMENT_NODE ||\n start.parentNode.nodeType !== Node.DOCUMENT_FRAGMENT_NODE)\n ) {\n return this.getClosest('[ref],fx-repeatitem', start.parentNode);\n }\n return null;\n }\n\n /**\n * Checks whether the specified path expression is an absolute path.\n *\n * @param {string} path the path expression.\n * @returns {boolean} <code>true</code> if specified path expression is an absolute\n * path, otherwise <code>false</code>.\n */\n static isAbsolutePath(path) {\n return (\n path != null && (path.startsWith('/') || path.startsWith('instance(') || path.startsWith('$'))\n );\n }\n\n /**\n * @param {string} ref\n */\n static isSelfReference(ref) {\n return ref === '.' || ref === './text()' || ref === 'text()' || ref === '' || ref === null;\n }\n\n /**\n * returns the instance id from a complete XPath using `instance()` function.\n *\n * Will return 'default' in case no ref is given at all or the `instance()` function is called without arg.\n *\n * Otherwise instance id is extracted from function and returned. If all fails null is returned.\n * @param {string} ref\n * @param {HTMLElement} boundElement The element related to this ref. Used to resolve variables\n * @returns {string}\n */\n static getInstanceId(ref, boundElement) {\n if (!ref) {\n return 'default';\n }\n if (ref.startsWith('instance()')) {\n return 'default';\n }\n if (ref.startsWith('instance(')) {\n const result = ref.substring(ref.indexOf('(') + 1);\n return result.substring(1, result.indexOf(')') - 1);\n }\n if (ref.startsWith('$')) {\n // this variable might actually point to an instance\n const variableName = ref.match(/\\$(?<variableName>[a-zA-Z0-9\\-\\_]+).*/)?.groups?.variableName;\n let closestActualFormElement = boundElement;\n while (closestActualFormElement && !('inScopeVariables' in closestActualFormElement)) {\n closestActualFormElement =\n closestActualFormElement.nodeType === Node.ATTRIBUTE_NODE\n ? closestActualFormElement.ownerElement\n : closestActualFormElement.parentNode;\n }\n\n const correspondingVariable = closestActualFormElement?.inScopeVariables?.get(variableName);\n if (!correspondingVariable) {\n return null;\n }\n return this.getInstanceId(correspondingVariable.valueQuery, correspondingVariable);\n }\n return null;\n }\n\n /**\n * @param {HTMLElement} boundElement\n * @param {string} path\n * @returns {string}\n */\n static resolveInstance(boundElement, path) {\n let instanceId = XPathUtil.getInstanceId(path, boundElement);\n if (!instanceId) {\n instanceId = XPathUtil.getInstanceId(boundElement.getAttribute('ref'), boundElement);\n }\n if (instanceId !== null) {\n return instanceId;\n }\n\n const parentBinding = XPathUtil.getParentBindingElement(boundElement);\n if (parentBinding) {\n return this.resolveInstance(parentBinding, path);\n }\n return 'default';\n }\n\n /**\n * @param {Node} node\n * @returns string\n */\n static getDocPath(node) {\n const path = fx.evaluateXPathToString('path()', node);\n // Path is like `$default/x[1]/y[1]`\n const shortened = XPathUtil.shortenPath(path);\n return shortened.startsWith('/') ? `${shortened}` : `/${shortened}`;\n }\n\n /**\n * @param {Node} node\n * @param {string} instanceId\n * @returns string\n */\n static getPath(node, instanceId) {\n const path = fx.evaluateXPathToString('path()', node);\n // Path is like `$default/x[1]/y[1]`\n const shortened = XPathUtil.shortenPath(path);\n return shortened.startsWith('/') ? `$${instanceId}${shortened}` : `$${instanceId}/${shortened}`;\n }\n\n /**\n * @param {string} path\n * @returns string\n */\n static shortenPath(path) {\n const tmp = path.replaceAll(/(Q{(.*?)\\})/g, '');\n // cut off leading slash\n const tmp1 = tmp.substring(1, tmp.length);\n // ### cut-off root node ref\n return tmp1.substring(tmp1.indexOf('/'), tmp.length);\n }\n\n /**\n * @param {string} dep\n * @returns {string}\n */\n static getBasePath(dep) {\n const split = dep.split(':');\n return split[0];\n }\n}\n","/**\n * A simple dependency graph\n *\n * based on the work of https://github.com/jriecken/dependency-graph but working on ES6.\n *\n * Furthermore instead of the DepGraphCycleError a compute-exception event is dispatched.\n *\n *\n */\n\n/**\n * Cycle error, including the path of the cycle.\n */\n// const DepGraphCycleError = (exports.DepGraphCycleError = function (cyclePath) {\n\n/*\nexport function DepGraphCycleError(cyclePath) {\n const message = \"Dependency Cycle Found: \" + cyclePath.join(\" -> \");\n const instance = new Error(message);\n instance.cyclePath = cyclePath;\n Object.setPrototypeOf(instance, Object.getPrototypeOf(this));\n if (Error.captureStackTrace) {\n Error.captureStackTrace(instance, DepGraphCycleError);\n }\n return instance;\n};\n\nDepGraphCycleError.prototype = Object.create(Error.prototype, {\n constructor: {\n value: Error,\n enumerable: false,\n writable: true,\n configurable: true\n }\n});\nObject.setPrototypeOf(DepGraphCycleError, Error);\n*/\n\n/**\n * Helper for creating a Topological Sort using Depth-First-Search on a set of edges.\n *\n * Detects cycles and throws an Error if one is detected (unless the \"circular\"\n * parameter is \"true\" in which case it ignores them).\n *\n * @param edges The set of edges to DFS through\n * @param leavesOnly Whether to only return \"leaf\" nodes (ones who have no edges)\n * @param result An array in which the results will be populated\n * @param circular A boolean to allow circular dependencies\n */\nfunction createDFS(edges, leavesOnly, result, circular) {\n const visited = {};\n // eslint-disable-next-line func-names\n return function (start) {\n // console.log('start ', start);\n if (visited[start]) {\n return;\n }\n const inCurrentPath = {};\n const currentPath = [];\n const todo = []; // used as a stack\n todo.push({ node: start, processed: false });\n while (todo.length > 0) {\n const current = todo[todo.length - 1]; // peek at the todo stack\n const { processed } = current;\n const { node } = current;\n if (!processed) {\n // Haven't visited edges yet (visiting phase)\n if (visited[node]) {\n todo.pop();\n // eslint-disable-next-line no-continue\n continue;\n } else if (inCurrentPath[node]) {\n // It's not a DAG\n if (circular) {\n todo.pop();\n // If we're tolerating cycles, don't revisit the node\n // eslint-disable-next-line no-continue\n continue;\n }\n currentPath.push(node);\n window.dispatchEvent(\n new CustomEvent('compute-exception', {\n composed: false,\n bubbles: true,\n detail: {\n path: currentPath,\n message: 'cyclic graph',\n },\n }),\n );\n // return;\n // console.log('‘circular path: ' + currentPath);\n // throw new DepGraphCycleError(currentPath);\n\n // Stop all processing. This form is broken and we should not break the browser\n throw new Error(`Cyclic at ${currentPath}`);\n }\n\n inCurrentPath[node] = true;\n currentPath.push(node);\n const nodeEdges = edges[node];\n // (push edges onto the todo stack in reverse order to be order-compatible with the old DFS implementation)\n for (let i = nodeEdges.length - 1; i >= 0; i -= 1) {\n todo.push({ node: nodeEdges[i], processed: false });\n }\n current.processed = true;\n } else {\n // Have visited edges (stack unrolling phase)\n todo.pop();\n currentPath.pop();\n inCurrentPath[node] = false;\n visited[node] = true;\n if (!leavesOnly || edges[node].length === 0) {\n result.push(node);\n }\n }\n }\n };\n}\n\n/**\n * Simple Dependency Graph\n */\n\n/*\nvar DepGraph = (exports.DepGraph = function DepGraph(opts) {\n this.nodes = {}; // Node -> Node/Data (treated like a Set)\n this.outgoingEdges = {}; // Node -> [Dependency Node]\n this.incomingEdges = {}; // Node -> [Dependant Node]\n this.circular = opts && !!opts.circular; // Allows circular deps\n});\n*/\n\nexport function DepGraph(opts) {\n this.nodes = {}; // Node -> Node/Data (treated like a Set)\n this.outgoingEdges = {}; // Node -> [Dependency Node]\n this.incomingEdges = {}; // Node -> [Dependant Node]\n this.circular = opts && !!opts.circular; // Allows circular deps\n}\n\nDepGraph.prototype = {\n /**\n * The number of nodes in the graph.\n */\n size() {\n return Object.keys(this.nodes).length;\n },\n /**\n * Add a node to the dependency graph. If a node already exists, this method will do nothing.\n */\n addNode(node, data) {\n if (!this.hasNode(node)) {\n // Checking the arguments length allows the user to add a node with undefined data\n if (arguments.length === 2) {\n this.nodes[node] = data;\n } else {\n this.nodes[node] = node;\n }\n this.outgoingEdges[node] = [];\n this.incomingEdges[node] = [];\n }\n },\n /**\n * Remove a node from the dependency graph. If a node does not exist, this method will do nothing.\n */\n removeNode(node) {\n if (this.hasNode(node)) {\n delete this.nodes[node];\n delete this.outgoingEdges[node];\n delete this.incomingEdges[node];\n // [this.incomingEdges, this.outgoingEdges].forEach(function (edgeList) {\n [this.incomingEdges, this.outgoingEdges].forEach(edgeList => {\n Object.keys(edgeList).forEach(key => {\n const idx = edgeList[key].indexOf(node);\n if (idx >= 0) {\n edgeList[key].splice(idx, 1);\n }\n }, this);\n });\n }\n },\n /**\n * Check if a node exists in the graph\n */\n hasNode(node) {\n // return this.nodes.hasOwnProperty(node);\n\n return Object.prototype.hasOwnProperty.call(this.nodes, node);\n },\n /**\n * Get the data associated with a node name\n */\n getNodeData(node) {\n if (this.hasNode(node)) {\n return this.nodes[node];\n }\n throw new Error(`Node does not exist: ${node}`);\n },\n /**\n * Set the associated data for a given node name. If the node does not exist, this method will throw an error\n */\n setNodeData(node, data) {\n if (this.hasNode(node)) {\n this.nodes[node] = data;\n } else {\n throw new Error(`Node does not exist: ${node}`);\n }\n },\n /**\n * Add a dependency between two nodes. If either of the nodes does not exist,\n * an Error will be thrown.\n */\n addDependency(from, to) {\n if (!this.hasNode(from)) {\n throw new Error(`Node does not exist: ${from}`);\n }\n if (!this.hasNode(to)) {\n throw new Error(`Node does not exist: ${to}`);\n }\n if (this.outgoingEdges[from].indexOf(to) === -1) {\n this.outgoingEdges[from].push(to);\n }\n if (this.incomingEdges[to].indexOf(from) === -1) {\n this.incomingEdges[to].push(from);\n }\n return true;\n },\n /**\n * Remove a dependency between two nodes.\n */\n removeDependency(from, to) {\n let idx;\n if (this.hasNode(from)) {\n idx = this.outgoingEdges[from].indexOf(to);\n if (idx >= 0) {\n this.outgoingEdges[from].splice(idx, 1);\n }\n }\n\n if (this.hasNode(to)) {\n idx = this.incomingEdges[to].indexOf(from);\n if (idx >= 0) {\n this.incomingEdges[to].splice(idx, 1);\n }\n }\n },\n /**\n * Return a clone of the dependency graph. If any custom data is attached\n * to the nodes, it will only be shallow copied.\n */\n clone() {\n const source = this;\n const result = new DepGraph();\n const keys = Object.keys(source.nodes);\n keys.forEach(n => {\n result.nodes[n] = source.nodes[n];\n result.outgoingEdges[n] = source.outgoingEdges[n].slice(0);\n result.incomingEdges[n] = source.incomingEdges[n].slice(0);\n });\n return result;\n },\n /**\n * Get an array containing the direct dependencies of the specified node.\n *\n * Throws an Error if the specified node does not exist.\n */\n directDependenciesOf(node) {\n if (this.hasNode(node)) {\n return this.outgoingEdges[node].slice(0);\n }\n throw new Error(`Node does not exist: ${node}`);\n },\n /**\n * Get an array containing the nodes that directly depend on the specified node.\n *\n * Throws an Error if the specified node does not exist.\n */\n directDependantsOf(node) {\n if (this.hasNode(node)) {\n return this.incomingEdges[node].slice(0);\n }\n throw new Error(`Node does not exist: ${node}`);\n },\n /**\n * Get an array containing the nodes that the specified node depends on (transitively).\n *\n * Throws an Error if the graph has a cycle, or the specified node does not exist.\n *\n * If `leavesOnly` is true, only nodes that do not depend on any other nodes will be returned\n * in the array.\n */\n dependenciesOf(node, leavesOnly) {\n if (this.hasNode(node)) {\n const result = [];\n const DFS = createDFS(this.outgoingEdges, leavesOnly, result, this.circular);\n DFS(node);\n const idx = result.indexOf(node);\n if (idx >= 0) {\n result.splice(idx, 1);\n }\n return result;\n }\n throw new Error(`Node does not exist: ${node}`);\n },\n /**\n * get an array containing the nodes that depend on the specified node (transitively).\n *\n * Throws an Error if the graph has a cycle, or the specified node does not exist.\n *\n * If `leavesOnly` is true, only nodes that do not have any dependants will be returned in the array.\n */\n dependantsOf(node, leavesOnly) {\n if (this.hasNode(node)) {\n const result = [];\n const DFS = createDFS(this.incomingEdges, leavesOnly, result, this.circular);\n DFS(node);\n const idx = result.indexOf(node);\n if (idx >= 0) {\n result.splice(idx, 1);\n }\n return result;\n }\n throw new Error(`Node does not exist: ${node}`);\n },\n\n /**\n * Get an array of nodes that have no dependants (i.e. nothing depends on them).\n */\n entryNodes() {\n const self = this;\n return Object.keys(this.nodes).filter(node => self.incomingEdges[node].length === 0);\n },\n\n /**\n * Construct the overall processing order for the dependency graph.\n *\n * Throws an Error if the graph has a cycle.\n *\n * If `leavesOnly` is true, only nodes that do not depend on any other nodes will be returned.\n */\n overallOrder(leavesOnly) {\n const self = this;\n const result = [];\n const keys = Object.keys(this.nodes);\n if (keys.length === 0) {\n return result; // Empty graph\n }\n if (!this.circular) {\n // Look for cycles - we run the DFS starting at all the nodes in case there\n // are several disconnected subgraphs inside this dependency graph.\n const CycleDFS = createDFS(this.outgoingEdges, false, [], this.circular);\n keys.forEach(n => {\n CycleDFS(n);\n });\n }\n\n const DFS = createDFS(this.outgoingEdges, leavesOnly, result, this.circular);\n // Find all potential starting points (nodes with nothing depending on them) an\n // run a DFS starting at these points to get the order\n keys\n .filter(node => self.incomingEdges[node].length === 0)\n .forEach(n => {\n DFS(n);\n });\n\n // If we're allowing cycles - we need to run the DFS against any remaining\n // nodes that did not end up in the initial result (as they are part of a\n // subgraph that does not have a clear starting point)\n if (this.circular) {\n keys.filter(node => result.indexOf(node) === -1).forEach(n => DFS(n));\n }\n\n return result;\n },\n};\n\n// Create some aliases\nDepGraph.prototype.directDependentsOf = DepGraph.prototype.directDependantsOf;\nDepGraph.prototype.dependentsOf = DepGraph.prototype.dependantsOf;\n","export function prettifyXml(source) {\n const xmlDoc = new DOMParser().parseFromString(source, 'application/xml');\n const xsltDoc = new DOMParser().parseFromString(\n [\n // describes how we want to modify the XML - indent everything\n '<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">',\n ' <xsl:output method=\"xml\" indent=\"yes\" omit-xml-declaration=\"yes\"/>',\n ' <xsl:strip-space elements=\"*\"/>',\n ' <xsl:template match=\"text()\">', // change to just text() to strip space in text nodes\n ' <xsl:value-of select=\"normalize-space(.)\"/>',\n ' </xsl:template>',\n ' <xsl:template match=\"node()|@*\">',\n ' <xsl:copy>',\n ' <xsl:apply-templates select=\"node()|@*\"/>',\n ' </xsl:copy>',\n ' </xsl:template>',\n '</xsl:stylesheet>',\n ].join('\\n'),\n 'application/xml',\n );\n\n const xsltProcessor = new XSLTProcessor();\n xsltProcessor.importStylesheet(xsltDoc);\n const resultDoc = xsltProcessor.transformToDocument(xmlDoc);\n const resultXml = new XMLSerializer().serializeToString(resultDoc);\n return resultXml;\n}\n","import {\n evaluateXPath as fxEvaluateXPath,\n evaluateXPathToBoolean as fxEvaluateXPathToBoolean,\n evaluateXPathToFirstNode as fxEvaluateXPathToFirstNode,\n evaluateXPathToNodes as fxEvaluateXPathToNodes,\n evaluateXPathToNumber as fxEvaluateXPathToNumber,\n evaluateXPathToString as fxEvaluateXPathToString,\n evaluateXPathToStrings as fxEvaluateXPathToStrings,\n parseScript,\n registerCustomXPathFunction,\n registerXQueryModule,\n} from 'fontoxpath';\n\nimport { XPathUtil } from './xpath-util.js';\nimport { prettifyXml } from './functions/common-function.js';\n\nconst XFORMS_NAMESPACE_URI = 'http://www.w3.org/2002/xforms';\n\nconst createdNamespaceResolversByXPathQueryAndNode = new Map();\n\n// A global registry of function names that are declared in Fore by a developer using the\n// `fx-function` element. These should be available without providing a prefix as well\nexport const globallyDeclaredFunctionLocalNames = [];\n\nfunction getCachedNamespaceResolver(xpath, node) {\n if (!createdNamespaceResolversByXPathQueryAndNode.has(xpath)) {\n return null;\n }\n return createdNamespaceResolversByXPathQueryAndNode.get(xpath).get(node) || null;\n}\n\nfunction setCachedNamespaceResolver(xpath, node, resolver) {\n if (!createdNamespaceResolversByXPathQueryAndNode.has(xpath)) {\n return createdNamespaceResolversByXPathQueryAndNode.set(xpath, new Map());\n }\n return createdNamespaceResolversByXPathQueryAndNode.get(xpath).set(node, resolver);\n}\n\nconst xhtmlNamespaceResolver = prefix => {\n if (!prefix) {\n return 'http://www.w3.org/1999/xhtml';\n }\n return undefined;\n};\nexport function isInShadow(node) {\n return node.getRootNode() instanceof ShadowRoot;\n}\n\n/**\n * Resolve an id in scope. Behaves like the algorithm defined on https://www.w3.org/community/xformsusers/wiki/XForms_2.0#idref-resolve\n *\n * @param {string} id\n * @param {Node} sourceObject\n * @param {string} nodeName\n *\n * @returns {HTMLElement} The element with that ID, resolved with respect to repeats\n */\nexport function resolveId(id, sourceObject, nodeName = null) {\n const query =\n 'outermost(ancestor-or-self::fx-fore[1]/(descendant::fx-fore|descendant::*[@id = $id]))[not(self::fx-fore)]';\n /*\n if (nodeName === 'fx-instance') {\n // Instance elements can only be in the `model` element\n // query = 'ancestor-or-self::fx-fore[1]/fx-model/fx-instance[@id = $id]';\n\n const fore = Fore.getFore(sourceObject);\n const instances = fore.getModel().instances;\n const targetInstance = instances.find(i => i.id === id);\n return targetInstance;\n return document.getElementById(id);\n\t}\n */\n if (sourceObject.nodeType === Node.TEXT_NODE) {\n sourceObject = sourceObject.parentNode;\n }\n if (sourceObject.nodeType === Node.ATTRIBUTE_NODE) {\n sourceObject = sourceObject.ownerElement;\n }\n if (sourceObject.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n sourceObject = sourceObject.parentNode.host;\n }\n const ownerForm =\n sourceObject.localName === 'fx-fore' ? sourceObject : sourceObject.closest('fx-fore');\n const elementsWithId = ownerForm.querySelectorAll(`[id='${id}']`);\n if (elementsWithId.length === 1) {\n // A single one is found. Assume no ID reuse.\n const targetObject = elementsWithId[0];\n if (nodeName && targetObject.localName !== nodeName) {\n return null;\n }\n return targetObject;\n }\n\n const allMatchingTargetObjects = fxEvaluateXPathToNodes(\n query,\n sourceObject,\n null,\n { id },\n { namespaceResolver: xhtmlNamespaceResolver },\n );\n\n if (allMatchingTargetObjects.length === 0) {\n return null;\n }\n\n if (\n allMatchingTargetObjects.length === 1 &&\n fxEvaluateXPathToBoolean(\n '(ancestor::fx-fore | ancestor::fx-repeat)[last()]/self::fx-fore',\n allMatchingTargetObjects[0],\n null,\n null,\n { namespaceResolver: xhtmlNamespaceResolver },\n )\n ) {\n // If the target element is not repeated, then the search for the target object is trivial since\n // there is only one associated with the target element that bears the matching ID. This is true\n // regardless of whether or not the source object is repeated. However, if the target element is\n // repeated, then additional information must be used to help select a target object from among\n // those associated with the identified target element.\n const targetObject = allMatchingTargetObjects[0];\n if (nodeName && targetObject.localName !== nodeName) {\n return null;\n }\n return targetObject;\n }\n\n // SPEC:\n\n // 12.2.1 References to Elements within a repeat Element\n\n // When the target element that is identified by the IDREF of a source object has one or more\n // repeat elements as ancestors, then the set of ancestor repeats are partitioned into two\n // subsets, those in common with the source element and those that are not in common. Any ancestor\n // repeat elements of the target element not in common with the source element are descendants of\n // the repeat elements that the source and target element have in common, if any.\n\n // For the repeat elements that are in common, the desired target object exists in the same set of\n // run-time objects that contains the source object. Then, for each ancestor repeat of the target\n // element that is not in common with the source element, the current index of the repeat\n // determines the set of run-time objects that contains the desired target object.\n for (const ancestorRepeatItem of fxEvaluateXPathToNodes(\n 'ancestor::fx-repeatitem => reverse()',\n sourceObject,\n null,\n null,\n { namespaceResolver: xhtmlNamespaceResolver },\n )) {\n const foundTargetObjects = allMatchingTargetObjects.filter(to =>\n XPathUtil.contains(ancestorRepeatItem, to),\n );\n switch (foundTargetObjects.length) {\n case 0:\n // Nothing found: ignore\n break;\n case 1: {\n // A single one is found: the target object is directly in a common repeat\n const targetObject = foundTargetObjects[0];\n if (nodeName && targetObject.localName !== nodeName) {\n return null;\n }\n return targetObject;\n }\n default: {\n // Multiple target objects are found: they are in a repeat that is not common with the\n // source object We found a target object in a common repeat! We now need to find the one\n // that is in the repeatitem identified at the current index\n const targetObject = foundTargetObjects.find(to =>\n fxEvaluateXPathToNodes(\n 'every $ancestor of ancestor::fx-repeatitem satisfies $ancestor is $ancestor/../child::fx-repeatitem[../@repeat-index]',\n to,\n null,\n {},\n ),\n );\n if (!targetObject) {\n // Nothing valid found for whatever reason. This might be something dynamic?\n return null;\n }\n if (nodeName && targetObject.localName !== nodeName) {\n return null;\n }\n return targetObject;\n }\n }\n }\n // We found no target objects in common repeats. The id is unresolvable\n return null;\n}\n\n// Make namespace resolving use the `instance` element that is related to here\nconst xmlDocument = new DOMParser().parseFromString('<xml />', 'text/xml');\n\nconst instanceReferencesByQuery = new Map();\n\nfunction findInstanceReferences(xpathQuery) {\n if (!xpathQuery.includes('instance')) {\n // No call to the instance function anyway: short-circuit and prevent AST processing\n return [];\n }\n if (instanceReferencesByQuery.has(xpathQuery)) {\n return instanceReferencesByQuery.get(xpathQuery);\n }\n const xpathAST = parseScript(xpathQuery, {}, xmlDocument);\n const instanceReferences = fxEvaluateXPathToStrings(\n `descendant::xqx:functionCallExpr\n\t\t\t\t[xqx:functionName = \"instance\"]\n\t\t\t\t/xqx:arguments\n\t\t\t\t/xqx:stringConstantExpr\n\t\t\t\t/xqx:value`,\n xpathAST,\n null,\n {},\n {\n namespaceResolver: prefix =>\n prefix === 'xqx' ? 'http://www.w3.org/2005/XQueryX' : undefined,\n },\n );\n\n instanceReferencesByQuery.set(xpathQuery, instanceReferences);\n\n return instanceReferences;\n}\n/**\n * @typedef {function(string):string} NamespaceResolver\n */\n\n/**\n * @function\n * Resolve a namespace. Needs a namespace prefix and the element that is most closely related to the\n * XPath in which the namespace is being resolved. The prefix will be resolved by using the\n * ancestry of said element.\n *\n * It has two ways of doing so:\n *\n * - If the prefix is defined in an `xmlns:XXX=\"YYY\"` namespace declaration, it will return 'YYY'.\n * - If the prefix is the empty prefix and there is an `xpath-default-namespace=\"YYY\"` attribute in\n * - the * ancestry, that attribute will be used and 'YYY' will be returned\n *\n * @param {string} xpathQuery\n * @param {HTMLElement} formElement\n * @returns {NamespaceResolver} The namespace resolver for this context\n */\nfunction createNamespaceResolver(xpathQuery, formElement) {\n const cachedResolver = getCachedNamespaceResolver(xpathQuery, formElement);\n if (cachedResolver) {\n return cachedResolver;\n }\n let instanceReferences = findInstanceReferences(xpathQuery);\n if (instanceReferences.length === 0) {\n // No instance functions. Look up further in the hierarchy to see if we can deduce the intended context from there\n const ancestorComponent =\n formElement.parentNode &&\n formElement.parentNode.nodeType === formElement.ELEMENT_NODE &&\n formElement.parentNode.closest('[ref]');\n if (ancestorComponent) {\n const resolver = createNamespaceResolver(\n ancestorComponent.getAttribute('ref'),\n ancestorComponent,\n );\n setCachedNamespaceResolver(xpathQuery, formElement, resolver);\n return resolver;\n }\n // Nothing found: let's just assume we're supposed to use the `default` instance\n instanceReferences = ['default'];\n }\n\n if (instanceReferences.length === 1) {\n // console.log(`resolving ${xpathQuery} with ${instanceReferences[0]}`);\n let instance;\n if (instanceReferences[0] === 'default') {\n /**\n * @type {HTMLElement}\n */\n const actualForeElement = fxEvaluateXPathToFirstNode(\n 'ancestor-or-self::fx-fore[1]',\n formElement,\n null,\n null,\n { namespaceResolver: xhtmlNamespaceResolver },\n );\n\n instance = actualForeElement && actualForeElement.querySelector('fx-instance');\n } else {\n instance = resolveId(instanceReferences[0], formElement, 'fx-instance');\n }\n if (instance && instance.hasAttribute('xpath-default-namespace')) {\n const xpathDefaultNamespace = instance.getAttribute('xpath-default-namespace');\n /*\n console.log(\n `Resolving the xpath ${xpathQuery} with the default namespace set to ${xpathDefaultNamespace}`,\n );\n\t\t\t*/\n /**\n * @type {NamespaceResolver}\n */\n const resolveNamespacePrefix = prefix => {\n if (!prefix) {\n return xpathDefaultNamespace;\n }\n return undefined;\n };\n setCachedNamespaceResolver(xpathQuery, formElement, resolveNamespacePrefix);\n return resolveNamespacePrefix;\n }\n }\n if (instanceReferences.length > 1) {\n console.warn(\n `More than one instance is used in the query \"${xpathQuery}\". The default namespace resolving will be used`,\n );\n }\n\n const xpathDefaultNamespace =\n fxEvaluateXPathToString('ancestor-or-self::*/@xpath-default-namespace[last()]', formElement) ||\n '';\n\n /**\n * @type {NamespaceResolver}\n */\n const resolveNamespacePrefix = function resolveNamespacePrefix(prefix) {\n if (prefix === '') {\n return xpathDefaultNamespace;\n }\n\n // Note: ideally we should use Node#lookupNamespaceURI. However, the nodes we are passed are\n // XML. The best we can do is emulate the `xmlns:xxx` namespace declarations by regarding them as\n // attributes. Which they technically ARE NOT!\n\n return fxEvaluateXPathToString(\n 'ancestor-or-self::*/@*[name() = \"xmlns:\" || $prefix][last()]',\n formElement,\n null,\n { prefix },\n );\n };\n\n setCachedNamespaceResolver(xpathQuery, formElement, resolveNamespacePrefix);\n return resolveNamespacePrefix;\n}\n\nfunction createNamespaceResolverForNode(query, contextNode, formElement) {\n if (((contextNode && contextNode.ownerDocument) || contextNode) === window.document) {\n // Running a query on the HTML DOM. Don't bother resolving namespaces in any other way\n return xhtmlNamespaceResolver;\n }\n return createNamespaceResolver(query, formElement);\n}\n\n/**\n * Implementation of the functionNameResolver passed to FontoXPath to\n * redirect function resolving for unprefixed functions to either the fn or the xf namespace\n */\n// eslint-disable-next-line no-unused-vars\nfunction functionNameResolver({ prefix, localName }, _arity) {\n switch (localName) {\n // TODO: put the full XForms library functions set here\n case 'context':\n case 'base64encode':\n case 'boolean-from-string':\n case 'current':\n case 'depends':\n case 'event':\n case 'fore-attr':\n case 'index':\n case 'instance':\n case 'json2xml':\n case 'xml2Json':\n case 'log':\n case 'parse':\n case 'local-date':\n case 'local-dateTime':\n case 'logtree':\n case 'uri':\n case 'uri-fragment':\n case 'uri-host':\n case 'uri-param':\n case 'uri-path':\n case 'uri-relpath':\n case 'uri-port':\n case 'uri-query':\n case 'uri-scheme':\n case 'uri-scheme-specific-part':\n return { namespaceURI: XFORMS_NAMESPACE_URI, localName };\n default:\n if (prefix === '' && globallyDeclaredFunctionLocalNames.includes(localName)) {\n // The function has been declared without a prefix and is called here without a prefix.\n // Just make this work. It is the developer-friendly way\n return { namespaceURI: 'http://www.w3.org/2005/xquery-local-functions', localName };\n }\n if (prefix === 'fn' || prefix === '') {\n return { namespaceURI: 'http://www.w3.org/2005/xpath-functions', localName };\n }\n if (prefix === 'local') {\n return { namespaceURI: 'http://www.w3.org/2005/xquery-local-functions', localName };\n }\n return null;\n }\n}\n\n/**\n * Get the variables in scope of the form element. These are the values of the variables that\n * logically precede the formElement that declares the XPath\n *\n * @param {Node} formElement The element that declares the XPath\n *\n * @returns {Object} A key-value mapping of the variables\n */\nfunction getVariablesInScope(formElement) {\n let closestActualFormElement = formElement;\n while (closestActualFormElement && !('inScopeVariables' in closestActualFormElement)) {\n closestActualFormElement =\n closestActualFormElement.nodeType === Node.ATTRIBUTE_NODE\n ? closestActualFormElement.ownerElement\n : closestActualFormElement.parentNode;\n }\n\n if (!closestActualFormElement) {\n return {};\n }\n\n const variables = {};\n if (closestActualFormElement.inScopeVariables) {\n for (const key of closestActualFormElement.inScopeVariables.keys()) {\n const varElementOrValue = closestActualFormElement.inScopeVariables.get(key);\n if (!varElementOrValue) {\n continue;\n }\n if (varElementOrValue.nodeType) {\n // We are a var element, set the value to the value computed there\n variables[key] = varElementOrValue.value;\n // variables[key] = varElementOrValue.inScopeVariables.get(key);\n } else {\n // We are a direct value. This is used to leak in event variables\n variables[key] = varElementOrValue;\n }\n }\n }\n return variables;\n}\n\n/**\n * Evaluate an XPath to _any_ type. When possible, prefer to use any other function to ensure the\n * type of the output is more predictable.\n *\n * @param {string} xpath The XPath to run\n * @param {Node} contextNode The start of the XPath\n * @param {import('./ForeElementMixin.js').default} formElement The form element associated to the XPath\n * @param {Object} variables Any variables to pass to the XPath\n * @param {Object} options Any options to pass to the XPath\n */\n/*\nexport function evaluateXPath(xpath, contextNode, formElement, variables = {}, options={}, domFacade = null) {\n const namespaceResolver = createNamespaceResolverForNode(xpath, contextNode, formElement);\n const variablesInScope = getVariablesInScope(formElement);\n\n return fxEvaluateXPath(\n xpath,\n contextNode,\n domFacade,\n {...variablesInScope, ...variables},\n fxEvaluateXPath.ALL_RESULTS_TYPE,\n {\n\t\t\tdebug: true,\n currentContext: {formElement, variables},\n moduleImports: {\n xf: XFORMS_NAMESPACE_URI,\n },\n functionNameResolver,\n namespaceResolver,\n\t\t\tlanguage: options.language || evaluateXPath.XPATH_3_1\n },\n );\n}\n*/\nexport function evaluateXPath(xpath, contextNode, formElement, variables = {}, options = {}) {\n try {\n const namespaceResolver = createNamespaceResolverForNode(xpath, contextNode, formElement);\n const variablesInScope = getVariablesInScope(formElement);\n\n const result = fxEvaluateXPath(\n xpath,\n contextNode,\n null,\n { ...variablesInScope, ...variables },\n fxEvaluateXPath.ALL_RESULTS_TYPE,\n {\n debug: true,\n currentContext: { formElement, variables },\n moduleImports: {\n xf: XFORMS_NAMESPACE_URI,\n },\n functionNameResolver,\n namespaceResolver,\n language: options.language || fxEvaluateXPath.XPATH_3_1_LANGUAGE,\n },\n );\n // console.log('evaluateXPath',xpath, result);\n return result;\n } catch (e) {\n formElement.dispatchEvent(\n new CustomEvent('error', {\n composed: false,\n bubbles: true,\n detail: {\n origin: formElement,\n message: `Expression '${xpath}' failed`,\n expr: xpath,\n level: 'Error',\n },\n }),\n );\n\n /*\n formElement.dispatchEvent(\n new CustomEvent('error', {\n composed: false,\n bubbles: true,\n cancelable:true,\n detail: {\n origin: formElement,\n message: `Expression '${xpath}' failed`,\n expr:xpath,\n level:'Error'},\n }),\n );\n*/\n // Return 'nothing' in hope the rest of the page can forgive this\n return [];\n }\n}\n/**\n * Evaluate an XPath to the first Node\n *\n * @param {string} xpath The XPath to run\n * @param {Node} contextNode The start of the XPath\n * @param {import('./ForeElementMixin.js').default} formElement The form element associated to the XPath\n * @returns {Node} The first node found in the XPath\n */\nexport function evaluateXPathToFirstNode(xpath, contextNode, formElement) {\n try {\n const namespaceResolver = createNamespaceResolverForNode(xpath, contextNode, formElement);\n const variablesInScope = getVariablesInScope(formElement);\n const result = fxEvaluateXPathToFirstNode(xpath, contextNode, null, variablesInScope, {\n defaultFunctionNamespaceURI: XFORMS_NAMESPACE_URI,\n moduleImports: {\n xf: XFORMS_NAMESPACE_URI,\n },\n currentContext: { formElement },\n functionNameResolver,\n namespaceResolver,\n });\n // console.log('evaluateXPathToFirstNode',xpath, result);\n return result;\n } catch (e) {\n formElement.dispatchEvent(\n new CustomEvent('error', {\n composed: false,\n bubbles: true,\n detail: {\n origin: formElement,\n message: `Expression '${xpath}' failed`,\n expr: xpath,\n level: 'Error',\n },\n }),\n );\n }\n}\n\n/**\n * Evaluate an XPath to all nodes\n *\n * @param {string} xpath The XPath to run\n * @param {Node} contextNode The start of the XPath\n * @param {import('./ForeElementMixin.js').default} formElement The form element associated to the XPath\n * @return {Node[]} All nodes\n */\nexport function evaluateXPathToNodes(xpath, contextNode, formElement) {\n try {\n const namespaceResolver = createNamespaceResolverForNode(xpath, contextNode, formElement);\n const variablesInScope = getVariablesInScope(formElement);\n\n const result = fxEvaluateXPathToNodes(xpath, contextNode, null, variablesInScope, {\n currentContext: { formElement },\n functionNameResolver,\n moduleImports: {\n xf: XFORMS_NAMESPACE_URI,\n },\n namespaceResolver,\n });\n // console.log('evaluateXPathToNodes',xpath, result);\n return result;\n } catch (e) {\n formElement.dispatchEvent(\n new CustomEvent('error', {\n composed: false,\n bubbles: true,\n detail: {\n origin: formElement,\n message: `Expression '${xpath}' failed`,\n expr: xpath,\n level: 'Error',\n },\n }),\n );\n }\n}\n\n/**\n * Evaluate an XPath to a boolean\n *\n * @param {string} xpath The XPath to run\n * @param {Node} contextNode The start of the XPath\n * @param {import('./ForeElementMixin.js').default} formElement The form element associated to the XPath\n * @return {boolean}\n */\nexport function evaluateXPathToBoolean(xpath, contextNode, formElement) {\n try {\n const namespaceResolver = createNamespaceResolverForNode(xpath, contextNode, formElement);\n const variablesInScope = getVariablesInScope(formElement);\n\n return fxEvaluateXPathToBoolean(xpath, contextNode, null, variablesInScope, {\n currentContext: { formElement },\n functionNameResolver,\n moduleImports: {\n xf: XFORMS_NAMESPACE_URI,\n },\n namespaceResolver,\n });\n } catch (e) {\n formElement.dispatchEvent(\n new CustomEvent('error', {\n composed: false,\n bubbles: true,\n detail: {\n origin: formElement,\n message: `Expression '${xpath}' failed`,\n expr: xpath,\n level: 'Error',\n },\n }),\n );\n }\n}\n\n/**\n * Evaluate an XPath to a string\n *\n * @param {string} xpath The XPath to run\n * @param {Node} contextNode The start of the XPath\n * @param {Node} formElement The form element associated to the XPath\n * @param {Node} formElement The element where the XPath is defined: used for namespace resolving\n * @param {import('fontoxpath').IDomFacade} [domFacade=null] A DomFacade is used in bindings to intercept DOM\n * access. This is used to determine dependencies between bind elements.\n * @return {string}\n */\nexport function evaluateXPathToString(xpath, contextNode, formElement, domFacade = null) {\n try {\n const namespaceResolver = createNamespaceResolverForNode(xpath, contextNode, formElement);\n const variablesInScope = getVariablesInScope(formElement);\n\n return fxEvaluateXPathToString(xpath, contextNode, domFacade, variablesInScope, {\n currentContext: { formElement },\n functionNameResolver,\n moduleImports: {\n xf: XFORMS_NAMESPACE_URI,\n },\n namespaceResolver,\n });\n } catch (e) {\n formElement.dispatchEvent(\n new CustomEvent('error', {\n composed: false,\n bubbles: true,\n detail: {\n origin: formElement,\n message: `Expression '${xpath}' failed`,\n expr: xpath,\n level: 'Error',\n },\n }),\n );\n }\n}\n\n/**\n * Evaluate an XPath to a set of strings\n *\n * @param {string} xpath The XPath to run\n * @param {Node} contextNode The start of the XPath\n * @param {Node} formElement The form element associated to the XPath\n * @param {Node} formElement The element where the XPath is defined: used for namespace resolving\n * @param {import('fontoxpath').IDomFacade} [domFacade=null] A DomFacade is used in bindings to intercept DOM\n * access. This is used to determine dependencies between bind elements.\n * @return {string[]}\n */\nexport function evaluateXPathToStrings(xpath, contextNode, formElement, domFacade = null) {\n try {\n const namespaceResolver = createNamespaceResolverForNode(xpath, contextNode, formElement);\n return fxEvaluateXPathToStrings(\n xpath,\n contextNode,\n domFacade,\n {},\n {\n currentContext: { formElement },\n functionNameResolver,\n moduleImports: {\n xf: XFORMS_NAMESPACE_URI,\n },\n namespaceResolver,\n },\n );\n } catch (e) {\n formElement.dispatchEvent(\n new CustomEvent('error', {\n composed: false,\n bubbles: true,\n detail: {\n origin: formElement,\n message: `Expression '${xpath}' failed`,\n expr: xpath,\n level: 'Error',\n },\n }),\n );\n }\n}\n\n/**\n * Evaluate an XPath to a number\n *\n * @param {string} xpath The XPath to run\n * @param {Node} contextNode The start of the XPath\n * @param {Node} formElement The form element associated to the XPath\n * @param {Node} formElement The element where the XPath is defined: used for namespace resolving\n * @param {import('fontoxpath').IDomFacade} [domFacade=null] A DomFacade is used in bindings to intercept DOM\n * access. This is used to determine dependencies between bind elements.\n * @return {number}\n */\nexport function evaluateXPathToNumber(xpath, contextNode, formElement, domFacade = null) {\n try {\n const namespaceResolver = createNamespaceResolverForNode(xpath, contextNode, formElement);\n const variablesInScope = getVariablesInScope(formElement);\n\n return fxEvaluateXPathToNumber(xpath, contextNode, domFacade, variablesInScope, {\n currentContext: { formElement },\n functionNameResolver,\n moduleImports: {\n xf: XFORMS_NAMESPACE_URI,\n },\n namespaceResolver,\n });\n } catch (e) {\n formElement.dispatchEvent(\n new CustomEvent('error', {\n composed: false,\n bubbles: true,\n detail: {\n origin: formElement,\n message: `Expression '${xpath}' failed`,\n expr: xpath,\n level: 'Error',\n },\n }),\n );\n }\n}\n\nconst contextFunction = (dynamicContext, string) => {\n const caller = dynamicContext.currentContext.formElement;\n let instance = null;\n if (string) {\n instance = resolveId(string, caller);\n } else {\n instance = XPathUtil.getParentBindingElement(caller);\n }\n if (instance) {\n if (instance.nodeName === 'FX-REPEAT') {\n const { nodeset } = instance;\n for (let parent = caller; parent; parent = parent.parentNode) {\n if (parent.parentNode === instance) {\n const offset = Array.from(parent.parentNode.children).indexOf(parent);\n return nodeset[offset];\n }\n }\n }\n return instance.nodeset;\n }\n\n return caller.getInScopeContext();\n};\n\n// todo: implement\nconst currentFunction = (dynamicContext, string) => {\n const caller = dynamicContext.currentContext.formElement;\n return null;\n};\n\nconst elementFunction = (dynamicContext, string) => {\n const caller = dynamicContext.currentContext.formElement;\n const newElement = document.createElement(string);\n return newElement;\n};\n\n/**\n * @param id as string\n * @return instance data for given id serialized to string.\n */\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'context' },\n [],\n 'item()?',\n contextFunction,\n);\n\n/**\n * @param id as string\n * @return instance data for given id serialized to string.\n */\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'context' },\n ['xs:string'],\n 'item()?',\n contextFunction,\n);\n\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'current' },\n ['xs:string'],\n 'item()?',\n currentFunction,\n);\n\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'element' },\n ['xs:string'],\n 'item()?',\n elementFunction,\n);\n\n/**\n * @param id as string\n * @return instance data for given id serialized to string.\n */\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'log' },\n ['xs:string?'],\n 'xs:string?',\n (dynamicContext, string) => {\n const { formElement } = dynamicContext.currentContext;\n const instance = resolveId(string, formElement, 'fx-instance');\n if (instance) {\n if (instance.getAttribute('type') === 'json') {\n console.warn('log() does not work for JSON yet');\n // return JSON.stringify(instance.getDefaultContext());\n } else {\n const def = new XMLSerializer().serializeToString(instance.getDefaultContext());\n return prettifyXml(def);\n }\n }\n return null;\n },\n);\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'fore-attr' },\n ['xs:string?'],\n 'xs:string?',\n (dynamicContext, string) => {\n const { formElement } = dynamicContext.currentContext;\n\n let parent = formElement;\n if (formElement.nodeType === Node.TEXT_NODE) {\n parent = formElement.parentNode;\n }\n const foreElement = parent.closest('fx-fore');\n if (foreElement.hasAttribute(string)) {\n return foreElement.getAttribute(string);\n }\n return null;\n },\n);\n\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'parse' },\n ['xs:string?'],\n 'element()?',\n (_dynamicContext, string) => {\n const parser = new DOMParser();\n const out = parser.parseFromString(string, 'application/xml');\n console.log('parse', out);\n\n /*\n const {formElement} = dynamicContext.currentContext;\n const instance = resolveId(string, formElement, 'fx-instance');\n if (instance) {\n if (instance.getAttribute('type') === 'json') {\n console.warn('log() does not work for JSON yet');\n // return JSON.stringify(instance.getDefaultContext());\n } else {\n const def = new XMLSerializer().serializeToString(instance.getDefaultContext());\n return Fore.prettifyXml(def);\n }\n }\n */\n return out.firstElementChild;\n },\n);\n\nfunction buildTree(tree, data) {\n if (!data) return;\n if (data.nodeType === Node.ELEMENT_NODE) {\n if (data.children) {\n const details = document.createElement('details');\n details.setAttribute('data-path', data.nodeName);\n const summary = document.createElement('summary');\n\n let display = ` <${data.nodeName}`;\n Array.from(data.attributes).forEach(attr => {\n display += ` ${attr.nodeName}=\"${attr.nodeValue}\"`;\n });\n\n let contents;\n if (\n data.firstChild &&\n data.firstChild.nodeType === Node.TEXT_NODE &&\n data.firstChild.data.trim() !== ''\n ) {\n // console.log('whoooooooooopp');\n contents = data.firstChild.nodeValue;\n display += `>${contents}</${data.nodeName}>`;\n } else {\n display += '>';\n }\n summary.textContent = display;\n\n details.appendChild(summary);\n if (data.childElementCount !== 0) {\n details.setAttribute('open', 'open');\n } else {\n summary.setAttribute('style', 'list-style:none;');\n }\n tree.appendChild(details);\n\n Array.from(data.children).forEach(child => {\n // if(child.nodeType === Node.ELEMENT_NODE){\n // child.parentNode.appendChild(buildTree(child));\n buildTree(details, child);\n // }\n });\n }\n } /* else if(data.nodeType === Node.ATTRIBUTE_NODE){\n //create span for now\n // const span = document.createElement('span');\n // span.style.background = 'grey';\n // span.textContent = data.value;\n // tree.appendChild(span);\n tree.setAttribute(data.nodeName,data.value);\n }else {\n tree.textContent = data;\n } */\n\n // return tree;\n}\n\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'logtree' },\n ['xs:string?'],\n 'element()?',\n (dynamicContext, string) => {\n const { formElement } = dynamicContext.currentContext;\n const instance = resolveId(string, formElement, 'fx-instance');\n\n if (instance) {\n // const def = new XMLSerializer().serializeToString(instance.getDefaultContext());\n // const def = JSON.stringify(instance.getDefaultContext());\n\n const treeDiv = document.createElement('div');\n treeDiv.setAttribute('class', 'logtree');\n // const datatree = buildTree(tree,instance.getDefaultContext());\n // return tree.appendChild(datatree);\n // return buildTree(root,instance.getDefaultContext());;\n const form = dynamicContext.currentContext.formElement;\n const logtree = form.querySelector('.logtree');\n if (logtree) {\n logtree.parentNode.removeChild(logtree);\n }\n const tree = buildTree(treeDiv, instance.getDefaultContext());\n if (tree) {\n form.appendChild(tree);\n }\n }\n return null;\n },\n);\n\nconst instance = (dynamicContext, string) => {\n // Spec: https://www.w3.org/TR/xforms-xpath/#The_XForms_Function_Library#The_instance.28.29_Function\n // TODO: handle no string passed (null will be passed instead)\n\n /**\n * @type {import('./fx-fore.js').FxFore}\n */\n const formElement = fxEvaluateXPathToFirstNode(\n 'ancestor-or-self::fx-fore[1]',\n dynamicContext.currentContext.formElement,\n null,\n null,\n { namespaceResolver: xhtmlNamespaceResolver },\n );\n\n let lookup = null;\n if (string === null || string === 'default') {\n lookup = formElement.getModel().getDefaultInstance();\n } else {\n lookup = formElement.getModel().getInstance(string);\n if (!lookup) {\n document.querySelector('fx-fore').dispatchEvent(\n new CustomEvent('error', {\n composed: true,\n bubbles: true,\n detail: {\n origin: 'functions',\n message: `Instance not found '${string}'`,\n level: 'Error',\n },\n }),\n );\n }\n }\n\n const context = lookup.getDefaultContext();\n if (!context) {\n return null;\n }\n return context;\n};\n\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'index' },\n ['xs:string?'],\n 'xs:integer?',\n (dynamicContext, string) => {\n const { formElement } = dynamicContext.currentContext;\n if (string === null) {\n return 1;\n }\n const repeat = resolveId(string, formElement, 'fx-repeat');\n\n // const def = instance.getInstanceData();\n if (repeat) {\n return repeat.getAttribute('index');\n }\n return Number(1);\n },\n);\n\n// Note that this is not to spec. The spec enforces elements to be returned from the\n// instance. However, we allow instances to actually be JSON!\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'instance' },\n [],\n 'item()?',\n domFacade => instance(domFacade, null),\n);\n\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'instance' },\n ['xs:string?'],\n 'item()?',\n instance,\n);\n\nconst jsonToXml = (_dynamicContext, json) => {\n const escapeXml = str =>\n str.replace(\n /[^\\u0009\\u000A\\u000D\\u0020-\\uD7FF\\uE000-\\uFFFD]/g,\n char => `\\\\u${char.charCodeAt(0).toString(16).padStart(4, '0')}`,\n );\n\n const convert = (obj, parent) => {\n const type = typeof obj;\n if (type === 'number') {\n parent.setAttribute('type', 'number');\n parent.textContent = obj.toString();\n } else if (type === 'boolean') {\n parent.setAttribute('type', 'boolean');\n parent.textContent = obj.toString();\n } else if (obj === null) {\n const node = document.createElement('_');\n node.setAttribute('type', 'null');\n parent.appendChild(node);\n } else if (type === 'string') {\n parent.textContent = escapeXml(obj);\n } else if (Array.isArray(obj)) {\n parent.setAttribute('type', 'array');\n obj.forEach(item => {\n const node = document.createElement('_');\n convert(item, node);\n node.textContent = item;\n parent.appendChild(node);\n });\n } else if (type === 'object') {\n parent.setAttribute('type', 'object');\n Object.entries(obj).forEach(([key, value]) => {\n if (value) {\n const childNode = document.createElement(key.replace(/[^a-zA-Z0-9_]/g, '_'));\n convert(value, childNode);\n parent.appendChild(childNode);\n }\n });\n }\n };\n\n const root = document.createElement('json');\n if (Array.isArray(json)) {\n root.setAttribute('type', 'array');\n } else {\n root.setAttribute('type', 'object');\n }\n convert(json, root);\n // return root.outerHTML;\n console.log('xml', root);\n return root;\n};\n\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'json2xml' },\n ['item()?'],\n 'item()?',\n jsonToXml,\n);\nconst xmlToJson = (_dynamicContext, xml) => {\n const isElementNode = node => node.nodeType === Node.ELEMENT_NODE;\n\n const isTextNode = node => node.nodeType === Node.TEXT_NODE;\n\n const parseNode = node => {\n if (isElementNode(node)) {\n const obj = {};\n if (node.hasAttributes()) {\n obj.type = node.getAttribute('type');\n }\n if (node.childNodes.length === 1 && isTextNode(node.firstChild)) {\n return node.textContent;\n }\n for (const child of node.childNodes) {\n const childName = child.nodeName;\n const childValue = parseNode(child);\n if (obj[childName]) {\n if (!Array.isArray(obj[childName])) {\n obj[childName] = [obj[childName]];\n }\n obj[childName].push(childValue);\n } else {\n obj[childName] = childValue;\n }\n }\n return obj;\n }\n if (isTextNode(node)) {\n return node.textContent;\n }\n return undefined;\n };\n\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(xml, 'application/xml');\n const root = xmlDoc.documentElement;\n return parseNode(root);\n};\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'xmltoJson' },\n ['item()?'],\n 'item()?',\n xmlToJson,\n);\n\n/*\n// Example usage:\nconst xml = '<json type=\"object\"><given>Mark</given><family>Smith</family></json>';\nconsole.log(xmlToJson(xml));\n*/\n\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'depends' },\n ['node()*'],\n 'item()?',\n (_dynamicContext, nodes) =>\n // console.log('depends on : ', nodes[0]);\n nodes[0],\n);\n\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'event' },\n ['xs:string?'],\n 'item()?',\n (dynamicContext, arg) => {\n if (!arg) return null;\n\n for (\n let ancestor = dynamicContext.currentContext.formElement;\n ancestor;\n ancestor = ancestor.parentNode\n ) {\n if (!ancestor.currentEvent) {\n continue;\n }\n\n // We have a current event. read the property either from detail, or from the event\n // itself.\n // Check detail for custom events! This is how that is passed along\n if (\n ancestor.currentEvent.detail &&\n typeof ancestor.currentEvent.detail === 'object' &&\n arg in ancestor.currentEvent.detail\n ) {\n return ancestor.currentEvent.detail[arg];\n }\n\n // arg might be `code`, so currentEvent.code should work\n if (arg.includes('.')) {\n return _propertyLookup(ancestor.currentEvent, arg);\n }\n return ancestor.currentEvent[arg] || null;\n }\n return null;\n },\n);\n\nfunction _propertyLookup(obj, path) {\n const parts = path.split('.');\n if (parts.length == 1) {\n return obj[parts[0]];\n }\n return _propertyLookup(obj[parts[0]], parts.slice(1).join('.'));\n}\n\n// Implement the XForms standard functions here.\nregisterXQueryModule(`\n module namespace xf=\"${XFORMS_NAMESPACE_URI}\";\n\n declare %public function xf:boolean-from-string($str as xs:string) as xs:boolean {\n lower-case($str) = \"true\" or $str = \"1\"\n };\n`);\n\n// How to run XQUERY:\n/**\n registerXQueryModule(`\n module namespace my-custom-namespace = \"my-custom-uri\";\n (:~\n Insert attribute somewhere\n ~:)\n declare %public %updating function my-custom-namespace:do-something ($ele as element()) as xs:boolean {\n\tif ($ele/@done) then false() else\n\t(insert node\n\tattribute done {\"true\"}\n\tinto $ele, true())\n};\n `)\n // At some point:\n const contextNode = null;\n const pendingUpdatesAndXdmValue = evaluateUpdatingExpressionSync('ns:do-something(.)', contextNode, null, null, {moduleImports: {'ns': 'my-custom-uri'}})\n\n console.log(pendingUpdatesAndXdmValue.xdmValue); // this is true or false, see function\n\n executePendingUpdateList(pendingUpdatesAndXdmValue.pendingUpdateList, null, null, null);\n */\n\n/**\n * @param input as string\n * @return {string}\n */\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'base64encode' },\n ['xs:string?'],\n 'xs:string?',\n (_dynamicContext, string) => btoa(string),\n);\n\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'local-date' },\n [],\n 'xs:string?',\n (_dynamicContext, _string) => new Date().toLocaleDateString(),\n);\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'local-dateTime' },\n [],\n 'xs:string?',\n (_dynamicContext, _string) => new Date().toLocaleString(),\n);\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'uri' },\n [],\n 'xs:string?',\n (_dynamicContext, _string) => window.location.href,\n);\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'uri-fragment' },\n [],\n 'xs:string?',\n (_dynamicContext, _arg) => window.location.hash,\n);\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'uri-host' },\n [],\n 'xs:string?',\n (_dynamicContext, _arg) => window.location.host,\n);\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'uri-query' },\n [],\n 'xs:string?',\n (_dynamicContext, _arg) => window.location.search,\n);\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'uri-relpath' },\n [],\n 'xs:string?',\n (_dynamicContext, _arg) => {\n const path = new URL(window.location.href).pathname;\n return path.substring(0, path.lastIndexOf('/') + 1);\n },\n);\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'uri-path' },\n [],\n 'xs:string?',\n (_dynamicContext, _arg) => new URL(window.location.href).pathname,\n);\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'uri-port' },\n [],\n 'xs:string?',\n (_dynamicContext, _arg) => window.location.port,\n);\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'uri-param' },\n ['xs:string?'],\n 'xs:string?',\n (_dynamicContext, arg) => {\n if (!arg) return null;\n\n const { search } = window.location;\n const urlparams = new URLSearchParams(search);\n const param = urlparams.get(arg);\n return param || '';\n },\n);\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'uri-scheme' },\n [],\n 'xs:string?',\n (_dynamicContext, _arg) => new URL(window.location.href).protocol,\n);\nregisterCustomXPathFunction(\n { namespaceURI: XFORMS_NAMESPACE_URI, localName: 'uri-scheme-specific-part' },\n [],\n 'xs:string?',\n (_dynamicContext, _arg) => {\n const uri = window.location.href;\n return uri.substring(uri.indexOf(':') + 1, uri.length);\n },\n);\n","import { evaluateXPathToFirstNode } from './xpath-evaluation.js';\nimport { XPathUtil } from './xpath-util.js';\n\n/**\n * @param {Node} node\n * @returns {HTMLElement}\n */\nfunction _getElement(node) {\n if (node && node.nodeType && node.nodeType === Node.ATTRIBUTE_NODE) {\n // The context of an attribute is the ref of the element it's defined on\n return node.ownerElement;\n }\n\n if (node.nodeType === Node.ELEMENT_NODE) {\n // The context of a query should be the element having a ref\n return node;\n }\n\n // For text nodes, just start looking from the parent element\n return node.parentNode;\n}\n\nfunction _getForeContext(node) {\n return XPathUtil.getClosest('fx-fore', node);\n}\n\nfunction _getModelInContext(node) {\n // const ownerForm = node.closest('fx-fore');\n const ownerForm = _getForeContext(node);\n return ownerForm.getModel();\n}\n\nfunction _getInitialContext(node, ref) {\n const parentBind = XPathUtil.getClosest('[ref]', node);\n const localFore = XPathUtil.getClosest('fx-fore', node);\n\n const model = _getModelInContext(node);\n\n if (parentBind !== null) {\n /*\n make sure that the closest ref belongs to the same fx-fore element\n */\n const parentBindFore = parentBind.closest('fx-fore');\n if (localFore === parentBindFore) {\n return parentBind.nodeset;\n }\n return model.getDefaultInstance().getDefaultContext();\n }\n\n if (XPathUtil.isAbsolutePath(ref)) {\n const instanceId = XPathUtil.getInstanceId(ref, node);\n if (instanceId) {\n return model.getInstance(instanceId).getDefaultContext();\n }\n return model.getDefaultInstance().getDefaultContext();\n }\n // should always return default context if all other fails\n return model.getDefaultInstance().getDefaultContext();\n}\n\n/**\n * Get the inscope context for an XPath defined on an element, attribute or in a textnode. Uses the\n * current iterate status, repeats, etcetera\n *\n * @param {Node} node The context node at this point. Can be an attribute\n * @param {string} ref The XPath to resolve for\n * @return {Node} The context item for this XPath\n */\nexport default function getInScopeContext(node, ref) {\n // console.log('getInScopeContext', ref, node);\n\n const parentElement = _getElement(node);\n // console.log('getInScopeContext parent', parentElement);\n\n if (parentElement.nodeName === 'FX-FORE') {\n const context = parentElement.getModel().getDefaultInstance()?.getDefaultContext();\n if (!context) {\n // Edge-case, we are in an inner fore. Use the outer fore's default context\n return getInScopeContext(parentElement.parentNode, ref);\n }\n return context;\n }\n const parentBind = XPathUtil.getClosest('[ref]', parentElement.parentNode);\n if (parentBind && (parentBind.nodeName === 'FX-GROUP' || parentBind.nodeName === 'FX-CONTROL')) {\n return parentBind.nodeset;\n }\n\n const parentActionWithIterateExpr = parentElement.matches('[iterate]')\n ? parentElement\n : XPathUtil.getClosest('[iterate]', parentElement.parentNode);\n if (parentActionWithIterateExpr && parentActionWithIterateExpr.currentContext) {\n return parentActionWithIterateExpr.currentContext;\n }\n\n const repeatItem = XPathUtil.getClosest('fx-repeatitem', parentElement);\n if (repeatItem) {\n if (node.nodeName === 'context') {\n return evaluateXPathToFirstNode(\n node.nodeValue,\n repeatItem.nodeset,\n _getForeContext(parentElement),\n );\n }\n return repeatItem.nodeset;\n }\n\n // ### check for repeatitems created by fx-repeat-attributes - this could possibly be unified with standard repeats\n // const repeatItemFromAttrs = XPathUtil.getClosest('.fx-repeatitem', parentElement);\n // const repeatItemFromAttrs = XPathUtil.getClosest('.fx-repeatitem', parentElement);\n const repeatItemFromAttrs = parentElement.closest('.fx-repeatitem');\n\n if (repeatItemFromAttrs) {\n // ### determine correct inscopecontext by determining the index of the repeatitem in its parent list and\n // ### using that as an index on the repeat nodeset\n const parent = repeatItemFromAttrs.parentNode;\n const index = Array.from(parent.children).indexOf(repeatItemFromAttrs);\n\n // ### fetching nodeset from fx-repeat-attributes element\n const repeatFromAttributes = XPathUtil.getClosest('fx-repeat-attributes', parentElement);\n return repeatFromAttributes.nodeset[index];\n }\n\n if (parentElement.hasAttribute('context')) {\n const initialContext = _getInitialContext(parentElement.parentNode, ref);\n const contextAttr = parentElement.getAttribute('context');\n return evaluateXPathToFirstNode(contextAttr, initialContext, _getForeContext(parentElement));\n }\n\n if (node.nodeType === Node.ATTRIBUTE_NODE && node.nodeName === 'context') {\n const initialContext = _getInitialContext(node.ownerElement.parentNode, ref);\n const contextAttr = node.ownerElement.getAttribute('context');\n return evaluateXPathToFirstNode(contextAttr, initialContext, _getForeContext(parentElement));\n }\n if (node.nodeType === Node.ATTRIBUTE_NODE && node.nodeName === 'ref') {\n // Note: do not consider the ref of the owner element since it should not be used to define the\n // context\n if (node.ownerElement.hasAttribute('context')) {\n const initialContext = _getInitialContext(node.ownerElement.parentNode, ref);\n const contextAttr = node.ownerElement.getAttribute('context');\n return evaluateXPathToFirstNode(contextAttr, initialContext, _getForeContext(parentElement));\n }\n\n // Never resolve the context from a ref itself!\n return _getInitialContext(parentElement.parentNode, ref);\n }\n\n // if (node.nodeType === Node.ELEMENT_NODE && node.hasAttribute('context')) {\n // const initialContext = _getInitialContext(node.parentNode, ref);\n // const contextAttr = node.getAttribute('context');\n // return evaluateXPathToFirstNode(contextAttr, initialContext, _getForeContext(parentElement));\n // }\n return _getInitialContext(parentElement, ref);\n}\n","import getInScopeContext from './getInScopeContext.js';\nimport {\n evaluateXPath,\n evaluateXPathToFirstNode,\n evaluateXPathToString,\n evaluateXPathToNodes,\n} from './xpath-evaluation.js';\nimport { XPathUtil } from './xpath-util.js';\n\n/**\n * Class hosting common utility functions used throughout all fore elements\n *\n * @example ../doc/demo.html\n */\nexport class Fore {\n static READONLY_DEFAULT = false;\n\n static REQUIRED_DEFAULT = false;\n\n static RELEVANT_DEFAULT = true;\n\n static CONSTRAINT_DEFAULT = true;\n\n static TYPE_DEFAULT = 'xs:string';\n\n /**\n * Loads and return a piece of HTML\n * @param url {String} - the Url to load from\n * @returns {Promise<string>}\n */\n static async loadHtml(url) {\n try {\n const response = await fetch(url, {\n method: 'GET',\n mode: 'cors',\n credentials: 'same-origin',\n headers: {\n 'Content-Type': 'text/html',\n },\n });\n const responseContentType = response.headers.get('content-type').toLowerCase();\n if (responseContentType.startsWith('text/html')) {\n return response.text();\n }\n Fore.dispatch(this, 'error', {\n message: `Response has wrong contentType '${responseContentType}'. Should be 'text/html'`,\n level: 'Error',\n });\n } catch (error) {\n Fore.dispatch(this, 'error', {\n message: `Html couldn't be loaded from '${url}'`,\n level: 'Error',\n });\n }\n }\n\n /**\n * loads a Fore element from given `src`. Always returns the first occurrence of a `<fx-fore>`. The retured element\n * will replace the `replace` element in the DOM.\n *\n * @param {Element} replace the element with a `src` attribute to resolvé.\n * @param {string} src the Url to resolve\n * @param {string} selector a querySelector expression to fetch certain element from loaded document\n * @returns {Promise<HTMLElement>} The replacement element\n */\n static async loadForeFromSrc(replace, src, selector) {\n if (!src) {\n Fore.dispatch(this, 'error', {\n detail: {\n message: \"No 'src' attribute present\",\n },\n });\n return null;\n }\n const data = await Fore.loadHtml(src);\n const parsed = new DOMParser().parseFromString(data, 'text/html');\n // const theFore = parsed.querySelector('fx-fore');\n const foreElement = parsed.querySelector(selector);\n // console.log('foreElement', foreElement)\n if (!foreElement) {\n Fore.dispatch(this, 'error', {\n detail: {\n message: `Fore element not found in '${src}'. Maybe wrapped within 'template' element?`,\n },\n });\n return;\n }\n foreElement.setAttribute('from-src', src);\n const thisAttrs = replace.attributes;\n Array.from(thisAttrs).forEach(attr => {\n if (attr.name !== 'src') {\n foreElement.setAttribute(attr.name, attr.value);\n }\n });\n replace.replaceWith(foreElement);\n return foreElement;\n }\n\n static buildPredicates(node) {\n let attrPredicate = '';\n Array.from(node.attributes).forEach(attr => {\n // attrMap.set(attr.nodeName,attr.nodeValue);\n // if(attr.nodeName !== 'xmlns'){\n // if(attr.nodeValue !== ''){\n // attrPredicate += `[@${attr.nodeName}='${attr.nodeValue}']`;\n // }else{\n attrPredicate += `[@${attr.nodeName}]`;\n // }\n // }\n });\n return attrPredicate;\n }\n\n /**\n * returns true if target element is the widget itself or some element within the widget.\n * @param {HTMLElement} target an event target\n * @returns {boolean}\n */\n static isWidget(target) {\n if (target?.classList.contains('widget')) return true;\n let parent = target.parentNode;\n while (parent && parent.nodeName !== 'FX-CONTROL') {\n if (parent?.classList?.contains('widget')) return true;\n parent = parent.parentNode;\n }\n return false;\n }\n\n /**\n * Get a string that can be used as a path to a node\n *\n * @param {Node} node\n * @returns {string}\n */\n static getDomNodeIndexString(node) {\n const indexes = [];\n let currentNode = node;\n\n while (currentNode && currentNode.parentNode) {\n const parent = currentNode.parentNode;\n if (parent.childNodes && parent.childNodes.length > 0) {\n const index = [...parent.childNodes].indexOf(currentNode);\n indexes.unshift(index);\n }\n currentNode = parent;\n }\n\n return indexes.join('.');\n }\n\n /**\n * Get the expression part of something\n * @param {string} input\n * @returns {string}\n */\n static getExpression(input) {\n if (input.startsWith('{') && input.endsWith('}')) {\n return input.substring(1, input.length - 1);\n }\n return input;\n }\n\n /**\n * returns the next `fx-fore` element upwards in tree\n *\n * @param {HTMLElement|Text} start\n * @returns {import('./fx-fore.js').FxFore}\n */\n static getFore(start) {\n return start.nodeType === Node.TEXT_NODE\n ? start.parentNode.closest('fx-fore')\n : start.closest('fx-fore');\n }\n\n static get ACTION_ELEMENTS() {\n return [\n 'FX-ACTION',\n 'FX-DELETE',\n 'FX-DISPATCH',\n 'FX-HIDE',\n 'FX-INSERT',\n 'FX-LOAD',\n 'FX-MESSAGE',\n 'FX-REBUILD',\n 'FX-RECALCULATE',\n 'FX-REFRESH',\n 'FX-RENEW',\n 'FX-RELOAD',\n 'FX-REPLACE',\n 'FX-RESET',\n 'FX-RETAIN',\n 'FX-RETURN',\n 'FX-REVALIDATE',\n 'FX-SEND',\n 'FX-SETFOCUS',\n 'FX-SETINDEX',\n 'FX-SETVALUE',\n 'FX-SHOW',\n 'FX-TOGGLE',\n 'FX-UPDATE',\n ];\n }\n\n static createUUID() {\n // http://www.ietf.org/rfc/rfc4122.txt\n const s = [];\n const hexDigits = '0123456789abcdef';\n for (let i = 0; i < 36; i += 1) {\n s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);\n }\n s[14] = '4'; // bits 12-15 of the time_hi_and_version field to 0010\n s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01\n s[8] = s[13] = s[18] = s[23] = '-';\n\n const uuid = s.join('');\n return uuid;\n }\n\n static get XFORMS_NAMESPACE_URI() {\n // todo: should be centralized somewhere as constant. Exists in several? places\n return 'http://www.w3.org/2002/xforms';\n }\n\n /**\n * @param {string} elementName\n * @returns {boolean}\n */\n static isActionElement(elementName) {\n return Fore.ACTION_ELEMENTS.includes(elementName);\n }\n\n static get UI_ELEMENTS() {\n return [\n 'FX-ALERT',\n 'FX-CONTROL',\n 'FX-DIALOG',\n 'FX-FILENAME',\n 'FX-MEDIATYPE',\n 'FX-GROUP',\n 'FX-HINT',\n 'FX-ITEMS',\n 'FX-OUTPUT',\n 'FX-RANGE',\n 'FX-REPEAT',\n 'FX-REPEATITEM',\n 'FX-REPEAT-ATTRIBUTES',\n 'FX-SWITCH',\n 'FX-SECRET',\n 'FX-SELECT',\n 'FX-SUBMIT',\n 'FX-TEXTAREA',\n 'FX-TRIGGER',\n 'FX-UPLOAD',\n 'FX-VAR',\n ];\n }\n\n static get MODEL_ELEMENTS() {\n return ['FX-BIND', 'FX-FUNCTION', 'FX-MODEL', 'FX-INSTANCE', 'FX-SUBMISSION'];\n }\n\n /**\n * @param {string} elementName\n * @returns {boolean}\n */\n static isUiElement(elementName) {\n const found = Fore.UI_ELEMENTS.includes(elementName);\n if (found) {\n // console.log('_isUiElement ', found);\n }\n return Fore.UI_ELEMENTS.includes(elementName);\n }\n\n /**\n * recursively refreshes all UI Elements.\n *\n * @param {HTMLElement} startElement\n * @param {(boolean|{reason:'index-function'})} force Whether to do a forced refresh. Forced\n * refreshes are very bad for performance, try to limit them. If the forced refresh is because index functions may change, it is better to pass the reason\n * @returns {Promise<void>}\n */\n static async refreshChildren(startElement, force) {\n const refreshed = new Promise(resolve => {\n /*\n if there's an 'refresh-on-view' attribute the element wants to be handled by\n handleIntersect function that calls the refresh of the respective element and\n not the global one.\n */\n // if(!force && startElement.hasAttribute('refresh-on-view')) return;\n\n /* ### attempt with querySelectorAll is even slower than iterating recursively\n\n const children = startElement.querySelectorAll('[ref]');\n Array.from(children).forEach(uiElement => {\n if (Fore.isUiElement(uiElement.nodeName) && typeof uiElement.refresh === 'function') {\n uiElement.refresh();\n }\n });\n*/\n const { children } = startElement;\n if (children) {\n for (const element of Array.from(children)) {\n if (element.nodeName.toUpperCase() === 'FX-FORE') {\n break;\n }\n if (Fore.isUiElement(element.nodeName) && typeof element.refresh === 'function') {\n /**\n * @type {import('./ForeElementMixin.js').default}\n */\n if (\n force &&\n typeof force === 'object' &&\n force.reason === 'index-function' &&\n element._dependencies.isInvalidatedByIndexFunction()\n ) {\n element.refresh(force);\n continue;\n } else if (force === true) {\n element.refresh(force);\n }\n // console.log('refreshing', element, element?.ref);\n // console.log('refreshing ',element);\n } else if (!(element.inert === true) ) {\n // testing for inert catches model and action elements and should just leave updateable html elements\n Fore.refreshChildren(element, force);\n }\n }\n }\n resolve('done');\n });\n\n return refreshed;\n }\n\n static copyDom(inputElement) {\n console.time('convert');\n const target = new DOMParser().parseFromString('<fx-fore></fx-fore>', 'text/html');\n console.log('copyDom new doc', target);\n console.log('copyDom new body', target.body);\n console.log('copyDom new body', target.querySelector('fx-fore'));\n const newFore = target.querySelector('fx-fore');\n this.convertFromSimple(inputElement, newFore);\n newFore.removeAttribute('convert');\n console.log('converted', newFore);\n console.timeEnd('convert');\n return newFore;\n }\n\n static convertFromSimple(startElement, targetElement) {\n const children = startElement.childNodes;\n if (children) {\n Array.from(children).forEach(node => {\n const lookFor = `FX-${node.nodeName.toUpperCase()}`;\n if (\n Fore.MODEL_ELEMENTS.includes(lookFor) ||\n Fore.UI_ELEMENTS.includes(lookFor) ||\n Fore.ACTION_ELEMENTS.includes(lookFor)\n ) {\n const conv = targetElement.ownerDocument.createElement(lookFor);\n console.log('conv', node, conv);\n targetElement.appendChild(conv);\n Fore.copyAttributes(node, conv);\n Fore.convertFromSimple(node, conv);\n } else {\n if (node.nodeType === Node.TEXT_NODE) {\n const copied = targetElement.ownerDocument.createTextNode(node.textContent);\n targetElement.appendChild(copied);\n }\n\n if (node.nodeType === Node.ELEMENT_NODE) {\n const copied = targetElement.ownerDocument.createElement(node.nodeName);\n targetElement.appendChild(copied);\n Fore.copyAttributes(node, targetElement);\n Fore.convertFromSimple(node, copied);\n }\n }\n });\n }\n }\n\n static copyAttributes(source, target) {\n return Array.from(source.attributes).forEach(attribute => {\n target.setAttribute(attribute.nodeName, attribute.nodeValue);\n });\n }\n\n /**\n * returns the proper content-type for instance.\n *\n * @param instance an fx-instance element\n * @param contentType - the contentType\n * @returns {string|null}\n */\n static getContentType(instance, contentType) {\n if (contentType === 'application/x-www-form-urlencoded') {\n return 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n if (instance.type === 'xml') {\n return 'application/xml; charset=UTF-8';\n }\n if (instance.type === 'json') {\n return 'application/json';\n }\n console.warn('content-type unknown ', instance.type);\n return null;\n }\n\n static async handleResponse(response) {\n const { status } = response;\n if (status >= 400) {\n // console.log('response status', status);\n alert(`response status: ${status} - failed to load data for '${this.src}' - stopping.`);\n throw new Error(`failed to load data - status: ${status}`);\n }\n const responseContentType = response.headers.get('content-type').toLowerCase();\n // console.log('********** responseContentType *********', responseContentType);\n if (responseContentType.startsWith('text/html')) {\n // const htmlResponse = response.text();\n // return new DOMParser().parseFromString(htmlResponse, 'text/html');\n // return response.text();\n return response.text().then(result =>\n // console.log('xml ********', result);\n new DOMParser().parseFromString(result, 'text/html'),\n );\n }\n if (\n responseContentType.startsWith('text/plain') ||\n responseContentType.startsWith('text/markdown')\n ) {\n // console.log(\"********** inside res plain *********\");\n return response.text();\n }\n if (responseContentType.startsWith('application/json')) {\n // console.log(\"********** inside res json *********\");\n return response.json();\n }\n if (responseContentType.startsWith('application/xml')) {\n const text = await response.text();\n // console.log('xml ********', result);\n return new DOMParser().parseFromString(text, 'application/xml');\n }\n return 'done';\n }\n\n /*\n static evaluateAttributeTemplateExpression(expr, node) {\n const matches = expr.match(/{[^}]*}/g);\n if (matches) {\n matches.forEach(match => {\n console.log('match ', match);\n const naked = match.substring(1, match.length - 1);\n const inscope = getInScopeContext(node, naked);\n const result = evaluateXPathToString(naked, inscope, node.getOwnerForm());\n const replaced = expr.replaceAll(match, result);\n console.log('replacing ', expr, ' with ', replaced);\n expr = replaced;\n });\n }\n return expr;\n }\n*/\n\n static fadeInElement(element) {\n const duration = 600;\n let fadeIn = () => {\n // Stop all current animations\n if (element.getAnimations) {\n element.getAnimations().map(anim => anim.finish());\n }\n\n // Play the animation with the newly specified duration\n fadeIn = element.animate(\n {\n opacity: [0, 1],\n },\n duration,\n );\n return fadeIn.finished;\n };\n return fadeIn();\n }\n\n static fadeOutElement(element, duration) {\n // const duration = duration;\n let fadeOut = () => {\n // Stop all current animations\n if (element.getAnimations) {\n element.getAnimations().map(anim => anim.finish());\n }\n\n // Play the animation with the newly specified duration\n fadeOut = element.animate(\n {\n opacity: [1, 0],\n },\n duration,\n );\n return fadeOut.finished;\n };\n return fadeOut();\n }\n\n static async dispatch(target, eventName, detail) {\n if (!XPathUtil.contains(target?.ownerDocument, target)) {\n // The target is gone from the document. This happens when we are done with a refresh that removed the component\n return;\n }\n const event = new CustomEvent(eventName, {\n composed: false,\n bubbles: true,\n detail,\n });\n event.listenerPromises = [];\n\n target.dispatchEvent(event);\n\n // By now, all listeners for the event should have registered their completion promises to us.\n if (event.listenerPromises.length) {\n await Promise.all(event.listenerPromises);\n }\n // console.log('!!! DISPATCH_DONE', eventName);\n }\n\n static formatXml(xml) {\n const reg = /(>)(<)(\\/*)/g;\n const wsexp = / *(.*) +\\n/g;\n const contexp = /(<.+>)(.+\\n)/g;\n xml = xml.replace(reg, '$1\\n$2$3').replace(wsexp, '$1\\n').replace(contexp, '$1\\n$2');\n let formatted = '';\n const lines = xml.split('\\n');\n let indent = 0;\n let lastType = 'other';\n // 4 types of tags - single, closing, opening, other (text, doctype, comment) - 4*4 = 16 transitions\n const transitions = {\n 'single->single': 0,\n 'single->closing': -1,\n 'single->opening': 0,\n 'single->other': 0,\n 'closing->single': 0,\n 'closing->closing': -1,\n 'closing->opening': 0,\n 'closing->other': 0,\n 'opening->single': 1,\n 'opening->closing': 0,\n 'opening->opening': 1,\n 'opening->other': 1,\n 'other->single': 0,\n 'other->closing': -1,\n 'other->opening': 0,\n 'other->other': 0,\n };\n\n for (let i = 0; i < lines.length; i++) {\n const ln = lines[i];\n const single = Boolean(ln.match(/<.+\\/>/)); // is this line a single tag? ex. <br />\n const closing = Boolean(ln.match(/<\\/.+>/)); // is this a closing tag? ex. </a>\n const opening = Boolean(ln.match(/<[^!].*>/)); // is this even a tag (that's not <!something>)\n const type = single ? 'single' : closing ? 'closing' : opening ? 'opening' : 'other';\n const fromTo = `${lastType}->${type}`;\n lastType = type;\n let padding = '';\n\n indent += transitions[fromTo];\n for (let j = 0; j < indent; j++) {\n padding += ' ';\n }\n\n formatted += `${padding + ln}\\n`;\n }\n }\n\n static stringifiedComponent(element) {\n return `<${element.localName} ${Array.from(element.attributes)\n .map(attr => `${attr.name}=\"${attr.value}\"`)\n .join(' ')}>…</${element.localName}>`;\n }\n /*\n static async loadForeFromUrl(hostElement, url) {\n // console.log('########## loading Fore from ', this.src, '##########');\n await fetch(url, {\n method: 'GET',\n mode: 'cors',\n credentials: 'include',\n headers: {\n 'Content-Type': 'text/html',\n },\n })\n .then(response => {\n const responseContentType = response.headers.get('content-type').toLowerCase();\n console.log('********** responseContentType *********', responseContentType);\n if (responseContentType.startsWith('text/html')) {\n return response.text().then(result =>\n // console.log('xml ********', result);\n new DOMParser().parseFromString(result, 'text/html'),\n );\n }\n return 'done';\n })\n .then(data => {\n // const theFore = fxEvaluateXPathToFirstNode('//fx-fore', data.firstElementChild);\n const theFore = data.querySelector('fx-fore');\n // console.log('thefore', theFore)\n if (!theFore) {\n hostElement.dispatchEvent(\n new CustomEvent('error', {\n composed: false,\n bubbles: true,\n detail: {\n message: 'cyclic graph',\n },\n }),\n );\n }\n const imported = document.importNode(theFore,true);\n console.log(`########## loaded fore as component ##### ${hostElement.url}`);\n imported.addEventListener(\n 'model-construct-done',\n e => {\n // console.log('subcomponent ready', e.target);\n const defaultInst = imported.querySelector('fx-instance');\n // console.log('defaultInst', defaultInst);\n if(hostElement.initialNode){\n const doc = new DOMParser().parseFromString('<data></data>', 'application/xml');\n // Note: Clone the input to prevent the inner fore from editing the outer node\n doc.firstElementChild.appendChild(hostElement.initialNode.cloneNode(true));\n // defaultinst.setInstanceData(this.initialNode);\n defaultInst.setInstanceData(doc);\n }\n // console.log('new data', defaultInst.getInstanceData());\n // theFore.getModel().modelConstruct();\n imported.getModel().updateModel();\n imported.refresh();\n return 'done';\n\n },\n { once: true },\n );\n\n const dummy = hostElement.querySelector('input');\n if (hostElement.hasAttribute('shadow')) {\n dummy.parentNode.removeChild(dummy);\n hostElement.shadowRoot.appendChild(imported);\n } else {\n // console.log(this, 'replacing widget with',theFore);\n dummy.replaceWith(imported);\n // this.appendChild(imported);\n }\n })\n /!*.catch(error => {\n hostElement.dispatchEvent(\n new CustomEvent('error', {\n composed: false,\n bubbles: true,\n detail: {\n error: error,\n message: `'${url}' not found or does not contain Fore element.`,\n },\n }),\n );\n });*!/\n }\n*/\n\n /**\n * clear all text nodes and attribute values to get a 'clean' template.\n * @param n\n * @private\n */\n /*\n static clear(n) {\n n.textContent = '';\n if (n.hasAttributes()) {\n const attrs = n.attributes;\n for (let i = 0; i < attrs.length; i+= 1) {\n attrs[i].value = '';\n }\n }\n const { children } = n;\n for (let i = 0; i < children.length; i+= 1) {\n Fore.clear(children[i]);\n }\n }\n */\n}\n","import { Fore } from './fore.js';\nimport { evaluateXPathToFirstNode } from './xpath-evaluation.js';\n\nasync function handleResponse(fxInstance, response) {\n const { status } = response;\n if (status >= 400) {\n // console.log('response status', status);\n alert(`response status: ${status} - failed to load data for '${fxInstance.src}' - stopping.`);\n throw new Error(`failed to load data - status: ${status}`);\n }\n const responseContentType = response.headers.get('content-type').toLowerCase();\n // console.log('********** responseContentType *********', responseContentType);\n if (responseContentType.startsWith('text/html')) {\n // const htmlResponse = response.text();\n // return new DOMParser().parseFromString(htmlResponse, 'text/html');\n // return response.text();\n return response.text().then(result =>\n // console.log('xml ********', result);\n new DOMParser().parseFromString(result, 'text/html'),\n );\n }\n if (responseContentType.startsWith('text/')) {\n // console.log(\"********** inside res plain *********\");\n return response.text();\n }\n if (responseContentType.startsWith('application/json')) {\n // console.log(\"********** inside res json *********\");\n return response.json();\n }\n if (\n responseContentType.startsWith('application/xml') ||\n responseContentType.startsWith('text/xml')\n ) {\n // See https://www.rfc-editor.org/rfc/rfc7303\n const text = await response.text();\n // console.log('xml ********', result);\n return new DOMParser().parseFromString(text, 'application/xml');\n }\n throw new Error(`unable to handle response content type: ${responseContentType}`);\n}\n\n/**\n * Container for data instances.\n *\n * Offers several ways of loading data from either inline content or via 'src' attribute which will use the fetch\n * API to resolve data.\n */\nexport class FxInstance extends HTMLElement {\n constructor() {\n super();\n this.model = this.parentNode;\n this.attachShadow({ mode: 'open' });\n this.originalInstance = null;\n this.partialInstance = null;\n this.credentials = '';\n }\n\n connectedCallback() {\n // console.log('connectedCallback ', this);\n if (this.hasAttribute('src')) {\n this.src = this.getAttribute('src');\n }\n\n if (this.hasAttribute('id')) {\n this.id = this.getAttribute('id');\n } else {\n this.id = 'default';\n }\n\n this.credentials = this.hasAttribute('credentials')\n ? this.getAttribute('credentials')\n : 'same-origin';\n if (!['same-origin', 'include', 'omit'].includes(this.credentials)) {\n console.error(\n `fx-submission: the value of credentials is not valid. Expected 'same-origin', 'include' or 'omit' but got '${this.credentials}'`,\n this,\n );\n }\n\n if (this.hasAttribute('type')) {\n this.type = this.getAttribute('type');\n } else {\n this.type = 'xml';\n this.setAttribute('type', this.type);\n }\n const style = `\n :host {\n display: none;\n }\n :host * {\n display:none;\n }\n ::slotted(*){\n display:none;\n }\n `;\n\n const html = `\n `;\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${html}\n `;\n this.partialInstance = {};\n }\n\n /**\n * Is called by fx-model during initialization phase (model-construct)\n * @returns {Promise<void>}\n */\n async init() {\n // console.log('fx-instance init');\n await this._initInstance();\n // console.log(`### <<<<< instance ${this.id} loaded >>>>> `);\n this.dispatchEvent(\n new CustomEvent('instance-loaded', {\n composed: true,\n bubbles: true,\n detail: { instance: this },\n }),\n );\n return this;\n }\n\n reset() {\n // this._useInlineData();\n this.instanceData = this.originalInstance.cloneNode(true);\n }\n\n evalXPath(xpath) {\n const formElement = this.parentElement.parentElement;\n const result = evaluateXPathToFirstNode(xpath, this.getDefaultContext(), formElement);\n return result;\n }\n\n /**\n * returns the current instance data\n *\n * @returns {Document | T | any}\n */\n getInstanceData() {\n if (!this.instanceData) {\n this.createInstanceData();\n }\n return this.instanceData;\n }\n\n setInstanceData(data) {\n if (!data) {\n this.createInstanceData();\n return;\n }\n this._setInitialData(data);\n // this.instanceData = data;\n }\n\n /**\n * return the default context (root node of respective instance) for XPath evalution.\n *\n * @returns {Document|T|any|Element}\n */\n getDefaultContext() {\n // Note: use the getter here: it might provide us with stubbed data if anything async is racing,\n // such as an @src attribute\n const instanceData = this.getInstanceData();\n if (this.type === 'xml') {\n return instanceData.firstElementChild;\n }\n return instanceData;\n }\n\n /**\n * does the actual loading of data. Handles inline data, data loaded via fetch() or data constructed from\n * querystring.\n *\n * @returns {Promise<void>}\n * @private\n */\n async _initInstance() {\n if (this.src === '#querystring') {\n /*\n * generate XML data from URL querystring\n * todo: there's no variant to generate JSON yet\n */\n // eslint-disable-next-line no-restricted-globals\n const query = new URLSearchParams(location.search);\n const doc = new DOMParser().parseFromString('<data></data>', 'application/xml');\n const root = doc.firstElementChild;\n for (const p of query) {\n const newNode = doc.createElement(p[0]);\n newNode.appendChild(doc.createTextNode(p[1]));\n root.appendChild(newNode);\n }\n this._setInitialData(doc);\n } else if (this.src) {\n await this._loadData();\n } else if (this.childNodes.length !== 0) {\n this._useInlineData();\n }\n }\n\n createInstanceData() {\n if (this.type === 'xml') {\n // const doc = new DOMParser().parseFromString('<data data-id=\"default\"></data>', 'application/xml');\n const doc = new DOMParser().parseFromString('<data></data>', 'application/xml');\n this.instanceData = doc;\n this.originalInstance = this.instanceData.cloneNode(true);\n }\n if (this.type === 'json') {\n this.instanceData = {};\n this.originalInstance = [...this.instanceData];\n }\n if (this.type === 'text') {\n this.instanceData = this.innerText;\n this.originalInstance = this.innerText;\n console.log('text data', this.instanceData);\n }\n }\n\n async _loadData() {\n const url = `${this.src}`;\n\n if (url.startsWith('localStore')) {\n const key = url.substring(url.indexOf(':') + 1);\n\n const doc = new DOMParser().parseFromString('<data></data>', 'application/xml');\n this.instanceData = doc;\n // ### does it make sense to store originalData here?\n\n if (!key) {\n console.warn('no key specified for localStore');\n return;\n }\n\n const serialized = localStorage.getItem(key);\n if (!serialized) {\n console.warn(`Data for key ${key} cannot be found`);\n this._useInlineData();\n return;\n }\n const data = new DOMParser().parseFromString(serialized, 'application/xml');\n // let data = this._parse(serialized, instance);\n doc.firstElementChild.replaceWith(data.firstElementChild);\n return;\n }\n const contentType = Fore.getContentType(this, 'get');\n\n try {\n const response = await fetch(url, {\n method: 'GET',\n credentials: this.credentials,\n mode: 'cors',\n headers: {\n 'Content-Type': contentType,\n },\n });\n const data = await handleResponse(this, response);\n this._setInitialData(data);\n /*\n if (data.nodeType) {\n this._setInitialData(data);\n this.instanceData = data;\n this.originalInstance = this.instanceData.cloneNode(true);\n console.log('instanceData loaded: ', this.id, this.instanceData);\n return;\n }\n this.instanceData = data;\n this.originalInstance = [...data];\n*/\n } catch (error) {\n throw new Error(`failed loading data ${error}`);\n }\n }\n\n _setInitialData(data) {\n this.instanceData = data;\n if (data.nodeType) {\n this.originalInstance = this.instanceData.cloneNode(true);\n } else {\n this.originalInstance = { ...this.instanceData };\n }\n }\n\n _getContentType() {\n if (this.type === 'xml') {\n return 'application/xml';\n }\n if (this.type === 'json') {\n return 'application/json';\n }\n console.warn('content-type unknown ', this.type);\n return null;\n }\n\n _useInlineData() {\n if (this.type === 'xml') {\n // console.log('innerHTML ', this.innerHTML);\n const instanceData = new DOMParser().parseFromString(this.innerHTML, 'application/xml');\n\n // console.log('fx-instance init id:', this.id);\n // this.instanceData = instanceData;\n this._setInitialData(instanceData);\n // console.log('instanceData ', this.instanceData);\n // console.log('instanceData ', this.instanceData.firstElementChild);\n\n // console.log('fx-instance data: ', this.instanceData);\n // this.instanceData.firstElementChild.setAttribute('id', this.id);\n // todo: move innerHTML out to shadowDOM (for later reset)\n } else if (this.type === 'json') {\n // this.instanceData = JSON.parse(this.textContent);\n this._setInitialData(JSON.parse(this.textContent));\n } else if (this.type === 'html') {\n // this.instanceData = this.firstElementChild.children;\n this._setInitialData(this.firstElementChild.children);\n } else if (this.type === 'text') {\n // this.instanceData = this.textContent;\n this._setInitialData(this.textContent);\n } else {\n console.warn('unknow type for data ', this.type);\n }\n }\n\n // _handleResponse() {\n // console.log('_handleResponse ');\n // const ajax = this.shadowRoot.getElementById('loader');\n // const instanceData = new DOMParser().parseFromString(ajax.lastResponse, 'application/xml');\n // this.instanceData = instanceData;\n // console.log('data: ', this.instanceData);\n // }\n\n /*\n _handleError() {\n const loader = this.shadowRoot.getElementById('loader');\n console.log('_handleResponse ', loader.lastError);\n }\n*/\n}\nif (!customElements.get('fx-instance')) {\n customElements.define('fx-instance', FxInstance);\n}\n","/**\n * Class for holding ModelItem facets.\n *\n * A ModelItem annotates nodes that are referred by a fx-bind element with facets for calculation and validation.\n *\n * Each bound node in an instance has exactly one ModelItem associated with it.\n */\nexport class ModelItem {\n /**\n *\n * @param {string} path calculated normalized path expression linking to data\n * @param {string} ref relative binding expression\n * @param {boolean} readonly - boolean to signal readonly/readwrite state\n * @param {boolean} relevant - boolean to signal relevant/non-relevant state\n * @param {boolean} required - boolean to signal required/optional state\n * @param {boolean} constraint - boolean boolean to signal valid/invalid state\n * @param {string} type - string expression to set a datatype\n * @param {Node} node - the node the 'ref' expression is referring to\n * @param {import('./fx-bind').FxBind} bind - the fx-bind element having created this modelItem\n * @param {string} instance - the fx-instance id having created this modelItem\n */\n constructor(path, ref, readonly, relevant, required, constraint, type, node, bind,instance) {\n /**\n * @type {string}\n */\n this.path = path;\n /**\n * @type {string}\n */\n this.ref = ref;\n /**\n * @type {boolean}\n */\n this.constraint = constraint;\n /**\n * @type {boolean}\n */\n this.readonly = readonly;\n /**\n * @type {boolean}\n */\n this.relevant = relevant;\n /**\n * @type {boolean}\n */\n this.required = required;\n /**\n * @type {string}\n */\n this.type = type;\n /**\n * @type {Node}\n */\n this.node = node;\n /**\n * @type {import('./fx-bind').FxBind}\n */\n this.bind = bind;\n this.changed = false;\n /**\n * @type {import('./ui/fx-alert').FxAlert[]}\n */\n this.alerts = [];\n /**\n * @type {import('./ui/abstract-control').default[]}\n */\n this.boundControls = [];\n // this.value = this._getValue();\n this.instanceId = instance;\n }\n\n /*\n get ref(){\n return this.bind.ref;\n }\n*/\n\n get value() {\n if (!this.node) {\n return null;\n }\n if (!this.node.nodeType) return this.node;\n\n if (this.node.nodeType === Node.ATTRIBUTE_NODE) {\n return this.node.nodeValue;\n }\n return this.node.textContent;\n }\n\n /**\n * @param {Node} newVal\n */\n set value(newVal) {\n // console.log('modelitem.setvalue oldVal', this.value);\n // console.log('modelitem.setvalue newVal', newVal);\n\n if (newVal.nodeType === Node.DOCUMENT_NODE) {\n this.node.replaceWith(newVal.firstElementChild);\n this.node = newVal.firstElementChild;\n // this.node.appendChild(newVal.firstElementChild);\n } else if (newVal.nodeType === Node.ELEMENT_NODE) {\n this.node.replaceWith(newVal);\n this.node = newVal;\n // this.node.appendChild(newVal);\n } else if (this.node.nodeType === Node.ATTRIBUTE_NODE) {\n this.node.nodeValue = newVal;\n } else {\n this.node.textContent = newVal;\n }\n }\n\n addAlert(alert) {\n if (!this.alerts.includes(alert)) {\n this.alerts.push(alert);\n }\n }\n\n cleanAlerts() {\n this.alerts = [];\n }\n}\n","import { DepGraph } from './dep_graph.js';\nimport { Fore } from './fore.js';\nimport './fx-instance.js';\nimport { ModelItem } from './modelitem.js';\nimport { evaluateXPath, evaluateXPathToBoolean } from './xpath-evaluation.js';\nimport { XPathUtil } from './xpath-util.js';\n\n/**\n * The model of this Fore scope. It holds all the intances, binding, submissions and custom functions that\n * as required.\n *\n * The model is updatin by executing rebuild (as needed), recalculate and revalidate in turn.\n *\n * After the cycle is run all modelItems have updated their stete to reflect latest computations.\n *\n */\nexport class FxModel extends HTMLElement {\n static dataChanged = false;\n\n constructor() {\n super();\n // this.id = '';\n\n /**\n * @type {import('./fx-instance.js').FxInstance[]}\n */\n this.instances = [];\n /**\n * @type {import('./modelitem.js').ModelItem[]}\n */\n this.modelItems = [];\n this.defaultContext = {};\n this.changed = [];\n\n // this.mainGraph = new DepGraph(false);\n this.inited = false;\n this.modelConstructed = false;\n this.attachShadow({ mode: 'open' });\n this.computes = 0;\n this.fore = {};\n }\n\n get formElement() {\n return this.parentElement;\n }\n\n connectedCallback() {\n // console.log('connectedCallback ', this);\n this.setAttribute('inert', 'true');\n this.shadowRoot.innerHTML = `\n <slot></slot>\n `;\n\n /*\n this.addEventListener('model-construct-done', () => {\n // this.modelConstructed = true;\n // console.log('model-construct-done fired ', this.modelConstructed);\n // console.log('model-construct-done fired ', e.detail.model.instances);\n },\n { once: true },\n );\n*/\n\n this.skipUpdate = false;\n this.fore = this.parentNode;\n }\n\n /**\n * @param {FxModel} model The model to create a model item for\n * @param {string} ref The XPath ref that led to this model item\n * @param {Node} node The node the XPath led to\n * @param {ForeElementMixin} formElement The form element making this model. Used to resolve variables against\n */\n static lazyCreateModelItem(model, ref, node, formElement) {\n // console.log('lazyCreateModelItem ', node);\n const instanceId = XPathUtil.resolveInstance(formElement, ref);\n\n if (model.parentNode.createNodes && (node === null || node === undefined)) {\n // ### intializing ModelItem with default values (as there is no <fx-bind> matching for given ref)\n const mi = new ModelItem(\n undefined,\n ref,\n Fore.READONLY_DEFAULT,\n false,\n Fore.REQUIRED_DEFAULT,\n Fore.CONSTRAINT_DEFAULT,\n Fore.TYPE_DEFAULT,\n null,\n this,\n instanceId,\n );\n\n // console.log('new ModelItem is instanceof ModelItem ', mi instanceof ModelItem);\n model.registerModelItem(mi);\n return mi;\n }\n let targetNode = {};\n if (node === null || node === undefined) return null;\n if (node.nodeType === Node.TEXT_NODE) {\n // const parent = node.parentNode;\n // console.log('PARENT ', parent);\n targetNode = node.parentNode;\n } else {\n targetNode = node;\n }\n\n // const path = fx.evaluateXPath('path()',node);\n let path;\n if (node.nodeType) {\n path = XPathUtil.getPath(node, instanceId);\n } else {\n path = null;\n targetNode = node;\n }\n // const path = XPathUtil.getPath(node);\n\n // ### intializing ModelItem with default values (as there is no <fx-bind> matching for given ref)\n const mi = new ModelItem(\n path,\n ref,\n Fore.READONLY_DEFAULT,\n Fore.RELEVANT_DEFAULT,\n Fore.REQUIRED_DEFAULT,\n Fore.CONSTRAINT_DEFAULT,\n Fore.TYPE_DEFAULT,\n targetNode,\n this,\n instanceId,\n );\n\n // console.log('new ModelItem is instanceof ModelItem ', mi instanceof ModelItem);\n model.registerModelItem(mi);\n return mi;\n }\n\n /**\n * modelConstruct starts actual processing of the model by\n *\n * 1. loading instances if present or constructing one\n * 2. calling updateModel to run the model update cycle of rebuild, recalculate and revalidate\n *\n * @event model-construct-done is fired once all instances have be loaded or after generating instance\n *\n */\n async modelConstruct() {\n console.info(\n `%cdispatching model-construct for #${this.parentNode.id}`,\n 'background:lightblue; color:black; padding:.5rem; display:inline-block; white-space: nowrap; border-radius:0.3rem;width:100%;',\n );\n\n // this.dispatchEvent(new CustomEvent('model-construct', { detail: this }));\n Fore.dispatch(this, 'model-construct', { model: this });\n\n // console.time('instance-loading');\n const instances = this.querySelectorAll('fx-instance');\n if (instances.length > 0) {\n const promises = [];\n instances.forEach(instance => {\n promises.push(instance.init());\n });\n\n // Wait until all the instances are built\n await Promise.all(promises);\n this.instances = Array.from(instances);\n // console.log('_modelConstruct this.instances ', this.instances);\n // Await until the model-construct-done event is handled off\n this.modelConstructed = true;\n await Fore.dispatch(this, 'model-construct-done', { model: this });\n this.inited = true;\n this.updateModel();\n } else {\n // ### if there's no instance one will created\n console.log(`### <<<<< dispatching model-construct-done for '${this.fore.id}' >>>>>`);\n this.modelConstructed = true;\n await this.dispatchEvent(\n new CustomEvent('model-construct-done', {\n composed: false,\n bubbles: true,\n detail: { model: this },\n }),\n );\n }\n\n const functionlibImports = Array.from(this.querySelectorAll('fx-functionlib'));\n await Promise.all(functionlibImports.map(lib => lib.readyPromise));\n // console.timeEnd('instance-loading');\n this.inited = true;\n }\n\n registerModelItem(modelItem) {\n // console.log('ModelItem registered ', modelItem);\n this.modelItems.push(modelItem);\n }\n\n /**\n * update action triggering the update cycle\n */\n updateModel() {\n // console.time('updateModel');\n this.rebuild();\n /*\n if (this.skipUpdate){\n console.info('%crecalculate/revalidate skipped - no bindings', 'font-style: italic; background: #90a4ae; color:lightgrey; padding:0.3rem 5rem 0.3rem 0.3rem;display:block;width:100%;');\n return;\n }\n*/\n this.recalculate();\n this.revalidate();\n // console.log('updateModel finished with modelItems ', this.modelItems);\n\n // console.timeEnd('updateModel');\n }\n\n rebuild() {\n // console.log(`### <<<<< rebuild() '${this.fore.id}' >>>>>`);\n\n this.mainGraph = new DepGraph(false); // do: should be moved down below binds.length check but causes errors in tests.\n this.modelItems = [];\n\n // trigger recursive initialization of the fx-bind elements\n const binds = this.querySelectorAll('fx-model > fx-bind');\n if (binds.length === 0) {\n // console.log('skipped model update');\n this.skipUpdate = true;\n return;\n }\n\n binds.forEach(bind => {\n bind.init(this);\n });\n\n console.log('mainGraph', this.mainGraph);\n console.log('rebuild mainGraph calc order', this.mainGraph.overallOrder());\n\n // this.dispatchEvent(new CustomEvent('rebuild-done', {detail: {maingraph: this.mainGraph}}));\n Fore.dispatch(this, 'rebuild-done', { maingraph: this.mainGraph });\n console.log('mainGraph', this.mainGraph);\n }\n\n /**\n * recalculation of all modelItems. Uses dependency graph to determine order of computation.\n *\n * todo: use 'changed' flag on modelItems to determine subgraph for recalculation. Flag already exists but is not used.\n */\n recalculate() {\n if (!this.mainGraph) {\n return;\n }\n\n // console.log(`### <<<<< recalculate() '${this.fore.id}' >>>>>`);\n\n // console.log('changed nodes ', this.changed);\n this.computes = 0;\n\n this.subgraph = new DepGraph(false);\n // ### create the subgraph for all changed modelItems\n if (this.changed.length !== 0) {\n // ### build the subgraph\n this.changed.forEach(modelItem => {\n this.subgraph.addNode(modelItem.path, modelItem.node);\n // const dependents = this.mainGraph.dependantsOf(modelItem.path, false);\n // this._addSubgraphDependencies(modelItem.path);\n if (this.mainGraph.hasNode(modelItem.path)) {\n // const dependents = this.mainGraph.directDependantsOf(modelItem.path)\n\n const all = this.mainGraph.dependantsOf(modelItem.path, false);\n const dependents = all.reverse();\n if (dependents.length !== 0) {\n dependents.forEach(dep => {\n // const subdep = this.mainGraph.dependentsOf(dep,false);\n // subgraph.addDependency(dep, modelItem.path);\n const val = this.mainGraph.getNodeData(dep);\n this.subgraph.addNode(dep, val);\n if (dep.includes(':')) {\n const path = dep.substring(0, dep.indexOf(':'));\n this.subgraph.addNode(path, val);\n\n const deps = this.mainGraph.dependentsOf(modelItem.path, false);\n // if we find the dep to be first in list of dependents we are dependent on ourselves not adding edge to modelItem.path\n if (deps.indexOf(dep) !== 0) {\n this.subgraph.addDependency(dep, modelItem.path);\n }\n }\n // subgraph.addDependency(dep,modelItem.path);\n });\n }\n }\n });\n\n // ### compute the subgraph\n const ordered = this.subgraph.overallOrder(false);\n ordered.forEach(path => {\n if (this.mainGraph.hasNode(path)) {\n const node = this.mainGraph.getNodeData(path);\n this.compute(node, path);\n }\n });\n const toRefresh = [...this.changed];\n this.formElement.toRefresh = toRefresh;\n this.changed = [];\n Fore.dispatch(this, 'recalculate-done', { graph: this.subgraph, computes: this.computes });\n } else {\n const v = this.mainGraph.overallOrder(false);\n v.forEach(path => {\n const node = this.mainGraph.getNodeData(path);\n this.compute(node, path);\n });\n Fore.dispatch(this, 'recalculate-done', { graph: this.mainGraph, computes: this.computes });\n }\n console.log(`${this.parentElement.id} recalculate finished with modelItems `, this.modelItems);\n }\n\n /*\n _addSubgraphDependencies(path){\n const dependents = this.mainGraph.directDependantsOf(path)\n\n const alreadyInGraph = this.subgraph.incomingEdges[path];\n // const alreadyInGraph = path in this.subgraph;\n if(dependents.length !== 0 && alreadyInGraph.length === 0){\n\n dependents.forEach(dep => {\n // const val= this.mainGraph.getNodeData(dep);\n // this.subgraph.addNode(dep,val);\n if(dep.includes(':')){\n const subpath = dep.substring(0, dep.indexOf(':'));\n // this.subgraph.addNode(subpath,val);\n this.subgraph.addDependency(subpath,dep);\n this.subgraph.addDependency(dep,path);\n /!*\n const subdeps = this.mainGraph.directDependantsOf(path);\n console.log('subdeps',path, subdeps);\n subdeps.forEach(sdep => {\n const sval= this.mainGraph.getNodeData(sdep);\n this.subgraph.addNode(sdep,sval);\n console.log('subdep',sdep);\n });\n *!/\n if(this.subgraph.incomingEdges[dep] === 0){\n this._addSubgraphDependencies(subpath)\n }\n\n }\n });\n\n }\n\n }\n */\n\n /**\n * (re-) computes a modelItem.\n * @param {Node} node - the node the modelItem is attached to\n * @param {string} path - the canonical XPath of the node\n */\n compute(node, path) {\n const modelItem = this.getModelItem(node);\n if (modelItem && path.includes(':')) {\n const property = path.split(':')[1];\n if (property) {\n /*\n if (property === 'readonly') {\n // make sure that calculated items are always readonly\n if(modelItem.bind['calculate']){\n modelItem.readonly = true;\n }else {\n const expr = modelItem.bind[property];\n const compute = evaluateXPathToBoolean(expr, modelItem.node, this);\n modelItem.readonly = compute;\n }\n }\n */\n const expr = modelItem.bind[property];\n if (property === 'calculate') {\n const compute = evaluateXPath(expr, modelItem.node, this);\n modelItem.value = compute;\n modelItem.readonly = true; // calculated nodes are always readonly\n } else if (property !== 'constraint' && property !== 'type') {\n // ### re-compute the Boolean value of all facets expect 'constraint' and 'type' which are handled in revalidate()\n if (expr) {\n const compute = evaluateXPathToBoolean(expr, modelItem.node, this);\n modelItem[property] = compute;\n /*\n console.log(\n `recalculating path ${path} - Expr:'${expr}' computed`,\n modelItem[property],\n );\n */\n }\n }\n }\n this.computes += 1;\n }\n }\n\n /**\n * Iterates all modelItems to calculate the validation status.\n *\n * Model alerts are given on 'fx-bind' elements as either attribute `alert` or as `fx-alert` child elements.\n *\n * During model-construct all model alerts are added to the modelItem if any\n *\n * to revalidate:\n * Gets the `constraint` attribute declaration from modelItem.bind\n * Computes the XPath to a Boolean\n * Updates the modelItem.constraint property\n *\n * todo: type checking\n * todo: run browser validation API\n *\n */\n revalidate() {\n if (this.modelItems.length === 0) return true;\n\n // console.log(`### <<<<< revalidate() '${this.fore.id}' >>>>>`);\n\n // reset submission validation\n // this.parentNode.classList.remove('submit-validation-failed')\n let valid = true;\n this.modelItems.forEach(modelItem => {\n // console.log('validating node ', modelItem.node);\n const { bind } = modelItem;\n if (bind) {\n /*\n todo: investigate why bind is an element when created in fx-bind.init() and an fx-bind object when\n created lazily.\n */\n if (typeof bind.hasAttribute === 'function' && bind.hasAttribute('constraint')) {\n const constraint = bind.getAttribute('constraint');\n if (constraint && modelItem.node) {\n const compute = evaluateXPathToBoolean(constraint, modelItem.node, this);\n // console.log('modelItem validity computed: ', compute);\n modelItem.constraint = compute;\n this.formElement.addToRefresh(modelItem); // let fore know that modelItem needs refresh\n if (!compute) {\n console.log('validation failed on modelitem ', modelItem);\n valid = false;\n }\n }\n }\n if (typeof bind.hasAttribute === 'function' && bind.hasAttribute('required')) {\n const required = bind.getAttribute('required');\n if (required) {\n const compute = evaluateXPathToBoolean(required, modelItem.node, this);\n // console.log('modelItem required computed: ', compute);\n modelItem.required = compute;\n this.formElement.addToRefresh(modelItem); // let fore know that modelItem needs refresh\n if (!modelItem.node.textContent) {\n /*\n console.log(\n 'node is required but has no value ',\n XPathUtil.getDocPath(modelItem.node),\n );\n*/\n valid = false;\n }\n // if (!compute) valid = false;\n /*\n if (!this.modelConstructed) {\n // todo: get alert from attribute or child element\n const alert = bind.getAlert();\n if (alert) {\n modelItem.addAlert(alert);\n }\n }\n */\n }\n }\n }\n });\n console.log('modelItems after revalidate: ', this.modelItems);\n return valid;\n }\n\n addChanged(modelItem) {\n if (this.inited) {\n this.changed.push(modelItem);\n }\n }\n\n /**\n *\n * @param {Node} node\n * @returns {ModelItem}\n */\n getModelItem(node) {\n return this.modelItems.find(m => m.node === node);\n }\n\n /**\n * get the default evaluation context for this model.\n * @returns {Element}\n */\n getDefaultContext() {\n return this.instances[0].getDefaultContext();\n }\n\n /**\n * @returns {import('./fx-instance.js').FxInstance}\n */\n getDefaultInstance() {\n /*\n if (this.instances.length === 0) {\n throw new Error('No instances defined. Fore cannot work without any <data/> elements.');\n }\n*/\n if (this.instances.length) {\n return this.instances[0];\n }\n return this.getInstance('default');\n }\n\n getDefaultInstanceData() {\n return this.instances[0].getInstanceData();\n }\n\n getInstance(id) {\n // console.log('getInstance ', id);\n // console.log('instances ', this.instances);\n // console.log('instances array ',Array.from(this.instances));\n\n let found;\n if (id === 'default') {\n found = this.instances[0];\n }\n // ### lookup in local instances first\n if (!found) {\n const instArray = Array.from(this.instances);\n found = instArray.find(inst => inst.id === id);\n const parentFore =\n this.fore.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE\n ? this.fore.parentNode.host.closest('fx-fore')\n : this.fore.parentNode.closest('fx-fore');\n }\n // ### lookup in parent Fore if present\n if (!found) {\n // const parentFore = this.fore.parentNode.closest('fx-fore');\n const parentFore =\n this.fore.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE\n ? this.fore.parentNode.host.closest('fx-fore')\n : this.fore.parentNode.closest('fx-fore');\n if (parentFore) {\n // console.log('shared instances from parent', this.parentNode.id);\n const parentInstances = parentFore.getModel().instances;\n const shared = parentInstances.filter(shared => shared.hasAttribute('shared'));\n found = shared.find(found => found.id === id);\n }\n }\n if (found) {\n return found;\n }\n if (id === 'default') {\n return this.getDefaultInstance(); // if id is not found always defaults to first in doc order\n }\n if (!found && this.fore.strict) {\n // return this.getDefaultInstance(); // if id is not found always defaults to first in doc order\n Fore.dispatch(this, 'error', {\n origin: this,\n message: `Instance '${id}' does not exist`,\n level: 'Error',\n });\n }\n return null;\n }\n\n evalBinding(bindingExpr) {\n // console.log('MODEL.evalBinding ', bindingExpr);\n // default context of evaluation is always the default instance\n const result = this.instances[0].evalXPath(bindingExpr);\n return result;\n }\n}\n\nif (!customElements.get('fx-model')) {\n customElements.define('fx-model', FxModel);\n}\n","export default class DependentXPathQueries {\n constructor() {\n /**\n * @type {Set<string>}\n */\n this._xpaths = new Set();\n\n this._parentDependencies = null;\n }\n\n /**\n * Returns true if this Fore element should be refreshed if a result of an index function changes\n *\n * @returns {boolean}\n */\n isInvalidatedByIndexFunction() {\n for (const xpath of this._xpaths) {\n // TODO: this can be done a lot better with parsing / checking for function references\n if (xpath.includes('index(')) {\n return true;\n }\n }\n\n // We can also depend on the index function if it was used in our ancestry\n return !!this._parentDependencies?.isInvalidatedByIndexFunction();\n }\n\n /**\n * Add an XPath to the dependencies\n *\n * @param {string} xpath the XPath to add\n */\n addXPath(xpath) {\n this._xpaths.add(xpath);\n }\n\n /**\n * Reset the dependencies on refresh\n *\n */\n resetDependencies() {\n this._xpaths.clear();\n }\n\n /**\n * @param {DependentXPathQueries} deps\n */\n setParentDependencies(deps) {\n this._parentDependencies = deps;\n }\n}\n","import { XPathUtil } from './xpath-util.js';\nimport { FxModel } from './fx-model.js';\nimport {\n evaluateXPath,\n evaluateXPathToFirstNode,\n evaluateXPathToString,\n} from './xpath-evaluation.js';\nimport getInScopeContext from './getInScopeContext.js';\nimport { Fore } from './fore.js';\nimport DependentXPathQueries from './DependentXPathQueries.js';\n\n/**\n * Mixin containing all general functions that are shared by all Fore element classes.\n * @extends {HTMLElement}\n */\nexport default class ForeElementMixin extends HTMLElement {\n static get properties() {\n return {\n /**\n * context object for evaluation\n */\n context: {\n type: Object,\n },\n /**\n * the model of this element\n */\n model: {\n type: Object,\n },\n /**\n * The modelitem object associated to the bound node holding the evaluated state.\n */\n modelItem: {\n type: Object,\n },\n /**\n * the node(s) bound by this element\n */\n nodeset: {\n type: Object,\n },\n /**\n * XPath binding expression pointing to bound node\n */\n ref: {\n type: String,\n },\n inScopeVariables: {\n type: Map,\n },\n };\n }\n\n constructor() {\n super();\n this.context = null;\n this.model = null;\n this.modelItem = null;\n this.ref = this.hasAttribute('ref') ? this.getAttribute('ref') : '';\n /**\n * @type {Map<string, import('./fx-var.js').FxVariable>}\n */\n this.inScopeVariables = new Map();\n\n this._dependencies = new DependentXPathQueries();\n this._dependencies.setParentDependencies(this.parent?.closest('[ref]')?._dependencies);\n }\n\n /**\n * @returns {import('./fx-model.js').FxModel}\n */\n getModel() {\n // console.log('getModel this ', this);\n if (this.model) {\n return this.model;\n }\n // const ownerForm = this.closest('fx-fore');\n // const ownerForm = this.getOwnerForm(this);\n const ownerForm = this.getOwnerForm();\n return ownerForm.querySelector('fx-model');\n }\n\n /**\n *\n * @returns {import('./fx-fore.js').FxFore} The fx-fore element associated with this form node\n */\n getOwnerForm() {\n let currentElement = this;\n while (currentElement && currentElement.parentNode) {\n // console.log('current ', currentElement);\n\n if (currentElement.nodeName.toUpperCase() === 'FX-FORE') {\n return currentElement;\n }\n\n if (currentElement.parentNode instanceof DocumentFragment) {\n currentElement = currentElement.parentNode.host;\n } else {\n currentElement = currentElement.parentNode;\n }\n }\n return currentElement;\n }\n\n /**\n * evaluation of fx-bind and UiElements differ in details so that each class needs it's own implementation.\n */\n evalInContext() {\n this._dependencies.resetDependencies();\n // const inscopeContext = this.getInScopeContext();\n const model = this.getModel();\n if (!model) {\n return;\n }\n let inscopeContext;\n if (this.hasAttribute('context')) {\n inscopeContext = getInScopeContext(this.getAttributeNode('context') || this, this.context);\n }\n if (this.hasAttribute('ref')) {\n inscopeContext = getInScopeContext(this.getAttributeNode('ref') || this, this.ref);\n this._dependencies.addXPath(this.ref);\n }\n if (!inscopeContext && this.getModel().instances.length !== 0) {\n // ### always fall back to default context with there's neither a 'context' or 'ref' present\n inscopeContext = this.getModel().getDefaultInstance().getDefaultContext();\n // console.warn('no in scopeContext for ', this);\n // console.warn('using default context ', this);\n // return;\n }\n if (this.ref === '') {\n this.nodeset = inscopeContext;\n } else if (Array.isArray(inscopeContext)) {\n /*\n\t\t\tinscopeContext.forEach(n => {\n\t\t\t if (XPathUtil.isSelfReference(this.ref)) {\n\t\t\t\tthis.nodeset = inscopeContext;\n\t\t\t } else {\n\t\t\t\tconst localResult = evaluateXPathToFirstNode(this.ref, n, this);\n\t\t\t\t// console.log('local result: ', localResult);\n\t\t\t\tthis.nodeset.push(localResult);\n\t\t\t }\n\t\t\t});\n\t*/\n // this.nodeset = evaluateXPathToFirstNode(this.ref, inscopeContext[0], this);\n this.nodeset = evaluateXPath(this.ref, inscopeContext[0], this);\n } else {\n // this.nodeset = fx.evaluateXPathToFirstNode(this.ref, inscopeContext, null, {namespaceResolver: this.namespaceResolver});\n if (!inscopeContext) return;\n const { nodeType } = inscopeContext;\n if (nodeType && !XPathUtil.isAbsolutePath(this.ref)) {\n this.nodeset = evaluateXPathToFirstNode(this.ref, inscopeContext, this);\n } else {\n [this.nodeset] = evaluateXPath(this.ref, inscopeContext, this);\n }\n }\n // console.log('UiElement evaluated to nodeset: ', this.nodeset);\n }\n\n /**\n * resolves template expressions for a single attribute\n * @param {string} expr an attribute value containing curly brackets containing XPath expressions to evaluate\n * @param {Node} node the attribute node used for scoped resolution\n * @returns {string}\n * @protected\n */\n evaluateAttributeTemplateExpression(expr, node) {\n const matches = expr.match(/{[^}]*}/g);\n if (matches) {\n matches.forEach(match => {\n // console.log('match ', match);\n const naked = match.substring(1, match.length - 1);\n const inscope = getInScopeContext(node, naked);\n const result = evaluateXPathToString(naked, inscope, this);\n const replaced = expr.replaceAll(match, result);\n // console.log('replacing ', expr, ' with ', replaced);\n expr = replaced;\n });\n }\n return expr;\n }\n\n isNotBound() {\n return !this.hasAttribute('ref');\n }\n\n isBound() {\n return this.hasAttribute('ref');\n }\n\n getBindingExpr() {\n if (this.hasAttribute('ref')) {\n return this.getAttribute('ref');\n }\n // try to get closest parent bind\n const parent = XPathUtil.getClosest('[ref]', this.parentNode);\n if (!parent) {\n return 'instance()'; // the default instance\n }\n return parent.getAttribute('ref');\n }\n\n /**\n * @returns {import('./fx-instance.js').FxInstance}\n */\n getInstance() {\n if (this.ref.startsWith('instance(')) {\n const instId = XPathUtil.getInstanceId(this.ref);\n return this.getModel().getInstance(instId);\n }\n return this.getModel().getInstance('default');\n }\n\n _getParentBindingElement(start) {\n if (start.parentNode.host) {\n const { host } = start.parentNode;\n if (host.hasAttribute('ref')) {\n return host;\n }\n } else if (start.parentNode) {\n if (start.parentNode.hasAttribute('ref')) {\n return this.parentNode;\n }\n this._getParentBindingElement(this.parentNode);\n }\n return null;\n }\n\n /**\n * @returns {import('./modelitem.js').ModelItem}\n */\n getModelItem() {\n const mi = this.getModel().getModelItem(this.nodeset);\n if (mi) {\n this.modelItem = mi;\n }\n\n const repeated = XPathUtil.getClosest('fx-repeatitem', this);\n let existed;\n if (repeated) {\n const { index } = repeated;\n if (Array.isArray(this.nodeset)) {\n existed = this.getModel().getModelItem(this.nodeset[index - 1]);\n } else {\n existed = this.getModel().getModelItem(this.nodeset);\n }\n } else {\n existed = this.nodeset ? this.getModel().getModelItem(this.nodeset) : null;\n }\n\n if (!existed) {\n const lazyCreatedModelItem = FxModel.lazyCreateModelItem(\n this.getModel(),\n this.ref,\n this.nodeset,\n this,\n );\n this.modelItem = lazyCreatedModelItem;\n return lazyCreatedModelItem;\n }\n this.modelItem = existed;\n\n return existed;\n }\n\n /**\n * Returns the effective value for the element.\n * a: look for 'value' attribute and if present evaluate it and return the resulting value\n * b: look for textContent and return the value if present\n * c: return null\n * @returns {string}\n */\n getValue() {\n if (this.hasAttribute('value')) {\n const valAttr = this.getAttribute('value');\n try {\n const inscopeContext = getInScopeContext(this, valAttr);\n return evaluateXPathToString(valAttr, inscopeContext, this.getOwnerForm());\n } catch (error) {\n console.error(error);\n Fore.dispatch(this, 'error', { message: error });\n }\n }\n if (this.textContent) {\n return this.textContent;\n }\n return null;\n }\n\n /**\n * @returns {Node}\n */\n getInScopeContext() {\n return getInScopeContext(this.getAttributeNode('ref') || this, this.ref);\n }\n\n /**\n * Set variables in scope here\n * @param {Map} inScopeVariables\n */\n setInScopeVariables(inScopeVariables) {\n this.inScopeVariables = inScopeVariables;\n }\n}\n","import { DependencyNotifyingDomFacade } from './DependencyNotifyingDomFacade.js';\nimport ForeElementMixin from './ForeElementMixin.js';\nimport { ModelItem } from './modelitem.js';\nimport {\n evaluateXPathToBoolean,\n evaluateXPathToNodes,\n evaluateXPathToString,\n} from './xpath-evaluation.js';\nimport { XPathUtil } from './xpath-util.js';\nimport getInScopeContext from './getInScopeContext.js';\n\n/**\n * FxBind declaratively attaches constraints to nodes in the data (instances).\n *\n * It's major task is to create ModelItem Objects for each Node in the data their ref is pointing to.\n *\n * References and constraint attributes use XPath statements to point to the nodes they are attributing.\n *\n * Note: why is fx-bind not extending BoundElement? Though fx-bind has a 'ref' attr it is not bound in the sense of\n * getting updates about changes of the bound nodes. Instead it acts as a factory for modelItems that are used by\n * BoundElements to track their state.\n *\n * @customElements\n */\nexport class FxBind extends ForeElementMixin {\n static READONLY_DEFAULT = false;\n\n static REQUIRED_DEFAULT = false;\n\n static RELEVANT_DEFAULT = true;\n\n static CONSTRAINT_DEFAULT = true;\n\n static TYPE_DEFAULT = 'xs:string';\n\n constructor() {\n super();\n this.nodeset = [];\n this.model = {};\n this.contextNode = {};\n this.inited = false;\n }\n\n connectedCallback() {\n // console.log('connectedCallback ', this);\n // this.id = this.hasAttribute('id')?this.getAttribute('id'):;\n this.constraint = this.getAttribute('constraint');\n this.ref = this.getAttribute('ref');\n this.readonly = this.getAttribute('readonly');\n this.required = this.getAttribute('required');\n this.relevant = this.getAttribute('relevant');\n this.type = this.hasAttribute('type') ? this.getAttribute('type') : FxBind.TYPE_DEFAULT;\n this.calculate = this.getAttribute('calculate');\n }\n\n /**\n * initializes the bind element by evaluating the binding expression.\n *\n * For each node referred to by the binding expr a ModelItem object is created.\n *\n * @param model\n */\n init(model) {\n this.model = model;\n // console.log('init binding ', this);\n this._getInstanceId();\n this.bindType = this.getModel().getInstance(this.instanceId).type;\n // console.log('binding type ', this.bindType);\n\n if (this.bindType === 'xml') {\n this._evalInContext();\n this._buildBindGraph();\n this._createModelItems();\n }\n // todo: support json\n\n // ### process child bindings\n this._processChildren(model);\n }\n\n _buildBindGraph() {\n if (this.bindType === 'xml') {\n this.nodeset.forEach((node) => {\n const instance = XPathUtil.resolveInstance(this, this.ref);\n\n const path = XPathUtil.getPath(node, instance);\n this.model.mainGraph.addNode(path, node);\n\n /* ### catching references in the 'ref' itself...\n todo: investigate cases where 'ref' attributes use predicates pointing to other nodes. These would not be handled\n in current implementation.\n\n General question: are there valid use-cases for using a 'filter' expression to narrow the nodeset\n where to apply constraints? Guess yes and if it's 'just' for reducing the amount of necessary modelItem objects.\n\n */\n // const foreignRefs = this.getReferences(this.ref);\n\n if (this.calculate) {\n this.model.mainGraph.addNode(`${path}:calculate`, node);\n // Calculated values are a dependency of the model item.\n this.model.mainGraph.addDependency(path, `${path}:calculate`);\n }\n\n const calculateRefs = this._getReferencesForProperty(this.calculate, node);\n if (calculateRefs.length !== 0) {\n this._addDependencies(calculateRefs, node, path, 'calculate');\n }\n\n if (!this.calculate) {\n const readonlyRefs = this._getReferencesForProperty(this.readonly, node);\n if (readonlyRefs.length !== 0) {\n this._addDependencies(readonlyRefs, node, path, 'readonly');\n } else if (this.readonly) {\n this.model.mainGraph.addNode(`${path}:readonly`, node);\n }\n }\n\n // const requiredRefs = this.requiredReferences;\n const requiredRefs = this._getReferencesForProperty(this.required, node);\n if (requiredRefs.length !== 0) {\n this._addDependencies(requiredRefs, node, path, 'required');\n } else if (this.required) {\n this.model.mainGraph.addNode(`${path}:required`, node);\n }\n\n const relevantRefs = this._getReferencesForProperty(this.relevant, node);\n if (relevantRefs.length !== 0) {\n this._addDependencies(relevantRefs, node, path, 'relevant');\n } else if (this.relevant) {\n this.model.mainGraph.addNode(`${path}:relevant`, node);\n }\n\n const constraintRefs = this._getReferencesForProperty(this.constraint, node);\n if (constraintRefs.length !== 0) {\n this._addDependencies(constraintRefs, node, path, 'constraint');\n } else if (this.constraint) {\n this.model.mainGraph.addNode(`${path}:constraint`, node);\n this.model.mainGraph.addDependency(path, `${path}:constraint`);\n }\n });\n }\n }\n\n /**\n * Add the dependencies of this bind\n *\n * @param {Node[]} refs The nodes that are referenced by this bind. these need to be resolved before\n * this bind can be resolved.\n * @param {Node} node The start of the reference\n * @param {string} path The path to the start of the reference\n * @param {string} property The property with this dependency\n */\n _addDependencies(refs, node, path, property) {\n // console.log('_addDependencies',path);\n const nodeHash = `${path}:${property}`;\n if (refs.length !== 0) {\n if (!this.model.mainGraph.hasNode(nodeHash)) {\n this.model.mainGraph.addNode(nodeHash, node);\n }\n refs.forEach((ref) => {\n const instance = XPathUtil.resolveInstance(this, path);\n\n const otherPath = XPathUtil.getPath(ref, instance);\n // console.log('otherPath', otherPath)\n\n // todo: nasty hack to prevent duplicate pathes like 'a[1]' and 'a[1]/text()[1]' to end up as separate nodes in the graph\n if (!otherPath.endsWith('text()[1]')) {\n if (!this.model.mainGraph.hasNode(otherPath)) {\n this.model.mainGraph.addNode(otherPath, ref);\n }\n this.model.mainGraph.addDependency(nodeHash, otherPath);\n }\n });\n } else {\n this.model.mainGraph.addNode(nodeHash, node);\n }\n }\n\n _processChildren(model) {\n const childbinds = this.querySelectorAll(':scope > fx-bind');\n Array.from(childbinds).forEach((bind) => {\n // console.log('init child bind ', bind);\n bind.init(model);\n });\n }\n\n getAlert() {\n if (this.hasAttribute('alert')) {\n return this.getAttribute('alert');\n }\n const alertChild = this.querySelector('fx-alert');\n if (alertChild) {\n return alertChild.innerHTML;\n }\n return null;\n }\n\n /**\n * overwrites\n */\n _evalInContext() {\n const inscopeContext = getInScopeContext(this.getAttributeNode('ref') || this, this.ref);\n\n // reset nodeset\n this.nodeset = [];\n\n if (this.ref === '' || this.ref === null) {\n this.nodeset = inscopeContext;\n } else if (Array.isArray(inscopeContext)) {\n inscopeContext.forEach((n) => {\n if (XPathUtil.isSelfReference(this.ref)) {\n this.nodeset = inscopeContext;\n } else {\n // eslint-disable-next-line no-lonely-if\n if (this.ref) {\n const localResult = evaluateXPathToNodes(this.ref, n, this);\n localResult.forEach((item) => {\n this.nodeset.push(item);\n });\n /*\n const localResult = fx.evaluateXPathToFirstNode(this.ref, n, null, {namespaceResolver: this.namespaceResolver});\n this.nodeset.push(localResult);\n */\n }\n // console.log('local result: ', localResult);\n // this.nodeset.push(localResult);\n }\n });\n } else {\n const inst = this.getModel().getInstance(this.instanceId);\n if (inst.type === 'xml') {\n this.nodeset = evaluateXPathToNodes(this.ref, inscopeContext, this);\n } else {\n this.nodeset = this.ref;\n }\n }\n }\n\n _createModelItems() {\n // console.log('#### ', thi+s.nodeset);\n\n if (Array.isArray(this.nodeset)) {\n // console.log('################################################ ', this.nodeset);\n // Array.from(this.nodeset).forEach((n, index) => {\n Array.from(this.nodeset).forEach((n) => {\n // console.log('node ',n);\n // this._createModelItem(n, index);\n this._createModelItem(n);\n });\n } else {\n this._createModelItem(this.nodeset);\n }\n }\n\n /**\n * creates a ModelItem for given instance node.\n *\n * Please note that for textnode no ModelItem is created but instead the one of its parent is used which either\n * must exist and be initialized already when we hit the textnode.\n * @param node\n * @private\n */\n // _createModelItem(node, index) {\n _createModelItem(node) {\n // console.log('_createModelItem node', node, index);\n\n /*\n this.calculateReferences = this._getReferencesForProperty(this.calculate,node);\n this.readOnlyReferences = this._getReferencesForProperty(this.readonly,node);\n this.requiredReferences = this._getReferencesForProperty(this.required,node);\n this.relevantReferences = this._getReferencesForProperty(this.relevant,node);\n this.constraintReferences = this._getReferencesForProperty(this.constraint,node);\n */\n\n /*\n if bind is the dot expression we use the modelitem of the parent\n */\n if (XPathUtil.isSelfReference(this.ref)) {\n const parentBoundElement = XPathUtil.getClosest('fx-bind[ref]', this.parentElement);\n // console.log('parent bound element ', parentBoundElement);\n\n if (parentBoundElement) {\n // todo: Could be fancier by combining them\n parentBoundElement.required = this.required; // overwrite parent property!\n } else {\n console.error('no parent bound element');\n }\n\n return;\n }\n\n // let value = null;\n // const mItem = {};\n /*\n let targetNode = {};\n if (node.nodeType === node.TEXT_NODE) {\n // const parent = node.parentNode;\n // console.log('PARENT ', parent);\n targetNode = node.parentNode;\n } else {\n targetNode = node;\n }\n*/\n const targetNode = node;\n\n // const path = fx.evaluateXPath('path()',node);\n // const path = this.getPath(node);\n const instanceId = XPathUtil.resolveInstance(this, this.ref);\n\n const path = XPathUtil.getPath(node, instanceId);\n // const shortPath = this.shortenPath(path);\n\n // ### constructing default modelitem - will get evaluated during recalculate()\n // ### constructing default modelitem - will get evaluated during recalculate()\n // ### constructing default modelitem - will get evaluated during recalculate()\n // const newItem = new ModelItem(shortPath,\n const newItem = new ModelItem(\n path,\n this.getBindingExpr(),\n FxBind.READONLY_DEFAULT,\n FxBind.RELEVANT_DEFAULT,\n FxBind.REQUIRED_DEFAULT,\n FxBind.CONSTRAINT_DEFAULT,\n this.type,\n targetNode,\n this,\n instanceId\n );\n\n const alert = this.getAlert();\n if (alert) {\n newItem.addAlert(alert);\n }\n\n this.getModel().registerModelItem(newItem);\n }\n\n /**\n * Get the nodes that are referred by the given XPath expression\n *\n * @param {string} propertyExpr The XPath to get the referenced nodes from\n *\n * @return {Node[]} The nodes that are referenced by the XPath\n *\n * todo: DependencyNotifyingDomFacade reports back too much in some cases like 'a[1]' and 'a[1]/text[1]'\n */\n _getReferencesForProperty(propertyExpr) {\n if (propertyExpr) {\n return this.getReferences(propertyExpr);\n }\n return [];\n }\n\n getReferences(propertyExpr) {\n const touchedNodes = new Set();\n const domFacade = new DependencyNotifyingDomFacade(otherNode => touchedNodes.add(otherNode));\n this.nodeset.forEach((node) => {\n evaluateXPathToString(propertyExpr, node, this, domFacade);\n });\n return Array.from(touchedNodes.values());\n }\n\n /*\n static getReferencesForRef(ref,nodeset){\n if (ref && nodeset) {\n const touchedNodes = new Set();\n const domFacade = new DependencyNotifyingDomFacade(otherNode => touchedNodes.add(otherNode));\n nodeset.forEach(node => {\n evaluateXPathToString(ref, node, this, domFacade);\n });\n\n return Array.from(touchedNodes.values());\n }\n return [];\n }\n */\n\n _initBooleanModelItemProperty(property, node) {\n // evaluate expression to boolean\n const propertyExpr = this[property];\n // console.log('####### ', propertyExpr);\n const result = evaluateXPathToBoolean(propertyExpr, node, this);\n return result;\n }\n\n static shortenPath(path) {\n const steps = path.split('/');\n let result = '';\n for (let i = 2; i < steps.length; i += 1) {\n const step = steps[i];\n if (step.indexOf('{}') !== -1) {\n const q = step.split('{}');\n result += `/${q[1]}`;\n } else {\n result += `/${step}`;\n }\n }\n return result;\n }\n\n /**\n * return the instance id this bind is associated with. Resolves upwards in binds to either find an expr containing\n * and instance() function or if not found return 'default'.\n * @private\n */\n _getInstanceId() {\n const bindExpr = this.getBindingExpr();\n // console.log('_getInstanceId bindExpr ', bindExpr);\n if (bindExpr.startsWith('instance(')) {\n this.instanceId = XPathUtil.getInstanceId(bindExpr);\n return;\n }\n if (!this.instanceId && this.parentNode.nodeName === 'FX-BIND') {\n let parent = this.parentNode;\n while (parent && !this.instanceId) {\n const ref = parent.getBindingExpr();\n if (ref.startsWith('instance(')) {\n this.instanceId = XPathUtil.getInstanceId(ref);\n return;\n }\n if (parent.parentNode.nodeName !== 'FX-BIND') {\n this.instanceId = 'default';\n break;\n }\n parent = parent.parentNode;\n }\n }\n this.instanceId = 'default';\n }\n}\n\nif (!customElements.get('fx-bind')) {\n customElements.define('fx-bind', FxBind);\n}\n","import ForeElementMixin from './ForeElementMixin.js';\nimport { Fore } from './fore.js';\nimport { FxModel } from './fx-model.js';\n\nclass FxConnection extends ForeElementMixin {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n this._url = '';\n this._socket = null;\n this._heartbeatInterval = FxConnection._defaultHeartbeatInterval;\n this._heartbeatTimer = null;\n this._messageFormat = FxConnection._defaultMessageFormat;\n this._onMessage = this._onMessage.bind(this);\n }\n\n _render() {\n const style = `\n :host {\n display: none;\n }\n `;\n\n const html = `\n <slot></slot>\n${\n this._messageFormat === 'xml'\n ? '<fx-replace id=\"replace\" ref=\".\"></fx-replace>'\n : '<fx-setvalue id=\"setvalue\" ref=\".\"></fx-setvalue>'\n}\n `;\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${html}\n `;\n }\n\n static get observedAttributes() {\n return ['url', 'heartbeat', 'message-format'];\n }\n\n connectedCallback() {\n if (this.hasAttribute('url')) {\n this._url = this.getAttribute('url');\n }\n if (this.hasAttribute('heartbeat')) {\n this._heartbeatInterval = parseInt(this.getAttribute('heartbeat'));\n this._setupHeartbeat();\n }\n if (this.hasAttribute('message-format')) {\n this._messageFormat = this.getAttribute('message-format');\n }\n\n this._render();\n\n this.getOwnerForm().addEventListener('model-construct-done', e => {\n console.log('Fore model ready');\n this._connect();\n\n this.evalInContext();\n });\n }\n\n disconnectedCallback() {\n this._disconnect();\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n switch (name) {\n case 'url':\n this._url = newValue;\n this._connect();\n break;\n case 'heartbeat':\n this._heartbeatInterval = parseInt(newValue);\n this._setupHeartbeat();\n break;\n case 'messageformat':\n this._messageFormat = newValue;\n break;\n default:\n // Do nothing for other attributes\n break;\n }\n }\n\n send(data) {\n this.evalInContext();\n data = this.nodeset;\n if (this._socket && this._socket.readyState === WebSocket.OPEN) {\n let message;\n switch (this._messageFormat) {\n case 'json':\n message = JSON.stringify(data);\n break;\n case 'xml':\n message = new XMLSerializer().serializeToString(data);\n break;\n case 'text':\n message = data.textContent;\n break;\n default:\n throw new Error(`Unsupported message format: ${this._messageFormat}`);\n }\n this._sendMessage(message);\n } else {\n throw new Error('WebSocket is not connected');\n }\n }\n\n _connect() {\n this._disconnect();\n if (this._url) {\n this._socket = new WebSocket(this._url);\n this._socket.addEventListener('open', this._onOpen.bind(this));\n this._socket.addEventListener('message', this._onMessage);\n this._socket.addEventListener('close', this._onClose.bind(this));\n }\n }\n\n _disconnect() {\n if (this._socket) {\n this._socket.removeEventListener('open', this._onOpen.bind(this));\n this._socket.removeEventListener('message', event => this._onMessage(event));\n this._socket.removeEventListener('close', this._onClose.bind(this));\n this._socket.close();\n this._socket = null;\n }\n if (this._heartbeatTimer) {\n clearInterval(this._heartbeatTimer);\n this._heartbeatTimer = null;\n }\n }\n\n _onOpen(event) {\n this.dispatchEvent(new CustomEvent('open', { detail: event }));\n }\n\n _onMessage(event) {\n let message;\n switch (this._messageFormat) {\n case 'json':\n message = JSON.parse(event.data);\n break;\n case 'xml':\n const parser = new DOMParser();\n message = parser.parseFromString(event.data, 'application/xml');\n this.getModelItem().value = message;\n FxModel.dataChanged = true;\n this.getModel().changed.push(this.modelItem);\n this.getModel().updateModel();\n this.getOwnerForm().refresh(true);\n break;\n case 'text':\n message = event.data;\n break;\n default:\n throw new Error(`Unsupported message format: ${this._messageFormat}`);\n }\n console.log('dispatching channel-message', message);\n\n Fore.dispatch(this, 'channel-message', { message });\n }\n\n _onClose(event) {\n this.dispatchEvent(new CustomEvent('close', { detail: event }));\n }\n\n _setupHeartbeat() {\n if (this._heartbeatInterval > 0) {\n if (this._heartbeatTimer) {\n clearInterval(this._heartbeatTimer);\n }\n this._heartbeatTimer = setInterval(() => {\n this._sendMessage('');\n }, this._heartbeatInterval);\n } else if (this._heartbeatTimer) {\n clearInterval(this._heartbeatTimer);\n this._heartbeatTimer = null;\n }\n }\n\n _sendMessage(message) {\n if (this._socket && this._socket.readyState === WebSocket.OPEN) {\n this._socket.send(message);\n }\n }\n\n static get _defaultHeartbeatInterval() {\n return 0;\n }\n\n static get _defaultMessageFormat() {\n return 'json';\n }\n\n get url() {\n return this._url;\n }\n\n set url(value) {\n this.setAttribute('url', value);\n }\n\n get heartbeat() {\n return this._heartbeatInterval;\n }\n\n set heartbeat(value) {\n this.setAttribute('heartbeat', value);\n }\n\n get messageformat() {\n return this._messageFormat;\n }\n\n set messageformat(value) {\n this.setAttribute('messageformat', value);\n }\n}\n\nif (!customElements.get('fx-connection')) {\n customElements.define('fx-connection', FxConnection);\n}\n","/*!\n * Toastify js 1.11.2\n * https://github.com/apvarun/toastify-js\n * @license MIT licensed\n *\n * Copyright (C) 2018 Varun A P\n */\n\n/**\n * Options used for Toastify\n * @typedef {Object} ToastifyConfigurationObject\n * @property {string} text - Message to be displayed in the toast\n * @property {Element} node - Provide a node to be mounted inside the toast. node takes higher precedence over text\n * @property {number} duration - Duration for which the toast should be displayed. -1 for permanent toast\n * @property {string|Element} selector - CSS ID Selector on which the toast should be added\n * @property {url} destination - URL to which the browser should be navigated on click of the toast\n * @property {boolean} newWindow - Decides whether the destination should be opened in a new window or not\n * @property {boolean} close - To show the close icon or not\n * @property {string} gravity - To show the toast from top or bottom\n * @property {string} position - To show the toast on left or right\n * @property {string} backgroundColor - Deprecated: Sets the background color of the toast\n * @property {url} avatar - Image/icon to be shown before text\n * @property {string} className - Ability to provide custom class name for further customization\n * @property {boolean} stopOnFocus - To stop timer when hovered over the toast (Only if duration is set)\n * @property {Function} callback - Invoked when the toast is dismissed\n * @property {Function} onClick - Invoked when the toast is clicked\n * @property {Object} offset - Ability to add some offset to axis\n * @property {boolean} escapeMarkup - Toggle the default behavior of escaping HTML markup\n * @property {Object} style - Use the HTML DOM style property to add styles to toast\n */\n\n\nclass Toastify {\n\n defaults = {\n oldestFirst: true,\n text: \"Toastify is awesome!\",\n node: undefined,\n duration: 3000,\n selector: undefined,\n callback: function() {},\n destination: undefined,\n newWindow: false,\n close: false,\n gravity: \"toastify-top\",\n positionLeft: false,\n position: \"\",\n backgroundColor: \"\",\n avatar: \"\",\n className: \"\",\n stopOnFocus: true,\n onClick: function() {},\n offset: { x: 0, y: 0 },\n escapeMarkup: true,\n style: { background: \"\" },\n };\n\n constructor(options) {\n /**\n * The version of Toastify\n * @type {string}\n * @public\n */\n this.version = \"1.11.2\";\n\n /**\n * The configuration object to configure Toastify\n * @type {ToastifyConfigurationObject}\n * @public\n */\n this.options = {};\n\n /**\n * The element that is the Toast\n * @type {Element}\n * @public\n */\n this.toastElement = null;\n\n /**\n * The root element that contains all the toasts\n * @type {Element}\n * @private\n */\n this._rootElement = document.body;\n\n this._init(options);\n }\n\n /**\n * Display the toast\n * @public\n */\n showToast() {\n // Creating the DOM object for the toast\n this.toastElement = this._buildToast();\n\n // Getting the root element to with the toast needs to be added\n if (typeof this.options.selector === \"string\") {\n this._rootElement = document.getElementById(this.options.selector);\n } else if (this.options.selector instanceof HTMLElement || this.options.selector instanceof ShadowRoot) {\n this._rootElement = this.options.selector;\n } else {\n this._rootElement = document.body;\n }\n\n // Validating if root element is present in DOM\n if (!this._rootElement) {\n throw \"Root element is not defined\";\n }\n\n // Adding the DOM element\n this._rootElement.insertBefore(this.toastElement, this._rootElement.firstChild);\n\n // Repositioning the toasts in case multiple toasts are present\n this._reposition();\n\n if (this.options.duration > 0) {\n this.toastElement.timeOutValue = window.setTimeout(\n () => {\n // Remove the toast from DOM\n this._removeElement(this.toastElement);\n },\n this.options.duration\n ); // Binding `this` for function invocation\n }\n\n // Supporting function chaining\n return this;\n }\n\n /**\n * Hide the toast\n * @public\n */\n hideToast() {\n if (this.toastElement.timeOutValue) {\n clearTimeout(this.toastElement.timeOutValue);\n }\n this._removeElement(this.toastElement);\n }\n\n /**\n * Init the Toastify class\n * @param {ToastifyConfigurationObject} options - The configuration object to configure Toastify\n * @param {string} [options.text=Hi there!] - Message to be displayed in the toast\n * @param {Element} [options.node] - Provide a node to be mounted inside the toast. node takes higher precedence over text\n * @param {number} [options.duration=3000] - Duration for which the toast should be displayed. -1 for permanent toast\n * @param {string} [options.selector] - CSS Selector on which the toast should be added\n * @param {url} [options.destination] - URL to which the browser should be navigated on click of the toast\n * @param {boolean} [options.newWindow=false] - Decides whether the destination should be opened in a new window or not\n * @param {boolean} [options.close=false] - To show the close icon or not\n * @param {string} [options.gravity=toastify-top] - To show the toast from top or bottom\n * @param {string} [options.position=right] - To show the toast on left or right\n * @param {string} [options.backgroundColor] - Sets the background color of the toast (To be deprecated)\n * @param {url} [options.avatar] - Image/icon to be shown before text\n * @param {string} [options.className] - Ability to provide custom class name for further customization\n * @param {boolean} [options.stopOnFocus] - To stop timer when hovered over the toast (Only if duration is set)\n * @param {Function} [options.callback] - Invoked when the toast is dismissed\n * @param {Function} [options.onClick] - Invoked when the toast is clicked\n * @param {Object} [options.offset] - Ability to add some offset to axis\n * @param {boolean} [options.escapeMarkup=true] - Toggle the default behavior of escaping HTML markup\n * @param {Object} [options.style] - Use the HTML DOM style property to add styles to toast\n * @private\n */\n _init(options) {\n\n // Setting defaults\n this.options = Object.assign(this.defaults, options);\n\n if (this.options.backgroundColor) {\n // This is being deprecated in favor of using the style HTML DOM property\n console.warn('DEPRECATION NOTICE: \"backgroundColor\" is being deprecated. Please use the \"style.background\" property.');\n }\n\n this.toastElement = null;\n\n this.options.gravity = options.gravity === \"bottom\" ? \"toastify-bottom\" : \"toastify-top\"; // toast position - top or bottom\n this.options.stopOnFocus = options.stopOnFocus === undefined ? true : options.stopOnFocus; // stop timeout on focus\n if(options.backgroundColor) {\n this.options.style.background = options.backgroundColor;\n }\n }\n\n /**\n * Build the Toastify element\n * @returns {Element}\n * @private\n */\n _buildToast() {\n // Validating if the options are defined\n if (!this.options) {\n throw \"Toastify is not initialized\";\n }\n\n // Creating the DOM object\n let divElement = document.createElement(\"div\");\n divElement.className = `toastify on ${this.options.className}`;\n\n // Positioning toast to left or right or center (default right)\n divElement.className += ` toastify-${this.options.position}`;\n\n // Assigning gravity of element\n divElement.className += ` ${this.options.gravity}`;\n\n // Loop through our style object and apply styles to divElement\n for (const property in this.options.style) {\n divElement.style[property] = this.options.style[property];\n }\n\n // Adding the toast message/node\n if (this.options.node && this.options.node.nodeType === Node.ELEMENT_NODE) {\n // If we have a valid node, we insert it\n divElement.appendChild(this.options.node)\n } else {\n if (this.options.escapeMarkup) {\n divElement.innerText = this.options.text;\n } else {\n divElement.innerHTML = this.options.text;\n }\n\n if (this.options.avatar !== \"\") {\n let avatarElement = document.createElement(\"img\");\n avatarElement.src = this.options.avatar;\n\n avatarElement.className = \"toastify-avatar\";\n\n if (this.options.position == \"left\") {\n // Adding close icon on the left of content\n divElement.appendChild(avatarElement);\n } else {\n // Adding close icon on the right of content\n divElement.insertAdjacentElement(\"afterbegin\", avatarElement);\n }\n }\n }\n\n // Adding a close icon to the toast\n if (this.options.close === true) {\n // Create a span for close element\n let closeElement = document.createElement(\"span\");\n closeElement.innerHTML = \"✖\";\n\n closeElement.className = \"toast-close\";\n\n // Triggering the removal of toast from DOM on close click\n closeElement.addEventListener(\n \"click\",\n (event) => {\n event.stopPropagation();\n this._removeElement(this.toastElement);\n window.clearTimeout(this.toastElement.timeOutValue);\n }\n );\n\n //Calculating screen width\n const width = window.innerWidth > 0 ? window.innerWidth : screen.width;\n\n // Adding the close icon to the toast element\n // Display on the right if screen width is less than or equal to 360px\n if ((this.options.position == \"left\") && width > 360) {\n // Adding close icon on the left of content\n divElement.insertAdjacentElement(\"afterbegin\", closeElement);\n } else {\n // Adding close icon on the right of content\n divElement.appendChild(closeElement);\n }\n }\n\n // Clear timeout while toast is focused\n if (this.options.stopOnFocus && this.options.duration > 0) {\n // stop countdown\n divElement.addEventListener(\n \"mouseover\",\n (event) => {\n window.clearTimeout(divElement.timeOutValue);\n }\n )\n // add back the timeout\n divElement.addEventListener(\n \"mouseleave\",\n () => {\n divElement.timeOutValue = window.setTimeout(\n () => {\n // Remove the toast from DOM\n this._removeElement(divElement);\n },\n this.options.duration\n )\n }\n )\n }\n\n // Adding an on-click destination path\n if (typeof this.options.destination !== \"undefined\") {\n divElement.addEventListener(\n \"click\",\n (event) => {\n event.stopPropagation();\n if (this.options.newWindow === true) {\n window.open(this.options.destination, \"_blank\");\n } else {\n window.location = this.options.destination;\n }\n }\n );\n }\n\n if (typeof this.options.onClick === \"function\" && typeof this.options.destination === \"undefined\") {\n divElement.addEventListener(\n \"click\",\n (event) => {\n event.stopPropagation();\n this.options.onClick();\n }\n );\n }\n\n // Adding offset\n if (typeof this.options.offset === \"object\") {\n\n const x = this._getAxisOffsetAValue(\"x\", this.options);\n const y = this._getAxisOffsetAValue(\"y\", this.options);\n\n const xOffset = this.options.position == \"left\" ? x : `-${x}`;\n const yOffset = this.options.gravity == \"toastify-top\" ? y : `-${y}`;\n\n divElement.style.transform = `translate(${xOffset},${yOffset})`;\n\n }\n\n // Returning the generated element\n return divElement;\n }\n\n /**\n * Remove the toast from the DOM\n * @param {Element} toastElement\n */\n _removeElement(toastElement) {\n // Hiding the element\n toastElement.className = toastElement.className.replace(\" on\", \"\");\n\n // Removing the element from DOM after transition end\n window.setTimeout(\n () => {\n // remove options node if any\n if (this.options.node && this.options.node.parentNode) {\n this.options.node.parentNode.removeChild(this.options.node);\n }\n\n // Remove the element from the DOM, only when the parent node was not removed before.\n if (toastElement.parentNode) {\n toastElement.parentNode.removeChild(toastElement);\n }\n\n // Calling the callback function\n this.options.callback.call(toastElement);\n\n // Repositioning the toasts again\n this._reposition();\n },\n 400\n ); // Binding `this` for function invocation\n }\n\n /**\n * Position the toast on the DOM\n * @private\n */\n _reposition() {\n\n // Top margins with gravity\n let topLeftOffsetSize = {\n top: 15,\n bottom: 15,\n };\n let topRightOffsetSize = {\n top: 15,\n bottom: 15,\n };\n let offsetSize = {\n top: 15,\n bottom: 15,\n };\n\n // Get all toast messages that have been added to the container (selector)\n let allToasts = this._rootElement.querySelectorAll(\".toastify\");\n\n let classUsed;\n\n // Modifying the position of each toast element\n for (let i = 0; i < allToasts.length; i++) {\n // Getting the applied gravity\n if (allToasts[i].classList.contains(\"toastify-top\") === true) {\n classUsed = \"toastify-top\";\n } else {\n classUsed = \"toastify-bottom\";\n }\n\n let height = allToasts[i].offsetHeight;\n classUsed = classUsed.substr(9, classUsed.length - 1)\n // Spacing between toasts\n let offset = 15;\n\n let width = window.innerWidth > 0 ? window.innerWidth : screen.width;\n\n // Show toast in center if screen with less than or equal to 360px\n if (width <= 360) {\n // Setting the position\n allToasts[i].style[classUsed] = `${offsetSize[classUsed]}px`;\n\n offsetSize[classUsed] += height + offset;\n } else {\n if (allToasts[i].classList.contains(\"toastify-left\") === true) {\n // Setting the position\n allToasts[i].style[classUsed] = `${topLeftOffsetSize[classUsed]}px`;\n\n topLeftOffsetSize[classUsed] += height + offset;\n } else {\n // Setting the position\n allToasts[i].style[classUsed] = `${topRightOffsetSize[classUsed]}px`;\n\n topRightOffsetSize[classUsed] += height + offset;\n }\n }\n }\n }\n\n /**\n * Helper function to get offset\n * @param {string} axis - 'x' or 'y'\n * @param {ToastifyConfigurationObject} options - The options object containing the offset object\n */\n _getAxisOffsetAValue(axis, options) {\n\n if (options.offset[axis]) {\n if (isNaN(options.offset[axis])) {\n return options.offset[axis];\n } else {\n return `${options.offset[axis]}px`;\n }\n }\n\n return '0px';\n\n }\n\n }\n\n\n // Returning the Toastify function to be assigned to the window object/module\n function StartToastifyInstance(options) {\n return new Toastify(options);\n }\n\n export default StartToastifyInstance;\n","import Toastify from 'toastify-js/src/toastify-es';\n\n/**\n *\n * Wrapper component for toastify-js - https://github.com/apvarun/toastify-js\n *\n * @event jinn-toast - will show the toast with text passed in event\n */\nexport class JinnToast extends HTMLElement {\n\n static get properties() {\n return {\n avatar: {type: String},\n backgroundColor: {type: String},\n callback: {type: String},\n classProp: {type: String},\n close: {type: Boolean},\n destination: {type: String},\n duration: {type: Number},\n escapeMarkup: {type: Boolean},\n gravity: {type: String},\n newWindow: {type: Boolean},\n oldestFirst: {type: Boolean},\n position: {type: String},\n selector: {type: String},\n stopOnFocus: {type: Boolean},\n text: {type: String}\n };\n }\n\n constructor() {\n super();\n this.attachShadow({mode: 'open'});\n }\n\n _initVar(name, defaultVal) {\n return this.hasAttribute(name) ? this.getAttribute(name) : defaultVal;\n }\n\n connectedCallback() {\n this.avatar = this._initVar('avatar', '');\n this.backgroundColor = this._initVar('backgroundColor', '');\n this.callback = this._initVar('callback', {});\n this.classProp = this._initVar('data-class', '');\n this.close = (this._initVar('close', false)) === 'true';\n this.destination = this._initVar('destination', undefined);\n this.duration = Number(this._initVar('duration', 3000));\n this.escapeMarkup = (this._initVar('escapeMarkup', 'true')) === 'true';\n this.gravity = this._initVar('gravity', 'top');\n this.newWindow = (this._initVar('newWindow', 'false')) === 'true';\n this.offSet = this._initVar('offSet', {});\n this.oldestFirst = (this._initVar('oldestFirst', 'true')) === 'true';\n this.position = this._initVar('position', 'right');\n // this.selector = this._initVar('selector','');\n this.stopOnFocus = (this._initVar('stopOnFocus', 'true')) === 'true';\n this.text = this._initVar('text', '');\n\n const style = `\n :host{\n display:none;\n }\n `;\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${this.renderHTML}\n `;\n\n /**\n * trigger toast via @jinn-toast events\n */\n this.addEventListener('jinn-toast', (ev) =>{\n this.showToast(ev.detail.text);\n });\n\n }\n\n disconnectedCallback(){\n this.removeEventListener('jinn-toast',this.showToast);\n }\n\n showToast(text){\n new Toastify({\n avatar: this.avatar,\n // backgroundColor:this.backgroundColor,\n // callback: this.callback,\n className:this.classProp,\n close: this.close,\n destination: this.destination,\n duration: this.duration,\n escapeMarkup: this.escapeMarkup,\n gravity: this.gravity,\n newWindow: false,\n offset:this.offset,\n oldestFirst: this.oldestFirst,\n position: this.position,\n node: this.shadowRoot,\n stopOnFocus: this.stopOnFocus,\n text,\n }).showToast();\n\n }\n\n renderHTML() {\n return `\n <slot></slot>\n `;\n }\n\n}\nif (!customElements.get('jinn-toast')) {\n window.customElements.define('jinn-toast', JinnToast);\n}\n","import getInScopeContext from './getInScopeContext.js';\n\nexport const withDraggability = (superclass, isAlsoDraggable) =>\n /**\n * Adds draggability to generic components.\n * Add the `dnd` attribute to make it draggable\n */\n class DraggableComponent extends superclass {\n static get properties() {\n return {\n ...superclass.properties,\n dnd: {\n type: Boolean,\n },\n };\n }\n\n constructor() {\n super();\n }\n\n connectedCallback() {\n this.drop = event => this._drop(event);\n this.addEventListener('drop', this.drop);\n this.dragOver = event => this._dragOver(event);\n this.addEventListener('dragover', this.dragOver);\n this.dragLeave = event => this._dragLeave(event);\n this.addEventListener('dragleave', this.dragLeave);\n this.dragEnd = event => this._dragEnd(event);\n this.addEventListener('dragend', this._dragEnd);\n }\n\n disconnectedCallback() {\n this.removeEventListener('drop', this.drop);\n this.removeEventListener('dragover', this.dragOver);\n this.removeEventListener('dragleave', this.dragLeave);\n this.removeEventListener('dragend', this.dragEnd);\n }\n\n _dragOver(event) {\n //\t\tconsole.log('dragover ',this);\n //\t\tconsole.log('event target ',event.target);\n if (event.target.classList.contains('no-drop')) {\n return false;\n }\n event.stopPropagation();\n const repeatItem = event.target.closest('fx-repeatitem');\n if (!this.getOwnerForm().draggedItem) {\n // Not dragging\n return;\n }\n // Only allow drag and drop in similar repeats\n if (this === this.getOwnerForm().draggedItem) {\n // Ignore: drop on itself\n return;\n }\n const { draggedItem } = this.getOwnerForm();\n\n if (this.accepts(draggedItem)) {\n this.classList.remove('no-drop');\n } else {\n this.classList.add('no-drop');\n }\n\n const thisClosestRepeat = this.hasAttribute('id') ? this : this.closest('[id]');\n const draggingClosestRepeat = draggedItem.hasAttribute('id')\n ? draggedItem\n : draggedItem.closest('[id]');\n if (thisClosestRepeat?.id === draggingClosestRepeat?.id) {\n if (repeatItem !== this.getOwnerForm().draggedItem) {\n this.classList.add('drag-over');\n }\n\n event.preventDefault();\n }\n }\n\n _dragLeave(event) {\n this.classList.remove('drag-over');\n this.classList.remove('no-drop');\n }\n\n _dragEnd(event) {\n const item = this.getOwnerForm().draggedItem;\n if (item.getAttribute('drop-action') === 'copy') {\n item.remove();\n }\n this.classList.remove('drag-over');\n //\t\tevent.stopPropagation();\n }\n\n _getDataNode() {\n const dataNode = this.getOwnerForm().draggedItem?.getModelItem()?.node;\n if (!dataNode) {\n return null;\n }\n\n const { draggedItem } = this.getOwnerForm();\n const thisClosestRepeat = this.hasAttribute('id') ? this : this.closest('[id]');\n const draggingClosestRepeat = draggedItem.hasAttribute('id')\n ? draggedItem\n : draggedItem.closest('[id]');\n if (thisClosestRepeat?.id !== draggingClosestRepeat?.id) {\n // Moving between different repeats: this can make the items 'lost': placed into a\n // different set\n return null;\n }\n\n return dataNode;\n }\n\n accepts(draggedItem) {\n if (!this.hasAttribute('accept')) {\n return;\n }\n const accept = this.getAttribute('accept');\n const isAccepted = draggedItem.matches(accept);\n // console.log('accepted', isAccepted);\n return isAccepted;\n }\n\n _drop(event) {\n this.classList.remove('drag-over');\n event.stopPropagation();\n if (this.localName === 'fx-droptarget') {\n if (this.children.length !== 0) {\n console.log('we have to do something');\n }\n\n let { draggedItem } = this.getOwnerForm();\n\n if (draggedItem.getAttribute('drop-action') === 'copy') {\n draggedItem = draggedItem.cloneNode(true);\n }\n\n if (!this.accepts(draggedItem)) {\n this.classList.remove('no-drop');\n return;\n }\n if (draggedItem === this) {\n return;\n }\n if (draggedItem.localName === 'fx-droptarget') {\n // todo : this looks still a bit weak\n if (this.hasAttribute('drop-position')) {\n this.replaceChildren(draggedItem);\n event.preventDefault();\n return;\n }\n if (this.parentNode.lastElementChild === this) {\n this.parentNode.append(draggedItem);\n event.stopImmediatePropagation();\n // return;\n } else if (draggedItem === this.previousElementSibling) {\n // insertBefore of draggedItem before us would be a no-op: it is already before us.\n // Instead: insert _after_ us, so we can still do something!\n this.parentNode.insertBefore(draggedItem, this.nextElementSibling);\n } else {\n this.parentNode.insertBefore(draggedItem, this);\n }\n } else {\n this.appendChild(draggedItem);\n }\n\n /*\n\t\t\tif(this.hasAttribute('drop-position')){\n\t\t\t\tif(this.getAttribute('drop-position') === 'before'){\n\t\t\t\t\tthis.parentNode.insertBefore(draggedItem,this);\n\t\t\t\t} else {\n\t\t\t\t\tthis.parentNode.append(draggedItem);\n\t\t\t\t}\n\t\t\t}else{\n\t\t\t\tthis.replaceChildren(draggedItem);\n\t\t\t}\n*/\n event.preventDefault();\n this.getOwnerForm().getModel().updateModel();\n this.getOwnerForm().refresh(true);\n return;\n }\n const dataNode = this._getDataNode();\n if (!dataNode) {\n return;\n }\n\n if (this.localName === 'fx-repeat') {\n // We are sure we'll handle this event!\n event.preventDefault();\n // Dropping on repeat itself always means to *append* the dropped item\n\n let contextNode = this.nodeset;\n if (Array.isArray(contextNode) && !contextNode.length) {\n // Guess: just append it to the context node. Hope that the `ref` is actually a\n // child axis, like `ref=\"./item\"`. A ref like `./items/item` breaks.\n const context = getInScopeContext(this.getAttributeNode('ref') || this, this.ref);\n context.append(dataNode);\n } else {\n // Guess: just insert it after it to the context node. Hope that the `ref` is\n // actually listing siblings, like `ref=\"./item\"` or\n // `ref=\"./items/item\"`. `ref=\"descendant::item[@category='a']\"` breaks\n contextNode = contextNode[contextNode.length - 1];\n contextNode.after(dataNode);\n }\n } else if (this.localName === 'fx-repeatitem') {\n const repeatItemNode = this.getModelItem().node;\n\n if (repeatItemNode.previousSibling === dataNode) {\n // moving before will make it do nothing, move after\n repeatItemNode.after(dataNode);\n } else {\n repeatItemNode.before(dataNode);\n }\n }\n\n // Note: full refresh needed since multiple model items may be affected.\n // TODO: Leverage the changedPaths trick\n this.getOwnerForm().getModel().updateModel();\n this.getOwnerForm().refresh(true);\n }\n };\n","import { Fore } from '../fore.js';\nimport { evaluateXPath } from '../xpath-evaluation.js';\nimport getInScopeContext from '../getInScopeContext.js';\nimport { XPathUtil } from '../xpath-util.js';\nimport ForeElementMixin from '../ForeElementMixin.js';\nimport { withDraggability } from '../withDraggability.js';\n\n/**\n * `fx-repeat`\n *\n * Repeats its template for each node in its' bound nodeset.\n *\n * Template is a standard HTML `<template>` element. Once instanciated the template\n * is moved to the shadowDOM of the repeat for safe re-use.\n *\n *\n *\n * @customElement\n * @demo demo/todo.html\n *\n * todo: it should be seriously be considered to extend FxContainer instead but needs refactoring first.\n */\nexport class FxRepeatAttributes extends withDraggability(ForeElementMixin, false) {\n static get properties() {\n return {\n ...super.properties,\n index: {\n type: Number,\n },\n template: {\n type: Object,\n },\n focusOnCreate: {\n type: String,\n },\n initDone: {\n type: Boolean,\n },\n repeatIndex: {\n type: Number,\n },\n repeatSize: {\n type: Number,\n },\n nodeset: {\n type: Array,\n },\n };\n }\n\n constructor() {\n super();\n this.ref = '';\n this.dataTemplate = [];\n this.isDraggable = null;\n this.focusOnCreate = '';\n this.initDone = false;\n this.repeatIndex = 1;\n this.nodeset = [];\n this.inited = false;\n this.host = {};\n this.index = 1;\n this.repeatSize = 0;\n this.attachShadow({ mode: 'open', delegatesFocus: true });\n }\n\n get repeatSize() {\n return this.querySelectorAll(':scope > .fx-repeatitem').length;\n }\n\n set repeatSize(size) {\n super.repeatSize = size;\n }\n\n setIndex(index) {\n // console.log('new repeat index ', index);\n this.index = index;\n const refd = this.querySelector('[data-ref]');\n const rItems = refd.querySelectorAll(':scope > *');\n this.applyIndex(rItems[this.index - 1]);\n }\n\n applyIndex(repeatItem) {\n this._removeIndexMarker();\n if (repeatItem) {\n repeatItem.setAttribute('repeat-index', '');\n }\n }\n\n get index() {\n return parseInt(this.getAttribute('index'), 10);\n }\n\n set index(idx) {\n this.setAttribute('index', idx);\n }\n\n _getRepeatedItems() {\n const refd = this.querySelector('[data-ref]');\n return refd.children;\n }\n\n async connectedCallback() {\n // console.log('connectedCallback',this);\n // this.display = window.getComputedStyle(this, null).getPropertyValue(\"display\");\n this.ref = this.getAttribute('ref');\n // this.ref = this._getRef();\n // console.log('### fx-repeat connected ', this.id);\n this.addEventListener('item-changed', e => {\n // console.log('handle index event ', e);\n const { item } = e.detail;\n const repeatedItems = this._getRepeatedItems();\n const idx = Array.from(repeatedItems).indexOf(item);\n this.applyIndex(repeatedItems[idx]);\n this.index = idx + 1;\n });\n // todo: review - this is just used by append action - event consolidation ?\n document.addEventListener('index-changed', e => {\n e.stopPropagation();\n if (!e.target === this) return;\n const { index } = e.detail;\n this.index = Number(index);\n this.applyIndex(this.children[index - 1]);\n });\n /*\n document.addEventListener('insert', e => {\n const nodes = e.detail.insertedNodes;\n this.index = e.detail.position;\n console.log('insert catched', nodes, this.index);\n });\n*/\n\n // if (this.getOwnerForm().lazyRefresh) {\n this.mutationObserver = new MutationObserver(mutations => {\n if (mutations[0].type === 'childList') {\n const added = mutations[0].addedNodes[0];\n if (added) {\n const instance = XPathUtil.resolveInstance(this, this.ref);\n const path = XPathUtil.getPath(added, instance);\n // this.dispatch('path-mutated',{'path':path,'nodeset':this.nodeset,'index': this.index});\n // this.index = index;\n // const prev = mutations[0].previousSibling.previousElementSibling;\n // const index = prev.index();\n // this.applyIndex(this.index -1);\n\n Fore.dispatch(this, 'path-mutated', { path, index: this.index });\n }\n }\n });\n // }\n this.getOwnerForm().registerLazyElement(this);\n\n const style = `\n :host{\n }\n .fade-out-bottom {\n -webkit-animation: fade-out-bottom 0.7s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;\n animation: fade-out-bottom 0.7s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;\n }\n .fade-out-bottom {\n -webkit-animation: fade-out-bottom 0.7s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;\n animation: fade-out-bottom 0.7s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;\n }\n `;\n const html = `\n <slot></slot>\n `;\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${html}\n `;\n\n // this.init();\n }\n\n async init() {\n // ### there must be a single 'template' child\n\n const inited = new Promise(resolve => {\n // console.log('##### repeat-attributes init ', this.id);\n // if(!this.inited) this.init();\n // does not use this.evalInContext as it is expecting a nodeset instead of single node\n this._evalNodeset();\n // console.log('##### ',this.id, this.nodeset);\n\n this._initTemplate();\n // this._initRepeatItems();\n\n this.setAttribute('index', this.index);\n this.inited = true;\n resolve('done');\n });\n\n return inited;\n }\n\n _getRef() {\n return this.getAttribute('ref');\n }\n\n /**\n * repeat has no own modelItems\n * @private\n */\n _evalNodeset() {\n // const inscope = this.getInScopeContext();\n const inscope = getInScopeContext(this.getAttributeNode('ref') || this, this.ref);\n // console.log('##### inscope ', inscope);\n // console.log('##### ref ', this.ref);\n // now we got a nodeset and attach MutationObserver to it\n\n if (this.mutationObserver && inscope.nodeName) {\n this.mutationObserver.observe(inscope, {\n childList: true,\n subtree: true,\n });\n }\n\n const rawNodeset = evaluateXPath(this.ref, inscope, this);\n if (rawNodeset.length === 1 && Array.isArray(rawNodeset[0])) {\n // This XPath likely returned an XPath array. Just collapse to that array\n this.nodeset = rawNodeset[0];\n return;\n }\n this.nodeset = rawNodeset;\n }\n\n async refresh(force) {\n if (!this.inited) this.init();\n this._evalNodeset();\n\n let repeatItems = this.querySelectorAll('.fx-repeatitem');\n let repeatItemCount = repeatItems.length;\n\n let nodeCount = 1;\n if (Array.isArray(this.nodeset)) {\n nodeCount = this.nodeset.length;\n }\n\n // const contextSize = this.nodeset.length;\n const contextSize = nodeCount;\n // todo: review - cant the context really never be smaller than the repeat count?\n // todo: this code can be deprecated probably but check first\n if (contextSize < repeatItemCount) {\n for (let position = repeatItemCount; position > contextSize; position -= 1) {\n // remove repeatitem\n const itemToRemove = repeatItems[position - 1];\n itemToRemove.parentNode.removeChild(itemToRemove);\n this.getOwnerForm().unRegisterLazyElement(itemToRemove);\n // this._fadeOut(itemToRemove);\n // Fore.fadeOutElement(itemToRemove)\n this.getOwnerForm().someInstanceDataStructureChanged = true;\n }\n }\n\n if (contextSize > repeatItemCount) {\n for (let position = repeatItemCount + 1; position <= contextSize; position += 1) {\n // add new repeatitem\n\n const clonedTemplate = this._clone();\n if (!clonedTemplate) return;\n\n // ### cloned templates are always appended to the binding element - the one having the data-ref\n const bindingElement = this.querySelector('[data-ref]');\n bindingElement.appendChild(clonedTemplate);\n clonedTemplate.classList.add('fx-repeatitem');\n clonedTemplate.setAttribute('index', position);\n\n clonedTemplate.addEventListener('click', this._dispatchIndexChange);\n // this.addEventListener('focusin', this._handleFocus);\n clonedTemplate.addEventListener('focusin', this._dispatchIndexChange);\n\n // this._initVariables(clonedTemplate);\n\n // newItem.nodeset = this.nodeset[position - 1];\n // newItem.index = position;\n this.getOwnerForm().someInstanceDataStructureChanged = true;\n }\n }\n\n // ### update nodeset of repeatitems\n repeatItems = this.querySelectorAll(':scope > .fx-repeatitem');\n repeatItemCount = repeatItems.length;\n\n for (let position = 0; position < repeatItemCount; position += 1) {\n const item = repeatItems[position];\n this.getOwnerForm().registerLazyElement(item);\n\n if (item.nodeset !== this.nodeset[position]) {\n item.nodeset = this.nodeset[position];\n }\n }\n\n // Fore.refreshChildren(clone,true);\n const fore = this.getOwnerForm();\n if (!fore.lazyRefresh || force) {\n Fore.refreshChildren(this, force);\n }\n // this.style.display = 'block';\n // this.style.display = this.display;\n this.setIndex(this.index);\n }\n\n _dispatchIndexChange() {\n this.dispatchEvent(\n new CustomEvent('item-changed', {\n composed: false,\n bubbles: true,\n detail: { item: this, index: this.index },\n }),\n );\n }\n\n // eslint-disable-next-line class-methods-use-this\n _fadeOut(el) {\n el.style.opacity = 1;\n\n (function fade() {\n // eslint-disable-next-line no-cond-assign\n if ((el.style.opacity -= 0.1) < 0) {\n el.style.display = 'none';\n } else {\n requestAnimationFrame(fade);\n }\n })();\n }\n\n // eslint-disable-next-line class-methods-use-this\n _fadeIn(el) {\n if (!el) return;\n\n el.style.opacity = 0;\n el.style.display = this.display;\n\n (function fade() {\n // setTimeout(() => {\n let val = parseFloat(el.style.opacity);\n // eslint-disable-next-line no-cond-assign\n if (!((val += 0.1) > 1)) {\n el.style.opacity = val;\n requestAnimationFrame(fade);\n }\n // }, 40);\n })();\n }\n\n async _initTemplate() {\n // const defaultSlot = this.shadowRoot.querySelector('slot');\n // todo: this is still weak - should handle that better maybe by an explicit slot?\n // this.template = this.firstElementChild;\n this.template = this.querySelector('template');\n\n /*\n if (this.template === null) {\n // console.error('### no template found for this repeat:', this.id);\n // todo: catch this on form element\n this.dispatchEvent(\n new CustomEvent('no-template-error', {\n composed: true,\n bubbles: true,\n detail: { message: `no template found for repeat:${this.id}` },\n }),\n );\n }\n*/\n if (!this.template) {\n return;\n }\n\n this.shadowRoot.appendChild(this.template);\n }\n\n _initVariables(newRepeatItem) {\n const inScopeVariables = new Map(this.inScopeVariables);\n newRepeatItem.setInScopeVariables(inScopeVariables);\n (function registerVariables(node) {\n for (const child of node.children) {\n if ('setInScopeVariables' in child) {\n child.setInScopeVariables(inScopeVariables);\n }\n registerVariables(child);\n }\n })(newRepeatItem);\n }\n\n _clone() {\n this.template = this.shadowRoot.querySelector('template');\n if (!this.template) return;\n return this.template.content.firstElementChild.cloneNode(true);\n }\n\n _removeIndexMarker() {\n const refd = this.querySelector('[data-ref]');\n Array.from(refd.children).forEach(item => {\n item.removeAttribute('repeat-index');\n });\n }\n\n setInScopeVariables(inScopeVariables) {\n // Repeats are interesting: the variables should be scoped per repeat item, they should not be\n // able to see the variables in adjacent repeat items!\n this.inScopeVariables = new Map(inScopeVariables);\n }\n}\n\nif (!customElements.get('fx-repeat-attributes')) {\n window.customElements.define('fx-repeat-attributes', FxRepeatAttributes);\n}\n","import { Fore } from './fore.js';\nimport './fx-instance.js';\nimport { FxModel } from './fx-model.js';\nimport '@jinntec/jinn-toast';\nimport {\n evaluateXPathToBoolean,\n evaluateXPathToNodes,\n evaluateXPathToFirstNode,\n evaluateXPathToString,\n} from './xpath-evaluation.js';\nimport getInScopeContext from './getInScopeContext.js';\nimport { XPathUtil } from './xpath-util.js';\nimport { FxRepeatAttributes } from './ui/fx-repeat-attributes.js';\nimport { ModelItem } from './modelitem.js';\n\n/**\n * Makes the dirty state of the form.\n *\n * Clean when there are no changes yet or all is submitted,\n * Dirty when there are unsaved changes.\n *\n * We might need a 'saving' state later\n */\nconst dirtyStates = {\n CLEAN: 'clean',\n DIRTY: 'dirty',\n};\n\n/**\n * Main class for Fore.Outermost container element for each Fore application.\n *\n * Root element for Fore. Kicks off initialization and displays messages.\n *\n * fx-fore is the outermost container for each form. A form can have exactly one model\n * with arbitrary number of instances.\n *\n * Main responsibilities are initialization and updating of model and instances, update of UI (refresh) and global messaging.\n *\n * @event compute-exception - dispatched in case the dependency graph is circular\n * @event refresh-done - dispatched after a refresh() run\n * @event ready - dispatched after Fore has fully been initialized\n * @event error - dispatches error when template expression fails to evaluate\n *\n * @ts-check\n */\nexport class FxFore extends HTMLElement {\n static outermostHandler = null;\n\n static draggedItem = null;\n\n static get properties() {\n return {\n /**\n * wether to create nodes that are missing in the loaded data and\n * auto-create nodes when there's a binding found in the UI.\n */\n createNodes: {\n type: Boolean,\n },\n /**\n * ignore certain nodes for template expression search\n */\n ignoreExpressions: {\n type: String,\n },\n /**\n * merge-partial\n */\n mergePartial: {\n type: Boolean,\n },\n /**\n * Setting this marker attribute will refresh the UI in a lazy fashion just updating elements being\n * in viewport.\n *\n * this feature is still experimental and should be used with caution and extra testing\n */\n lazyRefresh: {\n type: Boolean,\n },\n model: {\n type: Object,\n },\n ready: {\n type: Boolean,\n },\n strict: {\n type: Boolean,\n },\n /**\n *\n */\n validateOn: {\n type: String,\n },\n version: {\n type: String,\n },\n };\n }\n\n /**\n * attaches handlers for\n *\n * - `model-construct-done` to trigger the processing of the UI\n * - `message` - to display a message triggered by an fx-message action\n * - `error` - to display an error message\n * - 'compute-exception` - warn about circular dependencies in graph\n */\n constructor() {\n super();\n this.version = '[VI]Version: {version} - built on {date}[/VI]';\n\n this.model = {};\n this.inited = false;\n // this.addEventListener('model-construct-done', this._handleModelConstructDone);\n // todo: refactoring - these should rather go into connectedcallback\n this.addEventListener('message', this._displayMessage);\n // this.addEventListener('error', this._displayError);\n this.addEventListener('error', this._logError);\n this.addEventListener('warn', this._displayWarning);\n // this.addEventListener('log', this._logError);\n window.addEventListener('compute-exception', e => {\n console.error('circular dependency: ', e);\n });\n\n this.ready = false;\n this.storedTemplateExpressionByNode = new Map();\n\n // Stores the outer most action handler. If an action handler is already running, all\n // updates are included in that one\n this.outermostHandler = null;\n\n this.copiedElements = new WeakSet();\n\n this.dirtyState = dirtyStates.CLEAN;\n this.showConfirmation = false;\n\n const style = `\n :host {\n display: block;\n }\n :host ::slotted(fx-model){\n display:none;\n }\n\n #modalMessage .dialogActions{\n text-align:center;\n }\n .overlay {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background: rgba(0, 0, 0, 0.7);\n transition: all 500ms;\n visibility: hidden;\n opacity: 0;\n z-index:10;\n }\n .overlay.show {\n visibility: visible;\n opacity: 1;\n }\n\n .popup {\n margin: 70px auto;\n background: #fff;\n border-radius: 5px;\n width: 30%;\n position: relative;\n transition: all 5s ease-in-out;\n padding: 20px;\n\n }\n .popup h2 {\n margin-top: 0;\n width:100%;\n background:#eee;\n position:absolute;\n top:0;\n right:0;\n left:0;\n height:40px;\n border-radius: 5px;\n\n }\n .popup .close {\n position: absolute;\n top: 3px;\n right: 10px;\n transition: all 200ms;\n font-size: 30px;\n font-weight: bold;\n text-decoration: none;\n color: #333;\n }\n .popup .close:focus{\n outline:none;\n }\n\n .popup .close:hover {\n color: #06D85F;\n }\n #messageContent{\n margin-top:40px;\n }\n .warning{\n background:orange;\n }\n `;\n\n const html = `\n<!-- <slot name=\"errors\"></slot> -->\n <jinn-toast id=\"message\" gravity=\"bottom\" position=\"left\"></jinn-toast>\n <jinn-toast id=\"sticky\" gravity=\"bottom\" position=\"left\" duration=\"-1\" close=\"true\" data-class=\"sticky-message\"></jinn-toast>\n <jinn-toast id=\"error\" text=\"error\" duration=\"-1\" data-class=\"error\" close=\"true\" position=\"right\" gravity=\"top\" escape-markup=\"false\"></jinn-toast>\n <jinn-toast id=\"warn\" text=\"warning\" duration=\"5000\" data-class=\"warning\" position=\"left\" gravity=\"top\"></jinn-toast>\n <slot id=\"default\"></slot>\n <slot name=\"messages\"></slot>\n <div id=\"modalMessage\" class=\"overlay\">\n <div class=\"popup\">\n <h2></h2>\n <a class=\"close\" href=\"#\" onclick=\"event.target.parentNode.parentNode.classList.remove('show')\" autofocus>×</a>\n <div id=\"messageContent\"></div>\n </div>\n </div>\n <slot name=\"event\"></slot>\n `;\n\n this.attachShadow({ mode: 'open' });\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${html}\n `;\n\n this.toRefresh = [];\n this.initialRun = true;\n this._scanForNewTemplateExpressionsNextRefresh = false;\n this.repeatsFromAttributesCreated = false;\n this.validateOn = this.hasAttribute('validate-on')\n ? this.getAttribute('validate-on')\n : 'update';\n // this.mergePartial = this.hasAttribute('merge-partial')? true:false;\n this.mergePartial = false;\n this.createNodes = this.hasAttribute('create-nodes') ? true : false;\n }\n\n connectedCallback() {\n this.style.visibility = 'hidden';\n console.time('init');\n this.strict = !!this.hasAttribute('strict');\n /*\n document.addEventListener('ready', (e) =>{\n if(e.target !== this){\n // e.preventDefault();\n console.log('>>> e', e);\n console.log('event this', this);\n // console.log('event eventPhase', e.eventPhase);\n // console.log('event cancelable', e.cancelable);\n console.log('event target', e.target);\n console.log('event composed', e.composedPath());\n console.log('<<< event stopping');\n e.stopPropagation();\n }else{\n console.log('event proceed', this);\n }\n // e.stopImmediatePropagation();\n },true);\n */\n this.ignoreExpressions = this.hasAttribute('ignore-expressions')\n ? this.getAttribute('ignore-expressions')\n : null;\n\n this.lazyRefresh = this.hasAttribute('refresh-on-view');\n if (this.lazyRefresh) {\n const options = {\n root: null,\n rootMargin: '0px',\n threshold: 0.3,\n };\n this.intersectionObserver = new IntersectionObserver(this.handleIntersect, options);\n }\n\n this.src = this.hasAttribute('src') ? this.getAttribute('src') : null;\n if (this.src) {\n this._loadFromSrc();\n return;\n }\n\n this._injectDevtools();\n\n const slot = this.shadowRoot.querySelector('slot#default');\n slot.addEventListener('slotchange', async event => {\n // preliminary addition for auto-conversion of non-prefixed element into prefixed elements. See fore.js\n // console.log(`### <<<<< slotchange on '${this.id}' >>>>>`);\n if (this.inited) return;\n if (this.hasAttribute('convert')) {\n this.replaceWith(Fore.copyDom(this));\n // Fore.copyDom(this);\n return;\n }\n\n if (this.ignoreExpressions) {\n this.ignoredNodes = Array.from(this.querySelectorAll(this.ignoreExpressions));\n }\n\n const children = event.target.assignedElements();\n let modelElement = children.find(\n modelElem => modelElem.nodeName.toUpperCase() === 'FX-MODEL',\n );\n if (!modelElement) {\n const generatedModel = document.createElement('fx-model');\n this.appendChild(generatedModel);\n modelElement = generatedModel;\n // We are going to get a new slotchange event immediately, because we changed a slot.\n // so cancel this one.\n return;\n }\n if (!modelElement.inited) {\n console.info(\n `%cFore is processing fx-fore#${this.id}`,\n 'background:#64b5f6; color:white; padding:.5rem; display:inline-block; white-space: nowrap; border-radius:0.3rem;width:100%;',\n );\n\n const variables = new Map();\n (function registerVariables(node) {\n for (const child of node.children) {\n if ('setInScopeVariables' in child) {\n child.setInScopeVariables(variables);\n }\n registerVariables(child);\n }\n })(this);\n\n await modelElement.modelConstruct();\n this._handleModelConstructDone();\n }\n this.model = modelElement;\n\n this._createRepeatsFromAttributes();\n this.inited = true;\n });\n this.addEventListener('path-mutated', () => {\n this.someInstanceDataStructureChanged = true;\n });\n this.addEventListener('refresh', () => {\n this.refresh(true);\n });\n\n if (this.hasAttribute('show-confirmation')) {\n this.showConfirmation = true;\n }\n }\n\n _injectDevtools() {\n if (this.ownerDocument.querySelector('fx-devtools')) {\n // There's already a devtools, so we can ignore this one.\n // One devtools can focus multiple fore elements\n return;\n }\n const { search } = window.location;\n const urlParams = new URLSearchParams(search);\n if (urlParams.has('inspect')) {\n const devtools = document.createElement('fx-devtools');\n document.body.appendChild(devtools);\n }\n if (urlParams.has('lens')) {\n const lens = document.createElement('fx-lens');\n document.body.appendChild(lens);\n lens.setAttribute('open', 'open');\n }\n }\n\n /**\n * Add a model item to the refresh list\n *\n * @param {import('./modelitem.js').ModelItem} modelItem\n * @returns {void}\n */\n addToRefresh(modelItem) {\n const found = this.toRefresh.find(mi => mi.path === modelItem.path);\n if (!found) {\n this.toRefresh.push(modelItem);\n }\n }\n\n /**\n * Raise a flag that there might be new template expressions under some node. This happens with\n * repeats updating (new repeat items can have new template expressions) or switches changing their case (new case = new raw HTML)\n */\n scanForNewTemplateExpressionsNextRefresh() {\n // TODO: also ask for the root of any new HTML: this can prevent some very deep queries.\n this._scanForNewTemplateExpressionsNextRefresh = true;\n }\n\n markAsClean() {\n this.addEventListener(\n 'value-changed',\n () => {\n this.dirtyState = dirtyStates.DIRTY;\n },\n { once: true },\n );\n this.dirtyState = dirtyStates.CLEAN;\n }\n\n /**\n * loads a Fore from an URL given by `src`.\n *\n * Will extract the `fx-fore` element from that target file and use and replace current `fx-fore` element with the loaded one.\n * @private\n */\n async _loadFromSrc() {\n // console.log('########## loading Fore from ', this.src, '##########');\n await Fore.loadForeFromSrc(this, this.src, 'fx-fore');\n }\n\n /**\n * refreshes the UI by using IntersectionObserver API. This is the handler being called\n * by the observer whenever elements come into / move out of viewport.\n * @param entries\n * @param observer\n */\n handleIntersect(entries, observer) {\n // console.time('refreshLazy');\n\n entries.forEach(entry => {\n const { target } = entry;\n\n const fore = Fore.getFore(target);\n if (fore.initialRun) return;\n\n if (entry.isIntersecting) {\n // console.log('in view', entry);\n // console.log('repeat in view entry', entry.target);\n // const target = entry.target;\n // if(target.hasAttribute('refresh-on-view')){\n target.classList.add('loaded');\n // }\n\n // todo: too restrictive here? what if target is a usual html element? shouldn't it refresh downwards?\n if (typeof target.refresh === 'function') {\n // console.log('refreshing target', target);\n target.refresh(target, true);\n } else {\n // console.log('refreshing children', target);\n Fore.refreshChildren(target, true);\n }\n }\n });\n entries[0].target.getOwnerForm().dispatchEvent(new CustomEvent('refresh-done'));\n\n // console.timeEnd('refreshLazy');\n }\n\n evaluateToNodes(xpath, context) {\n return evaluateXPathToNodes(xpath, context, this);\n }\n\n disconnectedCallback() {\n this.removeEventListener('dragstart', this.dragstart);\n /*\n this.removeEventListener('model-construct-done', this._handleModelConstructDone);\n this.removeEventListener('message', this._displayMessage);\n this.removeEventListener('error', this._displayError);\n this.storedTemplateExpressionByNode=null;\n this.shadowRoot = undefined;\n */\n }\n\n /**\n * refreshes the whole UI by visiting each bound element (having a 'ref' attribute) and applying the state of\n * the bound modelItem to the bound element.\n *\n *\n * force - boolean - if true will refresh all children disregarding toRefresh array\n *\n */\n async forceRefresh() {\n // console.time('refresh');\n // console.group('### forced refresh', this);\n\n Fore.refreshChildren(this, true);\n this._updateTemplateExpressions();\n this._scanForNewTemplateExpressionsNextRefresh = false; // reset\n this._processTemplateExpressions();\n\n // console.log(`### <<<<< refresh-done ${this.id} >>>>>`);\n\n Fore.dispatch(this, 'refresh-done', {});\n\n // console.groupEnd();\n // console.timeEnd('refresh');\n }\n\n // async refresh(force, changedPaths) {\n /**\n * @param {(boolean|{reason:'index-function'})} [force]fx-fore\n */\n async refresh(force) {\n /*\n\n if (!changedPaths) {\n changedPaths = this.toRefresh.map(item => item.path);\n } else {\n this.toRefresh.push(\n ...changedPaths\n .map(\n path =>\n this.getModel()\n .modelItems\n .find(item => item.path === path)\n )\n .filter(Boolean)\n );\n\n for(const changedPath of changedPaths) {\n for (const repeat of this.querySelectorAll('fx-repeat')) {\n if (repeat.closest('fx-fore') !== this) {\n continue;\n }\n\n if (repeat.touchedPaths && repeat.touchedPaths.has(changedPath)) {\n // Make a temporary model-item-like structure for this\n this.toRefresh.push({\n path: changedPath,\n boundControls: [repeat]\n });\n\n console.log('Found a repeat to update!!!', repeat)\n }\n }\n }\n }\n */\n if (this.isRefreshing) {\n return;\n }\n this.isRefreshing = true;\n // console.log(`### <<<<< refresh() on '${this.id}' >>>>>`);\n\n // refresh () {\n // ### refresh Fore UI elements\n // if (!this.initialRun && this.toRefresh.length !== 0) {\n if (!force && !this.initialRun && this.toRefresh.length !== 0) {\n // console.log('toRefresh', this.toRefresh);\n let needsRefresh = false;\n\n // ### after recalculation the changed modelItems are copied to 'toRefresh' array for processing\n this.toRefresh.forEach(modelItem => {\n // check if modelItem has boundControls - if so, call refresh() for each of them\n const controlsToRefresh = modelItem.boundControls;\n if (controlsToRefresh) {\n controlsToRefresh.forEach(ctrl => {\n ctrl.refresh(force);\n });\n }\n\n // ### check if other controls depend on current modelItem\n const { mainGraph } = this.getModel();\n if (mainGraph && mainGraph.hasNode(modelItem.path)) {\n const deps = this.getModel().mainGraph.dependentsOf(modelItem.path, false);\n // ### iterate dependant modelItems and refresh all their boundControls\n if (deps.length !== 0) {\n deps.forEach(dep => {\n // ### if changed modelItem has a 'facet' path we use the basePath that is the locationPath without facet name\n const basePath = XPathUtil.getBasePath(dep);\n const modelItemOfDep = this.getModel().modelItems.find(mip => mip.path === basePath);\n // ### refresh all boundControls\n modelItemOfDep.boundControls.forEach(control => {\n control.refresh(force);\n });\n });\n needsRefresh = true;\n }\n }\n });\n this.toRefresh = [];\n /*\n if (!needsRefresh) {\n console.log('no dependants to refresh');\n }\n */\n } else {\n // ### resetting visited state for controls to refresh\n /*\n const visited = this.parentNode.querySelectorAll('.visited');\n Array.from(visited).forEach(v =>{\n v.classList.remove('visited');\n });\n */\n\n if (this.inited) {\n Fore.refreshChildren(this, force);\n }\n // console.timeEnd('refreshChildren');\n }\n\n // ### refresh template expressions\n if (this.initialRun || this._scanForNewTemplateExpressionsNextRefresh) {\n this._updateTemplateExpressions();\n this._scanForNewTemplateExpressionsNextRefresh = false; // reset\n }\n\n this._processTemplateExpressions();\n\n // console.log('### <<<<< dispatching refresh-done - end of UI update cycle >>>>>');\n // this.dispatchEvent(new CustomEvent('refresh-done'));\n // this.initialRun = false;\n this.style.visibility = 'visible';\n console.info(\n `%crefresh-done on #${this.id}`,\n 'background:darkorange; color:black; padding:.5rem; display:inline-block; white-space: nowrap; border-radius:0.3rem;width:100%;',\n );\n\n Fore.dispatch(this, 'refresh-done', {});\n\n // this.isRefreshing = true;\n // this.parentNode.closest('fx-fore')?.refresh(false, changedPaths);\n\n const subFores = Array.from(this.querySelectorAll('fx-fore'));\n /*\n calling the parent to refresh causes errors and inconsistent state. Also it is questionable\n if a child should actually interact with its parent in this way.\n\n This only affects the refreshing NOT the data mutation itself which is happening as expected.\n\n Current solution is that a child that wants the parent to refresh must do so by adding an additional\n event handler that dispatches an event upwards and having a handler in the parent to refresh itself.\n\n So refreshed propagate downwards but not upwards which is at least an option to consider.\n\n if(this.parentNode.nodeType !== Node.DOCUMENT_FRAGMENT_NODE){\n // await this.parentNode.closest('fx-fore')?.refresh(false);\n }\n */\n for (const subFore of subFores) {\n // subFore.refresh(false, changedPaths);\n if (subFore.ready) {\n await subFore.refresh(force);\n }\n }\n this.isRefreshing = false;\n }\n\n /**\n * entry point for processing of template expression enclosed in '{}' brackets.\n *\n * Expressions are found with an XPath search. For each node an entry is added to the storedTemplateExpressionByNode map.\n *\n *\n * @private\n */\n _updateTemplateExpressions() {\n const search =\n \"(descendant-or-self::*!(text(), @*))[contains(., '{')][substring-after(., '{') => contains('}')][not(ancestor-or-self::fx-model)]\";\n\n const tmplExpressions = evaluateXPathToNodes(search, this, this);\n // console.log('template expressions found ', tmplExpressions);\n\n if (!this.storedTemplateExpressions) {\n this.storedTemplateExpressions = [];\n }\n\n // console.log('######### storedTemplateExpressions', this.storedTemplateExpressions.length);\n\n /*\n storing expressions and their nodes for re-evaluation\n */\n Array.from(tmplExpressions).forEach(node => {\n const ele = node.nodeType === Node.ATTRIBUTE_NODE ? node.ownerElement : node.parentNode;\n if (ele.closest('fx-fore') !== this) {\n // We found something in a sub-fore. Act like it's not there\n return;\n }\n if (this.storedTemplateExpressionByNode.has(node)) {\n // If the node is already known, do not process it twice\n return;\n }\n const expr = this._getTemplateExpression(node);\n\n // console.log('storedTemplateExpressionByNode', this.storedTemplateExpressionByNode);\n if (expr) {\n this.storedTemplateExpressionByNode.set(node, expr);\n }\n });\n // console.log('stored template expressions ', this.storedTemplateExpressionByNode);\n\n // TODO: Should we clean up nodes that existed but are now gone?\n this._processTemplateExpressions();\n }\n\n _processTemplateExpressions() {\n for (const node of Array.from(this.storedTemplateExpressionByNode.keys())) {\n if (node.nodeType === Node.ATTRIBUTE_NODE) {\n // Attribute nodes are not contained by the document, but their owner elements are!\n if (!XPathUtil.contains(this, node.ownerElement)) {\n this.storedTemplateExpressionByNode.delete(node);\n continue;\n }\n } else if (!XPathUtil.contains(this, node)) {\n // For all other nodes, if this `fore` element does not contain them, they are dead\n this.storedTemplateExpressionByNode.delete(node);\n continue;\n }\n this._processTemplateExpression({\n node,\n expr: this.storedTemplateExpressionByNode.get(node),\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n _processTemplateExpression(exprObj) {\n // console.log('processing template expression ', exprObj);\n\n const { expr } = exprObj;\n const { node } = exprObj;\n // console.log('expr ', expr);\n this.evaluateTemplateExpression(expr, node);\n }\n\n /**\n * evaluate a template expression on a node either text- or attribute node.\n * @param {string} expr The string to parse for expressions\n * @param {Node} node the node which will get updated with evaluation result\n */\n evaluateTemplateExpression(expr, node) {\n // ### do not evaluate template expressions with nonrelevant sections\n if (node.nodeType === Node.ATTRIBUTE_NODE && node.ownerElement.closest('[nonrelevant]')) return;\n if (node.nodeType === Node.TEXT_NODE && node.parentNode.closest('[nonrelevant]')) return;\n if (node.nodeType === Node.ELEMENT_NODE && node.closest('[nonrelevant]')) return;\n\n // if(node.closest('[nonrelevant]')) return;\n const replaced = expr.replace(/{[^}]*}/g, match => {\n if (match === '{}') return match;\n const naked = match.substring(1, match.length - 1);\n const inscope = getInScopeContext(node, naked);\n if (!inscope) {\n console.warn('no inscope context for expr', naked);\n const errNode =\n node.nodeType === Node.TEXT_NODE || node.nodeType === Node.ATTRIBUTE_NODE\n ? node.parentNode\n : node;\n return match;\n }\n // Templates are special: they use the namespace configuration from the place where they are\n // being defined\n const instanceId = XPathUtil.getInstanceId(naked);\n\n // If there is an instance referred\n const inst = instanceId\n ? this.getModel().getInstance(instanceId)\n : this.getModel().getDefaultInstance();\n\n try {\n return evaluateXPathToString(naked, inscope, node, null, inst);\n } catch (error) {\n console.warn('ignoring unparseable expr', error);\n\n return match;\n }\n });\n\n // Update to the new value. Don't do it though if nothing changed to prevent iframes or\n // images from reloading for example\n if (node.nodeType === Node.ATTRIBUTE_NODE) {\n const parent = node.ownerElement;\n if (parent.getAttribute(node.nodeName) !== replaced) {\n parent.setAttribute(node.nodeName, replaced);\n }\n } else if (node.nodeType === Node.TEXT_NODE) {\n if (node.textContent !== replaced) {\n node.textContent = replaced;\n }\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n _getTemplateExpression(node) {\n if (this.ignoredNodes) {\n if (node.nodeType === Node.ATTRIBUTE_NODE) {\n node = node.ownerElement;\n }\n const found = this.ignoredNodes.find(n => n.contains(node));\n if (found) return null;\n }\n if (node.nodeType === Node.ATTRIBUTE_NODE) {\n return node.value;\n }\n if (node.nodeType === Node.TEXT_NODE) {\n return node.textContent.trim();\n }\n return null;\n }\n\n /**\n * called when `model-construct-done` event is received to\n * start initing the UI.\n *\n * @private\n */\n _handleModelConstructDone() {\n this.markAsClean();\n\n if (this.showConfirmation) {\n window.addEventListener('beforeunload', event => {\n if (this.dirtyState === dirtyStates.DIRTY) {\n event.preventDefault();\n return true;\n }\n return false;\n });\n }\n this._initUI();\n }\n\n /**\n * If there's no instance element found in a fx-model during init it will construct\n * an instance from UI bindings.\n *\n * @returns {Promise<void>}\n * @private\n */\n async _lazyCreateInstance() {\n const model = this.querySelector('fx-model');\n\n // ##### lazy creation should NOT take place if there's a parent Fore using shared instances\n const parentFore =\n this.parentNode.nodeType !== Node.DOCUMENT_FRAGMENT_NODE\n ? this.parentNode.closest('fx-fore')\n : null;\n if (this.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n console.log('fragment', this.parentNode);\n }\n\n if (parentFore) {\n const shared = parentFore\n .getModel()\n .instances.filter(shared => shared.hasAttribute('shared'));\n if (shared.length !== 0) return;\n }\n\n // still need to catch just in case...\n try {\n if (model.instances.length === 0) {\n // console.log('### lazy creation of instance');\n const generatedInstance = document.createElement('fx-instance');\n model.appendChild(generatedInstance);\n\n const generated = document.implementation.createDocument(null, 'data', null);\n // const newData = this._generateInstance(this, generated.firstElementChild);\n this._generateInstance(this, generated.firstElementChild);\n generatedInstance.instanceData = generated;\n model.instances.push(generatedInstance);\n // console.log('generatedInstance ', this.getModel().getDefaultInstanceData());\n Fore.dispatch(this, 'instance-loaded', { instance: this });\n }\n } catch (e) {\n console.warn(\n 'lazyCreateInstance created an error attempting to create a document',\n e.message,\n );\n }\n }\n\n /**\n * @param {Element} start\n * @param {Element} parent\n */\n _generateInstance(start, parent) {\n if (start.hasAttribute('ref') && !Fore.isActionElement(start.nodeName)) {\n const ref = start.getAttribute('ref');\n\n if (ref.includes('/')) {\n // console.log('complex path to create ', ref);\n const steps = ref.split('/');\n steps.forEach(step => {\n // const generated = document.createElement(ref);\n parent = this._generateNode(parent, step, start);\n });\n } else {\n parent = this._generateNode(parent, ref, start);\n }\n }\n\n if (start.hasChildNodes()) {\n const list = start.children;\n for (let i = 0; i < list.length; i += 1) {\n this._generateInstance(list[i], parent);\n }\n }\n return parent;\n }\n\n // eslint-disable-next-line class-methods-use-this\n _generateNode(parent, step, start) {\n const generated = parent.ownerDocument.createElement(step);\n if (start.children.length === 0) {\n generated.textContent = start.textContent;\n }\n parent.appendChild(generated);\n parent = generated;\n return parent;\n }\n\n /*\n _createStep(){\n\n }\n */\n\n /*\n _generateInstance(start, parent) {\n if (start.hasAttribute('ref')) {\n const ref = start.getAttribute('ref');\n\n if(ref.includes('/')){\n console.log('complex path to create ', ref);\n const steps = ref.split('/');\n steps.forEach(step => {\n console.log('step ', step);\n\n });\n }\n\n // const generated = document.createElement(ref);\n const generated = parent.ownerDocument.createElement(ref);\n if (start.children.length === 0) {\n generated.textContent = start.textContent;\n }\n parent.appendChild(generated);\n parent = generated;\n }\n\n if (start.hasChildNodes()) {\n const list = start.children;\n for (let i = 0; i < list.length; i += 1) {\n this._generateInstance(list[i], parent);\n }\n }\n return parent;\n }\n */\n\n /**\n * Start the initialization of the UI by\n *\n * 1. checking if a instance needs to be generated\n * 2. attaching lazy loading intersection observers if `refresh-on-view` attributes are found\n * 3. doing a full refresh of the UI\n *\n * @returns {Promise<void>}\n * @private\n */\n async _initUI() {\n // console.log('### _initUI()');\n console.info(\n `%cinitUI #${this.id}`,\n 'background:lightblue; color:black; padding:.5rem; display:inline-block; white-space: nowrap; border-radius:0.3rem;width:100%;',\n );\n\n if (!this.initialRun) return;\n this.classList.add('initialRun');\n await this._lazyCreateInstance();\n\n /*\n const options = {\n root: null,\n rootMargin: '0px',\n threshold: 0.3,\n };\n */\n\n // First refresh should be forced\n if (this.createNodes) {\n this.initData();\n }\n await this.refresh(true);\n\n // this.style.display='block'\n this.classList.add('fx-ready');\n document.body.classList.add('fx-ready');\n\n this.ready = true;\n this.initialRun = false;\n // console.log('### >>>>> dispatching ready >>>>>', this);\n console.info(\n `%c #${this.id} is ready`,\n 'background:lightblue; color:black; padding:.5rem; display:inline-block; white-space: nowrap; border-radius:0.3rem;width:100%;',\n );\n\n // console.log(`### <<<<< ${this.id} ready >>>>>`);\n\n // console.log('### modelItems: ', this.getModel().modelItems);\n Fore.dispatch(this, 'ready', {});\n // console.log('dataChanged', FxModel.dataChanged);\n console.timeEnd('init');\n\n this.addEventListener('dragstart', this._handleDragStart);\n //\tthis.addEventListener('dragend', this._handleDragEnd);\n this.handleDrop = event => this._handleDrop(event);\n this.ownerDocument.body.addEventListener('drop', this.handleDrop);\n this.ownerDocument.body.addEventListener('dragover', e => {\n e.preventDefault();\n e.stopPropagation();\n e.dataTransfer.dropEffect = 'move';\n });\n }\n\n /**\n * @param {HTMLElement} root The root of the data initialization. fx-repeat overrides this when it makes new repeat items\n *\n */\n initData(root = this) {\n // const created = new Promise(resolve => {\n console.log('INIT');\n const boundControls = Array.from(root.querySelectorAll('[ref]:not(fx-model *),fx-repeatitem'));\n if (root.matches('fx-repeatitem')) {\n boundControls.unshift(root);\n }\n // console.log('_initD', boundControls);\n for (let i = 0; i < boundControls.length; i++) {\n const control = boundControls[i];\n if (!control.matches('fx-repeatitem')) {\n // Repeat items are dumb. They do not respond to evalInContext\n control.evalInContext();\n }\n let ownerDoc;\n if (control.nodeset !== null) {\n // console.log('Node exists', control.nodeset);\n continue;\n }\n // console.log('Node does not exists', control.ref);\n\n // We need to create that node!\n const previousControl = boundControls[i - 1];\n\n // Previous control can either be an ancestor of us, or a previous node, which can be a sibling, or a child of a sibling.\n // First: parent\n if (previousControl.contains(control)) {\n // Parent is here.\n // console.log('insert into', control,previousControl);\n // console.log('insert into nodeset', control.nodeset);\n const parentNodeset = previousControl.nodeset;\n // console.log('parentNodeset', parentNodeset);\n\n // const parentModelItemNode = parentModelItem.node;\n const ref = control.ref;\n // const newElement = parentModelItemNode.ownerDocument.createElement(ref);\n if (parentNodeset.querySelector(`[ref=\"${ref}\"]`)) {\n console.log(`Node with ref \"${ref}\" already exists.`);\n continue;\n }\n\n const newElement = this._createNodes(ref, parentNodeset);\n\n // Plonk it in at the start!\n parentNodeset.insertBefore(newElement, parentNodeset.firstChild);\n control.evalInContext();\n console.log('CREATED child', newElement);\n // console.log('new control evaluated to ', control.nodeset);\n // Done!\n continue;\n }\n // console.log('previousControl', previousControl);\n // console.log('control', control);\n // Is previousControl a sibling or a descendant of a logical sibling? Keep looking backwards until we share parents!\n const ourParent = XPathUtil.getParentBindingElement(control);\n // console.log('ourParent', ourParent);\n let siblingControl = null;\n /*\n for (let j = i - 1; j >= 0; --j) {\n const potentialSibling = boundControls[j];\n if (XPathUtil.getParentBindingElement(potentialSibling) === ourParent) {\n siblingControl = potentialSibling;\n break; // Exit once the sibling is found\n }\n }\n*/\n for (let j = i - 1; j > 0; --j) {\n const siblingOrDescendant = boundControls[j];\n if (XPathUtil.getParentBindingElement(siblingOrDescendant) === ourParent) {\n siblingControl = siblingOrDescendant;\n break;\n }\n }\n if (!siblingControl) {\n throw new Error('Unexpected! there must be a sibling right?');\n }\n // console.log('sibling', siblingControl);\n const parentNodeset = ourParent.nodeset;\n const ref = control.ref;\n let referenceNodeset = siblingControl.nodeset;\n const newElement = this._createNodes(ref, parentNodeset);\n\n // We know which node to insert this new element to, but it might be a descendant of a child of the actual parent. Walk up until we have a reference under our parent\n while (referenceNodeset?.parentNode && referenceNodeset?.parentNode !== parentNodeset) {\n referenceNodeset = referenceNodeset.parentNode;\n }\n\n // Insert before the next sibling our our logical previous sibling\n parentNodeset.insertBefore(newElement, referenceNodeset.nextElementSibling);\n /*\n console.log('control inscope', control.getInScopeContext());\n console.log('control ref', control.ref);\n console.log('control new element parent', newElement.parentNode.nodeName);\n*/\n control.evalInContext();\n // console.log('new control evaluated to ', control.nodeset);\n console.log('CREATED sibling', newElement);\n }\n // console.log('DATA', this.getModel().getDefaultContext());\n }\n\n _createNodes(ref, referenceNode) {\n // console.log('creating', ref)\n // console.log('ownerDoc', referenceNode.ownerDocument);\n /*\n const existingNode = evaluateXPathToFirstNode(ref, referenceNode, this);\n if(existingNode){\n console.log(`Node already exists for ref: ${ref}`);\n return existingNode;\n }\n*/\n console.log(`creating new node for ref: ${ref}`);\n let newElement;\n if (ref.includes('/')) {\n // multi-step ref expressions\n newElement = XPathUtil.createElementFromXPath(ref, referenceNode.ownerDocument, this);\n // console.log('new subtree', newElement);\n return newElement;\n } else {\n return XPathUtil.createElementFromXPath(ref, referenceNode.ownerDocument, this);\n }\n }\n\n _handleDragStart(event) {\n const draggedItem = event.target.closest('[draggable=\"true\"]');\n this.originalDraggedItem = draggedItem;\n console.log('DRAG START', this);\n if (draggedItem.getAttribute('drop-action') === 'copy') {\n event.dataTransfer.dropEffect = 'copy';\n event.dataTransfer.effectAllowed = 'copy';\n this.draggedItem = draggedItem.cloneNode(true);\n this.draggedItem.setAttribute('drop-action', 'move');\n this.copiedElements.add(this.draggedItem);\n } else {\n event.dataTransfer.dropEffect = 'move';\n event.dataTransfer.effectAllowed = 'move';\n this.draggedItem = draggedItem;\n }\n }\n\n _handleDrop(event) {\n console.log('DROP ON BODY', this);\n if (!this.draggedItem) {\n return;\n }\n // A drop on 'body' should be a removal.\n if (event.dataTransfer.dropEffect === 'none') {\n if (this.copiedElements.has(this.originalDraggedItem)) {\n this.originalDraggedItem.remove();\n }\n }\n this.originalDraggedItem = null;\n this.draggedItem = null;\n event.stopPropagation();\n }\n\n registerLazyElement(element) {\n if (this.intersectionObserver) {\n // console.log('registerLazyElement',element);\n this.intersectionObserver.observe(element);\n }\n }\n\n unRegisterLazyElement(element) {\n if (this.intersectionObserver) {\n this.intersectionObserver.unobserve(element);\n }\n }\n\n /**\n *\n * @returns {FxModel}\n */\n getModel() {\n return this.querySelector('fx-model');\n }\n\n _displayMessage(e) {\n // console.log('_displayMessage',e);\n const { level } = e.detail;\n const msg = e.detail.message;\n this._showMessage(level, msg);\n e.stopPropagation();\n }\n\n _displayError(e) {\n // const { error } = e.detail;\n const msg = e.detail.message;\n // this._showMessage('modal', msg);\n const toast = this.shadowRoot.querySelector('#error');\n toast.showToast(msg);\n }\n\n _displayWarning(e) {\n const msg = e.detail.message;\n // this._showMessage('modal', msg);\n const path = XPathUtil.shortenPath(evaluateXPathToString('path()', e.target, this));\n const toast = this.shadowRoot.querySelector('#warn');\n toast.showToast(`WARN: ${path}:${msg}`);\n }\n\n _logError(e) {\n e.stopPropagation();\n e.preventDefault();\n\n console.error('ERROR', e.detail.message);\n console.error(e.detail.origin);\n if (e.detail.expr) {\n console.error('Failing expression', e.detail.expr);\n }\n if (this.strict) {\n this._displayError(e);\n }\n }\n\n _copyToClipboard(target) {\n console.log('copyToClipboard', target.value);\n navigator.clipboard.writeText(target.value);\n }\n\n _showMessage(level, msg) {\n if (level === 'modal') {\n // this.$.messageContent.innerText = msg;\n // this.$.modalMessage.open();\n\n this.shadowRoot.getElementById('messageContent').innerText = msg;\n // this.shadowRoot.getElementById('modalMessage').open();\n this.shadowRoot.getElementById('modalMessage').classList.add('show');\n } else if (level === 'sticky' || level === 'error' || level === 'warn') {\n // const notification = this.$.modeless;\n this.shadowRoot.querySelector(`#${level}`).showToast(msg);\n } else {\n const toast = this.shadowRoot.querySelector('#message');\n toast.showToast(msg);\n }\n }\n\n /**\n * wraps the element having a 'data-ref' attribute with an fx-repeat-attributes element.\n * @private\n */\n _createRepeatsFromAttributes() {\n if (this.repeatsFromAttributesCreated) return;\n const repeats = this.querySelectorAll('[data-ref]');\n if (repeats) {\n Array.from(repeats).forEach(item => {\n if (item.closest('fx-control')) return;\n /*\n const parentRepeat = item.closest('fx-repeat');\n if(parentRepeat){\n this.dispatchEvent(\n new CustomEvent('log', {\n composed: false,\n bubbles: true,\n cancelable:true,\n detail: { id:this.id, message: `nesting elements with data-ref attributes within fx-repeat is not supported by now`, level:'Error'},\n }),\n );\n }\n */\n\n const table = item.parentNode.closest('table');\n let host;\n if (table) {\n host = table.cloneNode(true);\n } else {\n host = item.cloneNode(true);\n }\n // ### clone original item to move it into fx-repeat-attributes\n // const host = item.cloneNode(true);\n\n // ### create wrapper element\n const repeatFromAttr = new FxRepeatAttributes();\n // const repeatFromAttr = document.createElement('fx-repeat-attributes');\n\n // ### copy the value of 'data-ref' to 'ref' on fx-repeat-attributes\n repeatFromAttr.setAttribute('ref', item.getAttribute('data-ref'));\n // item.removeAttribute('data-ref');\n\n // ### append the cloned original element to fx-repeat-attributes\n repeatFromAttr.appendChild(host);\n\n // ### insert fx-repeat-attributes element before element with the 'data-ref'\n // repeats[0].parentNode.insertBefore(repeatFromAttr,repeats[0]);\n\n if (table) {\n table.parentNode.insertBefore(repeatFromAttr, table);\n table.parentNode.removeChild(table);\n } else {\n item.parentNode.insertBefore(repeatFromAttr, item);\n item.parentNode.removeChild(item);\n }\n\n // ### remove original item from DOM\n item.setAttribute('insertPoint', '');\n });\n }\n this.repeatsFromAttributesCreated = true;\n }\n}\n\nif (!customElements.get('fx-fore')) {\n customElements.define('fx-fore', FxFore);\n}\n","import { Fore } from './fore.js';\n\nexport class Relevance {\n static handleRelevance(boundElement) {\n const modelItem = boundElement.getModelItem();\n\n if (modelItem && modelItem.relevant) {\n boundElement.removeAttribute('nonrelevant');\n boundElement.setAttribute('relevant', '');\n Fore.dispatch(this, 'relevant', {});\n } else {\n boundElement.removeAttribute('relevant');\n boundElement.setAttribute('nonrelevant', '');\n Fore.dispatch(this, 'nonrelevant', {});\n }\n }\n\n static selectRelevant(element, type) {\n // console.log('selectRelevant', type);\n switch (type) {\n case 'xml':\n return Relevance._relevantXmlNodes(element);\n default:\n console.warn(`relevance selection not supported for type:${element.type}`);\n return element.nodeset;\n }\n }\n\n static _relevantXmlNodes(element) {\n // ### no relevance selection - current nodeset is used 'as-is'\n const nonrelevant = element.getAttribute('nonrelevant');\n if (nonrelevant === 'keep') {\n return element.nodeset;\n }\n\n // first check if nodeset of submission is relevant - otherwise bail out\n const mi = element.getModel().getModelItem(element.nodeset);\n if (mi && !mi.relevant) return null;\n\n const root = element.nodeset.cloneNode(false);\n\n if (element.nodeset.children.length === 0 && Relevance._isRelevant(element, element.nodeset)) {\n return element.nodeset;\n }\n return Relevance._filterRelevant(element, element.nodeset, root);\n }\n\n static _filterRelevant(element, node, result) {\n const { childNodes } = node;\n Array.from(childNodes).forEach(n => {\n if (Relevance._isRelevant(element, n)) {\n const clone = n.cloneNode(false);\n result.appendChild(clone);\n const { attributes } = n;\n if (attributes) {\n Array.from(attributes).forEach(attr => {\n if (element.nonrelevant === 'empty' && !Relevance._isRelevant(element, attr)) {\n clone.setAttribute(attr.nodeName, '');\n } else if (Relevance._isRelevant(element, attr)) {\n clone.setAttribute(attr.nodeName, attr.value);\n } else {\n // if (element.nonrelevant === 'empty') {\n // clone.setAttribute(attr.nodeName, '');\n // } else{\n clone.removeAttribute(attr.nodeName);\n // }\n }\n /*\n if (Relevance._isRelevant(element, attr)) {\n clone.setAttribute(attr.nodeName, attr.value);\n } else if (element.nonrelevant === 'empty') {\n clone.setAttribute(attr.nodeName, '');\n } else {\n clone.removeAttribute(attr.nodeName);\n }\n*/\n });\n }\n return Relevance._filterRelevant(element, n, clone);\n }\n return null;\n });\n return result;\n }\n\n static _isRelevant(element, node) {\n const mi = element.getModel().getModelItem(node);\n\n // ### remove empty attributes as these usually are not expected in most XML languages.\n if (node.nodeType === Node.ATTRIBUTE_NODE && node.nodeValue === '') {\n return false;\n }\n // ### no modelItem means no constraints\n if (!mi) {\n return true;\n }\n // ### modelItem 'relevant' is defined and 'true'\n if (mi.relevant) {\n return true;\n }\n\n return false;\n }\n}\n","import { Fore } from './fore.js';\nimport { Relevance } from './relevance.js';\nimport { evaluateXPath } from './xpath-evaluation.js';\nimport ForeElementMixin from './ForeElementMixin.js';\n\n/**\n * todo: validate='false'\n */\nexport class FxSubmission extends ForeElementMixin {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n this.credentials = '';\n this.parameters = new Map();\n }\n\n connectedCallback() {\n // this.style.display = 'none';\n this.methods = ['get', 'put', 'post', 'delete', 'head', 'urlencoded-post'];\n\n this.model = this.parentNode;\n\n // ### initialize properties with defaults\n // if (!this.hasAttribute('id')) throw new Error('id is required');\n if (!this.hasAttribute('id')) console.warn('id is required');\n this.id = this.getAttribute('id');\n\n /** if present should be a existing instance id */\n this.instance = this.hasAttribute('instance') ? this.getAttribute('instance') : null;\n\n /** if present will determine XPath where to insert a response into when mode is 'replace' */\n this.into = this.hasAttribute('into') ? this.getAttribute('into') : null;\n\n /** http method */\n this.method = this.hasAttribute('method') ? this.getAttribute('method') : 'get';\n\n /** relevance processing - one of 'remove, keep or empty' */\n this.nonrelevant = this.hasAttribute('nonrelevant')\n ? this.getAttribute('nonrelevant')\n : 'remove';\n\n /** replace might be 'all', 'instance' or 'none' */\n this.replace = this.hasAttribute('replace') ? this.getAttribute('replace') : 'all';\n\n this.serialization = this.hasAttribute('serialization')\n ? this.getAttribute('serialization')\n : 'xml';\n\n this.mediatype = this.hasAttribute('mediatype')\n ? this.getAttribute('mediatype')\n : 'application/xml';\n\n this.responseMediatype = this.hasAttribute('responsemediatype')\n ? this.getAttribute('responsemediatype')\n : this.mediatype;\n this.url = this.hasAttribute('url') ? this.getAttribute('url') : null;\n\n this.targetref = this.hasAttribute('targetref') ? this.getAttribute('targetref') : null;\n\n this.validate = this.getAttribute('validate') ? this.getAttribute('validate') : 'true';\n this.credentials = this.hasAttribute('credentials')\n ? this.getAttribute('credentials')\n : 'same-origin';\n if (!['same-origin', 'include', 'omit'].includes(this.credentials)) {\n console.error(\n `fx-submission: the value of credentials is not valid. Expected 'same-origin', 'include' or 'omit' but got '${this.credentials}'`,\n this,\n );\n }\n this.shadowRoot.innerHTML = this.renderHTML();\n }\n\n // eslint-disable-next-line class-methods-use-this\n renderHTML() {\n return `\n <slot></slot>\n `;\n }\n\n async submit() {\n await Fore.dispatch(this, 'submit', { submission: this });\n await this._submit();\n }\n\n async _submit() {\n console.info(\n `%csubmitting #${this.id}`,\n 'background:yellow; color:black; padding:.5rem; display:inline-block; white-space: nowrap; border-radius:0.3rem;width:100%;',\n );\n\n this.evalInContext();\n const model = this.getModel();\n\n model.recalculate();\n\n if (this.validate === 'true' && this.method !== 'get') {\n const valid = model.revalidate();\n if (!valid) {\n console.log('validation failed. Submission stopped');\n this.getOwnerForm().classList.add('submit-validation-failed');\n // ### allow alerts to pop up\n // this.dispatch('submit-error', {});\n Fore.dispatch(this, 'submit-error', {});\n this.getModel().parentNode.refresh(true);\n return;\n }\n }\n await this._serializeAndSend();\n }\n\n _getProperty(attrName) {\n if (this.parameters.has(attrName)) {\n return this.parameters.get(attrName);\n }\n return this.getAttribute(attrName);\n }\n\n /**\n * sends the data after evaluating\n *\n * @private\n */\n async _serializeAndSend() {\n const url = this._getProperty('url');\n const resolvedUrl = this.evaluateAttributeTemplateExpression(url, this);\n // console.log('resolvedUrl', resolvedUrl);\n const instance = this.getInstance();\n if (!instance) {\n Fore.dispatch(this, 'warn', { message: `instance not found ${instance.getAttribute('id')}` });\n }\n const instType = instance.getAttribute('type');\n // console.log('instance type', instance.type);\n\n let serialized;\n if (this.serialization === 'none') {\n serialized = undefined;\n } else {\n // const relevant = this.selectRelevant(instance.type);\n const relevant = Relevance.selectRelevant(this, instType);\n serialized = this._serialize(instType, relevant);\n }\n\n // let serialized = serializer.serializeToString(relevant);\n if (this.method.toLowerCase() === 'get') {\n /*\n todo: serialize the bound instance element names as get parameters and using their text values\n as param values. leave out empty params and create querystring from the result.Elements may\n have exactly level deep or are otherwise ignored.\n <data>\n <id>1234</id>\n <name>john</name>\n <zip></zip>\n <!-- ignored as no direct text value -->\n <phone>\n <mobile></mobile>\n <phone>\n </data>\n results in: ?id=1234&name=john to be appended to this.url on fetch\n\n*/\n\n serialized = undefined;\n }\n // console.log('data being send', serialized);\n // console.log('submitting data',serialized);\n\n // if (resolvedUrl === '#echo') {\n if (resolvedUrl.startsWith('#echo')) {\n const data = this._parse(serialized, instance);\n this._handleResponse(data);\n // this.dispatch('submit-done', {});\n console.log('### <<<<< submit-done >>>>>');\n Fore.dispatch(this, 'submit-done', {});\n this.parameters.clear();\n return;\n }\n\n if (resolvedUrl.startsWith('localStore:')) {\n if (this.method === 'get' || this.method === 'consume') {\n // let data = this._parse(serialized, instance);\n this.replace = 'instance';\n const key = resolvedUrl.substring(resolvedUrl.indexOf(':') + 1);\n const serialized = localStorage.getItem(key);\n if (!serialized) {\n Fore.dispatch(this, 'submit-error', {\n message: `Error reading key ${key} from localstorage`,\n });\n this.parameters.clear();\n return;\n }\n const data = this._parse(serialized, instance);\n this._handleResponse(data);\n if (this.method === 'consume') {\n localStorage.removeItem(key);\n }\n console.log('### <<<<< submit-done >>>>>');\n Fore.dispatch(this, 'submit-done', {});\n }\n if (this.method === 'post') {\n // let data = this._parse(serialized, instance);\n const key = resolvedUrl.substring(resolvedUrl.indexOf(':') + 1);\n localStorage.setItem(key, serialized);\n this._handleResponse(instance.instanceData);\n console.log('### <<<<< submit-done >>>>>');\n Fore.dispatch(this, 'submit-done', {});\n }\n if (this.method === 'delete') {\n const key = resolvedUrl.substring(resolvedUrl.indexOf(':') + 1);\n localStorage.removeItem(key);\n const newInst = new DOMParser().parseFromString('<data></data>', 'application/xml');\n this.replace = 'instance';\n this._handleResponse(newInst);\n console.log('### <<<<< submit-done >>>>>');\n Fore.dispatch(this, 'submit-done', {});\n }\n\n return;\n }\n\n // ### setting headers\n const headers = this._getHeaders();\n\n if (!this.methods.includes(this.method.toLowerCase())) {\n // this.dispatch('error', { message: `Unknown method ${this.method}` });\n Fore.dispatch(this, 'error', { message: `Unknown method ${this.method}` });\n return;\n }\n try {\n const response = await fetch(resolvedUrl, {\n method: this.method,\n credentials: this.credentials,\n mode: 'cors',\n headers,\n body: serialized,\n });\n\n if (!response.ok || response.status > 400) {\n // this.dispatch('submit-error', { message: `Error while submitting ${this.id}` });\n console.info(\n `%csubmit-error #${this.id}`,\n 'background:red; color:black; padding:.5rem; display:inline-block; white-space: nowrap; border-radius:0.3rem;width:100%;',\n );\n\n Fore.dispatch(this, 'submit-error', { message: `Error while submitting ${this.id}` });\n return;\n }\n\n const contentType = response.headers.get('content-type').toLowerCase();\n if (contentType.startsWith('text/')) {\n const text = await response.text();\n this._handleResponse(text, resolvedUrl, contentType);\n } else if (contentType.startsWith('application/json')) {\n const json = await response.json();\n this._handleResponse(json, resolvedUrl, contentType);\n } else if (contentType.startsWith('application/xml')) {\n const text = await response.text();\n const xml = new DOMParser().parseFromString(text, 'application/xml');\n this._handleResponse(xml, resolvedUrl, contentType);\n } else {\n const blob = await response.blob();\n this._handleResponse(blob, resolvedUrl, contentType);\n }\n\n // this.dispatch('submit-done', {});\n // console.log(`### <<<<< ${this.id} submit-done >>>>>`);\n Fore.dispatch(this, 'submit-done', {});\n/*\n console.info(\n `%csubmit-done #${this.id}`,\n 'background:green; color:white; padding:.5rem; display:inline-block; white-space: nowrap; border-radius:0.3rem;width:100%;',\n );\n*/\n\n } catch (error) {\n Fore.dispatch(this, 'submit-error', { error: error.message });\n } finally {\n this.parameters.clear();\n const download = document.querySelector('[download]');\n if (download) {\n document.body.removeChild(download);\n }\n }\n }\n\n _parse(serialized, instance) {\n let data = null;\n if (serialized && instance.getAttribute('type') === 'xml') {\n data = new DOMParser().parseFromString(serialized, 'application/xml');\n }\n if (serialized && instance.getAttribute('type') === 'json') {\n data = JSON.parse(serialized);\n }\n if (serialized && instance.getAttribute('type') === 'text') {\n data = serialized;\n }\n return data;\n }\n\n _serialize(instanceType, relevantNodes) {\n if (this.serialization === 'application/x-www-form-urlencoded') {\n // this.method = 'post';\n const params = new URLSearchParams();\n // console.log('nodes to serialize', relevantNodes);\n Array.from(relevantNodes.children).forEach(child => {\n params.append(child.nodeName, child.textContent);\n });\n return params;\n }\n if (instanceType === 'xml') {\n const serializer = new XMLSerializer();\n return serializer.serializeToString(relevantNodes);\n }\n if (instanceType === 'json') {\n // console.warn('JSON serialization is not yet supported')\n return JSON.stringify(relevantNodes);\n }\n if (instanceType === 'text') {\n return relevantNodes;\n }\n throw new Error('unknown instance type ', instanceType);\n }\n\n _getHeaders() {\n const headers = new Headers();\n\n // ### set content-type header according to type of instance\n const instance = this.getInstance();\n const contentType = Fore.getContentType(instance, this.serialization);\n headers.append('Content-Type', contentType);\n // ### needed to overwrite browsers' setting of 'Accept' header\n if (headers.has('Accept')) {\n headers.delete('Accept');\n }\n // headers.append('Accept', 'application/xml');\n\n // ### add header defined by fx-header elements\n const headerElems = this.querySelectorAll('fx-header');\n Array.from(headerElems).forEach(header => {\n const { name } = header;\n const val = header.getValue();\n headers.append(name, val);\n });\n return headers;\n }\n\n _getUrlExpr() {\n return this.storedTemplateExpressions.find(stored => stored.node.nodeName === 'url');\n }\n\n _getTargetInstance() {\n let targetInstance;\n if (this.instance) {\n targetInstance = this.model.getInstance(this.instance);\n } else {\n targetInstance = this.model.getInstance('default');\n }\n if (!targetInstance) {\n throw new Error(`target instance not found: ${targetInstance}`);\n }\n return targetInstance;\n }\n\n /**\n * handles replacement of instance data from response data.\n *\n * Please note that data might be\n * @param data\n * @private\n */\n _handleResponse(data, resolvedUrl, contentType) {\n // console.log('_handleResponse ', data);\n\n const targetInstance = this._getTargetInstance();\n\n /*\n if(this.replace === 'merge'){\n if(targetInstance.type !== 'xml') {\n Fore.dispatch(this, \"warn\", {'message': 'merging of instances only work for type xml'});\n }\n if (targetInstance && targetInstance.type === 'xml') {\n targetInstance.partialInstance = data;\n // const resultDoc = new DOMParser(`${data.nodeName}`, 'application/xml');\n // console.log('resultDoc', resultDoc)\n const merged = Fore.combine(targetInstance.instanceData.firstElementChild, data.firstElementChild, this,null);\n console.log('merged', merged);\n\n targetInstance.instanceData = merged;\n console.log('merging partial instance',targetInstance.partialInstance)\n this.model.updateModel();\n this.getOwnerForm().refresh(true);\n }\n }\n*/\n\n if (this.replace === 'instance') {\n if (targetInstance) {\n if (this.targetref) {\n\n const [theTarget] = evaluateXPath(\n this.targetref,\n targetInstance.instanceData.firstElementChild,\n this,\n );\n console.log('theTarget', theTarget);\n if(this.responseMediatype === 'application/xml' || this.responseMediatype === 'text/html'){\n const clone = data.firstElementChild;\n const parent = theTarget.parentNode;\n parent.replaceChild(clone, theTarget);\n console.log('finally ', parent);\n }\n if(this.responseMediatype.startsWith('text/')){\n theTarget.textContent = data;\n }\n if(this.responseMediatype === 'application/json'){\n console.warn('targetref is not supported for application/json responses')\n }\n\n } else if (this.into) {\n const [theTarget] = evaluateXPath(\n this.into,\n targetInstance.instanceData.firstElementChild,\n this,\n );\n console.log('theTarget', theTarget);\n if (data.nodeType === Node.DOCUMENT_NODE) {\n theTarget.appendChild(data.firstElementChild);\n } else {\n theTarget.innerHTML = data;\n }\n } else {\n const instanceData = data;\n targetInstance.instanceData = instanceData;\n // console.log('### replaced instance ', this.getModel().instances);\n // console.log('### replaced instance ', targetInstance.instanceData);\n }\n\n // Skip any refreshes if the model is not yet inited\n if (this.model.inited) {\n this.model.updateModel(); // force update\n this.getOwnerForm().refresh(true);\n }\n } else {\n throw new Error(`target instance not found: ${targetInstance}`);\n }\n }\n\n if (this.replace === 'download') {\n const target = this._getProperty('target');\n const downloadLink = document.createElement('a');\n downloadLink.setAttribute('download', target);\n downloadLink.setAttribute('href', `data:${contentType},${data}`);\n document.body.appendChild(downloadLink);\n downloadLink.click();\n }\n if (this.replace === 'all') {\n const target = this._getProperty('target');\n if (target && target === '_blank') {\n const win = window.open('', '_blank');\n win.document.write(`<pre>${data}</pre>`);\n win.document.close();\n } else {\n document.open();\n document.write(data);\n document.close();\n window.location.href = resolvedUrl;\n }\n // document.getElementsByTagName('html')[0].innerHTML = data;\n }\n if (this.replace === 'target') {\n // const target = this.getAttribute('target');\n const target = this._getProperty('target');\n const targetNode = document.querySelector(target);\n if (targetNode) {\n\n if(contentType.startsWith('text/html')){\n targetNode.innerHTML = data;\n }\n if(this.responseMediatype.startsWith('image/svg')){\n const parser = new DOMParser();\n const svgDoc = parser.parseFromString(data, 'image/svg+xml');\n\n const objectURL = URL.createObjectURL(data);\n targetNode.src = objectURL;\n }\n } else {\n Fore.dispatch(this, 'submit-error', {\n message: `targetNode for selector ${target} not found`,\n });\n }\n }\n if (this.replace === 'redirect') {\n window.location.href = data;\n }\n }\n\n _handleError() {\n // this.dispatch('submit-error', {});\n Fore.dispatch(this, 'submit-error', {});\n /*\n console.log('ERRRORRRRR');\n this.dispatchEvent(\n new CustomEvent('submit-error', {\n composed: true,\n bubbles: true,\n detail: {},\n }),\n );\n */\n }\n\n /*\n mergeNodes(node1, node2) {\n // Overwrite attributes in node1 with values from node2\n for (const { name, value } of node2.attributes) {\n node1.setAttribute(name, value);\n }\n\n const childNodes1 = Array.from(node1.childNodes);\n const childNodes2 = Array.from(node2.childNodes);\n\n // Append all child nodes from node2 to node1\n childNodes2.forEach(child2 => {\n if (child2.nodeType === 1) {\n // If it's an element node, check if a matching element exists in node1\n const matchingElement = childNodes1.find(\n child1 => child1.nodeType === 1 && child1.tagName === child2.tagName\n );\n if (matchingElement) {\n this.mergeNodes(matchingElement, child2); // Recursively merge matching elements\n } else {\n const clonedNode = child2.cloneNode(true);\n node1.appendChild(clonedNode);\n }\n } else {\n // For text nodes, simply append them to node1\n const clonedNode = child2.cloneNode(true);\n node1.appendChild(clonedNode);\n }\n });\n }\n*/\n}\n\nif (!customElements.get('fx-submission')) {\n customElements.define('fx-submission', FxSubmission);\n}\n","import ForeElementMixin from './ForeElementMixin.js';\n\nexport class FxHeader extends ForeElementMixin {\n constructor() {\n super();\n this.style.display = 'none';\n this.attachShadow({ mode: 'open' });\n this.shadowRoot.innerHTML = '';\n\n if (!this.hasAttribute('name')) {\n throw new Error('required attribute \"name\" missing');\n }\n this.name = this.getAttribute('name');\n }\n\n connectedCallback() {\n this.shadowRoot.innerHTML = '';\n }\n}\nif (!customElements.get('fx-header')) {\n customElements.define('fx-header', FxHeader);\n}\n","import { createTypedValueFactory, domFacade } from 'fontoxpath';\nimport { Fore } from './fore.js';\nimport './fx-instance.js';\nimport { evaluateXPath } from './xpath-evaluation.js';\nimport ForeElementMixin from './ForeElementMixin.js';\nimport getInScopeContext from './getInScopeContext.js';\n\n// We are getting sequences here (evaluateXPath is returning all items, as an array)\n// So wrap them into something so FontoXPath also understands they are sequences, always.\nconst typedValueFactory = createTypedValueFactory('item()*');\n\nexport class FxVariable extends ForeElementMixin {\n constructor() {\n super();\n\n this.attachShadow({ mode: 'open' });\n this.name = '';\n this.valueQuery = '';\n this.value = null;\n this.precedingVariables = [];\n }\n\n connectedCallback() {\n this.name = this.getAttribute('name');\n this.valueQuery = this.getAttribute('value');\n }\n\n refresh() {\n const inscope = getInScopeContext(this, this.valueQuery);\n\n const values = evaluateXPath(this.valueQuery, inscope, this, this.precedingVariables);\n this.value = typedValueFactory(values, domFacade);\n }\n\n /**\n * @param {Map<string, FxVariable>} inScopeVariables\n */\n setInScopeVariables(inScopeVariables) {\n if (inScopeVariables.has(this.name)) {\n console.error(`The variable ${this.name} is declared more than once`);\n Fore.dispatch(this, 'xforms-binding-error', {});\n return;\n }\n inScopeVariables.set(this.name, this);\n // Clone the preceding variables to make sure we are not going to get access to variables we\n // should not get access to\n this.inScopeVariables = new Map(inScopeVariables);\n }\n}\nif (!customElements.get('fx-var')) {\n customElements.define('fx-var', FxVariable);\n}\n","import '../fx-model.js';\nimport ForeElementMixin from '../ForeElementMixin.js';\nimport { ModelItem } from '../modelitem.js';\nimport { Fore } from '../fore.js';\nimport getInScopeContext from '../getInScopeContext.js';\nimport { evaluateXPathToFirstNode } from '../xpath-evaluation.js';\n\nfunction isDifferent(oldNodeValue, oldControlValue, newControlValue) {\n if (oldNodeValue === null) {\n return false;\n }\n /*\n if the oldControlValue is null we know the widget is used for the first time and is not considered\n a value change.\n */\n if(oldControlValue === null) return false;\n\n if (newControlValue && oldControlValue && newControlValue.nodeType && oldControlValue.nodeType) {\n return newControlValue.outerHTML !== oldControlValue.outerHTML;\n }\n\n if (oldControlValue === newControlValue) {\n return false;\n }\n\n return true;\n}\n\n/**\n * `AbstractControl` -\n * is a general base class for control elements.\n *\n */\nexport default class AbstractControl extends ForeElementMixin {\n constructor() {\n super();\n this.value = null;\n this.display = this.style.display;\n this.required = false;\n this.readonly = false;\n this.widget = null;\n this.visited = false;\n this.force = false;\n // this.attachShadow({ mode: 'open' });\n }\n\n // eslint-disable-next-line class-methods-use-this\n getWidget() {\n throw new Error('You have to implement the method getWidget!');\n }\n\n /**\n * (re)apply all modelItem state properties to this control. model -> UI\n */\n async refresh(force) {\n if (force) this.force = true;\n // console.log('### AbstractControl.refresh on : ', this);\n\n // Save the old value of this control. this may be the stringified version, contrast to the node in `nodeset`\n const oldValue = this.value;\n\n // if(this.repeated) return\n if (this.isNotBound()) return;\n\n // await this.updateComplete;\n // await this.getWidget();\n\n this.evalInContext();\n this.oldVal = this.nodeset ? this.nodeset : null;\n // console.log('oldVal',this.oldVal);\n\n // todo this if should be removed - see above\n if (this.isBound()) {\n // this.control = this.querySelector('#control');\n\n if (!this.nodeset) {\n const create = this.closest('[create]');\n if (create) {\n // ### check if parent element exists\n let attrName;\n let parentPath;\n let parentNode;\n\n if (this.ref.includes('/')) {\n parentPath = this.ref.substring(0, this.ref.indexOf('/'));\n const inscope = getInScopeContext(this.parentNode, this.ref);\n parentNode = evaluateXPathToFirstNode(parentPath, inscope, this);\n\n if (parentNode && parentNode.nodeType === Node.ELEMENT_NODE) {\n if (this.ref.includes('@')) {\n attrName = this.ref.substring(this.ref.indexOf('/') + 2);\n parentNode.setAttribute(attrName, '');\n } else {\n Fore.dispatch(this, 'warn', {\n message: '\"create\" is not implemented for elements',\n });\n }\n }\n } else {\n const inscope = getInScopeContext(this, this.ref);\n\n if (this.ref.includes('@')) {\n attrName = this.ref.substring(this.ref.indexOf('@') + 1);\n inscope.setAttribute(attrName, '');\n } else {\n Fore.dispatch(this, 'warn', { message: '\"create\" is not implemented for elements' });\n // inscope = getInScopeContext(this.parentNode, this.ref);\n }\n }\n } else {\n // ### this actually makes the control nonrelevant\n // todo: we should call a template function here to allow detachment of event-listeners and resetting eventual state\n // this.style.display = 'none';\n this.setAttribute('nonrelevant', '');\n }\n return;\n }\n\n this.modelItem = this.getModelItem();\n // console.log('refresh modelItem', this.modelItem);\n\n if (this.modelItem instanceof ModelItem) {\n // console.log('### XfAbstractControl.refresh modelItem : ', this.modelItem);\n\n if (this.hasAttribute('as') && this.getAttribute('as') === 'node') {\n // console.log('as', this.nodeset);\n // this.modelItem.value = this.nodeset;\n this.modelItem.node = this.nodeset;\n this.value = this.modelItem.node;\n } else {\n this.value = this.modelItem.value;\n }\n // console.log('newVal',this.value);\n\n // console.log('value of widget',this.value);\n\n /*\n * todo: find out on which foreign modelitems we might be dependant on when no binds are used.\n *\n * e.g. filter expr on 'ref' 'instance('countries')//country[@continent = instance('default')/continent]'\n *\n * the country node is dependant on instance('default')/continent here (foreign node).\n *\n * possible approach:\n * - pipe ref expression through DependencyNotifyingDomFacade to get referred nodes.\n * - lookup modelItems of referred nodes\n * - add ourselves to boundControls of foreign modelItem -> this control will then get refreshed when the foreign modelItem is changed.\n */\n\n // const touched = FxBind.getReferencesForRef(this.ref,Array.from(this.nodeset));\n // console.log('touched',touched);\n\n /*\n this is another case that highlights the fact that an init() function might make sense in general.\n */\n if (!this.modelItem.boundControls.includes(this)) {\n this.modelItem.boundControls.push(this);\n }\n\n // console.log('>>>>>>>> abstract refresh ', this.control);\n // this.control[this.valueProp] = this.value;\n await this.updateWidgetValue();\n this.handleModelItemProperties();\n\n // if(!this.closest('fx-fore').ready) return; // state change event do not fire during init phase (initial refresh)\n if (this.getOwnerForm().initialRun) {\n Fore.dispatch(this, 'init', {});\n }\n if (!this.getOwnerForm().ready) return; // state change event do not fire during init phase (initial refresh)\n // if oldVal is null we haven't received a concrete value yet\n\n if (!(this.localName === 'fx-control' || this.localName === 'fx-upload')) return;\n if (isDifferent(this.oldVal, oldValue, this.value)) {\n const model = this.getModel();\n Fore.dispatch(this, 'value-changed', {\n path: this.modelItem.path,\n value: this.modelItem.value,\n oldvalue: oldValue,\n instanceId:this.modelItem.instanceId,\n foreId:this.getOwnerForm().id\n });\n }\n }\n }\n }\n\n refreshFromModelItem(modelItem) {}\n\n /**\n *\n * @returns {Promise<void>}\n */\n // eslint-disable-next-line class-methods-use-this\n async updateWidgetValue() {\n throw new Error('You have to implement the method updateWidgetValue!');\n }\n\n handleModelItemProperties() {\n // console.log('handleModelItemProperties',this.modelItem);\n this.handleRequired();\n this.handleReadonly();\n if (this.getOwnerForm().ready) {\n this.handleValid();\n }\n this.handleRelevant();\n // Relevance.handleRelevance(this);\n // todo: handleType()\n }\n\n _getForm() {\n return this.getModel().parentNode;\n }\n\n _dispatchEvent(event) {\n if (this.getOwnerForm().ready) {\n Fore.dispatch(this, event, {});\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n handleRequired() {\n // console.log('mip required', this.modelItem.required);\n this.widget = this.getWidget();\n const wasRequired = this.isRequired();\n\n if (!this.modelItem.required) {\n this.widget.removeAttribute('required');\n this.removeAttribute('required');\n if (wasRequired !== this.modelItem.required) {\n this._dispatchEvent('optional');\n }\n return;\n }\n\n // ### modelItem is required\n if (this.visited || this.force) {\n if (this.modelItem.value === '') {\n this.classList.add('isEmpty');\n this._toggleValid(false);\n } else {\n this.classList.remove('isEmpty');\n this._toggleValid(true);\n }\n }\n this.widget.setAttribute('required', '');\n this.setAttribute('required', '');\n if (wasRequired !== this.modelItem.required) {\n this._dispatchEvent('required');\n }\n\n /*\n if (this.isRequired() !== this.modelItem.required) {\n this._updateRequired();\n }\n*/\n }\n\n _updateRequired() {\n if (this.modelItem.required) {\n // if (this.getOwnerForm().ready){\n if (this.visited || this.force) {\n // if (this.visited ) {\n // if (this.widget.value === '') {\n if (this.modelItem.value === '') {\n this.classList.add('isEmpty');\n this._toggleValid(false);\n } else {\n this.classList.remove('isEmpty');\n this._toggleValid(true);\n }\n }\n this.widget.setAttribute('required', '');\n this.setAttribute('required', '');\n this._dispatchEvent('required');\n } else {\n this.widget.removeAttribute('required');\n this.removeAttribute('required');\n this._dispatchEvent('optional');\n }\n }\n\n _toggleValid(valid) {\n if (valid) {\n this.removeAttribute('invalid');\n this.setAttribute('valid', '');\n } else {\n this.removeAttribute('valid');\n this.setAttribute('invalid', '');\n }\n }\n\n handleReadonly() {\n // console.log('mip readonly', this.modelItem.isReadonly);\n if (this.isReadonly() !== this.modelItem.readonly) {\n if (this.modelItem.readonly) {\n this.widget.setAttribute('readonly', '');\n this.setAttribute('readonly', '');\n this._dispatchEvent('readonly');\n }\n if (!this.modelItem.readonly) {\n this.widget.removeAttribute('readonly');\n this.removeAttribute('readonly');\n this._dispatchEvent('readwrite');\n }\n }\n }\n\n // todo - review alert handling altogether. There could be potentially multiple ones in model\n handleValid() {\n // console.log('mip valid', this.modelItem.required);\n\n // console.log('late modelItem', mi);\n if (this.isValid() !== this.modelItem.constraint) {\n if (this.modelItem.constraint) {\n // if (alert) alert.style.display = 'none';\n this._dispatchEvent('valid');\n this.setAttribute('valid', '');\n this.removeAttribute('invalid');\n } else {\n this.setAttribute('invalid', '');\n this.removeAttribute('valid');\n // ### constraint is invalid - handle alerts\n /*\n if (alert) {\n alert.style.display = 'block';\n }\n*/\n if (this.modelItem.alerts.length !== 0) {\n const controlAlert = this.querySelector('fx-alert');\n if (!controlAlert) {\n const { alerts } = this.modelItem;\n // console.log('alerts from bind: ', alerts);\n alerts.forEach(modelAlert => {\n const newAlert = document.createElement('fx-alert');\n // const newAlert = document.createElement('span');\n newAlert.innerHTML = modelAlert;\n this.appendChild(newAlert);\n // newAlert.style.display = 'block';\n });\n }\n }\n\n // this.dispatchEvent(new CustomEvent('invalid', {}));\n this._dispatchEvent('invalid');\n }\n }\n }\n\n handleRelevant() {\n // console.log('mip valid', this.modelItem.enabled);\n const item = this.modelItem.node;\n this.removeAttribute('relevant');\n this.removeAttribute('nonrelevant');\n if (Array.isArray(item) && item.length === 0) {\n this._dispatchEvent('nonrelevant');\n this.setAttribute('nonrelevant', '');\n // this.style.display = 'none';\n return;\n }\n if (this.isEnabled() !== this.modelItem.relevant) {\n if (this.modelItem.relevant) {\n this._dispatchEvent('relevant');\n // this._fadeIn(this, this.display);\n this.setAttribute('relevant', '');\n // this.style.display = this.display;\n } else {\n this._dispatchEvent('nonrelevant');\n // this._fadeOut(this);\n this.setAttribute('nonrelevant', '');\n // this.style.display = 'none';\n }\n }\n }\n\n isRequired() {\n return this.hasAttribute('required');\n }\n\n isValid() {\n return !this.hasAttribute('invalid');\n }\n\n isReadonly() {\n // const widget = this.querySelector('#widget');\n return this.hasAttribute('readonly');\n }\n\n isEnabled() {\n return !this.hasAttribute('nonrelevant');\n }\n\n // eslint-disable-next-line class-methods-use-this\n _fadeOut(el) {\n el.style.opacity = 1;\n\n (function fade() {\n // eslint-disable-next-line no-cond-assign\n if ((el.style.opacity -= 0.1) < 0) {\n el.style.display = 'none';\n } else {\n requestAnimationFrame(fade);\n }\n })();\n }\n\n // eslint-disable-next-line class-methods-use-this\n _fadeIn(el, display) {\n el.style.opacity = 0;\n el.style.display = display || 'block';\n\n (function fade() {\n let val = parseFloat(el.style.opacity);\n // eslint-disable-next-line no-cond-assign\n if (!((val += 0.1) > 1)) {\n el.style.opacity = val;\n requestAnimationFrame(fade);\n }\n })();\n }\n}\nif (!customElements.get('fx-abstract-control')) {\n window.customElements.define('fx-abstract-control', AbstractControl);\n}\n","import AbstractControl from './abstract-control.js';\n\nexport class FxAlert extends AbstractControl {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n\n connectedCallback() {\n const style = `\n :host {\n height: auto;\n font-size: 0.8em;\n font-weight: 400;\n color: red;\n }\n `;\n\n const html = `\n <slot></slot>\n `;\n\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${html}\n `;\n }\n\n getWidget() {\n return this;\n }\n\n async updateWidgetValue() {\n this.innerHTML = this.value;\n }\n}\nif (!customElements.get('fx-alert')) {\n customElements.define('fx-alert', FxAlert);\n}\n","export function leadingDebounce(caller, func, timeout = 300) {\n let timer;\n return (...args) => {\n if (!timer) {\n func.apply(caller, args);\n }\n clearTimeout(timer);\n timer = setTimeout(() => {\n timer = undefined;\n return null;\n }, timeout);\n };\n}\n\nexport function debounce(caller, func, timeout = 300) {\n let timer;\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n func.apply(caller, args);\n }, timeout);\n };\n}\n","import XfAbstractControl from './abstract-control.js';\nimport {\n evaluateXPath,\n evaluateXPathToString,\n evaluateXPathToFirstNode,\n} from '../xpath-evaluation.js';\nimport getInScopeContext from '../getInScopeContext.js';\nimport { Fore } from '../fore.js';\nimport { ModelItem } from '../modelitem.js';\nimport { debounce } from '../events.js';\nimport { FxModel } from '../fx-model.js';\n\nconst WIDGETCLASS = 'widget';\n\n/**\n * `fx-control`\n * a generic wrapper for controls\n *\n *\n *\n * @customElement\n * @demo demo/index.html\n */\n\n/*\nfunction debounce( func, timeout = 300) {\n let timer;\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n func.apply(this, args);\n }, timeout);\n };\n}\n*/\nexport default class FxControl extends XfAbstractControl {\n constructor() {\n super();\n this.inited = false;\n this.nodeset = null;\n this.attachShadow({ mode: 'open' });\n }\n\n static get properties() {\n return {\n ...XfAbstractControl.properties,\n credentials: {\n type: String,\n },\n initial: {\n type: Boolean,\n },\n src: {\n type: String,\n },\n };\n }\n\n _getValueFromHtmlDom() {\n if (this.valueProp === 'selectedOptions') {\n // We have multiple! Just return that as space-separated for now\n return [...this.widget.selectedOptions].map(option => option.value).join(' ');\n }\n return this.widget[this.valueProp];\n }\n\n connectedCallback() {\n this.initial = this.hasAttribute('initial') ? this.getAttribute('initial') : null;\n this.src = this.hasAttribute('src') ? this.getAttribute('src') : null;\n this.loaded = false;\n this.initialNode = null;\n this.debounceDelay = this.hasAttribute('debounce') ? this.getAttribute('debounce') : null;\n\n this.updateEvent = this.hasAttribute('update-event')\n ? this.getAttribute('update-event')\n : 'blur';\n this.label = this.hasAttribute('label') ? this.getAttribute('label') : null;\n const style = `\n :host{\n display:inline-block;\n }\n `;\n\n this.credentials = this.hasAttribute('credentials')\n ? this.getAttribute('credentials')\n : 'same-origin';\n if (!['same-origin', 'include', 'omit'].includes(this.credentials)) {\n console.error(\n `fx-submission: the value of credentials is not valid. Expected 'same-origin', 'include' or 'omit' but got '${this.credentials}'`,\n this,\n );\n }\n\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${this.renderHTML(this.ref)}\n `;\n\n this.widget = this.getWidget();\n\n this.addEventListener('mousedown', e => {\n // ### prevent mousedown events on all control content that is not the widget or within the widget\n if (!Fore.isWidget(e.target) && !e.target?.classList.contains('fx-hint')) {\n e.preventDefault();\n // e.stopImmediatePropagation();\n }\n this.widget.focus();\n });\n\n const defaultValueProp = this.widget.hasAttribute('multiple') ? 'selectedOptions' : 'value';\n this.valueProp = this.hasAttribute('value-prop')\n ? this.getAttribute('value-prop')\n : defaultValueProp;\n\n // console.log('widget ', this.widget);\n let listenOn = this.widget; // default: usually listening on widget\n\n if (this.hasAttribute('listen-on')) {\n const q = this.getAttribute('listen-on');\n const target = this.querySelector(q);\n if (target) {\n listenOn = target;\n }\n }\n\n this.addEventListener('keyup', () => {\n FxModel.dataChanged = true;\n });\n\n // ### convenience marker event\n if (this.updateEvent === 'enter') {\n this.widget.addEventListener('keyup', event => {\n if (event.keyCode === 13) {\n // console.info('handling Event:', event.type, listenOn);\n // Cancel the default action, if needed\n event.preventDefault();\n this.setValue(this._getValueFromHtmlDom());\n }\n });\n this.updateEvent = 'blur'; // needs to be registered too\n }\n if (this.debounceDelay) {\n listenOn.addEventListener(\n this.updateEvent,\n debounce(\n this,\n () => {\n // console.log('eventlistener ', this.updateEvent);\n // console.info('handling Event:', event.type, listenOn);\n this.setValue(this._getValueFromHtmlDom());\n },\n this.debounceDelay,\n ),\n );\n } else {\n listenOn.addEventListener(this.updateEvent, event => {\n this.setValue(this._getValueFromHtmlDom());\n });\n listenOn.addEventListener(\n 'blur',\n event => {\n this.setValue(this._getValueFromHtmlDom());\n },\n { once: true },\n );\n }\n\n this.addEventListener('return', e => {\n const newNodes = e.detail.nodeset;\n e.stopPropagation();\n\n this._replaceNode(newNodes);\n });\n\n this.widget.addEventListener('focus', () => {\n /*\n if (!this.classList.contains('visited')) {\n this.classList.add('visited');\n }\n*/\n });\n\n this.template = this.querySelector('template');\n this.boundInitialized = false;\n this.static = !!this.widget.hasAttribute('static');\n // console.log('template',this.template);\n }\n\n _debounce(func, timeout = 300) {\n let timer;\n return (...args) => {\n const context = this;\n clearTimeout(timer);\n timer = setTimeout(() => {\n func.apply(context, args);\n }, timeout);\n };\n }\n\n /**\n * updates the model with a new value by executing it's `<fx-setvalue>` action.\n *\n * In case the `as='node'` is given the bound node is replaced with the widgets' value with is\n * expected to be a node again.\n *\n * @param val the new value to be set\n */\n setValue(val) {\n const modelitem = this.getModelItem();\n\n if (this.getAttribute('class')) {\n this.classList.add('visited');\n } else {\n this.setAttribute('class', 'visited');\n }\n\n if (modelitem?.readonly) {\n console.warn('attempt to change readonly node', modelitem);\n return; // do nothing when modelItem is readonly\n }\n\n if (this.getAttribute('as') === 'node') {\n const replace = this.shadowRoot.getElementById('replace');\n const widgetValue = this.getWidget()[this.valueProp];\n replace.replace(this.nodeset, widgetValue);\n if (modelitem && widgetValue && widgetValue !== modelitem.value) {\n modelitem.value = widgetValue;\n FxModel.dataChanged = true;\n replace.actionPerformed();\n }\n return;\n }\n const setval = this.shadowRoot.getElementById('setvalue');\n setval.setValue(modelitem, val);\n\n if (this.modelItem instanceof ModelItem && !this.modelItem?.boundControls.includes(this)) {\n this.modelItem.boundControls.push(this);\n }\n\n setval.actionPerformed();\n // this.visited = true;\n }\n\n _replaceNode(node) {\n // Note: clone the node while replacing to prevent the instances to leak through\n if (node.nodeType === Node.ATTRIBUTE_NODE) {\n this.modelItem.node.nodeValue = node.nodeValue;\n } else if (node.nodeType === Node.ELEMENT_NODE) {\n this.modelItem.node.replaceWith(node.cloneNode(true));\n } else if (node.nodeType === Node.TEXT_NODE) {\n this.modelItem.node.nodeValue = node.textContent;\n } else {\n Fore.dispatch(this, 'warn', {\n message: 'trying to replace a node that is neither an Attribute, Elemment or Text node',\n });\n }\n // this.getOwnerForm().refresh();\n }\n\n renderHTML(ref) {\n return `\n ${this.label ? `${this.label}` : ''}\n <slot></slot>\n ${\n this.hasAttribute('as') && this.getAttribute('as') === 'node'\n ? '<fx-replace id=\"replace\" ref=\".\">'\n : `<fx-setvalue id=\"setvalue\" ref=\"${ref}\"></fx-setvalue>`\n }\n\n `;\n }\n\n /**\n * The widget is the actual control being used in the UI e.g. a native input control or any\n * other component that presents a control that can be interacted with.\n *\n * This function returns the widget by querying the children of this control for an element\n * with `class=\"widget\"`. If that cannot be found it searches for an native `input` of any type.\n * If either cannot be found a `<input type=\"text\">` is created.\n *\n * @returns {HTMLElement|*}\n */\n getWidget() {\n if (this.widget) return this.widget;\n let widget = this.querySelector(`.${WIDGETCLASS}`);\n if (!widget) {\n widget = this.querySelector('input');\n if (widget && !widget.classList.contains('widget')) {\n widget.classList.add('widget');\n }\n }\n if (!widget) {\n const input = document.createElement('input');\n input.classList.add(WIDGETCLASS);\n input.setAttribute('type', 'text');\n this.appendChild(input);\n return input;\n }\n return widget;\n }\n\n /**\n * updates the widget from the modelItem value. During refresh the a control\n * evaluates it's binding expression to determine the bound node. The bound node corresponds\n * to a modelItem which acts a the state object of a node. The modelItem determines the value\n * and the state of the node and set the `value` property of this class.\n *\n * @returns {Promise<void>}\n */\n async updateWidgetValue() {\n // this._getValueFromHtmlDom() = this.value;\n\n let { widget } = this;\n if (!widget) {\n widget = this;\n }\n // ### value is bound to checkbox\n if (this.valueProp === 'checked') {\n if (this.value === 'true') {\n widget.checked = true;\n } else {\n widget.checked = false;\n }\n return;\n }\n\n // ### value is bound to radio\n if (this.widget.type === 'radio') {\n const matches = this.querySelector(`input[value=${this.value}]`);\n if (matches) {\n matches.checked = true;\n }\n return;\n }\n\n if (this.valueProp === 'selectedOptions') {\n const valueSet = new Set(this.value.split(' '));\n for (const option of [...this.widget.querySelectorAll('option')]) {\n if (valueSet.has(option.value)) {\n option.selected = true;\n } else {\n option.selected = false;\n }\n }\n return;\n }\n\n if (this.hasAttribute('as')) {\n const as = this.getAttribute('as');\n\n // ### when there's an `as=text` attribute serialize nodeset to prettified string\n if (as === 'text') {\n const serializer = new XMLSerializer();\n const pretty = Fore.prettifyXml(serializer.serializeToString(this.nodeset));\n widget.value = pretty;\n }\n if (as === 'node' && this.nodeset !== widget.value) {\n // const oldVal = this.nodeset.innerHTML;\n const oldVal = this.nodeset;\n if (widget.value) {\n if (oldVal !== this.widget.value) {\n // console.log('changed');\n widget.value = this.nodeset.cloneNode(true);\n return;\n }\n }\n\n widget.value = this.nodeset.cloneNode(true);\n // todo: should be more like below but that can cause infinite loop when controll trigger update event due to calling a setter for property\n // widget[this.valueProp] = this.nodeset.cloneNode(true);\n // console.log('passed value to widget', widget.value);\n }\n\n return;\n }\n\n // ### when there's a src Fore is used as widget and will be loaded from external file\n if (this.src && !this.loaded && this.modelItem.relevant) {\n // ### evaluate initial data if necessary\n\n if (this.initial) {\n this.initialNode = evaluateXPathToFirstNode(this.initial, this.nodeset, this);\n // console.log('initialNodes', this.initialNode);\n }\n\n // ### load the markup from src\n await this._loadForeFromSrc();\n this.loaded = true;\n\n // ### replace default instance of embedded Fore with initial nodes\n // const innerInstance = this.querySelector('fx-instance');\n // console.log('innerInstance',innerInstance);\n return;\n }\n\n if (widget.value !== this.value) {\n widget.value = this.value;\n }\n }\n\n /**\n * loads an external Fore from an HTML file given by `src` attribute and embed it as child of this control.\n *\n * Will look for the `<fx-fore>` element within the returned HTML file and return that element.\n *\n * If that cannot be found an error is dispatched.\n *\n * todo: dispatch link error\n * @private\n */\n async _loadForeFromSrc() {\n console.info(\n `%cControl ref=\"${this.ref}\" is loading ${this.src}`,\n 'background:#64b5f6; color:white; padding:0.5rem; display:inline-block; white-space: nowrap; border-radius:0.3rem;width:100%;',\n );\n try {\n const response = await fetch(this.src, {\n method: 'GET',\n credentials: this.credentials,\n mode: 'cors',\n headers: {\n 'Content-Type': 'text/html',\n },\n });\n\n const responseContentType = response.headers.get('content-type').toLowerCase();\n // console.log('********** responseContentType *********', responseContentType);\n let data;\n if (responseContentType.startsWith('text/html')) {\n data = await response.text().then(result =>\n // console.log('xml ********', result);\n new DOMParser().parseFromString(result, 'text/html'),\n );\n } else {\n data = 'done';\n }\n // const theFore = fxEvaluateXPathToFirstNode('//fx-fore', data.firstElementChild);\n const theFore = data.querySelector('fx-fore');\n const imported = document.importNode(theFore, true);\n\n imported.classList.add('widget'); // is the new widget\n imported.addEventListener(\n 'model-construct-done',\n e => {\n const defaultInst = imported.querySelector('fx-instance');\n if (this.initial) {\n const doc = new DOMParser().parseFromString('<data></data>', 'application/xml');\n // Note: Clone the input to prevent the inner fore from editing the outer node\n // Also update the `initialNode` to make sure we have an up-to-date version\n this.initialNode = evaluateXPathToFirstNode(this.initial, this.nodeset, this);\n\n doc.firstElementChild.appendChild(this.initialNode.cloneNode(true));\n defaultInst.instanceData = doc;\n }\n imported.model = imported.querySelector('fx-model');\n imported.model.updateModel();\n\n imported.refresh(true);\n },\n { once: true },\n );\n\n const dummy = this.querySelector('input');\n /*\n todo: the mechanism to import constructed stylesheets as in fore-component is still missing here.\n There no way yet to specify CSS for a embedded fx-fore in shadowDOM.\n */\n if (this.hasAttribute('shadow')) {\n dummy.parentNode.removeChild(dummy);\n this.shadowRoot.appendChild(imported);\n } else if (!this.loaded) {\n dummy.replaceWith(imported);\n }\n\n if (!theFore) {\n Fore.dispatch('error', {\n detail: {\n message: `Fore element not found in '${this.src}'. Maybe wrapped within 'template' element?`,\n },\n });\n }\n Fore.dispatch('loaded', { detail: { fore: theFore } });\n } catch (error) {\n // console.log('error', error);\n Fore.dispatch(this, 'error', {\n origin: this,\n message: `control couldn't be loaded from src '${this.src}'`,\n level: 'Error',\n });\n }\n }\n\n getTemplate() {\n return this.querySelector('template');\n }\n\n async refresh(force) {\n // console.log('fx-control refresh', this);\n super.refresh(force);\n // console.log('refresh template', this.template);\n // const {widget} = this;\n\n // ### if we find a ref on control we have a 'select' control of some kind\n const widget = this.getWidget();\n this._handleBoundWidget(widget);\n this._handleDataAttributeBinding();\n Fore.refreshChildren(this, force);\n }\n\n /**\n * handle non-Fore elements like 'select' and 'datalist' which have a 'data-ref' attribute\n * @private\n */\n _handleDataAttributeBinding() {\n const dataRefd = this.querySelector('[data-ref]');\n // Handle nested fx-controls\n if (dataRefd && dataRefd.closest('fx-control') === this) {\n this.boundList = dataRefd;\n const ref = dataRefd.getAttribute('data-ref');\n this._handleBoundWidget(dataRefd);\n }\n }\n\n /**\n * If the widget itself has a `ref` it binds to another nodeset to provide some\n * dynamic items to be created from a template usually. Examples are dynamic select option lists\n * or a set of checkboxes.\n *\n * @param widget the widget to handle\n * @private\n */\n _handleBoundWidget(widget) {\n if (this.boundInitialized && this.static) return;\n\n const ref = widget.hasAttribute('ref')\n ? widget.getAttribute('ref')\n : widget.getAttribute('data-ref');\n // if (widget && widget.hasAttribute('ref')) {\n if (widget && ref) {\n // ### eval nodeset for list control\n const inscope = getInScopeContext(this, ref);\n // const nodeset = evaluateXPathToNodes(ref, inscope, this);\n const nodeset = evaluateXPath(ref, inscope, this);\n\n // ### clear items\n const { children } = widget;\n Array.from(children).forEach(child => {\n if (child.nodeName.toLowerCase() !== 'template') {\n child.parentNode.removeChild(child);\n }\n });\n\n // ### bail out when nodeset is array and empty\n if (Array.isArray(nodeset) && nodeset.length === 0) return;\n\n // ### build the items\n const { template } = this;\n if (template) {\n // ### handle 'selection' open and insert an empty option in that case\n if (\n this.widget.nodeName === 'SELECT' &&\n this.widget.hasAttribute('selection') &&\n this.widget.getAttribute('selection') === 'open'\n ) {\n const firstTemplateChild = this.template.firstElementChild;\n // todo: create the element which is used in the template instead of 'option'\n const option = document.createElement('option');\n this.widget.insertBefore(option, firstTemplateChild);\n }\n\n if (nodeset.length !== 0) {\n // console.log('nodeset', nodeset);\n const fragment = document.createDocumentFragment();\n // console.time('offscreen');\n Array.from(nodeset).forEach(node => {\n // console.log('#### node', node);\n // ### initialize new entry\n const newEntry = this.createEntry();\n fragment.appendChild(newEntry);\n // ### set value\n this.updateEntry(newEntry, node);\n });\n this.template.parentNode.appendChild(fragment);\n // console.timeEnd('offscreen');\n } else {\n const newEntry = this.createEntry();\n this.template.parentNode.appendChild(newEntry);\n this.updateEntry(newEntry, nodeset);\n }\n this.boundInitialized = true;\n }\n\n if (this.valueProp === 'selectedOptions') {\n const valueSet = new Set(this.value.split(' '));\n const options = this.getWidget().querySelectorAll('option');\n for (const option of [...options]) {\n if (valueSet.has(option.value)) {\n option.selected = true;\n } else {\n option.selected = false;\n }\n }\n }\n }\n }\n\n updateEntry(newEntry, node) {\n // ### >>> todo: needs rework this code is heavily assuming a select control with 'value' attribute - not generic at all yet.\n\n // if (this.widget.nodeName !== 'SELECT') return;\n const valueAttribute = this._getValueAttribute(newEntry);\n if (!valueAttribute) {\n // Fore.dispatch(this,'warn',{message:'no value attribute specified for template entry.'});\n return;\n }\n\n const valueExpr = valueAttribute.value;\n const cutted = valueExpr.substring(1, valueExpr.length - 1);\n const evaluated = evaluateXPathToString(cutted, node, newEntry);\n valueAttribute.value = evaluated;\n\n if (this.value === evaluated) {\n newEntry.setAttribute('selected', 'selected');\n }\n\n // ### set label\n const optionLabel = newEntry.textContent;\n this.evalLabel(optionLabel, node, newEntry);\n // ### <<< needs rework\n }\n\n evalLabel(optionLabel, node, newEntry) {\n const labelExpr = optionLabel.substring(1, optionLabel.length - 1);\n if (!labelExpr) return;\n\n const label = evaluateXPathToString(labelExpr, node, this);\n newEntry.textContent = label;\n }\n\n createEntry() {\n return this.template.content.firstElementChild.cloneNode(true);\n // const content = this.template.content.firstElementChild.cloneNode(true);\n // return content;\n // const newEntry = document.importNode(content, true);\n // this.template.parentNode.appendChild(newEntry);\n // return newEntry;\n }\n\n // eslint-disable-next-line class-methods-use-this\n _getValueAttribute(element) {\n let result;\n Array.from(element.attributes).forEach(attribute => {\n const attrVal = attribute.value;\n if (attrVal.indexOf('{') !== -1) {\n // console.log('avt found ', attribute);\n result = attribute;\n }\n });\n return result;\n }\n}\nif (!customElements.get('fx-control')) {\n window.customElements.define('fx-control', FxControl);\n}\n","import '../fx-model.js';\nimport ForeElementMixin from '../ForeElementMixin.js';\n\n/**\n * `fx-container` -\n * is a general class for container elements.\n *\n */\nexport class FxContainer extends ForeElementMixin {\n static get properties() {\n return {\n ...super.properties,\n /*\n src: {\n type: String,\n },\n*/\n };\n }\n\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n\n connectedCallback() {\n this.src = this.hasAttribute('src') ? this.getAttribute('src') : null;\n const style = `\n :host {\n display: block;\n }\n `;\n\n const html = `\n <slot></slot>\n `;\n\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${html}\n `;\n if(this.ref !== ''){\n this.getOwnerForm().registerLazyElement(this);\n }\n\n /*\n this.addEventListener('mousedown', e => {\n\n if(e.target === this){\n e.preventDefault();\n // e.stopImmediatePropagation();\n }\n } );\n*/\n }\n\n /**\n * (re)apply all state properties to this control.\n */\n async refresh(force) {\n if (!force && this.hasAttribute('refresh-on-view')) return;\n // console.log('### FxContainer.refresh on : ', this);\n\n // if loading from 'src' needs to be done do it now\n /*\n if(this.src){\n await Fore.loadForeFromSrc(this,this.src,'fx-group')\n .then(foreElement =>{\n this.getOwnerForm().registerLazyElement(foreElement);\n foreElement.refresh();\n })\n }\n*/\n if (this.isBound()) {\n this.evalInContext();\n this.modelItem = this.getModelItem();\n if (this.modelItem && !this.modelItem.boundControls.includes(this)) {\n this.modelItem.boundControls.push(this);\n }\n this.handleModelItemProperties();\n }\n\n // state change event do not fire during init phase (initial refresh)\n // if (this._getForm().ready) {\n // this.handleModelItemProperties();\n // }\n // Fore.refreshChildren(this, force);\n }\n\n /**\n * relevance is processed for container controls only\n */\n handleModelItemProperties() {\n this.handleRelevant();\n }\n\n _getForm() {\n return this.getModel().parentNode;\n }\n\n handleRelevant() {\n // console.log('mip valid', this.modelItem.enabled);\n if (!this.modelItem) {\n // console.log('container is not relevant');\n this.removeAttribute('relevant', '');\n this.setAttribute('nonrelevant', '');\n this.dispatchEvent(new CustomEvent('disabled', {}));\n return;\n }\n\n if (this.isEnabled() !== this.modelItem.enabled) {\n if (this.modelItem.relevant) {\n // this.style.display = 'block';\n this.removeAttribute('nonrelevant', '');\n this.setAttribute('relevant', '');\n this.dispatchEvent(new CustomEvent('enabled', {}));\n } else {\n this.removeAttribute('relevant', '');\n this.setAttribute('nonrelevant', '');\n this.dispatchEvent(new CustomEvent('disabled', {}));\n }\n }\n }\n\n isReadonly() {\n if (this.hasAttribute('readonly')) {\n return true;\n }\n return false;\n }\n\n isEnabled() {\n if (this.style.display === 'none') {\n return false;\n }\n return true;\n }\n}\n\nif (!customElements.get('fx-container')) {\n window.customElements.define('fx-container', FxContainer);\n}\n","import { Fore } from '../fore.js';\n// import XfAbstractControl from \"./fx-abstract-control\";\nimport { FxContainer } from './fx-container.js';\n\n/**\n * `fx-group`\n * a container allowing to switch between fx-case elements\n *\n *\n * * todo: implement\n * @customElement\n */\nclass FxGroup extends FxContainer {\n static get properties() {\n return {\n ...super.properties,\n collapse: {\n type: Boolean,\n reflect: true,\n },\n };\n }\n /*\n init(model){\n super.init(model);\n console.log(this, this.modelItem);\n\n // this.initializeChildren(this);\n }\n */\n\n constructor() {\n super();\n this.collapse = false;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'group');\n }\n\n render() {\n return `\n <slot></slot>\n `;\n }\n\n /**\n * overwrites Abstract Control.\n *\n * Groups only reacts to 'relevant' property.\n */\n handleModelItemProperties() {\n this.handleRelevant();\n }\n\n initializeChildren(node) {\n const children = Array.from(node.children);\n // console.log('_initializeChildren ', children);\n\n children.forEach(child => {\n // console.log('child ', child);\n\n if (Fore.isUiElement(child.nodeName)) {\n child.init(this.model);\n } else if (child.children.length !== 0) {\n const grantChildren = Array.from(child.children);\n grantChildren.forEach(grantChild => {\n this.initializeChildren(grantChild);\n });\n }\n });\n /*\n if(Fore.isUiElement(node.nodeName)){\n const childElements = children.filter( action => Fore.isUiElement(action.nodeName));\n console.log('children ', childElements);\n console.group('init children');\n if(childElements.length > 0){\n childElements.forEach( child => {\n console.log('action ', child);\n child.init(this.model);\n });\n }\n }else if(node){\n this._initializeChildren(node);\n }\n */\n\n console.groupEnd();\n }\n\n async refresh(force) {\n super.refresh(force);\n // Make the maybe filtered refresh an unconditional forced refresh: This fx-group changes the\n // context item\n Fore.refreshChildren(this, !!force);\n }\n}\n\nif (!customElements.get('fx-group')) {\n window.customElements.define('fx-group', FxGroup);\n}\n","import XfAbstractControl from './abstract-control.js';\n\n/**\n * @deprecated - can easily be substituted with template expression and usual <span>.\n */\nexport class FxHint extends XfAbstractControl {\n static get styles() {\n return `\n :host {\n display: block;\n height: auto;\n font-size: 0.8em;\n font-weight: 400;\n font-style: italic;\n }\n `;\n }\n\n static get properties() {\n return {\n ...super.properties,\n };\n }\n\n render() {\n return `\n <slot></slot>\n `;\n }\n\n /*\n isRequired() {\n return false;\n }\n\n isReadonly () {\n return true;\n }\n*/\n\n /*\n handleRequired () {}\n\n handleReadonly () {\n // super.handleReadonly();\n }\n*/\n}\n\nif (!customElements.get('fx-hint')) {\n customElements.define('fx-hint', FxHint);\n}\n","import { Fore } from '../fore.js';\nimport XfAbstractControl from './abstract-control.js';\nimport { evaluateXPath, evaluateXPathToStrings } from '../xpath-evaluation.js';\nimport getInScopeContext from '../getInScopeContext.js';\n// import {markdown} from '../drawdown.js';\n\n/**\n * todo: review placing of value. should probably work with value attribute and not allow slotted content.\n */\nexport class FxOutput extends XfAbstractControl {\n /*\n static get properties() {\n return {\n ...super.properties,\n valueAttr: {\n type: String,\n },\n };\n }\n\n*/\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n this.valueAttr = this.hasAttribute('value') ? this.getAttribute('value') : null;\n // Outputs are always readonly!\n this.readonly = true;\n }\n\n connectedCallback() {\n const style = `\n :host {\n display: inline-block;\n max-width:100%;\n }\n #widget {\n display: inline-block;\n }\n .label{\n display: inline-block;\n }\n #value{\n max-width:100%;\n }\n `;\n\n const outputHtml = `\n <slot name=\"label\"></slot>\n \n <span id=\"value\">\n <slot name=\"default\"></slot>\n </span>\n `;\n\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${outputHtml}\n `;\n // this.widget = this.shadowRoot.querySelector('#widget');\n // this.widget = this.getWidget();\n // console.log('widget ', this.widget);\n this.mediatype = this.hasAttribute('mediatype') ? this.getAttribute('mediatype') : null;\n\n /*\n this.addEventListener('slotchange', e => {\n console.log('slotchange ', e);\n });\n*/\n }\n\n async refresh() {\n // Resolve the ref first. The ref will set the `nodeset` which is important for the 'context'\n if (this.ref) {\n await super.refresh();\n }\n\n // ### 2. Eval the value\n if (this.valueAttr) {\n this.value = this.getValue();\n await this.updateWidgetValue();\n }\n }\n\n getValue() {\n // return 'foobar';\n try {\n const inscopeContext = getInScopeContext(this, this.valueAttr);\n if (this.hasAttribute('html')) {\n return evaluateXPath(this.valueAttr, inscopeContext, this)[0];\n }\n\n return evaluateXPathToStrings(this.valueAttr, inscopeContext, this)[0];\n } catch (error) {\n console.error(error);\n Fore.dispatch(this, 'error', { message: error });\n }\n return null;\n }\n\n getWidget() {\n const valueWrapper = this.shadowRoot.getElementById('value');\n return valueWrapper;\n }\n\n handleReadonly() {\n // An output is always read-only\n this.setAttribute('readonly', 'readonly');\n }\n\n async updateWidgetValue() {\n // console.log('updateWidgetValue');\n const valueWrapper = this.shadowRoot.getElementById('value');\n valueWrapper.innerHTML = '';\n\n // if (this.mediatype === 'markdown') {\n // const md = markdown(this.nodeset);\n // this.innerHtml = md;\n // }\n\n if (this.mediatype === 'html') {\n if (this.modelItem.node) {\n const defaultSlot = this.shadowRoot.querySelector('#default');\n const { node } = this.modelItem;\n if (node.nodeType) {\n valueWrapper.append(node);\n // this.appendChild(node);\n return;\n }\n\n // ### try to parse as string\n const tmpDoc = new DOMParser().parseFromString(node, 'text/html');\n const theNode = tmpDoc.body.childNodes;\n // console.log('actual node', theNode)\n Array.from(theNode).forEach(n => {\n valueWrapper.append(n);\n });\n // valueWrapper.append(theNode);\n\n // valueWrapper.innerHTML=node;\n /*\n if (node.nodeType) {\n this.appendChild(node);\n return;\n }\n Object.entries(node).map(obj => {\n // valueWrapper.appendChild(obj[1]);\n this.appendChild(obj[1]);\n });\n*/\n /*\n Object.entries(node).map(obj => {\n // valueWrapper.appendChild(obj[1]);\n this.appendChild(obj[1]);\n });\n*/\n\n return;\n }\n\n // this.innerHTML = this.value.outerHTML;\n // valueWrapper.innerHTML = this.value.outerHTML;\n\n // this.shadowRoot.appendChild(this.value);\n return;\n }\n\n if (this.mediatype === 'image') {\n const img = document.createElement('img');\n img.setAttribute('src', this.value);\n // Reset the output before adding the image\n this.innerHTML = '';\n valueWrapper.appendChild(img);\n return;\n }\n\n valueWrapper.innerHTML = this.value;\n }\n\n isReadonly() {\n return true;\n }\n}\n\nif (!customElements.get('fx-output')) {\n customElements.define('fx-output', FxOutput);\n}\n","import { Fore } from '../fore.js';\nimport ForeElementMixin from '../ForeElementMixin.js';\nimport { withDraggability } from '../withDraggability.js';\n\n/**\n * `fx-repeat`\n * an xformish form for eXist-db\n *\n * @customElement\n * @demo demo/index.html\n *\n * @extends {ForeElementMixin}\n */\nexport class FxRepeatitem extends withDraggability(ForeElementMixin, true) {\n static get properties() {\n return {\n ...super.properties,\n inited: {\n type: Boolean,\n },\n };\n }\n\n constructor() {\n super();\n this.inited = false;\n\n this.addEventListener('click', this._dispatchIndexChange);\n // this.addEventListener('focusin', this._handleFocus);\n this.addEventListener('focusin', this._dispatchIndexChange);\n\n this.attachShadow({ mode: 'open', delegatesFocus: true });\n\n this.dropTarget = null;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.display = this.style.display;\n\n const html = `\n <slot></slot>\n `;\n\n this.shadowRoot.innerHTML = `\n ${html}\n `;\n this.getOwnerForm().registerLazyElement(this);\n\n this.ref = `${this.parentNode.ref}`;\n\n this.tabindex = 0;\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('click', this._dispatchIndexChange);\n this.removeEventListener('focusin', this._handleFocus);\n }\n\n init() {\n // console.log('repeatitem init model ', this.nodeset);\n // this._initializeChildren(this);\n this.inited = true;\n }\n\n /*\n getModelItem() {\n super.getModelItem();\n // console.log('modelItem in repeatitem ', this.getModelItem()[this.index]);\n return this.getModelItem()[this.index];\n }\n */\n\n _dispatchIndexChange() {\n /**\n * @type {import('./fx-repeat.js').FxRepeat}\n */\n const repeat = this.parentNode;\n if (repeat.index === this.index) {\n // The index did not really change if it did not change :wink:\n return;\n }\n this.dispatchEvent(\n new CustomEvent('item-changed', {\n composed: false,\n bubbles: true,\n detail: { item: this, index: this.index },\n }),\n );\n }\n\n refresh(force) {\n this.modelItem = this.getModelItem();\n // ### register ourselves as boundControl\n if (!this.modelItem.boundControls.includes(this)) {\n this.modelItem.boundControls.push(this);\n\n if (this.modelItem && !this.modelItem.relevant) {\n this.removeAttribute('relevant');\n this.setAttribute('nonrelevant', '');\n } else {\n this.removeAttribute('nonrelevant');\n this.setAttribute('relevant', '');\n }\n }\n // Always recurse for these refreshes, especially when forced\n Fore.refreshChildren(this, force);\n }\n}\n\nif (!customElements.get('fx-repeatitem')) {\n window.customElements.define('fx-repeatitem', FxRepeatitem);\n}\n","import './fx-repeatitem.js';\n\nimport { Fore } from '../fore.js';\nimport ForeElementMixin from '../ForeElementMixin.js';\nimport { evaluateXPath } from '../xpath-evaluation.js';\nimport getInScopeContext from '../getInScopeContext.js';\nimport { XPathUtil } from '../xpath-util.js';\nimport { withDraggability } from '../withDraggability.js';\n\n// import {DependencyNotifyingDomFacade} from '../DependencyNotifyingDomFacade';\n\n/**\n * `fx-repeat`\n *\n * Repeats its template for each node in its' bound nodeset.\n *\n * Template is a standard HTML `<template>` element. Once instanciated the template\n * is moved to the shadowDOM of the repeat for safe re-use.\n *\n *\n *\n * @customElement\n * @demo demo/todo.html\n *\n * todo: it should be seriously be considered to extend FxContainer instead but needs refactoring first.\n * @extends {ForeElementMixin}\n */\nexport class FxRepeat extends withDraggability(ForeElementMixin, false) {\n static get properties() {\n return {\n ...super.properties,\n index: {\n type: Number,\n },\n template: {\n type: Object,\n },\n focusOnCreate: {\n type: String,\n },\n initDone: {\n type: Boolean,\n },\n repeatIndex: {\n type: Number,\n },\n nodeset: {\n type: Array,\n },\n };\n }\n\n constructor() {\n super();\n this.ref = '';\n this.dataTemplate = [];\n this.isDraggable = null;\n this.dropTarget = null;\n this.focusOnCreate = '';\n this.initDone = false;\n this.repeatIndex = 1;\n this.nodeset = [];\n this.inited = false;\n this.index = 1;\n this.repeatSize = 0;\n this.attachShadow({ mode: 'open', delegatesFocus: true });\n }\n\n get repeatSize() {\n return this.querySelectorAll(':scope > fx-repeatitem').length;\n }\n\n set repeatSize(size) {\n this.size = size;\n }\n\n setIndex(index) {\n // console.log('new repeat index ', index);\n this.index = index;\n const rItems = this.querySelectorAll(':scope > fx-repeatitem');\n this.applyIndex(rItems[this.index - 1]);\n\n this.getOwnerForm().refresh({ reason: 'index-function' });\n }\n\n applyIndex(repeatItem) {\n this._removeIndexMarker();\n if (repeatItem) {\n repeatItem.setAttribute('repeat-index', '');\n }\n }\n\n get index() {\n return parseInt(this.getAttribute('index'), 10);\n }\n\n set index(idx) {\n this.setAttribute('index', idx);\n }\n\n _getRef() {\n return this.getAttribute('ref');\n }\n\n connectedCallback() {\n super.connectedCallback();\n // console.log('connectedCallback',this);\n // this.display = window.getComputedStyle(this, null).getPropertyValue(\"display\");\n this.ref = this.getAttribute('ref');\n // this.ref = this._getRef();\n // console.log('### fx-repeat connected ', this.id);\n this.addEventListener('item-changed', e => {\n const { item } = e.detail;\n const idx = Array.from(this.children).indexOf(item);\n // Warning: index is one-based\n this.setIndex(idx + 1);\n });\n // todo: review - this is just used by append action - event consolidation ?\n document.addEventListener('index-changed', e => {\n e.stopPropagation();\n if (!e.target === this) return;\n // const { item } = e.detail;\n // const idx = Array.from(this.children).indexOf(item);\n const { index } = e.detail;\n this.index = parseInt(index, 10);\n this.applyIndex(this.children[index - 1]);\n });\n /*\n document.addEventListener('insert', e => {\n const nodes = e.detail.insertedNodes;\n this.index = e.detail.position;\n console.log('insert catched', nodes, this.index);\n });\n */\n\n // if (this.getOwnerForm().lazyRefresh) {\n this.mutationObserver = new MutationObserver(mutations => {\n // console.log('mutations', mutations);\n\n if (mutations[0].type === 'childList') {\n const added = mutations[0].addedNodes[0];\n if (added) {\n const instance = XPathUtil.resolveInstance(this, this.ref);\n const path = XPathUtil.getPath(added, instance);\n // console.log('path mutated', path);\n // this.dispatch('path-mutated',{'path':path,'nodeset':this.nodeset,'index': this.index});\n // this.index = index;\n // const prev = mutations[0].previousSibling.previousElementSibling;\n // const index = prev.index();\n // this.applyIndex(this.index -1);\n\n Fore.dispatch(this, 'path-mutated', { path, index: this.index });\n }\n }\n });\n // }\n this.getOwnerForm().registerLazyElement(this);\n\n const style = `\n :host{\n }\n .fade-out-bottom {\n -webkit-animation: fade-out-bottom 0.7s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;\n animation: fade-out-bottom 0.7s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;\n }\n .fade-out-bottom {\n -webkit-animation: fade-out-bottom 0.7s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;\n animation: fade-out-bottom 0.7s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;\n }\n `;\n const html = `\n <slot name=\"header\"></slot>\n <slot></slot>\n `;\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${html}\n `;\n\n // this.init();\n }\n\n _createNewRepeatItem() {\n const newItem = document.createElement('fx-repeatitem');\n\n if (this.isDraggable) {\n newItem.setAttribute('draggable', 'true');\n newItem.setAttribute('tabindex', 0);\n }\n const clone = this._clone();\n newItem.appendChild(clone);\n\n return newItem;\n }\n\n init() {\n // ### there must be a single 'template' child\n console.log('##### repeat init ', this.id);\n // if(!this.inited) this.init();\n // does not use this.evalInContext as it is expecting a nodeset instead of single node\n this._evalNodeset();\n // console.log('##### ',this.id, this.nodeset);\n\n this._initTemplate();\n this._initRepeatItems();\n\n this.setAttribute('index', this.index);\n this.inited = true;\n }\n\n /**\n * repeat has no own modelItems\n * @private\n */\n _evalNodeset() {\n // const inscope = this.getInScopeContext();\n const inscope = getInScopeContext(this.getAttributeNode('ref') || this, this.ref);\n // console.log('##### inscope ', inscope);\n // console.log('##### ref ', this.ref);\n // now we got a nodeset and attach MutationObserver to it\n\n if (this.mutationObserver && inscope.nodeName) {\n this.mutationObserver.observe(inscope, {\n childList: true,\n subtree: true,\n });\n }\n\n /*\n this.touchedPaths = new Set();\n const instance = XPathUtil.resolveInstance(this, this.ref);\n const depTrackDomfacade = new DependencyNotifyingDomFacade((node) => {\n this.touchedPaths.add(XPathUtil.getPath(node, instance));\n });\n const rawNodeset = evaluateXPath(this.ref, inscope, this, {}, {}, depTrackDomfacade );\n */\n const rawNodeset = evaluateXPath(this.ref, inscope, this);\n\n // console.log('Touched!', this.ref, [...this.touchedPaths].join(', '));\n if (rawNodeset.length === 1 && Array.isArray(rawNodeset[0])) {\n // This XPath likely returned an XPath array. Just collapse to that array\n this.nodeset = rawNodeset[0];\n return;\n }\n this.nodeset = rawNodeset;\n }\n\n async refresh(force) {\n // console.group('fx-repeat.refresh on', this.id);\n\n if (!this.inited) this.init();\n // console.time('repeat-refresh', this);\n this._evalNodeset();\n\n // ### register ourselves as boundControl\n /*\n const modelItem = this.getModelItem();\n if (!modelItem.boundControls.includes(this)) {\n modelItem.boundControls.push(this);\n }\n */\n // console.log('repeat refresh nodeset ', this.nodeset);\n // console.log('repeatCount', this.repeatCount);\n\n const repeatItems = this.querySelectorAll(':scope > fx-repeatitem');\n const repeatItemCount = repeatItems.length;\n\n let nodeCount = 1;\n if (Array.isArray(this.nodeset)) {\n nodeCount = this.nodeset.length;\n }\n\n // const contextSize = this.nodeset.length;\n const contextSize = nodeCount;\n // todo: review - cant the context really never be smaller than the repeat count?\n // todo: this code can be deprecated probably but check first\n if (contextSize < repeatItemCount) {\n for (let position = repeatItemCount; position > contextSize; position -= 1) {\n // remove repeatitem\n const itemToRemove = repeatItems[position - 1];\n itemToRemove.parentNode.removeChild(itemToRemove);\n this.getOwnerForm().unRegisterLazyElement(itemToRemove);\n // this._fadeOut(itemToRemove);\n // Fore.fadeOutElement(itemToRemove)\n }\n }\n\n if (contextSize > repeatItemCount) {\n for (let position = repeatItemCount + 1; position <= contextSize; position += 1) {\n // add new repeatitem\n\n const newItem = this._createNewRepeatItem();\n\n this.appendChild(newItem);\n this._initVariables(newItem);\n\n newItem.nodeset = this.nodeset[position - 1];\n newItem.index = position;\n\n if (this.getOwnerForm().createNodes) {\n this.getOwnerForm().initData(newItem);\n }\n\n // Tell the owner form we might have new template expressions here\n this.getOwnerForm().scanForNewTemplateExpressionsNextRefresh();\n }\n }\n\n // ### update nodeset of repeatitems\n for (let position = 0; position < repeatItemCount; position += 1) {\n const item = repeatItems[position];\n this.getOwnerForm().registerLazyElement(item);\n\n if (item.nodeset !== this.nodeset[position]) {\n item.nodeset = this.nodeset[position];\n }\n }\n\n // Fore.refreshChildren(clone,true);\n const fore = this.getOwnerForm();\n if (!fore.lazyRefresh || force) {\n Fore.refreshChildren(this, force);\n }\n // this.style.display = 'block';\n // this.style.display = this.display;\n this.setIndex(this.index);\n // console.timeEnd('repeat-refresh');\n\n // this.replaceWith(clone);\n\n // this.repeatCount = contextSize;\n // console.log('repeatCount', this.repeatCount);\n }\n\n // eslint-disable-next-line class-methods-use-this\n _fadeOut(el) {\n el.style.opacity = 1;\n\n (function fade() {\n // eslint-disable-next-line no-cond-assign\n if ((el.style.opacity -= 0.1) < 0) {\n el.style.display = 'none';\n } else {\n requestAnimationFrame(fade);\n }\n })();\n }\n\n // eslint-disable-next-line class-methods-use-this\n _fadeIn(el) {\n if (!el) return;\n\n el.style.opacity = 0;\n el.style.display = this.display;\n\n (function fade() {\n // setTimeout(() => {\n let val = parseFloat(el.style.opacity);\n // eslint-disable-next-line no-cond-assign\n if (!((val += 0.1) > 1)) {\n el.style.opacity = val;\n requestAnimationFrame(fade);\n }\n // }, 40);\n })();\n }\n\n _initTemplate() {\n this.template = this.querySelector('template');\n // console.log('### init template for repeat ', this.id, this.template);\n // todo: this.dropTarget not needed?\n this.dropTarget = this.template.getAttribute('drop-target');\n this.isDraggable = this.template.hasAttribute('draggable')\n ? this.template.getAttribute('draggable')\n : null;\n\n if (this.template === null) {\n // todo: catch this on form element\n this.dispatchEvent(\n new CustomEvent('no-template-error', {\n composed: true,\n bubbles: true,\n detail: { message: `no template found for repeat:${this.id}` },\n }),\n );\n }\n\n this.shadowRoot.appendChild(this.template);\n }\n\n _initRepeatItems() {\n this.nodeset.forEach((item, index) => {\n const repeatItem = this._createNewRepeatItem();\n repeatItem.nodeset = this.nodeset[index];\n repeatItem.index = index + 1; // 1-based index\n\n this.appendChild(repeatItem);\n\n if (this.getOwnerForm().createNodes) {\n this.getOwnerForm().initData(repeatItem);\n }\n\n if (repeatItem.index === 1) {\n this.applyIndex(repeatItem);\n }\n // console.log('*********repeat item created', repeatItem.nodeset)\n Fore.dispatch(this, 'item-created', { nodeset: repeatItem.nodeset, pos: index + 1 });\n this._initVariables(repeatItem);\n });\n }\n\n _initVariables(newRepeatItem) {\n const inScopeVariables = new Map(this.inScopeVariables);\n newRepeatItem.setInScopeVariables(inScopeVariables);\n (function registerVariables(node) {\n for (const child of node.children) {\n if ('setInScopeVariables' in child) {\n child.setInScopeVariables(inScopeVariables);\n }\n registerVariables(child);\n }\n })(newRepeatItem);\n }\n\n _clone() {\n // const content = this.template.content.cloneNode(true);\n this.template = this.shadowRoot.querySelector('template');\n const content = this.template.content.cloneNode(true);\n return document.importNode(content, true);\n }\n\n _removeIndexMarker() {\n Array.from(this.children).forEach(item => {\n item.removeAttribute('repeat-index');\n });\n }\n\n setInScopeVariables(inScopeVariables) {\n // Repeats are interesting: the variables should be scoped per repeat item, they should not be\n // able to see the variables in adjacent repeat items!\n this.inScopeVariables = new Map(inScopeVariables);\n }\n}\n\nif (!customElements.get('fx-repeat')) {\n window.customElements.define('fx-repeat', FxRepeat);\n}\n","import { Fore } from '../fore.js';\nimport { FxContainer } from './fx-container.js';\n\n/**\n * `fx-switch`\n * a container allowing to switch between fx-case elements\n *\n * @customElement\n */\nclass FxSwitch extends FxContainer {\n /*\n constructor() {\n super();\n // this.attachShadow({ mode: 'open' });\n }\n */\n\n constructor() {\n super();\n this.formerCase = {};\n this.selectedCase = null;\n this.cases = null;\n this.visitedResetted = false;\n }\n\n connectedCallback() {\n if (super.connectedCallback) {\n super.connectedCallback();\n }\n const style = `\n :host ::slotted(fx-case.selected-case){\n display: block;\n }\n `;\n const html = `\n <slot></slot>\n `;\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${html}\n `;\n this.cases = [];\n this.formerCase = null;\n this.selectedCase = null;\n }\n\n async refresh(force) {\n super.refresh(force);\n // console.log('refresh on switch ');\n if (this.cases.length === 0) {\n this.cases = Array.from(this.querySelectorAll(':scope > fx-case'));\n }\n\n if (this.isBound()) {\n this._handleBoundSwitch();\n }\n if (!this.selectedCase) {\n this.selectedCase = this.cases[0]; // first is always default\n this.toggle(this.selectedCase);\n }\n\n Fore.refreshChildren(this.selectedCase, force);\n }\n\n _dispatchEvents() {\n if(this.selectedCase === this.formerCase) return;\n if (this.formerCase && this.formerCase !== this.selectedCase) {\n Fore.dispatch(this.formerCase, 'deselect', {});\n }\n if (this.selectedCase.classList.contains('selected-case')) {\n Fore.dispatch(this.selectedCase, 'select', {});\n }\n }\n\n _resetVisited() {\n if(this.visitedResetted) return;\n\n const visited = this.selectedCase.querySelectorAll('.visited');\n Array.from(visited).forEach(v => {\n v.classList.remove('visited');\n });\n this.visitedResetted = true;\n }\n\n /**\n * handles switches being bound. If modelItem value matches the 'name' attribute that case will be toggled.\n * @private\n */\n _handleBoundSwitch() {\n Array.from(this.cases).forEach(caseElem => {\n const name = caseElem.getAttribute('name');\n if (name === this.modelItem?.value) {\n this.toggle(caseElem);\n }\n });\n }\n\n /**\n * Replace an old case with a new case element.\n *\n * @param {import('./fx-case.js').FxCase} oldCase\n * @param {import('./fx-case.js').FxCase} newCase\n */\n async replaceCase(oldCase, newCase) {\n this.cases.splice(this.cases.indexOf(oldCase), 1, newCase);\n\n if (oldCase === this.selectedCase) {\n this.selectedCase = newCase;\n this.formerCase = newCase;\n newCase.classList.add('selected-case');\n newCase.classList.remove('deselected-case');\n newCase.inert = false;\n // Tell the owner form we might have new template expressions here\n this.getOwnerForm().scanForNewTemplateExpressionsNextRefresh();\n } else {\n newCase.classList.add('deselected-case');\n newCase.classList.remove('selected-case');\n newCase.inert = true;\n }\n }\n\n /**\n * Activates a fx-case element by switching CSS classes.\n * Dispatches 'select' and 'deselect' events as appropriate.\n *\n * @param {import('./fx-case.js').FxCase} caseElement the fx-case element to activate\n */\n toggle(caseElement) {\n this.selectedCase = caseElement;\n Array.from(this.cases).forEach(c => {\n if (c === this.selectedCase) {\n c.classList.remove('deselected-case');\n c.classList.add('selected-case');\n c.inert = false;\n } else {\n c.classList.remove('selected-case');\n c.classList.add('deselected-case');\n c.inert = true;\n this._resetVisited();\n }\n });\n\n if (this.selectedCase !== caseElement) {\n this.selectedCase = caseElement;\n }\n this._dispatchEvents();\n this.formerCase = this.selectedCase;\n\n // Tell the owner form we might have new template expressions here\n this.getOwnerForm().scanForNewTemplateExpressionsNextRefresh();\n this.getOwnerForm().getModel().updateModel();\n }\n}\n\nif (!customElements.get('fx-switch')) {\n window.customElements.define('fx-switch', FxSwitch);\n}\n","import XfAbstractControl from './abstract-control.js';\nimport { leadingDebounce } from '../events.js';\n\nexport class FxTrigger extends XfAbstractControl {\n connectedCallback() {\n this.attachShadow({ mode: 'open' });\n this.ref = this.hasAttribute('ref') ? this.getAttribute('ref') : null;\n this.debounceDelay = this.hasAttribute('debounce') ? this.getAttribute('debounce') : null;\n\n const style = `\n :host {\n cursor:pointer;\n }\n `;\n\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${this.renderHTML()}\n `;\n\n const slot = this.shadowRoot.querySelector('slot');\n slot.addEventListener('slotchange', () => {\n const elements = slot.assignedElements({ flatten: true });\n if (!elements[0].getAttribute('tabindex')) {\n elements[0].setAttribute('tabindex', '0');\n }\n if (elements[0].nodeName !== 'BUTTON') {\n elements[0].setAttribute('role', 'button');\n }\n\n const element = elements[0];\n\n this.addEventListener('mousedown', e => {\n console.log('target', e.target.nodeName);\n e.target.focus();\n });\n\n if (this.debounceDelay) {\n this.addEventListener(\n 'click',\n leadingDebounce(\n this,\n e => {\n this.performActions(e);\n },\n this.debounceDelay,\n ),\n );\n } else {\n element.addEventListener('click', e => this.performActions(e));\n }\n this.widget = element;\n // # terrible hack but browser behaves strange - seems to fire a 'click' for a button when it receives a\n // # 'Space' or 'Enter' key\n if (element.nodeName !== 'BUTTON') {\n element.addEventListener('keypress', e => {\n if (e.code === 'Space' || e.code === 'Enter') {\n this.performActions(e);\n }\n });\n }\n });\n }\n\n // eslint-disable-next-line class-methods-use-this\n renderHTML() {\n return `\n <slot></slot>\n `;\n }\n\n getWidget() {\n return this.widget;\n }\n\n async updateWidgetValue() {\n // console.log('trigger update', this);\n return null;\n }\n\n handleReadonly() {\n super.handleReadonly();\n // ### add disabled attribute in case we're readonly. This is special behavior of fx-trigger\n if (this.widget.hasAttribute('readonly')) {\n this.widget.setAttribute('disabled', 'disabled');\n } else {\n this.widget.removeAttribute('disabled');\n }\n }\n\n async performActions(e) {\n // todo: support readonly for trigger not executing the action\n const repeatedItem = this.closest('fx-repeatitem');\n if (repeatedItem) {\n // console.log('repeated click');\n repeatedItem.click();\n }\n\n // Update all child variables, but only once\n this.querySelectorAll('fx-var').forEach(variableElement => variableElement.refresh());\n\n for (let i = 0; i < this.children.length; i += 1) {\n const child = this.children[i];\n if (typeof child.execute === 'function') {\n if (e) {\n // We are handling the event. Stop it from going further\n e.preventDefault();\n e.stopPropagation();\n if (e.type && child.event && e.type !== child.event) return;\n }\n // eslint-disable-next-line no-await-in-loop\n await child.execute(e);\n // child.execute(e);\n }\n }\n }\n\n async refresh() {\n super.refresh();\n }\n}\n\nif (!customElements.get('fx-trigger')) {\n customElements.define('fx-trigger', FxTrigger);\n}\n","// import { foreElementMixin } from '../ForeElementMixin';\n\nimport { FxContainer } from './fx-container.js';\nimport { Fore } from '../fore.js';\n\n/**\n * `fx-case`\n * a container allowing to switch between fx-case elements\n *\n * * todo: implement\n * @customElement\n */\nexport class FxCase extends FxContainer {\n static get properties() {\n return {\n ...super.properties,\n label: {\n type: String,\n },\n name: {\n type: String,\n },\n selected: {\n type: String,\n },\n selector: {\n type: String,\n },\n src: {\n type: String,\n },\n };\n }\n\n connectedCallback() {\n if (this.hasAttribute('label')) {\n this.label = this.getAttribute('label');\n }\n if (this.hasAttribute('name')) {\n this.name = this.getAttribute('name');\n }\n if (this.hasAttribute('selected')) {\n this.selected = this.getAttribute('selected');\n }\n this.selector = this.hasAttribute('selector') ? this.getAttribute('selector') : 'fx-case';\n if (this.hasAttribute('src')) {\n this.src = this.getAttribute('src');\n }\n\n const style = `\n :host {\n visibility: none;\n }\n `;\n const html = `\n ${this.label ? `<span>${this.label}</span>` : ''}\n <slot></slot>\n `;\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${html}\n `;\n\n this.addEventListener('select', async () => {\n const ownerForm = this.getOwnerForm();\n if (this.src) {\n // We will replace the node. So this node will be detached after these async function\n // calls. Save all important state first.\n const { parentNode } = this;\n const replacement = await this._loadFromSrc();\n if(!replacement){\n Fore.dispatch(this, 'error', {\n detail: {\n message: `HTML page couldn't be loaded`,\n },\n });\n return;\n }\n await parentNode.replaceCase(this, replacement);\n }\n const model = ownerForm.getModel();\n model.updateModel();\n ownerForm.refresh(true);\n });\n }\n\n /**\n * loads a Fore from an URL given by `src`.\n *\n * Will extract the `fx-fore` element from that target file and use and replace current `fx-fore` element with the loaded one.\n * @private\n */\n async _loadFromSrc() {\n // console.log('########## loading Fore from ', this.src, '##########');\n return Fore.loadForeFromSrc(this, this.src, this.selector);\n }\n}\n\nif (!customElements.get('fx-case')) {\n window.customElements.define('fx-case', FxCase);\n}\n","import { prettifyXml } from '../functions/common-function.js';\n\n/**\n * lists out all live instances in html 'details' and 'summary' elements.\n */\nexport class FxInspector extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n\n connectedCallback() {\n const style = `\n :host {\n position:absolute;\n display: block;\n width:var(--inspector-handle-width);\n background:var(--inspector-bg);\n top:0;\n right:0;\n bottom:0;\n height: 100%;\n background: var(--inspector-bg);\n color: white;\n /*max-height: 33%;*/\n overflow: scroll;\n transition:width 0.3s ease;\n z-index:100;\n }\n :host([open]){\n width: 30%;\n }\n details{\n margin:1rem;\n }\n .main{\n padding-left:var(--inspector-handle-width);\n color:var(--inspector-color);\n overflow:scroll;\n height:100%;\n }\n pre{\n background:var(--inspector-pre-bg);\n color:var(--inspector-color);\n overflow:scroll;\n padding:0.2rem;\n }\n .handle{\n display:block;\n height:100%;\n width:var(--inspector-handle-width);\n background:var(--inspector-handle-bg);\n opacity:0.7;\n position:absolute;\n left:0;\n color:white;\n cursor:pointer;\n }\n .handle:hover{\n opacity:1;\n }\n .handle::before{\n content: 'Data Inspector';\n white-space: nowrap;\n transform: rotate(-90deg);\n display: inline-block;\n position: absolute;\n left: -85px;\n width: 200px;\n top: 40px;\n }\n summary{\n cursor:pointer;\n }\n `;\n\n const fore = this.closest('fx-fore');\n\n // fore.addEventListener('ready', (e) => {\n this.render(style);\n // });\n fore.addEventListener('refresh-done', () => {\n this.update();\n });\n }\n\n update() {\n // console.log('update');\n try {\n const pre = this.shadowRoot.querySelectorAll('pre');\n // console.log('pre', pre);\n const fore = this.closest('fx-fore');\n\n Array.from(pre).forEach(element => {\n const inst = fore.getModel().getInstance(element.getAttribute('id'));\n if (inst.getAttribute('type') === 'xml') {\n element.innerText = this.serializeDOM(inst.instanceData);\n }\n if (inst.getAttribute('type') === 'json') {\n element.innerText = JSON.stringify(inst.instanceData, undefined, 2);\n }\n });\n } catch (e) {\n console.warn('caught problem in inspector', e.message);\n }\n }\n\n render(style) {\n const fore = this.closest('fx-fore');\n const instances = Array.from(fore.querySelectorAll('fx-instance'));\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n <div class=\"main\">\n <slot></slot>\n <span class=\"handle\"></span>\n ${instances.map(\n instance => `\n <details>\n <summary>${instance.id}</summary>\n <pre id=\"${instance.id}\"></pre>\n </details>\n `,\n )}\n </div>\n `;\n\n const handle = this.shadowRoot.querySelector('.handle');\n handle.addEventListener('click', e => {\n // console.log('toggling');\n if (this.hasAttribute('open')) {\n this.removeAttribute('open');\n } else {\n this.setAttribute('open', 'open');\n }\n });\n }\n\n serializeDOM(data) {\n if (!data) {\n console.warn('no data to serialize');\n return;\n }\n // console.log('serializeDOM', data);\n const ser = new XMLSerializer().serializeToString(data);\n return prettifyXml(ser);\n }\n}\n\nif (!customElements.get('fx-inspector')) {\n customElements.define('fx-inspector', FxInspector);\n}\n","import { Fore } from '../fore.js';\n\nexport class FxDialog extends HTMLElement {\n static get properties() {\n return {\n id: String,\n };\n }\n\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n\n connectedCallback() {\n const style = `\n :host {\n display:none;\n height: 100vh;\n width:100vw;\n position:fixed;\n left:0;\n top:0;\n right:0;\n bottom:0;\n transition:opacity 0.4s linear;\n }\n\n `;\n\n this.shadowRoot.innerHTML = this.render(style);\n this.id = this.getAttribute('id');\n\n // const dialog = document.getElementById(this.id);\n\n const closeBtn = this.querySelector('.close-dialog');\n if (closeBtn) {\n closeBtn.addEventListener('click', () => {\n this.classList.remove('show');\n });\n }\n this.setAttribute('role', 'dialog');\n this.setAttribute('aria-modal', 'false');\n\n /*\n this.addEventListener('transitionend', () => {\n console.log('transitionend');\n // this.style.display = 'none';\n });\n*/\n\n this.focus();\n }\n\n render(styles) {\n return `\n <style>\n ${styles}\n </style>\n <slot></slot>\n `;\n }\n\n open() {\n window.addEventListener(\n 'keyup',\n e => {\n if (e.key === 'Escape') {\n this.hide();\n }\n },\n { once: true },\n );\n\n this.classList.add('show');\n }\n\n async hide() {\n await Fore.fadeOutElement(this, 400);\n this.classList.remove('show');\n }\n}\n\nif (!customElements.get('fx-dialog')) {\n customElements.define('fx-dialog', FxDialog);\n}\n","import { evaluateXPath, evaluateXPathToString, resolveId } from '../xpath-evaluation.js';\nimport FxControl from './fx-control.js';\nimport { Fore } from '../fore.js';\nimport { XPathUtil } from '../xpath-util.js';\n\n/**\n * FxItems provides a templated list over its bound nodes. It is not standalone but expects to be used\n * within an fx-control element.\n *\n *\n *\n * @demo demo/selects3.html\n */\nexport class FxItems extends FxControl {\n static get properties() {\n return {\n ...super.properties,\n valueAttr: {\n type: String,\n },\n };\n }\n\n constructor() {\n super();\n this.valueAttr = this.hasAttribute('value') ? this.getAttribute('value') : null;\n }\n\n connectedCallback() {\n super.connectedCallback();\n // Some other library is stealing focus when clicking on the label of a checkbox list.\n // The browser should handle this, but we need to manually focus the checkbox if the label is pressed\n // TODO: find a better solution\n this.addEventListener('mousedown', e => {\n // const items = this.querySelectorAll('[value]');\n\n if (!Fore.isWidget(e.target)) {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n\n if (e.target.nodeName === 'LABEL') {\n const target = resolveId(e.target.getAttribute('for'), this);\n target.focus();\n }\n });\n\n // Some other library is stealing focus when clicking on the label of a checkbox list.\n // The browser should handle this, but we need to manually focus the checkbox if the label is pressed\n // TODO: find a better solution\n this.addEventListener('mousedown', e => {\n const items = this.querySelectorAll('[value]');\n\n if (e.target.nodeName === 'LABEL') {\n const target = resolveId(e.target.getAttribute('for'), this);\n target.focus();\n }\n });\n this.addEventListener('click', e => {\n e.preventDefault;\n e.stopPropagation();\n const items = this.querySelectorAll('[value]');\n let target;\n if (e.target.nodeName === 'LABEL') {\n target = resolveId(e.target.getAttribute('for'), this);\n target.checked = !target.checked;\n }\n\n let val = '';\n Array.from(items).forEach(item => {\n if (item.checked) {\n val += ` ${item.getAttribute('value')}`;\n }\n });\n this.setAttribute('value', val.trim());\n\n // ### check for parent control\n const parentBind = XPathUtil.getClosest('[ref]', this.parentNode);\n if (!parentBind) return;\n const modelitem = parentBind.getModelItem();\n const setval = this.shadowRoot.getElementById('setvalue');\n setval.setValue(modelitem, val.trim());\n setval.actionPerformed();\n });\n }\n\n getWidget() {\n return this;\n }\n\n async updateWidgetValue() {\n // console.log('setting items value');\n\n const parentBind = XPathUtil.getClosest('[ref]', this.parentNode);\n if (parentBind) {\n this.value = parentBind.value;\n }\n this.setAttribute('value', this.value);\n }\n\n /**\n * Updates an entry by setting the label and the value.\n *\n * Will connect label and control with `for` attribute with generated id.\n *\n * attention: limitations here: assumes that there's an `label` element plus an element with an `value`\n * attribute which it will update.\n *\n *\n *\n * @param newEntry\n * @param node\n */\n updateEntry(newEntry, node) {\n // console.log('fx-items updateEntry', this.value);\n\n // ### create unique id to connect label and input\n const id = Fore.createUUID();\n\n // ### handle 'label'\n const label = newEntry.querySelector('label');\n const lblExpr = Fore.getExpression(label.textContent);\n\n // ### xml / JSON\n if (node.nodeType) {\n const lblEvaluated = evaluateXPathToString(lblExpr, node, this);\n label.textContent = lblEvaluated;\n } else {\n const labelExpr = Fore.getExpression(lblExpr);\n label.textContent = node[labelExpr];\n }\n label.setAttribute('for', id);\n\n // ### handle the 'value'\n // getting element which has 'value' attr\n const input = newEntry.querySelector('[value]');\n // getting expr\n const expr = input.value;\n // const cutted = expr.substring(1, expr.length - 1);\n const cutted = Fore.getExpression(expr);\n let evaluated;\n if (node.nodeType) {\n evaluated = evaluateXPathToString(cutted, node, newEntry);\n } else {\n evaluated = node[cutted];\n }\n\n // adding space around value to allow matching of 'words'\n const spaced = ` ${evaluated} `;\n const valAttr = ` ${this.getAttribute('value')} `;\n input.value = evaluated;\n input.setAttribute('id', id);\n if (valAttr.indexOf(spaced) !== -1) {\n input.checked = true;\n }\n }\n}\n\nif (!customElements.get('fx-items')) {\n customElements.define('fx-items', FxItems);\n}\n","import ForeElementMixin from '../ForeElementMixin.js';\nimport { withDraggability } from '../withDraggability.js';\n\nclass FxDroptarget extends withDraggability(ForeElementMixin) {}\n\nif (!customElements.get('fx-droptarget')) {\n window.customElements.define('fx-droptarget', FxDroptarget);\n}\n","export class FxLogItem extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n this.eventName = '';\n this.shortName = '';\n this.shortInfo = '';\n this.shortPath = '';\n this.xpath = '';\n }\n\n connectedCallback() {\n const style = `\n :host {\n height: auto;\n font-size: 0.8em;\n font-weight: 400;\n\n }\n\n a,a:link,a:visited{\n color:black;\n }\n a{\n position:relative;\n }\n a[alt]:hover::after {\n content:attr(alt);\n position:absolute; \n left:0;\n top:1em;\n border.thin solid;\n padding:0.5em;\n background:white;\n z-index:1;\n min-width:5em;\n border:thin solid;\n white-space:nowrap;\n overflow-wrap:break-word;\n }\n\n .info{\n padding:0 0.5em;\n margin:0.1rem 0;\n background:white;\n position:relative;\n border:1px solid #ddd;\n border-radius:1em; \n box-shadow: 1px 1px 5px 0px rgba(79, 136, 183, 0.8);\n }\n :host(.action) .info{\n border-radius:0;\n border-color:steelblue;\n }\n\n .info label{\n grid-area:left;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n .info a{\n grid-area:right;\n justify-self:end;\n }\n .info:hover{\n outline:3px solid lightblue; \n transition:height 0.4s;\n }\n\n summary{\n padding:1em;\n display:flex;\n flex-wrap:wrap;\n padding:0.5em 0;\n cursor:pointer;\n gap:0.25em;\n }\n/*\n .log-name{\n font-size:1.2em;\n }\n .log-name, .short-info{\n width:10em;\n }\n*/\n .event-name{\n width:12em;\n text-align:right;\n }\n .short-info{\n flex:3;\n overflow:hidden;\n white-space:nowrap;\n text-overflow:ellipsis;\n }\n `;\n\n this.eventName = this.getAttribute('event-name');\n this.shortName = this.getAttribute('short-name');\n this.shortInfo = this.hasAttribute('short-info') ? this.getAttribute('short-info') : '';\n this.xpath = this.getAttribute('xpath');\n\n const cut = this.xpath.substring(this.xpath.indexOf('/fx-fore'), this.xpath.length);\n const xpathCut = `/${cut}`;\n const shortPath = xpathCut.replaceAll('fx-', '');\n\n const html = `\n <details class=\"info send\">\n <summary>\n <span class=\"log-name\"><a href=\"#\" title=\"${shortPath}\" data-path=\"${this.xpath}\">${this.shortName}</a></span>\n <span class=\"short-info\">${this.shortInfo}</span>\n <span class=\"event-name\">${this.eventName}</span> \n </summary>\n <slot></slot>\n </details>\n `;\n\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${html}\n `;\n }\n}\nif (!customElements.get('fx-log-item')) {\n customElements.define('fx-log-item', FxLogItem);\n}\n","import { XPathUtil } from '../xpath-util';\nimport './fx-log-item.js';\n\nexport class FxLogSettings extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n this.listenTo = [];\n this.listeners = [];\n }\n\n connectedCallback() {\n const style = `\n :host {\n display:block;\n position:relative;\n width:100%;\n border:thin solid #efefef;\n font-family: Verdana, Sans;\n\n margin:0;\n border:thin solid #ddd;\n }\n .boxes{\n column-width:14rem;\n overflow:auto;\n margin-bottom:5em;\n padding:1em;\n }\n .boxes > span{\n display:inline-block;\n width:14rem;\n }\n \n .buttons{\n position:absolute;\n top:0;\n right:0;\n }\n .buttons button{\n padding:0;\n }\n button{\n float:right;\n }\n button{\n border:none;\n background:transparent;\n width:2.25rem;\n height:2.25rem;\n cursor:pointer;\n }\n button#reset{\n padding:0;\n height:1rem;\n }\n header{\n padding:0.5rem;\n margin:0;\n border-bottom:2px solid #ddd;\n }\n #settings{\n padding:1em;\n }\n \n `;\n\n if (localStorage.getItem('fx-log-settings')) {\n this.listenTo = JSON.parse(localStorage.getItem('fx-log-settings'));\n } else {\n // this._defaultSettings();\n this.listenTo = FxLogSettings.defaultSettings();\n }\n\n const html = `\n <section id=\"settings\">\n <header>log settings <button id=\"reset\">reset</button></header>\n <div class=\"boxes\"></div>\n </section>\n `;\n\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${html}\n `;\n\n const fore = window.document.querySelector('fx-fore');\n if (!fore) {\n console.error('fx-fore element not found in this page.');\n }\n\n const boxes = this.shadowRoot.querySelector('.boxes');\n\n /*\n build the list of checkboxes for the filtering settings\n */\n this.listenTo.forEach(item => {\n const wrapper = document.createElement('span');\n boxes.append(wrapper);\n\n const lbl = document.createElement('label');\n lbl.setAttribute('title', item.description);\n lbl.setAttribute('for', item.name);\n lbl.innerText = item.name;\n\n const cbx = document.createElement('input');\n cbx.setAttribute('type', 'checkbox');\n cbx.setAttribute('name', item.name);\n cbx.setAttribute('id', item.name);\n if (item.show) {\n cbx.setAttribute('checked', '');\n }\n wrapper.append(cbx);\n wrapper.append(lbl);\n\n cbx.addEventListener('click', e => {\n // console.log('filter box ticked', e);\n if (!e.target.checked) {\n // remove event listener\n const fore = document.querySelector('fx-fore');\n fore.removeEventListener(item.name, this._log);\n // e.preventDefault();\n // e.stopPropagation();\n }\n const t = this.listenTo.find(evt => evt.name === item.name);\n e.target.checked ? (t.show = true) : (t.show = false);\n // console.log('filter', this.listenTo);\n localStorage.setItem('fx-log-settings', JSON.stringify(this.listenTo));\n });\n // boxes.appendChild(lbl);\n });\n\n // buttons\n const reset = this.shadowRoot.querySelector('#reset');\n reset.addEventListener('click', e => {\n // this._defaultSettings();\n localStorage.removeItem('fx-log-settings');\n window.location.reload();\n });\n }\n\n static defaultSettings() {\n return [\n {\n name: 'action-performed',\n show: false,\n description: 'fires after an action has been performed',\n },\n { name: 'click', show: false, description: '' },\n {\n name: 'deleted',\n show: false,\n description: 'fires after a delete action has been executed',\n },\n { name: 'deselect', show: false, description: 'fires when fx-case is deselected' },\n { name: 'dialog-hidden', show: false, description: 'fires after fx-dialog has been hidden' },\n { name: 'dialog-shown', show: false, description: 'fired when a dialog has been shown' },\n { name: 'error', show: false, description: 'fires after an error occurred' },\n { name: 'execute-action', show: true, description: 'fires when an action executes' },\n { name: 'init', show: false, description: 'fires when a control initializes' },\n { name: 'index-changed', show: false, description: 'fires when the repeat index changes' },\n { name: 'insert', show: false, description: 'fires when an fx-insert is executed' },\n {\n name: 'instance-loaded',\n show: false,\n description: 'fires after an fx-instance has been loaded',\n },\n { name: 'invalid', show: false, description: 'fires after a control became invalid' },\n { name: 'item-changed', show: false, description: 'fires when a repeat item was changed' },\n { name: 'item-created', show: false, description: 'fires when a repeat item was created' },\n { name: 'loaded', show: false, description: 'fires after a fx-load has loaded' },\n { name: 'model-construct', show: false, description: 'fires when a model gets constructed' },\n {\n name: 'model-construct-done',\n show: false,\n description: 'fires after model initialization',\n },\n {\n name: 'nonrelevant',\n show: false,\n description: 'fires after an fx-control became nonrelevant',\n },\n { name: 'optional', show: false, description: 'fires after an fx-control became optional' },\n {\n name: 'outermost-action-end',\n show: false,\n description: 'fires when an outermost action block is finished',\n },\n {\n name: 'outermost-action-start',\n show: false,\n description: 'fires when an outermost action block is started',\n },\n {\n name: 'path-mutated',\n show: false,\n description: 'fires when a path in a repeat has been mutated',\n },\n { name: 'readonly', show: false, description: 'fires after an fx-control became readonly' },\n { name: 'readwrite', show: false, description: 'fires after an fx-control became readwrite' },\n {\n name: 'ready',\n show: false,\n description: 'fires after a fx-fore page has been completely initialized',\n },\n { name: 'rebuild-done', show: false, description: 'fires after a rebuild has taken place' },\n {\n name: 'recalculate-done',\n show: false,\n description: 'fires after a recalculate has taken place',\n },\n { name: 'refresh-done', show: false, description: 'fires after a refresh has been done' },\n {\n name: 'relevant',\n show: false,\n description: 'fires after a fx-control has become relevant',\n },\n { name: 'reload', show: false, description: 'fires when a fx-reload action executes' },\n {\n name: 'required',\n show: false,\n description: 'fires after an fx-control has become required',\n },\n { name: 'return', show: false, description: 'fires after a fx-return returned' },\n { name: 'select', show: false, description: 'fires when an fx-case has been selected' },\n { name: 'submit', show: false, description: 'fires before a submission takes place' },\n {\n name: 'submit-done',\n show: false,\n description: 'fires after a submission has successfully been executed',\n },\n {\n name: 'submit-error',\n show: false,\n description: 'fires when a submission returned an error',\n },\n { name: 'valid', show: false, description: 'fires after a fx-control has become valid' },\n {\n name: 'value-changed',\n show: false,\n description: 'fires after a fx-control has changed its value',\n },\n ];\n }\n\n _log(e, log) {\n const elementName = e.target.nodeName;\n if (elementName === 'FX-ACTION-LOG') return;\n // e.preventDefault();\n // e.stopPropagation();\n\n const row = document.createElement('div');\n row.classList.add('log-row');\n const logRow = this._logDetails(e);\n if (\n e.detail &&\n Object.keys(e.detail).length === 0 &&\n Object.getPrototypeOf(e.detail) === Object.prototype\n ) {\n row.classList.add('no-detail');\n }\n\n row.innerHTML = logRow;\n if (this.outermost) {\n /*\n outermost-action-start and outermost-action-end are use as marker events only to start/end a list.\n They don't have aditional information to log.\n */\n if (e.type === 'outermost-action-start') return; // we don't want this event to actualy log something\n if (!this.outermostAppender) {\n this.outermostAppender = document.createElement('ul');\n log.append(this.outermostAppender);\n }\n const li = document.createElement('li');\n // li.innerHTML = logRow;\n li.append(row);\n this.outermostAppender.append(li);\n } else {\n log.append(row);\n }\n\n if (this.parentPath && elementName !== 'FX-ACTION') {\n row.classList.add('nested');\n }\n\n const targetElement = e.target;\n row.addEventListener('click', ev => {\n // console.log('clicked inspect item', targetElement);\n // console.log('clicked inspect item', ev.target.getAttribute('xpath'));\n\n this._highlight(targetElement);\n });\n\n const logRowTarget = row.querySelector('.event-target');\n if (!logRowTarget) return;\n\n logRowTarget.addEventListener('click', e => {\n const alreadyLogged = document.querySelectorAll('.fx-action-log-debug');\n alreadyLogged.forEach(logged => {\n logged.classList.remove('fx-action-log-debug');\n });\n\n targetElement.dispatchEvent(\n new CustomEvent('log-action', {\n composed: false,\n bubbles: true,\n cancelable: true,\n detail: { target: targetElement },\n }),\n );\n\n targetElement.classList.add('fx-action-log-debug');\n targetElement.setAttribute('data-name', targetElement.nodeName);\n this._highlight(targetElement);\n });\n // log.append(logElements);\n }\n\n /**\n * logs all configured events.\n * Special treatment is given to action-execute event to log out all actions that\n * are triggered.\n *\n * @param e the event to log\n * @returns {string}\n * @private\n */\n _logDetails(e) {\n const eventType = e.type;\n // console.log('>>>> event type', type)\n const path = XPathUtil.getPath(e.target);\n const cut = path.substring(path.indexOf('/fx-fore'), path.length);\n\n const xpath = `/${cut}`;\n const short = cut.replaceAll('fx-', '');\n\n if (this.parentPath && !xpath.startsWith(this.parentPath)) {\n this.parentPath = null;\n }\n switch (eventType) {\n case 'deleted':\n const { deletedNodes } = e.detail;\n const s = new XMLSerializer();\n let serialized = '';\n deletedNodes.forEach(node => {\n serialized += s.serializeToString(node);\n });\n\n return `\n <fx-log-item event-name=\"${eventType}\"\n xpath=\"${xpath}\"\n short-info=\"${e.detail.ref}\"\n short-name=\"${e.target.nodeName.toLowerCase()}\">\n <section class=\"details\">\n <header>Details</header>\n <section>\n <span class=\"key\">Deleted Nodes</span>\n <textarea class=\"value\" rows=\"5\">${serialized.trim()}</textarea>\n </section>\n </section>\n </fx-log-item>\n `;\n break;\n case 'outermost-action-start':\n return 'start';\n break;\n case 'outermost-action-end':\n return '';\n break;\n case 'execute-action':\n // ##### here actions will be handled\n const actionElement = e.detail.action;\n return this._renderAction(actionElement, xpath, short, e);\n break;\n default:\n return `\n <fx-log-item event-name=\"${eventType}\"\n xpath=\"${xpath}\"\n short-name=\"${e.target.nodeName.toLowerCase()}\">\n \n <section class=\"details\">\n ${this._listEventDetails(e)}\n </section>\n </fx-log-item>\n `;\n }\n\n // }\n }\n\n _renderAction(actionElement, xpath, short, e) {\n const stripped = actionElement.nodeName.split('-')[1];\n switch (actionElement.nodeName) {\n case 'FX-ACTION':\n this.parentPath = xpath;\n return `\n <fx-log-item event-name=\"${e.detail.event}\"\n xpath=\"${xpath}\"\n short-name=\"ACTION\" class=\"action\">\n <section class=\"details\">\n <header>Attributes</header>\n <section>\n ${Array.from(actionElement.attributes)\n .map(\n item => `\n <span class=\"key\">${item.nodeName}</span>\n <span class=\"value\">${item.nodeValue}</span>\n `,\n )\n .join('')} \n </section>\n </section>\n </fx-log-item> \n `;\n // break;\n case 'FX-MESSAGE':\n const message = e.detail.action.messageTextContent;\n return `\n <fx-log-item event-name=\"${e.detail.event}\"\n xpath=\"${xpath}\"\n short-name=\"MESSAGE\"\n short-info=\"${message}\" class=\"action\">\n <section class=\"details\">\n <span>${message}</span>\n </section>\n </fx-log-item>\n `;\n // break;\n case 'FX-SEND':\n const submission = document.querySelector(`#${e.detail.action.getAttribute('submission')}`);\n return `\n <fx-log-item short-name=\"SEND\"\n short-info=\"${submission.id}\"\n event-name=\"${e.detail.event}\"\n xpath=\"${xpath}\" class=\"action\">\n <section class=\"details\">\n <header>Submission</header>\n <section class=\"attributes\">\n ${Array.from(submission.attributes)\n .map(\n item => `\n <span class=\"key\">${item.nodeName}</span>\n <span class=\"value\">${item.nodeValue}</span>\n `,\n )\n .join('')} \n </section> \n </section>\n </fx-log-item>\n `;\n // break;\n case 'FX-SETVALUE':\n const instPath = XPathUtil.getPath(e.target.nodeset);\n const listensOn =\n e.target.nodeName === 'FX-CONTROL' ? e.target.updateEvent : e.detail.event;\n return `\n <fx-log-item short-name=\"SETVALUE\"\n short-info=\"${instPath}\"\n event-name=\"${listensOn}\"\n xpath=\"${xpath}\" class=\"action\">\n <section class=\"details\">\n <span class=\"key\">value</span>\n <span class=\"value\">${e.detail.value}</span>\n </section>\n </fx-log-item>\n `;\n // break;\n default:\n return `\n <fx-log-item event-name=\"${e.detail.event}\" \n short-name=\"${e.target.nodeName}\"\n xpath=\"${xpath}\"\n class=\"action\">\n <section class=\"details\">\n </section>\n </fx-log-item>\n `;\n }\n }\n\n _listEventDetails(e) {\n if (\n e.detail &&\n Object.keys(e.detail).length === 0 &&\n Object.getPrototypeOf(e.detail) === Object.prototype\n ) {\n return '';\n }\n return `${Object.keys(e.detail).map(item => `<span>${item}</span>`)}`;\n }\n\n _listAttributes(e) {\n // console.log('_listAttributes', e)\n return '';\n // return `${e.detail.model.id}`;\n /*\n if(e.detail &&\n Object.keys(e.detail).length === 0 &&\n Object.getPrototypeOf(e.detail) === Object.prototype){\n return ``;\n }else{\n return `${e.detail.map((item) => `<span>${item}</span>`)}`;\n }\n */\n }\n\n _highlight(element) {\n const defaultBG = element.style.backgroundColor;\n const defaultTransition = element.style.transition;\n\n element.style.transition = 'background 1s';\n element.style.backgroundColor = '#FFA500';\n\n setTimeout(() => {\n element.style.backgroundColor = defaultBG;\n setTimeout(() => {\n element.style.transition = defaultTransition;\n }, 400);\n }, 400);\n\n window.document.dispatchEvent(\n new CustomEvent('log-active-element', { detail: { target: element } }),\n );\n }\n}\n\nif (!customElements.get('fx-log-settings')) {\n customElements.define('fx-log-settings', FxLogSettings);\n}\n","import { XPathUtil } from '../xpath-util';\nimport './fx-log-item.js';\nimport { FxLogSettings } from './fx-log-settings.js';\n\nexport class FxActionLog extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n this.listenTo = [];\n this.listeners = [];\n }\n\n connectedCallback() {\n const style = `\n :host {\n display:block;\n position:relative;\n width:100%;\n border:thin solid #efefef;\n background:transparent;\n font-family: Verdana, Sans;\n margin:0;\n padding:0.25rem;\n }\n a,a:link,a:visited{\n color:black;\n }\n a{\n position:relative;\n }\n a[alt]:hover::after {\n content:attr(alt);\n position:absolute; \n left:0;\n bottom:-0.5em;\n border:thin solid;\n padding:0.5em;\n background:white;\n z-index:1;\n min-width:5em;\n border:thin solid;\n max-width:90%;\n }\n .details{\n padding:0.25em 0;\n }\n\n .key{\n width:20%;\n display:inline-block;\n min-width:5rem;\n border-bottom:1px solid #ddd;\n background:#efefef;\n vertical-align:top;\n }\n .value{\n display:inline-block;\n width:60%;\n \n }\n \n .buttons{\n position:absolute;\n top:0;\n right:0;\n }\n .buttons button{\n padding:0;\n }\n button{\n float:right;\n }\n button{\n border:none;\n background:transparent;\n width:2.25rem;\n height:2.25rem;\n cursor:pointer;\n }\n button#reset{\n padding:0;\n height:1rem;\n }\n .info{\n padding:0 0.5em;\n margin:0.1rem 0;\n background:white;\n position:relative;\n display:grid;\n grid-template-areas: \"left right\"\n \"bottom .\";\n grid-template-columns: 75% 25%;\n }\n .info a{\n grid-area:right;\n justify-self:end;\n }\n .details > section{\n display:flex;\n flex-wrap:wrap;\n padding:0.5em 0;\n }\n fx-log-item{\n }\n header{\n padding:0.5rem;\n margin:0;\n border-bottom:2px solid #ddd;\n }\n \n .info:hover{\n outline:3px solid lightblue; \n transition:height 0.4s;\n }\n\n ol{\n background: #efefef;\n padding: 0.5em 0 0 2em;\n border-left:3px solid red;\n }\n \n .event-name{\n display:inline-block;\n }\n #log{\n margin-bottom:10em;\n margin-right:2em;\n }\n .log-row{\n margin:0;\n padding:0;\n position:relative;\n font-size:0.8em;\n border-left:4px solid transparent;\n padding-left:5px;\n width:calc(100% - 2em);\n margin-bottom:0.25em;\n }\n .log-row summary{\n display:flex;\n flex-wrap:wrap;\n padding:0.5em 0;\n cursor:pointer;\n }\n .log-row summary > span {\n width:calc(90% div 3);\n }\n\n .log-name{\n position:relative;\n }\n .short-info{\n flex:3;\n overflow:hidden;\n white-space:nowrap;\n text-overflow:ellipsis;\n }\n .log-row.no-detail summary{\n position:relative;\n }\n .log-row.no-detail summary{\n list-style:none;\n padding-left:1rem;\n }\n .log-row.no-detail summary::-webkit-details-marker {\n display: none;\n }\n .log-row.nested{\n margin-left:1em;\n }\n .nested .event-name{\n display:none;\n }\n \n .setvalue .value{\n background:lightyellow;\n }\n summary{\n padding:1em;\n border-bottom:2px solid #ddd;\n }\n .outer-details{\n height:100%;\n overflow:auto;\n margin-top:2rem;\n background:rgba(250, 250, 250, 0.9);\n }\n \n .outer-details > header{\n position:absolute;\n top:-1px;\n width:calc(100% - 2rem);\n border-bottom:2px solid #ddd;\n font-size:1rem;\n height:1rem;\n }\n .outer-details > summary{\n font-size:1em;\n }\n ul{\n list-style:none;\n padding:0;\n margin:0.1em 0;\n border-left:3px solid steelblue;\n padding:0.1em 0;\n }\n ul .log-row{\n padding-left:3px;\n width:calc(100% - 1em);\n }\n `;\n\n if (localStorage.getItem('fx-action-log-filters')) {\n this.listenTo = JSON.parse(localStorage.getItem('fx-action-log-filters'));\n } else {\n this.listenTo = FxLogSettings.defaultSettings();\n }\n\n if (localStorage.getItem('fx-log-settings')) {\n this.listenTo = JSON.parse(localStorage.getItem('fx-log-settings'));\n } else {\n this.listenTo = FxLogSettings.defaultSettings();\n }\n\n const html = `\n <section open class=\"outer-details\">\n <header>Log \n <span class=\"buttons\">\n <button id=\"del\"\" title=\"empty log - Ctrl+d\">\n <svg viewBox=\"0 0 24 24\" style=\"width:24px;height:24px;\" preserveAspectRatio=\"xMidYMid meet\" focusable=\"true\"><g><path d=\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zm2.46-7.12l1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4z\"></path></g></svg></a>\n </button>\n </span>\n </header>\n <div id=\"log\"></div>\n </section>\n `;\n\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${html}\n `;\n\n const fore = window.document.querySelector('fx-fore');\n if (!fore) {\n console.error('fx-fore element not found in this page.');\n }\n const log = this.shadowRoot.querySelector('#log');\n // fore.classList.add('action-log');\n\n this.listenTo.forEach(eventName => {\n if (eventName.show) {\n document.addEventListener(eventName.name, e => {\n this._log(e, log);\n });\n }\n });\n\n // const boxes = this.shadowRoot.querySelector('.boxes');\n\n /*\n build the list of checkboxes for the filtering settings\n */\n /*\n this.listenTo.forEach(item => {\n const wrapper = document.createElement('span');\n boxes.append(wrapper);\n\n const lbl = document.createElement('label');\n lbl.setAttribute('title', item.description);\n lbl.setAttribute('for', item.name);\n lbl.innerText = item.name;\n\n const cbx = document.createElement('input');\n cbx.setAttribute('type', 'checkbox');\n cbx.setAttribute('name', item.name);\n cbx.setAttribute('id', item.name);\n if (item.show) {\n cbx.setAttribute('checked', '');\n }\n wrapper.append(cbx);\n wrapper.append(lbl);\n\n cbx.addEventListener('click', e => {\n console.log('filter box ticked', e);\n if (!e.target.checked) {\n // remove event listener\n const fore = document.querySelector('fx-fore');\n fore.removeEventListener(item.name, this._log);\n // e.preventDefault();\n // e.stopPropagation();\n }\n const t = this.listenTo.find(evt => evt.name === item.name);\n e.target.checked ? t.show = true : t.show = false;\n // console.log('filter', this.listenTo);\n localStorage.setItem('fx-action-log-filters', JSON.stringify(this.listenTo));\n })\n // boxes.appendChild(lbl);\n });\n */\n\n document.addEventListener(\n 'outermost-action-start',\n e => {\n this.outermost = true;\n },\n { capture: true },\n );\n document.addEventListener(\n 'outermost-action-end',\n e => {\n this.outermost = false;\n this.outermostAppender = null;\n },\n { capture: true },\n );\n\n // buttons\n const del = this.shadowRoot.querySelector('#del');\n del.addEventListener('click', e => {\n this.shadowRoot.querySelector('#log').innerHTML = '';\n });\n document.addEventListener('keydown', event => {\n if (event.ctrlKey && event.key === 'd') {\n this.shadowRoot.querySelector('#log').innerHTML = '';\n }\n });\n }\n\n _defaultSettings() {\n this.listenTo = [\n {\n name: 'action-performed',\n show: false,\n description: 'fires after an action has been performed',\n },\n { name: 'click', show: false, description: '' },\n {\n name: 'deleted',\n show: false,\n description: 'fires after a delete action has been executed',\n },\n { name: 'deselect', show: false, description: 'fires when fx-case is deselected' },\n { name: 'dialog-hidden', show: false, description: 'fires after fx-dialog has been hidden' },\n { name: 'dialog-shown', show: false, description: 'fired when a dialog has been shown' },\n { name: 'error', show: false, description: 'fires after an error occurred' },\n { name: 'execute-action', show: true, description: 'fires when an action executes' },\n { name: 'init', show: false, description: 'fires when a control initializes' },\n { name: 'index-changed', show: false, description: 'fires when the repeat index changes' },\n { name: 'insert', show: false, description: 'fires when an fx-insert is executed' },\n {\n name: 'instance-loaded',\n show: false,\n description: 'fires after an fx-instance has been loaded',\n },\n { name: 'invalid', show: false, description: 'fires after a control became invalid' },\n { name: 'item-changed', show: false, description: 'fires when a repeat item was changed' },\n { name: 'item-created', show: false, description: 'fires when a repeat item was created' },\n { name: 'loaded', show: false, description: 'fires after a fx-load has loaded' },\n { name: 'model-construct', show: false, description: 'fires when a model gets constructed' },\n {\n name: 'model-construct-done',\n show: false,\n description: 'fires after model initialization',\n },\n {\n name: 'nonrelevant',\n show: false,\n description: 'fires after an fx-control became nonrelevant',\n },\n { name: 'optional', show: false, description: 'fires after an fx-control became optional' },\n {\n name: 'outermost-action-end',\n show: false,\n description: 'fires when an outermost action block is finished',\n },\n {\n name: 'outermost-action-start',\n show: false,\n description: 'fires when an outermost action block is started',\n },\n {\n name: 'path-mutated',\n show: false,\n description: 'fires when a path in a repeat has been mutated',\n },\n { name: 'readonly', show: false, description: 'fires after an fx-control became readonly' },\n { name: 'readwrite', show: false, description: 'fires after an fx-control became readwrite' },\n {\n name: 'ready',\n show: false,\n description: 'fires after a fx-fore page has been completely initialized',\n },\n { name: 'rebuild-done', show: false, description: 'fires after a rebuild has taken place' },\n {\n name: 'recalculate-done',\n show: false,\n description: 'fires after a recalculate has taken place',\n },\n { name: 'refresh-done', show: false, description: 'fires after a refresh has been done' },\n {\n name: 'relevant',\n show: false,\n description: 'fires after a fx-control has become relevant',\n },\n { name: 'reload', show: false, description: 'fires when a fx-reload action executes' },\n {\n name: 'required',\n show: false,\n description: 'fires after an fx-control has become required',\n },\n {\n name: 'return',\n show: false,\n description: 'fired by embedded Fore controls to return their bound value',\n },\n { name: 'select', show: false, description: 'fires when an fx-case has been selected' },\n { name: 'submit', show: false, description: 'fires before a submission takes place' },\n {\n name: 'submit-done',\n show: false,\n description: 'fires after a submission has successfully been executed',\n },\n {\n name: 'submit-error',\n show: false,\n description: 'fires when a submission returned an error',\n },\n { name: 'valid', show: false, description: 'fires after a fx-control has become valid' },\n {\n name: 'value-changed',\n show: false,\n description: 'fires after a fx-control has changed its value',\n },\n ];\n }\n\n _log(e, log) {\n const elementName = e.target.nodeName;\n if (elementName === 'FX-ACTION-LOG') return;\n // e.preventDefault();\n // e.stopPropagation();\n\n const row = document.createElement('div');\n row.classList.add('log-row');\n const logRow = this._logDetails(e);\n if (\n e.detail &&\n Object.keys(e.detail).length === 0 &&\n Object.getPrototypeOf(e.detail) === Object.prototype\n ) {\n row.classList.add('no-detail');\n }\n\n row.innerHTML = logRow;\n if (this.outermost) {\n /*\n outermost-action-start and outermost-action-end are use as marker events only to start/end a list.\n They don't have aditional information to log.\n */\n if (e.type === 'outermost-action-start') return; // we don't want this event to actualy log something\n if (!this.outermostAppender) {\n this.outermostAppender = document.createElement('ul');\n log.append(this.outermostAppender);\n }\n const li = document.createElement('li');\n // li.innerHTML = logRow;\n li.append(row);\n this.outermostAppender.append(li);\n } else {\n log.append(row);\n }\n\n if (this.parentPath && elementName !== 'FX-ACTION') {\n row.classList.add('nested');\n }\n\n const targetElement = e.target;\n row.addEventListener('click', ev => {\n // console.log('clicked inspect item', targetElement);\n // console.log('clicked inspect item', ev.target.getAttribute('xpath'));\n\n this._highlight(targetElement);\n });\n\n const logRowTarget = row.querySelector('.event-target');\n if (!logRowTarget) return;\n\n logRowTarget.addEventListener('click', e => {\n const alreadyLogged = document.querySelectorAll('.fx-action-log-debug');\n alreadyLogged.forEach(logged => {\n logged.classList.remove('fx-action-log-debug');\n });\n\n targetElement.dispatchEvent(\n new CustomEvent('log-action', {\n composed: false,\n bubbles: true,\n cancelable: true,\n detail: { target: targetElement },\n }),\n );\n\n targetElement.classList.add('fx-action-log-debug');\n targetElement.setAttribute('data-name', targetElement.nodeName);\n this._highlight(targetElement);\n });\n // log.append(logElements);\n }\n\n /**\n * logs all configured events.\n * Special treatment is given to action-execute event to log out all actions that\n * are triggered.\n *\n * @param e the event to log\n * @returns {string}\n * @private\n */\n _logDetails(e) {\n const eventType = e.type;\n const path = XPathUtil.getDocPath(e.target);\n // console.log('>>>> _logDetails', path);\n const cut = path.substring(path.indexOf('/fx-fore'), path.length);\n const xpath = `/${cut}`;\n const short = cut.replaceAll('fx-', '');\n\n if (this.parentPath && !xpath.startsWith(this.parentPath)) {\n this.parentPath = null;\n }\n switch (eventType) {\n case 'deleted':\n const { deletedNodes } = e.detail;\n const s = new XMLSerializer();\n let serialized = '';\n deletedNodes.forEach(node => {\n serialized += s.serializeToString(node);\n });\n\n return `\n <fx-log-item event-name=\"${eventType}\"\n xpath=\"${xpath}\"\n short-info=\"${e.detail.ref}\"\n short-name=\"${e.target.nodeName.toLowerCase()}\">\n <section class=\"details\">\n <header>Details</header>\n <section>\n <span class=\"key\">Deleted Nodes</span>\n <textarea class=\"value\" rows=\"5\">${serialized.trim()}</textarea>\n </section>\n </section>\n </fx-log-item>\n `;\n break;\n case 'outermost-action-start':\n return 'start';\n break;\n case 'outermost-action-end':\n return '';\n break;\n case 'execute-action':\n // ##### here actions will be handled\n const actionElement = e.detail.action;\n return this._renderAction(actionElement, xpath, short, e);\n break;\n default:\n return `\n <fx-log-item event-name=\"${eventType}\"\n xpath=\"${xpath}\"\n short-name=\"${e.target.nodeName.toLowerCase()}\">\n \n <section class=\"details\">\n ${this._listEventDetails(e)}\n </section>\n </fx-log-item>\n `;\n }\n\n // }\n }\n\n _renderAction(actionElement, xpath, short, e) {\n const stripped = actionElement.nodeName.split('-')[1];\n let eventName;\n switch (actionElement.nodeName) {\n case 'FX-ACTION':\n this.parentPath = xpath;\n eventName = e.target.currentEvent\n ? e.target.currentEvent.type\n : e.detail.event\n ? e.detail.event\n : '';\n\n return `\n <fx-log-item event-name=\"${eventName}\"\n xpath=\"${xpath}\"\n short-name=\"ACTION\"\n data-path=\"${e.detail.path}\" \n class=\"action\">\n <section class=\"details\">\n <header>Attributes</header>\n <section>\n ${Array.from(actionElement.attributes)\n .map(\n item => `\n <span class=\"key\">${item.nodeName}</span>\n <span class=\"value\">${item.nodeValue}</span>\n `,\n )\n .join('')} \n </section>\n </section>\n </fx-log-item> \n `;\n // break;\n case 'FX-MESSAGE':\n const message = e.detail.action.messageTextContent;\n return `\n <fx-log-item event-name=\"${e.detail.event}\"\n xpath=\"${xpath}\"\n short-name=\"MESSAGE\"\n short-info=\"${message}\" class=\"action\">\n <section class=\"details\">\n <span>${message}</span>\n </section>\n </fx-log-item>\n `;\n // break;\n case 'FX-SEND':\n const submission = document.querySelector(`#${e.detail.action.getAttribute('submission')}`);\n const event = e.detail.event ? e.detail.event : '';\n return `\n <fx-log-item short-name=\"SEND\"\n short-info=\"${submission.getAttribute('id')}\"\n event-name=\"${event}\"\n xpath=\"${xpath}\" class=\"action\"\n data-path=\"${e.detail.path}\" >\n <section class=\"details\">\n <header>Submission</header>\n <section class=\"attributes\">\n ${Array.from(submission.attributes)\n .map(\n item => `\n <span class=\"key\">${item.nodeName}</span>\n <span class=\"value\">${item.nodeValue}</span>\n `,\n )\n .join('')} \n </section> \n </section>\n </fx-log-item>\n `;\n // break;\n case 'FX-SETVALUE':\n const instPath = XPathUtil.getPath(e.target.nodeset);\n const listensOn =\n e.target.nodeName === 'FX-CONTROL'\n ? e.target.updateEvent\n : e.detail.event\n ? e.detail.event\n : '';\n return `\n <fx-log-item short-name=\"SETVALUE\"\n short-info=\"${instPath}\"\n event-name=\"${listensOn}\"\n xpath=\"${xpath}\"\n data-path=\"${e.detail.path}\" class=\"action\">\n <section class=\"details\">\n <span class=\"key\">value</span>\n <span class=\"value\">${e.detail.value}</span>\n </section>\n </fx-log-item>\n `;\n // break;\n default:\n eventName = e.target.currentEvent\n ? e.target.currentEvent.type\n : e.detail.event\n ? e.detail.event\n : '';\n return `\n <fx-log-item event-name=\"${eventName}\" \n short-name=\"${e.target.nodeName}\"\n xpath=\"${xpath}\"\n data-path=\"${e.detail.path}\" \n class=\"action\">\n <section class=\"details\">\n </section>\n </fx-log-item>\n `;\n }\n }\n\n _listEventDetails(e) {\n if (\n e.detail &&\n Object.keys(e.detail).length === 0 &&\n Object.getPrototypeOf(e.detail) === Object.prototype\n ) {\n return '';\n }\n return `${Object.keys(e.detail).map(item => `<span>${item}</span>`)}`;\n }\n\n _listAttributes(e) {\n // console.log('_listAttributes', e)\n return '';\n // return `${e.detail.model.id}`;\n /*\n if(e.detail &&\n Object.keys(e.detail).length === 0 &&\n Object.getPrototypeOf(e.detail) === Object.prototype){\n return ``;\n }else{\n return `${e.detail.map((item) => `<span>${item}</span>`)}`;\n }\n */\n }\n\n _highlight(element) {\n const defaultBG = element.style.backgroundColor;\n const defaultTransition = element.style.transition;\n\n element.style.transition = 'background 1s';\n element.style.backgroundColor = '#FFA500';\n\n setTimeout(() => {\n element.style.backgroundColor = defaultBG;\n setTimeout(() => {\n element.style.transition = defaultTransition;\n }, 400);\n }, 400);\n\n window.document.dispatchEvent(\n new CustomEvent('log-active-element', { detail: { target: element } }),\n );\n }\n}\n\nif (!customElements.get('fx-action-log')) {\n customElements.define('fx-action-log', FxActionLog);\n}\n","export function addClass(element, strClass) {\n element.classList.add(strClass);\n}\n\nexport function removeClass(element, strClass) {\n element.classList.remove(strClass);\n}\n\n// Checks whether the text node is not empty or contains only the EOL\nexport function isEmptyTextNode(node) {\n if (typeof node !== 'object') {\n throw new Error(\n `isEmptyTextNode: Expected argument node of type object, ${typeof node} given.`,\n );\n }\n\n return /^\\s*$/.test(node.textContent);\n}\n\n// Checks whether the node or its children contains only text information\nexport function containsOnlyText(node, checkChildren) {\n if (typeof node !== 'object') {\n throw new Error(\n `containsOnlyText: Expected argument node of type object, ${typeof node} given.`,\n );\n }\n\n checkChildren = checkChildren || false;\n\n let result = false;\n let nodeTmp = null;\n\n // does the node contain only text nodes?\n if (checkChildren) {\n for (let i = 0, len = node.childNodes.length; i < len; i += 1) {\n nodeTmp = node.childNodes[i];\n result =\n nodeTmp.nodeType === Node.TEXT_NODE ||\n nodeTmp.nodeType === Node.COMMENT_NODE ||\n nodeTmp.nodeType === Node.CDATA_SECTION_NODE;\n\n if (!result) {\n break;\n }\n }\n } else {\n // check the node type if it doesn't have any children\n result =\n node.nodeType === Node.TEXT_NODE ||\n node.nodeType === Node.COMMENT_NODE ||\n node.nodeType === Node.CDATA_SECTION_NODE;\n }\n\n return result;\n}\n\n// Create element wrapper -- allows to set attributes using the config object.\nexport function newElement(elem, attrs) {\n const el = document.createElement(elem);\n\n attrs = attrs || {};\n for (const attr of Object.keys(attrs)) {\n el.setAttribute(attr, attrs[attr]);\n }\n\n return el;\n}\n\n// Helper function for options view\nexport function drawOptionRow(optionCode, optionText) {\n const row = newElement('span', { class: 'adi-opt' });\n row.innerHTML = `<label><input type=\"checkbox\" data-opt=\"${optionCode}\">${optionText}</label>`;\n\n return row;\n}\n\n// Renders the options panel\nexport function drawOptions() {\n const ui = newElement('div', { id: 'adi-opts-view', class: 'adi-hidden' });\n const head1 = newElement('span', { class: 'adi-opt-heading' });\n const head2 = newElement('span', { class: 'adi-opt-heading' });\n const close = newElement('span', { class: 'adi-opt-close' });\n\n head1.textContent = 'General options';\n head2.textContent = 'Observed nodes';\n\n ui.appendChild(head1);\n ui.appendChild(drawOptionRow('saving', 'Enable saving of settings'));\n ui.appendChild(drawOptionRow('makeVisible', 'Scroll to the active element in DOM View'));\n ui.appendChild(drawOptionRow('omitEmptyText', 'Hide empty text nodes'));\n ui.appendChild(drawOptionRow('foldText', 'Fold the text nodes'));\n ui.appendChild(drawOptionRow('transparent', 'Enable transparent background'));\n ui.appendChild(head2);\n ui.appendChild(drawOptionRow('nodeTypes-3', 'Text node'));\n ui.appendChild(drawOptionRow('nodeTypes-8', 'Comment node'));\n // ui.appendChild(drawOptionRow('nodeTypes-1', 'Element node'));\n // ui.appendChild(drawOptionRow('nodeTypes-9', 'Document node'));\n ui.appendChild(close);\n\n return ui;\n}\n\n// Stops event propagation and also prevents the default behavior.\nexport function pauseEvent(e) {\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n\n if (e.preventDefault) {\n e.preventDefault();\n }\n\n e.cancelBubble = true;\n e.returnValue = false;\n\n return false;\n}\n// Helper function for attributes view\nexport function drawAttrRow(attrName, attrValue) {\n const row = newElement('span', { class: 'adi-attr' });\n switch (attrName.toLowerCase()) {\n case 'defaultaction':\n row.innerHTML = `<label>${attrName}: <select data-attr=\"${attrName}\" value=\"${attrValue}\"><option>perform</option><option>cancel</option></label>`;\n break;\n case 'delay':\n row.innerHTML = `<label>${attrName}: <input type=\"number\" data-attr=\"${attrName}\" value=\"${attrValue}\" readonly=\"readonly\"></label>`;\n break;\n default:\n row.innerHTML = `<label>${attrName}: <input type=\"text\" data-attr=\"${attrName}\" value=\"${attrValue}\" readonly=\"readonly\"></label>`;\n }\n return row;\n}\n","import {\n addClass,\n removeClass,\n isEmptyTextNode,\n containsOnlyText,\n newElement,\n drawOptions,\n pauseEvent,\n drawAttrRow,\n} from './helpers.js';\n\nimport { Fore } from '../fore.js';\n\nfunction isAttributeShown(name, sourceNode) {\n if (name === 'style') return false;\n return true;\n // return name === 'id' || name === 'ref' || name === 'event';\n}\n\nclass ADI {\n constructor(rootElement, instance) {\n this.sourceNodeByInspectorNodeLookup = new Map();\n\n this.uiView = null;\n this.menuView = null;\n this.domView = null;\n this.attrView = null;\n this.optsView = null;\n /**\n * The current active element. Note this is the element in the DOM view\n */\n this.activeElement = null;\n this.vertResizing = false;\n this.horizResizing = false;\n this.pathScrolling = null;\n this.elemLookup = false;\n this.styleBackup = '';\n this.xPos = 0;\n this.delegatedEvents = [];\n\n this.options = {\n align: 'right', // NOTE: left is not supported in this version\n split: 50,\n minSplit: 30,\n visible: true,\n saving: false,\n transparent: true,\n omitEmptyText: true,\n makeVisible: true,\n foldText: true,\n nodeTypes: [Node.ELEMENT_NODE, Node.TEXT_NODE, Node.COMMENT_NODE, Node.DOCUMENT_NODE],\n };\n\n if (instance === '#document') {\n this.instanceId = '#document';\n this.document = window.document;\n this.isInstanceViewer = false;\n } else {\n this.instanceId = instance.id;\n if (!instance || instance.localName !== 'fx-instance') {\n console.error('No instance found!');\n }\n this.document = instance.getInstanceData();\n this.isInstanceViewer = true;\n this.options.foldText = false;\n }\n this.drawUI(rootElement);\n this.registerEvents();\n\n // We're updating here, but we're doing that again later, when the UI is read (the 'ready' event fires)\n this.drawDOM(this.document, this.domView.querySelector('.adi-tree-view'), true);\n document.addEventListener('execute-action', e => this.processExecuteAction);\n }\n\n // Returns selected element or null\n getSelected() {\n if (!this.activeElement) {\n return null;\n }\n\n let elem = document;\n\n elem = this.sourceNodeByInspectorNodeLookup.get(this.activeElement);\n /*\n document.dispatchEvent(\n new CustomEvent('path-touched', {\n composed: true,\n bubbles: true,\n detail: {path: elem.modelItem.path},\n }),\n );\n*/\n\n return elem;\n }\n\n // Loads user defined options stored in HTML5 storage (if available)\n loadOptions() {\n let userOptions = {};\n\n userOptions = JSON.parse(window.localStorage.getItem('ADI.options')) || {};\n\n // merge with defaults\n for (const opt of Object.keys(userOptions)) {\n this.options[opt] = userOptions[opt];\n }\n }\n\n // Saves user defined options into the HTML5 storage (if available)\n saveOptions() {\n if (this.options.saving) {\n window.localStorage.setItem('ADI.options', JSON.stringify(this.options));\n }\n }\n\n // Checks if a node has some child nodes and if at least on of them is of a supported type\n hasRequiredNodes(node) {\n if (typeof node !== 'object') {\n throw new Error(\n `hasRequiredNodes: Expected argument node of type object, ${typeof node} given.`,\n );\n }\n\n if (node.hasChildNodes()) {\n for (let i = 0, len = node.childNodes.length; i < len; i += 1) {\n const child = node.childNodes[i];\n if (this.options.nodeTypes.includes(child.nodeType)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n // Creates a starting markup for a new DOM tree view node\n newTreeNode(sourceNode) {\n if (typeof sourceNode !== 'object') {\n throw new Error(\n `newTreeNode: Expected argument node of type object, ${typeof sourceNode} given.`,\n );\n }\n\n const withChildren = this.hasRequiredNodes(sourceNode);\n let omit = false;\n let adiNode = sourceNode.nodeName.startsWith('FX-')\n ? `adi-node ${sourceNode.nodeName.toLowerCase()}`\n : '';\n if (sourceNode.nodeName.startsWith('FX-')) {\n adiNode = `adi-node ${sourceNode.nodeName.toLowerCase()}`;\n adiNode += Fore.isActionElement(sourceNode.nodeName) ? ' action' : '';\n }\n const elem = newElement('li', {\n class: adiNode,\n });\n\n // do not show ADI DOM nodes in the DOM view\n if (sourceNode === this.uiView) {\n return null;\n }\n\n // generate UI for elements with children\n if (withChildren) {\n elem.appendChild(newElement('span', { class: 'adi-trigger' }));\n }\n\n // we can omit empty text nodes if allowed in options\n if (this.options.omitEmptyText && sourceNode.nodeType === Node.TEXT_NODE) {\n omit = isEmptyTextNode(sourceNode);\n }\n\n if (!omit) {\n const tagStart = newElement('span');\n\n this.sourceNodeByInspectorNodeLookup.set(tagStart, sourceNode);\n this.sourceNodeByInspectorNodeLookup.set(sourceNode, tagStart);\n\n let tagEnd = null;\n\n if (containsOnlyText(sourceNode)) {\n if (sourceNode.nodeType === Node.COMMENT_NODE) {\n addClass(tagStart, 'adi-comment-node');\n if (typeof tagStart.innerText === 'string') {\n tagStart.innerText = `<!-- ${sourceNode.textContent} -->`;\n }\n } else {\n addClass(tagStart, 'adi-text-node');\n tagStart.textContent = sourceNode.textContent;\n }\n } else {\n addClass(tagStart, 'adi-normal-node');\n if (sourceNode.nodeType !== Node.DOCUMENT_NODE) {\n // tagStart.textContent = '<' + node.nodeName.toLowerCase() + '>';\n\n /*\n let attrString = `<${sourceNode.nodeName.toLowerCase()} `;\n if(sourceNode.attributes){\n Array.from(sourceNode.attributes).forEach(attr => {\n attrString += `${attr.nodeName}=\"${attr.nodeValue}\" `;\n });\n console.log('ATTRSTRING',attrString);\n }\n if (sourceNode.nodeName === 'FX-BIND') {\n tagStart.textContent = `<${sourceNode.nodeName.toLowerCase()} ref=\"${sourceNode.getAttribute('ref')}\">`;\n } else if (sourceNode.nodeName === 'FX-INSERT') {\n tagStart.textContent = `<${sourceNode.nodeName.toLowerCase()} ref=\"${sourceNode.getAttribute('ref')}\">`;\n } else if (sourceNode.nodeName === 'FX-INSTANCE') {\n tagStart.textContent = `<${sourceNode.nodeName.toLowerCase()} id=\"${sourceNode.id}\">`;\n } else if (sourceNode.nodeName === 'FX-CONTROL') {\n tagStart.textContent = `<${sourceNode.nodeName.toLowerCase()} ref=\"${sourceNode.getAttribute('ref')}\">`;\n } else if (sourceNode.nodeName === 'FX-SEND') {\n tagStart.textContent = `<${sourceNode.nodeName.toLowerCase()} submission=\"${sourceNode.getAttribute('submission')}\">`;\n } else if (sourceNode.nodeName === 'FX-SETVALUE') {\n tagStart.textContent = `<${sourceNode.nodeName.toLowerCase()} ref=\"${sourceNode.getAttribute('ref')}\">`;\n } else if (sourceNode.nodeName === 'FX-SUBMISSION') {\n tagStart.textContent = `<${sourceNode.nodeName.toLowerCase()} id=\"${sourceNode.getAttribute('id')}\">`;\n } else {\n*/\n const attrString = Array.from(sourceNode.attributes)\n .filter(attr =>\n this.isInstanceViewer ? true : isAttributeShown(attr.name, sourceNode),\n )\n .map(attr => `${attr.name}=\"${attr.value}\"`)\n .join(' ');\n tagStart.textContent = `<${sourceNode.nodeName.toLowerCase()}${\n attrString ? ` ${attrString}` : ''\n }>`;\n // }\n\n if (withChildren) {\n tagEnd = newElement('span');\n addClass(tagEnd, 'adi-end-node');\n tagEnd.textContent = `</${sourceNode.nodeName.toLowerCase()}>`;\n }\n } else {\n tagStart.textContent = sourceNode.nodeName.toLowerCase();\n }\n }\n\n elem.appendChild(tagStart);\n /*\n const icon = document.createElement('span');\n icon.textContent = 'x';\n icon.classList.add(('icon'))\n const icon2 = document.createElement('span');\n icon2.textContent = '<-';\n icon2.classList.add(('icon'))\n elem.appendChild(icon);\n elem.appendChild(icon2);\n */\n if (sourceNode.nodeName.startsWith('FX-')) {\n tagStart.classList.add('fore-node');\n tagStart.classList.add(sourceNode.nodeName.toLowerCase());\n }\n\n if (tagEnd) {\n elem.appendChild(tagEnd);\n\n if (sourceNode.nodeName.startsWith('FX-')) {\n tagEnd.classList.add('fore-node');\n }\n }\n\n return elem;\n }\n return null;\n }\n\n // Renders the DOM Tree view\n drawDOM(root, elem, isRoot) {\n if (typeof root !== 'object') {\n throw new Error(`drawDOM: Expected argument root of type object, ${typeof root} given.`);\n }\n\n let newNode = null;\n let isOpen = true;\n\n const adiNode = elem.nodeName.startsWith('FX-')\n ? `adi-node ${node.nodeName.toLowerCase()}`\n : '';\n\n if (isRoot && this.options.nodeTypes.indexOf(root.nodeType) !== -1) {\n elem.innerHTML = '';\n newNode = this.newTreeNode(root);\n\n if (this.hasRequiredNodes(root)) {\n newNode.appendChild(newElement('ul', { 'data-open': true, class: adiNode }));\n\n addClass(newNode.querySelector('.adi-trigger'), 'opened');\n }\n\n elem.appendChild(newNode);\n elem = elem.querySelector('ul');\n }\n\n // recursive DOM traversal\n for (let i = 0, len = root.childNodes.length; i < len; i += 1) {\n const node = root.childNodes[i];\n const withChildren = this.hasRequiredNodes(node);\n\n if (this.options.nodeTypes.indexOf(node.nodeType) !== -1) {\n newNode = this.newTreeNode(node);\n\n if (newNode) {\n if (withChildren) {\n if (this.options.foldText) {\n isOpen = !containsOnlyText(node, true);\n } else {\n isOpen = true;\n }\n\n if (node.nodeName === 'HEAD') isOpen = false;\n if (node.nodeName === 'SELECT') isOpen = false;\n if (node.nodeName === 'FX-INSTANCE') isOpen = false;\n /*\n if(this.options.closedElements.includes(node.nodeName.toLowerCase())){\n isOpen = false;\n }\n*/\n\n if (node.nodeType === Node.DOCUMENT_NODE) {\n newNode.appendChild(newElement('ul', { 'data-open': isOpen, class: adiNode }));\n } else {\n newNode.insertBefore(\n newElement('ul', { 'data-open': isOpen, class: adiNode }),\n newNode.lastChild,\n );\n }\n\n addClass(newNode.querySelector('.adi-trigger'), isOpen ? 'opened' : 'closed');\n }\n\n elem.appendChild(newNode);\n\n if (this.getSelected() === node) {\n const span = newNode.querySelector('span.adi-normal-node');\n span?.classList?.add('adi-active-node');\n this.activeElement = span;\n newNode.scrollIntoView({ block: 'nearest', behavior: 'instant' });\n }\n\n if (withChildren) {\n this.drawDOM(node, newNode.querySelector('ul'), false);\n }\n }\n }\n }\n }\n\n // Show/hide the options view\n toggleOptions() {\n if (this.optsView.className.indexOf('adi-hidden') !== -1) {\n removeClass(this.optsView, 'adi-hidden');\n } else {\n addClass(this.optsView, 'adi-hidden');\n this.attrView.querySelector('.adi-content').innerHTML = '';\n this.refreshUI();\n this.drawDOM(document, this.domView.querySelector('.adi-tree-view'), true);\n if (this.options.saving) {\n this.saveOptions();\n } else {\n window.localStorage.removeItem('ADI.options');\n }\n }\n }\n\n // Renders the UI\n drawUI(rootElement) {\n this.uiView = newElement('div', {\n id: 'adi-wrapper',\n class: this.options.transparent ? 'transparent' : '',\n });\n this.domView = newElement('div', { id: 'adi-dom-view' });\n const domViewContent = newElement('div', { class: 'adi-content', id: 'detailsView' });\n // this.attrView.appendChild(newElement('fx-fore', {src: './lab/inspector-view.html'}));\n\n // const horizSplit = newElement('div', {id: 'adi-horiz-split'});\n const domTree = newElement('ul', { class: 'adi-tree-view' });\n const domPathWrap = newElement('div', { class: 'adi-path-wrap' });\n const domPathScrollLeft = newElement('span', { class: 'adi-path-left' });\n const domPathScrollRight = newElement('span', { class: 'adi-path-right' });\n this.menuView = newElement('div', { id: 'adi-panel' });\n const naviButtons = newElement('div', { class: 'adi-menu-wrap' });\n const naviConfig = newElement('a', { class: 'adi-menu-config', title: 'Settings' });\n const naviLookup = newElement('a', { class: 'adi-menu-lookup', title: 'Lookup tool' });\n\n // this.horizSplit = horizSplit;\n\n this.optsView = drawOptions();\n\n // put UI together\n domViewContent.appendChild(domTree);\n this.domView.appendChild(this.menuView);\n this.domView.appendChild(domViewContent);\n\n domPathWrap.appendChild(domPathScrollLeft);\n domPathWrap.appendChild(domPathScrollRight);\n naviButtons.appendChild(naviLookup);\n naviButtons.appendChild(naviConfig);\n this.menuView.appendChild(domPathWrap);\n this.menuView.appendChild(naviButtons);\n // this.uiView.appendChild(this.menuView);\n this.uiView.appendChild(this.optsView);\n this.uiView.appendChild(this.domView);\n if (!this.isInstanceViewer) {\n this.attrView = newElement('div', { id: 'adi-attr-view' });\n const attrViewContent = newElement('div', { class: 'adi-content' });\n this.attrView.appendChild(attrViewContent);\n this.uiView.appendChild(this.attrView);\n }\n\n // this.uiView.appendChild(horizSplit);\n // wrapper.appendChild(naviWrap);\n\n // cache UI object and append to the DOM\n\n rootElement.appendChild(this.uiView);\n // document.querySelector('#inspector').appendChild(wrapper);\n\n this.refreshUI(true);\n }\n\n // Refreshes the global UI\n refreshUI(refreshOpts) {\n if (this.uiView === null) {\n return;\n }\n\n // load options if requested (e.g. before the first UI refresh)\n if (refreshOpts) {\n this.loadOptions();\n }\n\n // Options view refresh\n if (refreshOpts) {\n this.optsView.querySelector('[data-opt=\"transparent\"]').checked = this.options.transparent;\n this.optsView.querySelector('[data-opt=\"saving\"]').checked = this.options.saving;\n this.optsView.querySelector('[data-opt=\"omitEmptyText\"]').checked =\n this.options.omitEmptyText;\n this.optsView.querySelector('[data-opt=\"makeVisible\"]').checked = this.options.makeVisible;\n this.optsView.querySelector('[data-opt=\"foldText\"]').checked = this.options.foldText;\n this.optsView.querySelector('[data-opt=\"nodeTypes-3\"]').checked =\n this.options.nodeTypes.indexOf(3) !== -1;\n this.optsView.querySelector('[data-opt=\"nodeTypes-8\"]').checked =\n this.options.nodeTypes.indexOf(8) !== -1;\n // this.optsView.querySelector('[data-opt=\"nodeTypes-1\"]').checked = this.options.nodeTypes.indexOf(1) !== -1;\n // this.optsView.querySelector('[data-opt=\"nodeTypes-9\"]').checked = this.options.nodeTypes.indexOf(9) !== -1;\n }\n\n // UI appearance refresh\n this.uiView.className = this.options.transparent ? 'transparent' : '';\n // this.uiView.style.display = this.options.visible ? 'grid' : 'none';\n // this.domView.style.height = `${this.options.split}%`;\n // this.attrView.style.height = `${100 - this.options.split}%`;\n this.domView.querySelector('.adi-content').style.height = `${this.domView.clientHeight}px`;\n if (!this.isInstanceViewer) {\n this.attrView.querySelector('.adi-content').style.height = `${\n this.attrView.clientHeight - this.menuView.clientHeight\n }px`;\n }\n\n addClass(this.uiView, this.options.align);\n }\n\n // UI visibility toggle handler\n toggleVisibilityUI() {\n if (this.uiView === null) {\n return;\n }\n\n this.uiView.style.display = this.options.visible ? 'none' : 'block';\n this.options.visible = !this.options.visible;\n this.saveOptions();\n }\n\n // Renders the attribute view\n drawAttrs(elem) {\n if (this.isInstanceViewer) {\n return;\n }\n const content = this.attrView.querySelector('.adi-content');\n // prepare attributes\n content.innerHTML = '';\n\n const header = document.createElement('header');\n header.innerText = 'Attributes';\n content.appendChild(header);\n\n // todo: hook element-def.json in here\n /*\n if (elem.nodeName.startsWith('FX-')) {\n console.log('got a fore element');\n const {properties} = elem.constructor;\n Object.keys(properties).forEach(propertyName => {\n\n const property = properties[propertyName];\n if (!property || property.hidden) {\n return;\n }\n const row = content.appendChild(newElement('span', {class: 'adi-attr'}));\n\n switch (property.type) {\n case 'referencedNode': {\n row.innerHTML = `<label>${propertyName}: <button>${elem[propertyName]?.nodeName}</button></label>`;\n const button = row.querySelector('button');\n button.addEventListener(\n 'click', () => this.handleLookup({detail: {target: elem[propertyName]}})\n );\n break;\n }\n case Number: {\n row.innerHTML = `<label>${propertyName}: <input type=\"number\" data-attr=\"${propertyName}\" value=\"${elem[propertyName]}\"></label>`;\n break;\n }\n case String: {\n if (property.valueSpace) {\n row.innerHTML = `<label>${propertyName}: <select data-attr=\"${propertyName}\" value=\"${elem[propertyName]}\">${property.valueSpace.map(value => `<option>${value}</option>`)}</label>`;\n break;\n\n }\n row.innerHTML = `<label>${propertyName}: <input type=\"text\" data-attr=\"${propertyName}\" value=\"${elem[propertyName]}\"></label>`;\n break;\n }\n case Boolean: {\n if (property.valueSpace) {\n row.innerHTML = `<label>${propertyName}: <input type=\"checkbox\" data-attr=\"${propertyName}\" value=\"${elem[propertyName]}\"></input></label>`;\n\n }\n break;\n }\n case Object: {\n try {\n row.innerHTML = `<label>${propertyName}: <code>${JSON.stringify(elem[propertyName])}</code></label>`;\n } catch (err) {\n row.innerHTML = `<label>${propertyName}: <code>Unserializable</code></label>`;\n }\n break;\n }\n case Map: {\n try {\n row.innerHTML = `<label>${propertyName}: <code>${JSON.stringify(elem[propertyName])}</code></label>`;\n } catch (err) {\n row.innerHTML = `<label>${propertyName}: <code>Unserializable</code></label>`;\n }\n break;\n }\n default: {\n row.innerHTML = `<label>${propertyName}: Unknown type ${property.type}</label>`;\n }\n }\n });\n } else {\n*/\n [...elem.attributes].forEach(attr => {\n if (attr.name !== 'style') {\n content.appendChild(drawAttrRow(attr.name, attr.value));\n }\n });\n // }\n }\n\n // Handles attribute changes\n changeAttribute(e) {\n const target = e ? e.target : window.event.srcElement;\n const attr = target.getAttribute('data-attr');\n const val = target.value;\n const elem = this.getSelected();\n\n // remove attribute if the new value is empty\n if (val === '') {\n elem.removeAttribute(attr);\n } else {\n elem.setAttribute(attr, val);\n }\n }\n\n // Handles option changes\n changeOption(e) {\n const target = e ? e.target : window.event.srcElement;\n const data = target.getAttribute('data-opt');\n const val = target.checked;\n\n if (data.indexOf('nodeTypes') !== -1) {\n const type = parseInt(data.match(/\\d+/)[0], 10);\n\n if (val) {\n this.options.nodeTypes.push(type);\n } else {\n this.options.nodeTypes.splice(this.options.nodeTypes.indexOf(type), 1);\n }\n } else {\n this.options[data] = val;\n }\n }\n\n // Key events processing\n processKey(e) {\n e = e || window.event;\n const code = e.keyCode || e.which;\n\n switch (code) {\n case 272: // ctrl + alt + d\n this.toggleVisibilityUI();\n break;\n default:\n break;\n }\n }\n\n // Vertical splitter resize handler\n verticalResize(e) {\n if (!this.vertResizing) {\n return;\n }\n\n e = e || window.event;\n document.documentElement.style.cursor = 'e-resize';\n const nWidth = this.options.width + this.xPos - e.clientX;\n\n if (nWidth >= this.options.minWidth) {\n this.options.width = nWidth;\n this.xPos = e.clientX;\n this.refreshUI();\n this.saveOptions();\n }\n }\n\n // Horizontal splitter resize handler\n horizontalResize(e) {\n if (!this.horizResizing) {\n return;\n }\n\n e = e || window.event;\n document.documentElement.style.cursor = 'n-resize';\n const nSplit = Math.floor((e.clientY / this.uiView.clientHeight) * 100);\n\n if (nSplit >= this.options.minSplit && nSplit <= 100 - this.options.minSplit) {\n this.options.split = nSplit;\n this.refreshUI();\n this.saveOptions();\n }\n }\n\n processExecuteAction(e) {\n this.refreshUI();\n }\n\n // Handles active element selection\n handleActive(e) {\n let target = e ? e.detail?.target || e.target : window.event.srcElement;\n const active = this.domView.querySelector('.adi-active-node');\n\n if (active) {\n removeClass(active, 'adi-active-node');\n }\n\n // clicked on normal-node or end-node?\n if (!target || target.nodeType === Node.DOCUMENT_NODE) return;\n if (target && target.classList && target.classList.contains('adi-end-node')) {\n target = target.parentNode.querySelector('.adi-normal-node');\n }\n\n this.activeElement = target;\n addClass(target, 'adi-active-node');\n\n /*\n e.target.dispatchEvent(\n new CustomEvent('handle-active', {\n composed: true,\n bubbles: true,\n detail: {active: this.activeElement, selected: this.getSelected()},\n }),\n );\n*/\n\n // make it visible (scroll)\n if (this.options.makeVisible) {\n const wrap = this.domView.querySelector('.adi-content');\n wrap.scrollIntoView({ block: 'center', behavior: 'instant' });\n }\n const selected = this.getSelected();\n this.drawAttrs(selected);\n\n if (selected && typeof selected.getModelItem === 'function' && selected.getModelItem()?.node) {\n let selectedElement = selected.modelItem.node;\n if (selectedElement?.nodeType === Node.ATTRIBUTE_NODE) {\n selectedElement = selectedElement.ownerElement;\n }\n window.document.dispatchEvent(\n new CustomEvent('log-active-element', { detail: { target: selectedElement } }),\n );\n }\n //\twindow.document.dispatchEvent(new CustomEvent('log-active-element', {detail: {target: selected}}));\n }\n\n // Highlights an element on page\n highlightElement(event) {\n // console.log('highlight',e);\n let sourceNode = event ? event.target : window.event.srcElement;\n\n if (sourceNode.classList.contains('adi-end-node')) {\n sourceNode = sourceNode.parentNode.querySelector('.adi-normal-node');\n }\n\n const inspectorNode = this.sourceNodeByInspectorNodeLookup.get(sourceNode);\n\n if (!inspectorNode || inspectorNode.ownerDocument !== window.document) {\n // Not in HTML: ignore\n return;\n }\n\n if (inspectorNode) {\n if (event.type === 'mouseover') {\n this.styleBackup = inspectorNode.getAttribute('style') || '';\n inspectorNode.setAttribute('style', `outline: 2px solid blue; ${this.styleBackup}`);\n } else if (this.styleBackup === '') {\n inspectorNode.removeAttribute('style');\n } else {\n inspectorNode.setAttribute('style', this.styleBackup);\n }\n }\n }\n\n // Handles element lookup on page\n handleLookup(e) {\n const target = e ? e.detail?.target || e.target : window.event.srcElement;\n\n if (!this.document.contains(target)) {\n // Targetted at somewhere else!!!\n return;\n }\n if (target.nodeType === Node.DOCUMENT_NODE) {\n // Targetted at the document node. Nothing to highlight\n return;\n }\n\n if (target.className.indexOf('adi-menu-lookup') !== -1) {\n // enable/disable interactive lookup\n if (this.elemLookup) {\n removeClass(target, 'adi-active');\n this.elemLookup = false;\n this.removeEvent(document.body, 'mouseover', this.handleLookup, true);\n this.removeEvent(document.body, 'mouseout', this.handleLookup, true);\n this.removeEvent(document.body, 'click', this.handleLookup, true);\n return;\n }\n addClass(target, 'adi-active');\n this.elemLookup = true;\n this.addEventDelegate(\n document.body,\n 'mouseover',\n this.handleLookup,\n false,\n '*',\n true,\n 'adi-wrapper',\n );\n this.addEventDelegate(\n document.body,\n 'mouseout',\n this.handleLookup,\n false,\n '*',\n true,\n 'adi-wrapper',\n );\n this.addEventDelegate(\n document.body,\n 'click',\n this.handleLookup,\n false,\n '*',\n true,\n 'adi-wrapper',\n );\n return;\n }\n // handle lookup events\n if (e.type === 'mouseover') {\n this.styleBackup = target.getAttribute('style') || '';\n target.setAttribute('style', `outline: 1px dashed red; ${this.styleBackup}`);\n return;\n }\n if (e.type === 'mouseout') {\n target.setAttribute('style', this.styleBackup);\n return;\n }\n this.elemLookup = false;\n removeClass(this.menuView.querySelector('.adi-menu-lookup'), 'adi-active');\n target.setAttribute('style', this.styleBackup);\n this.removeEvent(document.body, 'mouseover', this.handleLookup, true);\n this.removeEvent(document.body, 'mouseout', this.handleLookup, true);\n this.removeEvent(document.body, 'click', this.handleLookup, true);\n pauseEvent(e);\n\n // find corresponding node in the DOM view\n const active = this.sourceNodeByInspectorNodeLookup.get(target);\n\n // activate it\n if (!active) return;\n if (active) {\n active.click();\n }\n\n // open the whole path in DOM view\n if (!active.parentNode) return;\n let node = active.parentNode;\n let tmp;\n\n if (node.querySelector('ul')) {\n node.querySelector('ul').setAttribute('data-open', 'true');\n }\n while (node !== this.domView.querySelector('.adi-content')) {\n if (node.className.indexOf('adi-node') !== -1) {\n tmp = node.querySelector('.adi-trigger');\n if (tmp) {\n removeClass(tmp, 'closed');\n addClass(tmp, 'opened');\n }\n\n node = node.parentNode; // ul node\n node.setAttribute('data-open', 'true');\n }\n\n node = node.parentNode;\n }\n\n // make it visible (scroll)\n if (this.options.makeVisible) {\n active.scrollIntoView({ behavior: 'instant', block: 'nearest', inline: 'nearest' });\n }\n target.scrollIntoView({ behavior: 'instant', block: 'nearest', inline: 'nearest' });\n }\n\n // Simple cross-browser event handler that enables simple event delegation.\n // Note that the selector must be a string and no nesting is supported.\n // Selector is expected to be in one of formats listed below and works for all children\n // in the particular element.\n // Store parameter enables storing the reference to custom event handler.\n // Exclude parameter will exclude the particular element and all of its children, this works\n // only for id selectors.\n // Selector formats: tag name (\"div\"), class name (\".my-class\"), id (\"#my-id\") and any (\"*\").\n\n addEventDelegate(elem, evt, fn, capture, selector, store, exclude) {\n // custom event handler is registered\n const handler = e => {\n // check if target corresponds to the selector\n const target = e ? e.target : window.event.srcElement;\n const sel = selector.substr(1);\n let delegate = false;\n\n if (exclude) {\n let node = target;\n\n while (node !== document) {\n if (node.id === exclude) {\n return;\n }\n\n node = node.parentNode;\n }\n }\n\n // should the event be delegated?\n if (selector.indexOf('#') === 0) {\n // ID\n delegate = target.id === sel;\n } else if (selector.indexOf('.') === 0) {\n // class\n delegate = target.className.indexOf(sel) !== -1;\n } else if (selector === '*') {\n // any\n delegate = true;\n } else {\n // tag name\n delegate = target.nodeName.toLowerCase() === selector;\n }\n\n // delegate the event handling\n if (delegate) {\n fn(e);\n }\n };\n // save the reference\n if (store) {\n this.delegatedEvents.push({\n handle: handler,\n elem,\n fn,\n evt,\n });\n }\n\n elem.addEventListener(evt, handler, capture);\n }\n\n // Simple cross-browser event removing\n removeEvent(elem, evt, fn, wasDelegated) {\n if (typeof elem !== 'object') {\n throw new Error(`addEvent: Expected argument elem of type object, ${typeof elem} given.`);\n }\n\n // try to find stored delegated event\n let stored = null;\n if (wasDelegated) {\n for (let i = 0, len = this.delegatedEvents.length; i < len; i += 1) {\n stored = this.delegatedEvents[i];\n if (stored.elem === elem && stored.evt === evt && stored.fn === fn) {\n fn = stored.handle;\n this.delegatedEvents.splice(i, 1);\n break;\n }\n }\n }\n\n // elem.detachEvent(`on${evt}`, fn);\n }\n\n // Event registration\n registerEvents() {\n // events for splitters\n /*\n this.horizSplit.addEventListener(\n 'mousedown',\n e => {\n e = e || window.event;\n pauseEvent(e);\n this.horizResizing = true;\n },\n false,\n );\n */\n\n const redrawUi = () => {\n if (this.instanceId !== '#document') {\n const instance = window.document.querySelector(`#${this.instanceId}`);\n this.document = instance.getInstanceData();\n }\n this.drawDOM(this.document, this.domView.querySelector('.adi-tree-view'), true);\n };\n\n // Update UI when something with instances changed\n document.addEventListener('instance-loaded', redrawUi);\n // Update UI when some value changes\n document.addEventListener('value-changed', redrawUi);\n // Update UI when we're done loading and all repeats are done\n document.addEventListener('ready', redrawUi);\n\n document.addEventListener(\n 'mouseup',\n () => {\n document.documentElement.style.cursor = 'default';\n this.vertResizing = false;\n this.horizResizing = false;\n },\n false,\n );\n\n document.addEventListener('mousemove', event => this.verticalResize(event), false);\n document.addEventListener('mousemove', event => this.horizontalResize(event), false);\n // window resize\n window.addEventListener('resize', event => this.refreshUI(event), false);\n\n // keypress events\n document.addEventListener('keypress', event => this.processKey(event), false);\n\n // fore action events\n document.addEventListener('log-active-element', event => this.handleLookup(event), false);\n\n // Dom view folding handler\n const handleFolding = e => {\n const target = e ? e.target : window.event.srcElement;\n const ul = target.parentNode.querySelector('ul');\n\n if (ul.getAttribute('data-open') === 'true') {\n removeClass(target, 'opened');\n addClass(target, 'closed');\n ul.setAttribute('data-open', 'false');\n } else {\n removeClass(target, 'closed');\n addClass(target, 'opened');\n ul.setAttribute('data-open', 'true');\n }\n };\n\n // dom tree view folding\n this.addEventDelegate(this.domView, 'click', handleFolding, false, '.adi-trigger');\n\n // active element\n this.addEventDelegate(\n this.domView,\n 'click',\n event => this.handleActive(event),\n false,\n '.adi-normal-node',\n );\n this.addEventDelegate(\n this.domView,\n 'click',\n event => this.handleActive(event),\n false,\n '.adi-end-node',\n );\n\n // matching tag highlighting\n this.addEventDelegate(\n this.domView,\n 'mouseover',\n e => {\n const target = e ? e.target : window.event.srcElement;\n addClass(target.parentNode.querySelector('.adi-normal-node'), 'hover');\n },\n false,\n '.adi-end-node',\n );\n this.addEventDelegate(\n this.domView,\n 'mouseout',\n e => {\n const target = e ? e.target : window.event.srcElement;\n removeClass(target.parentNode.querySelector('.adi-normal-node'), 'hover');\n },\n false,\n '.adi-end-node',\n );\n\n // page element highlighting\n this.addEventDelegate(\n this.domView,\n 'mouseover',\n event => this.highlightElement(event),\n false,\n '.adi-end-node',\n );\n this.addEventDelegate(\n this.domView,\n 'mouseover',\n event => this.highlightElement(event),\n false,\n '.adi-normal-node',\n );\n this.addEventDelegate(\n this.domView,\n 'mouseout',\n event => this.highlightElement(event),\n false,\n '.adi-end-node',\n );\n this.addEventDelegate(\n this.domView,\n 'mouseout',\n event => this.highlightElement(event),\n false,\n '.adi-normal-node',\n );\n\n // element lookup\n this.menuView\n .querySelector('.adi-menu-lookup')\n .addEventListener('click', event => this.handleLookup(event), false);\n\n document.addEventListener('handle-active', e => {\n if (e.detail.selected === this.getSelected()) {\n // We caused this. ignore\n return;\n }\n const { selected } = e.detail;\n const target = this.sourceNodeByInspectorNodeLookup.get(selected);\n // make it visible (scroll)\n if (this.options.makeVisible) {\n const wrap = this.domView.querySelector('.adi-content');\n if (target.offsetTop >= wrap.clientHeight || target.offsetTop <= wrap.scrollTop) {\n wrap.scrollTop = target.offsetTop - Math.floor(wrap.clientHeight / 2);\n }\n }\n\n this.drawAttrs(this.getSelected());\n });\n\n document.addEventListener('execute-action', e => this.processExecuteAction(event), {\n capture: true,\n });\n\n // options events\n this.addEventDelegate(\n this.optsView,\n 'change',\n event => this.changeOption(event),\n false,\n 'input',\n );\n this.addEventDelegate(\n this.optsView,\n 'click',\n event => this.toggleOptions(event),\n false,\n '.adi-opt-close',\n );\n this.menuView\n .querySelector('.adi-menu-config')\n .addEventListener('click', event => this.toggleOptions(event), false);\n\n // attributes events\n if (!this.isInstanceViewer) {\n this.addEventDelegate(this.attrView, 'change', this.changeAttribute, false, 'input');\n }\n }\n}\n\nexport default ADI;\n","import ADI from './adi.js';\n\nexport class FxDomInspector extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n this.instanceName = null;\n this.instance = null;\n }\n\n connectedCallback() {\n this.render();\n if (this.instance) {\n this.shadowRoot.querySelector('#focus-button').style = 'display: none';\n } else {\n this.setupFocusButton();\n }\n }\n\n setInstance(instance) {\n this.instance = instance;\n }\n\n disconnectedCallback() {\n this.adiInstance = null;\n }\n\n setupFocusButton() {\n let styleBackup = '';\n let focusedElement = null;\n const removeFocus = () => {\n if (styleBackup === '') {\n focusedElement.removeAttribute('style');\n } else {\n focusedElement.setAttribute('style', styleBackup);\n }\n focusedElement = null;\n };\n\n const onHover = event => {\n const { target } = event;\n if (event.type === 'mouseover') {\n styleBackup = target.getAttribute('style') || '';\n target.setAttribute('style', `outline: 2px solid blue; ${styleBackup}`);\n focusedElement = target;\n return;\n }\n if (focusedElement) {\n removeFocus();\n }\n };\n\n const focusButton = this.shadowRoot.querySelector('#focus-button');\n let isFocussing = false;\n const styleElement = window.document.head.appendChild(document.createElement('style'));\n const stopFocussing = () => {\n isFocussing = false;\n window.document.body.removeEventListener('click', listener);\n focusButton.classList.remove('selected-btn');\n styleElement.innerHTML = '';\n document.body.style.cursor = 'auto';\n\n window.document.body.removeEventListener('mouseover', onHover);\n window.document.body.removeEventListener('mouseout', onHover);\n if (focusedElement) {\n removeFocus();\n }\n };\n const listener = event => {\n stopFocussing();\n\n event.preventDefault();\n event.stopPropagation();\n if (event.target !== focusButton) {\n // Do not 'click on the focusbutton. It's a cancel.\n // console.log('done', event.target);\n window.document.dispatchEvent(\n new CustomEvent('log-active-element', { detail: { target: event.target } }),\n );\n }\n };\n const startFocussing = () => {\n isFocussing = true;\n focusButton.classList.add('selected-btn');\n document.body.style.cursor = 'crosshair';\n\n window.document.body.removeEventListener('click', listener);\n styleElement.innerHTML =\n 'fx-fore::before { color:blue; content: \"Sub fore!\" } fx-fore {border: solid 1px blue}';\n window.document.body.addEventListener('click', listener);\n\n window.document.body.addEventListener('mouseover', onHover);\n window.document.body.addEventListener('mouseout', onHover);\n };\n window.document.addEventListener('keyup', event => {\n if (isFocussing && event.code === 'Escape') {\n stopFocussing();\n return;\n }\n if (!isFocussing && event.code === 'KeyI' && event.ctrlKey) {\n startFocussing();\n }\n });\n focusButton.addEventListener('click', clickEvent => {\n if (isFocussing) {\n stopFocussing();\n } else {\n startFocussing();\n }\n\n clickEvent.preventDefault();\n clickEvent.stopPropagation();\n });\n }\n\n render() {\n const style = `\n @import '../../resources/fore.css';\n \n :host {\n display:block;\n background:transparent;\n }\n body {\n -webkit-animation: bugfix infinite 1s;\n font-size:1rem;\n }\n \n @-webkit-keyframes bugfix {\n from {\n padding: 0\n }\n to {\n padding: 0\n }\n }\n .adi-content {\n position: relative;\n overflow: auto;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n height: 100% !important;\n padding:0;\n font-size:0.8em;\n }\n .adi-content header{\n padding:0.5rem;\n // background:rgba(255, 255, 255, 0.2);\n border-bottom:2px solid #ddd;\n border-collapse:collapse;\n }\n .adi-content > * {\n padding:0 0.25em;\n }\n \n #adi-wrapper {\n top: 0;\n font-family: \"Segoe UI\", Arial;\n font-size: 1.1rem;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n position:relative;\n height:calc(100% - 8rem);\n display:flex;\n }\n \n #adi-wrapper.left {\n left: 0\n }\n \n #adi-wrapper.right {\n right: 0\n }\n \n #adi-wrapper.transparent {\n background: rgba(250, 250, 250, 0.9)\n }\n \n #adi-panel {\n position:fixed;\n top:0;\n /*bottom: 0;*/\n right: 0;\n height: 24px;\n background: #d4d4d4;\n border-top: 1px solid #bbc5c9\n }\n \n #adi-panel .adi-path-wrap {\n position:absolute;\n bottom: 0;\n left: 0;\n width: 80%;\n height: 24px;\n padding: 0 13px 0 18px;\n line-height: 24px;\n overflow: hidden;\n box-sizing: border-box;\n -moz-box-sizing: border-box\n }\n \n #adi-panel .adi-path-wrap.adi-overflowing .adi-path-left, \n #adi-panel .adi-path-wrap.adi-overflowing .adi-path-right {\n display: block\n }\n \n #adi-panel .adi-path {\n height: 24px;\n overflow: hidden;\n white-space: nowrap\n }\n \n #adi-panel .adi-path-left, #adi-panel .adi-path-right {\n display: none;\n position: absolute;\n top: 0;\n width: 8px;\n height: 24px;\n background-repeat: no-repeat;\n background-position: center center;\n opacity: .7\n }\n \n #adi-panel .adi-path-left:hover, #adi-panel .adi-path-right:hover {\n opacity: 1\n }\n \n #adi-panel .adi-path-left {\n left: 7px;\n background-image: url('img/left_shift.png')\n }\n \n #adi-panel .adi-path-right {\n position:absolute;\n right: 2px;\n background-image: url('/resources/scripts/dom-inspector/img/right_shift.png')\n }\n \n #adi-panel .adi-menu-wrap {\n bottom: 0;\n right: 24px;\n width: 50px;\n height: 24px\n }\n \n #adi-panel .adi-menu-lookup, #adi-panel .adi-menu-config {\n display: block;\n float: left;\n width: 24px;\n height: 24px;\n border-left: 1px solid #bbc5c9;\n background-position: center center;\n background-repeat: no-repeat;\n opacity: .7;\n border-radius: 0\n }\n \n #adi-panel .adi-menu-lookup:hover, #adi-panel .adi-menu-config:hover {\n background-color: #c5d9d8;\n opacity: 1\n }\n \n #adi-panel .adi-menu-lookup.adi-active, #adi-panel .adi-menu-config.adi-active {\n background-color: #fafafa;\n opacity: 1\n }\n \n #adi-panel .adi-menu-lookup {\n background-image: url('/resources/scripts/dom-inspector/img/lookup.png')\n }\n \n #adi-panel .adi-menu-config {\n background-image: url('/resources/scripts/dom-inspector/img/config.png')\n }\n \n \n \n #adi-vert-split {\n position: fixed;\n top: 0;\n width: 4px;\n height: 100%;\n cursor: e-resize;\n border-width: 0 1px 0 0;\n background: #bbc5c9;\n border-color: #768285;\n border-style: solid;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n \n #adi-vert-split:hover {\n background: #c5d9d8;\n }\n \n \n #adi-dom-view {\n border-right:2px solid #ddd;\n overflow:auto;\n flex-grow:3;\n }\n \n #adi-dom-view ul {\n margin: 0;\n padding: 0;\n list-style: none\n }\n \n #adi-dom-view ul[data-open=true] {\n display: block\n }\n \n #adi-dom-view ul[data-open=false] {\n display: none\n }\n \n #adi-dom-view ul ul {\n margin: 4px 0\n }\n \n #adi-dom-view ul li {\n padding-left: 1em;\n padding-bottom: 0.125em;\n margin: 0;\n padding-top: 0.125em; \n }\n \n \n \n \n \n \n \n #adi-dom-view .adi-normal-node, \n #adi-dom-view .adi-end-node {\n margin-right: 5px;\n padding: 0 6px 0px;\n background: #d2e8ff;\n border-radius: 8px;\n cursor: default;\n font-size:0.8rem;\n }\n #adi-dom-view .adi-text-node:after, #adi-dom-view .adi-comment-node:after {\n content: '\"'\n }\n \n #adi-dom-view .adi-text-node:before, #adi-dom-view .adi-comment-node:before {\n content: '\"'\n }\n \n #adi-dom-view .adi-comment-node {\n color: #999;\n font-style: italic\n }\n \n #adi-dom-view .adi-text-node, #adi-dom-view .adi-comment-node {\n display: block;\n padding: 3px 8px;\n color: #444;\n background: #fff;\n border-radius: 8px\n }\n \n #adi-dom-view .adi-normal-node:hover, \n #adi-dom-view .adi-normal-node.hover, \n #adi-dom-view .adi-end-node:hover, \n #adi-dom-view .adi-end-node.hover {\n background: var(--paper-grey-700);\n color:white;\n }\n \n #adi-dom-view .adi-normal-node:hover ~ span,\n #adi-dom-view .adi-normal-node.hover ~ span,\n #adi-dom-view .adi-end-node:hover ~ span,\n #adi-dom-view .adi-end-node.hover ~ span {\n background: var(--paper-grey-700);\n color:white;\n }\n \n #adi-dom-view .adi-normal-node.adi-active-node, \n #adi-dom-view .adi-end-node.adi-active-node {\n background: var(--paper-grey-700);\n color:white;\n }\n \n #adi-dom-view .adi-normal-node.adi-active-node ~ span,\n #adi-dom-view .adi-end-node.adi-active-node ~ span {\n background: var(--paper-grey-700);\n color:white;\n }\n \n \n \n \n \n \n #adi-dom-view .adi-trigger {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 0 5px 0 -13px;\n opacity: .7\n }\n \n #adi-dom-view .adi-trigger.closed {\n // background: url('/resources/scripts/dom-inspector/img/node_closed.png') no-repeat;\n } \n #adi-dom-view .adi-trigger.closed::before {\n content:'\\\\25B8';\n }\n \n #adi-dom-view .adi-trigger.opened {\n // background: url('/resources/scripts/dom-inspector/img/node_opened.png') no-repeat\n }\n #adi-dom-view .adi-trigger.opened::before{\n content:'\\\\25BE';\n }\n \n #adi-dom-view .adi-trigger:hover {\n opacity: 1\n }\n \n #adi-opts-view {\n position: relative;\n height: 100%;\n padding: 0 15px;\n background: #fff\n }\n \n #adi-opts-view.adi-hidden {\n display: none\n }\n \n #adi-opts-view .adi-opt-heading, #adi-opts-view .adi-opt {\n display: block;\n padding: 5px 0\n }\n \n #adi-opts-view .adi-opt-heading {\n padding: 20px 0 10px;\n font-size: 1rem;\n }\n \n #adi-opts-view .adi-opt-heading:first-child {\n padding-top: 10px\n }\n \n #adi-opts-view .adi-opt input {\n margin-right: 6px\n }\n \n #adi-opts-view .adi-opt-close {\n position: absolute;\n top: 5px;\n right: 28px;\n width: 16px;\n height: 16px;\n background: url('/resources/scripts/dom-inspector/img/options_close.png') no-repeat;\n opacity: .7;\n }\n \n #adi-opts-view .adi-opt-close:hover {\n opacity: 1;\n }\n \n #adi-attr-view {\n top: 0.5rem;\n border: 1px solid #ddd;\n overflow: auto;\n padding: 0.25em;\n height: calc(90% - 1em);\n min-width: 10rem;\n position: absolute;\n z-index: 10;\n right: 0.5rem;\n background:rgba(255,255,255,0.85);\n }\n #adi-attr-view > .adi-content{\n height:calc(100% - 5em);\n overflow:auto;\n }\n \n #adi-attr-view .adi-attr {\n display: block;\n padding: 0.25em;\n }\n \n #adi-attr-view hr {\n height: 1px;\n border: none\n }\n \n #adi-attr-view input[type=text] {\n width: calc(100% - 0.5em);\n margin-top: 3px;\n padding: 2px;\n }\n \n #adi-horiz-split {\n height: 4px;\n cursor: n-resize;\n border-width: 0 0 1px 0;\n background: #bbc5c9;\n border-color: #768285;\n border-style: solid;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n \n #adi-horiz-split:hover {\n background: #c5d9d8;\n }\n \n #adi-dom-view .fore-node{\n background: var(--paper-blue-700);\n font-size:1.1em;\n color:white;\n }\n #adi-dom-view .adi-normal-node.fore-node:hover {\n background: var(--paper-grey-700);\n color:white;\n }\n #adi-dom-view .adi-end-node.fore-node{\n background: var(--paper-blue-700);\n font-size:1em;\n color:white;\n }\n\n #adi-dom-view .adi-node .adi-active-node.fore-node,\n #adi-dom-view .adi-node.action .adi-active-node.fore-node,\n #adi-dom-view .adi-node.action .adi-active-node.fore-node ~ .adi-end-node\n {\n background: var(--paper-grey-700);\n color:white;\n }\n \n #adi-dom-view .adi-node.fx-fore{\n background:var(--paper-blue-grey-50); \n }\n #adi-dom-view .adi-node.fx-model{\n background:var(--paper-blue-grey-100); \n padding:0.25em 0;\n } \n \n #adi-dom-view .adi-node.action .fore-node {\n background:var(--paper-blue-grey-100);\n color:black;\n font-family:monospace;\n }\n \n .toggleView{\n /*width:20px;*/\n /*height: 20px;*/\n }\n input, select{\n display: block;\n }\n header{\n background:rgba(255, 255, 255, 0.2);\n }\n\n .selected-btn { color: orange }\n `;\n\n const html = `\n <slot name=\"header\"></slot>\n <button id=\"focus-button\">Focus</button>\n <slot></slot>\n `;\n\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${html}\n `;\n const inst = this.hasAttribute('instance') ? this.getAttribute('instance') : '#document';\n this.adiInstance = new ADI(\n this.shadowRoot,\n this.hasAttribute('instance') ? this.instance : '#document',\n );\n }\n\n verticalResize(e) {\n if (!this.vertResizing) {\n return;\n }\n\n e = e || window.event;\n document.documentElement.style.cursor = 'e-resize';\n const nWidth = this.options.width + this.xPos - e.clientX;\n\n if (nWidth >= this.options.minWidth) {\n this.options.width = nWidth;\n this.xPos = e.clientX;\n this.refreshUI();\n this.saveOptions();\n }\n }\n}\n\nif (!customElements.get('fx-dom-inspector')) {\n customElements.define('fx-dom-inspector', FxDomInspector);\n}\n","/**\n * A simple collapsible treeview for showing JSON data.\n *\n */\nclass FxJsonInstance extends HTMLElement {\n // constructor(container, options = {}) {\n constructor() {\n super();\n const shadowRoot = this.attachShadow({ mode: 'open' });\n this.instanceElement = null;\n this.foreSelector = null;\n }\n\n connectedCallback() {\n this.container = this.querySelector('.json-path-picker-container');\n this.foreSelector = this.hasAttribute('fore') ? this.getAttribute('fore') : 'fx-fore'; // default to first one in doc\n this.render();\n }\n\n render() {\n const style = `\n @import '../../resources/fore.css';\n \n :host {\n display:block;\n font-size:0.8em;\n background:rgba(250, 250, 250, 0.9);\n }\n .container{\n margin-left:1em;\n }\n .header{\n margin-left:0;\n }\n\n ::slot[name='header']{\n margin-left:-1em;\n }\n /* Syntax highlighting for JSON objects */\n ul.json-dict, ol.json-array {\n list-style-type: none;\n margin: 0 0 0 1px;\n border-left: 1px dotted #ccc;\n padding-left: 2em;\n }\n .json-string {\n // color: #0B7500;\n }\n .json-literal {\n color: #1A01CC;\n font-weight: bold;\n }\n \n /* Toggle button */\n a.json-toggle {\n position: relative;\n color: inherit;\n text-decoration: none;\n }\n a.json-toggle:focus {\n outline: none;\n }\n a.json-toggle:before {\n content: \"\\\\25BC\"; /* down arrow */\n position: absolute;\n display: inline-block;\n width: 1em;\n left: -1.2em;\n font-size:0.8em;\n }\n a.json-toggle.collapsed:before {\n content: \"\\\\25B6\"; /* left arrow */\n }\n \n /* Collapsable placeholder links */\n a.json-placeholder {\n color: #aaa;\n padding: 0 1em;\n text-decoration: none;\n }\n a.json-placeholder:hover {\n text-decoration: underline;\n }\n \n /* Copy path icon */\n .pick-path {\n color: lightgray;\n cursor: pointer;\n margin-left: 3px;\n }\n \n .pick-path:hover {\n color: darkgray;\n }\n \n `;\n\n const instanceId = this.hasAttribute('instance') ? this.getAttribute('instance') : 'default';\n const fore = document.querySelector(this.foreSelector);\n if (!fore) {\n throw new Error(`this '${this.foreSelector}' does not match a fx-fore element`);\n }\n\n const html = `\n <div class=\"container\"></div>\n `;\n\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n <slot name=\"header\">\n <header class=\"header\">${instanceId}</header>\n </slot>\n <slot></slot>\n ${html}\n `;\n\n // fore.addEventListener('ready', e => {\n\n const instanceElement = document.querySelector(`#${instanceId}`);\n if (\n !instanceElement ||\n instanceElement.nodeName !== 'FX-INSTANCE' ||\n instanceElement.getAttribute('type') !== 'json'\n ) {\n throw new Error(\n `this '${instanceId}' does not match an fx-instance element or is not of type JSON`,\n );\n }\n const container = this.shadowRoot.querySelector('.container');\n\n const json = instanceElement.instanceData;\n let tree = this.json2html(json, { outputWithQuotes: true });\n if (this.isCollapsable(json)) tree = '<a href=\\'#\\' class=\"json-toggle\"></a>'.concat(tree); // Insert HTML in target DOM element\n\n container.innerHTML = tree;\n\n const toggles = this.shadowRoot.querySelectorAll('.json-toggle');\n toggles.forEach(toggle => {\n toggle.addEventListener('click', this._handleToggleEvent.bind(this));\n });\n // container.addEventListener('click', (event) => this._handleToggleEvent);\n // });\n }\n\n disconnectedCallback() {}\n\n _isHidden(elem) {\n const width = elem.offsetWidth;\n const height = elem.offsetHeight;\n return (width === 0 && height === 0) || window.getComputedStyle(elem).display === 'none';\n }\n\n _handleToggleEvent(event) {\n // Change class\n // event.preventDefault();\n // event.stopPropagation();\n\n const elm = event.target;\n elm.classList.toggle('collapsed'); // Fetch every json-dict and json-array to toggle them\n\n const subTarget = this._siblings(elm, 'ul.json-dict, ol.json-array', el => {\n el.style.display = el.style.display === '' || el.style.display === 'block' ? 'none' : 'block';\n }); // ForEach subtarget, previous siblings return array so we parse it\n\n for (let i = 0; i < subTarget.length; i += 1) {\n if (!this._isHidden(subTarget[i])) {\n // Parse every siblings with '.json-placehoder' and remove them (previous add by else)\n this._siblings(subTarget[i], '.json-placeholder', el => el.parentNode.removeChild(el));\n } else {\n // count item in object / array\n const childs = subTarget[i].children;\n let count = 0;\n\n for (let j = 0; j < childs.length; j += 1) {\n if (childs[j].tagName === 'LI') {\n count += 1;\n }\n }\n\n const placeholder = count + (count > 1 ? ' items' : ' item'); // Append a placeholder\n subTarget[i].insertAdjacentHTML(\n 'afterend',\n '<a href class=\"json-placeholder\">'.concat(placeholder, '</a>'),\n );\n }\n } // Prevent propagation\n\n event.stopPropagation();\n event.preventDefault();\n }\n\n _siblings(el, sel, callback) {\n const sibs = [];\n\n for (let i = 0; i < el.parentNode.children.length; i += 1) {\n const child = el.parentNode.children[i];\n\n if (child !== el && typeof sel === 'string' && child.matches(sel)) {\n sibs.push(child);\n }\n } // If a callback is passed, call it on each sibs\n\n if (callback && typeof callback === 'function') {\n for (let _i = 0; _i < sibs.length; _i += 1) {\n callback(sibs[_i]);\n }\n }\n\n return sibs;\n }\n\n json2html(json, options) {\n let html = '';\n\n if (typeof json === 'string') {\n // Escape tags\n const tmp = json\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"');\n\n if (this.isUrl(tmp)) {\n html += '<a href=\"'.concat(tmp, '\" class=\"json-string\">').concat(tmp, '</a>');\n } else {\n html += '<span class=\"json-string\">\"'.concat(tmp, '\"</span>');\n }\n } else if (typeof json === 'number') {\n html += '<span class=\"json-literal\">'.concat(json, '</span>');\n } else if (typeof json === 'boolean') {\n html += '<span class=\"json-literal\">'.concat(json, '</span>');\n } else if (json === null) {\n html += '<span class=\"json-literal\">null</span>';\n } else if (json instanceof Array) {\n if (json.length > 0) {\n html += '[<ol class=\"json-array\">';\n\n for (let i = 0; i < json.length; i += 1) {\n html += '<li data-key-type=\"array\" data-key=\"'.concat(i, '\">'); // Add toggle button if item is collapsable\n\n if (this.isCollapsable(json[i])) {\n html += '<a href=\"#\" class=\"json-toggle\"></a>';\n }\n\n html += this.json2html(json[i], options); // Add comma if item is not last\n\n if (i < json.length - 1) {\n html += ',';\n }\n\n html += '</li>';\n }\n\n html += '</ol>]';\n } else {\n html += '[]';\n }\n } else if (this._typeof(json) === 'object') {\n let keyCount = Object.keys(json).length;\n\n if (keyCount > 0) {\n html += '{<ul class=\"json-dict\">';\n\n for (const key in json) {\n if (json.hasOwnProperty(key)) {\n html += '<li data-key-type=\"object\" data-key=\"'.concat(key, '\">');\n const keyRepr = options.outputWithQuotes\n ? '<span class=\"json-string\">\"'.concat(key, '\"</span>')\n : key; // Add toggle button if item is collapsable\n\n if (this.isCollapsable(json[key])) {\n html += '<a href=\\'#\\' class=\"json-toggle\">'.concat(keyRepr, '</a>');\n } else {\n html += keyRepr;\n }\n\n // ### keep the following comment for later - pick path is a good idea but needs to be adapted to XPath syntax\n // html += '<span class=\"pick-path\" title=\"Pick path\">⧉</span>';\n html += ': '.concat(this.json2html(json[key], options)); // Add comma if item is not last\n\n keyCount -= 1;\n\n if (keyCount > 0) {\n html += ',';\n }\n\n html += '</li>';\n }\n }\n\n html += '</ul>}';\n } else {\n html += '{}';\n }\n }\n\n return html;\n }\n\n isUrl(string) {\n const regexp =\n /^(ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#:.?+=&%@!\\-/]))?/;\n return regexp.test(string);\n }\n\n _typeof(obj) {\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n this._typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n this._typeof = function _typeof(obj) {\n return obj &&\n typeof Symbol === 'function' &&\n obj.constructor === Symbol &&\n obj !== Symbol.prototype\n ? 'symbol'\n : typeof obj;\n };\n }\n return this._typeof(obj);\n }\n\n isCollapsable(arg) {\n return arg instanceof Object && Object.keys(arg).length > 0;\n }\n\n /*\n setup() {\n // Create shadow DOM\n\n // Add styles to shadow DOM\n const style = document.createElement('style');\n style.textContent = `\n /!* add your CSS styles here *!/\n `;\n shadowRoot.appendChild(style);\n\n // Move content to shadow DOM\n const container = this.container.cloneNode(true);\n shadowRoot.appendChild(container);\n this.container.remove();\n this.container = shadowRoot.querySelector('.json-path-picker-container');\n this.clearBtn = shadowRoot.querySelector('.json-path-picker-clear-btn');\n this.jsonTextarea = shadowRoot.querySelector('.json-path-picker-json');\n this.treeView = shadowRoot.querySelector('.json-path-picker-tree');\n this.resultView = shadowRoot.querySelector('.json-path-picker-result');\n\n const data = {\n \"automobiles\": [\n {\n \"maker\": \"Nissan\",\n \"model\": \"Teana\",\n \"year\": 2000\n },\n {\n \"maker\": \"Honda\",\n \"model\": \"Jazz\",\n \"year\": 2023\n },\n {\n \"maker\": \"Honda\",\n \"model\": \"Civic\",\n \"year\": 2007\n },\n {\n \"maker\": \"Toyota\",\n \"model\": \"Yaris\",\n \"year\": 2008\n },\n {\n \"maker\": \"Honda\",\n \"model\": \"Accord\",\n \"year\": 2011\n }\n ],\n \"motorcycles\": [{\n \"maker\": \"Honda\",\n \"model\": \"ST1300\",\n \"year\": 2012\n }]\n }\n\n this.updateTree(JSON.stringify(data));\n\n }\n*/\n\n static get observedAttributes() {\n return ['data'];\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n if (name === 'data') {\n this.jsonTextarea.value = newValue;\n this.updateTree(newValue);\n }\n }\n\n updateTree(jsonString) {\n try {\n this.data = JSON.parse(jsonString);\n this.treeView.innerHTML = '';\n this.treeView.appendChild(this.createTreeView(this.data, ''));\n } catch (e) {\n console.error(e);\n alert('Invalid JSON');\n }\n }\n\n createTreeView(data, path) {\n const ul = document.createElement('ul');\n ul.classList.add('jp-ul');\n if (Array.isArray(data)) {\n data.forEach((item, index) => {\n const li = document.createElement('li');\n li.classList.add('jp-li');\n const newPath = `${path}[${index}]`;\n li.appendChild(this.createItemView(newPath, item));\n ul.appendChild(li);\n });\n } else if (typeof data === 'object' && data !== null) {\n Object.keys(data).forEach(key => {\n const li = document.createElement('li');\n li.classList.add('jp-li');\n const newPath = `${path}.${key}`;\n li.appendChild(this.createItemView(newPath, data[key]));\n ul.appendChild(li);\n });\n } else {\n const li = document.createElement('li');\n li.classList.add('jp-li');\n li.appendChild(this.createItemView(path, data));\n ul.appendChild(li);\n }\n return ul;\n }\n}\n\nif (!customElements.get('fx-json-instance')) {\n customElements.define('fx-json-instance', FxJsonInstance);\n}\n","import './fx-action-log.js';\nimport './fx-dom-inspector.js';\nimport './fx-json-instance.js';\n// import './fx-minimap.js';\n\nexport class FxDevtools extends HTMLElement {\n static get properties() {\n return {\n fore: {\n type: Object,\n description: 'The fx-fore element the devtools are attached to',\n },\n instances: {\n type: Array,\n description: 'Instances of selected Fore element',\n },\n selector: {\n type: String,\n description: 'optional selector to attach to a certain fx-fore element with given id',\n },\n };\n }\n\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n Object.keys(this.constructor.properties).forEach(propertyName => {\n const property = this.constructor.properties[propertyName];\n const attribute = property.attribute || propertyName;\n const value = this.getAttribute(attribute) || property.default;\n const typedValue = property.type(value);\n this[propertyName] = typedValue;\n });\n\n this.isResizing = false;\n this.lastY = 0;\n this.defaultHeight = '40vh';\n\n this.buttonByInstanceId = new Map();\n\n const attachToFore = fore => {\n this.fore = fore;\n this.instances = [...this.fore.getModel().instances];\n // console.log('instances',this.instances);\n const header = this.shadowRoot.querySelector('.instances header');\n header.textContent = 'Data ';\n this.instances.forEach(instance => {\n const btn = document.createElement('button');\n btn.setAttribute('type', 'button');\n btn.textContent = instance.id;\n header.appendChild(btn);\n this.buttonByInstanceId.set(instance.id, btn);\n btn.addEventListener('click', () => this.selectInstance(instance.id));\n });\n if (!this.instances.length) {\n return;\n }\n this.selectInstance(this.instances[0].id);\n };\n\n const fore = document.querySelector('fx-fore');\n if (fore) {\n // If there's no `fore` element, there cannot be an inspector\n if (fore.inited) {\n // The fore element is already initialized. We can attach immediately.\n // This can happen if the fore element does not use anything asynchronous and loads right away.\n attachToFore(fore);\n } else {\n fore.addEventListener('model-construct-done', () => attachToFore(fore));\n }\n }\n\n window.document.addEventListener('log-active-element', e => {\n const target = e ? e.detail?.target || e.target : window.event.srcElement;\n\n // Note that the event target or srcElement may be the document node.\n const closestFore = target.nodeType === Node.DOCUMENT_NODE ? null : target.closest('fx-fore');\n if (closestFore) {\n attachToFore(closestFore);\n }\n\n const instance = this.instances.find(instance => {\n if (instance.type !== 'xml') {\n // TODO: handle JSON instances!\n return false;\n }\n return instance.instanceData.contains(target);\n });\n // const instance = this._getInstanceForTarget(target);\n\n if (instance) {\n this.selectInstance(instance.id);\n }\n });\n }\n\n _getInstanceForTarget(node) {\n this.instances.forEach(instance => {\n if (instance.type === 'xml' && instance.instanceData.contains(node)) {\n return instance;\n }\n if (instance.type === 'json') {\n return instance;\n }\n });\n }\n\n selectInstance(instanceId) {\n const button = this.buttonByInstanceId.get(instanceId);\n if (!button) {\n return;\n }\n if (button.classList.contains('selected-btn')) {\n return;\n }\n\n const selectedBtn = this.shadowRoot.querySelector('.selected-btn');\n if (selectedBtn) {\n selectedBtn.classList.remove('selected-btn');\n }\n\n button.classList.add('selected-btn');\n\n const instancePanel = this.shadowRoot.querySelector('.instance-panel');\n instancePanel.innerHTML = '';\n\n this.instances = [...this.fore.querySelectorAll('fx-instance')];\n const instance = Array.from(this.instances).find(inst => inst.id === instanceId);\n // console.log('wanted instance', instance);\n\n const panelContent = this._renderInstancePanel(instance);\n // console.log('panelContent', panelContent);\n // instancePanel.innerHTML = panelContent;\n instancePanel.append(panelContent);\n }\n\n connectedCallback() {\n this.render();\n // document.body.style.height = document.body.scrollHeight + 320 + 'px';\n }\n\n _startResize(event) {\n this.isResizing = true;\n this.lastY = event.clientY;\n }\n\n _resizePanel(event) {\n if (!this.isResizing) return;\n const delta = event.clientY - this.lastY;\n this.style.height = `${this.offsetHeight - delta}px`;\n this.lastHeight = this.style.height;\n this.lastY = event.clientY;\n }\n\n _stopResize(event) {\n event.preventDefault();\n event.stopPropagation();\n this.isResizing = false;\n document.body.style.height = 'inherit'; // reset before calculating scrollheight\n document.body.style.width = 'inherit'; // reset before calculating scrollheight\n const newHeight = document.body.scrollHeight + this.offsetHeight;\n document.body.style.height = `${newHeight}px`;\n }\n\n render() {\n const style = `\n @import '../../resources/fore.css';\n \n :host {\n display:block;\n position:fixed;\n bottom:0;\n left:0;\n width:100vw;\n height:var(--fx-devtools-height);\n font-style:inherit;\n font-family: 'Verdana' , 'Sans';\n font-size:1em;\n max-width:100vw;\n height:3em;\n }\n :host(.open){\n height:40vh;\n }\n \n fx-action-log{\n height:100%;\n }\n fx-dom-inspector{\n max-height:100%;\n height:100%;\n position:relative;\n }\n body {\n }\n details{\n height:100%;\n background:#ebf6ff;\n }\n .dom{\n width:45%;\n border-left:1px solid #999;\n position:relative\n }\n .dom fx-minimap{\n position:absolute;\n right:0;\n top:0;\n width:5rem;\n height:6rem;\n }\n header{\n padding:0.5rem;\n border-bottom:2px solid #ddd;\n font-size:1rem;\n }\n header button{\n margin:0 0.5em;\n border:thin solid #999;\n padding:0 0.5em;\n cursor:pointer;\n }\n header button:hover{\n background:white;\n }\n \n header button.selected-btn{\n background:steelblue;\n color:white;\n }\n .instances{\n width:35%;\n border-left:1px solid #999;\n }\n .instance-panel{\n height:100%;\n overflow:auto;\n }\n .panels{\n display:grid;\n grid-template-columns:20% 50% 30%;\n height:100%;\n width:100%;\n max-height:100%;\n border-top:thin solid #ddd;\n }\n .panels > section {\n min-height:20rem;\n/*\n background:#efefef;\n*/\n position:relative;\n display:inline-block;\n height:100%;\n width:auto;\n }\n #options{\n display:none;\n }\n #options.open{\n position:absolute;\n z-index:10;\n left:0;\n top:3em;\n height:100%;\n display:block;\n padding:0;\n background:rgba(255,255,255,0.95);\n width:100%;\n }\n .optionsBtn{\n font-size:2rem;\n }\n details[open] .optionsBtn{\n display:inline;\n }\n .resizer{\n width:100vw;\n height:6px;\n background:rgba(215,220,235,0.3);\n cursor: ns-resize;\n position:absolute;\n top:0;\n \n }\n summary{\n height:3rem;\n padding:0 1em;\n border-bottom:2px solid #ddd;\n display:flex;\n justify-content:space-between;\n align-items:center;\n color:rgba(0,0,0,0.7);\n background: rgba(235, 255, 255, 0.2);\n box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);\n backdrop-filter: blur(5px);\n -webkit-backdrop-filter: blur(5px);\n border: 1px solid rgba(255, 255, 255, 0.3);\n \n color:white;\n font-weight:300;\n background: rgb(119,119,119);\n background: linear-gradient(90deg, rgba(0,85,159,0.75) 0%, rgba(56,154,252,0.5) 50%, rgba(255,255,255,0.1) 100%);\n\n }\n summary button{\n padding:0;\n border:0;\n background:transparent;\n }\n .wrapper{\n height:100%;\n }\n .vertDevider{\n background:#ddd;\n width:4px;\n height:100%;\n cursor: ew-resize;\n }\n `;\n // console.log('render instances',this.instances);\n\n const html = `\n <section class=\"wrapper\">\n <slot></slot>\n <details class=\"fx-devtools\" open>\n <div class=\"resizer\"></div>\n <summary>Fore Glass \n <div>\n <svg preserveAspectRatio=\"xMidYMid meet\" focusable=\"true\" style=\"width: 24px;height: 24px; margin-bottom:-1px;\" width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n <g role=\"button\" id=\"find-in-page\"><path d=\"M20 19.59V8l-6-6H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c.45 0 .85-.15 1.19-.4l-4.43-4.43c-.8.52-1.74.83-2.76.83-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5c0 1.02-.31 1.96-.83 2.75L20 19.59zM9 13c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z\"></path></g>\n </svg>\n <button class=\"optionsBtn\" id=\"optionsTrigger\">⚙</button> \n </div>\n </summary>\n <section class=\"panels\">\n <section class=\"log\">\n <fx-action-log selector=\"${this.selector}\"></fx-action-log>\n </section>\n <section class=\"dom\">\n <fx-dom-inspector>\n <header slot=\"header\">Document</header>\n </fx-dom-inspector>\n </section>\n <section class=\"instances\">\n <header></header>\n <div class=\"instance-panel\">\n </div>\n </section>\n <section id=\"options\">\n <fx-log-settings></fx-log-settings>\n </section>\n </section>\n </details>\n </section>\n `;\n\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${html}\n `;\n\n // resizing handler\n this.resizer = this.shadowRoot.querySelector('.resizer');\n this.resizer.addEventListener('mousedown', this._startResize.bind(this));\n document.addEventListener('mousemove', this._resizePanel.bind(this));\n document.addEventListener('mouseup', this._stopResize.bind(this));\n\n // setup handler for option button on the right of the panel\n const optionsTrigger = this.shadowRoot.querySelector('#optionsTrigger');\n optionsTrigger.addEventListener('click', () => {\n const tr = this.shadowRoot.querySelector('#options');\n tr.classList.toggle('open');\n tr.classList.contains('open')\n ? (optionsTrigger.style.background = 'lightsteelblue')\n : (optionsTrigger.style.background = 'transparent');\n });\n\n // opening/closing the devtools\n const caption = this.shadowRoot.querySelector('.fx-devtools');\n caption.addEventListener('click', ev => {\n if (ev.target.nodeName === 'DIV' && ev.target.classList.contains('resizer')) {\n return;\n }\n if (ev.target.parentNode.open) {\n this.removeAttribute('open');\n this.lastHeight = this.style.height;\n this.style.height = '3em';\n } else {\n this.setAttribute('open', '');\n this.style.height = this.lastHeight ? this.lastHeight : '40vh';\n }\n });\n\n this.classList.add('open');\n\n /*\n document.addEventListener('value-changed', e =>{\n console.log('value-changed hitting glass', e.target);\n })\n*/\n }\n\n _handleOpen(ev) {\n // console.log('that works')\n\n document.body.style.height = '';\n }\n\n _renderInstancePanel(instance) {\n if (instance.type === 'xml') {\n const domInspector = document.createElement('fx-dom-inspector');\n domInspector.setInstance(instance);\n domInspector.setAttribute('instance', instance.id);\n return domInspector;\n\n /*\n return\n `<fx-dom-inspector instance=\"${instance.id}\"> </fx-dom-inspector>`\n */\n }\n if (instance.type === 'json') {\n const jsonInspector = document.createElement('fx-json-instance');\n jsonInspector.setAttribute('instance', instance.id);\n const span = document.createElement('span');\n span.setAttribute('slot', 'header');\n jsonInspector.append(span);\n return jsonInspector;\n /*\n return `\n <fx-json-instance instance=\"${instance.id}\">\n <span slot=\"header\"></span>\n </fx-json-instance>\n `\n*/\n }\n }\n}\n\nif (!customElements.get('fx-devtools')) {\n customElements.define('fx-devtools', FxDevtools);\n}\n","/**\n * a simple component that wraps a Fore page and puts it into shadowDom.\n *\n * HTML link elements passed as children will be used to construct a CSSStyleSheet that is passed\n * to the shadowDOM.\n * @customElement\n */\nexport class ForeComponent extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n this.src = '';\n }\n\n connectedCallback() {\n this.src = this.getAttribute('src');\n const style = `\n :host {\n display:block;\n }\n `;\n const html = `\n <fx-fore src=\"${this.src}\">\n </fx-fore>\n <slot id=\"default\"></slot>\n `;\n\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${html}\n `;\n\n /*\n * wait for slotchange, then filter document.stylesheets to construct CSSStyleSheet\n */\n const slot = this.shadowRoot.querySelector('#default');\n slot.addEventListener('slotchange', async event => {\n const children = event.target.assignedElements();\n const hostedStylesheet = children.filter(\n linkElem => linkElem.nodeName.toUpperCase() === 'LINK',\n );\n if (!hostedStylesheet) return;\n const allCSS = [...document.styleSheets]\n .map(styleSheet => {\n if (hostedStylesheet.find(sh => sh.href === styleSheet.href)) {\n try {\n return [...styleSheet.cssRules].map(rule => rule.cssText).join('');\n } catch (e) {\n console.log('Access to stylesheet %s is denied. Ignoring…', styleSheet.href);\n }\n }\n })\n .filter(Boolean)\n .join('\\n');\n\n const sheet = new CSSStyleSheet();\n sheet.replaceSync(allCSS);\n this.shadowRoot.adoptedStyleSheets = [sheet];\n });\n\n /*\n const eventSlot = this.shadowRoot.querySelector('slot[name=\"event\"]');\n eventSlot.addEventListener('slotchange', async event => {\n const children = event.target.assignedElements();\n console.log('events', children)\n });\n*/\n const eventTmpl = this.querySelector('fx-action');\n if (eventTmpl) {\n // const clone = eventTmpl.content.cloneNode(true);\n const clone = eventTmpl.cloneNode(true);\n this.removeChild(eventTmpl);\n // const content = document.importNode(clone, true);\n\n const fore = this.shadowRoot.querySelector('fx-fore');\n // fore.appendChild(content.firstElementChild);\n fore.appendChild(clone);\n }\n }\n}\n\nif (!customElements.get('fore-component')) {\n customElements.define('fore-component', ForeComponent);\n}\n","import './jinn-codemirror-bundle.js';\n\n/**\n * lists out all live instances in html 'details' and 'summary' elements.\n *\n *\n */\nexport class FxLens extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({mode: 'open'});\n }\n\n connectedCallback() {\n\n this.mode = 'xml';\n this.isResizing = false;\n this.lastX = 0;\n\n /**\n * we need to wait for DOM to be ready before taking action.\n */\n document.addEventListener('DOMContentLoaded', () => {\n this.fores = Array.from(document.querySelectorAll('fx-fore'));\n this.render();\n\n document.addEventListener('ready',(ev)=>{\n const fores = Array.from(document.querySelectorAll('fx-fore'));\n });\n this.fores.forEach(fore => {\n\n fore.addEventListener('ready', () => {\n this.render();\n });\n\n fore.addEventListener('value-changed',(ev)=>{\n this.update();\n const targetId = `${ev.detail.foreId}#${ev.detail.instanceId}`;\n const targetSummary = this.shadowRoot.querySelector(`summary[data-id=\"${targetId}\"]`);\n // console.log('value-changed on ',`${ev.detail.foreId}#${ev.detail.instanceId}`);\n this.flashEffect(targetSummary);\n });\n fore.addEventListener('deleted',(ev)=>{\n this.update();\n const targetId = `${ev.detail.foreId}#${ev.detail.instanceId}`;\n const targetSummary = this.shadowRoot.querySelector(`summary[data-id=\"${targetId}\"]`);\n this.flashEffect(targetSummary);\n });\n fore.addEventListener('insert',(ev)=>{\n console.log('+++++++++++++++++++++++++++++++insert')\n this.update();\n const targetId = `${ev.detail.foreId}#${ev.detail.instanceId}`;\n const targetSummary = this.shadowRoot.querySelector(`summary[data-id=\"${targetId}\"]`);\n this.flashEffect(targetSummary);\n });\n });\n this.lastWidth = this.offsetWidth;\n });\n\n }\n flashEffect(element) {\n // Add a glow effect\n element.style.background = 'rgba(55,55,255,0.1)';\n\n // Remove the effect after 1 second\n setTimeout(() => {\n element.style.background = 'ghostwhite';\n }, 1000);\n }\n\n /**\n * render\n * @param style\n * @returns {Promise<void>}\n */\n // async render(style) {\n async render() {\n // console.log('render')\n this.shadowRoot.innerHTML = '';\n const style = `\n :host {\n position:fixed;\n display: block;\n width:var(--inspector-handle-width);\n top:0;\n right:0;\n bottom:0;\n height: 100vh;\n background: aliceblue;\n color: white;\n overflow: hidden;\n z-index:900;\n max-width:calc(100vw - var(--inspector-handle-width));\n min-width:var(--inspector-handle-width);\n box-shadow:-2px -2px 8px rgba(0,0,0,0.3);\n }\n \n :host:has(.handle:hover){\n box-shadow:-2px -2px 8px rgba(0,0,0,0.6);\n }\n jinn-codemirror{\n min-height:5rem;\n }\n :host([open]){\n width: 40vw;\n }\n details{\n margin:0;\n width:calc(100% - 17px);\n position:relative;\n }\n .main{\n padding-left:var(--inspector-handle-width);\n color:var(--inspector-color);\n overflow:scroll;\n height:100vh;\n background:ghostwhite);\n overflow:hidden;\n \n }\n .main > div{\n overflow:auto;\n height:100vh;\n }\n .handle{\n display:flex;\n justify-content:center;\n height:100%;\n width:var(--inspector-handle-width);\n background:var(--inspector-handle-bg);\n position:absolute;\n left:0;\n color:white;\n cursor:pointer;\n z-index:800;\n }\n .handle:hover{\n opacity:1;\n }\n .handle::before{\n content: 'Data Lens';\n white-space: nowrap;\n transform: rotate(-90deg);\n display: inline-block;\n position: absolute;\n left: -85px;\n width: 200px;\n top: 0px;\n z-index:801;\n }\n .handle a,\n .handle a:visited,\n .handle a:link{\n text-decoration:none;\n color:white;\n width:1.5rem;\n height:1.5rem;\n display:inline-flex;\n align-items:center;\n justify-content:center;\n position:absolute;\n z-index:850;\n \n }\n .fore-section summary{\n cursor:pointer;\n padding:1rem 0.5rem;\n background:papayawhip;\n font-size:1.2rem;\n transition: background 0.5s ease-in-out;\n }\n header{\n padding:0.5rem;\n }\n details.instance summary{\n font-size:1.2rem;\n background:ghostwhite;\n padding:0.5rem;\n }\n .resizer{\n width:0.25rem;\n background:blue;\n height:100vh;\n background:rgba(215,220,235,0.3);\n cursor: ew-resize;\n position:absolute;\n top:0;\n left:0;\n z-index:999;\n }\n `;\n\n const fores = Array.from(document.querySelectorAll('fx-fore'));\n const instances = Array.from(document.querySelectorAll('fx-instance'));\n const openPanels = JSON.parse(localStorage.getItem('lens-panels') || '[]');\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n <details class=\"main\" open>\n <div class=\"resizer\"></div> \n <summary class=\"handle\"><a href=\"#\" id=\"reset\" title=\"reset panel state to defaults\">✕</a></summary>\n <div>\n ${instances.map((instance,index) => {\n const foreId = instance.closest('fx-fore').id;\n return `<details id=\"d${index}\" class=\"instance\"><summary data-id=\"${foreId}#${instance.id}\">${foreId}#${instance.id}</summary><jinn-codemirror mode=\"${instance.type}\"></jinn-codemirror></details>`\n }).join('')}\n </div>\n </details>\n `;\n\n const lensWidth = localStorage.getItem('lens-width');\n if(lensWidth){\n this.style.width = `${lensWidth}px`;\n }\n\n const main = this.shadowRoot.querySelector('.main');\n const opened = localStorage.getItem('lens-open');\n if(opened){\n if(opened === 'true'){\n main.setAttribute('open','open');\n }else{\n main.removeAttribute('open');\n this.removeAttribute('open');\n this.removeAttribute('style');\n }\n }else{\n main.setAttribute('open','open');\n }\n\n for (let i = 0; i < instances.length; i++) {\n const editors = Array.from(this.shadowRoot.querySelectorAll('jinn-codemirror'));\n editors[i].value = instances[i].instanceData;\n }\n\n const handle = this.shadowRoot.querySelector('.handle');\n handle.addEventListener('click', e => {\n if (this.hasAttribute('open')) {\n this.removeAttribute('open');\n this.removeAttribute('style');\n localStorage.setItem('lens-open','false');\n } else {\n this.setAttribute('open', 'open');\n if(lensWidth){\n this.style.width = `${lensWidth}px`;\n }\n localStorage.setItem('lens-open','true');\n this.render();\n }\n });\n\n const reset = this.shadowRoot.querySelector('.handle a');\n reset.addEventListener('click',(event)=>{\n event.preventDefault();\n event.stopPropagation();\n localStorage.removeItem('lens-width');\n localStorage.removeItem('lens-open');\n localStorage.removeItem('lens-panels');\n });\n\n const sections = this.shadowRoot.querySelectorAll('summary');\n Array.from(sections).forEach(sec => {\n sec.addEventListener('click', (ev) => {\n\n const details = ev.target.parentNode;\n const id = details.id;\n const panes = JSON.parse(localStorage.getItem('lens-panels') || '[]');\n if(!details.hasAttribute('open')){\n if(!panes.includes(id)){\n panes.push(id);\n localStorage.setItem('lens-panels', JSON.stringify(panes));\n }\n }else{\n if(panes.includes(id)){\n const idx = panes.indexOf(id);\n panes.splice(idx,1);\n localStorage.setItem('lens-panels',JSON.stringify(panes))\n }\n }\n })\n });\n const detailSections = this.shadowRoot.querySelectorAll('details.instance');\n Array.from(detailSections).forEach(sect => {\n if(openPanels.includes(sect.id)){\n sect.setAttribute('open','open');\n }else{\n sect.removeAttribute('open');\n }\n });\n\n // resizing handler\n this.resizer = this.shadowRoot.querySelector('.resizer');\n this.resizer.addEventListener('mousedown', event => {\n this.isResizing = true;\n this.lastX = event.clientX;\n this.lastWidth = this.offsetWidth;\n\n });\n\n document.addEventListener('mousemove', event => {\n event.preventDefault();\n event.stopPropagation();\n if (!this.isResizing) return;\n const delta = event.clientX - this.lastX;\n // console.log('_resizePanel',delta);\n this.style.width = `${this.lastWidth - delta}px`;\n\n });\n document.addEventListener('mouseup', event => {\n event.preventDefault();\n event.stopPropagation();\n this.isResizing = false;\n this.lastX = event.clientX;\n this.lastWidth = this.offsetWidth;\n if(this.hasAttribute('open')){\n localStorage.setItem('lens-width',this.lastWidth);\n }\n });\n\n }\n\n update() {\n const instances = Array.from(document.querySelectorAll('fx-instance'));\n const editors = Array.from(this.shadowRoot.querySelectorAll('jinn-codemirror'));\n\n for (let i = 0; i < instances.length; i++) {\n editors[i].value = instances[i].instanceData;\n }\n }\n\n\n}\n\nif (!customElements.get('fx-lens')) {\n customElements.define('fx-lens', FxLens);\n}\n","import XfAbstractControl from './abstract-control.js';\nimport {\n evaluateXPath,\n evaluateXPathToString,\n evaluateXPathToFirstNode,\n} from '../xpath-evaluation.js';\nimport getInScopeContext from '../getInScopeContext.js';\nimport { Fore } from '../fore.js';\nimport { ModelItem } from '../modelitem.js';\nimport { debounce } from '../events.js';\nimport { FxModel } from '../fx-model.js';\n\nconst WIDGETCLASS = 'widget';\n\n/**\n * `fx-upload` allows to embed uploaded content into XML.\n *\n * @customElement\n */\n\n\nexport default class FxUpload extends XfAbstractControl {\n constructor() {\n super();\n this.inited = false;\n this.attachShadow({ mode: 'open' });\n }\n\n static get properties() {\n return {\n ...XfAbstractControl.properties,\n accept: {\n type: String,\n },\n fileNameExpr: {\n type: String,\n },\n mimetypeExpr: {\n type: String,\n },\n };\n }\n connectedCallback() {\n\n this.updateEvent = 'change';\n this.accept = this.hasAttribute('accept') ? this.getAttribute('accept'):'';\n this.label = this.hasAttribute('label') ? this.getAttribute('label') : null;\n const style = `\n :host{\n display:inline-block;\n }\n `;\n\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${this.renderHTML(this.ref)}\n `;\n\n this.widget = this.getWidget();\n\n this.addEventListener('mousedown', e => {\n // ### prevent mousedown events on all control content that is not the widget or within the widget\n if (!Fore.isWidget(e.target) && !e.target?.classList.contains('fx-hint')) {\n e.preventDefault();\n // e.stopImmediatePropagation();\n }\n this.widget.focus();\n });\n\n // console.log('widget ', this.widget);\n let listenOn = this.widget; // default: usually listening on widget\n\n // ### convenience marker event\n if (this.debounceDelay) {\n listenOn.addEventListener(\n this.updateEvent,\n debounce(\n this,\n () => {\n // console.log('eventlistener ', this.updateEvent);\n // console.info('handling Event:', event.type, listenOn);\n this._importUploadedContent();\n },\n this.debounceDelay,\n ),\n );\n } else {\n listenOn.addEventListener(this.updateEvent, async event => {\n this._importUploadedContent(event);\n });\n }\n this.boundInitialized = false;\n this.fileNameExpr = this.getAttribute('filename');\n this.mimetypeExpr = this.getAttribute('mimetype');\n\n }\n\n async _importUploadedContent(event) {\n console.log('_importUploadedContent',event);\n const file = event.target.files[0];\n\n this.evalInContext();\n // update file ref\n const fileNode = evaluateXPathToFirstNode(this.fileNameExpr,this.nodeset,this.getOwnerForm());\n if(fileNode){\n this.fileName = fileNode.nodeValue = file.name;\n }\n this.mimetype = file.type;\n\n // update mediatype\n const mimetypeNode = evaluateXPathToFirstNode(this.mimetypeExpr,this.nodeset, this.getOwnerForm());\n if(mimetypeNode){\n mimetypeNode.nodeValue = this.mimetype;\n }\n\n let content = await this._readFile(file);\n // const setval = this.shadowRoot.getElementById('setvalue');\n console.log('content',content);\n if(file.type.endsWith('xml')){\n const uploadedXML = new DOMParser().parseFromString(content, 'application/xml');\n content = uploadedXML.firstElementChild;\n }\n this.setValue(content);\n // // this.value=content;\n // return content;\n }\n\n async _readFile(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n // Determine how to read the file based on MIME type\n const isTextFile = file.type.startsWith(\"text/\");\n const readMethod = isTextFile ? \"readAsText\" : \"readAsDataURL\";\n\n reader.onload = () => {\n const result = reader.result;\n // If it's a binary file, return only the Base64 content without the MIME prefix\n if (!isTextFile) {\n const base64Content = result.split(\",\")[1]; // Remove MIME prefix\n resolve(base64Content);\n } else {\n resolve(result); // Return plain text\n }\n };\n\n reader.onerror = () => reject(new Error(\"Error reading file\"));\n\n // Start reading the file\n reader[readMethod](file);\n });\n }\n\n\n\n\n /**\n * updates the model with a new value by executing it's `<fx-setvalue>` action.\n *\n * In case the `as='node'` is given the bound node is replaced with the widgets' value with is\n * expected to be a node again.\n *\n * @param val the new value to be set\n */\n setValue(val) {\n this.value=val;\n const modelitem = this.getModelItem();\n\n if(this.mimetype.endsWith('xml')){\n this.nodeset.textContent = '';\n this.nodeset.append(document.importNode(val,true));\n }else{\n modelitem.value = val;\n if(this.mimetype.startsWith('text/')){\n const cdata = this.nodeset.ownerDocument.createCDATASection(val);\n this.nodeset.textContent = '';\n this.nodeset.append(cdata);\n } else {\n this.nodeset.textContent = '';\n this.nodeset.append(val);\n }\n }\n\n\n if (this.getAttribute('class')) {\n this.classList.add('visited');\n } else {\n this.setAttribute('class', 'visited');\n }\n\n if (modelitem?.readonly) {\n console.warn('attempt to change readonly node', modelitem);\n return; // do nothing when modelItem is readonly\n }\n\n // const setval = this.shadowRoot.getElementById('setvalue');\n // setval.setValue(modelitem, val);\n\n if (this.modelItem instanceof ModelItem && !this.modelItem?.boundControls.includes(this)) {\n this.modelItem.boundControls.push(this);\n }\n const model = this.getModel();\n Fore.dispatch(this, 'value-changed', {\n path: this.modelItem.path,\n value: this.modelItem.value,\n oldvalue: \"\",\n instanceId:this.modelItem.instanceId,\n foreId:this.getOwnerForm().id\n });\n this.getModel().updateModel();\n this.getOwnerForm().refresh(true);\n\n // console.log('data', this.getOwnerForm().getModel().getDefaultInstanceData());\n }\n\n\n renderHTML(ref) {\n return `\n ${this.label ? `${this.label}` : ''}\n <slot></slot>\n <input type=\"file\" ${this.accept !== '' ? `accept=\"${this.accept}\"` : ''}>\n <fx-setvalue id=\"setvalue\" ref=\"${ref}\"></fx-setvalue>\n `;\n }\n\n /**\n * The widget is the actual control being used in the UI e.g. a native input control or any\n * other component that presents a control that can be interacted with.\n *\n * This function returns the widget by querying the children of this control for an element\n * with `class=\"widget\"`. If that cannot be found it searches for an native `input` of any type.\n * If either cannot be found a `<input type=\"text\">` is created.\n *\n * @returns {HTMLElement|*}\n */\n getWidget() {\n return this.shadowRoot.querySelector('input');\n }\n\n /**\n * updates the widget from the modelItem value. During refresh the a control\n * evaluates it's binding expression to determine the bound node. The bound node corresponds\n * to a modelItem which acts a the state object of a node. The modelItem determines the value\n * and the state of the node and set the `value` property of this class.\n *\n * @returns {Promise<void>}\n */\n async updateWidgetValue() {\n // this._getValueFromHtmlDom() = this.value;\n\n let { widget } = this;\n if (!widget) {\n widget = this;\n }\n\n if (widget.value !== this.value) {\n // widget.value = this.value;\n }\n }\n\n async refresh(force) {\n // console.log('fx-control refresh', this);\n super.refresh(force);\n // ### if we find a ref on control we have a 'select' control of some kind\n Fore.refreshChildren(this, force);\n }\n\n\n\n evalLabel(optionLabel, node, newEntry) {\n const labelExpr = optionLabel.substring(1, optionLabel.length - 1);\n if (!labelExpr) return;\n\n const label = evaluateXPathToString(labelExpr, node, this);\n newEntry.textContent = label;\n }\n\n createEntry() {\n return this.template.content.firstElementChild.cloneNode(true);\n // const content = this.template.content.firstElementChild.cloneNode(true);\n // return content;\n // const newEntry = document.importNode(content, true);\n // this.template.parentNode.appendChild(newEntry);\n // return newEntry;\n }\n\n // eslint-disable-next-line class-methods-use-this\n _getValueAttribute(element) {\n let result;\n Array.from(element.attributes).forEach(attribute => {\n const attrVal = attribute.value;\n if (attrVal.indexOf('{') !== -1) {\n // console.log('avt found ', attribute);\n result = attribute;\n }\n });\n return result;\n }\n}\nif (!customElements.get('fx-upload')) {\n window.customElements.define('fx-upload', FxUpload);\n}\n","import ForeElementMixin from '../ForeElementMixin.js';\nimport { evaluateXPathToBoolean, resolveId, evaluateXPath } from '../xpath-evaluation.js';\nimport getInScopeContext from '../getInScopeContext.js';\nimport { Fore } from '../fore.js';\nimport { FxFore } from '../fx-fore.js';\nimport { XPathUtil } from '../xpath-util.js';\n\n/**\n * @param {number} howLong How long to wait, in ms\n * @returns {Promise<void>}\n */\nasync function wait(howLong) {\n return new Promise(resolve => setTimeout(() => resolve(), howLong));\n}\n\n/**\n * Superclass for all action elements. Provides basic wiring of events to targets as well as\n * handle conditionals and loops of actions.\n *\n * @fires action-performed - is dispatched after each execution of an action.\n * @customElement\n * @demo demo/index.html\n */\nexport class AbstractAction extends ForeElementMixin {\n static dataChanged = false;\n\n static get properties() {\n return {\n ...super.properties,\n /**\n * can be either 'cancel' or 'perform' (default)\n */\n defaultAction: {\n type: String,\n },\n /**\n * delay before executing action in milliseconds\n */\n delay: {\n type: Number,\n },\n /**\n * detail - event detail object\n */\n detail: {\n type: Object,\n },\n /**\n * event to listen for\n */\n event: {\n type: Object,\n },\n handler: {\n type: Object,\n },\n /**\n * boolean XPath expression. If true the action will be executed.\n */\n ifExpr: {\n type: String,\n },\n /**\n * The iterate attribute can be added to any XForms action. It contains an expression\n * that is evaluated once using the in-scope evaluation context before the action is\n * executed, which will result in a sequence of items. The action will be executed with\n * each item in the sequence as its context. This context replaces the default in scope\n * evaluation context.\n *\n * The interaction with `@while` and `@if` is undefined.\n */\n iterateExpr: {\n type: String,\n },\n /**\n * whether nor not an action needs to run the update cycle\n */\n needsUpdate: {\n type: Boolean,\n },\n /**\n * The observer if given is the element on which an event is triggered. It must be an ancestor of the target\n * element of an event.\n */\n observer: {\n type: Object,\n },\n /**\n * can be either 'capture' or 'default' (default)\n */\n phase: {\n type: String,\n },\n /**\n * can be either 'stop' or 'continue' (default)\n */\n propagate: {\n type: String,\n },\n /**\n * id of target element to attach listener to\n */\n target: {\n type: String,\n },\n /**\n * boolean XPath expression. If true loop will be executed. If an ifExpr is present this\n * also needs to be true to actually run the action.\n */\n whileExpr: {\n type: String,\n },\n };\n }\n\n constructor() {\n super();\n this.detail = {};\n this.needsUpdate = false;\n }\n\n disconnectedCallback() {}\n\n connectedCallback() {\n this.setAttribute('inert', 'true');\n this.style.display = 'none';\n this.propagate = this.hasAttribute('propagate') ? this.getAttribute('propagate') : 'continue';\n this.repeatContext = undefined;\n\n if (this.hasAttribute('event')) {\n this.event = this.getAttribute('event');\n }\n if (this.hasAttribute('defaultAction')) {\n this.defaultAction = this.getAttribute('defaultAction');\n } else {\n this.defaultAction = 'perform';\n }\n if (this.hasAttribute('phase')) {\n this.phase = this.getAttribute('phase');\n } else {\n this.phase = 'default';\n }\n\n /*\n this.addEventListener('click', e => {\n e.preventDefault();\n e.stopPropagation();\n });\n */\n\n this.ifExpr = this.hasAttribute('if') ? this.getAttribute('if') : null;\n this.whileExpr = this.hasAttribute('while') ? this.getAttribute('while') : null;\n this.delay = this.hasAttribute('delay') ? Number(this.getAttribute('delay')) : 0;\n this.iterateExpr = this.hasAttribute('iterate') ? this.getAttribute('iterate') : null;\n\n this._addUpdateListener();\n }\n\n _addUpdateListener() {\n this.target = this.getAttribute('target');\n if (this.target) {\n if (this.target === '#window') {\n window.addEventListener(this.event, e => this.execute(e), {\n capture: this.phase === 'capture',\n });\n } else if (this.target === '#document') {\n document.addEventListener(this.event, e => this.execute(e), {\n capture: this.phase === 'capture',\n });\n } else {\n this.targetElement = resolveId(this.target, this);\n if (!this.targetElement) return; // does not or does not yet exist\n this?.targetElement.addEventListener(this.event, e => this.execute(e), {\n capture: this.phase === 'capture',\n });\n }\n } else {\n this.targetElement = this.parentNode;\n this.targetElement.addEventListener(this.event, e => this.execute(e), {\n capture: this.phase === 'capture',\n });\n // console.log('adding listener for ', this.event , ` to `, this);\n }\n }\n\n async performSafe() {\n try {\n await this.perform();\n // Return true to indicate success\n return true;\n } catch (error) {\n await Fore.dispatch(this, 'error', {\n origin: this,\n message: 'Action execution failed',\n expr: XPathUtil.getDocPath(this),\n level: 'Error',\n });\n // Return false to indicate failure. Any loops must be canceled\n return false;\n }\n }\n\n /**\n * executes the action.\n *\n * Will first evaluate ifExpr and continue only if it evaluates to 'true'. The 'whileExpr' will be executed\n * considering the delay if present.\n *\n * After calling `perform' which actually implements the semantics of an concrete action\n * `actionPerformed` will make sure that update cycle is run if 'needsUpdate' is true.\n *\n * @param e\n */\n async execute(e) {\n if(!this.getModel().modelConstructed) return;\n // console.log(this, this.event);\n if(this.event){\n if(this.event === 'submit-done'){\n console.info(\n `%csubmit-done ${this.event} #${this?.parentNode?.id}`,\n 'background:lime; color:black; padding:.5rem; display:inline-block; white-space: nowrap; border-radius:0.3rem;width:100%;',\n );\n }else{\n console.info(\n `%cexecuting ${this.constructor.name} ${this.event}`,\n 'background:lime; color:black; padding:.5rem; display:inline-block; white-space: nowrap; border-radius:0.3rem;width:100%;',\n );\n }\n\n }else{\n console.info(\n `%cexecuting ${this.constructor.name}`,\n 'background:limegreen; color:black; margin-left:1rem; padding:.5rem; display:inline-block; white-space: nowrap; border-radius:0.3rem;width:100%;',\n this\n );\n }\n\n\n if (e && e.target.nodeType !== Node.DOCUMENT_NODE && e.target !== window) {\n /*\n ### ignore event if there's a parent fore and the current element is NOT part of it. This avoids\n ### an event to fire twice on an inner one and the surrounding one(s).\n ### e.target might be outside an fx-fore element and shouldn't get cancelled in that case.\n */\n if (e.target.closest('fx-fore') && e.target.closest('fx-fore') !== this.closest('fx-fore')) {\n // Event originates from a sub-component. Ignore it!\n // No need to stop propagation. All other listeners will also ignore it from here\n return;\n }\n }\n\n if (this.propagate === 'stop') {\n // console.log('event propagation stopped', e)\n e.stopPropagation();\n }\n if (this.defaultAction === 'cancel') {\n e.preventDefault();\n }\n\n let resolveThisEvent = () => {};\n if (e && e.listenerPromises) {\n e.listenerPromises.push(\n new Promise((resolve) => {\n resolveThisEvent = resolve;\n }),\n );\n }\n\n // Outermost handling\n if (FxFore.outermostHandler === null) {\n console.log(\n `%coutermost Action on ${this.getOwnerForm().id}`,\n 'background:darkblue; color:white; padding:0.3rem; display:inline-block; white-space: nowrap; border-radius:0.3rem;',\n this,\n );\n\n FxFore.outermostHandler = this;\n this.dispatchEvent(\n new CustomEvent('outermost-action-start', {\n composed: true,\n bubbles: true,\n cancelable: true,\n detail: { cause: e?.type },\n }),\n );\n }\n\n if (e) {\n this.currentEvent = e;\n }\n this.needsUpdate = false;\n\n try {\n this.evalInContext();\n } catch (error) {\n console.warn('evaluation failed', error);\n }\n if (this.targetElement && this.targetElement.nodeset) {\n this.nodeset = this.targetElement.nodeset;\n }\n\n // Order of application between if / while and iterate is undefined. See\n // https://www.w3.org/MarkUp/Forms/wiki/@iterate\n if (this.iterateExpr) {\n // Same as whileExpr, let it go update UI afterwards\n await this.handleIterateExpr();\n this._finalizePerform(resolveThisEvent);\n return;\n }\n\n // Check if 'if' condition is true - otherwise exist right away\n if (this.ifExpr && !evaluateXPathToBoolean(this.ifExpr, getInScopeContext(this), this)) {\n this._finalizePerform(resolveThisEvent);\n return;\n }\n\n if (this.whileExpr) {\n // After loop is done call actionPerformed to update the model and UI\n await this.handleWhileExpr();\n this._finalizePerform(resolveThisEvent);\n return;\n }\n\n if (this.delay) {\n // Delay further execution until the delay is done\n await wait(this.delay);\n if (!XPathUtil.contains(this.getOwnerForm(), this)) {\n // We are no longer in the document. Stop working\n this.actionPerformed();\n resolveThisEvent();\n return;\n }\n }\n\n await this.performSafe();\n this._finalizePerform(resolveThisEvent);\n }\n\n async handleWhileExpr() {\n // While: while the condition is true, delay a bit and execute the action\n // Start by waiting\n await wait(this.delay || 0);\n\n if (!XPathUtil.contains(this.getOwnerForm(), this)) {\n // We are no longer in the document. Stop working\n return;\n }\n\n if (!evaluateXPathToBoolean(this.whileExpr, getInScopeContext(this), this)) {\n // Done with iterating\n return;\n }\n\n // Perform the action once. But quit if it failed\n if (!this.performSafe()) {\n return;\n }\n\n // Go for one more iteration\n if (this.delay) {\n // If we have a delay, fire and forget this.\n // Otherwise, if we have no delay, keep waiting for all iterations to be done.\n // The while is then uninterruptable and immediate\n\n this.handleWhileExpr();\n return;\n }\n\n await this.handleWhileExpr();\n }\n\n async handleIterateExpr() {\n try {\n // Iterate: get the context sequence and perform the action once per item.\n const contextSequence = evaluateXPath(this.iterateExpr, getInScopeContext(this), this);\n\n if (contextSequence.length === 0) {\n return;\n }\n\n if (!XPathUtil.contains(this.getOwnerForm(), this)) {\n // We are no longer in the document. Stop working\n return;\n }\n\n for (const item of contextSequence) {\n if (this.delay) {\n await wait(this.delay || 0);\n }\n\n // This will be picked up in `getInscopeContext`\n this.currentContext = item;\n\n // Perform the action once. But quit if it failed\n if (!(await this.performSafe())) {\n return;\n }\n }\n } finally {\n this.currentContext = null;\n }\n }\n\n _finalizePerform(resolveThisEvent) {\n this.currentEvent = null;\n this.actionPerformed();\n if (FxFore.outermostHandler === this) {\n console.log(\n `%cfinalizing outermost Action on ${this.getOwnerForm().id}`,\n 'background:darkblue; color:white; padding:0.3rem; display:inline-block; white-space: nowrap; border-radius:0.3rem;',\n this,\n );\n\n FxFore.outermostHandler = null;\n /*\n console.info(\n `%coutermost Action done`,\n 'background:#e65100; color:white; padding:0.3rem; display:inline-block; white-space: nowrap; border-radius:0.3rem;',\n this,\n );\n console.timeEnd('outermostHandler');\n */\n this.dispatchEvent(\n new CustomEvent('outermost-action-end', {\n composed: true,\n bubbles: true,\n cancelable: true,\n }),\n );\n }\n resolveThisEvent();\n }\n\n /**\n * Template method to be implemented by each action that is called by execute() as part of\n * the processing.\n *\n * This function should not called on any action directly - call execute() instead to ensure proper execution of 'if' and 'while'\n */\n async perform() {\n // await Fore.dispatch(document, 'execute-action', {action:this, event:this.event});\n\n // todo: review - this evaluation seems redundant as we already evaluated in execute\n if (this.isBound() || this.nodeName === 'FX-ACTION') {\n this.evalInContext();\n }\n\n this.dispatchEvent(\n new CustomEvent('execute-action', {\n composed: true,\n bubbles: true,\n cancelable: true,\n detail: { action: this, event: this.event },\n }),\n );\n }\n\n /**\n * calls the update cycle if action signalled that update is needed.\n */\n actionPerformed() {\n const model = this.getModel();\n if (!model) {\n return;\n }\n if (!model.inited) {\n return;\n }\n if (\n FxFore.outermostHandler\n && !XPathUtil.contains(FxFore.outermostHandler.ownerDocument, FxFore.outermostHandler)\n ) {\n // The old outermostHandler fell out of the document. An error has happened.\n // Just remove the old one and act like we are starting anew.\n // console.warn('Unsetting outermost handler');\n FxFore.outermostHandler = null;\n }\n // console.log('actionPerformed action parentNode ', this.parentNode);\n if (this.needsUpdate && (FxFore.outermostHandler === this || !FxFore.outermostHandler)) {\n // console.log('running update cycle for outermostHandler', this);\n model.recalculate();\n model.revalidate();\n model.parentNode.refresh(true);\n this.dispatchActionPerformed();\n } else if (this.needsUpdate) {\n // console.log('Update delayed!');\n // We need an update, but the outermost action handler is not done yet. Make this clear!\n // console.log('running actionperformed on', this, ' to be updated by ', FxFore.outermostHandler);\n FxFore.outermostHandler.needsUpdate = true;\n }\n\n // console.log('running actionperformed on', this, ' outermostHandler', FxFore.outermostHandler);\n }\n\n /**\n * dispatches action-performed event\n *\n * @event action-performed - whenever an action has been run\n */\n dispatchActionPerformed() {\n // console.log('action-performed ', this);\n Fore.dispatch(this, 'action-performed', {});\n }\n}\n\nif (!customElements.get('abstract-action')) {\n window.customElements.define('abstract-action', AbstractAction);\n}\n","import { AbstractAction } from './abstract-action.js';\nimport { Fore } from '../fore.js';\nimport { resolveId } from '../xpath-evaluation.js';\n\n/**\n * `fx-append` appends an entry to a repeat.\n *\n *\n *\n * @deprecated - will be replaced with `fx-insert`\n * @fires index-changed - fired after new item is appended\n * @customElement\n */\n// class FxAppend extends FxAction {\nclass FxAppend extends AbstractAction {\n static get properties() {\n return {\n ...AbstractAction.properties,\n ref: {\n type: String,\n },\n /**\n * the repeat this action is appending to.\n */\n repeat: {\n type: String,\n },\n clear: {\n type: String,\n },\n };\n }\n\n constructor() {\n super();\n this.repeat = '';\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.ref = this.getAttribute('ref');\n this.repeat = this.getAttribute('repeat');\n // this.repeated = this.closest('fx-repeatitem');\n }\n\n /**\n * appends a instance of the repeat template to the existing ones.\n *\n * The data structure to insert into the instance data is determined by the 'ref' attributes\n * found in the template of the repeat. This is similar to lazy instance creation.\n *\n * Note: This is a significant difference to XForms which takes the instance nodes as template to insert but\n * has the problem of empty nodesets not being able to insert an entry without using a separate instance\n * holding the template.\n *\n * As a consequence the item that are appended are not propagated with values but empty. However usually\n * that's what the user wants and not the other way round (duplicating the last data items). If the XForms\n * behavior should be needed for some reason later on, it can be added easier by a providing an 'duplicate' action.\n *\n */\n async perform() {\n super.perform();\n\n this._dataFromTemplate();\n /*\n const instData = new XMLSerializer().serializeToString(\n this.getModel()\n .getDefaultInstance()\n .getInstanceData(),\n );\n*/\n // console.log('modified instance ', this.getModel().getDefaultInstance().getInstanceData());\n\n this.needsUpdate = true;\n }\n\n actionPerformed() {\n super.actionPerformed();\n // const repeat = document.getElementById(this.repeat);\n // repeat.setIndex(repeat.nodeset.length);\n this._dispatch();\n }\n\n /**\n * creates a data-template from repeat template and appends it to inscope context instance.\n *\n * @private\n */\n _dataFromTemplate() {\n const inscope = this.getInScopeContext();\n const parentForm = this.getOwnerForm();\n const repeat = parentForm.querySelector(`#${this.repeat}`);\n // console.log('_dataFromTemplate repeat', repeat);\n // console.log('_dataFromTemplate repeat ref', repeat.ref);\n\n const templ = repeat.shadowRoot.querySelector('template');\n // console.log('_dataFromTemplate ', templ);\n // console.log('_dataFromTemplate content', templ.content);\n\n // iterate template for refs\n // todo: will fail for pathes with predicates - need to be filtered before\n // const rootNode = document.createElement(repeat.ref);\n\n // const rootNode = document.createElement(repeat.ref);\n // const rootNode = inscope.ownerDocument.createElement(repeat.ref);\n const rootNode = inscope.ownerDocument.createElement(repeat.ref);\n\n // const data = this._dataFromRefs(rootNode, templ.content)\n const data = this._generateInstance(templ.content, rootNode);\n // console.log('_dataFromTemplate DATA', data);\n inscope.appendChild(data);\n // console.log('appended new item ', data);\n // return data;\n }\n\n /**\n * dispatches set-index event to target repeat\n *\n * The target repeat is a child of the same repeat-item as the append action.\n */\n _dispatch() {\n const targetRepeat = resolveId(this.repeat, this);\n Fore.dispatch(targetRepeat, 'index-changed', { index: targetRepeat.nodeset.length });\n }\n\n /**\n * clear all text nodes and attribute values to get a 'clean' template.\n * @param n\n * @private\n *\n *\n */\n _clear(n) {\n let node = n.firstChild;\n const attrs = n.attributes;\n for (let i = 0; i < attrs.length; i += 1) {\n // n.setAttribute(attrs[i].name,'');\n attrs[i].value = '';\n }\n while (node) {\n if (node.nodeType === 1 && node.hasAttributes()) {\n node.textContent = '';\n }\n this._clear(node);\n node = node.nextSibling;\n }\n }\n\n _generateInstance(start, parent) {\n if (start.nodeType === 1 && start.hasAttribute('ref')) {\n const ref = start.getAttribute('ref');\n\n let generated;\n if (ref === '.') {\n // node.appendChild(document.createElement(repeatRef));\n } else if (ref.startsWith('@')) {\n parent.setAttribute(ref.substring(1), '');\n } else {\n generated = document.createElement(ref);\n parent.appendChild(generated);\n if (start.children.length === 0) {\n generated.textContent = start.textContent;\n }\n }\n }\n\n if (start.hasChildNodes()) {\n const list = start.children;\n for (let i = 0; i < list.length; i += 1) {\n this._generateInstance(list[i], parent);\n }\n }\n return parent;\n }\n\n getInstanceId() {\n if (this.ref.startsWith('instance(')) {\n return 'not implemented';\n }\n return 'default';\n }\n\n /*\n _fadeIn (el, display) {\n // eslint-disable-next-line no-param-reassign\n el.style.opacity = 0;\n // eslint-disable-next-line no-param-reassign\n el.style.display = display || 'block';\n\n (function fade() {\n // let val = parseFloat(el.style.opacity);\n let val = parseFloat(el.style.opacity);\n val += 0.1;\n if (!(val > 1)) {\n // eslint-disable-next-line no-param-reassign\n el.style.opacity = val;\n requestAnimationFrame(fade);\n }\n })();\n }\n */\n}\n\nif (!customElements.get('fx-append')) {\n window.customElements.define('fx-append', FxAppend);\n}\n","import * as fx from 'fontoxpath';\nimport { AbstractAction } from './abstract-action.js';\nimport { Fore } from '../fore.js';\nimport { evaluateXPathToNodes, evaluateXPathToString } from '../xpath-evaluation.js';\nimport { XPathUtil } from '../xpath-util.js';\nimport getInScopeContext from '../getInScopeContext.js';\n\n/**\n * `fx-delete`\n * deletes nodes from instance data.\n *\n * @fires deleted event\n * @customElement\n * @demo demo/todo.html\n */\nclass FxDelete extends AbstractAction {\n static get properties() {\n return {\n ...super.properties,\n ref: {\n type: String,\n },\n };\n }\n\n /**\n * deletes nodes from instance data.\n *\n * Will NOT perform delete if nodeset is pointing to document node, document fragment, root node or being readonly.\n */\n async perform() {\n const inscopeContext = getInScopeContext(this.getAttributeNode('ref') || this, this.ref);\n this.nodeset = evaluateXPathToNodes(this.ref, inscopeContext, this);\n\n // console.log('delete nodeset ', this.nodeset);\n\n const instanceId = XPathUtil.resolveInstance(this, this.ref);\n const instance = this.getModel().getInstance(instanceId);\n\n // const path = instance && this.nodeset.length !== 0 ? evaluateXPathToString('path()', this.nodeset[0], instance) : '';\n\n const path = Fore.getDomNodeIndexString(this.nodeset);\n\n const nodesToDelete = this.nodeset;\n\n this.dispatchEvent(\n new CustomEvent('execute-action', {\n composed: true,\n bubbles: true,\n cancelable: true,\n detail: { action: this, event: this.event, path },\n }),\n );\n\n let parent;\n if (Array.isArray(nodesToDelete)) {\n if (nodesToDelete.length === 0) return;\n parent = nodesToDelete[0].parentNode;\n nodesToDelete.forEach(item => {\n this._deleteNode(parent, item);\n });\n } else {\n parent = nodesToDelete.parentNode;\n this._deleteNode(parent, nodesToDelete);\n }\n const foreId = this.getOwnerForm().id;\n await Fore.dispatch(instance, 'deleted', { ref: path, deletedNodes: nodesToDelete , instanceId:instanceId, foreId:foreId});\n this.needsUpdate = true;\n }\n\n _deleteNode(parent, node) {\n if (parent.nodeType === Node.DOCUMENT_NODE) return;\n if (node.nodeType === Node.DOCUMENT_NODE) return;\n if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) return;\n if (node.parentNode === null) return;\n\n const mi = this.getModelItem();\n if (mi.readonly) return;\n\n parent.removeChild(node);\n }\n\n /**\n * overwriting as we need to perform additional rebuild()\n */\n actionPerformed() {\n this.getModel().rebuild();\n super.actionPerformed();\n }\n}\n\nif (!customElements.get('fx-delete')) {\n window.customElements.define('fx-delete', FxDelete);\n}\n","import { AbstractAction } from './abstract-action.js';\nimport { Fore } from '../fore';\n\n/**\n * `fx-setfocus`\n * Set the focus to a target control optionally selecting eventual value in case a `select` attribute is given.\n *\n * @customElement\n */\nexport class FxSetfocus extends AbstractAction {\n connectedCallback() {\n if (super.connectedCallback) {\n super.connectedCallback();\n }\n this.control = this.hasAttribute('control') ? this.getAttribute('control') : null;\n }\n\n async perform() {\n this.dispatchEvent(\n new CustomEvent('execute-action', {\n composed: true,\n bubbles: true,\n cancelable: true,\n detail: { action: this, event: this.event },\n }),\n );\n\n // super.perform();\n const selector = `#${this.control}`;\n\n let targetElement = document.querySelector(selector);\n\n if (!targetElement) {\n Fore.dispatch(this, 'error', {\n origin: this,\n message: `Instance '${this.control}' not found`,\n level: 'Error',\n });\n return;\n }\n\n // ### focus action is itself hosted within a repeat\n const parentIItem = targetElement.closest('fx-repeatitem');\n if (parentIItem) {\n targetElement = parentIItem.querySelector(selector);\n this._focus(targetElement);\n // return;\n }\n\n // ### the target element is hosted within a repeat\n const repeatitem = targetElement.closest('fx-repeatitem, .fx-repeatitem');\n if (repeatitem) {\n // targetElement is repeated\n // get the active repeatitem (only for fx-repeat for now - todo: support repeat attributes\n const repeat = repeatitem.parentNode;\n targetElement = repeat.querySelector(`[repeat-index] ${selector}`);\n }\n\n this._focus(targetElement);\n if (this.hasAttribute('select')) {\n this._select(targetElement);\n }\n }\n\n _focus(targetElement) {\n if (targetElement && typeof targetElement.getWidget === 'function') {\n targetElement.getWidget().focus();\n }\n if (targetElement && targetElement.nodeType === Node.ELEMENT_NODE) {\n targetElement.click();\n }\n }\n\n _select(targetElement) {\n if (targetElement) {\n targetElement.getWidget().select();\n }\n }\n}\n\nif (!customElements.get('fx-setfocus')) {\n window.customElements.define('fx-setfocus', FxSetfocus);\n}\n","import { AbstractAction } from './abstract-action.js';\nimport getInScopeContext from '../getInScopeContext.js';\nimport {\n evaluateXPathToNodes,\n evaluateXPathToFirstNode,\n evaluateXPathToNumber,\n} from '../xpath-evaluation.js';\nimport { XPathUtil } from '../xpath-util';\nimport { Fore } from '../fore.js';\n\n/**\n * `fx-insert`\n * inserts nodes into data instances\n *\n * @customElement\n */\nexport class FxInsert extends AbstractAction {\n static get properties() {\n return {\n ...super.properties,\n at: {\n type: Number,\n },\n position: {\n type: Number,\n },\n origin: {\n type: Object,\n },\n keepValues: {\n type: Boolean,\n },\n };\n }\n\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n\n connectedCallback() {\n if (super.connectedCallback) {\n super.connectedCallback();\n }\n const style = `\n :host{\n display:none;\n }\n `;\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n <slot></slot>\n `;\n\n this.at = Number(this.hasAttribute('at') ? this.getAttribute('at') : 0); // default: size of nodeset, determined later\n this.position = this.hasAttribute('position') ? this.getAttribute('position') : 'after';\n this.origin = this.hasAttribute('origin') ? this.getAttribute('origin') : null; // last item of context seq\n this.keepValues = !!this.hasAttribute('keep-values');\n }\n\n _getOriginSequence(inscope, targetSequence) {\n let originSequence;\n if (this.origin) {\n // ### if there's an origin attribute use it\n let originTarget;\n try {\n originTarget = evaluateXPathToFirstNode(this.origin, inscope, this);\n if (Array.isArray(originTarget) && originTarget.length === 0) {\n console.warn('invalid origin for this insert action - ignoring...', this);\n originSequence = null;\n }\n originSequence = originTarget;\n } catch (error) {\n console.warn('invalid origin for this insert action - ignoring...', this);\n }\n } else if (targetSequence) {\n // ### use last item of targetSequence\n originSequence = targetSequence;\n if (originSequence && !this.keepValues) {\n this._clear(originSequence);\n }\n }\n return originSequence;\n }\n\n _cloneOriginSequence(inscope, targetSequence) {\n let originSequenceClone;\n if (this.origin) {\n // ### if there's an origin attribute use it\n let originTarget;\n try {\n /*\n todo: discuss where to pass vars from event.detail into function context\n */\n // this.setInScopeVariables(this.detail);\n\n // originTarget = evaluateXPathToFirstNode(this.origin, inscope, this);\n originTarget = evaluateXPathToFirstNode(this.origin, inscope, this);\n if (Array.isArray(originTarget) && originTarget.length === 0) {\n console.warn('invalid origin for this insert action - ignoring...', this);\n originSequenceClone = null;\n }\n originSequenceClone = originTarget.cloneNode(true);\n } catch (error) {\n console.warn('invalid origin for this insert action - ignoring...', this);\n }\n } else if (targetSequence) {\n // ### use last item of targetSequence\n originSequenceClone = this._cloneTargetSequence(targetSequence);\n if (originSequenceClone && !this.keepValues) {\n this._clear(originSequenceClone);\n }\n }\n return originSequenceClone;\n }\n\n _getInsertIndex(inscope, targetSequence) {\n if (targetSequence.length === 0) {\n return null;\n }\n if (this.hasAttribute('at')) {\n return evaluateXPathToNumber(this.getAttribute('at'), inscope, this);\n }\n return targetSequence.length;\n }\n\n async perform() {\n // We have a few terms here: `inScope` is the 'current item' we have. It is the item we're\n // copying and inserting elsewhere. If we have a `ref`, one of the nodes returned will\n // become the sibling of this copy. The `context` is the new parent of the copied\n // element. It's usually better to add a `context` because that deals with empty elements.\n let inscope;\n let context;\n let targetSequence = [];\n const inscopeContext = getInScopeContext(this);\n\n // ### 'context' attribute takes precedence over 'ref'\n if (this.hasAttribute('context')) {\n [context] = evaluateXPathToNodes(\n this.getAttribute('context'),\n inscopeContext,\n this.getOwnerForm(),\n );\n inscope = inscopeContext;\n }\n\n if (this.hasAttribute('ref')) {\n if (inscope) {\n targetSequence = evaluateXPathToNodes(this.ref, inscope, this);\n } else {\n inscope = getInScopeContext(this.getAttributeNode('ref'), this.ref);\n targetSequence = evaluateXPathToNodes(this.ref, inscope, this);\n }\n }\n const originSequenceClone = this._cloneOriginSequence(inscope, targetSequence);\n if (!originSequenceClone) return; // if no origin back out without effect\n\n let insertLocationNode;\n let index;\n\n // if the targetSequence is empty but we got an originSequence use inscope as context and ignore 'at' and 'position'\n if (targetSequence.length === 0) {\n if (context) {\n insertLocationNode = context;\n context.appendChild(originSequenceClone);\n index = 1;\n } else {\n // No context. We can insert into the `inscope`.\n insertLocationNode = inscope;\n inscope.appendChild(originSequenceClone);\n index = 1;\n }\n } else {\n /* ### insert at position given by 'at' or use the last item in the targetSequence ### */\n if (this.hasAttribute('at')) {\n // todo: eval 'at'\n // index = this.at;\n // insertLocationNode = targetSequence[this.at - 1];\n\n index = evaluateXPathToNumber(this.getAttribute('at'), inscope, this);\n insertLocationNode = targetSequence[index - 1];\n } else {\n // this.at = targetSequence.length;\n index = targetSequence.length;\n insertLocationNode = targetSequence[targetSequence.length - 1];\n }\n\n // ### if the insertLocationNode is undefined use the targetSequence - usually the case when the targetSequence just contains a single node\n if (!insertLocationNode) {\n index = 1;\n\n insertLocationNode = targetSequence;\n const context = evaluateXPathToNumber(\n 'count(preceding::*)',\n targetSequence,\n this.getOwnerForm(),\n );\n // console.log('context', context);\n index = context + 1;\n // index = targetSequence.findIndex(insertLocationNode);\n }\n\n if (this.position && this.position === 'before') {\n // this.at -= 1;\n insertLocationNode.parentNode.insertBefore(originSequenceClone, insertLocationNode);\n }\n\n if (this.position && this.position === 'after') {\n // insertLocationNode.parentNode.append(originSequence);\n // const nextSibl = insertLocationNode.nextSibling;\n index += 1;\n if (this.hasAttribute('context') && this.hasAttribute('ref')) {\n // index=1;\n inscope.append(originSequenceClone);\n } else if (this.hasAttribute('context')) {\n index = 1;\n insertLocationNode.prepend(originSequenceClone);\n } else {\n insertLocationNode.insertAdjacentElement('afterend', originSequenceClone);\n }\n }\n }\n // instance('default')/items/item[index()]\n\n // console.log('insert context item ', insertLocationNode);\n // console.log('parent ', insertLocationNode.parentNode);\n // console.log('instance ', this.getModel().getDefaultContext());\n // Fore.dispatch()\n\n // const instanceId = XPathUtil.resolveInstance(this, this.getAttribute('context'));\n const instanceId = XPathUtil.resolveInstance(this, this.ref);\n const inst = this.getModel().getInstance(instanceId);\n // console.log('<<<<<<< resolved instance', inst);\n // Note: the parent to insert under is always the parent of the inserted node. The 'context' is not always the parent if the sequence is empty, or the position is different\n // const xpath = XPathUtil.getPath(originSequenceClone.parentNode, instanceId);\n const xpath = XPathUtil.getPath(insertLocationNode.parentNode, instanceId);\n\n const path = Fore.getDomNodeIndexString(originSequenceClone);\n this.dispatchEvent(\n new CustomEvent('execute-action', {\n composed: true,\n bubbles: true,\n cancelable: true,\n detail: { action: this, event: this.event, path },\n }),\n );\n\n Fore.dispatch(inst, 'insert', {\n 'inserted-nodes': originSequenceClone,\n 'insert-location-node': insertLocationNode,\n position: this.position,\n instanceId:instanceId,\n foreId:this.getOwnerForm().id\n });\n\n // todo: this actually should dispatch to respective instance\n document.dispatchEvent(\n // new CustomEvent('insert', {\n new CustomEvent('index-changed', {\n composed: true,\n bubbles: true,\n detail: {\n insertedNodes: originSequenceClone,\n index,\n },\n }),\n );\n\n this.needsUpdate = true;\n console.log('Changed!', xpath);\n return [xpath];\n }\n\n // eslint-disable-next-line class-methods-use-this\n _cloneTargetSequence(seq) {\n if (Array.isArray(seq) && seq.length !== 0) {\n return seq[seq.length - 1].cloneNode(true);\n }\n if (!Array.isArray(seq) && seq) {\n return seq.cloneNode(true);\n }\n return null;\n }\n\n actionPerformed(changedPaths) {\n // ### make sure the necessary modelItems will get created\n this.getModel().rebuild();\n super.actionPerformed();\n }\n\n /**\n * clear all text nodes and attribute values to get a 'clean' template.\n * @param n\n * @private\n */\n _clear(n) {\n const attrs = n.attributes;\n\n // clear attrs\n for (let i = 0; i < attrs.length; i += 1) {\n // n.setAttribute(attrs[i].name,'');\n attrs[i].value = '';\n }\n // clear text content\n if (n.textContent) {\n n.textContent = '';\n }\n\n let node = n.firstChild;\n while (node) {\n if (node.nodeType === 1 && node.hasAttributes()) {\n node.textContent = '';\n }\n this._clear(node);\n node = node.nextSibling;\n }\n }\n}\n\nif (!customElements.get('fx-insert')) {\n window.customElements.define('fx-insert', FxInsert);\n}\n","import { AbstractAction } from './abstract-action.js';\nimport { evaluateXPathToString } from '../xpath-evaluation.js';\nimport { Fore } from '../fore.js';\nimport getInScopeContext from '../getInScopeContext.js';\n\n/**\n * `fx-message`\n *\n * Action to display messages to the user.\n *\n *\n */\nclass FxMessage extends AbstractAction {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n\n static get properties() {\n return {\n ...AbstractAction.properties,\n modelItem: undefined,\n messageTextContent: {\n type: String,\n get value() {\n return 'here!';\n },\n },\n };\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.event = this.hasAttribute('event') ? this.getAttribute('event') : '';\n this.level = this.hasAttribute('level') ? this.getAttribute('level') : 'ephemeral';\n this.message = '';\n\n this.messageTextContent = this.textContent;\n const style = `\n :host{\n display:none;\n }\n `;\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${this.renderHTML()}\n `;\n }\n\n /*\n disconnectedCallback() {\n // super.disconnectedCallback();\n this.targetElement.removeEventListener(this.event, e => this.execute(e));\n }\n*/\n\n // eslint-disable-next-line class-methods-use-this\n renderHTML() {\n return `\n <slot></slot>\n `;\n }\n\n async perform() {\n super.perform();\n if (this.hasAttribute('value')) {\n this.message = this._getValue();\n } else {\n this.getOwnerForm().evaluateTemplateExpression(this.messageTextContent, this.firstChild);\n this.message = this.textContent;\n }\n\n this.dispatchEvent(\n new CustomEvent('message', {\n composed: false,\n bubbles: true,\n detail: { level: this.level, message: this.message },\n }),\n );\n }\n\n _getValue() {\n if (this.hasAttribute('value')) {\n const valAttr = this.getAttribute('value');\n try {\n const inscopeContext = getInScopeContext(this, valAttr);\n return evaluateXPathToString(valAttr, inscopeContext, this);\n } catch (error) {\n console.error(error);\n Fore.dispatch(this, 'error', { message: error });\n }\n }\n if (this.textContent) {\n return this.textContent;\n }\n return null;\n }\n}\n\nif (!customElements.get('fx-message')) {\n window.customElements.define('fx-message', FxMessage);\n}\n","// import { FxAction } from './fx-action.js';\nimport '../fx-model.js';\nimport { AbstractAction } from './abstract-action.js';\nimport { evaluateXPath } from '../xpath-evaluation.js';\nimport { Fore } from '../fore.js';\n\n/**\n * `fx-setvalue`\n *\n * @customElement\n */\nexport default class FxSetvalue extends AbstractAction {\n static get properties() {\n return {\n ...super.properties,\n ref: {\n type: String,\n },\n valueAttr: {\n type: String,\n },\n };\n }\n\n constructor() {\n super();\n this.ref = '';\n this.valueAttr = '';\n }\n\n connectedCallback() {\n if (super.connectedCallback) {\n super.connectedCallback();\n }\n\n if (this.hasAttribute('ref')) {\n this.ref = this.getAttribute('ref');\n } else {\n throw new Error('fx-setvalue must specify a \"ref\" attribute');\n }\n this.valueAttr = this.getAttribute('value');\n }\n\n async perform() {\n super.perform();\n let { value } = this;\n if (this.valueAttr !== null) {\n [value] = evaluateXPath(this.valueAttr, this.nodeset, this, this.detail);\n } else if (this.textContent !== '') {\n value = this.textContent;\n } else {\n value = '';\n }\n if (value?.nodeType && value.nodeType === Node.ATTRIBUTE_NODE) {\n value = value.nodeValue;\n }\n const mi = this.getModelItem();\n this.setValue(mi, value);\n // todo: check this again - logically needsUpate should be set but makes tests fail\n // this.needsUpdate = true;\n }\n\n /**\n * need to overwrite default dispatchExecute to do it ourselves. This is necessary for tracking control value changes\n * which call setvalue directly without perform().\n */\n dispatchExecute() {}\n\n setValue(modelItem, newVal) {\n const item = modelItem;\n if (!item) return;\n\n if (item.value !== newVal) {\n // const path = XPathUtil.getPath(modelItem.node);\n const path = Fore.getDomNodeIndexString(modelItem.node);\n\n const ev = this.event;\n const targetElem = this;\n this.dispatchEvent(\n new CustomEvent('execute-action', {\n composed: true,\n bubbles: true,\n cancelable: true,\n detail: {\n action: targetElem,\n event: ev,\n value: newVal,\n path,\n },\n }),\n );\n\n if (newVal?.nodeType) {\n if (newVal.nodeType === Node.ELEMENT_NODE) {\n item.value = newVal;\n }\n if (newVal.nodeType === Node.ATTRIBUTE_NODE) {\n item.value = newVal.getValue();\n }\n if(newVal.nodeType === Node.TEXT_NODE){\n item.value = newVal.textContent;\n }\n } else {\n item.value = newVal;\n item.node.textContent = newVal;\n }\n this.getModel().changed.push(modelItem);\n this.needsUpdate = true;\n }\n }\n}\n\nif (!customElements.get('fx-setvalue')) {\n window.customElements.define('fx-setvalue', FxSetvalue);\n}\n","import '../fx-model.js';\nimport '../fx-submission.js';\nimport { AbstractAction } from './abstract-action.js';\nimport { XPathUtil } from '../xpath-util.js';\n\n/**\n * `fx-send` - finds and activates a `fx-submission` or a `fx-connection` element.\n *\n * @customElement\n */\nclass FxSend extends AbstractAction {\n constructor() {\n super();\n this.value = '';\n this.url = null;\n this.target = null;\n }\n\n connectedCallback() {\n // eslint-disable-next-line wc/guard-super-call\n super.connectedCallback();\n // console.log('connectedCallback ', this);\n this.submission = this.getAttribute('submission');\n this.url = this.hasAttribute('url') ? this.getAttribute('url') : null;\n this.target = this.hasAttribute('target') ? this.getAttribute('target') : null;\n this.connection = this.hasAttribute('connection') ? this.getAttribute('connection') : null;\n }\n\n async perform() {\n super.perform();\n\n // reset CSS class that signalled validation error during last submit\n this.getOwnerForm().classList.remove('submit-validation-failed');\n\n if (this.connection) {\n const connectionElement = this.getModel().querySelector(`#${this.connection}`);\n if (connectionElement === null) {\n this.dispatchEvent(\n new CustomEvent('error', {\n composed: false,\n bubbles: true,\n cancelable: true,\n detail: {\n id: this.id,\n origin: this,\n message: `<fx-connection id=\"${this.connection}\"> not found`,\n expr: XPathUtil.getDocPath(this),\n level: 'Error',\n },\n }),\n );\n return;\n }\n this._emitToChannel();\n return;\n }\n\n const submission = this.getModel().querySelector(`#${this.submission}`);\n if (submission === null) {\n this.dispatchEvent(\n new CustomEvent('error', {\n composed: false,\n bubbles: true,\n cancelable: true,\n detail: {\n id: this.id,\n origin: this,\n message: `<fx-submission id=\"${this.submission}\"> not found`,\n expr: XPathUtil.getDocPath(this),\n level: 'Error',\n },\n }),\n );\n return;\n\n // throw new Error(`submission with id: ${this.submission} not found`);\n }\n // console.log('submission', submission);\n\n if (this.url) {\n const resolved = this.evaluateAttributeTemplateExpression(this.url, this);\n submission.parameters.set('url', resolved);\n }\n if (this.target) {\n const resolved = this.evaluateAttributeTemplateExpression(this.target, this);\n submission.parameters.set('target', resolved);\n }\n\n await submission.submit();\n if(submission.replace === 'instance'){\n this.getModel().updateModel();\n this.getOwnerForm().refresh();\n }\n // if not of type fx-submission signal error\n }\n\n _emitToChannel() {\n const channel = this.getModel().querySelector(`#${this.connection}`);\n if (channel === null) {\n return;\n }\n channel.send();\n }\n}\n\nif (!customElements.get('fx-send')) {\n window.customElements.define('fx-send', FxSend);\n}\n","import { AbstractAction } from './abstract-action.js';\nimport { Fore } from '../fore';\n\n/**\n * `fx-toggle`\n *\n */\nclass FxToggle extends AbstractAction {\n /*\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n*/\n connectedCallback() {\n super.connectedCallback();\n if (this.hasAttribute('case')) {\n this.case = this.getAttribute('case');\n }\n }\n\n async perform() {\n super.perform();\n if (this.case) {\n const ownerForm = this.getOwnerForm();\n // todo: id resolution!!!\n const caseElement = ownerForm.querySelector(`#${this.case}`);\n if (!caseElement) {\n Fore.dispatch(this, 'error', { message: `fx-case id not found: ${this.case}` });\n return;\n }\n const fxSwitch = caseElement.parentNode;\n fxSwitch.toggle(caseElement);\n }\n this.needsUpdate = true;\n }\n}\n\nif (!customElements.get('fx-toggle')) {\n window.customElements.define('fx-toggle', FxToggle);\n}\n","import { AbstractAction } from './abstract-action.js';\nimport { evaluateXPath, resolveId } from '../xpath-evaluation.js';\n\n/**\n * `fx-dispatch`\n *\n * dispatches an event with optional details.\n *\n * Properties given by `fx-property` child elements are stored to the events' details object and\n * can be accessed in usual JavaScript way.\n */\nexport class FxDispatch extends AbstractAction {\n static get properties() {\n return {\n ...super.properties,\n name: {\n type: String,\n },\n targetid: {\n type: String,\n },\n details: {\n type: String,\n },\n };\n }\n\n constructor() {\n super();\n this.name = null;\n this.targetid = null;\n this.details = null;\n this.attachShadow({ mode: 'open' });\n }\n\n /**\n * checks for `event` attribute. If not present will throw an Error\n *\n * @throws Error when no `event` attribute is given\n */\n connectedCallback() {\n super.connectedCallback();\n this.name = this.getAttribute('name');\n if (!this.name) {\n throw new Error('no event specified for dispatch', this);\n }\n\n this.targetid = this.hasAttribute('targetid') ? this.getAttribute('targetid') : null;\n\n // ### has a shadow just to hide\n /*\n this.shadowRoot.innerHTML = `\n <style>\n :host *{\n display: none;\n }\n </style>\n <slot></slot>\n `;\n*/\n }\n\n /*\n disconnectedCallback() {\n super.disconnectedCallback();\n }\n\n*/\n\n async perform() {\n super.perform();\n\n const properties = this.querySelectorAll('fx-property');\n const details = {};\n Array.from(properties).forEach(prop => {\n // console.log('prop ', prop);\n const name = prop.getAttribute('name');\n const value = prop.getAttribute('value');\n const expr = prop.getAttribute('expr');\n\n if (expr) {\n if (value) {\n throw new Error('if \"expr\" is given there must not be a \"value\" attribute');\n }\n const [result] = evaluateXPath(expr, this.getInScopeContext(), this);\n\n let serialized = null;\n if (result.nodeName) {\n const serializer = new XMLSerializer();\n serialized = serializer.serializeToString(result);\n }\n if (serialized) {\n details[name] = serialized;\n } else {\n details[name] = result;\n }\n }\n\n if (value) {\n details[name] = value;\n }\n });\n\n // console.log('details ', details);\n\n // ### when targetid is given dispatch to that if present (throw an error if not) - otherwise dispatch to document\n if (this.targetid) {\n let target = resolveId(this.targetid, this.parentNode, null);\n if (!target) {\n // TODO: essentially, we want to highly prefer the closest target. in the same subcontrol.\n // However, it may be that our target is elsewhere. Do a global search for that case\n target = document.getElementById(this.targetid);\n }\n if (!target) {\n throw new Error(`targetid ${this.targetid} does not exist in document`);\n }\n target.dispatchEvent(\n new CustomEvent(this.name, {\n composed: true,\n bubbles: true,\n detail: details,\n }),\n );\n } else {\n document.dispatchEvent(\n new CustomEvent(this.name, {\n composed: true,\n bubbles: true,\n detail: details,\n }),\n );\n }\n }\n}\n\nif (!customElements.get('fx-dispatch')) {\n window.customElements.define('fx-dispatch', FxDispatch);\n}\n","import { AbstractAction } from './abstract-action.js';\n\n/**\n * `fx-update`\n *\n * Calls updateModel() on fx-model which in turn will rebuild, recalculate and revalidate.\n *\n */\nclass FxUpdate extends AbstractAction {\n async perform() {\n this.dispatchEvent(\n new CustomEvent('execute-action', {\n composed: true,\n bubbles: true,\n cancelable: true,\n detail: { action: this, event: this.event },\n }),\n );\n\n this.getModel().updateModel();\n }\n}\n\nif (!customElements.get('fx-update')) {\n window.customElements.define('fx-update', FxUpdate);\n}\n","import { AbstractAction } from './abstract-action.js';\nimport { Fore } from '../fore.js';\nimport { resolveId } from '../xpath-evaluation.js';\nimport { XPathUtil } from '../xpath-util.js';\n\n/**\n * `fx-refresh`\n *\n * Calls refresh() on fx-form\n *\n */\nclass FxRefresh extends AbstractAction {\n async perform() {\n this.dispatchEvent(\n new CustomEvent('execute-action', {\n composed: true,\n bubbles: true,\n cancelable: true,\n detail: { action: this, event: this.event },\n }),\n );\n\n if (this.hasAttribute('self')) {\n console.log(`### <<<<< refresh() self ${this} >>>>>`);\n const control = XPathUtil.getClosest('fx-control', this);\n if (control) {\n control.refresh();\n return;\n }\n }\n if (this.hasAttribute('force')) {\n console.log(`### <<<<< refresh() force ${this} >>>>>`);\n this.getOwnerForm().forceRefresh();\n return;\n }\n if (this.hasAttribute('control')) {\n const targetId = this.getAttribute('control');\n console.log(`### <<<<< refresh() control '${targetId}' >>>>>`);\n const ctrl = resolveId(targetId, this);\n if (ctrl && Fore.isUiElement(ctrl.nodeName) && typeof ctrl.refresh === 'function') {\n ctrl.refresh();\n }\n return;\n }\n this.getOwnerForm().refresh();\n }\n}\n\nif (!customElements.get('fx-refresh')) {\n window.customElements.define('fx-refresh', FxRefresh);\n}\n","// import { FxAction } from './fx-action.js';\nimport '../fx-model.js';\nimport { AbstractAction } from './abstract-action.js';\nimport { evaluateXPathToFirstNode } from '../xpath-evaluation.js';\n\n/**\n * `fx-replace` - replaces the node referred to with 'ref' with node referred to with 'with' attribute.\n *\n * @customElement\n */\nexport default class FxReplace extends AbstractAction {\n static get properties() {\n return {\n ...super.properties,\n with: {\n type: String,\n },\n replaceNode: Object,\n };\n }\n\n constructor() {\n super();\n this.with = '';\n }\n\n connectedCallback() {\n if (super.connectedCallback) {\n super.connectedCallback();\n }\n this.with = this.getAttribute('with');\n }\n\n async perform() {\n super.perform();\n // console.log('replace action variables', this.inScopeVariables);\n // if (!this.nodeset) {\n // return;\n // }\n const target = evaluateXPathToFirstNode(this.with, this.nodeset, this);\n if (!target) return;\n\n this.replace(this.nodeset, target);\n }\n\n actionPerformed() {\n this.getModel().rebuild();\n super.actionPerformed();\n }\n\n replace(toReplace, replaceWith) {\n if (!toReplace || !replaceWith) return; // bail out silently\n if (!toReplace.nodeName || !replaceWith.nodeName) {\n console.warn('fx-replace: one argument is not a node');\n return;\n }\n\n if (toReplace.nodeType === Node.ATTRIBUTE_NODE) {\n const { ownerElement } = toReplace;\n ownerElement.setAttribute(replaceWith.nodeName, replaceWith.textContent);\n ownerElement.removeAttribute(toReplace.nodeName);\n } else if (toReplace.nodeType === Node.ELEMENT_NODE) {\n const cloned = replaceWith.cloneNode(true);\n toReplace.replaceWith(cloned);\n }\n // const modelitem = this.getModelItem();\n // this.getModel().changed.push(modelitem);\n this.needsUpdate = true;\n }\n}\n\nif (!customElements.get('fx-replace')) {\n window.customElements.define('fx-replace', FxReplace);\n}\n","import { AbstractAction } from './abstract-action.js';\n\n/**\n * `fx-return`\n * returns data from a nested Fore to it's host Fore.\n *\n * behaves like a `<fx-submission @replace='instance' with `targetref` and respects relevance processing.\n *\n * `targetref` will be the `ref` of the host control.\n *\n * todo: deos not relevant selection yet\n *\n * @customElement\n */\nexport class FxReturn extends AbstractAction {\n connectedCallback() {\n if (super.connectedCallback) {\n super.connectedCallback();\n }\n // const nonrelevant = this.hasAttribute('nonrelevant') ? this.getAttribute('nonrelevant') : null;\n }\n\n async perform() {\n super.perform();\n\n /*\n ### note that this event does not use Fore.dispatch as the event uses 'composed:true' to let the event travel\n up through the shadowRoot and being catched in outer form.\n */\n const event = new CustomEvent('return', {\n composed: true,\n bubbles: true,\n detail: { nodeset: this.nodeset },\n });\n this.getOwnerForm().dispatchEvent(event);\n }\n}\n\nif (!customElements.get('fx-return')) {\n window.customElements.define('fx-return', FxReturn);\n}\n","import { AbstractAction } from './abstract-action.js';\n\n/**\n * `fx-action`\n * an action to wrap other actions and defers the update cycle until the end of the block.\n *\n * @customElement\n * @demo demo/index.html\n */\nexport class FxAction extends AbstractAction {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n\n connectedCallback() {\n if (super.connectedCallback) {\n super.connectedCallback();\n }\n this.src = this.hasAttribute('src') ? this.getAttribute('src') : null;\n const style = `\n :host{\n display:none;\n }\n `;\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n <slot></slot>\n `;\n }\n\n async perform() {\n super.perform();\n const { children } = this;\n\n if (this.src) {\n this.innerHTML = ''; // reset\n const script = document.createElement('script');\n script.src = this.src;\n this.appendChild(script);\n } else {\n for (const actionOrVar of children) {\n if (actionOrVar.localName === 'fx-var') {\n continue;\n }\n const action = actionOrVar;\n action.detail = this.detail;\n await action.execute();\n }\n this.dispatchActionPerformed();\n this.needsUpdate = true;\n }\n }\n}\n\nif (!customElements.get('fx-action')) {\n window.customElements.define('fx-action', FxAction);\n}\n","import { FxAction } from './fx-action.js';\n\n/**\n * `fx-confirm`\n * Displays a simple confirmation before actually executing the nested actions.\n *\n * @customElement\n * @demo demo/project.html\n */\nexport class FxConfirm extends FxAction {\n static get properties() {\n return {\n ...FxAction.properties,\n message: {\n type: String,\n },\n };\n }\n\n connectedCallback() {\n if (super.connectedCallback) {\n super.connectedCallback();\n }\n this.message = this.hasAttribute('message') ? this.getAttribute('message') : null;\n }\n\n async perform() {\n if (window.confirm(this.message)) {\n await super.perform();\n }\n }\n}\n\nif (!customElements.get('fx-confirm')) {\n window.customElements.define('fx-confirm', FxConfirm);\n}\n","import { Fore } from '../fore.js';\nimport { FxAction } from './fx-action.js';\nimport { resolveId } from '../xpath-evaluation.js';\n\n/**\n * `fx-show`\n * Displays a simple confirmation before actually executing the nested actions.\n *\n * @customElement\n * @event fx-show dispatched when dialog is shown\n */\nexport class FxShow extends FxAction {\n connectedCallback() {\n if (super.connectedCallback) {\n super.connectedCallback();\n }\n this.dialog = this.getAttribute('dialog');\n if (!this.dialog) {\n Fore.dispatch(this, 'error', { message: 'dialog does not exist' });\n }\n }\n\n async perform() {\n this.dispatchEvent(\n new CustomEvent('execute-action', {\n composed: true,\n bubbles: true,\n cancelable: true,\n detail: { action: this, event: this.event },\n }),\n );\n\n const targetDlg = resolveId(this.dialog, this);\n if (!targetDlg) {\n console.error('target dialog with given id does not exist', this.dialog);\n }\n targetDlg.open();\n Fore.dispatch(targetDlg, 'dialog-shown', {});\n }\n}\n\nif (!customElements.get('fx-show')) {\n window.customElements.define('fx-show', FxShow);\n}\n","import { Fore } from '../fore.js';\nimport { AbstractAction } from './abstract-action.js';\nimport { resolveId } from '../xpath-evaluation.js';\n\n/**\n * `fx-hide`\n * hides a dialog\n *\n * @customElement\n * @demo demo/project.html\n */\nexport class FxHide extends AbstractAction {\n static get properties() {\n return {\n ...super.properties,\n dialog: {\n type: String,\n },\n };\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.dialog = this.getAttribute('dialog');\n if (!this.dialog) {\n Fore.dispatch(this, 'error', { message: 'dialog does not exist' });\n }\n }\n\n async perform() {\n this.dispatchEvent(\n new CustomEvent('execute-action', {\n composed: true,\n bubbles: true,\n cancelable: true,\n detail: { action: this, event: this.event },\n }),\n );\n\n const dialog = resolveId(this.dialog, this);\n dialog.hide();\n Fore.dispatch(dialog, 'dialog-hidden', {});\n }\n}\n\nif (!customElements.get('fx-hide')) {\n window.customElements.define('fx-hide', FxHide);\n}\n","import { AbstractAction } from './abstract-action.js';\nimport { Fore } from '../fore.js';\n\n/**\n * `fx-reload`\n * reloads browser window when receiving 'reload' event\n *\n * @event reload dispatched when action executes. Usually calls its own handler but might get cancelled by other handler.\n * @customElement\n * @demo demo/project.html\n */\nexport class FxReload extends AbstractAction {\n connectedCallback() {\n if (super.connectedCallback) {\n super.connectedCallback();\n }\n this.addEventListener(\n 'reload',\n () => {\n window.location.reload();\n },\n { once: true },\n );\n }\n\n async perform() {\n this.dispatchEvent(\n new CustomEvent('execute-action', {\n composed: true,\n bubbles: true,\n cancelable: true,\n detail: { action: this, event: this.event },\n }),\n );\n\n Fore.dispatch(this, 'reload', {});\n }\n}\n\nif (!customElements.get('fx-reload')) {\n window.customElements.define('fx-reload', FxReload);\n}\n","import { Fore } from '../fore.js';\nimport { AbstractAction } from './abstract-action.js';\n\n/**\n * `fx-reset`\n * resets an instance to use inline template data\n *\n * @customElement\n * @demo demo/project.html\n */\nexport class FxReset extends AbstractAction {\n static get properties() {\n return {\n ...super.properties,\n instance: {\n type: String,\n },\n };\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.instance = this.getAttribute('instance');\n if (!this.instance) {\n Fore.dispatch(this, 'error', { message: 'instance does not exist' });\n }\n }\n\n async perform() {\n this.dispatchEvent(\n new CustomEvent('execute-action', {\n composed: true,\n bubbles: true,\n cancelable: true,\n detail: { action: this, event: this.event },\n }),\n );\n\n const model = this.getModel();\n const data = model.getInstance(this.instance);\n data.reset();\n this.needsUpdate = true;\n }\n}\n\nif (!customElements.get('fx-reset')) {\n window.customElements.define('fx-reset', FxReset);\n}\n","import { AbstractAction } from './abstract-action.js';\nimport { evaluateXPathToString, resolveId } from '../xpath-evaluation.js';\nimport getInScopeContext from '../getInScopeContext.js';\nimport { XPathUtil } from '../xpath-util.js';\nimport { Fore } from '../fore.js';\n\n/**\n * `fx-load`\n *\n * Action to load a window, tab or embed some Html into the current page at given location.\n *\n */\nclass FxLoad extends AbstractAction {\n static get properties() {\n return {\n ...super.properties,\n attachTo: {\n type: String,\n },\n url: {\n type: String,\n },\n };\n }\n\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n this.url = '';\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.attachTo = this.hasAttribute('attach-to') ? this.getAttribute('attach-to') : '_self';\n\n // Add a 'doneEvent' to block the action chain untill the event fired on the element we're\n // loading something into.\n this.awaitEvent = this.hasAttribute('await') ? this.getAttribute('await') : '';\n this.url = this.hasAttribute('url') ? this.getAttribute('url') : '';\n const style = `\n :host{\n display:none;\n }\n `;\n this.shadowRoot.innerHTML = `\n <style>\n ${style}\n </style>\n ${this.renderHTML()}`;\n }\n\n disconnectedCallback() {\n // super.disconnectedCallback();\n this.targetElement.removeEventListener(this.event, e => this.execute(e));\n }\n\n // eslint-disable-next-line class-methods-use-this\n renderHTML() {\n return `\n <slot></slot>\n `;\n }\n\n async perform() {\n await super.perform();\n\n // this.getOwnerForm().evaluateTemplateExpression(this.urlContent, this);\n\n const template = this.querySelector('template');\n if (template) {\n const clone = template.content.cloneNode(true);\n const content = document.importNode(clone, true);\n // this._attachToElement(content);\n if (this.attachTo.startsWith('#')) {\n const targetId = this.attachTo.substring(1);\n const resolved = resolveId(targetId, this);\n // remove all children\n while (resolved.firstChild) {\n resolved.removeChild(resolved.firstChild);\n }\n if (this.awaitEvent) {\n let resolveEvent;\n const waitForEvent = new Promise(resolve => {\n resolveEvent = resolve;\n });\n const eventListener = () => {\n resolveEvent();\n resolved.removeEventListener(this.awaitEvent, eventListener);\n };\n\n resolved.appendChild(content);\n resolved.addEventListener(this.awaitEvent, eventListener);\n\n await waitForEvent;\n\n this.needsUpdate = true;\n\n Fore.dispatch(this, 'loaded', { attachPoint: this.attachTo, content });\n return;\n }\n\n resolved.appendChild(content);\n\n this.needsUpdate = true;\n }\n Fore.dispatch(this, 'loaded', {});\n return;\n }\n\n if (!this.url) {\n // for authoring errors we log errors directly to DOM\n\n this.dispatchEvent(\n new CustomEvent('error', {\n composed: false,\n bubbles: true,\n cancelable: true,\n detail: {\n origin: this,\n message: 'neither template element nor Url was specified.',\n level: 'Error',\n },\n }),\n );\n return;\n }\n const resolvedUrl = this.evaluateAttributeTemplateExpression(this.url, this);\n if (this.attachTo === '_blank') {\n window.open(this.url);\n }\n\n if (this.attachTo === '_self') {\n window.location.href = this.url;\n }\n\n try {\n const response = await fetch(resolvedUrl, {\n method: 'GET',\n mode: 'cors',\n credentials: 'same-origin',\n headers: {\n 'Content-Type': 'text/html',\n },\n });\n const data = await response.text();\n // console.log('data loaded: ', data);\n // const data = Fore.loadHtml(resolvedUrl);\n\n // todo: if data contain '<template' element as first child instanciate and insert it\n if (!this.attachTo) {\n this.innerHtml = data;\n }\n this._attachToElement(data);\n Fore.dispatch(this, 'loaded', { url: this.url });\n } catch (error) {\n throw new Error(`failed loading data ${error}`);\n }\n }\n\n _attachToElement(content) {\n let effectiveContent;\n if (content.nodeType) {\n effectiveContent = content;\n } else {\n try {\n effectiveContent = new DOMParser().parseFromString(content, 'text/html').firstElementChild;\n } catch (e) {\n Fore.dispatch(this, 'error', { message: 'parsing of content as HTML failed' });\n }\n }\n\n if (!(this.attachTo.startsWith('_') || this.attachTo.startsWith('#'))) {\n Fore.dispatch(this, 'error', {\n message: 'valid values for \"attach-to\" start with \"_\" or \"#\"',\n });\n }\n\n if (this.attachTo.startsWith('#')) {\n const targetId = this.attachTo.substring(1);\n const resolved = resolveId(targetId, this);\n resolved.innerHTML = '';\n // resolved.innerHTML = effectiveContent;\n if (effectiveContent.querySelector('fx-fore')) {\n resolved.append(effectiveContent.querySelector('fx-fore').cloneNode(true));\n return;\n }\n const body = effectiveContent.querySelector('body').cloneNode(true);\n resolved.appendChild(body.firstElementChild);\n }\n }\n\n _evaluateUrlExpression() {\n const url = this.getAttribute('url');\n if (!url) {\n throw new Error('url not specified');\n }\n\n const replaced = url.replace(/{[^}]*}/g, match => {\n if (match === '{}') return match;\n const naked = match.substring(1, match.length - 1);\n const inscope = getInScopeContext(this, naked);\n if (!inscope) {\n console.warn('no inscope context for ', this);\n return match;\n }\n // Templates are special: they use the namespace configuration from the place where they are\n // being defined\n const instanceId = XPathUtil.getInstanceId(naked);\n\n // If there is an instance referred\n const inst = instanceId\n ? this.getModel().getInstance(instanceId)\n : this.getModel().getDefaultInstance();\n try {\n return evaluateXPathToString(naked, inscope, this, null, inst);\n } catch (error) {\n console.warn('ignoring unparseable url', error);\n return match;\n }\n });\n return replaced;\n }\n}\n\nif (!customElements.get('fx-load')) {\n window.customElements.define('fx-load', FxLoad);\n}\n","// import { FxAction } from './fx-action.js';\nimport '../fx-model.js';\nimport { AbstractAction } from './abstract-action.js';\nimport { evaluateXPath } from '../xpath-evaluation.js';\nimport { Fore } from '../fore.js';\n\n/**\n * `fx-setvalue`\n *\n * @customElement\n */\nexport default class FxToggleboolean extends AbstractAction {\n static get properties() {\n return {\n ...super.properties,\n ref: {\n type: String,\n },\n valueAttr: {\n type: String,\n },\n value: {\n type: Boolean,\n },\n };\n }\n\n constructor() {\n super();\n this.ref = '';\n this.valueAttr = '';\n this.value = false;\n }\n\n connectedCallback() {\n if (super.connectedCallback) {\n super.connectedCallback();\n }\n\n if (this.hasAttribute('ref')) {\n this.ref = this.getAttribute('ref');\n } else {\n throw new Error('fx-togglealue must specify a \"ref\" attribute');\n }\n }\n\n async perform() {\n super.perform();\n const mi = this.getModelItem();\n mi.value === 'true' ? (mi.node.textContent = 'false') : (mi.node.textContent = 'true');\n this.needsUpdate = true;\n }\n}\n\nif (!customElements.get('fx-toggleboolean')) {\n window.customElements.define('fx-toggleboolean', FxToggleboolean);\n}\n","import '../fx-model.js';\nimport { AbstractAction } from './abstract-action.js';\nimport { evaluateXPath } from '../xpath-evaluation.js';\nimport { Fore } from '../fore.js';\nimport getInScopeContext from '../getInScopeContext.js';\nimport { XPathUtil } from '../xpath-util.js';\n\n/**\n * `fx-call`\n *\n * @customElement\n */\nexport default class FxCall extends AbstractAction {\n static get properties() {\n return {\n ...super.properties,\n action: {\n type: String,\n },\n fn: {\n type: String,\n },\n };\n }\n\n constructor() {\n super();\n this.action = '';\n this.fn = '';\n }\n\n connectedCallback() {\n if (super.connectedCallback) {\n super.connectedCallback();\n }\n if (this.hasAttribute('action')) {\n this.action = this.getAttribute('action');\n } else if (this.hasAttribute('function')) {\n this.fn = this.getAttribute('function');\n } else {\n throw new Error('fx-call must specify an \"action\" or \"function\" attribute');\n }\n }\n\n async perform() {\n super.perform();\n if (this.action) {\n await this._callAction();\n }\n // execute function\n if (this.fn) {\n this._callFunction();\n }\n }\n\n /**\n * find action and execute it\n */\n async _callAction() {\n /**\n * @type {import('./fx-action.js').FxAction}\n */\n const action = document.querySelector(`#${this.action}`);\n if (action) {\n await action.perform();\n } else {\n Fore.dispatch(this, 'error', {\n origin: this,\n message: `Action '${this.action}' not found`,\n expr: XPathUtil.getDocPath(this),\n level: 'Error',\n });\n }\n }\n\n _callFunction() {\n const inscope = getInScopeContext(this, 'instance()', this);\n evaluateXPath(this.fn, inscope, this);\n }\n}\n\nif (!customElements.get('fx-call')) {\n window.customElements.define('fx-call', FxCall);\n}\n","// import { FxAction } from './fx-action.js';\nimport '../fx-model.js';\nimport { AbstractAction } from './abstract-action.js';\nimport { evaluateXPathToString } from '../xpath-evaluation.js';\nimport { Fore } from '../fore.js';\nimport getInScopeContext from '../getInScopeContext';\n\n/**\n * `fx-setattribute` allows to create and set an attribute value in the data.\n *\n * @customElement\n */\nexport default class FxSetattribute extends AbstractAction {\n static get properties() {\n return {\n ...super.properties,\n ref: {\n type: String,\n },\n attrName: {\n type: String,\n },\n attrValue: {\n type: String,\n },\n };\n }\n\n constructor() {\n super();\n this.ref = '';\n this.attrName = '';\n this.attrValue = '';\n }\n\n connectedCallback() {\n if (super.connectedCallback) {\n super.connectedCallback();\n }\n\n if (this.hasAttribute('ref')) {\n this.ref = this.getAttribute('ref');\n } else {\n throw new Error('fx-setvalue must specify a \"ref\" attribute');\n }\n this.attrName = this.hasAttribute('name') ? this.getAttribute('name') : null;\n this.attrValue = this.hasAttribute('value') ? this.getAttribute('value') : '';\n if (!this.attrName) {\n Fore.dispatch('this', 'error', { message: 'name or value not specified' });\n }\n }\n\n async perform() {\n super.perform();\n const mi = this.getModelItem();\n if (mi.node.nodeType !== Node.ELEMENT_NODE) {\n Fore.dispatch('this', 'error', { message: 'referenced item is not an element' });\n return;\n }\n mi.node.setAttribute(this.attrName, this.attrValue);\n this.needsUpdate = true;\n }\n}\n\nif (!customElements.get('fx-setattribute')) {\n window.customElements.define('fx-setattribute', FxSetattribute);\n}\n","import { AbstractAction } from './abstract-action.js';\nimport { FxAction } from './fx-action.js';\nimport { Fore } from '../fore.js';\n\n/**\n * `fx-action`\n * an action to wrap other actions and defers the update cycle until the end of the block.\n *\n * @customElement\n * @demo demo/index.html\n */\nexport class FxConstructDone extends FxAction {\n connectedCallback() {\n // eslint-disable-next-line wc/guard-super-call\n super.connectedCallback();\n console.log('parentNode', this.parentNode);\n if (this.parentNode.nodeName !== 'FX-MODEL') {\n Fore.dispatch(this, 'error', { message: 'parent is not a model' });\n return;\n }\n this.parentNode.addEventListener('model-construct-done', e => {\n super.perform();\n });\n }\n}\nif (!customElements.get('fx-construct-done')) {\n window.customElements.define('fx-construct-done', FxConstructDone);\n}\n","import { AbstractAction } from './abstract-action.js';\n\n/**\n * `fx-unmodified` Action to reset the 'modified' state of Fore. A Fore page is considered\n * modified when a 'value-changed' event has occurred. If the respective Fore element uses\n * `show-confirmation=\"true\"` it will display a page exit confirmation in case the data\n * are modified. The `fx-unmodified` action allows to return to 'clean' state again avoiding\n * the dialog box after data have been saved and are considered unmodified again.\n *\n * Typically this action could be called on a `submit-done` event of a submission.\n *\n *\n * @customElement\n */\nexport default class FxUnmodified extends AbstractAction {\n constructor() {\n super();\n }\n\n async perform() {\n this.getOwnerForm().markAsClean();\n }\n}\n\nif (!customElements.get('fx-unmodified')) {\n window.customElements.define('fx-unmodified', FxUnmodified);\n}\n","import { createTypedValueFactory, registerCustomXPathFunction } from 'fontoxpath';\nimport { evaluateXPath, globallyDeclaredFunctionLocalNames } from '../xpath-evaluation';\n\n/**\n * @param functionObject {{signature: string, type: string|null, functionBody: string}}\n * @param formElement {HTMLElement} The form element connected to this function. Used to determine inscope context\n * @returns {undefined}\n */\nexport default function registerFunction(functionObject, formElement) {\n if (functionObject.signature === null) {\n console.error('signature is a required attribute');\n }\n\n const type = functionObject.type ?? 'text/xpath';\n\n // Parse the signature to something useful\n // Signature is of the form `my:sumproduct($p as xs:decimal*, $q as xs:decimal*) as xs:decimal` or local:something($a as item()*) as item()*\n const signatureParseResult = functionObject.signature.match(\n /(?:(?<prefix>[a-zA-Z_\\-][a-zA-Z0-9_\\-]*):)?(?<localName>[a-zA-Z_\\-][a-zA-Z0-9_\\-]*\\s*)\\((?<params>(?:[^()]*|\\([^()]*\\))*)\\)\\s*(?:as\\s+(?<returnType>.*))?/,\n );\n\n if (!signatureParseResult) {\n throw new Error(`Function signature ${functionObject.signature} could not be parsed`);\n }\n\n const { prefix, localName, params, returnType } = signatureParseResult.groups;\n\n // TODO: lookup prefix\n const functionIdentifier =\n prefix === 'local' || !prefix\n ? { namespaceURI: 'http://www.w3.org/2005/xquery-local-functions', localName }\n : `${prefix}:${localName}`;\n\n // Make the function available globally w/o a prefix. See the functionNameResolver for for how\n // functionObject is picked up\n if (!prefix) {\n globallyDeclaredFunctionLocalNames.push(localName);\n }\n\n const paramParts = params\n ? params.split(',').map(param => {\n const match = param.match(/(?<variableName>\\$[^\\s]+)(?:\\sas\\s(?<varType>[^\\s]+))/);\n if (!match) {\n throw new Error(`Param ${param} could not be parsed`);\n }\n const { variableName, varType } = match.groups;\n return {\n variableName,\n variableType: varType || 'item()*',\n };\n })\n : [];\n\n switch (type) {\n case 'text/javascript': {\n // eslint-disable-next-line no-new-func\n const fun = new Function(\n '_domFacade',\n ...paramParts.map(paramPart => paramPart.variableName),\n 'form',\n functionObject.functionBody,\n );\n registerCustomXPathFunction(\n functionIdentifier,\n paramParts.map(paramPart => paramPart.variableType),\n returnType || 'item()*',\n (...args) =>\n fun.apply(formElement.getInScopeContext(), [...args, formElement.getOwnerForm()]),\n );\n break;\n }\n\n case 'text/xquf':\n case 'text/xquery':\n case 'text/xpath': {\n const typedValueFactories = paramParts.map(param =>\n createTypedValueFactory(param.variableType),\n );\n const language =\n type === 'text/xpath'\n ? 'XPath3.1'\n : type === 'text/xquery'\n ? 'XQuery3.1'\n : 'XQueryUpdate3.1';\n const fun = (domFacade, ...args) =>\n evaluateXPath(\n functionObject.functionBody,\n formElement.getInScopeContext(),\n formElement.getOwnerForm(),\n paramParts.reduce((variablesByName, paramPart, i) => {\n // Because we know the XPath type here (from the function declaration) we do not have to depend on the implicit typings\n variablesByName[paramPart.variableName.replace('$', '')] = typedValueFactories[i](\n args[i],\n domFacade,\n );\n return variablesByName;\n }, {}),\n { language },\n );\n registerCustomXPathFunction(\n functionIdentifier,\n paramParts.map(paramPart => paramPart.variableType),\n returnType || 'item()*',\n fun,\n );\n break;\n }\n\n default:\n throw new Error(`Unexpected mimetype ${type} for function`);\n }\n}\n","import ForeElementMixin from '../ForeElementMixin.js';\nimport registerFunction from './registerFunction.js';\n\n/**\n * Allows to extend a form with local custom functions.\n */\nexport class FxFunction extends ForeElementMixin {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n\n connectedCallback() {\n this.style.display = 'none';\n\n this.signature = this.hasAttribute('signature') ? this.getAttribute('signature') : null;\n this.type = this.hasAttribute('type') ? this.getAttribute('type') : null;\n this.shadowRoot.innerHTML = '<slot></slot>';\n\n this.override = this.hasAttribute('override') ? this.getAttribute('override') : 'true';\n this.functionBody = this.innerText;\n\n registerFunction(this, this);\n }\n}\nif (!customElements.get('fx-function')) {\n customElements.define('fx-function', FxFunction);\n}\n","import ForeElementMixin from '../ForeElementMixin.js';\nimport registerFunction from './registerFunction.js';\n\n/**\n * Allows to extend a form with remote custom functions.\n *\n */\nexport class FxFunctionlib extends ForeElementMixin {\n constructor() {\n super();\n\n /**\n * @type {Function}\n */\n this._resolve = null;\n\n /**\n * @type {Promise<undefined>}\n */\n this.readyPromise = new Promise(resolve => (this._resolveLoading = resolve));\n }\n\n async connectedCallback() {\n this.style.display = 'none';\n\n const src = this.getAttribute('src');\n\n const result = await fetch(src);\n if (!result.ok) {\n console.error(`Loading function library at ${src} failed.`);\n }\n\n const body = await result.text();\n const document = new DOMParser().parseFromString(body, 'text/html');\n\n /**\n * @type {HTMLElement[]}\n */\n const functions = Array.from(document.querySelectorAll('fx-function'));\n // TODO: also recurse into new function libraries here?\n for (const func of functions) {\n const functionObject = {\n type: func.getAttribute('type'),\n signature: func.getAttribute('signature'),\n functionBody: func.innerText,\n };\n\n registerFunction(functionObject, this);\n }\n this._resolveLoading(undefined);\n }\n}\n\nif (!customElements.get('fx-functionlib')) {\n customElements.define('fx-functionlib', FxFunctionlib);\n}\n"],"names":["t$2","t","s","r","i","op","func","data","instruction","[object Object]","this","program","test","addInstruction","targets","record","cost","fail","codepoint","expected","a$1","first","B","last","A","Error","n$1","e$1","n","success","offset","value","okWithValue","undefined","e","fatal","cp","o","input","f","res","parser","p","nextOffset","ts","x","u","b","r1","parser1","c","r2","y","then","before","second","after","w","D","complete","startOffset","open","cutAfterOpen","cut","followed","close","error","not","except","match","v","vs","lastCodePoint","values","push","nCodepoints","lengthFromCodePoint","length","offsetAfter","token","VERSION","xspattern","prsc","aa","a","exec","d","replace","Math","padEnd","toString","indexOf","ka","wa","da","nc","xa","oc","Ba","ja","ma","la","na","oa","pa","ra","ta","Map","RegExp","qa","sa","ua","Object","create","g","type","C","name","parent","K","whiteSpace","S","minLength","Ca","get","Ka","gb","Oa","map","va","ya","constructor","q","za","find","next","hb","filter","O","fa","Pa","F","N","X","empty","default","Da","Ea","Ha","Ia","startsWith","Ja","substr","La","isNaN","Ma","h","m","Qa","Array","isArray","multiple","done","l","T","Ra","namespaceURI","prefix","localName","j","arity","Ya","I","k","super","fill","slice","concat","ia","Wa","Xa","node","nodeType","getAllAttributes","from","attributes","includes","getAttribute","getChildNodes","childNodes","getData","getFirstChild","firstChild","nextSibling","getLastChild","lastChild","previousSibling","getNextSibling","getParentNode","ownerElement","parentNode","getPreviousSibling","ab","insertBefore","removeAttributeNS","removeChild","setAttributeNS","setData","cb","db","G","nodeName","jb","kb","lb","mb","Va","ob","rb","ub","sb","key","tb","$a","getHours","getMinutes","getSeconds","bb","xb","abs","wb","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","ca","trunc","is","yb","Bb","zb","parseInt","parseFloat","Cb","isFinite","Eb","substring","padStart","Fb","Hb","split","Ib","Jb","Db","Kb","Y","Mb","Date","UTC","getDay","getMonth","getYear","Nb","getTime","Ob","Pb","Sb","toISOString","keys","String","Tb","Ub","Lb","Wb","Vb","$b","bc","cc","M","Aa","dc","ec","qb","ib","vb","Ab","fc","gc","hc","assign","floor","random","Ua","jc","kc","mc","pc","forEach","join","qc","sc","NaN","Infinity","Jc","ea","Lc","Kc","Mc","Ga","Yc","$c","toUpperCase","Zc","cd","ad","Pc","Hc","Ic","Gc","MAX_VALUE","Wc","isSafeInteger","Oc","Nc","dd","Fc","Ec","bd","Dc","Uc","Tc","Sc","Qc","Rc","zc","yc","fromCharCode","btoa","Vc","atob","charCodeAt","xc","hd","ed","rc","tc","every","uc","vc","id","gd","call","kd","ld","od","unshift","pd","qd","md","findIndex","min","nd","rd","ud","vd","shift","xd","yd","jd","zd","Cd","Dd","repeat","Fd","toLowerCase","Ed","Id","Gd","Jd","Kd","Ld","Md","sort","fromCodePoint","Od","Pd","Intl","numberingSystem","useGrouping","format","Qd","Rd","Nd","Hd","splice","Sd","Ud","ceil","round","pow","Vd","Wd","callFunction","Bd","bind","Ad","lc","Xd","$d","ae","ce","ee","max","ge","fe","lastIndex","index","he","trim","je","has","set","Zd","endsWith","be","codePointAt","encodeURIComponent","encodeURI","ie","language","le","WeakMap","ne","oe","Sa","target","re","me","te","ue","fb","xe","ye","ze","pe","we","td","reduce","se","ve","qe","Be","Ce","De","Ge","z","Fe","Ee","He","Ie","Je","Le","Ke","eb","Me","Oe","Qe","Re","Se","Te","Ue","Ve","We","Xe","Ye","Ne","W","R","subtree","Fa","Qb","some","ownerDocument","createElementNS","createProcessingInstruction","createTextNode","createComment","createAttributeNS","createCDATASection","createDocument","implementation","gf","lf","ef","content","ff","hf","$e","bf","cf","df","jf","text","Set","add","outerHTML","nf","Boolean","J","mf","Ze","qf","sf","uf","tf","vf","wf","xf","Ef","arguments","apply","rf","external","P","L","pf","Ff","Df","Hf","pb","Kf","Lf","Jf","Mf","If","reverse","E","$","Qf","Rf","Sf","Tf","Uf","Vf","Pf","Xf","Yf","normalize","ag","Zf","pop","$f","bg","dg","fg","Za","position","end","ha","line","start","hg","log10","jg","gg","lg","mg","kg","ng","og","xml","xs","fn","array","math","fontoxpath","local","pg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","Cg","Dg","Gg","H","Kg","Lg","Og","Pg","Rb","Rg","Sg","U","V","Qg","Tg","Vg","$g","ah","Zg","ih","jh","kh","wc","lh","mh","gh","nh","oh","ph","qh","eh","ga","bh","Ng","dh","ch","Mg","hh","fh","Yg","Xg","uh","vh","yh","xh","attribute","Bh","Ch","Fh","Eh","Gh","Ih","Lh","Nh","location","ig","message","Rh","Th","Uh","Vh","Hg","Jg","TypeError","bi","fi","gi","ii","ji","ki","mi","oi","pi","ni","equalOp","notEqualOp","lessThanOrEqualOp","lessThanOp","greaterThanOrEqualOp","greaterThanOp","si","vi","sd","ui","xi","Di","Fi","Hi","current","Symbol","iterator","ba","Ki","Ji","Gi","Oi","Ri","Si","Wi","kind","cj","ej","newName","replacement","qj","of","dj","rj","sj","tj","ij","jj","kj","hj","gj","fj","Pe","lookupNamespaceURI","wj","xj","yj","source","vj","Aj","zj","lj","mj","oj","Pj","pj","Oj","Rj","nj","Sj","Uj","nb","Na","sg","uri","Yj","Zj","Gb","Z","gk","fk","ek","di","hk","ei","ci","Q","Wg","zi","ik","Ii","yi","Gf","ai","jk","lk","wk","Dk","wh","zh","Ah","Dh","Kh","Jh","Oh","Hh","Mh","Ph","Ti","Qi","Mi","Pi","mk","Ni","nk","Xh","ok","pk","qk","Zh","aj","reduceRight","Wh","Yh","bj","Li","Ek","rk","Vi","sk","Qh","Ei","Ci","Bi","Ai","tk","uk","sh","th","vk","Ui","ck","xk","dk","yk","Xj","zk","Vj","Ak","Wj","bk","Bk","ak","uj","Nj","Qj","Tj","Ck","Yi","Zi","Xi","$i","qi","wi","ti","Hk","Gk","Kk","JSON","parse","Lk","Mk","Ta","Nk","Fg","Ig","Qk","delimited","preceded","Rk","Sk","Uk","Vk","or","Wk","Yk","Xk","Zk","$k","al","bl","cl","dl","el","fl","gl","hl","il","jl","kl","ll","ml","nl","ol","pl","ql","rl","sl","tl","ul","vl","wl","xl","yl","zl","Al","Bl","Cl","Dl","El","Fl","Gl","Hl","Il","Jl","Kl","Ll","peek","Ml","Nl","Ol","Pl","Ql","Rl","Sl","Tl","Ul","Vl","Wl","Xl","Yl","Zl","$l","am","bm","cm","dm","em","fm","gm","hm","im","jm","km","lm","mm","nm","om","pm","qm","rm","sm","tm","um","vm","wm","xm","ym","zm","Am","Bm","Cm","Dm","Em","Fm","Gm","Hm","Im","Jm","Km","Lm","Mm","Nm","Om","Pm","Qm","Rm","Sm","Tm","Um","Vm","Wm","Xm","Ym","Zm","$m","an","bn","cn","dn","en","gn","hn","jn","kn","ln","mn","nn","on","pn","qn","rn","sn","tn","un","vn","wn","xn","yn","zn","An","Bn","Cn","Dn","En","Fn","Gn","Hn","In","Jn","Kn","Ln","Mn","Nn","On","Pn","Qn","Rn","Sn","Tn","Un","Vn","Wn","Xn","Yn","Zn","$n","ao","bo","co","eo","fo","go","ho","io","jo","ko","lo","mo","no","oo","po","qo","ro","so","to","uo","vo","wo","xo","yo","zo","Ao","Bo","Co","Do","Eo","Fo","Go","Ho","Io","Jo","Ko","Lo","Mo","No","Oo","Po","Qo","Ro","So","Uo","Vo","Wo","star","Xo","Yo","plus","To","Zo","$o","ap","bp","dp","ep","URI","gp","hp","fp","ip","lp","jp","mp","pp","qp","rp","sp","tp","up","vp","wp","yp","xp","zp","optional","Ap","Cp","Dp","Ep","Fp","Gp","Hp","Ip","Jp","Kp","Lp","Np","Mp","Pp","Op","Qp","Rp","Sp","Tp","Up","Vp","Wp","Xp","Yp","Zp","$p","aq","bq","cq","dq","eq","fq","jq","iq","lq","Bj","yf","zr","Ar","Br","Cr","Dr","Er","Fr","Gr","Hr","Ir","Jr","kp","Xb","fd","Yb","Kr","Lr","Mr","Nr","Or","Pr","zf","Af","Bp","Cj","de","Qr","Dj","Bf","Sr","Tr","Ur","Vr","Wr","Xr","Yr","Zr","$r","as","Ac","bs","Ej","cs","ds","es","fs","gs","hs","js","ks","Fj","ls","Cf","ms","Gj","ns","os","ps","qs","gq","ss","rs","hq","us","ws","ys","zs","As","Bs","Cs","Ds","Es","Hj","Ij","Fs","Jj","Bc","Zb","Gs","Hs","Cc","Is","Js","kq","Ks","Ls","Ms","Ns","Kj","Ps","Os","Qs","Rs","Ss","Ts","Us","Vs","Ws","Xs","Ys","Zs","at","ct","bt","dt","et","ft","gt","ht","Tk","it","jt","kt","Lj","lt","mt","nt","ot","pt","qt","rt","st","tt","ut","vt","wt","xt","yt","zt","At","Bt","Ct","Dt","Et","Ft","Gt","Ht","It","Jt","Kt","Lt","Mt","Nt","Ot","Pt","Qt","Rt","St","Tt","Mj","Ut","Vt","Wt","Xt","Yt","Zt","mq","qq","debug","clear","pq","nq","sq","tq","rq","Fk","Eg","uq","state","Ik","wq","qg","Ok","Pk","Jk","rh","vq","xq","ic","zq","Cq","Eq","Iq","Fq","Nf","Aq","Bq","Dq","PI","log","sqrt","sin","cos","tan","asin","acos","atan","atan2","Hq","Gq","serializeToString","yq","fontoxpathGlobal","Mq","Oq","Pq","logger","trace","console","moduleImports","namespaceResolver","ac","functionNameResolver","nodesFactory","xmlSerializer","defaultFunctionNamespaceURI","Kq","Lq","currentContext","Qq","Rq","Sq","ANY","NUMBER","STRING","BOOLEAN","NODES","FIRST_NODE","STRINGS","MAP","ARRAY","NUMBERS","ALL_RESULTS","ASYNC_ITERATOR","Promise","resolve","asyncIterator","catch","Tq","Wq","Vq","getPerformanceSummary","xpath","times","totalDuration","duration","average","setPerformanceImplementation","startProfiling","clearMeasures","stopProfiling","Zq","disableCache","mark","Yq","Uq","measure","clearMarks","$q","br","pendingUpdateList","xdmValue","code","isAstAccepted","reason","rr","tr","yr","ANY_TYPE","BOOLEAN_TYPE","NUMBER_TYPE","STRING_TYPE","ALL_RESULTS_TYPE","ARRAY_TYPE","ASYNC_ITERATOR_TYPE","FIRST_NODE_TYPE","MAP_TYPE","NODES_TYPE","NUMBERS_TYPE","STRINGS_TYPE","XPATH_3_1_LANGUAGE","XQUERY_3_1_LANGUAGE","XQUERY_UPDATE_3_1_LANGUAGE","eqOp","neOp","leOp","ltOp","geOp","gtOp","bu","qr","cu","du","eu","stringify","lu","hu","iu","mu","ou","vr","sr","ur","qu","fu","pu","su","ru","vu","uu","wu","xu","yu","xr","Au","Cu","Du","Eu","pr","Hu","Fu","Gu","Ju","Iu","Ku","Bu","zu","Nu","Mu","Lu","Ou","tu","$t","au","Qu","stack","Tu","errXPDY0002","Yu","$u","ev","dv","compareSpecificity","compileXPathToJavaScript","wr","domFacade","hv","evaluateXPath","evaluateXPathToArray","evaluateXPathToAsyncIterator","ar","evaluateXPathToBoolean","evaluateXPathToFirstNode","evaluateXPathToMap","evaluateXPathToNodes","evaluateXPathToNumber","evaluateXPathToNumbers","evaluateXPathToString","evaluateXPathToStrings","evaluateUpdatingExpression","returnType","evaluateUpdatingExpressionSync","executeJavaScriptCompiledXPath","Wu","executePendingUpdateList","getBucketForSelector","getBucketsForNode","precompileXPath","registerXQueryModule","registerCustomXPathFunction","Uu","Su","getOwnPropertySymbols","parseScript","profiler","Xq","createTypedValueFactory","Jq","finalizeModuleRegistration","Language","ReturnType","window","DependencyNotifyingDomFacade","onNodeTouched","_onNodeTouched","attributeName","matchingNodes","matchingNode","childNode","bucket","ATTRIBUTE_NODE","child","matchNode","sibling","XPathUtil","static","doc","fore","document","rootNode","currentNode","part","parts","setAttribute","attrName","namespace","newElement","createElement","appendChild","ownerForm","querySelector","found","queue","item","children","matches","descendant","ancestor","Node","DOCUMENT_FRAGMENT_NODE","host","TEXT_NODE","DOCUMENT_NODE","getClosest","path","ref","boundElement","result","closestActualFormElement","groups","variableName","correspondingVariable","inScopeVariables","getInstanceId","valueQuery","instanceId","getParentBindingElement","parentBinding","resolveInstance","fx","evaluateXPathToString$1","shortened","shortenPath","replaceAll","tmp","tmp1","dep","visited","edges","leavesOnly","circular","currentPath","todo","processed","inCurrentPath","composed","CustomEvent","bubbles","detail","nodeEdges","DepGraph","opts","outgoingEdges","incomingEdges","xmlDoc","DOMParser","xsltDoc","parseFromString","importStylesheet","xsltProcessor","resultXml","XMLSerializer","resultDoc","prototype","size","nodes","addNode","hasNode","removeNode","edgeList","idx","hasOwnProperty","getNodeData","setNodeData","addDependency","removeDependency","directDependenciesOf","directDependantsOf","dependenciesOf","DFS","createDFS","dependantsOf","self","CycleDFS","dependentsOf","createdNamespaceResolversByXPathQueryAndNode","globallyDeclaredFunctionLocalNames","setCachedNamespaceResolver","resolver","xhtmlNamespaceResolver","query","sourceObject","elementsWithId","closest","querySelectorAll","targetObject","allMatchingTargetObjects","foundTargetObjects","contains","ancestorRepeatItem","evaluateXPathToNodes$1","instanceReferencesByQuery","findInstanceReferences","xpathQuery","getCachedNamespaceResolver","formElement","cachedResolver","instanceReferences","fxEvaluateXPathToStrings","evaluateXPathToStrings$1","ELEMENT_NODE","createNamespaceResolver","ancestorComponent","instance","actualForeElement","resolveId","xpathDefaultNamespace","resolveNamespacePrefix","warn","createNamespaceResolverForNode","contextNode","varElementOrValue","variables","options","variablesInScope","getVariablesInScope","evaluateXPath$1","fxEvaluateXPath","XFORMS_NAMESPACE_URI","dispatchEvent","origin","expr","level","fxEvaluateXPathToFirstNode","fxEvaluateXPathToNodes","contextFunction","dynamicContext","string","caller","nodeset","getInScopeContext","buildTree","tree","details","summary","display","attr","nodeValue","contents","childElementCount","def","prettifyXml","getDefaultContext","foreElement","hasAttribute","_dynamicContext","out","firstElementChild","treeDiv","logtree","form","lookup","getDefaultInstance","getModel","getInstance","context","xmlToJson","obj","textContent","char","convert","entries","root","json","_propertyLookup","_getInitialContext","localFore","model","parentBind","_getModelInContext","parentBindFore","isAbsolutePath","parentElement","_getElement","parentActionWithIterateExpr","repeatItem","_getForeContext","repeatItemFromAttrs","contextAttr","initialContext","isElementNode","parseNode","hasAttributes","isTextNode","childValue","childName","arg","currentEvent","_string","toLocaleDateString","toLocaleString","href","_arg","hash","search","URL","lastIndexOf","pathname","port","urlparams","protocol","Fore","url","method","fetch","mode","credentials","headers","responseContentType","response","dispatch","src","selector","parsed","loadHtml","thisAttrs","attrPredicate","classList","indexes","ACTION_ELEMENTS","hexDigits","elementName","UI_ELEMENTS","MODEL_ELEMENTS","startElement","force","element","isUiElement","refresh","_dependencies","isInvalidatedByIndexFunction","inert","refreshChildren","inputElement","newFore","timeEnd","lookFor","targetElement","conv","convertFromSimple","copied","contentType","status","alert","fadeIn","getAnimations","anim","finish","opacity","animate","finished","fadeOut","eventName","listenerPromises","event","all","lines","REQUIRED_DEFAULT","RELEVANT_DEFAULT","CONSTRAINT_DEFAULT","TYPE_DEFAULT","HTMLElement","attachShadow","partialInstance","connectedCallback","shadowRoot","innerHTML","async","_initInstance","reset","instanceData","originalInstance","cloneNode","evalXPath","getInstanceData","createInstanceData","setInstanceData","_setInitialData","URLSearchParams","newNode","_loadData","_useInlineData","innerText","serialized","localStorage","getItem","replaceWith","getContentType","fxInstance","_getContentType","customElements","define","FxInstance","ModelItem","readonly","relevant","required","constraint","changed","alerts","boundControls","newVal","addAlert","cleanAlerts","instances","defaultContext","modelConstructed","createNodes","registerModelItem","targetNode","getPath","promises","init","updateModel","lib","functionlibImports","readyPromise","inited","modelItem","modelItems","rebuild","revalidate","binds","mainGraph","maingraph","skipUpdate","recalculate","subgraph","dependents","val","deps","overallOrder","compute","toRefresh","computes","getModelItem","property","valid","addToRefresh","addChanged","getDefaultInstanceData","inst","parentFore","shared","strict","evalBinding","bindingExpr","FxModel","dataChanged","_parentDependencies","_xpaths","addXPath","resetDependencies","ForeElementMixin","properties","DependentXPathQueries","setParentDependencies","currentElement","DocumentFragment","evalInContext","inscopeContext","getAttributeNode","evaluateAttributeTemplateExpression","inscope","replaced","naked","isNotBound","isBound","getBindingExpr","instId","_getParentBindingElement","repeated","existed","lazyCreatedModelItem","lazyCreateModelItem","getValue","valAttr","getOwnerForm","calculate","FxBind","bindType","_buildBindGraph","_createModelItems","_processChildren","calculateRefs","_getReferencesForProperty","_addDependencies","readonlyRefs","requiredRefs","relevantRefs","constraintRefs","refs","nodeHash","otherPath","childbinds","getAlert","alertChild","_evalInContext","isSelfReference","localResult","_createModelItem","parentBoundElement","READONLY_DEFAULT","newItem","propertyExpr","getReferences","otherNode","touchedNodes","_initBooleanModelItemProperty","steps","step","_getInstanceId","bindExpr","_socket","_heartbeatInterval","_heartbeatTimer","_defaultHeartbeatInterval","_messageFormat","_onMessage","FxConnection","_defaultMessageFormat","_render","html","observedAttributes","_url","_setupHeartbeat","addEventListener","disconnectedCallback","_disconnect","attributeChangedCallback","oldValue","newValue","_connect","send","readyState","WebSocket","OPEN","_sendMessage","_onOpen","_onClose","removeEventListener","clearInterval","setInterval","heartbeat","messageformat","defaults","oldestFirst","callback","destination","newWindow","gravity","positionLeft","backgroundColor","avatar","className","stopOnFocus","onClick","style","background","_init","body","showToast","getElementById","_rootElement","ShadowRoot","toastElement","timeOutValue","setTimeout","_removeElement","hideToast","clearTimeout","_buildToast","divElement","escapeMarkup","avatarElement","insertAdjacentElement","closeElement","stopPropagation","width","_getAxisOffsetAValue","xOffset","yOffset","transform","_reposition","top","bottom","classUsed","allToasts","height","offsetSize","topLeftOffsetSize","topRightOffsetSize","axis","StartToastifyInstance","Toastify","JinnToast","_initVar","defaultVal","classProp","offSet","renderHTML","withDraggability","superclass","isAlsoDraggable","_drop","dragOver","_dragOver","drop","dragLeave","_dragLeave","dragEnd","_dragEnd","draggedItem","accepts","remove","draggingClosestRepeat","thisClosestRepeat","preventDefault","_getDataNode","dataNode","isAccepted","accept","replaceChildren","append","stopImmediatePropagation","previousElementSibling","nextElementSibling","repeatItemNode","FxRepeatAttributes","dataTemplate","isDraggable","focusOnCreate","initDone","repeatIndex","repeatSize","delegatesFocus","setIndex","rItems","refd","applyIndex","_getRepeatedItems","repeatedItems","mutationObserver","MutationObserver","mutations","added","addedNodes","registerLazyElement","_evalNodeset","_initTemplate","_getRef","childList","observe","rawNodeset","repeatItemCount","nodeCount","repeatItems","contextSize","itemToRemove","unRegisterLazyElement","someInstanceDataStructureChanged","clonedTemplate","_clone","_dispatchIndexChange","lazyRefresh","fade","requestAnimationFrame","template","_initVariables","newRepeatItem","setInScopeVariables","registerVariables","_removeIndexMarker","removeAttribute","CLEAN","FxFore","_displayMessage","_logError","_displayWarning","storedTemplateExpressionByNode","copiedElements","WeakSet","dirtyState","showConfirmation","dirtyStates","initialRun","_scanForNewTemplateExpressionsNextRefresh","repeatsFromAttributesCreated","validateOn","time","rootMargin","threshold","intersectionObserver","IntersectionObserver","handleIntersect","_loadFromSrc","_injectDevtools","copyDom","ignoredNodes","ignoreExpressions","modelElement","modelElem","generatedModel","info","modelConstruct","_handleModelConstructDone","_createRepeatsFromAttributes","urlParams","devtools","lens","scanForNewTemplateExpressionsNextRefresh","markAsClean","once","loadForeFromSrc","observer","entry","isIntersecting","evaluateToNodes","dragstart","_updateTemplateExpressions","_processTemplateExpressions","isRefreshing","controlsToRefresh","ctrl","modelItemOfDep","getBasePath","mip","basePath","control","visibility","subFores","subFore","ready","tmplExpressions","storedTemplateExpressions","delete","_processTemplateExpression","exprObj","evaluateTemplateExpression","_initUI","generatedInstance","generated","_generateInstance","isActionElement","_generateNode","hasChildNodes","list","_lazyCreateInstance","initData","_handleDragStart","handleDrop","dataTransfer","dropEffect","previousControl","parentNodeset","ourParent","siblingControl","siblingOrDescendant","referenceNodeset","_createNodes","referenceNode","createElementFromXPath","effectAllowed","_handleDrop","originalDraggedItem","unobserve","msg","_showMessage","_displayError","toast","_copyToClipboard","navigator","clipboard","writeText","table","repeatFromAttr","handleRelevance","Relevance","_relevantXmlNodes","_isRelevant","_filterRelevant","clone","parameters","serialization","mediatype","responseMediatype","targetref","validate","submission","_submit","_serializeAndSend","_getProperty","resolvedUrl","instType","_serialize","_handleResponse","removeItem","setItem","newInst","methods","blob","download","_parse","relevantNodes","params","instanceType","_getHeaders","headerElems","header","_getUrlExpr","stored","_getTargetInstance","targetInstance","theTarget","replaceChild","into","downloadLink","click","win","write","objectURL","_handleError","FxSubmission","FxHeader","FxVariable","precedingVariables","typedValueFactory","widget","getWidget","oldNodeValue","oldControlValue","newControlValue","oldVal","parentPath","updateWidgetValue","isDifferent","oldvalue","foreId","refreshFromModelItem","handleModelItemProperties","handleReadonly","handleValid","handleRelevant","_getForm","_dispatchEvent","handleRequired","wasRequired","_toggleValid","_updateRequired","isReadonly","isValid","newAlert","isEnabled","isRequired","AbstractControl","timeout","timer","args","FxAlert","_getValueFromHtmlDom","valueProp","selectedOptions","option","loaded","initialNode","debounceDelay","updateEvent","label","isWidget","focus","listenOn","keyCode","setValue","debounce","newNodes","_replaceNode","boundInitialized","_debounce","modelitem","widgetValue","actionPerformed","setval","WIDGETCLASS","valueSet","pretty","serializer","initial","_loadForeFromSrc","selected","checked","imported","importNode","theFore","defaultInst","dummy","getTemplate","_handleBoundWidget","_handleDataAttributeBinding","dataRefd","boundList","firstTemplateChild","fragment","createDocumentFragment","newEntry","updateEntry","valueAttribute","_getValueAttribute","cutted","valueExpr","evaluated","evalLabel","optionLabel","labelExpr","createEntry","FxControl","FxContainer","enabled","FxGroup","reflect","collapse","render","initializeChildren","grantChild","groupEnd","FxHint","styles","FxOutput","valueAttr","valueWrapper","img","theNode","tmpDoc","FxRepeatitem","dropTarget","tabindex","_handleFocus","FxRepeat","_createNewRepeatItem","_initRepeatItems","pos","FxSwitch","selectedCase","cases","visitedResetted","formerCase","_handleBoundSwitch","toggle","_dispatchEvents","_resetVisited","caseElem","oldCase","newCase","caseElement","slot","flatten","assignedElements","elements","leadingDebounce","performActions","repeatedItem","variableElement","execute","FxTrigger","FxCase","replaceCase","update","pre","serializeDOM","FxInspector","FxDialog","closeBtn","hide","fadeOutElement","FxItems","lblExpr","lblEvaluated","getExpression","FxDroptarget","shortName","shortInfo","shortPath","FxLogItem","listeners","listenTo","FxLogSettings","defaultSettings","boxes","wrapper","lbl","description","cbx","show","_log","evt","reload","row","getPrototypeOf","outermost","outermostAppender","li","_highlight","logRowTarget","logged","cancelable","_logDetails","eventType","short","deletedNodes","actionElement","_renderAction","_listEventDetails","action","messageTextContent","instPath","_listAttributes","defaultTransition","defaultBG","transition","capture","ctrlKey","_defaultSettings","getDocPath","addClass","strClass","removeClass","containsOnlyText","checkChildren","nodeTmp","len","COMMENT_NODE","CDATA_SECTION_NODE","attrs","elem","drawOptionRow","optionCode","optionText","class","FxActionLog","sourceNodeByInspectorNodeLookup","uiView","menuView","domView","attrView","optsView","vertResizing","horizResizing","pathScrolling","elemLookup","styleBackup","xPos","delegatedEvents","align","minSplit","visible","saving","transparent","omitEmptyText","makeVisible","foldText","nodeTypes","isInstanceViewer","registerEvents","rootElement","drawDOM","processExecuteAction","getSelected","activeElement","userOptions","opt","saveOptions","hasRequiredNodes","newTreeNode","sourceNode","omit","adiNode","isEmptyTextNode","tagEnd","tagStart","attrString","isRoot","isOpen","withChildren","span","scrollIntoView","block","behavior","toggleOptions","refreshUI","drawUI","title","head2","domViewContent","domTree","domPathWrap","domPathScrollLeft","domPathScrollRight","naviButtons","naviLookup","naviConfig","attrViewContent","refreshOpts","loadOptions","clientHeight","toggleVisibilityUI","attrValue","drawAttrRow","changeAttribute","srcElement","changeOption","which","verticalResize","documentElement","clientX","nWidth","horizontalResize","nSplit","clientY","handleActive","active","drawAttrs","selectedElement","highlightElement","inspectorNode","handleLookup","removeEvent","addEventDelegate","pauseEvent","returnValue","inline","store","exclude","handler","sel","delegate","handle","wasDelegated","redrawUi","cursor","wrap","scrollTop","offsetTop","setupFocusButton","setInstance","adiInstance","focusedElement","onHover","removeFocus","isFocussing","stopFocussing","head","focusButton","listener","styleElement","startFocussing","clickEvent","ADI","FxDomInspector","FxJsonInstance","foreSelector","instanceElement","outputWithQuotes","container","_handleToggleEvent","_isHidden","offsetWidth","getComputedStyle","elm","_siblings","subTarget","count","tagName","insertAdjacentHTML","placeholder","sibs","_i","json2html","isUrl","isCollapsable","_typeof","keyCount","keyRepr","regexp","jsonTextarea","updateTree","jsonString","treeView","createTreeView","newPath","createItemView","FxDevtools","propertyName","typedValue","lastY","defaultHeight","buttonByInstanceId","attachToFore","btn","selectInstance","closestFore","_getInstanceForTarget","button","selectedBtn","instancePanel","panelContent","_renderInstancePanel","_resizePanel","isResizing","lastHeight","offsetHeight","delta","_stopResize","newHeight","resizer","optionsTrigger","_handleOpen","domInspector","jsonInspector","hostedStylesheet","linkElem","allCSS","styleSheet","cssRules","rule","cssText","CSSStyleSheet","replaceSync","sheet","adoptedStyleSheets","eventTmpl","ForeComponent","lastX","targetSummary","targetId","flashEffect","lastWidth","openPanels","lensWidth","opened","main","sections","sec","panes","detailSections","sect","editors","FxLens","_importUploadedContent","fileNameExpr","mimetypeExpr","file","files","fileNode","fileName","mimetypeNode","mimetype","_readFile","uploadedXML","FileReader","readMethod","isTextFile","reader","base64Content","cdata","wait","howLong","FxUpload","AbstractAction","needsUpdate","propagate","repeatContext","defaultAction","phase","whileExpr","delay","iterateExpr","_addUpdateListener","perform","resolveThisEvent","outermostHandler","cause","_finalizePerform","ifExpr","performSafe","handleWhileExpr","contextSequence","dispatchActionPerformed","FxAppend","_dataFromTemplate","_dispatch","parentForm","templ","targetRepeat","_clear","FxDelete","nodesToDelete","getDomNodeIndexString","_deleteNode","_focus","repeatitem","_select","select","FxSetfocus","FxInsert","keepValues","_getOriginSequence","targetSequence","originSequence","originTarget","_cloneOriginSequence","originSequenceClone","_cloneTargetSequence","_getInsertIndex","insertLocationNode","prepend","insertedNodes","seq","changedPaths","_getValue","FxMessage","FxSetvalue","targetElem","connection","_emitToChannel","resolved","submit","channel","FxSend","FxToggle","case","FxDispatch","targetid","prop","FxUpdate","FxRefresh","forceRefresh","FxReplace","replaceNode","with","toReplace","cloned","FxReturn","script","actionOrVar","FxAction","FxConfirm","confirm","dialog","targetDlg","FxShow","FxHide","FxReload","FxReset","FxLoad","attachTo","resolveEvent","awaitEvent","eventListener","waitForEvent","innerHtml","_attachToElement","effectiveContent","_evaluateUrlExpression","FxToggleboolean","FxCall","_callAction","_callFunction","FxSetattribute","FxConstructDone","registerFunction","functionObject","signature","signatureParseResult","paramParts","param","varType","variableType","functionIdentifier","paramPart","functionBody","fun","variablesByName","typedValueFactories","FxUnmodified","override","FxFunction","_resolveLoading","functions","FxFunctionlib"],"mappings":"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"}
|