@panphora/clayjs 1.25.0 → 1.26.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/all.js +1 -1
- package/dist/clay-dom.js +1 -1
- package/dist/clay-events.js +1 -1
- package/dist/clay-internals.js +1 -1
- package/dist/clay-options.js +1 -1
- package/dist/clay-router.js +1 -1
- package/dist/clay-ui.js +1 -1
- package/dist/clay-utils.js +1 -1
- package/dist/clay.js +1 -1
- package/dist/clay.standalone.js +5570 -4173
- package/dist/m/attrs/{save-freeze-MH3AOD56.js → save-freeze-PUYX32AK.js} +1 -1
- package/dist/m/{c-BOMQIQ3V.js → c-2EFMJYGJ.js} +1 -1
- package/dist/m/c-2EPHRF47.js +1 -0
- package/dist/m/{c-JD2VFAYG.js → c-2SUFMUZX.js} +2 -2
- package/dist/m/{c-CITLTVQ4.js → c-2TJCFPX4.js} +1 -1
- package/dist/m/c-33SS5A4Y.js +1 -0
- package/dist/m/{c-V2FPBRO6.js → c-34J5HC7N.js} +1 -1
- package/dist/m/c-3F3AADKG.js +1 -0
- package/dist/m/{c-TCFVG3I4.js → c-3S3647J6.js} +1 -1
- package/dist/m/{c-GY4BREDT.js → c-3S5TNRZA.js} +1 -1
- package/dist/m/{c-GDNZEOOZ.js → c-3WX5FABT.js} +1 -1
- package/dist/m/{c-AI3H6ETU.js → c-3XGLJAS7.js} +2 -2
- package/dist/m/c-42WBOKFM.js +1 -0
- package/dist/m/c-47M4QHCK.js +1 -0
- package/dist/m/{c-UOUUI265.js → c-4M2T676V.js} +1 -1
- package/dist/m/{c-GEAG5XAK.js → c-4TP3UXBT.js} +1 -1
- package/dist/m/{c-IESDKFO6.js → c-5ELELG2F.js} +1 -1
- package/dist/m/{c-X3V4RWMA.js → c-5ZYLTN3Q.js} +1 -1
- package/dist/m/{c-5PZYDWTW.js → c-67TBU56I.js} +1 -1
- package/dist/m/{c-WNOLMHI2.js → c-6BGJAJ67.js} +1 -1
- package/dist/m/{c-4Q6QIODW.js → c-755ZOHOM.js} +1 -1
- package/dist/m/c-7Q4XYDF4.js +1 -0
- package/dist/m/c-7RHOMAMR.js +1 -0
- package/dist/m/c-A5LASUEZ.js +1 -0
- package/dist/m/{c-IL5IVTOG.js → c-ABOBD7F3.js} +1 -1
- package/dist/m/c-AQVQKFKB.js +1 -0
- package/dist/m/{c-QDVG4NAZ.js → c-ARO6CPMA.js} +1 -1
- package/dist/m/{c-ORLPQFNU.js → c-AZM34SPO.js} +1 -1
- package/dist/m/{c-XUZMRQ7O.js → c-BCS3AZQZ.js} +1 -1
- package/dist/m/c-BOS7GONO.js +1 -0
- package/dist/m/{c-SUAC5RSG.js → c-C5UGNOC2.js} +1 -1
- package/dist/m/c-C6DXZIXD.js +1 -0
- package/dist/m/{c-WSTUCBHV.js → c-CPRGR2II.js} +1 -1
- package/dist/m/{c-NICICT4P.js → c-DEYHCYJB.js} +1 -1
- package/dist/m/{c-WGQVSKKC.js → c-DYTBSJBI.js} +1 -1
- package/dist/m/{c-DT7E76Z2.js → c-DZT6W2NG.js} +1 -1
- package/dist/m/{c-O2QZDVZ2.js → c-EEWPNUM2.js} +1 -1
- package/dist/m/{c-MFB74XVN.js → c-EHAR4RJJ.js} +2 -2
- package/dist/m/c-EHJWIGWN.js +1 -0
- package/dist/m/c-EIDZHQHZ.js +1 -0
- package/dist/m/{c-V2V5FKXX.js → c-EIUKME3W.js} +1 -1
- package/dist/m/c-ELXMSEN5.js +1 -0
- package/dist/m/c-EXZOA6XY.js +7 -0
- package/dist/m/{c-FKTALXNV.js → c-EYFMAR3M.js} +1 -1
- package/dist/m/c-FC5RUFPR.js +1 -0
- package/dist/m/{c-FBOO2UY3.js → c-FUN6AKFE.js} +1 -1
- package/dist/m/{c-V4B3RUWB.js → c-GFASNR55.js} +1 -1
- package/dist/m/{c-XMIDHEKF.js → c-GY36NO7C.js} +1 -1
- package/dist/m/{c-UD4VDBGJ.js → c-H3M6UDNV.js} +1 -1
- package/dist/m/{c-SFZRY6RT.js → c-H47C6PJZ.js} +1 -1
- package/dist/m/{c-MUM53J5J.js → c-H4M2T4A6.js} +1 -1
- package/dist/m/{c-U7F66I64.js → c-HYNM5U6B.js} +1 -1
- package/dist/m/c-J2YYLEVM.js +1 -0
- package/dist/m/c-J2ZW4HMR.js +1 -0
- package/dist/m/{c-WCG6AKA7.js → c-JC4RZW4E.js} +1 -1
- package/dist/m/c-K2ZHQMPF.js +1 -0
- package/dist/m/c-KD2ME5UN.js +2 -0
- package/dist/m/{c-Z2OZFX3N.js → c-L6KVXPBO.js} +1 -1
- package/dist/m/{c-GO635CRU.js → c-LAKBBJOU.js} +2 -2
- package/dist/m/{c-4AE2A2LK.js → c-LETPPG2F.js} +1 -1
- package/dist/m/{c-SFYTKRU7.js → c-MKAUC6DB.js} +1 -1
- package/dist/m/{c-WDFQ7PBU.js → c-MMEVDN6D.js} +1 -1
- package/dist/m/{c-LS7IVQVW.js → c-MMV5JULA.js} +1 -1
- package/dist/m/{c-NEQRFC4O.js → c-MVVEIJUU.js} +1 -1
- package/dist/m/{c-SXZYVXD6.js → c-N362HNGO.js} +1 -1
- package/dist/m/{c-7K4SCQB7.js → c-ND3W7D5U.js} +1 -1
- package/dist/m/{c-3E2IK5HU.js → c-NNHNXD6M.js} +1 -1
- package/dist/m/{c-D62HRSZK.js → c-NYJ577NL.js} +1 -1
- package/dist/m/{c-YFO6ZJLQ.js → c-O3DPFZCE.js} +1 -1
- package/dist/m/c-OZOACVUD.js +1 -0
- package/dist/m/{c-MV7TEUTD.js → c-OZVK3TFI.js} +1 -1
- package/dist/m/{c-ZEA3DCG3.js → c-PWILUN4T.js} +1 -1
- package/dist/m/{c-BCWYEG6P.js → c-QA3Q3MDI.js} +1 -1
- package/dist/m/{c-XHZIKRCV.js → c-QKOKMQXA.js} +1 -1
- package/dist/m/{c-TGIMBAWE.js → c-RBWVF4N5.js} +1 -1
- package/dist/m/c-RES2S5Q3.js +1 -0
- package/dist/m/c-RFGELYEU.js +2 -0
- package/dist/m/c-RGFPLQGV.js +1 -0
- package/dist/m/{c-RGAALCDU.js → c-SPOEDIMP.js} +1 -1
- package/dist/m/{c-YX2MC7YL.js → c-SRW5OBCF.js} +1 -1
- package/dist/m/{c-C6YZNU6E.js → c-SYOA4T7V.js} +1 -1
- package/dist/m/c-SYVF6ZMF.js +1 -0
- package/dist/m/{c-NADLYVAH.js → c-TJ5PFOJ2.js} +1 -1
- package/dist/m/{c-KYTVZT4D.js → c-TKV273YU.js} +1 -1
- package/dist/m/c-U35T5NAY.js +1 -0
- package/dist/m/{c-PRZNJUYZ.js → c-UEKJWXCB.js} +2 -2
- package/dist/m/c-UW6MMZ4V.js +1 -0
- package/dist/m/{c-XQTERKQA.js → c-V4DBV5ZV.js} +1 -1
- package/dist/m/c-VGG3UR7I.js +1 -0
- package/dist/m/c-VU4WEWPH.js +4 -0
- package/dist/m/{c-5Q5XBN56.js → c-W7LWCJHD.js} +1 -1
- package/dist/m/c-WHMZCRQD.js +6 -0
- package/dist/m/{c-WMRJKQ2V.js → c-WHQUZM2V.js} +1 -1
- package/dist/m/c-WOJ2RTV4.js +1 -0
- package/dist/m/{c-ZJG6C2WL.js → c-WOWGGNCJ.js} +1 -1
- package/dist/m/{c-ZORVIXUR.js → c-XHD7XJTE.js} +1 -1
- package/dist/m/c-XONFK3WC.js +1 -0
- package/dist/m/{c-HGG7M2S3.js → c-Y3J5LDKB.js} +1 -1
- package/dist/m/{c-JB5YU57S.js → c-Y3MPVURA.js} +1 -1
- package/dist/m/c-Y6HH7LTM.js +1 -0
- package/dist/m/{c-52OC3OH3.js → c-YRDKVEGR.js} +1 -1
- package/dist/m/c-YYIN4NAF.js +30 -0
- package/dist/m/{c-WVCT3ITX.js → c-YZGWSCMT.js} +1 -1
- package/dist/m/c-ZFAPQQIB.js +1 -0
- package/dist/m/core/{admin-attrs-ZI6K6UGM.js → admin-attrs-43JBA6JB.js} +1 -1
- package/dist/m/core/{autosave-BSM2ABJL.js → autosave-HD7Y7UNV.js} +1 -1
- package/dist/m/core/{conflict-notice-7EQLDYPA.js → conflict-notice-UNDOD4BL.js} +1 -1
- package/dist/m/core/{persist-2SZO3PCE.js → persist-MX3VYVBN.js} +1 -1
- package/dist/m/core/{save-K6Q47J2X.js → save-JZ7R4ET2.js} +1 -1
- package/dist/m/core/{save-core-U3Z44XBO.js → save-core-I4N6S4ED.js} +1 -1
- package/dist/m/core/site-edits-C22O53GS.js +1 -0
- package/dist/m/core/{snapshot-PWCHYFL6.js → snapshot-N5MKDGNI.js} +1 -1
- package/dist/m/core/{unsaved-warning-2WRZLJH5.js → unsaved-warning-BP6ZY3PG.js} +1 -1
- package/dist/m/internals/{index-FSLC4M7J.js → index-3LAVREAU.js} +1 -1
- package/dist/m/loader-DCKCZKY6.js +1 -0
- package/dist/m/manifest-7954CBE3.js +1 -0
- package/dist/m/manifest-edit-93AA79D7.js +1 -0
- package/dist/m/manifest.json +1240 -1179
- package/dist/m/page/{editor-PKSPJ2XJ.js → editor-UF3CIA6V.js} +5 -5
- package/dist/m/plugins/{ai-edit-3LG6MGS3.js → ai-edit-WDV2GLDU.js} +2 -2
- package/dist/m/plugins/{cms-T2HLI7JG.js → cms-KG6TCTR3.js} +9 -9
- package/dist/m/plugins/{derive-7DR5TUDH.js → derive-R4USHZ7P.js} +1 -1
- package/dist/m/plugins/{indicator-CTKX4EY7.js → indicator-OLPZ4WFI.js} +1 -1
- package/dist/m/plugins/{live-IFLL6YN5.js → live-DF5YS5AH.js} +1 -1
- package/dist/m/plugins/{menu-YJZ3JWBC.js → menu-ESEFQARM.js} +1 -1
- package/dist/m/plugins/page-GZSU77JS.js +2 -0
- package/dist/m/plugins/{page-view-NMCCU6MF.js → page-view-7MM3FEAR.js} +1 -1
- package/dist/m/plugins/{people-6WIWCZEG.js → people-EBWE337I.js} +1 -1
- package/dist/m/plugins/quickcrop-UHURKA2F.js +26 -0
- package/dist/m/plugins/richclay-MXH2GFAZ.js +549 -0
- package/dist/m/plugins/sortable-BAG3MSWS.js +1 -0
- package/dist/m/plugins/{source-7LSGOV46.js → source-OYHDXKTB.js} +1 -1
- package/dist/m/plugins/undo-KLHAGV75.js +1 -0
- package/dist/m/plugins/{upgrade-MMPZUCDM.js → upgrade-SZQJYEQQ.js} +1 -1
- package/dist/m/plugins/{visitor-drafts-V5YB7XDH.js → visitor-drafts-ZE6PCAFP.js} +2 -2
- package/dist/m/plugins/{visitor-menu-QDV2MYJN.js → visitor-menu-5XY57JQA.js} +1 -1
- package/dist/m/plugins/{wire-3YGUO3GE.js → wire-S5ATC4QI.js} +1 -1
- package/dist/m/reader-core-AHOAP5DH.js +77 -0
- package/dist/m/sync/{live-sync-XMXXZS3G.js → live-sync-RZQSDMZW.js} +1 -1
- package/dist/m/ui/index-G7ZJXNMG.js +1 -0
- package/dist/m/vendor/{sap-core.vendor-JANUQULT.js → sap-core.vendor-5TWOJYVM.js} +4 -4
- package/dist/offline-manifest.json +780 -750
- package/dist/server/core.cjs +4245 -2614
- package/dist/server/markdown.cjs +1 -0
- package/dist/server/markdown.mjs +7 -0
- package/docs/guide.md +26 -37
- package/entries/clay-data.js +1 -1
- package/entries/sap.js +5 -5
- package/package.json +6 -2
- package/packed-contract.json +3 -0
- package/src/attrs/save-freeze.js +1 -1
- package/src/core/admin-contenteditable.js +1 -1
- package/src/core/admin-inputs.js +1 -1
- package/src/core/admin-onclick.js +1 -1
- package/src/core/admin-resources.js +5 -2
- package/src/core/conflict-notice-ui.js +59 -34
- package/src/core/save.js +9 -9
- package/src/core/site-edits.js +1 -1
- package/src/core/snapshot.js +56 -43
- package/src/core/stale-host-notice.js +20 -7
- package/src/loader-logic.js +0 -13
- package/src/page/boot-pack.js +1 -0
- package/src/page/editor.js +10 -4
- package/src/page/history-intent.js +111 -4
- package/src/page/import-markdown.js +22 -8
- package/src/page/save-projection.js +1 -1
- package/src/page/ybind/bridge.js +14 -7
- package/src/page/ybind/moves.js +437 -3
- package/src/page/ybind/origins.js +1 -1
- package/src/page/ybind/recovery.js +1 -1
- package/src/plugins/page.js +48 -4
- package/src/plugins/quickcrop.js +128 -69
- package/src/plugins/richclay.js +136 -0
- package/src/plugins/sortable.js +25 -9
- package/src/plugins/undo.js +169 -7
- package/src/recovery/undo.js +14 -7
- package/src/server/markdown/index.js +23 -0
- package/src/sync/conflicts.js +3 -1
- package/src/sync/data-guard-notice.js +137 -18
- package/src/sync/live-sync.js +24 -0
- package/src/ui/bevel-controls.js +4 -1
- package/src/ui/dialogs.js +11 -7
- package/src/ui/modal.js +9 -7
- package/src/ui/toast.js +67 -32
- package/src/ui/vendor-skin.js +9 -4
- package/src/vendor/hyper-html-api-data.vendor.js +1 -1
- package/src/vendor/hyper-html-api-upgrade.vendor.js +2 -2
- package/src/vendor/hyper-undo.vendor.js +1 -1
- package/src/vendor/hypercms.vendor.js +7 -7
- package/src/vendor/richclay.vendor.js +16 -16
- package/src/vendor/sap-core.vendor.js +4 -4
- package/tool-generation/context.md +69 -0
- package/tool-generation/system.md +1 -1
- package/dist/m/c-277QP5ET.js +0 -1
- package/dist/m/c-5SZ6KFR5.js +0 -1
- package/dist/m/c-CU33V6RW.js +0 -4
- package/dist/m/c-CVSWLX3X.js +0 -1
- package/dist/m/c-DXPOFLEJ.js +0 -1
- package/dist/m/c-EODTTNVA.js +0 -1
- package/dist/m/c-ESK4S67I.js +0 -1
- package/dist/m/c-FDWR3FL7.js +0 -1
- package/dist/m/c-FJDTDGDA.js +0 -1
- package/dist/m/c-FYDKYW6E.js +0 -1
- package/dist/m/c-HKSLOVU4.js +0 -1
- package/dist/m/c-IJHF4IO6.js +0 -1
- package/dist/m/c-IUL7PU4P.js +0 -1
- package/dist/m/c-JWW6BHWD.js +0 -6
- package/dist/m/c-K4M76VPM.js +0 -7
- package/dist/m/c-M7ITYKMF.js +0 -1
- package/dist/m/c-MR75YPRT.js +0 -1
- package/dist/m/c-NFQFV7OP.js +0 -2
- package/dist/m/c-NHXOBD6A.js +0 -1
- package/dist/m/c-NVU3DORS.js +0 -1
- package/dist/m/c-PNZIJFG7.js +0 -1
- package/dist/m/c-QWB53KRW.js +0 -1
- package/dist/m/c-RHPHMTF2.js +0 -2
- package/dist/m/c-RWJ3OSCP.js +0 -1
- package/dist/m/c-SEVOS4UE.js +0 -1
- package/dist/m/c-SGG6MUXW.js +0 -1
- package/dist/m/c-SXNSSHPP.js +0 -1
- package/dist/m/c-TFLRT5JX.js +0 -1
- package/dist/m/c-TLQINES7.js +0 -30
- package/dist/m/c-U65PREMC.js +0 -1
- package/dist/m/c-V5L6HWVL.js +0 -1
- package/dist/m/c-VMXCX52Q.js +0 -1
- package/dist/m/c-YYGUHSZR.js +0 -1
- package/dist/m/core/site-edits-CFMF6GHD.js +0 -1
- package/dist/m/loader-RC54UV7H.js +0 -1
- package/dist/m/manifest-3B84C829.js +0 -1
- package/dist/m/manifest-edit-1CB79AD4.js +0 -1
- package/dist/m/plugins/page-GTDPYGE4.js +0 -2
- package/dist/m/plugins/quickcrop-X5MRIBAP.js +0 -26
- package/dist/m/plugins/richclay-L3BZMX4I.js +0 -549
- package/dist/m/plugins/sortable-365SRRL3.js +0 -1
- package/dist/m/plugins/undo-UES4KS7B.js +0 -1
- package/dist/m/reader-core-VR7EL4WV.js +0 -77
- package/dist/m/ui/index-MGTWOW2C.js +0 -1
- /package/dist/m/{c-QTTJYJMA.js → c-FILLTJA7.js} +0 -0
- /package/dist/m/plugins/{quickcrop-X5MRIBAP.js.LEGAL.txt → quickcrop-UHURKA2F.js.LEGAL.txt} +0 -0
- /package/dist/m/plugins/{richclay-L3BZMX4I.js.LEGAL.txt → richclay-MXH2GFAZ.js.LEGAL.txt} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import"../c-VHNSBD2M.js";var
|
|
1
|
+
import"../c-VHNSBD2M.js";var qr=(()=>{var Se=Object.defineProperty,Jt=Object.getOwnPropertyDescriptor,Kt=Object.getOwnPropertyNames,Qt=Object.prototype.hasOwnProperty,Zt=(e,t)=>{for(var n in t)Se(e,n,{get:t[n],enumerable:!0})},en=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Kt(t))!Qt.call(e,a)&&a!==n&&Se(e,a,{get:()=>t[a],enumerable:!(r=Jt(t,a))||r.enumerable});return e},tn=e=>en(Se({},"__esModule",{value:!0}),e),Ve={};Zt(Ve,{FULL_SAPJS:()=>pe,Sap:()=>me,default:()=>Ur,mount:()=>Fr,mountAll:()=>Vt,needsFullSapjs:()=>Ye,runtime:()=>Ir});function nn(e){let t=!1,n=new Set,r=[];function a(c){c&&(r.push(c),r.length>8&&r.shift())}function l(c,p,A){if(a(p),A){if(c._broken||c.halted)c._changes=!1;else if(c._changes!==!1){let T=c._changes||(c._changes=[]);for(let _ of A)T.push(_)}if(c._inPass)return}if(c._broken){if(p==="mutation")return;m(c)}n.has(c)||(c._trigger=p),n.add(c),!t&&(t=!0,queueMicrotask(o))}function o(){t=!1;for(let c of[...n])n.delete(c)&&g(c,!1,c._trigger)}function g(c,p,A){if(!(c._broken||c.halted)){if(c._passes=(c._passes||0)+1,c._passes>50){c._broken=!0,c._breakerRing=r.slice(),e(c,{breaker:!0});return}c._resetArmed||(c._resetArmed=!0,setTimeout(()=>{c._passes=0,c._resetArmed=!1},0)),e(c,p?{full:!0,cause:A}:{cause:A})}}function b(c,p){a(p),c._broken&&m(c),g(c,!0,p)}function m(c){c._broken=!1,c._passes=0}function d(){let c=t;for(;t;)o();return c}return{schedule:l,runNow:b,flushNow:d}}var rn={E01:{slug:"foreign-dialect",behavior:"HALT"},E02:{slug:"moustaches-in-text",behavior:"HALT"},E04:{slug:"duplicate-declaration",behavior:"HALT"},E05:{slug:"reserved-name",behavior:"HALT"},E06:{slug:"global-html-name",behavior:"HALT"},E07:{slug:"calc-cycle",behavior:"ERR"},E08:{slug:"expression-syntax",behavior:"HALT"},E10:{slug:"orphan-item",behavior:"HALT"},E12:{slug:"unknown-state-key",behavior:"ERR"},E15:{slug:"write-to-undeclared-key",behavior:"ERR"},E16:{slug:"write-to-computed-field",behavior:"ERR"},E17:{slug:"unresolvable-action-target",behavior:"HALT"},E18:{slug:"paint-on-form-control",behavior:"HALT"},E20:{slug:"bind-on-non-control",behavior:"HALT"},E22:{slug:"format-type",behavior:"ERR"},E24:{slug:"runtime-expression-throw",behavior:"ERR"},E26:{slug:"circuit-breaker",behavior:"HALT"},E30:{slug:"attr-on-bound-control",behavior:"HALT"},E31:{slug:"password-without-transient",behavior:"HALT"},E32:{slug:"file-bind",behavior:"HALT"},E33:{slug:"dialog-state-open",behavior:"HALT"},E34:{slug:"transient-persist-collision",behavior:"HALT"},E35:{slug:"presence-state-misuse",behavior:"HALT"},E40:{slug:"each-not-array",behavior:"ERR"},E41:{slug:"each-bad-key",behavior:"ERR"},E42:{slug:"each-template",behavior:"ERR"},E43:{slug:"bind-in-each-row",behavior:"ERR"},E50:{slug:"needs-full-sapjs",behavior:"HALT"},E52:{slug:"plugin-not-loaded",behavior:"ERR"},W03:{slug:"unknown-colon-attribute",behavior:"WARN"},W04:{slug:"expression-in-when",behavior:"WARN"},W30:{slug:"nonzero-mount-writes",behavior:"WARN"},W31:{slug:"detail-dialog-saved-open",behavior:"WARN"}},$e=["disabled","readonly","required","checked","selected","multiple","open","inert","autofocus","novalidate","hidden"],Je=new Set(["title","style","hidden","lang","dir","translate","class","id","nonce","autofocus","tabindex","contenteditable","spellcheck","draggable","role","slot","part","name","value","type","itemscope","itemtype","itemid","itemprop","itemref"]),an=new Set(["sap","scope","items","item","template","bind","calc","text","show","attr","set","trigger","move","sort","detail","each","effect","invalid","confirm","transient","default","persist","sortable","editmode"]);function on(e){if(!e||e.nodeType!==1)return"?";if(e.id)return`${e.tagName.toLowerCase()}#${e.id}`;let t=[],n=e,r=0;for(;n&&n.nodeType===1&&r<4;){let a=n.tagName.toLowerCase();if(n.hasAttribute("sap"))a+="[sap]";else if(n.parentElement){let l=0,o=0;for(let g=n.parentElement.firstElementChild;g;g=g.nextElementSibling)g.tagName===n.tagName&&(l++,g===n&&(o=l));l>1&&(a+=`:nth-of-type(${o})`)}if(t.unshift(a),n.hasAttribute("sap"))break;n=n.parentElement,r++}return t.join(" > ")}var ln=class{constructor(e){this.appName=e,this.errors=[],this.warnings=[],this.halted=!1,this.haltReason=null}block(e,t,n={}){let r=(rn[e]||{}).slug||"error",a={code:e,slug:r,el:on(t),attr:n.attr||null,expr:n.expr||null,key:n.key||null,problem:n.problem||"",didYouMean:n.didYouMean||null,fix:n.fix||null,phase:n.phase||"runtime"},l=[`
|
|
2
2
|
`+(e[0]==="W"?"sap \u26A0 ":"sap \u2717 ")+e+" "+r];return l.push(` at ${a.el}${a.attr?` \u2014 ${a.attr}="${a.expr??""}"`:""}`),a.problem&&l.push(` problem: ${a.problem}`),a.didYouMean&&l.push(` did you mean: ${a.didYouMean}`),a.fix&&l.push(` fix: ${a.fix}`),(e[0]==="W"?console.warn:console.error)(l.join(`
|
|
3
|
-
`)),a}error(e,t,n={}){let r=this.block(e,t,n);return this.errors.push(r),r}warn(e,t,n={}){let r=this.block(e,t,n);return this.warnings.push(r),r}};function G(e,t){e&&e.getAttribute("sap-error")!==t&&e.setAttribute("sap-error",t)}function Ne(e){e&&e.hasAttribute("sap-error")&&e.removeAttribute("sap-error")}function Ke(e,t){let n=null,r=3;for(let a of t){let l=
|
|
3
|
+
`)),a}error(e,t,n={}){let r=this.block(e,t,n);return this.errors.push(r),r}warn(e,t,n={}){let r=this.block(e,t,n);return this.warnings.push(r),r}};function G(e,t){e&&e.getAttribute("sap-error")!==t&&e.setAttribute("sap-error",t)}function Ne(e){e&&e.hasAttribute("sap-error")&&e.removeAttribute("sap-error")}function Ke(e,t){let n=null,r=3;for(let a of t){let l=sn(e,a);l<r&&(r=l,n=a)}return n}function sn(e,t){let n=e.length,r=t.length,a=Array.from({length:n+1},(l,o)=>[o,...new Array(r).fill(0)]);for(let l=0;l<=r;l++)a[0][l]=l;for(let l=1;l<=n;l++)for(let o=1;o<=r;o++)a[l][o]=Math.min(a[l-1][o]+1,a[l][o-1]+1,a[l-1][o-1]+(e[l-1]===t[o-1]?0:1));return a[n][r]}var Qe=["sap","item","scope","items","detail","each"],ae=new Map,oe=new Map,he="";function un(e){for(let[t,n]of Object.entries(e.boundaries||{}))Te(t)&&ae.set(t,{name:t,plugin:e.name,opaque:!!n.opaque,on:n.on||null,installed:!1});for(let[t,n]of Object.entries(e.directives||{}))Te(t)&&oe.set(t,{name:t,plugin:e.name,key:n.key,impure:!!n.impure,parse:null});he=[...ae.values()].map(t=>`${t.on||""}[${t.name}]`).join(",")}function Te(e,t){return!Qe.includes(e)&&(Ze(e)||t)===t}function cn(e,t){for(let n of ae.values())n.plugin===e&&(n.installed=!!t);for(let n of oe.values())n.plugin===e&&(n.parse=t&&t[n.name]||null)}function Ze(e){return(ae.get(e)||oe.get(e)||{}).plugin}function fn(e){return oe.get(e)}function et(e){return!!Ze(e)||oe.has(e.slice(0,e.indexOf(":")+1))}function tt(e){if(!he)return null;for(let t of ae.values())if(!(t.on&&e.localName!==t.on||!e.hasAttribute(t.name)))return Qe.some(n=>e.hasAttribute(n))?null:t;return null}function ie(e){let t=tt(e);return!!t&&(t.opaque||!t.installed)}function _e(e){if(!he)return null;for(let t=e.parentElement;t;t=t.parentElement)if(t=t.closest(he),!t||ie(t))return t;return null}function Le(e){return ie(e)?e:_e(e)}function X(e,t){if(!(t(e)===!1||ie(e)))for(let n=e.firstElementChild;n;n=n.nextElementSibling)X(n,t)}var dn=new Set($e),pn={readonly:"readOnly",novalidate:"noValidate"},mn=0,nt=new WeakMap;function hn(e,t="sap"){let n=e.getAttribute("data-id");if(n)return n;if(e.id)return e.id;let r=nt.get(e);return r||(r=`${t}-${(mn++).toString(36)}`,nt.set(e,r)),r}function bn(e){let t=[];for(let n=e.firstElementChild;n;n=n.nextElementSibling)n.hasAttribute("item")&&!n.hasAttribute("template")&&!n.hasAttribute("cms-template")&&t.push(n);return t}function rt(e,t){if(!e||!t)return null;let n=[...e.querySelectorAll(`template[items="${t}"]`)].find(a=>a.closest("[sap]")===e),r=n&&n.content.firstElementChild;return r&&r.hasAttribute("item")?r:null}function gn(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(t.hasAttribute("item")&&t.hasAttribute("template"))return t;return rt(e.closest("[sap]"),e.getAttribute("items"))}function at(e){let t=[];if(!e)return t;for(let n of e.trim().split(/\s+/)){if(!n)continue;let r=n,a,l=r.indexOf("=");l>=0&&(a=r.slice(l+1),r=r.slice(0,l));let o=r.split(":"),g=o[0],b="string",m=!1;for(let p of o.slice(1))p==="num"?b="num":p==="bool"?b="bool":p==="presence"?b="presence":p==="transient"&&(m=!0);let d=g,c=d.startsWith("data-")&&d.length>5?d.slice(5).replace(/-([a-z])/g,(p,A)=>A.toUpperCase()):d;t.push({name:c,attr:d,type:b,default:a,transient:m})}return t}function Ce(e,t){if(t==="num"){if(e==null||e==="")return 0;let n=Number(e);return Number.isNaN(n)?0:n}return t==="bool"?e==="true"||e===""||e==="1":e??""}function yn(e,t){return t==="bool"?e?"true":"false":e==null?"":String(e)}function ot(e,t){return dn.has(t)&&typeof e[pn[t]||t]=="boolean"}function it(e,t){return t.type==="presence"||t.type!=="num"&&ot(e,t.attr||t.name)}function lt(e){return e.default!=null?e.default:e.type==="num"?"0":e.type==="bool"?"false":""}function wn(e,t){let n=t.attr||t.name,r=e._sapTransient||(e._sapTransient={});if(!(t.name in r)){let a=e.getAttribute(n);a==null&&(a=lt(t)),r[t.name]=Ce(a,t.type)}return e.hasAttribute(n)&&e.removeAttribute(n),r[t.name]}function O(e){if(typeof e=="number")return e;if(e==null||e==="")return 0;let t=Number(typeof e=="string"?e.replace(/[$,%\s]/g,""):e);return Number.isNaN(t)?0:t}function be(e,t){return Array.isArray(e)?t==null?e:e.map(n=>typeof t=="function"?t(n):n?.[t]):[]}function st(e,t){return be(e,t).reduce((n,r)=>n+O(r),0)}function vn(e,t){return Array.isArray(e)?t==null?e.length:e.reduce((n,r)=>n+(t(r)?1:0),0):0}function En(e,t){let n=be(e,t);return n.length?st(e,t)/n.length:0}function An(e,t){let n=be(e,t).filter(r=>r!=null&&r!=="");return n.length?n.every(r=>typeof r=="number"||!Number.isNaN(Number(r)))?Math.min(...n.map(Number)):n.reduce((r,a)=>String(r)<=String(a)?r:a):0}function kn(e,t){let n=be(e,t).filter(r=>r!=null&&r!=="");return n.length?n.every(r=>typeof r=="number"||!Number.isNaN(Number(r)))?Math.max(...n.map(Number)):n.reduce((r,a)=>String(r)>=String(a)?r:a):0}function xn(e,t,n){let r=O(e)===1?t:n??t+"s";return`${e} ${r}`}function Sn(e,t){let n=new Date(e),r=new Date(t);return Number.isNaN(+n)||Number.isNaN(+r)?0:Math.round((r-n)/864e5)}function F(e){return typeof e=="number"?e:Number(e)}function ut(e,t){let n=F(e),r=Math.abs(n).toLocaleString("en-US",{minimumFractionDigits:t,maximumFractionDigits:t});return(n<0&&/[1-9]/.test(r)?"-$":"$")+r}var V={usd:e=>ut(e,0),usd2:e=>ut(e,2),pct:e=>Math.round(F(e))+"%",pct1:e=>F(e).toFixed(1)+"%",int:e=>Math.round(F(e)).toLocaleString("en-US"),num:e=>F(e).toLocaleString("en-US"),num2:e=>F(e).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2}),compact:e=>F(e).toLocaleString("en-US",{notation:"compact"}),date:e=>{let t=new Date(e);return Number.isNaN(+t)?String(e):t.toLocaleDateString("en-US")},clock:e=>{let t=F(e),n=Math.floor(t/100),r=n%10,a=Math.floor(n/10)%60;return`${Math.floor(n/600)}:${String(a).padStart(2,"0")}.${r}`}},$n=new Set(["usd","usd2","pct","pct1","int","num","num2","compact","clock"]);function Nn(e,t){if(!e)return t==null?"":String(t);let n=V[e];if(typeof n!="function"){let r=new Error(`unknown format "${e}"`);throw r.sapCode="E22",r}if($n.has(e)){let r=typeof t=="number"?t:Number(t);if(!Number.isFinite(r)){let a=new Error(`format "${e}" received ${typeof t=="string"?`"${t}"`:t}`);throw a.sapCode="E22",a}}return n(t)}var je=["state","item","el","root","fmt","num","sum","count","avg","min","max","plural","days"],le=new Map,Pe=[],ct=[],se=null,ft=null,Tn=/'(?:\\.|[^'\\])*'|"(?:\\.|[^"\\])*"|[`}](?:\\.|[^`\\])*?(?:`|\$\{)|[{}]/.source;function _n(e,t){Pe=Object.keys(e),ct=Object.values(e);let n=[...t.keys()].filter(r=>Re(r)&&!(r in e));ft=t,se=n.length?new RegExp(`${Tn}|\\.{3}|(${n.join("|")})\\s*\\(|[\\w$.]+`,"g"):null,le.clear()}function dt(e){return e in globalThis&&globalThis[e]?.nodeType!==1}function Re(e){return/^[a-z_]\w*$/i.test(e)&&!je.includes(e)&&!dt(e)}function Ln(e){try{return Re(e)&&!!new Function(e,'"use strict"')}catch{return!1}}function ge(e){let t=[],n;if(se)for(se.lastIndex=0;n=se.exec(e);){let[r,a]=n;if(a&&Re(a))return ft.get(a);r[0]==="}"&&!t.pop()?.[1]?se.lastIndex=n.index+1:r.endsWith("{")&&t.push(r)}return null}var Cn=/\bstate\.([a-z][a-z0-9_]*)/g,jn=/\bitem\.([a-z][a-z0-9_]*)/g;function Pn(e){let t=n=>new Set([...(e||"").matchAll(n)].map(r=>r[1]));return{state:t(Cn),item:t(jn)}}function pt(e,t=!1){let n=(t?"!":"")+e,r=le.get(n);if(r)return r;le.size>512&&le.clear();try{let a=t?`"use strict";
|
|
4
4
|
${e}`:`"use strict"; return (${e});`;r={fn:Pe.length?new Function(...Pe,`return function(${je}){${a}
|
|
5
|
-
}`)(...
|
|
5
|
+
}`)(...ct):new Function(...je,a),src:e,statement:t,deps:Pn(e),error:null,waits:ge(e)}}catch(a){r={fn:null,src:e,statement:t,deps:{state:new Set,item:new Set},error:a,waits:null}}return r.waits||le.set(n,r),r}function Rn(e,t){return Me(e,t.state,t.item,t.el??null,t.root)}function Me(e,t,n,r,a){if(e.error)throw e.error;return e.fn(t,n,r,a,V,O,st,vn,En,An,kn,xn,Sn)}var ue={},U=null,mt=!0,ye=!1;function ht(){ue={}}function Mn(e){let t=ye;return U?Oe(U.takeRecords()):mt&&Dn(),ye=!!U&&e.getRootNode()===document,t}function On(e){ye=e}function Wn(){U&&Oe(U.takeRecords())}function Dn(){if(typeof document>"u"||typeof MutationObserver!="function"){mt=!1;return}U=new MutationObserver(Oe),U.observe(document,{attributes:!0,childList:!0,subtree:!0})}function Oe(e){for(let t of e)if(t.type==="attributes")bt(t.target);else if(t.addedNodes.length&&!(t.target.nodeType===1&&Le(t.target)))for(let n of t.addedNodes)n.nodeType===1&&X(n,bt)}function bt(e){e._sapPlan&&(e._sapPlan=null)}function ce(e){if(!ye)return gt(e);let t=e._sapPlan;return t&&t.gen===ue?t:e._sapPlan=gt(e)}function W(e,t,n){let r=pt(t,n);return r.waits&&(e.waits=r.waits),r}function gt(e){let t={gen:ue,inert:e.tagName==="TEMPLATE",template:!1,cms:!1,item:!1,scope:!1,items:!1,detail:!1,each:!1,boundary:null,bind:null,transient:!1,decls:null,calcs:null,paints:null,effects:null,invalids:null,waits:null,wants:null,ext:!1,impure:!1};for(let r of e.attributes){let a=r.name,l=r.value,o=a.indexOf(":");if(o<0){switch(a){case"sap-ignore":t.inert=!0;break;case"cms-template":t.inert=!0,t.cms=!0;break;case"template":t.inert=!0,t.template=!0;break;case"item":t.item=!0;break;case"scope":t.scope=!0;break;case"items":t.items=!0;break;case"detail":t.detail=!0,t.waits=ge(l)||t.waits;break;case"each":t.each=!0,t.waits=ge(l)||ge(e.getAttribute("key"))||t.waits;break;case"bind":t.bind=l;break;case"transient":t.transient=!0;break;case"state":t.decls=at(l);break;case"text":(t.paints||(t.paints=[])).push({kind:"text",fmt:null,entry:W(t,l)});break;case"show":(t.paints||(t.paints=[])).push({kind:"show",entry:W(t,l)});break;case"effect":(t.effects||(t.effects=[])).push({entry:W(t,l,!0)});break;case"invalid":(t.invalids||(t.invalids=[])).push({entry:W(t,l)});break;default:yt(t,a,"",l)}continue}let g=a.slice(0,o),b=a.slice(o+1);switch(g){case"calc":(t.calcs||(t.calcs=[])).push({name:b,entry:W(t,l)});break;case"text":(t.paints||(t.paints=[])).push({kind:"text",fmt:b,entry:W(t,l)});break;case"attr":(t.paints||(t.paints=[])).push({kind:"attr",arg:b,entry:W(t,l)});break;case"class":(t.paints||(t.paints=[])).push({kind:"class",arg:b,entry:W(t,l)});break;case"css":(t.paints||(t.paints=[])).push({kind:"css",arg:b,entry:W(t,l)});break;case"show-when":case"option":(t.paints||(t.paints=[])).push({kind:"when",match:"show",field:b,values:l.split("|")});break;case"hide-when":(t.paints||(t.paints=[])).push({kind:"when",match:"hide",field:b,values:l.split("|")});break;case"option-not":(t.paints||(t.paints=[])).push({kind:"when",match:"show-not",field:b,values:l.split("|")});break;default:yt(t,g+":",b,l)}}let n=tt(e);return t.boundary=t.scope?"scope":t.items?"items":t.detail?"detail":t.each?"each":n?n.name:null,n&&!n.installed&&(t.wants||=[]).push(n.plugin),Bn(t)?zn():t}function yt(e,t,n,r){let a=fn(t);if(!a)return;if(!a.parse){(e.wants||=[]).push(a.plugin);return}let l=a.parse(n,r);l!==void 0&&((e[a.key]||(e[a.key]=[])).push(l),e.ext=!0,a.impure&&(e.impure=!0),l&&l.entry&&l.entry.waits&&(e.waits=l.entry.waits))}var we=null;function zn(){return(!we||we.gen!==ue)&&(we=Object.freeze({gen:ue,inert:!1,template:!1,cms:!1,item:!1,scope:!1,items:!1,detail:!1,each:!1,boundary:null,bind:null,transient:!1,decls:null,calcs:null,paints:null,effects:null,invalids:null,waits:null,wants:null,ext:!1,impure:!1})),we}function Bn(e){return!e.inert&&!e.item&&e.boundary===null&&e.bind===null&&!e.transient&&!e.decls&&!e.calcs&&!e.paints&&!e.effects&&!e.invalids&&!e.wants&&!e.ext}var J=new WeakMap,K=new WeakMap,Q=null,I=!1;function Fn(){J=new WeakMap,K=new WeakMap}function wt(e){for(let t of e){let n=t.target.nodeType===1?t.target:t.target.parentElement;for(let a=n;a;a=a.parentElement)K.delete(a);if(t.type==="attributes"){J.delete(t.target);continue}for(let a=n;a;a=a.parentElement)J.delete(a);let r=t.addedNodes;if(!(!r||!r.length||n&&Le(n)))for(let a of r)a.nodeType===1&&X(a,In)}}function In(e){J.delete(e),K.delete(e)}function Hn(){return I}function Un(e){return I?K.get(e):void 0}function qn(e,t){I&&K.set(e,t)}function vt(e){K.delete(e)}function Yn(e){let t=I;return!Q&&typeof MutationObserver=="function"&&(Q=new MutationObserver(wt),Q.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})),Q&&wt(Q.takeRecords()),I=!!Q&&e.getRootNode()===document,t}function Gn(e){I=e}function Et(e){let t=J.get(e);return t||J.set(e,t={attrs:new Map,hasText:!1,text:""}),t}function Xn(e,t){if(!I)return e.getAttribute(t);let n=Et(e);return n.attrs.has(t)||n.attrs.set(t,e.getAttribute(t)),n.attrs.get(t)}function Vn(e){if(!I)return e.textContent;let t=Et(e);return t.hasText||(t.text=e.textContent,t.hasText=!0),t.text}function At(e){return(e.getAttribute("type")||"text").toLowerCase()}function We(e){let t=e.tagName;if(t==="INPUT"){let n=At(e);n==="checkbox"||n==="radio"?e.checked?e.setAttribute("checked",""):e.removeAttribute("checked"):e.setAttribute("value",e.value);return}if(t==="TEXTAREA"){e.setAttribute("data-value",e.value);return}if(t==="SELECT"){let n=e.options;for(let r=0;r<n.length;r++)n[r].selected?n[r].setAttribute("selected",""):n[r].removeAttribute("selected")}}function Jn(e,t=e){let n=e.tagName;if(n==="INPUT"){let r=At(e);r==="checkbox"||r==="radio"?t.checked?e.hasAttribute("checked")||e.setAttribute("checked",""):e.removeAttribute("checked"):t.value!==(e.getAttribute("value")??"")&&e.setAttribute("value",t.value);return}if(n==="TEXTAREA"){let r=t.value.startsWith(`
|
|
6
6
|
`)?`
|
|
7
|
-
`+t.value:t.value;e.textContent!==r&&(e.textContent=r),e.removeAttribute("data-value");return}if(n==="SELECT"){let r=e.options,a=t.options;for(let l=0;l<r.length;l++)a[l]&&a[l].selected?r[l].hasAttribute("selected")||r[l].setAttribute("selected",""):r[l].removeAttribute("selected")}}function At(e){e.tagName!=="TEXTAREA"||!e.hasAttribute("data-value")||e!==e.ownerDocument.activeElement&&(e.textContent=e.getAttribute("data-value"),e.removeAttribute("data-value"))}function j(e){if(typeof window>"u")return null;let t=window.clay,n=window.hyperclay;return e==="consent"?t?.confirm||n?.consent||null:t?.[e]||n?.[e]||null}function Jn(){let e=j("visitorDrafts");return!!(e&&typeof e.restored=="function"&&e.restored()?.restored)}var kt=["clay:mutation-ready","hyperclay:mutation-ready"],Kn=["clay:sync-applied","hyperclay:livesync-applied"],Qn=["clay:ready","hyperclay:ready"],Zn=["clay:route"],er=["clay:modechange"];function ve(e,t,n){let r=null,a=l=>{r!==null&&r!==l.type||(r=l.type,queueMicrotask(()=>{r=null}),n(l))};for(let l of t)e.addEventListener(l,a);return()=>{for(let l of t)e.removeEventListener(l,a)}}function tr(e){let t=typeof window<"u"&&window.clay&&window.clay.ready;t&&typeof t.then=="function"?t.then(()=>e(),()=>e()):e()}function xt(e){let t=j("region");return!t||typeof t.resolveRegionPolicy!="function"||typeof t.skipForPolicy!="function"?!1:t.skipForPolicy(t.resolveRegionPolicy(e),void 0,["no-save","freeze"])}function St(){return typeof window>"u"?null:window.clay?.modeLifecycle||null}function Ee(e,{transient:t=!1}={}){if(t)return!0;let n=St();return typeof n?.canWrite!="function"||j("region")?.resolveRegionPolicy?.(e)?.persist==="none"?!0:n.canWrite()}function nr(e,t){if(typeof t!="function")throw new Error("Sap.batch(label, fn): fn must be a function");let n=j("undo");n&&n.flush&&n.flush();let r=t();if(r&&typeof r.then=="function")throw new Error("Sap.batch fn must be synchronous (it returned a promise)");return n&&n.commitCaptured&&n.commitCaptured(e),r}function rr(e){if(typeof window>"u"||typeof document>"u")return;let t=()=>{let p=!1;for(let A of e.apps())A.root.isConnected?e.runNow(A,"platform"):p=!0;p&&e.pruneDisconnected(),e.remountIfPresent()},n=j("derived"),r=n&&typeof n.register=="function"?n.register(t):null,a=typeof r=="function"?null:ve(document,Kn,t),l=ve(document,Zn,t),o=null,g=!1,b=()=>{let p=o;o=null,p&&(p[2](),p[3]())},m=()=>{if(g)return!1;let p=j("undo"),A=St()?.state?.generation;if(o&&o[0]===p&&o[1]===A)return!0;if(b(),!p||typeof p.on!="function")return!1;let T=p.on("undo",t);if(typeof T!="function")return!1;let _=p.on("redo",t);return typeof _!="function"?(T(),!1):(o=[p,A,T,_],!0)};m();let d=[kt,Qn,er].map(p=>ve(document,p,m)),c=j("ready");return c&&typeof c.then=="function"&&c.then(m,()=>{}),()=>{g=!0,typeof r=="function"&&r(),a&&a(),l();for(let p of d)p();b()}}function $t(e){let t=e.tagName;if(t==="INPUT"){let n=(e.getAttribute("type")||"text").toLowerCase();return n==="checkbox"?"checkbox":n==="radio"?"radio":n==="number"||n==="range"?"number":n==="hidden"?"hidden":"text"}return t==="TEXTAREA"?"text":t==="SELECT"?e.multiple?"select-multiple":"select-one":"leaf"}function ar(e){if(e.validity&&e.validity.badInput)return e.hasAttribute("value")?Number(e.getAttribute("value"))||0:e._sapLastGood??0;if(e.value==="")return 0;let t=Number(e.value);return Number.isNaN(t)?e._sapLastGood??0:(e._sapLastGood=t,t)}function Nt(e,t){switch(t){case"checkbox":return e.checked;case"radio":return e.checked?e.value:void 0;case"number":return ar(e);case"select-one":return e.value;case"select-multiple":return[...e.selectedOptions].map(n=>n.value);case"hidden":case"text":return e.value;case"leaf":return e.textContent;default:return e.value}}function or(e,t,n){switch(t){case"checkbox":e.checked=!!n;break;case"radio":e.checked=String(e.value)===String(n);break;case"number":case"text":case"hidden":e.value=n==null?"":String(n);break;case"select-one":e.value=n==null?"":String(n);break;case"select-multiple":{let r=new Set((Array.isArray(n)?n:[n]).map(String));for(let a of e.options)a.selected=r.has(a.value);break}case"leaf":e.textContent=n==null?"":String(n);break;default:e.value=n==null?"":String(n)}}function Tt(e){if(e.hasAttribute("transient")){e.removeAttribute("value"),e.removeAttribute("checked"),e.removeAttribute("data-value");return}xt(e)||We(e)}function ir(e){e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0}))}function lr(e,t){return Nt(e,t)}function sr(e){let t=$t(e);return{el:e,kind:t,read(){return Nt(e,t)},write(n,r={}){or(e,t,n),r.noMirror||Tt(e),r.silent||ir(e)},mirror(){Tt(e)}}}var ur=[],R=null,Ae=0,De=null,ke=!1,Z=null;function _t(e){let t=null;return{kind:"hub",flush(){e.pause(),e.resume()},subscribe(n){let r=e.onAnyChange({debounce:0,require:"observed"},n);typeof r=="function"&&(t=r)},suppress(n){e.pause();try{return n()}finally{e.resume()}},teardown(){if(t){try{t()}catch{}t=null}}}}function cr(){let e=null,t=null;function n(){let r=e?e.takeRecords():ur;r.length&&t(Lt(r))}return{kind:"native",flush:n,subscribe(r){t=r,e=new MutationObserver(l=>r(Lt(l)));let a=document.body||document.documentElement;a&&e.observe(a,{childList:!0,subtree:!0,attributes:!0,characterData:!0})},suppress(r,a){let l=j("undo");a&&n(),l&&l.pause&&l.pause();try{return r()}finally{e&&e.takeRecords(),l&&l.resume&&l.resume()}},teardown(){e&&(e.disconnect(),e=null)}}}function Lt(e){let t=[];for(let n of e)if(n.type==="attributes"){let r=n.target;r&&r.nodeType===1&&!fe(r)&&t.push({type:"attribute",element:r,attribute:n.attributeName})}else if(n.type==="characterData"){let r=n.target&&n.target.parentElement;r&&!fe(r)&&t.push({type:"characterData",element:r})}else if(n.type==="childList"){let r=n.target;r.nodeType===1&&[...n.addedNodes,...n.removedNodes].some(l=>l.nodeType===3)&&!fe(r)&&t.push({type:"characterData",element:r});let a=n.addedNodes.length>0&&r.nodeType===1&&Le(r);for(let l of n.addedNodes)l.nodeType!==1||fe(l)||(a?t.push({type:"add",element:l,parent:r}):V(l,o=>{(o===l||!fe(o))&&t.push({type:"add",element:o,parent:r})}));for(let l of n.removedNodes)l.nodeType===1&&t.push({type:"remove",element:l,parent:r})}return t}function fe(e){return!!(e.closest&&e.closest("[sap-ignore],[template],[cms-template]"))}function fr(e,t){e.pruneDisconnected();let n=new Map,r=!1;for(let a of t){let l=a.type==="remove"?a.parent:a.element,o=l&&e.appFor(l);if(o){let g=n.get(o);g?g.push(a):n.set(o,[a])}a.type==="add"&&a.element&&a.element.nodeType===1&&a.element.hasAttribute&&a.element.hasAttribute("sap")&&!(e.isRegistered&&e.isRegistered(a.element))&&(r=!0)}r&&(De=e.remountIfPresent,Ae?queueMicrotask(Fe):Fe());for(let[a,l]of n)a.root.isConnected&&e.schedule(a,"mutation",l)}function Fe(){let e=De;De=null,e?.()}function xe(e){if(R){let n=!Ae++;try{return R.suppress(e,n)}finally{Ae--}}let t=j("undo");if(t&&t.pause&&t.resume){t.pause();try{return e()}finally{t.resume()}}return e()}function ze(e,t){ke=!0,R=e,e.subscribe(n=>fr(t,n))}function Ct(e){if(ke||typeof window>"u"||typeof document>"u")return;let t=j("Mutation");if(t&&typeof t.onAnyChange=="function"){ze(_t(t),e);return}typeof MutationObserver=="function"&&(ze(cr(),e),Z=ve(document,kt,function(){let n=j("Mutation");n&&(Z(),Z=null,R&&R.teardown(),ke=!1,ze(_t(n),e))}))}function jt(){if(R)try{R.teardown()}catch{}Z&&typeof document<"u"&&Z(),R=null,ke=!1,Z=null}function dr(){Ae||(R&&R.flush(),Fe())}var pr=new Set($e),de=Object.freeze([]),F=[],Pt={},Rt={},Be=null;function Mt(e){F.includes(e)||(F.push(e),F.sort((t,n)=>(t.order??100)-(n.order??100)),e.boundary&&Object.assign(Pt,e.boundary),e.paintKinds&&Object.assign(Rt,e.paintKinds))}function mr(e){Be=e}function Ot(e,t={}){if(t.breaker){e.diag.error("E26",e.root,{problem:"recompute loop halted after 50 passes; recent triggers: "+(e._breakerRing||[]).join(", ")}),G(e.root,"loop");return}t.full&&(mt(),zn()),e._inPass=!0;let n=Rn(e.root),r=null;try{xe(()=>{r=hr(e,t)})}finally{e._inPass=!1,Mn(n)}Be&&r&&Be(e,r),e._viewsChanged&&(e._viewsChanged=!1,e.root.dispatchEvent(new CustomEvent("sap:views-updated",{bubbles:!0})))}function hr(e,t){let n=e.root,r={},a=[],l=[],o=new Set;e.diag.errors=[];let g=t.full||e._changes===!1?null:e._changes||de;e._changes=null;let b=new Set,m=new Map,d=(s,i)=>s.map(u=>m.get(u)?.push(i)??m.set(u,[i])),c={root:r,state:r,item:null,ownerEl:n,projection:!1},p=null;function A(s,i,u=!1){let f=i.attr||i.name,h=u?Gn(s,f):s.getAttribute(f);return h==null&&(h=lt(i),l.push({el:s,name:i.name,attr:f,value:gn(Ce(h,i.type),i.type)})),Ce(h,i.type)}function T(s,i,u,f){let h=i.decls;if(!h)return;let y=!!f.item&&!f.projection&&!f.view;for(let E of h){if(E.transient){p&&(p.pure=!1),u[E.name]=yn(s,E);continue}if(it(s,E)){u[E.name]=s.hasAttribute(E.attr);continue}u[E.name]=A(s,E,y)}}function _(s,i,u){let f=i.bind,h=u.item||u.state,y=$t(s);p&&(y!=="leaf"||i.transient)&&(p.pure=!1),y==="radio"?(f in h||(h[f]=""),s.checked&&(h[f]=s.value)):y==="leaf"&&u.item&&!u.projection&&!u.view?h[f]=Vn(s):h[f]=lr(s,y),i.transient&&(s.removeAttribute("value"),s.removeAttribute("checked"))}function P(s,i,u){let f=!1;if(i.waits&&b.add(i.waits),i.wants&&(d(i.wants,s),f=!0),p&&i.impure&&(p.pure=!1),i.paints){f=!0;for(let h of i.paints)h.kind==="when"&&o.add(h.field),a.push({def:h,el:s,ctx:u})}for(let h of F)h.collect&&h.collect($,s,i,u)!==!1&&(f=!0);p&&f&&(i.calcs&&(p.pure=!1),p.collects.push(s,i))}function q(s,i,u){Object.defineProperty(s,"$key",{value:mn(i,"row"),enumerable:!1}),Object.defineProperty(s,"$index",{value:u,enumerable:!1,configurable:!0}),Object.defineProperty(s,"$el",{value:i,enumerable:!1})}function z(s,i,u){let f=ce(s);T(s,f,i,u),s._sapScope=i,!u.projection&&f.bind!=null&&_(s,f,u),P(s,f,u),f.items?Y(s,i,u):B(s,i,u)}function B(s,i,u){for(let f=s.firstElementChild;f;f=f.nextElementSibling)H(f,i,u)}function H(s,i,u){let f=ce(s);if(!f.inert){if(f.boundary){if(p&&(p.pure=!1),f.boundary==="scope")N(s,i,u);else if(f.boundary==="items")P(s,f,u),Y(s,i,u);else if(f.waits)b.add(f.waits);else{let h=Pt[f.boundary];h?h($,s,f,i,u):f.wants&&d(f.wants,s)}return}!u.projection&&!u.view&&f.bind!=null&&_(s,f,u),P(s,f,u);for(let h=s.firstElementChild;h;h=h.nextElementSibling)H(h,i,u)}}function N(s,i,u){let f=s.getAttribute("scope"),h={};i[f]=h;let y={root:u.root,state:h,item:null,ownerEl:s,projection:u.projection};z(s,h,y)}function Y(s,i,u){p&&(p.pure=!1);let f=s.getAttribute("items"),h=[];i[f]=h,s._sapList=h;let y=!u.projection&&!u.view&&In(),E=0;for(let x=s.firstElementChild;x;x=x.nextElementSibling){let S=ce(x);if(!S.item||S.template||S.cms)continue;let w=y?Hn(x):void 0;h.push(w&&w.plan===S&&Object.isExtensible(w.obj)&&k(w,x,E,u)||v(x,S,E,u,y)),E++}}function v(s,i,u,f,h){let y={};q(y,s,u);let E={root:f.root,state:f.state,item:y,ownerEl:s,projection:f.projection};if(!h)return z(s,y,E),y;let x=p,S={plan:i,obj:y,fields:null,presence:de,pending:de,collects:[],pure:!0},w=l.length,Ge=e.diag.errors.length;p=S;try{z(s,y,E)}finally{p=x}if(!S.pure||e.halted||e.diag.errors.length!==Ge)return y;let ne=[];for(let re of Object.keys(y)){let Ve=y[re];if(Ve!==null&&typeof Ve=="object")return y;ne.push(re,Ve)}if(i.decls)for(let re of i.decls)it(s,re)&&(S.presence===de?S.presence=[]:S.presence).push(re.name,re.attr);return l.length>w&&(S.pending=l.slice(w)),S.collects.length||(S.collects=de),S.fields=ne,Un(s,S),y}function k(s,i,u,f){let h=s.obj;try{h.$index!==u&&Object.defineProperty(h,"$index",{value:u,enumerable:!1,configurable:!0});let x=s.presence;for(let w=0;w<x.length;w+=2)h[x[w]]=i.hasAttribute(x[w+1]);let S=s.fields;for(let w=0;w<S.length;w+=2)h[S[w]]=S[w+1]}catch{return wt(i),null}i._sapScope=h;let y=s.pending;for(let x=0;x<y.length;x++)l.push(y[x]);let E=s.collects;if(E.length){let x={root:f.root,state:f.state,item:h,ownerEl:i,projection:f.projection};for(let S=0;S<E.length;S+=2)P(E[S],E[S+1],x)}return h}let $={app:e,root:n,rootObj:r,paints:a,stats:{calcs:0,lists:0},resolveDefault:A,collectEl:P,walkScope:B,changes:g,full:g===null,trigger:t.cause||t.trigger||"refresh",waiting:b,wanted:m};for(let s of F)s.begin&&s.begin($);let L=t.cacheReads===!1?null:qn(n);try{z(n,r,c)}finally{t.cacheReads!==!1&&Yn(L)}if(e.halted||b.size)return $;for(let s of F)s.afterIntake&&s.afterIntake($);if(l.length&&o.size)for(let s of l)o.has(s.attr)&&s.el.getAttribute(s.attr)==null&&s.el.setAttribute(s.attr,s.value);for(let s of F)s.compute&&s.compute($);let C=0;for(let s of F)s.reconcile&&(C+=s.reconcile($));let te=0,M=C;for(let s of a){let i=yr(s,e);s.ctx.view?M+=i:te+=i}for(let s of F)s.afterPaint&&s.afterPaint($);return e._state=r,e._stats={fields:Object.keys(r).filter(s=>typeof r[s]!="function").length,calcs:$.stats.calcs,paints:a.length,lists:$.stats.lists,writes:te,viewWrites:M},e._viewsChanged=M>0,e._lastPass={trigger:t.trigger||"refresh",writes:te},e._debug&&console.log(`sap pass \xB7 trigger: ${e._lastPass.trigger} \xB7 writes ${te}/${a.length}`),$}function br(e){let t=e.kind==="text"?e.fmt||null:e.arg;return t==null?e.kind:e.kind+":"+t}function gr(e,t,n,r){let a=e;for(;a&&a.nodeType===1;){if(a.hasAttribute&&a.hasAttribute(t)){let l=n.includes(a.getAttribute(t));if(r?!l:l)return!0}a=a.parentElement}return!1}function yr(e,t){let n=e.def,r=e.el,a=Rt[n.kind];if(a)return a(e,t);if(n.kind==="when")return Wt(n,r,null);try{let l=Me(n.entry,e.ctx.state,e.ctx.item,r,e.ctx.root),o=Wt(n,r,l);return Ne(r),o}catch(l){return t.diag.error(l.sapCode==="E22"?"E22":"E24",r,{attr:br(n),expr:n.entry&&n.entry.src,problem:String(l.message)}),G(r,l.sapCode||"E24"),0}}function Wt(e,t,n){switch(e.kind){case"text":{let r=e.fmt!=null?$n(e.fmt,n):n==null?"":String(n);return t.textContent!==r?(t.textContent=r,1):0}case"show":{let r=!n;return t.hidden!==r?(t.hidden=r,1):0}case"when":{let r=j("optionVisibility");if(r&&r._started)return t._sapWhen&&t.hidden?(t.hidden=!1,t._sapWhen=!1,1):0;t._sapWhen=!0;let a=gr(t,e.field,e.values,e.match==="show-not")===(e.match==="hide");return t.hidden!==a?(t.hidden=a,1):0}case"attr":{let r=e.arg;if((r==="checked"||r==="selected")&&typeof t[r]=="boolean"&&!t.hasAttribute("bind")&&!t.closest("select[bind]")){let l=0;return t[r]!==!!n&&(t[r]=!!n,l=1),!!n!==t.hasAttribute(r)&&(n?t.setAttribute(r,""):t.removeAttribute(r),l=1),l}if(pr.has(r)){let l=t.hasAttribute(r);return n&&!l?(t.setAttribute(r,""),1):!n&&l?(t.removeAttribute(r),1):0}let a=typeof n=="boolean"?String(n):n==null?"":String(n);return t.getAttribute(r)!==a?(t.setAttribute(r,a),1):0}case"class":{let r=!!n;return t.classList.contains(e.arg)!==r?(t.classList.toggle(e.arg,r),1):0}case"css":{let r=n==null?"":String(n);return t.style.getPropertyValue("--"+e.arg)!==r?(t.style.setProperty("--"+e.arg,r),1):0}default:return 0}}var wr=new Set($e),Dt=new Set(["calc","text","attr","class","css","set","move","sort","option","option-not","show-when","hide-when","editmode","viewmode"]),vr=new Set(["show-when","hide-when","option","option-not"]),Er=/\b(?:state|item|root)\.|===|!==|&&|\|\||[()]|^\s*!/,Ft=new Set(["sap","scope","items","item","template","bind","show","effect","invalid","detail","state","transient","confirm","default","persist","sortable","trigger-add","trigger-remove","trigger-reset","sap-ignore","sap-error","no-save","no-watch","no-undo","no-trigger-autosave","freeze","mutations-ignore","save-remove","save-ignore","save-freeze"]),Ie=[];function zt(e){Ie.includes(e)||Ie.push(e)}function Ar(e){return e.tagName==="INPUT"||e.tagName==="SELECT"||e.tagName==="TEXTAREA"}function He(e){return e.hasAttribute("bind")}function kr(e,t){t(e);for(let r=e.firstElementChild;r;r=r.nextElementSibling)n(r);function n(r){if(!r.hasAttribute("sap-ignore")){if(r.tagName==="TEMPLATE"){if(r.hasAttribute("items"))for(let a=r.content.firstElementChild;a;a=a.nextElementSibling)n(a);return}if(t(r),!ie(r))for(let a=r.firstElementChild;a;a=a.nextElementSibling)n(a)}}}function xr(e,t){let n=!1,r=(o,g,b)=>{t.error(o,g,b),n=!0},a=e.ownerDocument.createTreeWalker(e,5,{acceptNode:o=>o.nodeType===3?1:ie(o)||o.hasAttribute("bind")||o.hasAttribute("sap-ignore")?2:3}),l;for(;l=a.nextNode();)if(/\{\{.*\}\}/.test(l.nodeValue||"")){r("E02",l.parentElement||e,{problem:"moustaches in text content are not a Sap feature",fix:'move the expression onto the element: text="state.x"'});break}return kr(e,o=>{let g=new Set;for(let m of Ie)m(o,r,d=>g.add(d));let b=o.closest&&o.closest("[detail]");for(let m of[...o.attributes]){let d=m.name;if(g.has(d))continue;if(d.includes(":")){let p=d.slice(0,d.indexOf(":"));if(!Dt.has(p)&&!et(d)){let A=Ke(p,[...Dt]);t.warn("W03",o,{attr:d,problem:`unknown "${p}:" attribute`,didYouMean:A?`${A}:`:null})}else if(vr.has(p)&&Er.test(m.value)){let A=d.slice(d.indexOf(":")+1);t.warn("W04",o,{attr:d,expr:m.value,problem:`${p}: compares the "${A}" attribute against a literal value, not a JS expression`,fix:`use show="${m.value}" for an expression, or a literal like ${p}:${A}="overview"`})}}else if(!Ft.has(d)&&!et(d)&&!Je.has(d)&&!wr.has(d)&&!/^(data-|aria-|on)/.test(d)&&!(d in o)){let p=Ke(d,[...Ft]);p&&t.warn("W03",o,{attr:d,problem:`unknown "${d}" attribute`,didYouMean:p})}d==="attr:hidden"&&t.warn("W03",o,{attr:d,problem:"attr:hidden paints the wrong attribute",fix:'use show="expr"'});let c=He(o)||d==="attr:selected"&&o.tagName==="OPTION"&&!!o.closest("select[bind]");(d==="attr:value"||d==="attr:checked"||d==="attr:selected")&&c&&r("E30",o,{attr:d,problem:"attr: on a bound control collides with persist ownership",fix:"remove it; bind owns this attribute"}),d==="effect"&&He(o)&&/\b(value|checked)\s*=[^=]/.test(m.value)&&r("E30",o,{attr:d,expr:m.value,problem:"effect writes value/checked on a bound control (writes a stale value with no synthetic event)",fix:"write through onclick + Sap(this) instead"}),(d==="text"||d.startsWith("text:")||d==="show")&&Ar(o)&&(d==="show"||r("E18",o,{attr:d,problem:"paint belongs on output elements, not form controls",fix:"move the paint to an <output> or <span>"}))}if(o.hasAttribute("state")){let m=at(o.getAttribute("state")),d=new Set;for(let c of m){c.name.includes("-")&&r("E08",o,{attr:"state",problem:`field "${c.name}" is not a valid identifier (the hyphen parses as subtraction)`,fix:`rename to ${c.name.replace(/-/g,"")}`}),d.has(c.name)&&r("E04",o,{attr:"state",problem:`field "${c.name}" is declared twice in one scope`}),d.add(c.name),rn.has(c.attr)&&r("E05",o,{attr:"state",problem:`"${c.name}" is a reserved Sap word`}),Je.has(c.attr)&&r("E06",o,{attr:"state",problem:`"${c.name}" is a global HTML attribute name; pick another field name`}),c.name==="open"&&o.tagName==="DIALOG"&&r("E33",o,{attr:"state",problem:"dialog open is transient",fix:"use showModal() \u2014 declare state= only on <details> or popovers"});let p=ot(o,c.attr);p&&(c.attr==="checked"||c.attr==="selected")&&r("E35",o,{attr:"state",problem:`"${c.attr}" on a form control is the control's own state, not a declared field`,fix:'bind the control instead, e.g. <input type="checkbox" bind="done">'}),p&&c.type==="num"&&r("E35",o,{attr:"state",problem:`"${c.attr}" is an HTML boolean attribute; it cannot hold a number`,fix:`declare it bare: state="${c.attr}"`}),c.transient&&(p||c.type==="presence")&&r("E35",o,{attr:"state",problem:`"${c.name}" is carried by attribute presence, which transient would strip`,fix:"declare a separate name:bool:transient field and paint the attribute from it"})}}if(He(o)){if(o.hasAttribute("-"),o.tagName==="INPUT"){let m=(o.getAttribute("type")||"text").toLowerCase();m==="file"&&r("E32",o,{attr:"bind",problem:"files never serialize into an HTML file",fix:"use no-save + effect instead of bind"}),m==="password"&&!o.hasAttribute("transient")&&r("E31",o,{attr:"bind",problem:"a password must never serialize into a world-readable file",fix:"add transient to the password input"})}else if(o.tagName!=="SELECT"&&o.tagName!=="TEXTAREA"){let m=o.getAttribute("contenteditable");!(m!=null&&m!=="false")&&o.children.length>0&&r("E20",o,{attr:"bind",problem:"bind on a container element is not a control; a write would overwrite its children",fix:"bind a control (input/select/textarea), a contenteditable, or an empty text leaf"})}}if(o.hasAttribute("transient")&&o.hasAttribute("persist")&&r("E34",o,{problem:"transient and persist are opposite: persist forces the live value into the saved bytes, leaking exactly what transient drops",fix:"remove one \u2014 transient to keep it out of the file, or persist to save it"}),o.tagName==="DIALOG"&&o.hasAttribute("detail")&&!(o.parentElement&&o.parentElement.closest('[clay~="freeze"], [freeze], [save-freeze]'))&&t.warn("W31",o,{attr:"detail",problem:"a detail dialog writes open when it opens, and that attribute would be saved into the file",fix:'wrap the dialog in an element with clay="freeze" (not editor-ui, which removes it from the file), and make its key field transient'}),o.hasAttribute("item")&&!o.hasAttribute("template")&&o.parentNode&&o.parentNode.nodeType===1){let m=o.parentElement;(!m||!m.hasAttribute("items"))&&r("E10",o,{problem:"an [item] must be a direct child of an [items] list",fix:'wrap it in a container with items="name"'})}if(o.hasAttribute("items")&&b&&r("E17",o,{attr:"items",problem:"nested items inside a detail panel is a v1 mount error (nested collections ship in v1.1)"}),o.hasAttribute("items")){let m=e.querySelector(`[trigger-add="${o.getAttribute("items")}"]`);!bn(o)&&!rt(e,o.getAttribute("items"))&&hn(o).length===0&&m&&r("E17",o,{attr:"items",problem:`trigger-add targets items="${o.getAttribute("items")}" but it has no [item template] to clone`})}}),n&&(t.halted=!0,t.haltReason=t.errors[0]?t.errors[0].code:"halt",G(e,t.haltReason)),!n}var Bt="sap-styles",It="[item][template]{display:none!important}[hidden]{display:none!important}[sap-error]{outline:2px solid #e5484d;outline-offset:1px}",Ue=new WeakSet;function Sr(e){if(Ue.has(e))return;let t=e.defaultView,n=t&&t.CSSStyleSheet;if(n&&"adoptedStyleSheets"in e)try{let r=new n;r.replaceSync(It),e.adoptedStyleSheets=[...e.adoptedStyleSheets,r],Ue.add(e);return}catch{}if(!e.getElementById(Bt)){let r=e.createElement("style");r.id=Bt,r.textContent=It,(e.head||e.documentElement).appendChild(r)}Ue.add(e)}var $r=0;function Ht(){return typeof performance<"u"&&performance.now?performance.now():0}function Ut(e){let t=e.id||e.getAttribute("sap")||`app-${$r++}`,n=new on(t),r={root:e,name:t,diag:n,_state:null,_stats:null,_lastPass:null,_passes:0,_broken:!1,_mountMs:0,_mountWrites:0};if(!xr(e,n))return r.halted=!0,r;Sr(e.ownerDocument);for(let l of e.querySelectorAll("textarea[data-value]"))_e(l)||At(l);let a=Ht();return Ot(r,{trigger:"mount",full:!0}),r._mountMs=Ht()-a,r._mountWrites=r._stats?r._stats.writes:0,r._mountWrites>0&&!Jn()&&!j("derived")&&n.warn("W30",e,{problem:`${r._mountWrites} paint(s) ran at mount; the saved file was out of sync with its declared state`,fix:"re-save once so the file mounts clean (a settled file writes nothing)"}),r}var Nr=/^(set:|move:|sort:|trigger-add$|trigger-remove$|trigger-reset$)/;function Tr(e){return`${e.tagName.toLowerCase()}[sap]`}function _r(e){let t={actions:0,lists:0,rows:0};return V(e,n=>{n.hasAttribute("items")&&t.lists++,n!==e&&n.hasAttribute("item")&&!n.hasAttribute("template")&&t.rows++,[...n.attributes].some(r=>Nr.test(r.name))&&t.actions++}),t}function Lr(e){function t(o){let g=o._stats||{},b=o.root;return{root:Tr(b),fields:g.fields||0,calcs:g.calcs||0,paints:g.paints||0,..._r(b),warnings:o.diag.warnings.length,errors:o.diag.errors.length,mountWrites:o._mountWrites||0,ms:Math.round((o._mountMs||0)*10)/10,passes:o._passes||0,lastPass:o._lastPass||null,ok:o.diag.errors.length===0&&!o.halted}}function n(){let o=e.apps().map(t);return{ok:o.every(g=>g.ok),apps:o}}function r(o){let g=t(o);return g.ok?`sap \u2713 ${g.root} \xB7 fields ${g.fields} \xB7 calcs ${g.calcs} \xB7 paints ${g.paints} \xB7 actions ${g.actions} \xB7 lists ${g.lists} \xB7 rows ${g.rows} \xB7 warnings ${g.warnings} \xB7 mount writes ${g.mountWrites} \xB7 ${g.ms}ms`:`sap \u2717 ${g.root} \xB7 errors ${g.errors} \xB7 warnings ${g.warnings} \xB7 ${g.ms}ms`}function a(){let o=[],g=[];for(let b of e.apps())o.push(...b.diag.errors),g.push(...b.diag.warnings);return{ok:o.length===0,errors:o,warnings:g,counts:{errors:o.length,warnings:g.length}}}function l(o){let g=o===void 0?!0:!!o;for(let b of e.apps())b._debug=g;return console.log(`sap debug ${g?"on":"off"} \u2014 per-pass headers will ${g?"":"no longer "}log`),g}return{status:n,report:a,debug:l,greenLine:r}}var qe="0.9.0",Cr={},jr=/^(https:\/\/(?:cdn\.jsdelivr\.net\/npm|unpkg\.com)\/@panphora\/sapjs)(?=[@/]|$)/,qt=e=>new Promise(t=>setTimeout(t,e)),Yt=e=>e.getAttribute("plugins")?.match(/\S+/g)||[];function Pr(e,t,n){let r=new Map,a=new Map,l=new Map,o=new Map,g=[],b=new Set,m={},d=!1,c,p=globalThis,A=Array.isArray(p.sapPlugins)?p.sapPlugins:p.sapPlugins==null?p.sapPlugins=[]:[],T=p.document?.currentScript?.src||"",_=jr.exec(T),P=i=>a.get(i)?.api||null,q=i=>Promise.allSettled(i.map(C));function z(){let i=new Map;for(let u of r.values())if(!a.has(u.name))for(let f of u.helpers||[])i.set(f,u.name);Tn(m,i),mt()}function B(i){r.set(i.name,{...r.get(i.name),...i}),sn(i),z()}function H(i){r.has(i.name)||B(i)}function N(i){A.includes(i)||A.push(i),B(i)}function Y(i){for(let u of e.apps())u.root.isConnected&&e.schedule(u,i)}let v=Object.freeze({api:1,version:qe,compile:dt,run:Pn,runWith:Me,planOf:ce,drainPlans:On,forgetRow:wt,setBeacon:G,clearBeacon:Ne,write:xe,schedule(i,u="plugin"){let f=i?.root?i:e.appFor(i);f&&e.schedule(f,u)},appFor:e.appFor,apps:e.apps,capability:j,mayWrite:Ee,load:C,plugin:P});function k(i){if(typeof i=="string")return C(i);let{name:u,api:f}=i,h=w=>{throw new Error(`Sap.use: plugin "${u}" ${w}`)};if((typeof u!="string"||f!==1)&&h(`needs a name and plugin API 1; it gives API ${f}`),d)return null;if(a.has(u))return P(u);if((i.requires||[]).some(w=>!a.has(w)))return N(i),g.includes(i)||g.push(i),null;let y=i.setup?.(v)||{},E=(w,Ge)=>{for(let ne of Array.isArray(i[w])?i[w]:Object.keys(i[w]||{}))(typeof(y[w]||{})[ne]!="function"||Ge(ne))&&h(`cannot add "${ne}" to ${w}: the name is taken or not valid, or setup does not supply it`)},x=w=>!Te(w,u);E("helpers",w=>(ft(w)&&h(`cannot add "${w}": window.${w} exists; rename the helper`),!_n(w)||w in m)),E("boundaries",x),E("directives",x);for(let w in y.api)w in t&&h(`cannot add Sap.${w}: the name is taken`);N(i);let S={...y,name:u,order:i.order,boundary:{}};for(let w in i.boundaries)S.boundary[w]=y.boundaries[w];for(let w of i.helpers||[])m[w]=y.helpers[w];for(let w in y.formats)w in X||(X[w]=y.formats[w]);return Mt(S),y.lint&&zt(y.lint),Object.assign(t,y.api),a.set(u,S),o.delete(u),un(u,y.directives||!0),z(),xe(()=>b.forEach(Ne)),b.clear(),g.splice(0).forEach($),Y("plugin:"+u),P(u)}function $(i){try{k(i)}catch(u){console.error(u)}}function L(i){if(d||a.has(i))return null;let u=r.get(i)||{},f=M.loader?.(i,u),h=u.url||M.base&&M.base+(u.file||i)+".js";return(f!==void 0?Promise.resolve(f):new Promise((y,E)=>{if(!h)throw new Error(`no address for plugin "${i}": call Sap.use(definition)`);let x=document.createElement("script");x.src=h,x.setAttribute("clay","editor-ui"),x.onload=x.onerror=S=>{x.remove(),S.type==="load"?y():E(new Error("could not load "+h))},document.head.append(x)})).then(y=>{if(d)return;let E=y?.default||y||A.find(x=>x.name===i);if(E?.name&&k(E),!a.has(i))throw new Error(`plugin "${i}" loaded and did not register`)})}function C(i){if(a.has(i))return Promise.resolve(P(i));if(l.has(i))return l.get(i);o.delete(i);let u=Promise.all((r.get(i)?.requires||[]).map(C)).then(()=>L(i));for(let h of M.retryDelays)u=u.catch(()=>qt(h).then(()=>L(i)));let f=u.finally(()=>l.delete(i)).then(()=>P(i),h=>{throw o.set(i,h),c||=!p.addEventListener?.("online",()=>M.retry()),Y("plugin-failed:"+i),document.dispatchEvent(new CustomEvent("sap:plugin-failed",{detail:{plugin:i,error:h}})),h});return l.set(i,f),f}function te(i){let u=new Set;for(let f of i.closest?.("[sap]")?[i]:i.querySelectorAll("[sap]")){for(let h of Yt(f.closest("[sap]")))u.add(h);r.size>a.size&&V(f,h=>{let y=ce(h);return y.inert?!1:(y.wants?.map(E=>u.add(E)),!!u.add(y.waits))})}return[...u].filter(f=>f&&!a.has(f))}mr((i,u)=>{for(let f of new Set([...u.wanted.keys(),...u.waiting,...Yt(i.root)])){if(a.has(f))continue;let h=o.get(f);if(!h)C(f).catch(()=>{});else{let y=u.wanted.get(f)?.[0]||i.root;i.diag.error("E52",y,{problem:`the "${f}" plugin did not load: ${h.message}`,fix:"Sap.plugins.retry() tries again"}),b.add(y),xe(()=>G(y,"E52"))}}});let M={api:1,base:_?`${_[1]}@${qe}/dist/sap-plugins/`:/^[^:]+:\//.test(T)?new URL("sap-plugins/",T).href:null,loader:null,retryDelays:[1e3,4e3],declare:H,load:C,ready(i=document,u=3e3){let f=new Set,h=()=>{let E=te(i).filter(x=>!f.has(x)&&f.add(x));return E.length&&q(E).then(h)},y=h();return y?Promise.race([y,qt(u)]):null},has:i=>a.has(i),status:()=>({installed:[...a.keys()],loading:[...l.keys()],failed:[...o.keys()]}),retry:i=>q(i?[i]:[...o.keys()])};function s(){let i=[],u=()=>(dr(),n.flushNow()),f=[...a.values()].filter(h=>h.flush);u();for(let h=0;f.length&&h<8;h++){for(let y of f){let E=y.flush();E?.then&&i.push(E)}if(!u())break}return i.length?Promise.all(i).then(s):null}t.use=k,t.plugins=M,t.flush=s;for(let i of Object.values(Cr))H(i);return A.slice().forEach($),function(){d=!0;for(let i of a.values())i.dispose?.();a.clear(),o.clear()}}function Rr({createAccessor:e,installInput:t,debugExtras:n}){let r=new Map,a=[],l=tn(Ot);function o(v){let k=v;for(;k;){if(k.nodeType===1&&k.hasAttribute&&k.hasAttribute("sap"))return r.get(k)||null;k=k.parentNode&&k.parentNode.host?k.parentNode.host:k.parentElement}return null}function g(){for(let v=a.length-1;v>=0;v--){let k=a[v];k.root.isConnected||(r.delete(k.root),a.splice(v,1))}}function b(v,k){if(v.moveBefore)try{v.moveBefore(k,null);return}catch{}v.appendChild(k)}function m(v,k){let $=k.parentElement;if($){if($.moveBefore)try{$.moveBefore(v,k);return}catch{}$.insertBefore(v,k)}}let d={apps:()=>a.slice(),appFor:o,isRegistered:v=>r.has(v),pruneDisconnected:g,schedule:l.schedule,runNow:(v,k)=>l.runNow(v,k),moveInto:b,placeBefore:m,remountIfPresent:()=>B()},c=e(d),p=Lr(d),A=n?n(d,p):{},T=!1,_=!1,P=null;function q(){T||(T=!0,t(d,c,document),P=rr(d))}function z(){let v=j("derived");v&&typeof v.mounted=="function"&&v.mounted()}function B(v=document){if(_)return[];q(),Ct(d);let k=v.querySelectorAll("[sap]"),$=[];for(let L of k){if(r.has(L)||_e(L))continue;let C=Ut(L);r.set(L,C),a.push(C),$.push(C)}for(let L of $){let C=p.greenLine(L);L.diag.errors.length||L.halted?console.error(C):console.log(C)}return z(),$}function H(v){if(_)return null;if(q(),Ct(d),!v)return B();let k=typeof v=="string"?document.querySelector(v):v;if(!k)return null;if(r.has(k))return r.get(k);let $=Ut(k);r.set(k,$),a.push($);let L=p.greenLine($);return $.diag.errors.length||$.halted?console.error(L):console.log(L),$}let N=c.Sap;N.version=qe,N.refresh=function(){for(let v of a.slice())v.root.isConnected&&l.runNow(v,"refresh")},N.batch=nr,N.status=p.status,N.report=p.report,N.why=A.why,N.debug=p.debug,N.doctor=A.doctor,N.greenLine=p.greenLine,N.formats=X,N.serializeControlToAttributes=We,N.finalizeControlForSave=Xn,N.rehydrateControlFromAttributes=At,N.mount=H,N.config=function(v={}){return v.formats&&Object.assign(X,v.formats),N},N._registry=r,N._reset=function(){r.clear(),a.length=0,jt()},N.unmount=function(){_=!0,r.clear(),a.length=0,jt(),typeof P=="function"&&P(),Y()};let Y=Pr(d,N,l);return{Sap:N,mountAll:B,mount:H,runtime:d}}function Mr(e){if(typeof document>"u")return;let t=()=>tr(()=>e());document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t):t()}function Or(e){let t=[];function n(b){let m=b.target;if(!m||m.nodeType!==1)return;let d=e.appFor(m);if(d){m.hasAttribute("persist")&&!xt(m)&&Ee(m)&&We(m);for(let c of t)if(c(m,d))return;e.schedule(d,b.type+" "+(m.id||m.tagName.toLowerCase()))}}function r(b){let m=b.target,d=e.appFor(m);d&&[...m.querySelectorAll("[bind]")].every(c=>Ee(c))&&setTimeout(()=>{m.querySelectorAll("[bind]").forEach(c=>{c.dispatchEvent(new Event("input",{bubbles:!0})),c.dispatchEvent(new Event("change",{bubbles:!0}))}),e.schedule(d,"reset")},0)}function a(b){let m=e.appFor(b.target);m&&e.schedule(m,"toggle")}function l(b){let m=b.detail||{};for(let d of[m.from,m.to,b.target]){if(!d||d.nodeType!==1)continue;let c=e.appFor(d);c&&e.schedule(c,"sorted")}}function o(b){if(b.key!=="ArrowUp"&&b.key!=="ArrowDown")return;let m=b.target;if(!m||m.nodeType!==1||m.tagName!=="INPUT"||!m.hasAttribute("bind")||!m.hasAttribute("step"))return;let d=(m.getAttribute("type")||"text").toLowerCase();if(d!=="text"&&d!=="tel"&&d!=="search"||!e.appFor(m)||!Ee(m))return;b.preventDefault();let c=O(m.getAttribute("step"))||1,p=b.key==="ArrowUp"?1:-1,A=O(m.value)+c*(b.shiftKey?10:1)*p,T=m.getAttribute("min"),_=m.getAttribute("max");T!==null&&T!==""&&A<O(T)&&(A=O(T)),_!==null&&_!==""&&A>O(_)&&(A=O(_)),sr(m).write(String(Number(A.toFixed(2))))}function g(b=document){b.addEventListener("reset",r),b.addEventListener("toggle",a,!0),b.addEventListener("input",n),b.addEventListener("change",n),b.addEventListener("clay:sorted",l),b.addEventListener("keydown",o)}return{install:g,addRouter:b=>t.push(b)}}var pe="https://clayjs.com/v1/sap.js",Wr=/^(calc|set|move|sort):/,Dr=new Set(["each","detail","effect","invalid","confirm","trigger-add","trigger-remove","trigger-reset"]);function Ye(e){return Wr.test(e)||Dr.has(e)}zt((e,t)=>{for(let n of e.attributes)Ye(n.name)&&t("E50",e,{attr:n.name,expr:n.value,problem:`${n.name} is full sapjs; the sapjs core only paints declared state`,fix:`load ${pe}; the markup stays as it is`})});function ee(e,t,n){e.app.diag.error("E50",t,{attr:n,problem:`${n} is full sapjs; the sapjs core only paints declared state`,fix:`load ${pe}; the markup stays as it is`}),G(t,"E50"),e.app.halted=!0}Mt({name:"core-only",collect(e,t,n){n.calcs&&ee(e,t,"calc:"+n.calcs[0].name),n.effects&&ee(e,t,"effect"),n.invalids&&ee(e,t,"invalid");for(let r of t.attributes)Ye(r.name)&&(r.name.startsWith("calc:")&&n.calcs||r.name==="effect"&&n.effects||r.name==="invalid"&&n.invalids||ee(e,t,r.name));return!1},boundary:{each(e,t){ee(e,t,"each")},detail(e,t){ee(e,t,"detail")}}});function Fr(){return{Sap:function(){throw new Error(`Sap(el) is full sapjs; load ${pe}`)}}}var Gt=e=>()=>(console.warn(`Sap.${e} is full sapjs; load ${pe}`),null),{Sap:me,mountAll:Vt,mount:zr,runtime:Br}=Rr({createAccessor:Fr,debugExtras:()=>({why:Gt("why"),doctor:Gt("doctor")}),installInput(e,t,n){Or(e).install(n)}});me.core=!0;var Ir=typeof window<"u"&&window.Sap&&!window.Sap.core;Ir?me.unmount():Mr(Vt),typeof window<"u"&&!window.Sap&&(window.Sap=me);var Hr=me;return en(Xe)})(),qr=Ur.default;export{qr as default};
|
|
7
|
+
`+t.value:t.value;e.textContent!==r&&(e.textContent=r),e.removeAttribute("data-value");return}if(n==="SELECT"){let r=e.options,a=t.options;for(let l=0;l<r.length;l++)a[l]&&a[l].selected?r[l].hasAttribute("selected")||r[l].setAttribute("selected",""):r[l].removeAttribute("selected")}}function kt(e){e.tagName!=="TEXTAREA"||!e.hasAttribute("data-value")||e!==e.ownerDocument.activeElement&&(e.textContent=e.getAttribute("data-value"),e.removeAttribute("data-value"))}function j(e){if(typeof window>"u")return null;let t=window.clay,n=window.hyperclay;return e==="consent"?t?.confirm||n?.consent||null:t?.[e]||n?.[e]||null}function Kn(){let e=j("visitorDrafts");return!!(e&&typeof e.restored=="function"&&e.restored()?.restored)}var xt=["clay:mutation-ready","hyperclay:mutation-ready"],Qn=["clay:sync-applied","hyperclay:livesync-applied"],Zn=["clay:ready","hyperclay:ready"],er=["clay:route"],tr=["clay:modechange"];function ve(e,t,n){let r=null,a=l=>{r!==null&&r!==l.type||(r=l.type,queueMicrotask(()=>{r=null}),n(l))};for(let l of t)e.addEventListener(l,a);return()=>{for(let l of t)e.removeEventListener(l,a)}}function nr(e){let t=typeof window<"u"&&window.clay&&window.clay.ready;t&&typeof t.then=="function"?t.then(()=>e(),()=>e()):e()}function St(e){let t=j("region");return!t||typeof t.resolveRegionPolicy!="function"||typeof t.skipForPolicy!="function"?!1:t.skipForPolicy(t.resolveRegionPolicy(e),void 0,["no-save","freeze"])}function $t(){return typeof window>"u"?null:window.clay?.modeLifecycle||null}function Ee(e,{transient:t=!1}={}){if(t)return!0;let n=$t();return typeof n?.canWrite!="function"||j("region")?.resolveRegionPolicy?.(e)?.persist==="none"?!0:n.canWrite()}function rr(e,t){if(typeof t!="function")throw new Error("Sap.batch(label, fn): fn must be a function");let n=j("undo");n&&n.flush&&n.flush();let r=t();if(r&&typeof r.then=="function")throw new Error("Sap.batch fn must be synchronous (it returned a promise)");return n&&n.commitCaptured&&n.commitCaptured(e),r}function ar(e){if(typeof window>"u"||typeof document>"u")return;let t=()=>{let p=!1;for(let A of e.apps())A.root.isConnected?e.runNow(A,"platform"):p=!0;p&&e.pruneDisconnected(),e.remountIfPresent()},n=j("derived"),r=n&&typeof n.register=="function"?n.register(t):null,a=typeof r=="function"?null:ve(document,Qn,t),l=ve(document,er,t),o=null,g=!1,b=()=>{let p=o;o=null,p&&(p[2](),p[3]())},m=()=>{if(g)return!1;let p=j("undo"),A=$t()?.state?.generation;if(o&&o[0]===p&&o[1]===A)return!0;if(b(),!p||typeof p.on!="function")return!1;let T=p.on("undo",t);if(typeof T!="function")return!1;let _=p.on("redo",t);return typeof _!="function"?(T(),!1):(o=[p,A,T,_],!0)};m();let d=[xt,Zn,tr].map(p=>ve(document,p,m)),c=j("ready");return c&&typeof c.then=="function"&&c.then(m,()=>{}),()=>{g=!0,typeof r=="function"&&r(),a&&a(),l();for(let p of d)p();b()}}function Nt(e){let t=e.tagName;if(t==="INPUT"){let n=(e.getAttribute("type")||"text").toLowerCase();return n==="checkbox"?"checkbox":n==="radio"?"radio":n==="number"||n==="range"?"number":n==="hidden"?"hidden":"text"}return t==="TEXTAREA"?"text":t==="SELECT"?e.multiple?"select-multiple":"select-one":"leaf"}function or(e){if(e.validity&&e.validity.badInput)return e.hasAttribute("value")?Number(e.getAttribute("value"))||0:e._sapLastGood??0;if(e.value==="")return 0;let t=Number(e.value);return Number.isNaN(t)?e._sapLastGood??0:(e._sapLastGood=t,t)}function Tt(e,t){switch(t){case"checkbox":return e.checked;case"radio":return e.checked?e.value:void 0;case"number":return or(e);case"select-one":return e.value;case"select-multiple":return[...e.selectedOptions].map(n=>n.value);case"hidden":case"text":return e.value;case"leaf":return e.textContent;default:return e.value}}function ir(e,t,n){switch(t){case"checkbox":e.checked=!!n;break;case"radio":e.checked=String(e.value)===String(n);break;case"number":case"text":case"hidden":e.value=n==null?"":String(n);break;case"select-one":e.value=n==null?"":String(n);break;case"select-multiple":{let r=new Set((Array.isArray(n)?n:[n]).map(String));for(let a of e.options)a.selected=r.has(a.value);break}case"leaf":e.textContent=n==null?"":String(n);break;default:e.value=n==null?"":String(n)}}function _t(e){if(e.hasAttribute("transient")){e.removeAttribute("value"),e.removeAttribute("checked"),e.removeAttribute("data-value");return}St(e)||We(e)}function lr(e){e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0}))}function sr(e,t){return Tt(e,t)}function ur(e){let t=Nt(e);return{el:e,kind:t,read(){return Tt(e,t)},write(n,r={}){ir(e,t,n),r.noMirror||_t(e),r.silent||lr(e)},mirror(){_t(e)}}}var cr=[],R=null,Ae=0,De=null,ke=!1,Z=null;function Lt(e){let t=null;return{kind:"hub",flush(){e.pause(),e.resume()},subscribe(n){let r=e.onAnyChange({debounce:0,require:"observed"},n);typeof r=="function"&&(t=r)},suppress(n){e.pause();try{return n()}finally{e.resume()}},teardown(){if(t){try{t()}catch{}t=null}}}}function fr(){let e=null,t=null;function n(){let r=e?e.takeRecords():cr;r.length&&t(Ct(r))}return{kind:"native",flush:n,subscribe(r){t=r,e=new MutationObserver(l=>r(Ct(l)));let a=document.body||document.documentElement;a&&e.observe(a,{childList:!0,subtree:!0,attributes:!0,characterData:!0})},suppress(r,a){let l=j("undo");a&&n(),l&&l.pause&&l.pause();try{return r()}finally{e&&e.takeRecords(),l&&l.resume&&l.resume()}},teardown(){e&&(e.disconnect(),e=null)}}}function Ct(e){let t=[];for(let n of e)if(n.type==="attributes"){let r=n.target;r&&r.nodeType===1&&!fe(r)&&t.push({type:"attribute",element:r,attribute:n.attributeName})}else if(n.type==="characterData"){let r=n.target&&n.target.parentElement;r&&!fe(r)&&t.push({type:"characterData",element:r})}else if(n.type==="childList"){let r=n.target;r.nodeType===1&&[...n.addedNodes,...n.removedNodes].some(l=>l.nodeType===3)&&!fe(r)&&t.push({type:"characterData",element:r});let a=n.addedNodes.length>0&&r.nodeType===1&&Le(r);for(let l of n.addedNodes)l.nodeType!==1||fe(l)||(a?t.push({type:"add",element:l,parent:r}):X(l,o=>{(o===l||!fe(o))&&t.push({type:"add",element:o,parent:r})}));for(let l of n.removedNodes)l.nodeType===1&&t.push({type:"remove",element:l,parent:r})}return t}function fe(e){return!!(e.closest&&e.closest("[sap-ignore],[template],[cms-template]"))}function dr(e,t){e.pruneDisconnected();let n=new Map,r=!1;for(let a of t){let l=a.type==="remove"?a.parent:a.element,o=l&&e.appFor(l);if(o){let g=n.get(o);g?g.push(a):n.set(o,[a])}a.type==="add"&&a.element&&a.element.nodeType===1&&a.element.hasAttribute&&a.element.hasAttribute("sap")&&!(e.isRegistered&&e.isRegistered(a.element))&&(r=!0)}r&&(De=e.remountIfPresent,Ae?queueMicrotask(ze):ze());for(let[a,l]of n)a.root.isConnected&&e.schedule(a,"mutation",l)}function ze(){let e=De;De=null,e?.()}function xe(e){if(R){let n=!Ae++;try{return R.suppress(e,n)}finally{Ae--}}let t=j("undo");if(t&&t.pause&&t.resume){t.pause();try{return e()}finally{t.resume()}}return e()}function Be(e,t){ke=!0,R=e,e.subscribe(n=>dr(t,n))}function jt(e){if(ke||typeof window>"u"||typeof document>"u")return;let t=j("Mutation");if(t&&typeof t.onAnyChange=="function"){Be(Lt(t),e);return}typeof MutationObserver=="function"&&(Be(fr(),e),Z=ve(document,xt,function(){let n=j("Mutation");n&&(Z(),Z=null,R&&R.teardown(),ke=!1,Be(Lt(n),e))}))}function Pt(){if(R)try{R.teardown()}catch{}Z&&typeof document<"u"&&Z(),R=null,ke=!1,Z=null}function pr(){Ae||(R&&R.flush(),ze())}var mr=new Set($e),de=Object.freeze([]),D=[],Rt={},Mt={},Fe=null;function Ot(e){D.includes(e)||(D.push(e),D.sort((t,n)=>(t.order??100)-(n.order??100)),e.boundary&&Object.assign(Rt,e.boundary),e.paintKinds&&Object.assign(Mt,e.paintKinds))}function hr(e){Fe=e}function Wt(e,t={}){if(t.breaker){e.diag.error("E26",e.root,{problem:"recompute loop halted after 50 passes; recent triggers: "+(e._breakerRing||[]).join(", ")}),G(e.root,"loop");return}t.full&&(ht(),Fn()),e._inPass=!0;let n=Mn(e.root),r=null;try{xe(()=>{r=br(e,t)})}finally{e._inPass=!1,On(n)}Fe&&r&&Fe(e,r),e._viewsChanged&&(e._viewsChanged=!1,e.root.dispatchEvent(new CustomEvent("sap:views-updated",{bubbles:!0})))}function br(e,t){let n=e.root,r={},a=[],l=[],o=new Set;e.diag.errors=[];let g=t.full||e._changes===!1?null:e._changes||de;e._changes=null;let b=new Set,m=new Map,d=(s,i)=>s.map(u=>m.get(u)?.push(i)??m.set(u,[i])),c={root:r,state:r,item:null,ownerEl:n,projection:!1},p=null;function A(s,i,u=!1){let f=i.attr||i.name,h=u?Xn(s,f):s.getAttribute(f);return h==null&&(h=lt(i),l.push({el:s,name:i.name,attr:f,value:yn(Ce(h,i.type),i.type)})),Ce(h,i.type)}function T(s,i,u,f){let h=i.decls;if(!h)return;let y=!!f.item&&!f.projection&&!f.view;for(let E of h){if(E.transient){p&&(p.pure=!1),u[E.name]=wn(s,E);continue}if(it(s,E)){u[E.name]=s.hasAttribute(E.attr);continue}u[E.name]=A(s,E,y)}}function _(s,i,u){let f=i.bind,h=u.item||u.state,y=Nt(s);p&&(y!=="leaf"||i.transient)&&(p.pure=!1),y==="radio"?(f in h||(h[f]=""),s.checked&&(h[f]=s.value)):y==="leaf"&&u.item&&!u.projection&&!u.view?h[f]=Vn(s):h[f]=sr(s,y),i.transient&&(s.removeAttribute("value"),s.removeAttribute("checked"))}function P(s,i,u){let f=!1;if(i.waits&&b.add(i.waits),i.wants&&(d(i.wants,s),f=!0),p&&i.impure&&(p.pure=!1),i.paints){f=!0;for(let h of i.paints)h.kind==="when"&&o.add(h.field),a.push({def:h,el:s,ctx:u})}for(let h of D)h.collect&&h.collect($,s,i,u)!==!1&&(f=!0);p&&f&&(i.calcs&&(p.pure=!1),p.collects.push(s,i))}function q(s,i,u){Object.defineProperty(s,"$key",{value:hn(i,"row"),enumerable:!1}),Object.defineProperty(s,"$index",{value:u,enumerable:!1,configurable:!0}),Object.defineProperty(s,"$el",{value:i,enumerable:!1})}function z(s,i,u){let f=ce(s);T(s,f,i,u),s._sapScope=i,!u.projection&&f.bind!=null&&_(s,f,u),P(s,f,u),f.items?Y(s,i,u):B(s,i,u)}function B(s,i,u){for(let f=s.firstElementChild;f;f=f.nextElementSibling)H(f,i,u)}function H(s,i,u){let f=ce(s);if(!f.inert){if(f.boundary){if(p&&(p.pure=!1),f.boundary==="scope")N(s,i,u);else if(f.boundary==="items")P(s,f,u),Y(s,i,u);else if(f.waits)b.add(f.waits);else{let h=Rt[f.boundary];h?h($,s,f,i,u):f.wants&&d(f.wants,s)}return}!u.projection&&!u.view&&f.bind!=null&&_(s,f,u),P(s,f,u);for(let h=s.firstElementChild;h;h=h.nextElementSibling)H(h,i,u)}}function N(s,i,u){let f=s.getAttribute("scope"),h={};i[f]=h;let y={root:u.root,state:h,item:null,ownerEl:s,projection:u.projection};z(s,h,y)}function Y(s,i,u){p&&(p.pure=!1);let f=s.getAttribute("items"),h=[];i[f]=h,s._sapList=h;let y=!u.projection&&!u.view&&Hn(),E=0;for(let x=s.firstElementChild;x;x=x.nextElementSibling){let S=ce(x);if(!S.item||S.template||S.cms)continue;let w=y?Un(x):void 0;h.push(w&&w.plan===S&&Object.isExtensible(w.obj)&&k(w,x,E,u)||v(x,S,E,u,y)),E++}}function v(s,i,u,f,h){let y={};q(y,s,u);let E={root:f.root,state:f.state,item:y,ownerEl:s,projection:f.projection};if(!h)return z(s,y,E),y;let x=p,S={plan:i,obj:y,fields:null,presence:de,pending:de,collects:[],pure:!0},w=l.length,Ge=e.diag.errors.length;p=S;try{z(s,y,E)}finally{p=x}if(!S.pure||e.halted||e.diag.errors.length!==Ge)return y;let ne=[];for(let re of Object.keys(y)){let Xe=y[re];if(Xe!==null&&typeof Xe=="object")return y;ne.push(re,Xe)}if(i.decls)for(let re of i.decls)it(s,re)&&(S.presence===de?S.presence=[]:S.presence).push(re.name,re.attr);return l.length>w&&(S.pending=l.slice(w)),S.collects.length||(S.collects=de),S.fields=ne,qn(s,S),y}function k(s,i,u,f){let h=s.obj;try{h.$index!==u&&Object.defineProperty(h,"$index",{value:u,enumerable:!1,configurable:!0});let x=s.presence;for(let w=0;w<x.length;w+=2)h[x[w]]=i.hasAttribute(x[w+1]);let S=s.fields;for(let w=0;w<S.length;w+=2)h[S[w]]=S[w+1]}catch{return vt(i),null}i._sapScope=h;let y=s.pending;for(let x=0;x<y.length;x++)l.push(y[x]);let E=s.collects;if(E.length){let x={root:f.root,state:f.state,item:h,ownerEl:i,projection:f.projection};for(let S=0;S<E.length;S+=2)P(E[S],E[S+1],x)}return h}let $={app:e,root:n,rootObj:r,paints:a,stats:{calcs:0,lists:0},resolveDefault:A,collectEl:P,walkScope:B,changes:g,full:g===null,trigger:t.cause||t.trigger||"refresh",waiting:b,wanted:m};for(let s of D)s.begin&&s.begin($);let L=t.cacheReads===!1?null:Yn(n);try{z(n,r,c)}finally{t.cacheReads!==!1&&Gn(L)}if(e.halted||b.size)return $;for(let s of D)s.afterIntake&&s.afterIntake($);if(l.length&&o.size)for(let s of l)o.has(s.attr)&&s.el.getAttribute(s.attr)==null&&s.el.setAttribute(s.attr,s.value);for(let s of D)s.compute&&s.compute($);let C=0;for(let s of D)s.reconcile&&(C+=s.reconcile($));let te=0,M=C;for(let s of a){let i=wr(s,e);s.ctx.view?M+=i:te+=i}for(let s of D)s.afterPaint&&s.afterPaint($);return e._state=r,e._stats={fields:Object.keys(r).filter(s=>typeof r[s]!="function").length,calcs:$.stats.calcs,paints:a.length,lists:$.stats.lists,writes:te,viewWrites:M},e._viewsChanged=M>0,e._lastPass={trigger:t.trigger||"refresh",writes:te},e._debug&&console.log(`sap pass \xB7 trigger: ${e._lastPass.trigger} \xB7 writes ${te}/${a.length}`),$}function gr(e){let t=e.kind==="text"?e.fmt||null:e.arg;return t==null?e.kind:e.kind+":"+t}function yr(e,t,n,r){let a=e;for(;a&&a.nodeType===1;){if(a.hasAttribute&&a.hasAttribute(t)){let l=n.includes(a.getAttribute(t));if(r?!l:l)return!0}a=a.parentElement}return!1}function wr(e,t){let n=e.def,r=e.el,a=Mt[n.kind];if(a)return a(e,t);if(n.kind==="when")return Dt(n,r,null);try{let l=Me(n.entry,e.ctx.state,e.ctx.item,r,e.ctx.root),o=Dt(n,r,l);return Ne(r),o}catch(l){return t.diag.error(l.sapCode==="E22"?"E22":"E24",r,{attr:gr(n),expr:n.entry&&n.entry.src,problem:String(l.message)}),G(r,l.sapCode||"E24"),0}}function Dt(e,t,n){switch(e.kind){case"text":{let r=e.fmt!=null?Nn(e.fmt,n):n==null?"":String(n);return t.textContent!==r?(t.textContent=r,1):0}case"show":{let r=!n;return t.hidden!==r?(t.hidden=r,1):0}case"when":{let r=j("optionVisibility");if(r&&r._started)return t._sapWhen&&t.hidden?(t.hidden=!1,t._sapWhen=!1,1):0;t._sapWhen=!0;let a=yr(t,e.field,e.values,e.match==="show-not")===(e.match==="hide");return t.hidden!==a?(t.hidden=a,1):0}case"attr":{let r=e.arg;if((r==="checked"||r==="selected")&&typeof t[r]=="boolean"&&!t.hasAttribute("bind")&&!t.closest("select[bind]")){let l=0;return t[r]!==!!n&&(t[r]=!!n,l=1),!!n!==t.hasAttribute(r)&&(n?t.setAttribute(r,""):t.removeAttribute(r),l=1),l}if(mr.has(r)){let l=t.hasAttribute(r);return n&&!l?(t.setAttribute(r,""),1):!n&&l?(t.removeAttribute(r),1):0}let a=typeof n=="boolean"?String(n):n==null?"":String(n);return t.getAttribute(r)!==a?(t.setAttribute(r,a),1):0}case"class":{let r=!!n;return t.classList.contains(e.arg)!==r?(t.classList.toggle(e.arg,r),1):0}case"css":{let r=n==null?"":String(n);return t.style.getPropertyValue("--"+e.arg)!==r?(t.style.setProperty("--"+e.arg,r),1):0}default:return 0}}var vr=new Set($e),zt=new Set(["calc","text","attr","class","css","set","move","sort","option","option-not","show-when","hide-when","editmode","viewmode"]),Er=new Set(["show-when","hide-when","option","option-not"]),Ar=/\b(?:state|item|root)\.|===|!==|&&|\|\||[()]|^\s*!/,Bt=new Set(["sap","scope","items","item","template","bind","show","effect","invalid","detail","state","transient","confirm","default","persist","sortable","trigger-add","trigger-remove","trigger-reset","sap-ignore","sap-error","no-save","no-watch","no-undo","no-trigger-autosave","freeze","mutations-ignore","save-remove","save-ignore","save-freeze"]),Ie=[];function Ft(e){Ie.includes(e)||Ie.push(e)}function kr(e){return e.tagName==="INPUT"||e.tagName==="SELECT"||e.tagName==="TEXTAREA"}function He(e){return e.hasAttribute("bind")}function xr(e,t){t(e);for(let r=e.firstElementChild;r;r=r.nextElementSibling)n(r);function n(r){if(!r.hasAttribute("sap-ignore")){if(r.tagName==="TEMPLATE"){if(r.hasAttribute("items"))for(let a=r.content.firstElementChild;a;a=a.nextElementSibling)n(a);return}if(t(r),!ie(r))for(let a=r.firstElementChild;a;a=a.nextElementSibling)n(a)}}}function Sr(e,t){let n=!1,r=(o,g,b)=>{t.error(o,g,b),n=!0},a=e.ownerDocument.createTreeWalker(e,5,{acceptNode:o=>o.nodeType===3?1:ie(o)||o.hasAttribute("bind")||o.hasAttribute("sap-ignore")?2:3}),l;for(;l=a.nextNode();)if(/\{\{.*\}\}/.test(l.nodeValue||"")){r("E02",l.parentElement||e,{problem:"moustaches in text content are not a Sap feature",fix:'move the expression onto the element: text="state.x"'});break}return xr(e,o=>{let g=new Set;for(let m of Ie)m(o,r,d=>g.add(d));let b=o.closest&&o.closest("[detail]");for(let m of[...o.attributes]){let d=m.name;if(g.has(d))continue;if(d.includes(":")){let p=d.slice(0,d.indexOf(":"));if(!zt.has(p)&&!et(d)){let A=Ke(p,[...zt]);t.warn("W03",o,{attr:d,problem:`unknown "${p}:" attribute`,didYouMean:A?`${A}:`:null})}else if(Er.has(p)&&Ar.test(m.value)){let A=d.slice(d.indexOf(":")+1);t.warn("W04",o,{attr:d,expr:m.value,problem:`${p}: compares the "${A}" attribute against a literal value, not a JS expression`,fix:`use show="${m.value}" for an expression, or a literal like ${p}:${A}="overview"`})}}else if(!Bt.has(d)&&!et(d)&&!Je.has(d)&&!vr.has(d)&&!/^(data-|aria-|on)/.test(d)&&!(d in o)){let p=Ke(d,[...Bt]);p&&t.warn("W03",o,{attr:d,problem:`unknown "${d}" attribute`,didYouMean:p})}d==="attr:hidden"&&t.warn("W03",o,{attr:d,problem:"attr:hidden paints the wrong attribute",fix:'use show="expr"'});let c=He(o)||d==="attr:selected"&&o.tagName==="OPTION"&&!!o.closest("select[bind]");(d==="attr:value"||d==="attr:checked"||d==="attr:selected")&&c&&r("E30",o,{attr:d,problem:"attr: on a bound control collides with persist ownership",fix:"remove it; bind owns this attribute"}),d==="effect"&&He(o)&&/\b(value|checked)\s*=[^=]/.test(m.value)&&r("E30",o,{attr:d,expr:m.value,problem:"effect writes value/checked on a bound control (writes a stale value with no synthetic event)",fix:"write through onclick + Sap(this) instead"}),(d==="text"||d.startsWith("text:")||d==="show")&&kr(o)&&(d==="show"||r("E18",o,{attr:d,problem:"paint belongs on output elements, not form controls",fix:"move the paint to an <output> or <span>"}))}if(o.hasAttribute("state")){let m=at(o.getAttribute("state")),d=new Set;for(let c of m){c.name.includes("-")&&r("E08",o,{attr:"state",problem:`field "${c.name}" is not a valid identifier (the hyphen parses as subtraction)`,fix:`rename to ${c.name.replace(/-/g,"")}`}),d.has(c.name)&&r("E04",o,{attr:"state",problem:`field "${c.name}" is declared twice in one scope`}),d.add(c.name),an.has(c.attr)&&r("E05",o,{attr:"state",problem:`"${c.name}" is a reserved Sap word`}),Je.has(c.attr)&&r("E06",o,{attr:"state",problem:`"${c.name}" is a global HTML attribute name; pick another field name`}),c.name==="open"&&o.tagName==="DIALOG"&&r("E33",o,{attr:"state",problem:"dialog open is transient",fix:"use showModal() \u2014 declare state= only on <details> or popovers"});let p=ot(o,c.attr);p&&(c.attr==="checked"||c.attr==="selected")&&r("E35",o,{attr:"state",problem:`"${c.attr}" on a form control is the control's own state, not a declared field`,fix:'bind the control instead, e.g. <input type="checkbox" bind="done">'}),p&&c.type==="num"&&r("E35",o,{attr:"state",problem:`"${c.attr}" is an HTML boolean attribute; it cannot hold a number`,fix:`declare it bare: state="${c.attr}"`}),c.transient&&(p||c.type==="presence")&&r("E35",o,{attr:"state",problem:`"${c.name}" is carried by attribute presence, which transient would strip`,fix:"declare a separate name:bool:transient field and paint the attribute from it"})}}if(He(o)){if(o.hasAttribute("-"),o.tagName==="INPUT"){let m=(o.getAttribute("type")||"text").toLowerCase();m==="file"&&r("E32",o,{attr:"bind",problem:"files never serialize into an HTML file",fix:"use no-save + effect instead of bind"}),m==="password"&&!o.hasAttribute("transient")&&r("E31",o,{attr:"bind",problem:"a password must never serialize into a world-readable file",fix:"add transient to the password input"})}else if(o.tagName!=="SELECT"&&o.tagName!=="TEXTAREA"){let m=o.getAttribute("contenteditable");!(m!=null&&m!=="false")&&o.children.length>0&&r("E20",o,{attr:"bind",problem:"bind on a container element is not a control; a write would overwrite its children",fix:"bind a control (input/select/textarea), a contenteditable, or an empty text leaf"})}}if(o.hasAttribute("transient")&&o.hasAttribute("persist")&&r("E34",o,{problem:"transient and persist are opposite: persist forces the live value into the saved bytes, leaking exactly what transient drops",fix:"remove one \u2014 transient to keep it out of the file, or persist to save it"}),o.tagName==="DIALOG"&&o.hasAttribute("detail")&&!(o.parentElement&&o.parentElement.closest('[clay~="freeze"], [freeze], [save-freeze]'))&&t.warn("W31",o,{attr:"detail",problem:"a detail dialog writes open when it opens, and that attribute would be saved into the file",fix:'wrap the dialog in an element with clay="freeze" (not editor-ui, which removes it from the file), and make its key field transient'}),o.hasAttribute("item")&&!o.hasAttribute("template")&&o.parentNode&&o.parentNode.nodeType===1){let m=o.parentElement;(!m||!m.hasAttribute("items"))&&r("E10",o,{problem:"an [item] must be a direct child of an [items] list",fix:'wrap it in a container with items="name"'})}if(o.hasAttribute("items")&&b&&r("E17",o,{attr:"items",problem:"nested items inside a detail panel is a v1 mount error (nested collections ship in v1.1)"}),o.hasAttribute("items")){let m=e.querySelector(`[trigger-add="${o.getAttribute("items")}"]`);!gn(o)&&!rt(e,o.getAttribute("items"))&&bn(o).length===0&&m&&r("E17",o,{attr:"items",problem:`trigger-add targets items="${o.getAttribute("items")}" but it has no [item template] to clone`})}}),n&&(t.halted=!0,t.haltReason=t.errors[0]?t.errors[0].code:"halt",G(e,t.haltReason)),!n}var It="sap-styles",Ht="[item][template]{display:none!important}[hidden]{display:none!important}[sap-error]{outline:2px solid #e5484d;outline-offset:1px}",Ue=new WeakSet;function $r(e){if(Ue.has(e))return;let t=e.defaultView,n=t&&t.CSSStyleSheet;if(n&&"adoptedStyleSheets"in e)try{let r=new n;r.replaceSync(Ht),e.adoptedStyleSheets=[...e.adoptedStyleSheets,r],Ue.add(e);return}catch{}if(!e.getElementById(It)){let r=e.createElement("style");r.id=It,r.textContent=Ht,(e.head||e.documentElement).appendChild(r)}Ue.add(e)}var Nr=0;function Ut(){return typeof performance<"u"&&performance.now?performance.now():0}function qt(e){let t=e.id||e.getAttribute("sap")||`app-${Nr++}`,n=new ln(t),r={root:e,name:t,diag:n,_state:null,_stats:null,_lastPass:null,_passes:0,_broken:!1,_mountMs:0,_mountWrites:0};if(!Sr(e,n))return r.halted=!0,r;$r(e.ownerDocument);for(let l of e.querySelectorAll("textarea[data-value]"))_e(l)||kt(l);let a=Ut();return Wt(r,{trigger:"mount",full:!0}),r._mountMs=Ut()-a,r._mountWrites=r._stats?r._stats.writes:0,r._mountWrites>0&&!Kn()&&!j("derived")&&n.warn("W30",e,{problem:`${r._mountWrites} paint(s) ran at mount; the saved file was out of sync with its declared state`,fix:"re-save once so the file mounts clean (a settled file writes nothing)"}),r}var Tr=/^(set:|move:|sort:|trigger-add$|trigger-remove$|trigger-reset$)/;function _r(e){return`${e.tagName.toLowerCase()}[sap]`}function Lr(e){let t={actions:0,lists:0,rows:0};return X(e,n=>{n.hasAttribute("items")&&t.lists++,n!==e&&n.hasAttribute("item")&&!n.hasAttribute("template")&&t.rows++,[...n.attributes].some(r=>Tr.test(r.name))&&t.actions++}),t}function Cr(e){function t(o){let g=o._stats||{},b=o.root;return{root:_r(b),fields:g.fields||0,calcs:g.calcs||0,paints:g.paints||0,...Lr(b),warnings:o.diag.warnings.length,errors:o.diag.errors.length,mountWrites:o._mountWrites||0,ms:Math.round((o._mountMs||0)*10)/10,passes:o._passes||0,lastPass:o._lastPass||null,ok:o.diag.errors.length===0&&!o.halted}}function n(){let o=e.apps().map(t);return{ok:o.every(g=>g.ok),apps:o}}function r(o){let g=t(o);return g.ok?`sap \u2713 ${g.root} \xB7 fields ${g.fields} \xB7 calcs ${g.calcs} \xB7 paints ${g.paints} \xB7 actions ${g.actions} \xB7 lists ${g.lists} \xB7 rows ${g.rows} \xB7 warnings ${g.warnings} \xB7 mount writes ${g.mountWrites} \xB7 ${g.ms}ms`:`sap \u2717 ${g.root} \xB7 errors ${g.errors} \xB7 warnings ${g.warnings} \xB7 ${g.ms}ms`}function a(){let o=[],g=[];for(let b of e.apps())o.push(...b.diag.errors),g.push(...b.diag.warnings);return{ok:o.length===0,errors:o,warnings:g,counts:{errors:o.length,warnings:g.length}}}function l(o){let g=o===void 0?!0:!!o;for(let b of e.apps())b._debug=g;return console.log(`sap debug ${g?"on":"off"} \u2014 per-pass headers will ${g?"":"no longer "}log`),g}return{status:n,report:a,debug:l,greenLine:r}}var qe="0.9.1",jr={},Pr=/^(https:\/\/(?:cdn\.jsdelivr\.net\/npm|unpkg\.com)\/@panphora\/sapjs)(?=[@/]|$)/,Yt=e=>new Promise(t=>setTimeout(t,e)),Gt=e=>e.getAttribute("plugins")?.match(/\S+/g)||[];function Rr(e,t,n){let r=new Map,a=new Map,l=new Map,o=new Map,g=[],b=new Set,m={},d=!1,c,p=globalThis,A=Array.isArray(p.sapPlugins)?p.sapPlugins:p.sapPlugins==null?p.sapPlugins=[]:[],T=p.document?.currentScript?.src||"",_=Pr.exec(T),P=i=>a.get(i)?.api||null,q=i=>Promise.allSettled(i.map(C));function z(){let i=new Map;for(let u of r.values())if(!a.has(u.name))for(let f of u.helpers||[])i.set(f,u.name);_n(m,i),ht()}function B(i){r.set(i.name,{...r.get(i.name),...i}),un(i),z()}function H(i){r.has(i.name)||B(i)}function N(i){A.includes(i)||A.push(i),B(i)}function Y(i){for(let u of e.apps())u.root.isConnected&&e.schedule(u,i)}let v=Object.freeze({api:1,version:qe,compile:pt,run:Rn,runWith:Me,planOf:ce,drainPlans:Wn,forgetRow:vt,setBeacon:G,clearBeacon:Ne,write:xe,schedule(i,u="plugin"){let f=i?.root?i:e.appFor(i);f&&e.schedule(f,u)},appFor:e.appFor,apps:e.apps,capability:j,mayWrite:Ee,load:C,plugin:P});function k(i){if(typeof i=="string")return C(i);let{name:u,api:f}=i,h=w=>{throw new Error(`Sap.use: plugin "${u}" ${w}`)};if((typeof u!="string"||f!==1)&&h(`needs a name and plugin API 1; it gives API ${f}`),d)return null;if(a.has(u))return P(u);if((i.requires||[]).some(w=>!a.has(w)))return N(i),g.includes(i)||g.push(i),null;let y=i.setup?.(v)||{},E=(w,Ge)=>{for(let ne of Array.isArray(i[w])?i[w]:Object.keys(i[w]||{}))(typeof(y[w]||{})[ne]!="function"||Ge(ne))&&h(`cannot add "${ne}" to ${w}: the name is taken or not valid, or setup does not supply it`)},x=w=>!Te(w,u);E("helpers",w=>(dt(w)&&h(`cannot add "${w}": window.${w} exists; rename the helper`),!Ln(w)||w in m)),E("boundaries",x),E("directives",x);for(let w in y.api)w in t&&h(`cannot add Sap.${w}: the name is taken`);N(i);let S={...y,name:u,order:i.order,boundary:{}};for(let w in i.boundaries)S.boundary[w]=y.boundaries[w];for(let w of i.helpers||[])m[w]=y.helpers[w];for(let w in y.formats)w in V||(V[w]=y.formats[w]);return Ot(S),y.lint&&Ft(y.lint),Object.assign(t,y.api),a.set(u,S),o.delete(u),cn(u,y.directives||!0),z(),xe(()=>b.forEach(Ne)),b.clear(),g.splice(0).forEach($),Y("plugin:"+u),P(u)}function $(i){try{k(i)}catch(u){console.error(u)}}function L(i){if(d||a.has(i))return null;let u=r.get(i)||{},f=M.loader?.(i,u),h=u.url||M.base&&M.base+(u.file||i)+".js";return(f!==void 0?Promise.resolve(f):new Promise((y,E)=>{if(!h)throw new Error(`no address for plugin "${i}": call Sap.use(definition)`);let x=document.createElement("script");x.src=h,x.setAttribute("clay","editor-ui"),x.onload=x.onerror=S=>{x.remove(),S.type==="load"?y():E(new Error("could not load "+h))},document.head.append(x)})).then(y=>{if(d)return;let E=y?.default||y||A.find(x=>x.name===i);if(E?.name&&k(E),!a.has(i))throw new Error(`plugin "${i}" loaded and did not register`)})}function C(i){if(a.has(i))return Promise.resolve(P(i));if(l.has(i))return l.get(i);o.delete(i);let u=Promise.all((r.get(i)?.requires||[]).map(C)).then(()=>L(i));for(let h of M.retryDelays)u=u.catch(()=>Yt(h).then(()=>L(i)));let f=u.finally(()=>l.delete(i)).then(()=>P(i),h=>{throw o.set(i,h),c||=!p.addEventListener?.("online",()=>M.retry()),Y("plugin-failed:"+i),document.dispatchEvent(new CustomEvent("sap:plugin-failed",{detail:{plugin:i,error:h}})),h});return l.set(i,f),f}function te(i){let u=new Set;for(let f of i.closest?.("[sap]")?[i]:i.querySelectorAll("[sap]")){for(let h of Gt(f.closest("[sap]")))u.add(h);r.size>a.size&&X(f,h=>{let y=ce(h);return y.inert?!1:(y.wants?.map(E=>u.add(E)),!!u.add(y.waits))})}return[...u].filter(f=>f&&!a.has(f))}hr((i,u)=>{for(let f of new Set([...u.wanted.keys(),...u.waiting,...Gt(i.root)])){if(a.has(f))continue;let h=o.get(f);if(!h)C(f).catch(()=>{});else{let y=u.wanted.get(f)?.[0]||i.root;i.diag.error("E52",y,{problem:`the "${f}" plugin did not load: ${h.message}`,fix:"Sap.plugins.retry() tries again"}),b.add(y),xe(()=>G(y,"E52"))}}});let M={api:1,base:_?`${_[1]}@${qe}/dist/sap-plugins/`:/^[^:]+:\//.test(T)?new URL("sap-plugins/",T).href:null,loader:null,retryDelays:[1e3,4e3],declare:H,load:C,ready(i=document,u=3e3){let f=new Set,h=()=>{let E=te(i).filter(x=>!f.has(x)&&f.add(x));return E.length&&q(E).then(h)},y=h();return y?Promise.race([y,Yt(u)]):null},has:i=>a.has(i),status:()=>({installed:[...a.keys()],loading:[...l.keys()],failed:[...o.keys()]}),retry:i=>q(i?[i]:[...o.keys()])};function s(){let i=[],u=()=>(pr(),n.flushNow()),f=[...a.values()].filter(h=>h.flush);u();for(let h=0;f.length&&h<8;h++){for(let y of f){let E=y.flush();E?.then&&i.push(E)}if(!u())break}return i.length?Promise.all(i).then(s):null}t.use=k,t.plugins=M,t.flush=s;for(let i of Object.values(jr))H(i);return A.slice().forEach($),function(){d=!0;for(let i of a.values())i.dispose?.();a.clear(),o.clear()}}function Mr({createAccessor:e,installInput:t,debugExtras:n}){let r=new Map,a=[],l=nn(Wt);function o(v){let k=v;for(;k;){if(k.nodeType===1&&k.hasAttribute&&k.hasAttribute("sap"))return r.get(k)||null;k=k.parentNode&&k.parentNode.host?k.parentNode.host:k.parentElement}return null}function g(){for(let v=a.length-1;v>=0;v--){let k=a[v];k.root.isConnected||(r.delete(k.root),a.splice(v,1))}}function b(v,k){if(v.moveBefore)try{v.moveBefore(k,null);return}catch{}v.appendChild(k)}function m(v,k){let $=k.parentElement;if($){if($.moveBefore)try{$.moveBefore(v,k);return}catch{}$.insertBefore(v,k)}}let d={apps:()=>a.slice(),appFor:o,isRegistered:v=>r.has(v),pruneDisconnected:g,schedule:l.schedule,runNow:(v,k)=>l.runNow(v,k),moveInto:b,placeBefore:m,remountIfPresent:()=>B()},c=e(d),p=Cr(d),A=n?n(d,p):{},T=!1,_=!1,P=null;function q(){T||(T=!0,t(d,c,document),P=ar(d))}function z(){let v=j("derived");v&&typeof v.mounted=="function"&&v.mounted()}function B(v=document){if(_)return[];q(),jt(d);let k=v.querySelectorAll("[sap]"),$=[];for(let L of k){if(r.has(L)||_e(L))continue;let C=qt(L);r.set(L,C),a.push(C),$.push(C)}for(let L of $){let C=p.greenLine(L);L.diag.errors.length||L.halted?console.error(C):console.log(C)}return z(),$}function H(v){if(_)return null;if(q(),jt(d),!v)return B();let k=typeof v=="string"?document.querySelector(v):v;if(!k)return null;if(r.has(k))return r.get(k);let $=qt(k);r.set(k,$),a.push($);let L=p.greenLine($);return $.diag.errors.length||$.halted?console.error(L):console.log(L),$}let N=c.Sap;N.version=qe,N.refresh=function(){for(let v of a.slice())v.root.isConnected&&l.runNow(v,"refresh")},N.batch=rr,N.status=p.status,N.report=p.report,N.why=A.why,N.debug=p.debug,N.doctor=A.doctor,N.greenLine=p.greenLine,N.formats=V,N.serializeControlToAttributes=We,N.finalizeControlForSave=Jn,N.rehydrateControlFromAttributes=kt,N.mount=H,N.config=function(v={}){return v.formats&&Object.assign(V,v.formats),N},N._registry=r,N._reset=function(){r.clear(),a.length=0,Pt()},N.unmount=function(){_=!0,r.clear(),a.length=0,Pt(),typeof P=="function"&&P(),Y()};let Y=Rr(d,N,l);return{Sap:N,mountAll:B,mount:H,runtime:d}}function Or(e){if(typeof document>"u")return;let t=()=>nr(()=>e());document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t):t()}function Wr(e){let t=[];function n(b){let m=b.target;if(!m||m.nodeType!==1)return;let d=e.appFor(m);if(d){m.hasAttribute("persist")&&!St(m)&&Ee(m)&&We(m);for(let c of t)if(c(m,d))return;e.schedule(d,b.type+" "+(m.id||m.tagName.toLowerCase()))}}function r(b){let m=b.target,d=e.appFor(m);d&&[...m.querySelectorAll("[bind]")].every(c=>Ee(c))&&setTimeout(()=>{m.querySelectorAll("[bind]").forEach(c=>{c.dispatchEvent(new Event("input",{bubbles:!0})),c.dispatchEvent(new Event("change",{bubbles:!0}))}),e.schedule(d,"reset")},0)}function a(b){let m=e.appFor(b.target);m&&e.schedule(m,"toggle")}function l(b){let m=b.detail||{};for(let d of[m.from,m.to,b.target]){if(!d||d.nodeType!==1)continue;let c=e.appFor(d);c&&e.schedule(c,"sorted")}}function o(b){if(b.key!=="ArrowUp"&&b.key!=="ArrowDown")return;let m=b.target;if(!m||m.nodeType!==1||m.tagName!=="INPUT"||!m.hasAttribute("bind")||!m.hasAttribute("step"))return;let d=(m.getAttribute("type")||"text").toLowerCase();if(d!=="text"&&d!=="tel"&&d!=="search"||!e.appFor(m)||!Ee(m))return;b.preventDefault();let c=O(m.getAttribute("step"))||1,p=b.key==="ArrowUp"?1:-1,A=O(m.value)+c*(b.shiftKey?10:1)*p,T=m.getAttribute("min"),_=m.getAttribute("max");T!==null&&T!==""&&A<O(T)&&(A=O(T)),_!==null&&_!==""&&A>O(_)&&(A=O(_)),ur(m).write(String(Number(A.toFixed(2))))}function g(b=document){b.addEventListener("reset",r),b.addEventListener("toggle",a,!0),b.addEventListener("input",n),b.addEventListener("change",n),b.addEventListener("clay:sorted",l),b.addEventListener("keydown",o)}return{install:g,addRouter:b=>t.push(b)}}var pe="https://clayjs.com/v1/sap.js",Dr=/^(calc|set|move|sort):/,zr=new Set(["each","detail","effect","invalid","confirm","trigger-add","trigger-remove","trigger-reset"]);function Ye(e){return Dr.test(e)||zr.has(e)}Ft((e,t)=>{for(let n of e.attributes)Ye(n.name)&&t("E50",e,{attr:n.name,expr:n.value,problem:`${n.name} is full sapjs; the sapjs core only paints declared state`,fix:`load ${pe}; the markup stays as it is`})});function ee(e,t,n){e.app.diag.error("E50",t,{attr:n,problem:`${n} is full sapjs; the sapjs core only paints declared state`,fix:`load ${pe}; the markup stays as it is`}),G(t,"E50"),e.app.halted=!0}Ot({name:"core-only",collect(e,t,n){n.calcs&&ee(e,t,"calc:"+n.calcs[0].name),n.effects&&ee(e,t,"effect"),n.invalids&&ee(e,t,"invalid");for(let r of t.attributes)Ye(r.name)&&(r.name.startsWith("calc:")&&n.calcs||r.name==="effect"&&n.effects||r.name==="invalid"&&n.invalids||ee(e,t,r.name));return!1},boundary:{each(e,t){ee(e,t,"each")},detail(e,t){ee(e,t,"detail")}}});function Br(){return{Sap:function(){throw new Error(`Sap(el) is full sapjs; load ${pe}`)}}}var Xt=e=>()=>(console.warn(`Sap.${e} is full sapjs; load ${pe}`),null),{Sap:me,mountAll:Vt,mount:Fr,runtime:Ir}=Mr({createAccessor:Br,debugExtras:()=>({why:Xt("why"),doctor:Xt("doctor")}),installInput(e,t,n){Wr(e).install(n)}});me.core=!0;var Hr=typeof window<"u"&&window.Sap&&!window.Sap.core;Hr?me.unmount():Or(Vt),typeof window<"u"&&!window.Sap&&(window.Sap=me);var Ur=me;return tn(Ve)})(),Yr=qr.default;export{Yr as default};
|