@panphora/clayjs 1.24.1 → 1.25.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 +2044 -1247
- package/dist/m/attrs/{refetch-on-save-DPGJJMGN.js → refetch-on-save-5CBFUJUF.js} +1 -1
- package/dist/m/attrs/save-freeze-MH3AOD56.js +1 -0
- package/dist/m/{c-SXGEWPFC.js → c-3E2IK5HU.js} +1 -1
- package/dist/m/{c-A4L7APIU.js → c-4AE2A2LK.js} +1 -1
- package/dist/m/{c-YDW4VCHP.js → c-4Q6QIODW.js} +1 -1
- package/dist/m/{c-RO73MKKR.js → c-52OC3OH3.js} +1 -1
- package/dist/m/{c-ZGCO4J3H.js → c-5PZYDWTW.js} +1 -1
- package/dist/m/c-5Q5XBN56.js +1 -0
- package/dist/m/c-5SZ6KFR5.js +1 -0
- package/dist/m/{c-ZRGEN6QQ.js → c-AI3H6ETU.js} +2 -2
- package/dist/m/{c-7V6MGMX2.js → c-BCWYEG6P.js} +1 -1
- package/dist/m/{c-C5AKJVRH.js → c-BJ2RRQBQ.js} +1 -1
- package/dist/m/{c-CTGRDT6E.js → c-C6YZNU6E.js} +1 -1
- package/dist/m/{c-EDE45NM7.js → c-C7SUMNMI.js} +1 -1
- package/dist/m/c-CITLTVQ4.js +4 -0
- package/dist/m/{c-STRI73GQ.js → c-CL5LSATX.js} +1 -1
- package/dist/m/{c-Z4G2UK6T.js → c-CU33V6RW.js} +1 -1
- package/dist/m/{c-6LEYVQJK.js → c-D62HRSZK.js} +1 -1
- package/dist/m/{c-DD26VXAP.js → c-DT7E76Z2.js} +1 -1
- package/dist/m/{c-P2HKMJAW.js → c-EAV7A6BT.js} +1 -1
- package/dist/m/{c-QQFHEODI.js → c-EQ5NBOGA.js} +1 -1
- package/dist/m/{c-KQKKIVLW.js → c-FBOO2UY3.js} +1 -1
- package/dist/m/{c-JQF2EUCG.js → c-FJDTDGDA.js} +1 -1
- package/dist/m/{c-MQKSKQHG.js → c-FKTALXNV.js} +1 -1
- package/dist/m/{c-HL6BLJNA.js → c-GDNZEOOZ.js} +1 -1
- package/dist/m/{c-SUXHUL7U.js → c-GEAG5XAK.js} +1 -1
- package/dist/m/{c-LSVN3OLG.js → c-GY4BREDT.js} +1 -1
- package/dist/m/{c-4PO3YGDC.js → c-HGG7M2S3.js} +1 -1
- package/dist/m/{c-DDS23EY6.js → c-HXGNH6GY.js} +1 -1
- package/dist/m/{c-FLEIU6CG.js → c-IESDKFO6.js} +1 -1
- package/dist/m/{c-CJ7QYEWI.js → c-IJHF4IO6.js} +1 -1
- package/dist/m/{c-SGGGCIVD.js → c-IL5IVTOG.js} +1 -1
- package/dist/m/c-JB5YU57S.js +1 -0
- package/dist/m/{c-MP6S4AZU.js → c-JD2VFAYG.js} +2 -2
- package/dist/m/{c-CV4T65JE.js → c-JWW6BHWD.js} +3 -3
- package/dist/m/{c-42ZNV7LI.js → c-K4M76VPM.js} +1 -1
- package/dist/m/{c-6IJEVE6B.js → c-KU3PX7LL.js} +1 -1
- package/dist/m/{c-2PVGJFI5.js → c-KYTVZT4D.js} +1 -1
- package/dist/m/{c-BGN7RCTJ.js → c-M7ITYKMF.js} +1 -1
- package/dist/m/c-MFB74XVN.js +3 -0
- package/dist/m/c-MOP5KBWZ.js +1 -0
- package/dist/m/{c-YLHTD3KX.js → c-MUM53J5J.js} +1 -1
- package/dist/m/{c-YK2L436K.js → c-MV7TEUTD.js} +1 -1
- package/dist/m/{c-LA2BW7UY.js → c-MZCOGNZL.js} +1 -1
- package/dist/m/{c-XW5TIYYB.js → c-N4GEJMXW.js} +1 -1
- package/dist/m/{c-NQAPWM7O.js → c-NADLYVAH.js} +1 -1
- package/dist/m/{c-RS77ODLY.js → c-NL4I4KNG.js} +1 -1
- package/dist/m/{c-X75G43SZ.js → c-O2QZDVZ2.js} +1 -1
- package/dist/m/{c-LTSPHVAK.js → c-OBMZASYQ.js} +1 -1
- package/dist/m/{c-LUXAB2XI.js → c-ORLPQFNU.js} +1 -1
- package/dist/m/c-P73XPAOA.js +1 -0
- package/dist/m/{c-PWJSJEJU.js → c-PNZIJFG7.js} +1 -1
- package/dist/m/{c-ZKKAF4UT.js → c-PRZNJUYZ.js} +2 -2
- package/dist/m/{c-B7GOFGQR.js → c-Q2CB57UG.js} +1 -1
- package/dist/m/{c-TWCXBWS3.js → c-QCDVDZIR.js} +1 -1
- package/dist/m/{c-UOOIF2AL.js → c-QDVG4NAZ.js} +1 -1
- package/dist/m/c-QWB53KRW.js +1 -0
- package/dist/m/{c-GNI7WHKF.js → c-RGAALCDU.js} +1 -1
- package/dist/m/c-RHPHMTF2.js +2 -0
- package/dist/m/{c-3UW5EJ77.js → c-RWJ3OSCP.js} +1 -1
- package/dist/m/{c-5FXEKU4Y.js → c-SEVOS4UE.js} +1 -1
- package/dist/m/{c-HDVH3MVC.js → c-SFYTKRU7.js} +1 -1
- package/dist/m/{c-47IBJGPQ.js → c-SFZRY6RT.js} +1 -1
- package/dist/m/{c-QENKN7QI.js → c-SGG6MUXW.js} +1 -1
- package/dist/m/c-SMLAJASY.js +1 -0
- package/dist/m/{c-DFKBGSN2.js → c-SUAC5RSG.js} +1 -1
- package/dist/m/{c-6RGEQNVV.js → c-SXZYVXD6.js} +1 -1
- package/dist/m/{c-ZFO5RW6G.js → c-TCFVG3I4.js} +1 -1
- package/dist/m/{c-OCYG4NBQ.js → c-TLQINES7.js} +2 -2
- package/dist/m/c-U4TWEIKZ.js +1 -0
- package/dist/m/{c-MQYEDF3Q.js → c-U65PREMC.js} +1 -1
- package/dist/m/{c-PDBNCJCT.js → c-U7F66I64.js} +1 -1
- package/dist/m/{c-LATNQ6Q5.js → c-UD4VDBGJ.js} +1 -1
- package/dist/m/{c-PCNJETUA.js → c-V2FPBRO6.js} +1 -1
- package/dist/m/{c-ND3Q2G2I.js → c-V4B3RUWB.js} +1 -1
- package/dist/m/{c-JWDCQL6J.js → c-V5L6HWVL.js} +1 -1
- package/dist/m/c-VMXCX52Q.js +1 -0
- package/dist/m/{c-CZHTXGJS.js → c-VO6RSFCO.js} +1 -1
- package/dist/m/c-WDFQ7PBU.js +1 -0
- package/dist/m/{c-OG6GFSUX.js → c-WGQVSKKC.js} +1 -1
- package/dist/m/c-WSTUCBHV.js +1 -0
- package/dist/m/{c-FEC6LGFF.js → c-WVCT3ITX.js} +1 -1
- package/dist/m/{c-SE3SIY7Y.js → c-X3V4RWMA.js} +1 -1
- package/dist/m/{c-HIX5H5L7.js → c-XHZIKRCV.js} +1 -1
- package/dist/m/{c-2BLVA6IN.js → c-XQTERKQA.js} +1 -1
- package/dist/m/{c-PYG2NGWU.js → c-YFO6ZJLQ.js} +1 -1
- package/dist/m/{c-7CM4GMTS.js → c-YX2MC7YL.js} +1 -1
- package/dist/m/{c-OYHI67B6.js → c-YYGUHSZR.js} +1 -1
- package/dist/m/{c-YYMZWQLR.js → c-Z2OZFX3N.js} +1 -1
- package/dist/m/{c-AT7GLQGV.js → c-ZEA3DCG3.js} +1 -1
- package/dist/m/{c-T3P3AXEW.js → c-ZJG6C2WL.js} +1 -1
- package/dist/m/{c-FVPNX2GO.js → c-ZORVIXUR.js} +1 -1
- package/dist/m/{c-SKMIR5HQ.js → c-ZPI7M5U5.js} +1 -1
- package/dist/m/core/{admin-attrs-ONRWVXPK.js → admin-attrs-ZI6K6UGM.js} +1 -1
- package/dist/m/core/{autosave-TBKAAAFB.js → autosave-BSM2ABJL.js} +1 -1
- package/dist/m/core/{conflict-notice-FOEE6I7E.js → conflict-notice-7EQLDYPA.js} +1 -1
- package/dist/m/core/draft-mode-M5XNYBMY.js +1 -0
- package/dist/m/core/{host-permission-X4BENZEU.js → host-permission-5BYP24GC.js} +1 -1
- package/dist/m/core/{is-edit-mode-FFHCQ5DR.js → is-edit-mode-73OXKK5H.js} +1 -1
- package/dist/m/core/{persist-6ILUR34S.js → persist-2SZO3PCE.js} +1 -1
- package/dist/m/core/{recovery-APWADU4K.js → recovery-VZF7RJZF.js} +1 -1
- package/dist/m/core/{save-6HT2LABE.js → save-K6Q47J2X.js} +1 -1
- package/dist/m/core/{save-core-EVMNZQ4V.js → save-core-U3Z44XBO.js} +1 -1
- package/dist/m/core/{site-edits-G4BOZMV4.js → site-edits-CFMF6GHD.js} +1 -1
- package/dist/m/core/{snapshot-FJP5IJL3.js → snapshot-PWCHYFL6.js} +1 -1
- package/dist/m/core/unsaved-warning-2WRZLJH5.js +1 -0
- package/dist/m/events/{index-B6TGDYMG.js → index-YKQIBZE5.js} +1 -1
- package/dist/m/internals/index-FSLC4M7J.js +1 -0
- package/dist/m/lib/{cache-bust-NH7VBWHO.js → cache-bust-BL4KUQAJ.js} +1 -1
- package/dist/m/{loader-GLLVDUZA.js → loader-RC54UV7H.js} +1 -1
- package/dist/m/manifest-3B84C829.js +1 -0
- package/dist/m/manifest-edit-1CB79AD4.js +1 -0
- package/dist/m/manifest.json +1165 -1115
- package/dist/m/options/{options-55LQHSJ4.js → options-LKIZ7YTG.js} +1 -1
- package/dist/m/page/{editor-KAZDJNND.js → editor-PKSPJ2XJ.js} +2 -2
- package/dist/m/plugins/{ai-edit-LABECCSN.js → ai-edit-3LG6MGS3.js} +1 -1
- package/dist/m/plugins/{demo-T7B4RIKL.js → demo-LMCMBILC.js} +1 -1
- package/dist/m/plugins/{derive-6LPJOCAV.js → derive-7DR5TUDH.js} +1 -1
- package/dist/m/plugins/{indicator-J4ABFARX.js → indicator-CTKX4EY7.js} +1 -1
- package/dist/m/plugins/{live-PGBIEMGB.js → live-IFLL6YN5.js} +1 -1
- package/dist/m/plugins/{menu-YZL3X2AJ.js → menu-YJZ3JWBC.js} +1 -1
- package/dist/m/plugins/{page-WOCNX2IN.js → page-GTDPYGE4.js} +2 -2
- package/dist/m/plugins/{page-view-SJODOOGE.js → page-view-NMCCU6MF.js} +1 -1
- package/dist/m/plugins/{people-C4TCWFOQ.js → people-6WIWCZEG.js} +1 -1
- package/dist/m/plugins/{richclay-Y2NV44NA.js → richclay-L3BZMX4I.js} +2 -2
- package/dist/m/plugins/{sortable-XCHQG65Z.js → sortable-365SRRL3.js} +1 -1
- package/dist/m/plugins/{source-YK7MO23W.js → source-7LSGOV46.js} +1 -1
- package/dist/m/plugins/{undo-VLRBQNPN.js → undo-UES4KS7B.js} +1 -1
- package/dist/m/plugins/{upgrade-NNTJBSK2.js → upgrade-MMPZUCDM.js} +1 -1
- package/dist/m/plugins/{upload-ZKKJV76X.js → upload-NZET3DNQ.js} +1 -1
- package/dist/m/plugins/visitor-drafts-V5YB7XDH.js +20 -0
- package/dist/m/plugins/{visitor-drafts-owner-LHUHFU3L.js → visitor-drafts-owner-TLECTYWS.js} +1 -1
- package/dist/m/plugins/{visitor-menu-FY4KM2SW.js → visitor-menu-QDV2MYJN.js} +1 -1
- package/dist/m/plugins/wire-3YGUO3GE.js +1 -0
- package/dist/m/{reader-core-T2S3JC4E.js → reader-core-VR7EL4WV.js} +2 -2
- package/dist/m/sync/live-sync-XMXXZS3G.js +1 -0
- package/dist/m/vendor/sap-core.vendor-JANUQULT.js +7 -0
- package/dist/offline-manifest.json +665 -635
- package/docs/guide.md +1 -0
- package/entries/sap.js +6 -5
- package/package.json +1 -1
- package/src/core/draft-mode.js +5 -0
- package/src/core/save-core.js +10 -10
- package/src/core/save.js +1 -1
- package/src/lib/dirty-gate.js +19 -0
- package/src/plugins/menu/visitor.js +33 -1
- package/src/plugins/visitor-drafts/commit.js +50 -3
- package/src/plugins/visitor-drafts/idb.js +8 -2
- package/src/plugins/visitor-drafts/recovery-menu.js +118 -0
- package/src/plugins/visitor-drafts/recovery.js +64 -0
- package/src/plugins/visitor-drafts/session.js +61 -13
- package/src/plugins/visitor-drafts/store.js +44 -8
- package/src/plugins/visitor-drafts.js +34 -5
- package/src/sync/live-sync.js +1 -1
- package/src/sync/wire-profile.js +9 -4
- package/src/vendor/sap-core.vendor.js +6 -5
- package/src/vendor/sap-ownership.vendor.js +181 -11
- package/tool-generation/system.md +1 -1
- package/dist/m/attrs/save-freeze-JZHKRQLR.js +0 -1
- package/dist/m/c-6Q6RGFBF.js +0 -1
- package/dist/m/c-APGHGDZM.js +0 -1
- package/dist/m/c-EILLN2H2.js +0 -1
- package/dist/m/c-HTLYXCUH.js +0 -1
- package/dist/m/c-MFOSMAVM.js +0 -3
- package/dist/m/c-R23UHMXG.js +0 -1
- package/dist/m/c-SGH3UTF3.js +0 -1
- package/dist/m/c-U4NTUVDZ.js +0 -1
- package/dist/m/c-V2U3F4QX.js +0 -1
- package/dist/m/c-VG5XIN4T.js +0 -1
- package/dist/m/c-VHSMPITY.js +0 -1
- package/dist/m/core/draft-mode-4MCL3LYI.js +0 -1
- package/dist/m/core/unsaved-warning-ITZDIZ2I.js +0 -1
- package/dist/m/internals/index-HS3CQDFW.js +0 -1
- package/dist/m/manifest-50FF1C45.js +0 -1
- package/dist/m/manifest-edit-BE1A621D.js +0 -1
- package/dist/m/plugins/visitor-drafts-RTZNONHT.js +0 -20
- package/dist/m/plugins/wire-M2NR354P.js +0 -1
- package/dist/m/sync/live-sync-Z64YREWQ.js +0 -1
- package/dist/m/vendor/sap-core.vendor-QAEPMETX.js +0 -6
- /package/dist/m/plugins/{richclay-Y2NV44NA.js.LEGAL.txt → richclay-L3BZMX4I.js.LEGAL.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a,b,c}from"../c-SUAC5RSG.js";import"../c-EQ5NBOGA.js";import"../c-C7SUMNMI.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4TWEIKZ.js";import"../c-HA6INT6J.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{c as default,a as modeParticipant,b as wire,a as wireParticipant};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{b as D,c as W}from"./c-NUHP2XDB.js";import{g as z}from"./c-
|
|
1
|
+
import{b as D,c as W}from"./c-NUHP2XDB.js";import{g as z}from"./c-QCDVDZIR.js";import{a as m}from"./c-VKEDWYDF.js";import{b as F}from"./c-MZCOGNZL.js";import{e as H}from"./c-EQ5NBOGA.js";import"./c-IJUK2GPW.js";import{a as S,b as f,c as r,f as u,g as n,h as b,j as T,o as q}from"./c-C7SUMNMI.js";import{c as j,e as $}from"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-U4TWEIKZ.js";import"./c-MOP5KBWZ.js";import"./c-2YYDMLNZ.js";import"./c-HA6INT6J.js";import{d as U,s as V}from"./c-ICMAOOGK.js";import"./c-WRBKEJD4.js";import{a as k}from"./c-VHNSBD2M.js";var C={};k(C,{activateInitialMode:()=>Ee,canEdit:()=>r,default:()=>Le,init:()=>N,isEditMode:()=>u,isOwner:()=>b,mode:()=>n,modeLifecycle:()=>be,noteLiveSwitch:()=>xe,setMode:()=>y,setPageTypeOnPageLoad:()=>X,toggleEditMode:()=>Y});var A=!1,ve=e=>{if(typeof e?.id=="string"&&e.id.startsWith("clay:"))throw new TypeError(`clay.modeLifecycle: the id "${e.id}" is reserved`);return q(e)},be={register:ve,canWrite:()=>T().phase==="idle"&&u,get state(){return Object.freeze(T())}},L=null,G=()=>L||=import("./c-GDNZEOOZ.js").catch(()=>L=null),M=null,xe=e=>{M=e};async function Ee(){if(u)try{await(await G()).activateInitial()}catch(e){console.error("clayjs: the mode lifecycle failed to start:",e)}}var p=null;async function y(e){if(e!=="edit"&&e!=="view")throw new TypeError(`clay.setMode: unknown mode "${e}"`);if(p)return p.target===e?p.promise:{ok:!1,mode:n,code:"busy"};if(e===n&&!L)return{ok:!0,mode:n,changed:!1};if(f)return{ok:!1,mode:n,code:"not-allowed"};let t=ke(e);p={target:e,promise:t};try{return await t}finally{p?.promise===t&&(p=null)}}async function ke(e){let t=typeof window<"u"?window.clay?._requestHostMode:void 0;if(typeof t=="function"&&e!==n){let o;try{o=await t(e)}catch{return{ok:!1,mode:n,code:"host-failed"}}if(o?.reason!=="host-unsupported")return o?.ok?(A=!0,{ok:!0,mode:e,changed:!0,reloading:!0}):{ok:!1,mode:n,code:o?.reason||"host-refused"}}return e==="edit"&&n!=="edit"?Se():!r&&!(e==="view"&&n==="edit")?{ok:!1,mode:n,code:"not-allowed"}:J(e)}async function Se(){let e=location.pathname,{checkHostPermission:t}=await import("./core/host-permission-5BYP24GC.js"),o=await t({fresh:!0});return location.pathname!==e?{ok:!1,mode:n,code:"cancelled"}:o===!1?{ok:!1,mode:n,code:"permission-denied"}:r?J("edit"):{ok:!1,mode:n,code:"not-allowed"}}async function J(e){if(M){let t=await G(),o=t&&await t.switchMode(e,M);if(o)return o}if(e===n)return{ok:!0,mode:n,changed:!1};if(n==="edit"){let t;try{t=await window.clay?.save?.flush?.()}catch(o){return{ok:!1,mode:n,code:"save-failed",state:o?.state}}if(t&&t.state&&t.state!=="saved"&&t.state!=="clean")return{ok:!1,mode:n,code:"save-failed",state:t.state}}return A=!0,S({mode:e,canEdit:r,internal:!0}),location.reload(),{ok:!0,mode:e,changed:!0,reloading:!0}}function Te(){let e=new URL(window.location.href);e.searchParams.set("editmode","true"),window.location.href=e.toString()}var Y=()=>f?Te():y(n==="edit"?"view":"edit");function De(){!r||f||window.addEventListener("pagehide",()=>{A||S({mode:n,canEdit:r,internal:!1})})}function B(){r?document.documentElement.setAttribute("canedit","true"):document.documentElement.removeAttribute("canedit")}function X(){m(()=>{document.documentElement.setAttribute("editmode",u?"true":"false"),document.documentElement.setAttribute("pageowner",b?"true":"false"),B(),document.addEventListener("clay:capabilitychange",B),f?document.documentElement.setAttribute("draftmode","true"):document.documentElement.removeAttribute("draftmode")})}function N(){X(),De()}N();var Le={init:N,setMode:y,toggleEditMode:Y,isEditMode:u,isOwner:b,canEdit:r,mode:n};var ae={};var Q=typeof navigator<"u"&&/Mac|iPhone|iPad/.test(navigator.platform||navigator.userAgent),Me=Q?"\u2318\u21E7E":"Ctrl+Shift+E",Ae=`.clay-mode-note {
|
|
2
2
|
position: fixed;
|
|
3
3
|
right: calc(16px + env(safe-area-inset-right, 0px));
|
|
4
4
|
bottom: calc(16px + env(safe-area-inset-bottom, 0px));
|
|
@@ -74,4 +74,4 @@ import{b as D,c as W}from"./c-NUHP2XDB.js";import{g as z}from"./c-TWCXBWS3.js";i
|
|
|
74
74
|
right: calc(16px + env(safe-area-inset-right, 0px));
|
|
75
75
|
max-width: none;
|
|
76
76
|
}
|
|
77
|
-
}`,Z=new WeakSet;function ee(e){import("./c-B4VYNXTQ.js").then(({mountEditorUI:t})=>{Z.has(e)||t({name:"mode-note",content:e,css:[Ae]})})}function te(e){Z.add(e),e.getRootNode().host?.remove()}function oe(e){return y(e).then(t=>{t.ok||import("./c-QHIWXHRO.js").then(({modeRefusalText:o})=>{let i=o(t);i&&(typeof window.clay?.toast=="function"?window.clay.toast(i,"error"):typeof window.clay?.menu?.note=="function"?window.clay.menu.note(i):re(i))})})}function Ne(e){(r||n==="edit")&&(!(Q?e.metaKey:e.ctrlKey)||!e.shiftKey||e.altKey||e.code!=="KeyE"||e.isComposing||(e.preventDefault(),oe(n==="edit"?"view":"edit")))}var Ce="In view mode, so edits won't be saved.",Re=":is(input, textarea, select):is([persist], [clay-persist])",R="[editmode\\:contenteditable], [viewmode\\:readonly], [viewmode\\:disabled]",a=null;function ne(e){if(!e.isConnected)return!1;let t=V(e);return t.persist===U.FULL&&!t.extension}function ie(e){let t=e?.nodeType===1?e:e?.parentElement;if(!t)return null;let o=t.closest(Re)||t.closest(R)||(t.isContentEditable?t:null);return o&&ne(o)?o:null}var Pe=e=>e.isContentEditable||e.matches("input, textarea, select")&&!e.readOnly&&!e.disabled,P=()=>r&&n==="view";function Ie(e){P()&&ie(e.target)&&I()}function Oe(e){if(!P()||e.defaultPrevented||e.isComposing||e.ctrlKey||e.metaKey||e.altKey||!(e.key.length===1&&e.key!==" ")&&e.key!=="Backspace"&&e.key!=="Delete")return;let t=e.target;if(t?.nodeType!==1||Pe(t)||t!==document.body&&!t.closest(R))return;ie(t===document.body?document.getSelection()?.anchorNode:t)?.matches(R)&&I()}function _e(e){if(!P())return;let t=e.target?.closest?.("[viewmode\\:disabled]");t&&ne(t)&&I()}function I(){a||(console.warn('clayjs: this tab is in view mode, so edits made here are not saved. clay.setMode("edit") switches; a page that must edit as soon as it opens declares <html opens-in="edit">.'),document.querySelector('clay-editor-ui[data-clay-ui="mode-note"]')?.remove(),a=document.createElement("div"),a.setAttribute("clay","editor-ui"),a.setAttribute("role","alert"),a.className="clay-mode-note clay-view-notice",a.innerHTML='<span></span><button type="button" class="clay-view-notice__edit">Switch to edit</button>',a.querySelector("span").textContent=Ce,a.querySelector("button").addEventListener("click",()=>oe("edit")),ee(a))}function Ke(){n==="view"||!a||(te(a),a=null)}function re(e){let t=document.createElement("div");t.setAttribute("clay","editor-ui"),t.setAttribute("role","status"),t.className="clay-mode-note",t.innerHTML=`<span>This page opens in view mode. Press <kbd>${Me}</kbd> to edit.</span><button type="button" aria-label="Dismiss">\xD7</button>`,e&&(t.querySelector("span").textContent=e);let o=()=>te(t);t.querySelector("button").addEventListener("click",o),addEventListener("keydown",i=>{i.key==="Escape"&&o()},{once:!0}),setTimeout(o,12e3),ee(t)}f||(document.addEventListener("keydown",Ne),document.addEventListener("input",Ie,!0),document.addEventListener("pointerdown",_e,!0),window.addEventListener("keydown",Oe),document.addEventListener("clay:modechange",Ke),m(()=>{if(!r||n!=="view"||document.querySelector("[clay-mode-toggle]"))return;(t=>{let o=window.clay?.ready;window.clay?.storage||typeof o?.then!="function"?queueMicrotask(t):o.then(t,()=>{})})(()=>{if(window.clay?.menu||window.clay?.plugins?.includes?.("menu"))return;let t=window.clay?.storage?.local;!t||t.get("mode-note")||(t.set("mode-note",!0),re())})}));var O={};k(O,{whenShown:()=>Ve});var je="This page can't be edited: the app serving it is out of date. Update HTML Clay to 1.9.0 or newer.",s=null,d=null;function h(){if(!s)return;let e=window.visualViewport,t=e?Math.max(0,window.innerHeight-e.height-e.offsetTop):0;D(s,"bottom",`calc(${16+t}px + env(safe-area-inset-bottom,0px))`)}function $e(){s&&(D(s,"display","none"),window.visualViewport?.removeEventListener("resize",h),window.visualViewport?.removeEventListener("scroll",h))}function qe(){s=d.bevelSurface("div",["position:fixed","left:50%","transform:translateX(-50%)","z-index:2147483001","display:flex","align-items:center","gap:10px 12px","width:max-content","max-width:calc(100vw - 24px)","flex-wrap:wrap","padding:8px 8px 8px 14px","text-align:left",`color-scheme:${d.pageScheme()}`]),s.setAttribute("clay",d.RUNTIME_ONLY),s.setAttribute("data-clay-stale-host",""),s.setAttribute("role","alert");let e=W("span",["all:initial","color-scheme:inherit","display:inline-block","flex:none","width:8px","height:8px","border-radius:50%",`background:${d.TOKENS.ox}`]);e.setAttribute("clay",d.RUNTIME_ONLY);let t=d.bevelButton("Dismiss",{small:!0,variant:"quiet",onClick:$e});t.setAttribute("aria-label","Dismiss this message"),s.append(e,d.bevelText("span",[],je),t),document.body.appendChild(s),h(),d.paintLook(s,{background:d.TOKENS.surface}),window.visualViewport?.addEventListener("resize",h),window.visualViewport?.addEventListener("scroll",h)}async function Ue(){if(!$()||u)return;let[e,t]=await Promise.all([import("./c-TFLRT5JX.js"),import("./c-46LJAZZJ.js")]);d={...e,TOKENS:t.TOKENS},qe()}var se=Promise.resolve();m(()=>{se=Ue()});var Ve=()=>se;var K={};k(K,{createPageDataApi:()=>le,readData:()=>Ge,setPageDataLiveSync:()=>Ye,writeData:()=>Je});var Fe="data-read",ze="data-write";function x(e,t,o){let i=new Error(t);return i.code=e,i.details=o,i}async function ce(e){if(typeof e.json=="function")return e.json();let t=await e.text();return t?JSON.parse(t):null}async function He(e){let t={};try{t=await ce(e)||{}}catch{}let o=t.message||t.error||e.statusText||`Request failed (${e.status})`,i=new Error(o);return i.status=e.status,i.error=t.error,i.details=t.details,i}function We(e){let t=e.headers?.get?.("ETag");return typeof t=="string"&&t?t:null}function Be(e,t){let o=`${t.origin}${t.pathname}`;return e!==void 0?`${o}?data=${encodeURIComponent(JSON.stringify(e))}`:`${t.origin}/_/api${t.pathname}`}async function de(){let{isDraftMode:e}=await import("./core/is-edit-mode-
|
|
77
|
+
}`,Z=new WeakSet;function ee(e){import("./c-B4VYNXTQ.js").then(({mountEditorUI:t})=>{Z.has(e)||t({name:"mode-note",content:e,css:[Ae]})})}function te(e){Z.add(e),e.getRootNode().host?.remove()}function oe(e){return y(e).then(t=>{t.ok||import("./c-QHIWXHRO.js").then(({modeRefusalText:o})=>{let i=o(t);i&&(typeof window.clay?.toast=="function"?window.clay.toast(i,"error"):typeof window.clay?.menu?.note=="function"?window.clay.menu.note(i):re(i))})})}function Ne(e){(r||n==="edit")&&(!(Q?e.metaKey:e.ctrlKey)||!e.shiftKey||e.altKey||e.code!=="KeyE"||e.isComposing||(e.preventDefault(),oe(n==="edit"?"view":"edit")))}var Ce="In view mode, so edits won't be saved.",Re=":is(input, textarea, select):is([persist], [clay-persist])",R="[editmode\\:contenteditable], [viewmode\\:readonly], [viewmode\\:disabled]",a=null;function ne(e){if(!e.isConnected)return!1;let t=V(e);return t.persist===U.FULL&&!t.extension}function ie(e){let t=e?.nodeType===1?e:e?.parentElement;if(!t)return null;let o=t.closest(Re)||t.closest(R)||(t.isContentEditable?t:null);return o&&ne(o)?o:null}var Pe=e=>e.isContentEditable||e.matches("input, textarea, select")&&!e.readOnly&&!e.disabled,P=()=>r&&n==="view";function Ie(e){P()&&ie(e.target)&&I()}function Oe(e){if(!P()||e.defaultPrevented||e.isComposing||e.ctrlKey||e.metaKey||e.altKey||!(e.key.length===1&&e.key!==" ")&&e.key!=="Backspace"&&e.key!=="Delete")return;let t=e.target;if(t?.nodeType!==1||Pe(t)||t!==document.body&&!t.closest(R))return;ie(t===document.body?document.getSelection()?.anchorNode:t)?.matches(R)&&I()}function _e(e){if(!P())return;let t=e.target?.closest?.("[viewmode\\:disabled]");t&&ne(t)&&I()}function I(){a||(console.warn('clayjs: this tab is in view mode, so edits made here are not saved. clay.setMode("edit") switches; a page that must edit as soon as it opens declares <html opens-in="edit">.'),document.querySelector('clay-editor-ui[data-clay-ui="mode-note"]')?.remove(),a=document.createElement("div"),a.setAttribute("clay","editor-ui"),a.setAttribute("role","alert"),a.className="clay-mode-note clay-view-notice",a.innerHTML='<span></span><button type="button" class="clay-view-notice__edit">Switch to edit</button>',a.querySelector("span").textContent=Ce,a.querySelector("button").addEventListener("click",()=>oe("edit")),ee(a))}function Ke(){n==="view"||!a||(te(a),a=null)}function re(e){let t=document.createElement("div");t.setAttribute("clay","editor-ui"),t.setAttribute("role","status"),t.className="clay-mode-note",t.innerHTML=`<span>This page opens in view mode. Press <kbd>${Me}</kbd> to edit.</span><button type="button" aria-label="Dismiss">\xD7</button>`,e&&(t.querySelector("span").textContent=e);let o=()=>te(t);t.querySelector("button").addEventListener("click",o),addEventListener("keydown",i=>{i.key==="Escape"&&o()},{once:!0}),setTimeout(o,12e3),ee(t)}f||(document.addEventListener("keydown",Ne),document.addEventListener("input",Ie,!0),document.addEventListener("pointerdown",_e,!0),window.addEventListener("keydown",Oe),document.addEventListener("clay:modechange",Ke),m(()=>{if(!r||n!=="view"||document.querySelector("[clay-mode-toggle]"))return;(t=>{let o=window.clay?.ready;window.clay?.storage||typeof o?.then!="function"?queueMicrotask(t):o.then(t,()=>{})})(()=>{if(window.clay?.menu||window.clay?.plugins?.includes?.("menu"))return;let t=window.clay?.storage?.local;!t||t.get("mode-note")||(t.set("mode-note",!0),re())})}));var O={};k(O,{whenShown:()=>Ve});var je="This page can't be edited: the app serving it is out of date. Update HTML Clay to 1.9.0 or newer.",s=null,d=null;function h(){if(!s)return;let e=window.visualViewport,t=e?Math.max(0,window.innerHeight-e.height-e.offsetTop):0;D(s,"bottom",`calc(${16+t}px + env(safe-area-inset-bottom,0px))`)}function $e(){s&&(D(s,"display","none"),window.visualViewport?.removeEventListener("resize",h),window.visualViewport?.removeEventListener("scroll",h))}function qe(){s=d.bevelSurface("div",["position:fixed","left:50%","transform:translateX(-50%)","z-index:2147483001","display:flex","align-items:center","gap:10px 12px","width:max-content","max-width:calc(100vw - 24px)","flex-wrap:wrap","padding:8px 8px 8px 14px","text-align:left",`color-scheme:${d.pageScheme()}`]),s.setAttribute("clay",d.RUNTIME_ONLY),s.setAttribute("data-clay-stale-host",""),s.setAttribute("role","alert");let e=W("span",["all:initial","color-scheme:inherit","display:inline-block","flex:none","width:8px","height:8px","border-radius:50%",`background:${d.TOKENS.ox}`]);e.setAttribute("clay",d.RUNTIME_ONLY);let t=d.bevelButton("Dismiss",{small:!0,variant:"quiet",onClick:$e});t.setAttribute("aria-label","Dismiss this message"),s.append(e,d.bevelText("span",[],je),t),document.body.appendChild(s),h(),d.paintLook(s,{background:d.TOKENS.surface}),window.visualViewport?.addEventListener("resize",h),window.visualViewport?.addEventListener("scroll",h)}async function Ue(){if(!$()||u)return;let[e,t]=await Promise.all([import("./c-TFLRT5JX.js"),import("./c-46LJAZZJ.js")]);d={...e,TOKENS:t.TOKENS},qe()}var se=Promise.resolve();m(()=>{se=Ue()});var Ve=()=>se;var K={};k(K,{createPageDataApi:()=>le,readData:()=>Ge,setPageDataLiveSync:()=>Ye,writeData:()=>Je});var Fe="data-read",ze="data-write";function x(e,t,o){let i=new Error(t);return i.code=e,i.details=o,i}async function ce(e){if(typeof e.json=="function")return e.json();let t=await e.text();return t?JSON.parse(t):null}async function He(e){let t={};try{t=await ce(e)||{}}catch{}let o=t.message||t.error||e.statusText||`Request failed (${e.status})`,i=new Error(o);return i.status=e.status,i.error=t.error,i.details=t.details,i}function We(e){let t=e.headers?.get?.("ETag");return typeof t=="string"&&t?t:null}function Be(e,t){let o=`${t.origin}${t.pathname}`;return e!==void 0?`${o}?data=${encodeURIComponent(JSON.stringify(e))}`:`${t.origin}/_/api${t.pathname}`}async function de(){let{isDraftMode:e}=await import("./core/is-edit-mode-73OXKK5H.js");return e?x("DataUnavailableInDraft","Page data is kept in this browser for this visitor."):null}function le({supports:e=H,token:t=j,fetchImpl:o=(...g)=>fetch(...g),getLocation:i=()=>window.location,eventTarget:ue=document,loadWriteModules:fe,syncTimeoutMs:me,httpTimeoutMs:pe}={}){let g=null,w=null;function we(c){g=c}async function ye(c){let v=await de();if(v)throw v;if(!await e(Fe))throw x("DataReadUnsupported","This host does not support reading page data.");let l;try{l=await o(Be(c,i()),{method:"GET",credentials:"same-origin",cache:"no-store",redirect:"error"})}catch(E){throw Object.assign(x("DataReadFailed",E?.message||"Could not read page data."),{cause:E})}if(!l.ok)throw await He(l);return{data:await ce(l),etag:We(l)}}function he(){return w||(w=import("./c-V2FPBRO6.js").then(({createPageDataWrite:c})=>c({supports:e,token:t,fetchImpl:o,getLocation:i,eventTarget:ue,getLiveSync:()=>g,loadWriteModules:fe,syncTimeoutMs:me,httpTimeoutMs:pe})).catch(c=>{throw w=null,c}),w)}async function ge(c,v){let l=await de();if(l)throw l;if(!await e(ze))throw x("DataWriteUnsupported","This host does not support writing page data.");return(await he()).writeData(c,v)}return{readData:ye,writeData:ge,setLiveSync:we}}var _=le(),Ge=_.readData,Je=_.writeData,Ye=_.setLiveSync;var lt={"lib/mutation.js":F,"core/preserve-authored.js":z,"core/edit-mode.js":C,"core/mode-key.js":ae,"core/stale-host-notice.js":O,"core/page-data.js":K};export{lt as core};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a,b as c,c as d,d as e,e as f,f as g,g as h}from"../c-QWB53KRW.js";import{f as b}from"../c-QDVG4NAZ.js";import"../c-LZJPNR2W.js";import"../c-QTTJYJMA.js";import"../c-5VYOWDTI.js";import"../c-P73XPAOA.js";import"../c-WYFDLITL.js";import"../c-MZCOGNZL.js";import"../c-LD6UVV5R.js";import"../c-PGSBXHUE.js";import"../c-KU3PX7LL.js";import"../c-EQ5NBOGA.js";import"../c-IJUK2GPW.js";import"../c-C7SUMNMI.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4TWEIKZ.js";import"../c-PNZIJFG7.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-MOP5KBWZ.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{e as LiveSync,d as REMOTE_WINS_SELECTOR,c as SYNC_IGNORE_SELECTOR,b as WIRE_PROFILES,a as conflicts,h as default,f as liveSync,g as morph};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import"../c-VHNSBD2M.js";var Ur=(()=>{var Se=Object.defineProperty,Xt=Object.getOwnPropertyDescriptor,Jt=Object.getOwnPropertyNames,Kt=Object.prototype.hasOwnProperty,Qt=(e,t)=>{for(var n in t)Se(e,n,{get:t[n],enumerable:!0})},Zt=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Jt(t))!Kt.call(e,a)&&a!==n&&Se(e,a,{get:()=>t[a],enumerable:!(r=Xt(t,a))||r.enumerable});return e},en=e=>Zt(Se({},"__esModule",{value:!0}),e),Xe={};Qt(Xe,{FULL_SAPJS:()=>pe,Sap:()=>me,default:()=>Hr,mount:()=>zr,mountAll:()=>Vt,needsFullSapjs:()=>Ye,runtime:()=>Br});function tn(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 nn={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"]),rn=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 an(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 on=class{constructor(e){this.appName=e,this.errors=[],this.warnings=[],this.halted=!1,this.haltReason=null}block(e,t,n={}){let r=(nn[e]||{}).slug||"error",a={code:e,slug:r,el:an(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
|
+
`+(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=ln(e,a);l<r&&(r=l,n=a)}return n}function ln(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 sn(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 un(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 cn(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 V(e,t){if(!(t(e)===!1||ie(e)))for(let n=e.firstElementChild;n;n=n.nextElementSibling)V(n,t)}var fn=new Set($e),dn={readonly:"readOnly",novalidate:"noValidate"},pn=0,nt=new WeakMap;function mn(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}-${(pn++).toString(36)}`,nt.set(e,r)),r}function hn(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 bn(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 gn(e,t){return t==="bool"?e?"true":"false":e==null?"":String(e)}function ot(e,t){return fn.has(t)&&typeof e[dn[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 yn(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 wn(e,t){return Array.isArray(e)?t==null?e.length:e.reduce((n,r)=>n+(t(r)?1:0),0):0}function vn(e,t){let n=be(e,t);return n.length?st(e,t)/n.length:0}function En(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 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.max(...n.map(Number)):n.reduce((r,a)=>String(r)>=String(a)?r:a):0}function kn(e,t,n){let r=O(e)===1?t:n??t+"s";return`${e} ${r}`}function xn(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 W(e){return typeof e=="number"?e:Number(e)}var X={usd:e=>"$"+W(e).toLocaleString("en-US",{maximumFractionDigits:0}),usd2:e=>"$"+W(e).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2}),pct:e=>Math.round(W(e))+"%",pct1:e=>W(e).toFixed(1)+"%",int:e=>Math.round(W(e)).toLocaleString("en-US"),num:e=>W(e).toLocaleString("en-US"),num2:e=>W(e).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2}),compact:e=>W(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=W(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}`}},Sn=new Set(["usd","usd2","pct","pct1","int","num","num2","compact","clock"]);function $n(e,t){if(!e)return t==null?"":String(t);let n=X[e];if(typeof n!="function"){let r=new Error(`unknown format "${e}"`);throw r.sapCode="E22",r}if(Sn.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=[],ut=[],se=null,ct=null,Nn=/'(?:\\.|[^'\\])*'|"(?:\\.|[^"\\])*"|[`}](?:\\.|[^`\\])*?(?:`|\$\{)|[{}]/.source;function Tn(e,t){Pe=Object.keys(e),ut=Object.values(e);let n=[...t.keys()].filter(r=>Re(r)&&!(r in e));ct=t,se=n.length?new RegExp(`${Nn}|\\.{3}|(${n.join("|")})\\s*\\(|[\\w$.]+`,"g"):null,le.clear()}function ft(e){return e in globalThis&&globalThis[e]?.nodeType!==1}function Re(e){return/^[a-z_]\w*$/i.test(e)&&!je.includes(e)&&!ft(e)}function _n(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 ct.get(a);r[0]==="}"&&!t.pop()?.[1]?se.lastIndex=n.index+1:r.endsWith("{")&&t.push(r)}return null}var Ln=/\bstate\.([a-z][a-z0-9_]*)/g,Cn=/\bitem\.([a-z][a-z0-9_]*)/g;function jn(e){let t=n=>new Set([...(e||"").matchAll(n)].map(r=>r[1]));return{state:t(Ln),item:t(Cn)}}function dt(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
|
+
${e}`:`"use strict"; return (${e});`;r={fn:Pe.length?new Function(...Pe,`return function(${je}){${a}
|
|
5
|
+
}`)(...ut):new Function(...je,a),src:e,statement:t,deps:jn(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 Pn(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,X,O,st,wn,vn,En,An,kn,xn)}var ue={},U=null,pt=!0,ye=!1;function mt(){ue={}}function Rn(e){let t=ye;return U?Oe(U.takeRecords()):pt&&Wn(),ye=!!U&&e.getRootNode()===document,t}function Mn(e){ye=e}function On(){U&&Oe(U.takeRecords())}function Wn(){if(typeof document>"u"||typeof MutationObserver!="function"){pt=!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")ht(t.target);else if(t.addedNodes.length&&!(t.target.nodeType===1&&Le(t.target)))for(let n of t.addedNodes)n.nodeType===1&&V(n,ht)}function ht(e){e._sapPlan&&(e._sapPlan=null)}function ce(e){if(!ye)return bt(e);let t=e._sapPlan;return t&&t.gen===ue?t:e._sapPlan=bt(e)}function D(e,t,n){let r=dt(t,n);return r.waits&&(e.waits=r.waits),r}function bt(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:D(t,l)});break;case"show":(t.paints||(t.paints=[])).push({kind:"show",entry:D(t,l)});break;case"effect":(t.effects||(t.effects=[])).push({entry:D(t,l,!0)});break;case"invalid":(t.invalids||(t.invalids=[])).push({entry:D(t,l)});break;default:gt(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:D(t,l)});break;case"text":(t.paints||(t.paints=[])).push({kind:"text",fmt:b,entry:D(t,l)});break;case"attr":(t.paints||(t.paints=[])).push({kind:"attr",arg:b,entry:D(t,l)});break;case"class":(t.paints||(t.paints=[])).push({kind:"class",arg:b,entry:D(t,l)});break;case"css":(t.paints||(t.paints=[])).push({kind:"css",arg:b,entry:D(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:gt(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),Fn(t)?Dn():t}function gt(e,t,n,r){let a=cn(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 Dn(){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 Fn(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 zn(){J=new WeakMap,K=new WeakMap}function yt(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&&V(a,Bn)}}function Bn(e){J.delete(e),K.delete(e)}function In(){return I}function Hn(e){return I?K.get(e):void 0}function Un(e,t){I&&K.set(e,t)}function wt(e){K.delete(e)}function qn(e){let t=I;return!Q&&typeof MutationObserver=="function"&&(Q=new MutationObserver(yt),Q.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})),Q&&yt(Q.takeRecords()),I=!!Q&&e.getRootNode()===document,t}function Yn(e){I=e}function vt(e){let t=J.get(e);return t||J.set(e,t={attrs:new Map,hasText:!1,text:""}),t}function Gn(e,t){if(!I)return e.getAttribute(t);let n=vt(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=vt(e);return t.hasText||(t.text=e.textContent,t.hasText=!0),t.text}function Et(e){return(e.getAttribute("type")||"text").toLowerCase()}function We(e){let t=e.tagName;if(t==="INPUT"){let n=Et(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 Xn(e,t=e){let n=e.tagName;if(n==="INPUT"){let r=Et(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
|
+
`)?`
|
|
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};
|