@panphora/clayjs 1.16.0 → 1.18.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.
Files changed (511) hide show
  1. package/dist/all.js +1 -1
  2. package/dist/clay-dom.js +1 -1
  3. package/dist/clay-events.js +1 -1
  4. package/dist/clay-internals.js +1 -1
  5. package/dist/clay-options.js +1 -1
  6. package/dist/clay-router.js +1 -1
  7. package/dist/clay-ui.js +1 -1
  8. package/dist/clay-utils.js +1 -1
  9. package/dist/clay.js +1 -1
  10. package/dist/clay.standalone.js +72519 -59839
  11. package/dist/m/attrs/refetch-on-save-ZUE7PSCI.js +1 -0
  12. package/dist/m/attrs/save-freeze-LWGF6XUN.js +1 -0
  13. package/dist/m/c-2GRUM77Q.js +30 -0
  14. package/dist/m/c-2KIEGNC4.js +1 -0
  15. package/dist/m/{c-5R4PTRG2.js → c-2KL3BD52.js} +1 -1
  16. package/dist/m/c-2YYDMLNZ.js +1 -0
  17. package/dist/m/c-2ZZBC45O.js +1 -0
  18. package/dist/m/c-372N6H3B.js +1 -0
  19. package/dist/m/{c-4WKFKEKF.js → c-3G2DGZUP.js} +1 -1
  20. package/dist/m/c-3LDGIBMN.js +1 -0
  21. package/dist/m/c-3O7OBDCM.js +1 -0
  22. package/dist/m/c-4ASQPRQL.js +1 -0
  23. package/dist/m/c-4TXNLX4K.js +6 -0
  24. package/dist/m/c-4YU3BR4D.js +6 -0
  25. package/dist/m/c-5734MF2P.js +1 -0
  26. package/dist/m/c-57XDY6HC.js +1 -0
  27. package/dist/m/{c-VFX45IZQ.js → c-5B4YBZXC.js} +1 -1
  28. package/dist/m/c-5ONTYIUI.js +1 -0
  29. package/dist/m/c-5OOVFCJM.js +1 -0
  30. package/dist/m/c-5T6NZHNM.js +1 -0
  31. package/dist/m/{c-YDH7Q3NY.js → c-5ZQV7KC4.js} +1 -1
  32. package/dist/m/{c-Z36J63PP.js → c-6DB2OLRJ.js} +1 -1
  33. package/dist/m/c-6DNRCPNM.js +1 -0
  34. package/dist/m/c-6UGWFMQC.js +2 -0
  35. package/dist/m/c-7K4SCQB7.js +1 -0
  36. package/dist/m/c-7MG5RU63.js +1 -0
  37. package/dist/m/c-7PRJCA3E.js +1 -0
  38. package/dist/m/c-A6L3FMUS.js +1 -0
  39. package/dist/m/c-AMU3BPPR.js +4 -0
  40. package/dist/m/c-AMYEFA2E.js +1 -0
  41. package/dist/m/c-AQYCG7QW.js +1 -0
  42. package/dist/m/c-ATKAOH23.js +1 -0
  43. package/dist/m/c-B3JM5ZXC.js +1 -0
  44. package/dist/m/c-B5CS55WR.js +1 -0
  45. package/dist/m/c-B5UJQT7W.js +1 -0
  46. package/dist/m/c-B7J4K2AE.js +3 -0
  47. package/dist/m/c-BHZYSHW4.js +1 -0
  48. package/dist/m/c-BIJALSRD.js +1 -0
  49. package/dist/m/c-BJ7YQ5QZ.js +1 -0
  50. package/dist/m/c-BPF2NSPV.js +1 -0
  51. package/dist/m/{c-KIPQJX4B.js → c-BRLCTNMC.js} +1 -1
  52. package/dist/m/c-BUAYFEV5.js +1 -0
  53. package/dist/m/c-C6IPRG34.js +1 -0
  54. package/dist/m/{c-2JL6E75N.js → c-CAS3NND4.js} +1 -1
  55. package/dist/m/{c-4DRMS4QG.js → c-CCQ25GFY.js} +1 -1
  56. package/dist/m/c-CJFDLD43.js +1 -0
  57. package/dist/m/c-COPTL5WB.js +1 -0
  58. package/dist/m/c-D3E4WJ4M.js +166 -0
  59. package/dist/m/c-D5IKEKXW.js +7 -0
  60. package/dist/m/c-DHBRA6DL.js +1 -0
  61. package/dist/m/c-DKLS74XB.js +72 -0
  62. package/dist/m/c-DVYGFTSK.js +3 -0
  63. package/dist/m/c-E3ZXARWA.js +1 -0
  64. package/dist/m/c-EK63G3CG.js +1 -0
  65. package/dist/m/c-ERQSNR6K.js +13 -0
  66. package/dist/m/c-EVYAISP3.js +1 -0
  67. package/dist/m/c-EXKHPOVC.js +3 -0
  68. package/dist/m/{c-7VGZ7RU5.js → c-FWKHM4E7.js} +1 -1
  69. package/dist/m/{c-4Q2XTQ2N.js → c-GBKB5WDL.js} +1 -1
  70. package/dist/m/c-GNDL3TKB.js +1 -0
  71. package/dist/m/c-GRWMD6O5.js +1 -0
  72. package/dist/m/c-GRXHHFPO.js +1 -0
  73. package/dist/m/{c-OYTFP5QN.js → c-GY422N3Q.js} +1 -1
  74. package/dist/m/c-HAWFNBYG.js +1 -0
  75. package/dist/m/c-HG2C77BM.js +4 -0
  76. package/dist/m/c-HHGJBU4D.js +1 -0
  77. package/dist/m/c-HMV6P4RX.js +1 -0
  78. package/dist/m/c-HMYWIHFG.js +1 -0
  79. package/dist/m/c-HT2DKBV2.js +1 -0
  80. package/dist/m/c-I2SCCUEW.js +1 -0
  81. package/dist/m/{c-HRDCD3WN.js → c-ICJYHABF.js} +2 -2
  82. package/dist/m/c-IMZCWYHR.js +7 -0
  83. package/dist/m/c-IVMD3FEM.js +1 -0
  84. package/dist/m/c-IVTRVENZ.js +1 -0
  85. package/dist/m/c-IW6GGOU2.js +1 -0
  86. package/dist/m/c-JKZJIUIP.js +1 -0
  87. package/dist/m/{c-NZMNXVF6.js → c-JNLX3RJB.js} +1 -1
  88. package/dist/m/c-JRKY44DK.js +1 -0
  89. package/dist/m/c-K3ADYNLU.js +1 -0
  90. package/dist/m/c-KBS3UV6B.js +1 -0
  91. package/dist/m/c-KGHVFRR3.js +1 -0
  92. package/dist/m/c-KJJPV77R.js +1 -0
  93. package/dist/m/{c-CZUSOB7V.js → c-KNPDOMDY.js} +1 -1
  94. package/dist/m/{c-5Y6TNX5W.js → c-KP64LT2A.js} +2 -2
  95. package/dist/m/c-KQ7E3PYY.js +1 -0
  96. package/dist/m/c-L3F5ZLIV.js +1 -0
  97. package/dist/m/{c-LR4CGEPT.js → c-L42OLXWM.js} +3 -2
  98. package/dist/m/c-L5VFATT6.js +1 -0
  99. package/dist/m/c-L7JL5TL3.js +3 -0
  100. package/dist/m/c-LKSL4AUJ.js +1 -0
  101. package/dist/m/c-M6FNQCTQ.js +1 -0
  102. package/dist/m/c-MCOOHCSG.js +1 -0
  103. package/dist/m/c-MHI3GYKF.js +1 -0
  104. package/dist/m/c-MWXFLW4J.js +1 -0
  105. package/dist/m/c-NEL7HQW3.js +1 -0
  106. package/dist/m/c-NQJRVJ56.js +1 -0
  107. package/dist/m/c-NWX3MFT4.js +1 -0
  108. package/dist/m/{c-HPURYVZS.js → c-OJYM642Q.js} +1 -1
  109. package/dist/m/c-OKXI52N7.js +1 -0
  110. package/dist/m/{c-MMUIUUZG.js → c-OPLUZR3A.js} +1 -1
  111. package/dist/m/{c-J7CA54IP.js → c-OTMKN2OO.js} +1 -1
  112. package/dist/m/{c-LTGMXXKO.js → c-OYRZ7XG2.js} +1 -1
  113. package/dist/m/c-P3OFYUMA.js +1 -0
  114. package/dist/m/c-PLN76GF3.js +6 -0
  115. package/dist/m/c-PLP4JKFC.js +1 -0
  116. package/dist/m/c-Q26MME6N.js +1 -0
  117. package/dist/m/{c-S7H2DRCB.js → c-Q3XOWZEV.js} +1 -1
  118. package/dist/m/{c-SWRJFCNN.js → c-QIKT6SKM.js} +1 -1
  119. package/dist/m/c-QIXT3Q7C.js +28 -0
  120. package/dist/m/c-QO4HNGCQ.js +1 -0
  121. package/dist/m/c-R27DWQKX.js +1 -0
  122. package/dist/m/{c-HVYXIS72.js → c-R2XUODVY.js} +1 -1
  123. package/dist/m/{c-QNKREOL6.js → c-R7LBFMF5.js} +1 -1
  124. package/dist/m/c-RND3G2S2.js +1 -0
  125. package/dist/m/c-S2U6NJU4.js +1 -0
  126. package/dist/m/c-SPZPGD3R.js +1 -0
  127. package/dist/m/c-SW4YEG2D.js +8 -0
  128. package/dist/m/c-SZGYW5HT.js +1 -0
  129. package/dist/m/c-T637T7SN.js +1 -0
  130. package/dist/m/c-TJAXGIRV.js +1 -0
  131. package/dist/m/{c-KKWLDOPM.js → c-TNEM3RNM.js} +1 -1
  132. package/dist/m/c-TTB5EK4S.js +32 -0
  133. package/dist/m/c-U7SHNWDH.js +1 -0
  134. package/dist/m/c-UDHIVLYH.js +20 -0
  135. package/dist/m/{c-BBVGTQG7.js → c-UGNV5MFB.js} +1 -1
  136. package/dist/m/{c-TQZ2JYHD.js → c-UORXLSD3.js} +1 -1
  137. package/dist/m/c-UPD33ZPE.js +1 -0
  138. package/dist/m/c-URSMSFCB.js +1 -0
  139. package/dist/m/c-UY4QX42B.js +1 -0
  140. package/dist/m/c-V44KWI2L.js +4 -0
  141. package/dist/m/c-VG5XIN4T.js +1 -0
  142. package/dist/m/c-VILENZTD.js +1 -0
  143. package/dist/m/{c-33HUYEDI.js → c-VJYEVRYK.js} +1 -1
  144. package/dist/m/c-VR2BJ4AN.js +1 -0
  145. package/dist/m/c-W4JCVLAB.js +1 -0
  146. package/dist/m/c-W6DQSHXI.js +135 -0
  147. package/dist/m/c-WBGWGOM7.js +1 -0
  148. package/dist/m/{c-4L3BTFRK.js → c-WCXLG3MV.js} +1 -1
  149. package/dist/m/c-WGW764WX.js +1 -0
  150. package/dist/m/c-WMRJKQ2V.js +5 -0
  151. package/dist/m/c-WNTYKCDG.js +1 -0
  152. package/dist/m/c-WQWIRWO3.js +72 -0
  153. package/dist/m/c-X5LNHET5.js +1 -0
  154. package/dist/m/c-X5TSXZYJ.js +2 -0
  155. package/dist/m/c-XGH4GS2T.js +1 -0
  156. package/dist/m/c-Y6F2FORL.js +1 -0
  157. package/dist/m/c-YBKHUAK7.js +10 -0
  158. package/dist/m/c-YBSS55KU.js +20 -0
  159. package/dist/m/c-YCLU4UNT.js +2 -0
  160. package/dist/m/c-YVZ2L7CE.js +1 -0
  161. package/dist/m/c-ZK4GIZH2.js +1 -0
  162. package/dist/m/c-ZRXJD4G6.js +1 -0
  163. package/dist/m/c-ZWBI4HYK.js +1 -0
  164. package/dist/m/{c-HT33EQRN.js → c-ZWIOJGMT.js} +1 -1
  165. package/dist/m/core/admin-attrs-YY7T5FGU.js +1 -0
  166. package/dist/m/core/autosave-S6OMNDCK.js +1 -0
  167. package/dist/m/core/conflict-notice-IWHMHH43.js +1 -0
  168. package/dist/m/core/host-permission-6EVJGNPL.js +1 -0
  169. package/dist/m/core/is-edit-mode-GCX6767E.js +1 -0
  170. package/dist/m/core/{persist-HKHA66IY.js → persist-UKXV5KLA.js} +1 -1
  171. package/dist/m/core/recovery-DRFZRJED.js +1 -0
  172. package/dist/m/core/save-LYY7K6U7.js +1 -0
  173. package/dist/m/core/save-core-MKRPSEEO.js +1 -0
  174. package/dist/m/core/snapshot-NU3YM6GR.js +1 -0
  175. package/dist/m/core/unsaved-warning-7QTKEN7Z.js +1 -0
  176. package/dist/m/events/index-RN2JNGBV.js +1 -0
  177. package/dist/m/internals/index-TGLQINN3.js +1 -0
  178. package/dist/m/lib/cache-bust-MUMFXZK6.js +1 -0
  179. package/dist/m/loader-3BBNZZGM.js +1 -0
  180. package/dist/m/manifest-F449FF98.js +1 -0
  181. package/dist/m/manifest-edit-4396A009.js +1 -0
  182. package/dist/m/manifest.json +2509 -1474
  183. package/dist/m/options/options-EJMS3K24.js +1 -0
  184. package/dist/m/page/editor-6LRB3GE4.js +304 -0
  185. package/dist/m/plugins/ai-edit-UTV7YO2I.js +6 -0
  186. package/dist/m/plugins/{cms-HP3LSTPN.js → cms-LRAOZHT7.js} +9 -9
  187. package/dist/m/plugins/demo-OYO5GCAO.js +1 -0
  188. package/dist/m/plugins/{derive-UAAA4V4S.js → derive-FRE5JJQE.js} +1 -1
  189. package/dist/m/plugins/indicator-4VDXWYTD.js +1 -0
  190. package/dist/m/plugins/live-AD4H6XSL.js +1 -0
  191. package/dist/m/plugins/menu-M5WW7DBF.js +1 -0
  192. package/dist/m/plugins/page-MD3T2ZX3.js +2 -0
  193. package/dist/m/plugins/page-view-PAWVZNFY.js +1 -0
  194. package/dist/m/plugins/people-JCHVPF7P.js +1 -0
  195. package/dist/m/plugins/quickcrop-BQ5YYFCH.js +26 -0
  196. package/dist/m/plugins/{richclay-RC3L2F6X.js → richclay-KLGETK77.js} +2 -2
  197. package/dist/m/plugins/sortable-4S6SQC3D.js +1 -0
  198. package/dist/m/plugins/source-TJXOIOYY.js +1 -0
  199. package/dist/m/plugins/undo-NLPGCJQY.js +1 -0
  200. package/dist/m/plugins/{unsent-HJFLQJ2O.js → unsent-OA4RGBUT.js} +1 -1
  201. package/dist/m/plugins/upgrade-HSUNDNJD.js +1 -0
  202. package/dist/m/plugins/upload-NHGJXZK2.js +1 -0
  203. package/dist/m/plugins/visitor-drafts-BW43DGY3.js +20 -0
  204. package/dist/m/plugins/visitor-drafts-owner-7ODQG7JX.js +1 -0
  205. package/dist/m/plugins/wire-VBWXEXU2.js +1 -0
  206. package/dist/m/reader-core-4W2KYEWQ.js +77 -0
  207. package/dist/m/route/route-62CHXL5B.js +1 -0
  208. package/dist/m/sync/live-sync-MO5DH33W.js +1 -0
  209. package/dist/m/ui/index-IVWN2QC4.js +1 -0
  210. package/dist/m/vendor/sap-core.vendor-RN4ZVY4X.js +6 -0
  211. package/dist/offline-manifest.json +1560 -889
  212. package/dist/page/themes/light-1.css +33 -8
  213. package/dist/server/core.cjs +1554 -311
  214. package/dist/server/offline-runtime.cjs +63 -63
  215. package/dist/server/offline-runtime.mjs +63 -63
  216. package/dist/server/page-compaction-worker.cjs +3710 -0
  217. package/dist/server/rooms.mjs +5 -0
  218. package/docs/guide.md +653 -101
  219. package/entries/sap.js +5 -5
  220. package/package.json +1 -1
  221. package/src/core/admin-contenteditable.js +5 -2
  222. package/src/core/admin-inputs.js +1 -0
  223. package/src/core/admin-onclick.js +2 -1
  224. package/src/core/boot-phase.js +2 -1
  225. package/src/core/conflict-download.js +3 -29
  226. package/src/core/conflict-notice-ui.js +4 -7
  227. package/src/core/download.js +32 -0
  228. package/src/core/host-meta.js +56 -0
  229. package/src/core/is-edit-mode.js +17 -1
  230. package/src/core/mode-key.js +125 -19
  231. package/src/core/mode-support.js +5 -0
  232. package/src/core/mode-transition.js +20 -6
  233. package/src/core/preserve-authored.js +4 -4
  234. package/src/core/recovery.js +121 -33
  235. package/src/core/save-accepted.js +33 -0
  236. package/src/core/save-core.js +111 -32
  237. package/src/core/save-job.js +108 -0
  238. package/src/core/save-prepare.js +53 -0
  239. package/src/core/save-size-notice.js +3 -1
  240. package/src/core/save-slices.js +15 -0
  241. package/src/core/save.js +557 -127
  242. package/src/core/serialize-steps.js +109 -0
  243. package/src/core/snapshot.js +209 -40
  244. package/src/core/source-map.js +83 -38
  245. package/src/core/stale-host-notice.js +1 -0
  246. package/src/core/upgrade-run.js +59 -8
  247. package/src/dom/active-element.js +5 -0
  248. package/src/lib/assets.js +1 -0
  249. package/src/lib/autosave-scheduler.js +3 -4
  250. package/src/lib/slice.js +65 -0
  251. package/src/lib/uimotion.js +774 -0
  252. package/src/lib/unsaved-state.js +2 -2
  253. package/src/live/fast-lane.js +10 -3
  254. package/src/live/local-lane.js +202 -11
  255. package/src/live/ops.js +16 -0
  256. package/src/live/page-compaction.js +162 -0
  257. package/src/live/server-lane.js +1 -0
  258. package/src/live/store.js +11 -3
  259. package/src/loader-logic.js +3 -1
  260. package/src/loader.js +14 -4
  261. package/src/page/adopt-boot.js +2 -1
  262. package/src/page/awareness.js +33 -2
  263. package/src/page/blocks.js +122 -27
  264. package/src/page/board-views.js +2 -16
  265. package/src/page/boot-pack.js +1 -1
  266. package/src/page/chart-tables.js +29 -0
  267. package/src/page/chart.js +411 -72
  268. package/src/page/checklist.js +10 -135
  269. package/src/page/checkpoint-proof.js +295 -0
  270. package/src/page/chrome.js +257 -40
  271. package/src/page/clipboard-shape.js +126 -0
  272. package/src/page/document-title-dom.js +12 -0
  273. package/src/page/document-title-runtime.js +15 -1
  274. package/src/page/document-title.js +4 -1
  275. package/src/page/drag.js +33 -3
  276. package/src/page/editor.js +207 -31
  277. package/src/page/emoji-data.js +162 -0
  278. package/src/page/export-assets.js +357 -0
  279. package/src/page/export-html.js +209 -0
  280. package/src/page/export-markdown.js +361 -0
  281. package/src/page/features/board.js +12 -3
  282. package/src/page/features/chart.js +11 -0
  283. package/src/page/features/checklist.js +428 -0
  284. package/src/page/features/dates.js +180 -0
  285. package/src/page/features/emoji.js +187 -0
  286. package/src/page/features/export-html.js +189 -0
  287. package/src/page/features/export-markdown.js +169 -0
  288. package/src/page/features/import-markdown.js +349 -0
  289. package/src/page/features/media.js +61 -5
  290. package/src/page/features/mentions.js +188 -0
  291. package/src/page/features/registry.js +24 -1
  292. package/src/page/features/table.js +375 -85
  293. package/src/page/features/title-cover.js +331 -0
  294. package/src/page/features/title-icon.js +213 -0
  295. package/src/page/features/toc.js +87 -0
  296. package/src/page/format-command.js +33 -0
  297. package/src/page/format-gate.js +68 -18
  298. package/src/page/format-host.js +71 -0
  299. package/src/page/format-native-commands.js +158 -0
  300. package/src/page/format-native.js +42 -0
  301. package/src/page/image-actions.js +64 -0
  302. package/src/page/import-markdown.js +262 -0
  303. package/src/page/inline.js +32 -8
  304. package/src/page/items.js +141 -11
  305. package/src/page/markdown.js +30 -2
  306. package/src/page/media.js +35 -119
  307. package/src/page/mention-picker.js +99 -0
  308. package/src/page/merge.js +1 -1
  309. package/src/page/placeholder.js +14 -1
  310. package/src/page/projection.js +156 -25
  311. package/src/page/recover.js +10 -12
  312. package/src/page/recovery-ui.js +464 -0
  313. package/src/page/rich/chart.js +63 -7
  314. package/src/page/save-projection.js +67 -0
  315. package/src/page/save-states.js +14 -4
  316. package/src/page/schema.js +52 -3
  317. package/src/page/table-paste.js +3 -1
  318. package/src/page/table-style.js +4 -4
  319. package/src/page/table.js +44 -2
  320. package/src/page/themes/content.css +25 -1
  321. package/src/page/themes/light-1.css +33 -8
  322. package/src/page/themes/light-1.source.css +8 -7
  323. package/src/page/toc-link.js +31 -0
  324. package/src/page/toc.js +5 -0
  325. package/src/page/view-hooks.js +58 -0
  326. package/src/page/view.js +13 -0
  327. package/src/page/ybind/binding.js +116 -6
  328. package/src/page/ybind/bridge.js +187 -20
  329. package/src/page/ybind/containment.js +162 -0
  330. package/src/page/ybind/doc.js +17 -9
  331. package/src/page/ybind/file-debt.js +63 -0
  332. package/src/page/ybind/layout.js +7 -2
  333. package/src/page/ybind/marks.js +2 -1
  334. package/src/page/ybind/moves.js +5 -4
  335. package/src/page/ybind/origins.js +106 -4
  336. package/src/page/ybind/parts.js +8 -1
  337. package/src/page/ybind/provider.js +125 -18
  338. package/src/page/ybind/recovery-proof.js +32 -9
  339. package/src/page/ybind/recovery-replay.js +905 -4
  340. package/src/page/ybind/recovery.js +174 -45
  341. package/src/page/ybind/table.js +67 -11
  342. package/src/page/ybind/walk-delta.js +258 -0
  343. package/src/page/ybind/walk.js +54 -29
  344. package/src/page/ybind/writer.js +1 -1
  345. package/src/plugins/ai-edit.js +13 -9
  346. package/src/plugins/indicator-chip.js +91 -0
  347. package/src/plugins/indicator.js +13 -80
  348. package/src/plugins/live.js +126 -15
  349. package/src/plugins/menu/actions.js +196 -0
  350. package/src/plugins/menu/people.js +279 -0
  351. package/src/plugins/menu/placement.js +121 -0
  352. package/src/plugins/menu/preferences.js +9 -0
  353. package/src/plugins/menu/seo.js +316 -397
  354. package/src/plugins/menu/style.js +171 -0
  355. package/src/plugins/menu/variants.js +296 -0
  356. package/src/plugins/menu.js +186 -183
  357. package/src/plugins/page-view.js +3 -2
  358. package/src/plugins/page.js +362 -43
  359. package/src/plugins/sortable.js +8 -1
  360. package/src/plugins/source.js +6 -0
  361. package/src/plugins/upgrade.js +51 -17
  362. package/src/plugins/upload-ui.js +12 -17
  363. package/src/plugins/visitor-drafts/bottom-ui.js +12 -4
  364. package/src/plugins/visitor-drafts/intro-style.js +7 -2
  365. package/src/plugins/visitor-drafts/intro.js +7 -4
  366. package/src/plugins/visitor-drafts/owner-chip.js +8 -12
  367. package/src/plugins/visitor-drafts/prompt.js +11 -9
  368. package/src/plugins/visitor-drafts/source.js +4 -3
  369. package/src/plugins/visitor-drafts/store.js +138 -9
  370. package/src/plugins/visitor-drafts/ui-memory.js +2 -2
  371. package/src/plugins/visitor-drafts-owner.js +4 -6
  372. package/src/plugins/visitor-drafts.js +5 -3
  373. package/src/recovery/store.js +1 -1
  374. package/src/route/route.js +4 -0
  375. package/src/server/checkpoint/index.js +2 -2
  376. package/src/server/rooms/index.js +5 -1
  377. package/src/server/rooms/live-data-rooms.js +302 -50
  378. package/src/server/rooms/page-compaction-worker.js +12 -0
  379. package/src/server/rooms/page-compactor.js +92 -0
  380. package/src/server/rooms/page-room-conformance.js +461 -0
  381. package/src/source/parse-steps.js +94 -0
  382. package/src/source/session.js +233 -57
  383. package/src/sync/editing-sender.js +12 -0
  384. package/src/sync/live-sync-edit.js +22 -2
  385. package/src/sync/live-sync.js +150 -23
  386. package/src/sync/page-relay.js +52 -0
  387. package/src/sync/presence-store.js +44 -4
  388. package/src/sync/presence.js +6 -3
  389. package/src/sync/saved-stream.js +28 -14
  390. package/src/ui/bevel-controls.js +1 -0
  391. package/src/ui/bevel-dialog.js +5 -2
  392. package/src/ui/editor-ui.js +77 -0
  393. package/src/ui/page-colour.js +281 -0
  394. package/src/ui/toast.js +16 -7
  395. package/src/vendor/hyper-html-api-upgrade.vendor.js +2 -2
  396. package/src/vendor/hyper-undo.vendor.js +1 -1
  397. package/src/vendor/hypercms.vendor.js +9 -9
  398. package/src/vendor/parse5.vendor.js +2 -2
  399. package/src/vendor/sap-core.vendor.js +5 -5
  400. package/dist/m/attrs/refetch-on-save-NWPPXOCZ.js +0 -1
  401. package/dist/m/attrs/save-freeze-FUP4Q4X3.js +0 -1
  402. package/dist/m/c-2M73252O.js +0 -1
  403. package/dist/m/c-2SPVQSHC.js +0 -1
  404. package/dist/m/c-35NBGMZB.js +0 -1
  405. package/dist/m/c-3IQRECYS.js +0 -1
  406. package/dist/m/c-4B6H4G5V.js +0 -1
  407. package/dist/m/c-4FFHZM32.js +0 -1
  408. package/dist/m/c-4YSCRICO.js +0 -1
  409. package/dist/m/c-54RCDCBU.js +0 -1
  410. package/dist/m/c-5M4YEKCX.js +0 -4
  411. package/dist/m/c-5V3MOVJT.js +0 -1
  412. package/dist/m/c-66O32MV3.js +0 -28
  413. package/dist/m/c-6HMB24EV.js +0 -1
  414. package/dist/m/c-7O6AFR65.js +0 -1
  415. package/dist/m/c-ANQTJ3B5.js +0 -2
  416. package/dist/m/c-AYVOREBE.js +0 -1
  417. package/dist/m/c-B2ZXPOS3.js +0 -3
  418. package/dist/m/c-BMIZKMPV.js +0 -1
  419. package/dist/m/c-BTDI4Y23.js +0 -1
  420. package/dist/m/c-CJZSLMVQ.js +0 -1
  421. package/dist/m/c-DBE6ORSI.js +0 -1
  422. package/dist/m/c-EDHUR4MX.js +0 -1
  423. package/dist/m/c-EY6UOM54.js +0 -1
  424. package/dist/m/c-F3CKJTJS.js +0 -1
  425. package/dist/m/c-F7Y6FLPY.js +0 -1
  426. package/dist/m/c-FA4DZVTC.js +0 -1
  427. package/dist/m/c-G2BUZITR.js +0 -1
  428. package/dist/m/c-GB3JTV6E.js +0 -1
  429. package/dist/m/c-GBGWXTX4.js +0 -1
  430. package/dist/m/c-GHBCCVG4.js +0 -1
  431. package/dist/m/c-GJAEGGXY.js +0 -1
  432. package/dist/m/c-GOWBDM6J.js +0 -1
  433. package/dist/m/c-IB52R237.js +0 -1
  434. package/dist/m/c-IKWNE4R4.js +0 -1
  435. package/dist/m/c-IU3IYEU6.js +0 -1
  436. package/dist/m/c-IZ2EBRAJ.js +0 -1
  437. package/dist/m/c-KR4UW4KW.js +0 -1
  438. package/dist/m/c-KY3VJGUA.js +0 -8
  439. package/dist/m/c-LFPHCXY3.js +0 -1
  440. package/dist/m/c-LRPUO2MX.js +0 -1
  441. package/dist/m/c-LXENEBV7.js +0 -1
  442. package/dist/m/c-NMJRXKPC.js +0 -8
  443. package/dist/m/c-OIBUTDXI.js +0 -1
  444. package/dist/m/c-PPOSCAQD.js +0 -1
  445. package/dist/m/c-QIX5BJYN.js +0 -1
  446. package/dist/m/c-QQHEX6HA.js +0 -1
  447. package/dist/m/c-R7RMANJI.js +0 -9
  448. package/dist/m/c-RI4NT75Y.js +0 -1
  449. package/dist/m/c-RM7J7BV2.js +0 -1
  450. package/dist/m/c-RUJKSUQW.js +0 -1
  451. package/dist/m/c-SGCCC4FW.js +0 -25
  452. package/dist/m/c-T4VO4OCB.js +0 -1
  453. package/dist/m/c-TQEMVJCS.js +0 -1
  454. package/dist/m/c-TR6RMDQ7.js +0 -3
  455. package/dist/m/c-UKHTLWUW.js +0 -1
  456. package/dist/m/c-UNN7LWCT.js +0 -1
  457. package/dist/m/c-UXBMRDZB.js +0 -235
  458. package/dist/m/c-V7PZZRG7.js +0 -1
  459. package/dist/m/c-VL52ADDR.js +0 -1
  460. package/dist/m/c-WNYBLIOZ.js +0 -1
  461. package/dist/m/c-WWDBYXLK.js +0 -1
  462. package/dist/m/c-XNNW2CWK.js +0 -1
  463. package/dist/m/c-Y6USGTS5.js +0 -5
  464. package/dist/m/c-YG2NJYS6.js +0 -135
  465. package/dist/m/c-Z4VRC7GU.js +0 -7
  466. package/dist/m/c-Z6K52OLP.js +0 -19
  467. package/dist/m/c-ZDY2MDAA.js +0 -21
  468. package/dist/m/c-ZUCOKOHT.js +0 -1
  469. package/dist/m/core/admin-attrs-VGNLAUDK.js +0 -1
  470. package/dist/m/core/autosave-E4PEFPZ6.js +0 -1
  471. package/dist/m/core/conflict-notice-VQ6Y64PH.js +0 -1
  472. package/dist/m/core/host-permission-XN3K2IW3.js +0 -1
  473. package/dist/m/core/is-edit-mode-JXHDVGUL.js +0 -1
  474. package/dist/m/core/recovery-TBBSICE2.js +0 -1
  475. package/dist/m/core/save-WUCHTQBE.js +0 -1
  476. package/dist/m/core/save-core-FJVHT5M3.js +0 -1
  477. package/dist/m/core/snapshot-F3SWDZMM.js +0 -1
  478. package/dist/m/core/unsaved-warning-STKBHE6G.js +0 -1
  479. package/dist/m/events/index-23DPTUT4.js +0 -1
  480. package/dist/m/internals/index-WOVAP3RU.js +0 -1
  481. package/dist/m/lib/cache-bust-CGWT6ZJI.js +0 -1
  482. package/dist/m/loader-HXX6YNH5.js +0 -1
  483. package/dist/m/manifest-F22DEDAC.js +0 -1
  484. package/dist/m/manifest-edit-C3C7376B.js +0 -1
  485. package/dist/m/options/options-2LH76JQ3.js +0 -1
  486. package/dist/m/page/editor-XUTB2HB2.js +0 -189
  487. package/dist/m/plugins/ai-edit-ZQ4CGWIP.js +0 -6
  488. package/dist/m/plugins/demo-ZIBFAA3R.js +0 -1
  489. package/dist/m/plugins/indicator-PV4YW2ID.js +0 -1
  490. package/dist/m/plugins/live-NUTTXSBS.js +0 -1
  491. package/dist/m/plugins/menu-HCKO3DSP.js +0 -138
  492. package/dist/m/plugins/page-KSUH7G6J.js +0 -2
  493. package/dist/m/plugins/page-view-W73OW7WI.js +0 -1
  494. package/dist/m/plugins/people-AJJ32YCG.js +0 -1
  495. package/dist/m/plugins/quickcrop-QNY3PKLD.js +0 -26
  496. package/dist/m/plugins/sortable-YRMQX3ZU.js +0 -1
  497. package/dist/m/plugins/source-KHK5UUSK.js +0 -1
  498. package/dist/m/plugins/undo-OF2L3CXU.js +0 -1
  499. package/dist/m/plugins/upgrade-ZNYODP5Y.js +0 -1
  500. package/dist/m/plugins/upload-XSGNILUY.js +0 -1
  501. package/dist/m/plugins/visitor-drafts-XK5GW55Q.js +0 -21
  502. package/dist/m/plugins/visitor-drafts-owner-KSSH75EV.js +0 -1
  503. package/dist/m/plugins/wire-ZWVWKF76.js +0 -1
  504. package/dist/m/reader-core-ILWLXVMP.js +0 -68
  505. package/dist/m/route/route-KOCZSEGN.js +0 -1
  506. package/dist/m/sync/live-sync-4AUVXVJU.js +0 -1
  507. package/dist/m/ui/index-EVHKMKBL.js +0 -1
  508. package/dist/m/vendor/sap-core.vendor-A7BMUYZT.js +0 -6
  509. /package/dist/m/{c-FILLTJA7.js → c-QTTJYJMA.js} +0 -0
  510. /package/dist/m/plugins/{quickcrop-QNY3PKLD.js.LEGAL.txt → quickcrop-BQ5YYFCH.js.LEGAL.txt} +0 -0
  511. /package/dist/m/plugins/{richclay-RC3L2F6X.js.LEGAL.txt → richclay-KLGETK77.js.LEGAL.txt} +0 -0
@@ -1,9 +1,9 @@
1
1
  // GENERATED — do not edit. Vendored from sapjs/dist/sap-core.min.js via sapjs
2
2
  // `npm run copy-to-clayjs`. Edit the sapjs source and re-run.
3
- var SapCoreBundle=(()=>{var ft=Object.defineProperty;var Ue=Object.getOwnPropertyDescriptor;var qe=Object.getOwnPropertyNames;var Ve=Object.prototype.hasOwnProperty;var Ye=(t,e)=>{for(var r in e)ft(t,r,{get:e[r],enumerable:!0})},Ge=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of qe(e))!Ve.call(t,o)&&o!==r&&ft(t,o,{get:()=>e[o],enumerable:!(n=Ue(e,o))||n.enumerable});return t};var Xe=t=>Ge(ft({},"__esModule",{value:!0}),t);var Bn={};Ye(Bn,{FULL_SAPJS:()=>G,Sap:()=>X,default:()=>In,mount:()=>Mn,mountAll:()=>je,needsFullSapjs:()=>Lt,runtime:()=>On});function Ct(t){let e=!1,r=new Set,n=[];function o(u){u&&(n.push(u),n.length>8&&n.shift())}function a(u,d){if(o(d),u._broken){if(d==="mutation")return;c(u)}r.add(u),!e&&(e=!0,queueMicrotask(i))}function i(){e=!1;let u=[...r];r.clear();for(let d of u)f(d)}function f(u,d=!1){if(!(u._broken||u.halted)){if(u._passes=(u._passes||0)+1,u._passes>50){u._broken=!0,u._breakerRing=n.slice(),t(u,{breaker:!0});return}u._resetArmed||(u._resetArmed=!0,setTimeout(()=>{u._passes=0,u._resetArmed=!1},0)),t(u,d?{full:!0}:{})}}function l(u,d){o(d),u._broken&&c(u),f(u,!0)}function c(u){u._broken=!1,u._passes=0}return{schedule:a,runNow:l,rearm:c,ring:n}}var dt={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"},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"}},O=["disabled","readonly","required","checked","selected","multiple","open","inert","autofocus","novalidate","hidden"],pt=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"]),$t=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 Ke(t){if(!t||t.nodeType!==1)return"?";if(t.id)return`${t.tagName.toLowerCase()}#${t.id}`;let e=[],r=t,n=0;for(;r&&r.nodeType===1&&n<4;){let o=r.tagName.toLowerCase();if(r.hasAttribute("sap"))o+="[sap]";else if(r.parentElement){let a=0,i=0;for(let f=r.parentElement.firstElementChild;f;f=f.nextElementSibling)f.tagName===r.tagName&&(a++,f===r&&(i=a));a>1&&(o+=`:nth-of-type(${i})`)}if(e.unshift(o),r.hasAttribute("sap"))break;r=r.parentElement,n++}return e.join(" > ")}var J=class{constructor(e){this.appName=e,this.errors=[],this.warnings=[],this.halted=!1,this.haltReason=null}block(e,r,n={}){let o=(dt[e]||{}).slug||"error",a={code:e,slug:o,el:Ke(r),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"},i=[`
4
- `+(e[0]==="W"?"sap \u26A0 ":"sap \u2717 ")+e+" "+o];return i.push(` at ${a.el}${a.attr?` \u2014 ${a.attr}="${a.expr??""}"`:""}`),a.problem&&i.push(` problem: ${a.problem}`),a.didYouMean&&i.push(` did you mean: ${a.didYouMean}`),a.fix&&i.push(` fix: ${a.fix}`),(e[0]==="W"?console.warn:console.error)(i.join(`
5
- `)),a}error(e,r,n={}){let o=this.block(e,r,n);return this.errors.push(o),o}warn(e,r,n={}){let o=this.block(e,r,n);return this.warnings.push(o),o}report(){return{ok:this.errors.length===0&&!this.halted,app:this.appName,halted:this.halted,haltReason:this.haltReason,errors:this.errors.slice(),warnings:this.warnings.slice()}}};function P(t,e){t&&t.getAttribute("sap-error")!==e&&t.setAttribute("sap-error",e)}function Pt(t){t&&t.hasAttribute("sap-error")&&t.removeAttribute("sap-error")}function mt(t,e){let r=null,n=3;for(let o of e){let a=Je(t,o);a<n&&(n=a,r=o)}return r}function Je(t,e){let r=t.length,n=e.length,o=Array.from({length:r+1},(a,i)=>[i,...new Array(n).fill(0)]);for(let a=0;a<=n;a++)o[0][a]=a;for(let a=1;a<=r;a++)for(let i=1;i<=n;i++)o[a][i]=Math.min(o[a-1][i]+1,o[a][i-1]+1,o[a-1][i-1]+(t[a-1]===e[i-1]?0:1));return o[r][n]}var Qe=new Set(O),Ze={readonly:"readOnly",novalidate:"noValidate"},tn=0,Mt=new WeakMap;function Ot(t,e="sap"){let r=t.getAttribute("data-id");if(r)return r;if(t.id)return t.id;let n=Mt.get(t);return n||(n=`${e}-${(tn++).toString(36)}`,Mt.set(t,n)),n}function Dt(t){let e=[];for(let r=t.firstElementChild;r;r=r.nextElementSibling)r.hasAttribute("item")&&!r.hasAttribute("template")&&!r.hasAttribute("cms-template")&&e.push(r);return e}function ht(t,e){if(!t||!e)return null;let r=[...t.querySelectorAll(`template[items="${e}"]`)].find(o=>o.closest("[sap]")===t),n=r&&r.content.firstElementChild;return n&&n.hasAttribute("item")?n:null}function It(t){for(let e=t.firstElementChild;e;e=e.nextElementSibling)if(e.hasAttribute("item")&&e.hasAttribute("template"))return e;return ht(t.closest("[sap]"),t.getAttribute("items"))}function Q(t){let e=[];if(!t)return e;for(let r of t.trim().split(/\s+/)){if(!r)continue;let n=r,o,a=n.indexOf("=");a>=0&&(o=n.slice(a+1),n=n.slice(0,a));let i=n.split(":"),f=i[0],l="string",c=!1;for(let b of i.slice(1))b==="num"?l="num":b==="bool"?l="bool":b==="presence"?l="presence":b==="transient"&&(c=!0);let u=f,d=u.startsWith("data-")&&u.length>5?u.slice(5).replace(/-([a-z])/g,(b,A)=>A.toUpperCase()):u;e.push({name:d,attr:u,type:l,default:o,transient:c})}return e}function Z(t,e){if(e==="num"){if(t==null||t==="")return 0;let r=Number(t);return Number.isNaN(r)?0:r}return e==="bool"?t==="true"||t===""||t==="1":t??""}function Bt(t,e){return e==="bool"?t?"true":"false":t==null?"":String(t)}function bt(t,e){return Qe.has(e)&&typeof t[Ze[e]||e]=="boolean"}function Wt(t,e){return e.type==="presence"||e.type!=="num"&&bt(t,e.attr||e.name)}function gt(t){return t.default!=null?t.default:t.type==="num"?"0":t.type==="bool"?"false":""}function Ft(t,e){let r=e.attr||e.name,n=t._sapTransient||(t._sapTransient={});if(!(e.name in n)){let o=t.getAttribute(r);o==null&&(o=gt(e)),n[e.name]=Z(o,e.type)}return t.hasAttribute(r)&&t.removeAttribute(r),n[e.name]}function T(t){if(typeof t=="number")return t;if(t==null||t==="")return 0;let e=Number(typeof t=="string"?t.replace(/[$,%\s]/g,""):t);return Number.isNaN(e)?0:e}function tt(t,e){return Array.isArray(t)?e==null?t:t.map(r=>typeof e=="function"?e(r):r?.[e]):[]}function yt(t,e){return tt(t,e).reduce((r,n)=>r+T(n),0)}function Ht(t,e){return Array.isArray(t)?e==null?t.length:t.reduce((r,n)=>r+(e(n)?1:0),0):0}function jt(t,e){let r=tt(t,e);return r.length?yt(t,e)/r.length:0}function zt(t,e){let r=tt(t,e).filter(n=>n!=null&&n!=="");return r.length?r.every(n=>typeof n=="number"||!Number.isNaN(Number(n)))?Math.min(...r.map(Number)):r.reduce((n,o)=>String(n)<=String(o)?n:o):0}function Ut(t,e){let r=tt(t,e).filter(n=>n!=null&&n!=="");return r.length?r.every(n=>typeof n=="number"||!Number.isNaN(Number(n)))?Math.max(...r.map(Number)):r.reduce((n,o)=>String(n)>=String(o)?n:o):0}function qt(t,e,r){let n=T(t)===1?e:r??e+"s";return`${t} ${n}`}function Vt(t,e){let r=new Date(t),n=new Date(e);return Number.isNaN(+r)||Number.isNaN(+n)?0:Math.round((n-r)/864e5)}function _(t){return typeof t=="number"?t:Number(t)}var D={usd:t=>"$"+_(t).toLocaleString("en-US",{maximumFractionDigits:0}),usd2:t=>"$"+_(t).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2}),pct:t=>Math.round(_(t))+"%",pct1:t=>_(t).toFixed(1)+"%",int:t=>Math.round(_(t)).toLocaleString("en-US"),num:t=>_(t).toLocaleString("en-US"),num2:t=>_(t).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2}),compact:t=>_(t).toLocaleString("en-US",{notation:"compact"}),date:t=>{let e=new Date(t);return Number.isNaN(+e)?String(t):e.toLocaleDateString("en-US")},clock:t=>{let e=_(t),r=Math.floor(e/100),n=r%10,o=Math.floor(r/10)%60;return`${Math.floor(r/600)}:${String(o).padStart(2,"0")}.${n}`}},en=new Set(["usd","usd2","pct","pct1","int","num","num2","compact","clock"]);function Yt(t,e){if(!t)return e==null?"":String(e);let r=D[t];if(typeof r!="function"){let n=new Error(`unknown format "${t}"`);throw n.sapCode="E22",n}if(en.has(t)){let n=typeof e=="number"?e:Number(e);if(!Number.isFinite(n)){let o=new Error(`format "${t}" received ${typeof e=="string"?`"${e}"`:e}`);throw o.sapCode="E22",o}}return r(e)}var nn=["state","item","el","root","fmt","num","sum","count","avg","min","max","plural","days"],et=new Map,Gt=/\bstate\.([a-z][a-z0-9_]*)/g,Xt=/\bitem\.([a-z][a-z0-9_]*)/g;function rn(t){let e=new Set,r=new Set,n;for(Gt.lastIndex=0;n=Gt.exec(t);)e.add(n[1]);for(Xt.lastIndex=0;n=Xt.exec(t);)r.add(n[1]);return{state:e,item:r}}function L(t,e=!1){let r=(e?"!":"")+t,n=et.get(r);if(n)return n;et.size>512&&et.clear();try{let o=e?`"use strict";
6
- ${t}`:`"use strict"; return (${t});`;n={fn:new Function(...nn,o),src:t,statement:e,deps:rn(t),error:null}}catch(o){n={fn:null,src:t,statement:e,deps:{state:new Set,item:new Set},error:o}}return et.set(r,n),n}function Kt(t,e,r,n,o){if(t.error)throw t.error;return t.fn(e,r,n,o,D,T,yt,Ht,jt,zt,Ut,qt,Vt)}var q={},U=null,Qt=!0,rt=!1;function Zt(){q={}}function te(t){let e=rt;return U?ne(U.takeRecords()):Qt&&on(),rt=!!U&&t.getRootNode()===document,e}function ee(t){rt=t}function on(){if(typeof document>"u"||typeof MutationObserver!="function"){Qt=!1;return}U=new MutationObserver(ne),U.observe(document,{attributes:!0,childList:!0,subtree:!0})}function ne(t){for(let e of t)if(e.type==="attributes")e.target._sapPlan&&(e.target._sapPlan=null);else for(let r of e.addedNodes)r.nodeType===1&&re(r)}function re(t){t._sapPlan&&(t._sapPlan=null);for(let e=t.firstElementChild;e;e=e.nextElementSibling)re(e)}function ot(t){if(!rt)return Jt(t);let e=t._sapPlan;return e&&e.gen===q?e:t._sapPlan=Jt(t)}function Jt(t){let e={gen:q,inert:t.tagName==="TEMPLATE",template:!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};for(let r of t.attributes){let n=r.name,o=r.value,a=n.indexOf(":");if(a<0){switch(n){case"sap-ignore":e.inert=!0;break;case"cms-template":e.inert=!0;break;case"template":e.inert=!0,e.template=!0;break;case"item":e.item=!0;break;case"scope":e.scope=!0;break;case"items":e.items=!0;break;case"detail":e.detail=!0;break;case"each":e.each=!0;break;case"bind":e.bind=o;break;case"transient":e.transient=!0;break;case"state":e.decls=Q(o);break;case"text":(e.paints||(e.paints=[])).push({kind:"text",fmt:null,entry:L(o)});break;case"show":(e.paints||(e.paints=[])).push({kind:"show",entry:L(o)});break;case"effect":(e.effects||(e.effects=[])).push({entry:L(o,!0)});break;case"invalid":(e.invalids||(e.invalids=[])).push({entry:L(o)});break}continue}let i=n.slice(0,a),f=n.slice(a+1);switch(i){case"calc":(e.calcs||(e.calcs=[])).push({name:f,entry:L(o)});break;case"text":(e.paints||(e.paints=[])).push({kind:"text",fmt:f,entry:L(o)});break;case"attr":(e.paints||(e.paints=[])).push({kind:"attr",arg:f,entry:L(o)});break;case"class":(e.paints||(e.paints=[])).push({kind:"class",arg:f,entry:L(o)});break;case"css":(e.paints||(e.paints=[])).push({kind:"css",arg:f,entry:L(o)});break;case"show-when":case"option":(e.paints||(e.paints=[])).push({kind:"when",match:"show",field:f,values:o.split("|")});break;case"hide-when":(e.paints||(e.paints=[])).push({kind:"when",match:"hide",field:f,values:o.split("|")});break;case"option-not":(e.paints||(e.paints=[])).push({kind:"when",match:"show-not",field:f,values:o.split("|")});break}}return e.boundary=e.scope?"scope":e.items?"items":e.detail?"detail":e.each?"each":null,an(e)?sn():e}var nt=null;function sn(){return(!nt||nt.gen!==q)&&(nt=Object.freeze({gen:q,inert:!1,template:!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})),nt}function an(t){return!t.inert&&!t.item&&t.boundary===null&&t.bind===null&&!t.transient&&!t.decls&&!t.calcs&&!t.paints&&!t.effects&&!t.invalids}var M=new WeakMap,I=null,V=!1;function ie(){M=new WeakMap}function oe(t){for(let e of t){if(e.type==="attributes"){M.delete(e.target);continue}let r=e.target.nodeType===1?e.target:e.target.parentElement;for(let n=r;n;n=n.parentElement)M.delete(n);for(let n of e.addedNodes||[])if(n.nodeType===1){M.delete(n);for(let o of n.querySelectorAll("*"))M.delete(o)}}}function se(t){let e=V;return!I&&typeof MutationObserver=="function"&&(I=new MutationObserver(oe),I.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})),I&&oe(I.takeRecords()),V=!!I&&t.getRootNode()===document,e}function ae(t){V=t}function ue(t){let e=M.get(t);return e||M.set(t,e={attrs:new Map,hasText:!1,text:""}),e}function ce(t,e){if(!V)return t.getAttribute(e);let r=ue(t);return r.attrs.has(e)||r.attrs.set(e,t.getAttribute(e)),r.attrs.get(e)}function le(t){if(!V)return t.textContent;let e=ue(t);return e.hasText||(e.text=t.textContent,e.hasText=!0),e.text}function fe(t){return(t.getAttribute("type")||"text").toLowerCase()}function B(t){let e=t.tagName;if(e==="INPUT"){let r=fe(t);r==="checkbox"||r==="radio"?t.checked?t.setAttribute("checked",""):t.removeAttribute("checked"):t.setAttribute("value",t.value);return}if(e==="TEXTAREA"){t.setAttribute("data-value",t.value);return}if(e==="SELECT"){let r=t.options;for(let n=0;n<r.length;n++)r[n].selected?r[n].setAttribute("selected",""):r[n].removeAttribute("selected")}}function de(t,e=t){let r=t.tagName;if(r==="INPUT"){let n=fe(t);n==="checkbox"||n==="radio"?e.checked?t.hasAttribute("checked")||t.setAttribute("checked",""):t.removeAttribute("checked"):e.value!==(t.getAttribute("value")??"")&&t.setAttribute("value",e.value);return}if(r==="TEXTAREA"){let n=e.value.startsWith(`
3
+ var SapCoreBundle=(()=>{var At=Object.defineProperty;var rn=Object.getOwnPropertyDescriptor;var on=Object.getOwnPropertyNames;var sn=Object.prototype.hasOwnProperty;var an=(t,e)=>{for(var r in e)At(t,r,{get:e[r],enumerable:!0})},un=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of on(e))!sn.call(t,o)&&o!==r&&At(t,o,{get:()=>e[o],enumerable:!(n=rn(e,o))||n.enumerable});return t};var cn=t=>un(At({},"__esModule",{value:!0}),t);var Jn={};an(Jn,{FULL_SAPJS:()=>Z,Sap:()=>tt,default:()=>Kn,mount:()=>Yn,mountAll:()=>en,needsFullSapjs:()=>Bt,runtime:()=>Gn});function jt(t){let e=!1,r=new Set,n=[];function o(a){a&&(n.push(a),n.length>8&&n.shift())}function s(a,d){if(o(d),a._broken){if(d==="mutation")return;l(a)}r.add(a),!e&&(e=!0,queueMicrotask(i))}function i(){e=!1;let a=[...r];r.clear();for(let d of a)f(d)}function f(a,d=!1){if(!(a._broken||a.halted)){if(a._passes=(a._passes||0)+1,a._passes>50){a._broken=!0,a._breakerRing=n.slice(),t(a,{breaker:!0});return}a._resetArmed||(a._resetArmed=!0,setTimeout(()=>{a._passes=0,a._resetArmed=!1},0)),t(a,d?{full:!0}:{})}}function c(a,d){o(d),a._broken&&l(a),f(a,!0)}function l(a){a._broken=!1,a._passes=0}return{schedule:s,runNow:c,rearm:l,ring:n}}var Et={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"},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"}},z=["disabled","readonly","required","checked","selected","multiple","open","inert","autofocus","novalidate","hidden"],xt=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"]),Ht=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 ln(t){if(!t||t.nodeType!==1)return"?";if(t.id)return`${t.tagName.toLowerCase()}#${t.id}`;let e=[],r=t,n=0;for(;r&&r.nodeType===1&&n<4;){let o=r.tagName.toLowerCase();if(r.hasAttribute("sap"))o+="[sap]";else if(r.parentElement){let s=0,i=0;for(let f=r.parentElement.firstElementChild;f;f=f.nextElementSibling)f.tagName===r.tagName&&(s++,f===r&&(i=s));s>1&&(o+=`:nth-of-type(${i})`)}if(e.unshift(o),r.hasAttribute("sap"))break;r=r.parentElement,n++}return e.join(" > ")}var ot=class{constructor(e){this.appName=e,this.errors=[],this.warnings=[],this.halted=!1,this.haltReason=null}block(e,r,n={}){let o=(Et[e]||{}).slug||"error",s={code:e,slug:o,el:ln(r),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"},i=[`
4
+ `+(e[0]==="W"?"sap \u26A0 ":"sap \u2717 ")+e+" "+o];return i.push(` at ${s.el}${s.attr?` \u2014 ${s.attr}="${s.expr??""}"`:""}`),s.problem&&i.push(` problem: ${s.problem}`),s.didYouMean&&i.push(` did you mean: ${s.didYouMean}`),s.fix&&i.push(` fix: ${s.fix}`),(e[0]==="W"?console.warn:console.error)(i.join(`
5
+ `)),s}error(e,r,n={}){let o=this.block(e,r,n);return this.errors.push(o),o}warn(e,r,n={}){let o=this.block(e,r,n);return this.warnings.push(o),o}report(){return{ok:this.errors.length===0&&!this.halted,app:this.appName,halted:this.halted,haltReason:this.haltReason,errors:this.errors.slice(),warnings:this.warnings.slice()}}};function B(t,e){t&&t.getAttribute("sap-error")!==e&&t.setAttribute("sap-error",e)}function zt(t){t&&t.hasAttribute("sap-error")&&t.removeAttribute("sap-error")}function vt(t,e){let r=null,n=3;for(let o of e){let s=fn(t,o);s<n&&(n=s,r=o)}return r}function fn(t,e){let r=t.length,n=e.length,o=Array.from({length:r+1},(s,i)=>[i,...new Array(n).fill(0)]);for(let s=0;s<=n;s++)o[0][s]=s;for(let s=1;s<=r;s++)for(let i=1;i<=n;i++)o[s][i]=Math.min(o[s-1][i]+1,o[s][i-1]+1,o[s-1][i-1]+(t[s-1]===e[i-1]?0:1));return o[r][n]}var dn=new Set(z),pn={readonly:"readOnly",novalidate:"noValidate"},mn=0,Ut=new WeakMap;function qt(t,e="sap"){let r=t.getAttribute("data-id");if(r)return r;if(t.id)return t.id;let n=Ut.get(t);return n||(n=`${e}-${(mn++).toString(36)}`,Ut.set(t,n)),n}function Vt(t){let e=[];for(let r=t.firstElementChild;r;r=r.nextElementSibling)r.hasAttribute("item")&&!r.hasAttribute("template")&&!r.hasAttribute("cms-template")&&e.push(r);return e}function St(t,e){if(!t||!e)return null;let r=[...t.querySelectorAll(`template[items="${e}"]`)].find(o=>o.closest("[sap]")===t),n=r&&r.content.firstElementChild;return n&&n.hasAttribute("item")?n:null}function Yt(t){for(let e=t.firstElementChild;e;e=e.nextElementSibling)if(e.hasAttribute("item")&&e.hasAttribute("template"))return e;return St(t.closest("[sap]"),t.getAttribute("items"))}function it(t){let e=[];if(!t)return e;for(let r of t.trim().split(/\s+/)){if(!r)continue;let n=r,o,s=n.indexOf("=");s>=0&&(o=n.slice(s+1),n=n.slice(0,s));let i=n.split(":"),f=i[0],c="string",l=!1;for(let p of i.slice(1))p==="num"?c="num":p==="bool"?c="bool":p==="presence"?c="presence":p==="transient"&&(l=!0);let a=f,d=a.startsWith("data-")&&a.length>5?a.slice(5).replace(/-([a-z])/g,(p,v)=>v.toUpperCase()):a;e.push({name:d,attr:a,type:c,default:o,transient:l})}return e}function st(t,e){if(e==="num"){if(t==null||t==="")return 0;let r=Number(t);return Number.isNaN(r)?0:r}return e==="bool"?t==="true"||t===""||t==="1":t??""}function Gt(t,e){return e==="bool"?t?"true":"false":t==null?"":String(t)}function kt(t,e){return dn.has(e)&&typeof t[pn[e]||e]=="boolean"}function Nt(t,e){return e.type==="presence"||e.type!=="num"&&kt(t,e.attr||e.name)}function Tt(t){return t.default!=null?t.default:t.type==="num"?"0":t.type==="bool"?"false":""}function Xt(t,e){let r=e.attr||e.name,n=t._sapTransient||(t._sapTransient={});if(!(e.name in n)){let o=t.getAttribute(r);o==null&&(o=Tt(e)),n[e.name]=st(o,e.type)}return t.hasAttribute(r)&&t.removeAttribute(r),n[e.name]}function P(t){if(typeof t=="number")return t;if(t==null||t==="")return 0;let e=Number(typeof t=="string"?t.replace(/[$,%\s]/g,""):t);return Number.isNaN(e)?0:e}function at(t,e){return Array.isArray(t)?e==null?t:t.map(r=>typeof e=="function"?e(r):r?.[e]):[]}function Rt(t,e){return at(t,e).reduce((r,n)=>r+P(n),0)}function Kt(t,e){return Array.isArray(t)?e==null?t.length:t.reduce((r,n)=>r+(e(n)?1:0),0):0}function Jt(t,e){let r=at(t,e);return r.length?Rt(t,e)/r.length:0}function Qt(t,e){let r=at(t,e).filter(n=>n!=null&&n!=="");return r.length?r.every(n=>typeof n=="number"||!Number.isNaN(Number(n)))?Math.min(...r.map(Number)):r.reduce((n,o)=>String(n)<=String(o)?n:o):0}function Zt(t,e){let r=at(t,e).filter(n=>n!=null&&n!=="");return r.length?r.every(n=>typeof n=="number"||!Number.isNaN(Number(n)))?Math.max(...r.map(Number)):r.reduce((n,o)=>String(n)>=String(o)?n:o):0}function te(t,e,r){let n=P(t)===1?e:r??e+"s";return`${t} ${n}`}function ee(t,e){let r=new Date(t),n=new Date(e);return Number.isNaN(+r)||Number.isNaN(+n)?0:Math.round((n-r)/864e5)}function O(t){return typeof t=="number"?t:Number(t)}var U={usd:t=>"$"+O(t).toLocaleString("en-US",{maximumFractionDigits:0}),usd2:t=>"$"+O(t).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2}),pct:t=>Math.round(O(t))+"%",pct1:t=>O(t).toFixed(1)+"%",int:t=>Math.round(O(t)).toLocaleString("en-US"),num:t=>O(t).toLocaleString("en-US"),num2:t=>O(t).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2}),compact:t=>O(t).toLocaleString("en-US",{notation:"compact"}),date:t=>{let e=new Date(t);return Number.isNaN(+e)?String(t):e.toLocaleDateString("en-US")},clock:t=>{let e=O(t),r=Math.floor(e/100),n=r%10,o=Math.floor(r/10)%60;return`${Math.floor(r/600)}:${String(o).padStart(2,"0")}.${n}`}},hn=new Set(["usd","usd2","pct","pct1","int","num","num2","compact","clock"]);function ne(t,e){if(!t)return e==null?"":String(e);let r=U[t];if(typeof r!="function"){let n=new Error(`unknown format "${t}"`);throw n.sapCode="E22",n}if(hn.has(t)){let n=typeof e=="number"?e:Number(e);if(!Number.isFinite(n)){let o=new Error(`format "${t}" received ${typeof e=="string"?`"${e}"`:e}`);throw o.sapCode="E22",o}}return r(e)}var bn=["state","item","el","root","fmt","num","sum","count","avg","min","max","plural","days"],ut=new Map,re=/\bstate\.([a-z][a-z0-9_]*)/g,oe=/\bitem\.([a-z][a-z0-9_]*)/g;function gn(t){let e=new Set,r=new Set,n;for(re.lastIndex=0;n=re.exec(t);)e.add(n[1]);for(oe.lastIndex=0;n=oe.exec(t);)r.add(n[1]);return{state:e,item:r}}function M(t,e=!1){let r=(e?"!":"")+t,n=ut.get(r);if(n)return n;ut.size>512&&ut.clear();try{let o=e?`"use strict";
6
+ ${t}`:`"use strict"; return (${t});`;n={fn:new Function(...bn,o),src:t,statement:e,deps:gn(t),error:null}}catch(o){n={fn:null,src:t,statement:e,deps:{state:new Set,item:new Set},error:o}}return ut.set(r,n),n}function ie(t,e,r,n,o){if(t.error)throw t.error;return t.fn(e,r,n,o,U,P,Rt,Kt,Jt,Qt,Zt,te,ee)}var J={},K=null,ae=!0,lt=!1;function ue(){J={}}function ce(t){let e=lt;return K?fe(K.takeRecords()):ae&&yn(),lt=!!K&&t.getRootNode()===document,e}function le(t){lt=t}function yn(){if(typeof document>"u"||typeof MutationObserver!="function"){ae=!1;return}K=new MutationObserver(fe),K.observe(document,{attributes:!0,childList:!0,subtree:!0})}function fe(t){for(let e of t)if(e.type==="attributes")e.target._sapPlan&&(e.target._sapPlan=null);else for(let r of e.addedNodes)r.nodeType===1&&de(r)}function de(t){t._sapPlan&&(t._sapPlan=null);for(let e=t.firstElementChild;e;e=e.nextElementSibling)de(e)}function ft(t){if(!lt)return se(t);let e=t._sapPlan;return e&&e.gen===J?e:t._sapPlan=se(t)}function se(t){let e={gen:J,inert:t.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};for(let r of t.attributes){let n=r.name,o=r.value,s=n.indexOf(":");if(s<0){switch(n){case"sap-ignore":e.inert=!0;break;case"cms-template":e.inert=!0,e.cms=!0;break;case"template":e.inert=!0,e.template=!0;break;case"item":e.item=!0;break;case"scope":e.scope=!0;break;case"items":e.items=!0;break;case"detail":e.detail=!0;break;case"each":e.each=!0;break;case"bind":e.bind=o;break;case"transient":e.transient=!0;break;case"state":e.decls=it(o);break;case"text":(e.paints||(e.paints=[])).push({kind:"text",fmt:null,entry:M(o)});break;case"show":(e.paints||(e.paints=[])).push({kind:"show",entry:M(o)});break;case"effect":(e.effects||(e.effects=[])).push({entry:M(o,!0)});break;case"invalid":(e.invalids||(e.invalids=[])).push({entry:M(o)});break}continue}let i=n.slice(0,s),f=n.slice(s+1);switch(i){case"calc":(e.calcs||(e.calcs=[])).push({name:f,entry:M(o)});break;case"text":(e.paints||(e.paints=[])).push({kind:"text",fmt:f,entry:M(o)});break;case"attr":(e.paints||(e.paints=[])).push({kind:"attr",arg:f,entry:M(o)});break;case"class":(e.paints||(e.paints=[])).push({kind:"class",arg:f,entry:M(o)});break;case"css":(e.paints||(e.paints=[])).push({kind:"css",arg:f,entry:M(o)});break;case"show-when":case"option":(e.paints||(e.paints=[])).push({kind:"when",match:"show",field:f,values:o.split("|")});break;case"hide-when":(e.paints||(e.paints=[])).push({kind:"when",match:"hide",field:f,values:o.split("|")});break;case"option-not":(e.paints||(e.paints=[])).push({kind:"when",match:"show-not",field:f,values:o.split("|")});break}}return e.boundary=e.scope?"scope":e.items?"items":e.detail?"detail":e.each?"each":null,An(e)?wn():e}var ct=null;function wn(){return(!ct||ct.gen!==J)&&(ct=Object.freeze({gen:J,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})),ct}function An(t){return!t.inert&&!t.item&&t.boundary===null&&t.bind===null&&!t.transient&&!t.decls&&!t.calcs&&!t.paints&&!t.effects&&!t.invalids}var F=new WeakMap,j=new WeakMap,q=null,D=!1;function me(){F=new WeakMap,j=new WeakMap}function pe(t){for(let e of t){let r=e.target.nodeType===1?e.target:e.target.parentElement;for(let n=r;n;n=n.parentElement)j.delete(n);if(e.type==="attributes"){F.delete(e.target);continue}for(let n=r;n;n=n.parentElement)F.delete(n);for(let n of e.addedNodes||[])if(n.nodeType===1){F.delete(n),j.delete(n);for(let o of n.querySelectorAll("*"))F.delete(o),j.delete(o)}}}function he(){return D}function be(t){return D?j.get(t):void 0}function ge(t,e){D&&j.set(t,e)}function ye(t){j.delete(t)}function we(t){let e=D;return!q&&typeof MutationObserver=="function"&&(q=new MutationObserver(pe),q.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})),q&&pe(q.takeRecords()),D=!!q&&t.getRootNode()===document,e}function Ae(t){D=t}function Ee(t){let e=F.get(t);return e||F.set(t,e={attrs:new Map,hasText:!1,text:""}),e}function xe(t,e){if(!D)return t.getAttribute(e);let r=Ee(t);return r.attrs.has(e)||r.attrs.set(e,t.getAttribute(e)),r.attrs.get(e)}function ve(t){if(!D)return t.textContent;let e=Ee(t);return e.hasText||(e.text=t.textContent,e.hasText=!0),e.text}function Se(t){return(t.getAttribute("type")||"text").toLowerCase()}function V(t){let e=t.tagName;if(e==="INPUT"){let r=Se(t);r==="checkbox"||r==="radio"?t.checked?t.setAttribute("checked",""):t.removeAttribute("checked"):t.setAttribute("value",t.value);return}if(e==="TEXTAREA"){t.setAttribute("data-value",t.value);return}if(e==="SELECT"){let r=t.options;for(let n=0;n<r.length;n++)r[n].selected?r[n].setAttribute("selected",""):r[n].removeAttribute("selected")}}function ke(t,e=t){let r=t.tagName;if(r==="INPUT"){let n=Se(t);n==="checkbox"||n==="radio"?e.checked?t.hasAttribute("checked")||t.setAttribute("checked",""):t.removeAttribute("checked"):e.value!==(t.getAttribute("value")??"")&&t.setAttribute("value",e.value);return}if(r==="TEXTAREA"){let n=e.value.startsWith(`
7
7
  `)?`
8
- `+e.value:e.value;t.textContent!==n&&(t.textContent=n),t.removeAttribute("data-value");return}if(r==="SELECT"){let n=t.options,o=e.options;for(let a=0;a<n.length;a++)o[a]&&o[a].selected?n[a].hasAttribute("selected")||n[a].setAttribute("selected",""):n[a].removeAttribute("selected")}}function it(t){t.tagName!=="TEXTAREA"||!t.hasAttribute("data-value")||t!==t.ownerDocument.activeElement&&(t.textContent=t.getAttribute("data-value"),t.removeAttribute("data-value"))}function E(t){if(typeof window>"u")return null;let e=window.clay,r=window.hyperclay;return t==="consent"?e?.confirm||r?.consent||null:e?.[t]||r?.[t]||null}function pe(){let t=E("visitorDrafts");return!!(t&&typeof t.restored=="function"&&t.restored()?.restored)}var wt=["clay:mutation-ready","hyperclay:mutation-ready"],un=["clay:sync-applied","hyperclay:livesync-applied"],cn=["clay:ready","hyperclay:ready"],ln=["clay:route"],fn=["clay:modechange"];function Y(t,e,r){let n=null,o=a=>{n!==null&&n!==a.type||(n=a.type,queueMicrotask(()=>{n=null}),r(a))};for(let a of e)t.addEventListener(a,o);return()=>{for(let a of e)t.removeEventListener(a,o)}}function me(t){let e=typeof window<"u"&&window.clay&&window.clay.ready;e&&typeof e.then=="function"?e.then(()=>t(),()=>t()):t()}function st(t){let e=E("region");return!e||typeof e.resolveRegionPolicy!="function"||typeof e.skipForPolicy!="function"?!1:e.skipForPolicy(e.resolveRegionPolicy(t),void 0,["no-save","freeze"])}function he(){return typeof window>"u"?null:window.clay?.modeLifecycle||null}function at(t,{transient:e=!1}={}){if(e)return!0;let r=he();return typeof r?.canWrite!="function"||E("region")?.resolveRegionPolicy?.(t)?.persist==="none"?!0:r.canWrite()}function be(t,e){if(typeof e!="function")throw new Error("Sap.batch(label, fn): fn must be a function");let r=E("undo");r&&r.flush&&r.flush();let n=e();if(n&&typeof n.then=="function")throw new Error("Sap.batch fn must be synchronous (it returned a promise)");return r&&r.commitCaptured&&r.commitCaptured(t),n}function ge(t){if(typeof window>"u"||typeof document>"u")return;let e=()=>{let b=!1;for(let A of t.apps())A.root.isConnected?t.runNow(A,"platform"):b=!0;b&&t.pruneDisconnected(),t.remountIfPresent()},r=E("derived"),n=r&&typeof r.register=="function"?r.register(e):null,o=typeof n=="function"?null:Y(document,un,e),a=Y(document,ln,e),i=null,f=!1,l=()=>{let b=i;i=null,b&&(b[2](),b[3]())},c=()=>{if(f)return!1;let b=E("undo"),A=he()?.state?.generation;if(i&&i[0]===b&&i[1]===A)return!0;if(l(),!b||typeof b.on!="function")return!1;let v=b.on("undo",e);if(typeof v!="function")return!1;let S=b.on("redo",e);return typeof S!="function"?(v(),!1):(i=[b,A,v,S],!0)};c();let u=[wt,cn,fn].map(b=>Y(document,b,c)),d=E("ready");return d&&typeof d.then=="function"&&d.then(c,()=>{}),()=>{f=!0,typeof n=="function"&&n(),o&&o(),a();for(let b of u)b();l()}}function At(t){let e=t.tagName;if(e==="INPUT"){let r=(t.getAttribute("type")||"text").toLowerCase();return r==="checkbox"?"checkbox":r==="radio"?"radio":r==="number"||r==="range"?"number":r==="hidden"?"hidden":"text"}return e==="TEXTAREA"?"text":e==="SELECT"?t.multiple?"select-multiple":"select-one":"leaf"}function dn(t){if(t.validity&&t.validity.badInput)return t.hasAttribute("value")?Number(t.getAttribute("value"))||0:t._sapLastGood??0;if(t.value==="")return 0;let e=Number(t.value);return Number.isNaN(e)?t._sapLastGood??0:(t._sapLastGood=e,e)}function we(t,e){switch(e){case"checkbox":return t.checked;case"radio":return t.checked?t.value:void 0;case"number":return dn(t);case"select-one":return t.value;case"select-multiple":return[...t.selectedOptions].map(r=>r.value);case"hidden":case"text":return t.value;case"leaf":return t.textContent;default:return t.value}}function pn(t,e,r){switch(e){case"checkbox":t.checked=!!r;break;case"radio":t.checked=String(t.value)===String(r);break;case"number":case"text":case"hidden":t.value=r==null?"":String(r);break;case"select-one":t.value=r==null?"":String(r);break;case"select-multiple":{let n=new Set((Array.isArray(r)?r:[r]).map(String));for(let o of t.options)o.selected=n.has(o.value);break}case"leaf":t.textContent=r==null?"":String(r);break;default:t.value=r==null?"":String(r)}}function ye(t){if(t.hasAttribute("transient")){t.removeAttribute("value"),t.removeAttribute("checked"),t.removeAttribute("data-value");return}st(t)||B(t)}function mn(t){t.dispatchEvent(new Event("input",{bubbles:!0})),t.dispatchEvent(new Event("change",{bubbles:!0}))}function Ae(t,e){return we(t,e)}function Ee(t){let e=At(t);return{el:t,kind:e,read(){return we(t,e)},write(r,n={}){pn(t,e,r),n.noMirror||ye(t),n.silent||mn(t)},mirror(){ye(t)}}}var C=null,ct=!1,W=null;function xe(t){let e=null;return{kind:"hub",subscribe(r){let n=t.onAnyChange({debounce:0,require:"observed"},r);typeof n=="function"&&(e=n)},suppress(r){t.pause();try{return r()}finally{t.resume()}},teardown(){if(e){try{e()}catch{}e=null}}}}function hn(){let t=null;return{kind:"native",subscribe(e){t=new MutationObserver(n=>e(bn(n)));let r=typeof document<"u"&&document.body||typeof document<"u"&&document.documentElement;r&&t.observe(r,{childList:!0,subtree:!0,attributes:!0,characterData:!0})},suppress(e){let r=E("undo");r&&r.pause&&r.pause();try{return e()}finally{t&&t.takeRecords(),r&&r.resume&&r.resume()}},teardown(){t&&(t.disconnect(),t=null)}}}function bn(t){let e=[];for(let r of t)if(r.type==="attributes"){let n=r.target;n&&n.nodeType===1&&!ut(n)&&e.push({type:"attribute",element:n})}else if(r.type==="characterData"){let n=r.target&&r.target.parentElement;n&&!ut(n)&&e.push({type:"characterData",element:n})}else if(r.type==="childList"){for(let n of r.addedNodes)if(!(n.nodeType!==1||ut(n))&&(e.push({type:"add",element:n}),n.querySelectorAll))for(let o of n.querySelectorAll("*"))ut(o)||e.push({type:"add",element:o});for(let n of r.removedNodes)n.nodeType===1&&e.push({type:"remove",element:n,parent:r.target})}return e}function ut(t){return!!(t.closest&&t.closest("[sap-ignore],[template],[cms-template]"))}function gn(t,e){t.pruneDisconnected();let r=new Set,n=!1;for(let o of e){let a=o.type==="remove"?o.parent:o.element,i=a&&t.appFor(a);i&&r.add(i),o.type==="add"&&o.element&&o.element.nodeType===1&&o.element.hasAttribute&&o.element.hasAttribute("sap")&&!(t.isRegistered&&t.isRegistered(o.element))&&(n=!0)}n&&t.remountIfPresent();for(let o of r)o.root.isConnected&&t.schedule(o,"mutation")}function ve(t){if(C)return C.suppress(t);let e=E("undo");if(e&&e.pause&&e.resume){e.pause();try{return t()}finally{e.resume()}}return t()}function Et(t,e){ct=!0,C=t,t.subscribe(r=>gn(e,r))}function xt(t){if(ct||typeof window>"u"||typeof document>"u")return;let e=E("Mutation");if(e&&typeof e.onAnyChange=="function"){Et(xe(e),t);return}typeof MutationObserver=="function"&&(Et(hn(),t),W=Y(document,wt,function(){let n=E("Mutation");n&&(W(),W=null,C&&C.teardown(),ct=!1,Et(xe(n),t))}))}function vt(){if(C)try{C.teardown()}catch{}W&&typeof document<"u"&&W(),C=null,ct=!1,W=null}var yn=new Set(O),$=[],ke={},Te={};function Ne(t){$.includes(t)||($.push(t),t.boundary&&Object.assign(ke,t.boundary),t.paintKinds&&Object.assign(Te,t.paintKinds))}function lt(t,e={}){if(e.breaker){t.diag.error("E26",t.root,{problem:"recompute loop halted after 50 passes; recent triggers: "+(t._breakerRing||[]).join(", ")}),P(t.root,"loop");return}e.full&&(Zt(),ie());let r=te(t.root);try{ve(()=>wn(t,e))}finally{ee(r)}t._viewsChanged&&(t._viewsChanged=!1,t.root.dispatchEvent(new CustomEvent("sap:views-updated",{bubbles:!0})))}function wn(t,e){let r=t.root,n={},o=[],a=[],i=new Set;t.diag.errors=[];let f={root:n,state:n,item:null,ownerEl:r,projection:!1};function l(s,p,m=!1){let h=p.attr||p.name,y=m?ce(s,h):s.getAttribute(h);return y==null&&(y=gt(p),a.push({el:s,name:p.name,attr:h,value:Bt(Z(y,p.type),p.type)})),Z(y,p.type)}function c(s,p,m,h){let y=p.decls;if(!y)return;let R=!!h.item&&!h.projection&&!h.view;for(let x of y){if(x.transient){m[x.name]=Ft(s,x);continue}if(Wt(s,x)){m[x.name]=s.hasAttribute(x.attr);continue}m[x.name]=l(s,x,R)}}function u(s,p,m){let h=p.bind,y=m.item||m.state,R=At(s);R==="radio"?(h in y||(y[h]=""),s.checked&&(y[h]=s.value)):R==="leaf"&&m.item&&!m.projection&&!m.view?y[h]=le(s):y[h]=Ae(s,R),p.transient&&(s.removeAttribute("value"),s.removeAttribute("checked"))}function d(s,p,m){if(p.paints)for(let h of p.paints)h.kind==="when"&&i.add(h.field),o.push({def:h,el:s,ctx:m});for(let h of $)h.collect&&h.collect(k,s,p,m)}function b(s,p,m){Object.defineProperty(s,"$key",{value:Ot(p,"row"),enumerable:!1}),Object.defineProperty(s,"$index",{value:m,enumerable:!1}),Object.defineProperty(s,"$el",{value:p,enumerable:!1})}function A(s,p,m){let h=ot(s);c(s,h,p,m),s._sapScope=p,!m.projection&&h.bind!=null&&u(s,h,m),d(s,h,m),h.items?H(s,p,m):v(s,p,m)}function v(s,p,m){for(let h=s.firstElementChild;h;h=h.nextElementSibling)S(h,p,m)}function S(s,p,m){let h=ot(s);if(!h.inert){if(h.boundary){h.boundary==="scope"?N(s,p,m):h.boundary==="items"?(d(s,h,m),H(s,p,m)):ke[h.boundary](k,s,h,p,m);return}!m.projection&&!m.view&&h.bind!=null&&u(s,h,m),d(s,h,m);for(let y=s.firstElementChild;y;y=y.nextElementSibling)S(y,p,m)}}function N(s,p,m){let h=s.getAttribute("scope"),y={};p[h]=y;let R={root:m.root,state:y,item:null,ownerEl:s,projection:m.projection};A(s,y,R)}function H(s,p,m){let h=s.getAttribute("items"),y=[];p[h]=y,s._sapList=y;let R=0;for(let x=s.firstElementChild;x;x=x.nextElementSibling){let _t=ot(x);if(!_t.item||_t.template||x.hasAttribute("cms-template"))continue;let K={};b(K,x,R);let ze={root:m.root,state:m.state,item:K,ownerEl:x,projection:m.projection};A(x,K,ze),y.push(K),R++}}let k={app:t,root:r,rootObj:n,paints:o,stats:{calcs:0,lists:0},resolveDefault:l,collectEl:d,walkScope:v};for(let s of $)s.begin&&s.begin(k);let j=e.cacheReads===!1?null:se(r);try{A(r,n,f)}finally{e.cacheReads!==!1&&ae(j)}if(t.halted)return;for(let s of $)s.afterIntake&&s.afterIntake(k);if(a.length&&i.size)for(let s of a)i.has(s.attr)&&s.el.getAttribute(s.attr)==null&&s.el.setAttribute(s.attr,s.value);for(let s of $)s.compute&&s.compute(k);let z=0;for(let s of $)s.reconcile&&(z+=s.reconcile(k));let w=0,g=z;for(let s of o){let p=En(s,t);s.ctx.view?g+=p:w+=p}for(let s of $)s.afterPaint&&s.afterPaint(k);t._state=n,t._stats={fields:Object.keys(n).filter(s=>typeof n[s]!="function").length,calcs:k.stats.calcs,paints:o.length,lists:k.stats.lists,writes:w,viewWrites:g},t._viewsChanged=g>0,t._lastPass={trigger:e.trigger||"refresh",writes:w},t._debug&&console.log(`sap pass \xB7 trigger: ${t._lastPass.trigger} \xB7 writes ${w}/${o.length}`)}function An(t){return t.kind==="text"?t.fmt?"text:"+t.fmt:"text":t.kind==="attr"?"attr:"+t.arg:t.kind==="class"?"class:"+t.arg:t.kind==="css"?"css:"+t.arg:t.kind==="when"?(t.match==="hide"?"hide-when:":t.match==="show-not"?"option-not:":"show-when:")+t.field:t.kind}function St(t,e,r,n){let o=t;for(;o&&o.nodeType===1;){if(o.hasAttribute&&o.hasAttribute(e)){let a=r.includes(o.getAttribute(e));if(n?!a:a)return!0}o=o.parentElement}return!1}function En(t,e){let r=t.def,n=t.el,o=Te[r.kind];if(o)return o(t,e);if(r.kind==="when")return Se(r,n,null);try{let a=Kt(r.entry,t.ctx.state,t.ctx.item,n,t.ctx.root),i=Se(r,n,a);return Pt(n),i}catch(a){return e.diag.error(a.sapCode==="E22"?"E22":"E24",n,{attr:An(r),expr:r.entry&&r.entry.src,problem:String(a.message)}),P(n,a.sapCode||"E24"),0}}function Se(t,e,r){switch(t.kind){case"text":{let n=t.fmt!=null?Yt(t.fmt,r):r==null?"":String(r);return e.textContent!==n?(e.textContent=n,1):0}case"show":{let n=!r;return e.hidden!==n?(e.hidden=n,1):0}case"when":{let n=E("optionVisibility");if(n&&n._started)return e._sapWhen&&e.hidden?(e.hidden=!1,e._sapWhen=!1,1):0;let o;t.match==="hide"?o=!St(e,t.field,t.values,!1):t.match==="show-not"?o=St(e,t.field,t.values,!0):o=St(e,t.field,t.values,!1),e._sapWhen=!0;let a=!o;return e.hidden!==a?(e.hidden=a,1):0}case"attr":{let n=t.arg;if((n==="checked"||n==="selected")&&typeof e[n]=="boolean"&&!e.hasAttribute("bind")&&!e.closest("select[bind]")){let a=0;return e[n]!==!!r&&(e[n]=!!r,a=1),!!r!==e.hasAttribute(n)&&(r?e.setAttribute(n,""):e.removeAttribute(n),a=1),a}if(yn.has(n)){let a=e.hasAttribute(n);return r&&!a?(e.setAttribute(n,""),1):!r&&a?(e.removeAttribute(n),1):0}let o=typeof r=="boolean"?String(r):r==null?"":String(r);return e.getAttribute(n)!==o?(e.setAttribute(n,o),1):0}case"class":{let n=!!r;return e.classList.contains(t.arg)!==n?(e.classList.toggle(t.arg,n),1):0}case"css":{let n=r==null?"":String(r);return e.style.getPropertyValue("--"+t.arg)!==n?(e.style.setProperty("--"+t.arg,n),1):0}default:return 0}}var xn=new Set(O),Re=new Set(["calc","text","attr","class","css","set","move","sort","option","option-not","show-when","hide-when","editmode","viewmode"]),vn=new Set(["show-when","hide-when","option","option-not"]),Sn=/\b(?:state|item|root)\.|===|!==|&&|\|\||[()]|^\s*!/,Le=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"]),Tt=[];function _e(t){Tt.includes(t)||Tt.push(t)}function kn(t){return t.tagName==="INPUT"||t.tagName==="SELECT"||t.tagName==="TEXTAREA"}function kt(t){return t.hasAttribute("bind")}function Tn(t,e){e(t);for(let n=t.firstElementChild;n;n=n.nextElementSibling)r(n);function r(n){if(!n.hasAttribute("sap-ignore")){if(n.tagName==="TEMPLATE"){if(n.hasAttribute("items"))for(let o=n.content.firstElementChild;o;o=o.nextElementSibling)r(o);return}e(n);for(let o=n.firstElementChild;o;o=o.nextElementSibling)r(o)}}}function Ce(t,e){let r=!1,n=(i,f,l)=>{e.error(i,f,l),r=!0},o=t.ownerDocument.createTreeWalker(t,4),a;for(;a=o.nextNode();)if(/\{\{.*\}\}/.test(a.nodeValue||"")){n("E02",a.parentElement||t,{problem:"moustaches in text content are not a Sap feature",fix:'move the expression onto the element: text="state.x"'});break}return Tn(t,i=>{let f=new Set;for(let c of Tt)c(i,n,u=>f.add(u));let l=i.closest&&i.closest("[detail]");for(let c of[...i.attributes]){let u=c.name;if(f.has(u))continue;if(u.includes(":")){let b=u.slice(0,u.indexOf(":"));if(Re.has(b)){if(vn.has(b)&&Sn.test(c.value)){let A=u.slice(u.indexOf(":")+1);e.warn("W04",i,{attr:u,expr:c.value,problem:`${b}: compares the "${A}" attribute against a literal value, not a JS expression`,fix:`use show="${c.value}" for an expression, or a literal like ${b}:${A}="overview"`})}}else{let A=mt(b,[...Re]);e.warn("W03",i,{attr:u,problem:`unknown "${b}:" attribute`,didYouMean:A?`${A}:`:null})}}else if(!Le.has(u)&&!pt.has(u)&&!xn.has(u)&&!/^(data-|aria-|on)/.test(u)&&!(u in i)){let b=mt(u,[...Le]);b&&e.warn("W03",i,{attr:u,problem:`unknown "${u}" attribute`,didYouMean:b})}u==="attr:hidden"&&e.warn("W03",i,{attr:u,problem:"attr:hidden paints the wrong attribute",fix:'use show="expr"'});let d=kt(i)||u==="attr:selected"&&i.tagName==="OPTION"&&!!i.closest("select[bind]");(u==="attr:value"||u==="attr:checked"||u==="attr:selected")&&d&&n("E30",i,{attr:u,problem:"attr: on a bound control collides with persist ownership",fix:"remove it; bind owns this attribute"}),u==="effect"&&kt(i)&&/\b(value|checked)\s*=[^=]/.test(c.value)&&n("E30",i,{attr:u,expr:c.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"}),(u==="text"||u.startsWith("text:")||u==="show")&&kn(i)&&(u==="show"||n("E18",i,{attr:u,problem:"paint belongs on output elements, not form controls",fix:"move the paint to an <output> or <span>"}))}if(i.hasAttribute("state")){let c=Q(i.getAttribute("state")),u=new Set;for(let d of c){d.name.includes("-")&&n("E08",i,{attr:"state",problem:`field "${d.name}" is not a valid identifier (the hyphen parses as subtraction)`,fix:`rename to ${d.name.replace(/-/g,"")}`}),u.has(d.name)&&n("E04",i,{attr:"state",problem:`field "${d.name}" is declared twice in one scope`}),u.add(d.name),$t.has(d.attr)&&n("E05",i,{attr:"state",problem:`"${d.name}" is a reserved Sap word`}),pt.has(d.attr)&&n("E06",i,{attr:"state",problem:`"${d.name}" is a global HTML attribute name; pick another field name`}),d.name==="open"&&i.tagName==="DIALOG"&&n("E33",i,{attr:"state",problem:"dialog open is transient",fix:"use showModal() \u2014 declare state= only on <details> or popovers"});let b=bt(i,d.attr);b&&(d.attr==="checked"||d.attr==="selected")&&n("E35",i,{attr:"state",problem:`"${d.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">'}),b&&d.type==="num"&&n("E35",i,{attr:"state",problem:`"${d.attr}" is an HTML boolean attribute; it cannot hold a number`,fix:`declare it bare: state="${d.attr}"`}),d.transient&&(b||d.type==="presence")&&n("E35",i,{attr:"state",problem:`"${d.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(kt(i)){if(i.hasAttribute("-"),i.tagName==="INPUT"){let c=(i.getAttribute("type")||"text").toLowerCase();c==="file"&&n("E32",i,{attr:"bind",problem:"files never serialize into an HTML file",fix:"use no-save + effect instead of bind"}),c==="password"&&!i.hasAttribute("transient")&&n("E31",i,{attr:"bind",problem:"a password must never serialize into a world-readable file",fix:"add transient to the password input"})}else if(i.tagName!=="SELECT"&&i.tagName!=="TEXTAREA"){let c=i.getAttribute("contenteditable");!(c!=null&&c!=="false")&&i.children.length>0&&n("E20",i,{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(i.hasAttribute("transient")&&i.hasAttribute("persist")&&n("E34",i,{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"}),i.tagName==="DIALOG"&&i.hasAttribute("detail")&&!(i.parentElement&&i.parentElement.closest('[clay~="freeze"], [freeze], [save-freeze]'))&&e.warn("W31",i,{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'}),i.hasAttribute("item")&&!i.hasAttribute("template")&&i.parentNode&&i.parentNode.nodeType===1){let c=i.parentElement;(!c||!c.hasAttribute("items"))&&n("E10",i,{problem:"an [item] must be a direct child of an [items] list",fix:'wrap it in a container with items="name"'})}if(i.hasAttribute("items")&&l&&n("E17",i,{attr:"items",problem:"nested items inside a detail panel is a v1 mount error (nested collections ship in v1.1)"}),i.hasAttribute("items")){let c=t.querySelector(`[trigger-add="${i.getAttribute("items")}"]`);!It(i)&&!ht(t,i.getAttribute("items"))&&Dt(i).length===0&&c&&n("E17",i,{attr:"items",problem:`trigger-add targets items="${i.getAttribute("items")}" but it has no [item template] to clone`})}}),r&&(e.halted=!0,e.haltReason=e.errors[0]?e.errors[0].code:"halt",P(t,e.haltReason)),!r}var $e="sap-styles",Pe="[item][template]{display:none!important}[hidden]{display:none!important}[sap-error]{outline:2px solid #e5484d;outline-offset:1px}",Nt=new WeakSet;function Nn(t){if(Nt.has(t))return;let e=t.defaultView,r=e&&e.CSSStyleSheet;if(r&&"adoptedStyleSheets"in t)try{let n=new r;n.replaceSync(Pe),t.adoptedStyleSheets=[...t.adoptedStyleSheets,n],Nt.add(t);return}catch{}if(!t.getElementById($e)){let n=t.createElement("style");n.id=$e,n.textContent=Pe,(t.head||t.documentElement).appendChild(n)}Nt.add(t)}var Rn=0;function Me(){return typeof performance<"u"&&performance.now?performance.now():0}function Rt(t){let e=t.id||t.getAttribute("sap")||`app-${Rn++}`,r=new J(e),n={root:t,name:e,diag:r,_state:null,_stats:null,_lastPass:null,_passes:0,_broken:!1,_mountMs:0,_mountWrites:0};if(!Ce(t,r))return n.halted=!0,n;Nn(t.ownerDocument);for(let i of t.querySelectorAll("textarea[data-value]"))it(i);let a=Me();return lt(n,{trigger:"mount",full:!0}),n._mountMs=Me()-a,n._mountWrites=n._stats?n._stats.writes:0,n._mountWrites>0&&!pe()&&!E("derived")&&r.warn("W30",t,{problem:`${n._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)"}),n}var Oe=/^(set:|move:|sort:|trigger-add$|trigger-remove$|trigger-reset$)/;function Ln(t){return`${t.tagName.toLowerCase()}[sap]`}function _n(t){let e=0;for(let r of t.querySelectorAll("*"))for(let n of r.attributes)if(Oe.test(n.name)){e++;break}for(let r of t.attributes)if(Oe.test(r.name)){e++;break}return e}function De(t){function e(f){let l=f._stats||{},c=f.root;return{root:Ln(c),fields:l.fields||0,calcs:l.calcs||0,paints:l.paints||0,actions:_n(c),lists:(c.hasAttribute("items")?1:0)+c.querySelectorAll("[items]").length,rows:c.querySelectorAll("[item]:not([template])").length,warnings:f.diag.warnings.length,errors:f.diag.errors.length,mountWrites:f._mountWrites||0,ms:Math.round((f._mountMs||0)*10)/10,passes:f._passes||0,lastPass:f._lastPass||null,ok:f.diag.errors.length===0&&!f.halted}}function r(){let f=t.apps().map(e);return{ok:f.every(l=>l.ok),apps:f}}function n(f){let l=e(f);return l.ok?`sap \u2713 ${l.root} \xB7 fields ${l.fields} \xB7 calcs ${l.calcs} \xB7 paints ${l.paints} \xB7 actions ${l.actions} \xB7 lists ${l.lists} \xB7 rows ${l.rows} \xB7 warnings ${l.warnings} \xB7 mount writes ${l.mountWrites} \xB7 ${l.ms}ms`:`sap \u2717 ${l.root} \xB7 errors ${l.errors} \xB7 warnings ${l.warnings} \xB7 ${l.ms}ms`}function o(){for(let f of t.apps()){let l=n(f);f.diag.errors.length||f.halted?console.error(l):console.log(l)}}function a(){let f=[],l=[];for(let c of t.apps())f.push(...c.diag.errors),l.push(...c.diag.warnings);return{ok:f.length===0,errors:f,warnings:l,counts:{errors:f.length,warnings:l.length}}}function i(f){let l=f===void 0?!0:!!f;for(let c of t.apps())c._debug=l;return console.log(`sap debug ${l?"on":"off"} \u2014 per-pass headers will ${l?"":"no longer "}log`),l}return{status:r,report:a,debug:i,greenLine:n,printGreenLines:o,REGISTRY:dt}}var Ie="0.6.0";function Be({createAccessor:t,installInput:e,debugExtras:r}){let n=new Map,o=[],a=Ct(lt);function i(g){let s=g;for(;s;){if(s.nodeType===1&&s.hasAttribute&&s.hasAttribute("sap"))return n.get(s)||null;s=s.parentNode&&s.parentNode.host?s.parentNode.host:s.parentElement}return null}function f(){for(let g=o.length-1;g>=0;g--){let s=o[g];s.root.isConnected||(n.delete(s.root),o.splice(g,1))}}function l(g,s){if(g.moveBefore)try{g.moveBefore(s,null);return}catch{}g.appendChild(s)}function c(g,s){let p=s.parentElement;if(p){if(p.moveBefore)try{p.moveBefore(g,s);return}catch{}p.insertBefore(g,s)}}let u={apps:()=>o.slice(),appFor:i,isRegistered:g=>n.has(g),pruneDisconnected:f,schedule:(g,s)=>a.schedule(g,s),runNow:(g,s)=>a.runNow(g,s),moveInto:l,placeBefore:c,remountIfPresent:()=>j()},d=t(u),b=De(u),A=r?r(u,b):{},v=!1,S=!1,N=null;function H(){v||(v=!0,e(u,d,document),N=ge(u))}function k(){let g=E("derived");g&&typeof g.mounted=="function"&&g.mounted()}function j(g=document){if(S)return[];H(),xt(u);let s=g.querySelectorAll("[sap]"),p=[];for(let m of s){if(n.has(m))continue;let h=Rt(m);n.set(m,h),o.push(h),p.push(h)}for(let m of p){let h=b.greenLine(m);m.diag.errors.length||m.halted?console.error(h):console.log(h)}return k(),p}function z(g){if(S)return null;if(H(),xt(u),!g)return j();let s=typeof g=="string"?document.querySelector(g):g;if(!s)return null;if(n.has(s))return n.get(s);let p=Rt(s);n.set(s,p),o.push(p);let m=b.greenLine(p);return p.diag.errors.length||p.halted?console.error(m):console.log(m),p}let w=d.Sap;return w.version=Ie,w.refresh=function(){for(let s of o)s.root.isConnected&&a.runNow(s,"refresh")},w.batch=be,w.status=b.status,w.report=b.report,w.why=A.why,w.debug=b.debug,w.doctor=A.doctor,w.greenLine=b.greenLine,w.formats=D,w.serializeControlToAttributes=B,w.finalizeControlForSave=de,w.rehydrateControlFromAttributes=it,w.mount=z,w.config=function(s={}){return s.formats&&Object.assign(D,s.formats),w},w._registry=n,w._reset=function(){n.clear(),o.length=0,vt()},w.unmount=function(){S=!0,n.clear(),o.length=0,vt(),typeof N=="function"&&N()},{Sap:w,mountAll:j,mount:z,runtime:u}}function We(t){if(typeof document>"u")return;let e=()=>me(()=>t());document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e):e()}function Fe(t){let e=[];function r(l){let c=l.target;if(!c||c.nodeType!==1)return;let u=t.appFor(c);if(u){c.hasAttribute("persist")&&!st(c)&&at(c)&&B(c);for(let d of e)if(d(c,u))return;t.schedule(u,l.type+" "+(c.id||c.tagName.toLowerCase()))}}function n(l){let c=l.target,u=t.appFor(c);u&&[...c.querySelectorAll("[bind]")].every(d=>at(d))&&setTimeout(()=>{c.querySelectorAll("[bind]").forEach(d=>{d.dispatchEvent(new Event("input",{bubbles:!0})),d.dispatchEvent(new Event("change",{bubbles:!0}))}),t.schedule(u,"reset")},0)}function o(l){let c=t.appFor(l.target);c&&t.schedule(c,"toggle")}function a(l){let c=l.detail||{};for(let u of[c.from,c.to,l.target]){if(!u||u.nodeType!==1)continue;let d=t.appFor(u);d&&t.schedule(d,"sorted")}}function i(l){if(l.key!=="ArrowUp"&&l.key!=="ArrowDown")return;let c=l.target;if(!c||c.nodeType!==1||c.tagName!=="INPUT"||!c.hasAttribute("bind")||!c.hasAttribute("step"))return;let u=(c.getAttribute("type")||"text").toLowerCase();if(u!=="text"&&u!=="tel"&&u!=="search"||!t.appFor(c)||!at(c))return;l.preventDefault();let b=T(c.getAttribute("step"))||1,A=l.key==="ArrowUp"?1:-1,v=T(c.value)+b*(l.shiftKey?10:1)*A,S=c.getAttribute("min"),N=c.getAttribute("max");S!==null&&S!==""&&v<T(S)&&(v=T(S)),N!==null&&N!==""&&v>T(N)&&(v=T(N)),Ee(c).write(String(Number(v.toFixed(2))))}function f(l=document){l.addEventListener("reset",n),l.addEventListener("toggle",o,!0),l.addEventListener("input",r),l.addEventListener("change",r),l.addEventListener("clay:sorted",a),l.addEventListener("keydown",i)}return{install:f,addRouter:l=>e.push(l)}}var G="https://clayjs.com/v1/sap.js",Cn=/^(calc|set|move|sort):/,$n=new Set(["each","detail","effect","invalid","confirm","trigger-add","trigger-remove","trigger-reset"]);function Lt(t){return Cn.test(t)||$n.has(t)}_e((t,e)=>{for(let r of t.attributes)Lt(r.name)&&e("E50",t,{attr:r.name,expr:r.value,problem:`${r.name} is full sapjs; the sapjs core only paints declared state`,fix:`load ${G}; the markup stays as it is`})});function F(t,e,r){t.app.diag.error("E50",e,{attr:r,problem:`${r} is full sapjs; the sapjs core only paints declared state`,fix:`load ${G}; the markup stays as it is`}),P(e,"E50"),t.app.halted=!0}Ne({name:"core-only",collect(t,e,r){r.calcs&&F(t,e,"calc:"+r.calcs[0].name),r.effects&&F(t,e,"effect"),r.invalids&&F(t,e,"invalid");for(let n of e.attributes)Lt(n.name)&&(n.name.startsWith("calc:")&&r.calcs||n.name==="effect"&&r.effects||n.name==="invalid"&&r.invalids||F(t,e,n.name))},boundary:{each(t,e){F(t,e,"each")},detail(t,e){F(t,e,"detail")}}});function Pn(){return{Sap:function(){throw new Error(`Sap(el) is full sapjs; load ${G}`)}}}var He=t=>()=>(console.warn(`Sap.${t} is full sapjs; load ${G}`),null),{Sap:X,mountAll:je,mount:Mn,runtime:On}=Be({createAccessor:Pn,debugExtras:()=>({why:He("why"),doctor:He("doctor")}),installInput(t,e,r){Fe(t).install(r)}});X.core=!0;var Dn=typeof window<"u"&&window.Sap&&!window.Sap.core;Dn?X.unmount():We(je);typeof window<"u"&&!window.Sap&&(window.Sap=X);var In=X;return Xe(Bn);})();
8
+ `+e.value:e.value;t.textContent!==n&&(t.textContent=n),t.removeAttribute("data-value");return}if(r==="SELECT"){let n=t.options,o=e.options;for(let s=0;s<n.length;s++)o[s]&&o[s].selected?n[s].hasAttribute("selected")||n[s].setAttribute("selected",""):n[s].removeAttribute("selected")}}function dt(t){t.tagName!=="TEXTAREA"||!t.hasAttribute("data-value")||t!==t.ownerDocument.activeElement&&(t.textContent=t.getAttribute("data-value"),t.removeAttribute("data-value"))}function T(t){if(typeof window>"u")return null;let e=window.clay,r=window.hyperclay;return t==="consent"?e?.confirm||r?.consent||null:e?.[t]||r?.[t]||null}function Ne(){let t=T("visitorDrafts");return!!(t&&typeof t.restored=="function"&&t.restored()?.restored)}var Lt=["clay:mutation-ready","hyperclay:mutation-ready"],En=["clay:sync-applied","hyperclay:livesync-applied"],xn=["clay:ready","hyperclay:ready"],vn=["clay:route"],Sn=["clay:modechange"];function Q(t,e,r){let n=null,o=s=>{n!==null&&n!==s.type||(n=s.type,queueMicrotask(()=>{n=null}),r(s))};for(let s of e)t.addEventListener(s,o);return()=>{for(let s of e)t.removeEventListener(s,o)}}function Te(t){let e=typeof window<"u"&&window.clay&&window.clay.ready;e&&typeof e.then=="function"?e.then(()=>t(),()=>t()):t()}function pt(t){let e=T("region");return!e||typeof e.resolveRegionPolicy!="function"||typeof e.skipForPolicy!="function"?!1:e.skipForPolicy(e.resolveRegionPolicy(t),void 0,["no-save","freeze"])}function Re(){return typeof window>"u"?null:window.clay?.modeLifecycle||null}function mt(t,{transient:e=!1}={}){if(e)return!0;let r=Re();return typeof r?.canWrite!="function"||T("region")?.resolveRegionPolicy?.(t)?.persist==="none"?!0:r.canWrite()}function Le(t,e){if(typeof e!="function")throw new Error("Sap.batch(label, fn): fn must be a function");let r=T("undo");r&&r.flush&&r.flush();let n=e();if(n&&typeof n.then=="function")throw new Error("Sap.batch fn must be synchronous (it returned a promise)");return r&&r.commitCaptured&&r.commitCaptured(t),n}function _e(t){if(typeof window>"u"||typeof document>"u")return;let e=()=>{let p=!1;for(let v of t.apps())v.root.isConnected?t.runNow(v,"platform"):p=!0;p&&t.pruneDisconnected(),t.remountIfPresent()},r=T("derived"),n=r&&typeof r.register=="function"?r.register(e):null,o=typeof n=="function"?null:Q(document,En,e),s=Q(document,vn,e),i=null,f=!1,c=()=>{let p=i;i=null,p&&(p[2](),p[3]())},l=()=>{if(f)return!1;let p=T("undo"),v=Re()?.state?.generation;if(i&&i[0]===p&&i[1]===v)return!0;if(c(),!p||typeof p.on!="function")return!1;let R=p.on("undo",e);if(typeof R!="function")return!1;let _=p.on("redo",e);return typeof _!="function"?(R(),!1):(i=[p,v,R,_],!0)};l();let a=[Lt,xn,Sn].map(p=>Q(document,p,l)),d=T("ready");return d&&typeof d.then=="function"&&d.then(l,()=>{}),()=>{f=!0,typeof n=="function"&&n(),o&&o(),s();for(let p of a)p();c()}}function _t(t){let e=t.tagName;if(e==="INPUT"){let r=(t.getAttribute("type")||"text").toLowerCase();return r==="checkbox"?"checkbox":r==="radio"?"radio":r==="number"||r==="range"?"number":r==="hidden"?"hidden":"text"}return e==="TEXTAREA"?"text":e==="SELECT"?t.multiple?"select-multiple":"select-one":"leaf"}function kn(t){if(t.validity&&t.validity.badInput)return t.hasAttribute("value")?Number(t.getAttribute("value"))||0:t._sapLastGood??0;if(t.value==="")return 0;let e=Number(t.value);return Number.isNaN(e)?t._sapLastGood??0:(t._sapLastGood=e,e)}function $e(t,e){switch(e){case"checkbox":return t.checked;case"radio":return t.checked?t.value:void 0;case"number":return kn(t);case"select-one":return t.value;case"select-multiple":return[...t.selectedOptions].map(r=>r.value);case"hidden":case"text":return t.value;case"leaf":return t.textContent;default:return t.value}}function Nn(t,e,r){switch(e){case"checkbox":t.checked=!!r;break;case"radio":t.checked=String(t.value)===String(r);break;case"number":case"text":case"hidden":t.value=r==null?"":String(r);break;case"select-one":t.value=r==null?"":String(r);break;case"select-multiple":{let n=new Set((Array.isArray(r)?r:[r]).map(String));for(let o of t.options)o.selected=n.has(o.value);break}case"leaf":t.textContent=r==null?"":String(r);break;default:t.value=r==null?"":String(r)}}function Ce(t){if(t.hasAttribute("transient")){t.removeAttribute("value"),t.removeAttribute("checked"),t.removeAttribute("data-value");return}pt(t)||V(t)}function Tn(t){t.dispatchEvent(new Event("input",{bubbles:!0})),t.dispatchEvent(new Event("change",{bubbles:!0}))}function Pe(t,e){return $e(t,e)}function Me(t){let e=_t(t);return{el:t,kind:e,read(){return $e(t,e)},write(r,n={}){Nn(t,e,r),n.noMirror||Ce(t),n.silent||Tn(t)},mirror(){Ce(t)}}}var I=null,bt=!1,Y=null;function Oe(t){let e=null;return{kind:"hub",subscribe(r){let n=t.onAnyChange({debounce:0,require:"observed"},r);typeof n=="function"&&(e=n)},suppress(r){t.pause();try{return r()}finally{t.resume()}},teardown(){if(e){try{e()}catch{}e=null}}}}function Rn(){let t=null;return{kind:"native",subscribe(e){t=new MutationObserver(n=>e(Ln(n)));let r=typeof document<"u"&&document.body||typeof document<"u"&&document.documentElement;r&&t.observe(r,{childList:!0,subtree:!0,attributes:!0,characterData:!0})},suppress(e){let r=T("undo");r&&r.pause&&r.pause();try{return e()}finally{t&&t.takeRecords(),r&&r.resume&&r.resume()}},teardown(){t&&(t.disconnect(),t=null)}}}function Ln(t){let e=[];for(let r of t)if(r.type==="attributes"){let n=r.target;n&&n.nodeType===1&&!ht(n)&&e.push({type:"attribute",element:n})}else if(r.type==="characterData"){let n=r.target&&r.target.parentElement;n&&!ht(n)&&e.push({type:"characterData",element:n})}else if(r.type==="childList"){for(let n of r.addedNodes)if(!(n.nodeType!==1||ht(n))&&(e.push({type:"add",element:n}),n.querySelectorAll))for(let o of n.querySelectorAll("*"))ht(o)||e.push({type:"add",element:o});for(let n of r.removedNodes)n.nodeType===1&&e.push({type:"remove",element:n,parent:r.target})}return e}function ht(t){return!!(t.closest&&t.closest("[sap-ignore],[template],[cms-template]"))}function _n(t,e){t.pruneDisconnected();let r=new Set,n=!1;for(let o of e){let s=o.type==="remove"?o.parent:o.element,i=s&&t.appFor(s);i&&r.add(i),o.type==="add"&&o.element&&o.element.nodeType===1&&o.element.hasAttribute&&o.element.hasAttribute("sap")&&!(t.isRegistered&&t.isRegistered(o.element))&&(n=!0)}n&&t.remountIfPresent();for(let o of r)o.root.isConnected&&t.schedule(o,"mutation")}function De(t){if(I)return I.suppress(t);let e=T("undo");if(e&&e.pause&&e.resume){e.pause();try{return t()}finally{e.resume()}}return t()}function Ct(t,e){bt=!0,I=t,t.subscribe(r=>_n(e,r))}function $t(t){if(bt||typeof window>"u"||typeof document>"u")return;let e=T("Mutation");if(e&&typeof e.onAnyChange=="function"){Ct(Oe(e),t);return}typeof MutationObserver=="function"&&(Ct(Rn(),t),Y=Q(document,Lt,function(){let n=T("Mutation");n&&(Y(),Y=null,I&&I.teardown(),bt=!1,Ct(Oe(n),t))}))}function Pt(){if(I)try{I.teardown()}catch{}Y&&typeof document<"u"&&Y(),I=null,bt=!1,Y=null}var Cn=new Set(z),gt=Object.freeze([]),W=[],We={},Be={};function Fe(t){W.includes(t)||(W.push(t),t.boundary&&Object.assign(We,t.boundary),t.paintKinds&&Object.assign(Be,t.paintKinds))}function yt(t,e={}){if(e.breaker){t.diag.error("E26",t.root,{problem:"recompute loop halted after 50 passes; recent triggers: "+(t._breakerRing||[]).join(", ")}),B(t.root,"loop");return}e.full&&(ue(),me());let r=ce(t.root);try{De(()=>$n(t,e))}finally{le(r)}t._viewsChanged&&(t._viewsChanged=!1,t.root.dispatchEvent(new CustomEvent("sap:views-updated",{bubbles:!0})))}function $n(t,e){let r=t.root,n={},o=[],s=[],i=new Set;t.diag.errors=[];let f={root:n,state:n,item:null,ownerEl:r,projection:!1},c=null;function l(u,h,b=!1){let m=h.attr||h.name,g=b?xe(u,m):u.getAttribute(m);return g==null&&(g=Tt(h),s.push({el:u,name:h.name,attr:m,value:Gt(st(g,h.type),h.type)})),st(g,h.type)}function a(u,h,b,m){let g=h.decls;if(!g)return;let E=!!m.item&&!m.projection&&!m.view;for(let k of g){if(k.transient){c&&(c.pure=!1),b[k.name]=Xt(u,k);continue}if(Nt(u,k)){b[k.name]=u.hasAttribute(k.attr);continue}b[k.name]=l(u,k,E)}}function d(u,h,b){let m=h.bind,g=b.item||b.state,E=_t(u);c&&(E!=="leaf"||h.transient)&&(c.pure=!1),E==="radio"?(m in g||(g[m]=""),u.checked&&(g[m]=u.value)):E==="leaf"&&b.item&&!b.projection&&!b.view?g[m]=ve(u):g[m]=Pe(u,E),h.transient&&(u.removeAttribute("value"),u.removeAttribute("checked"))}function p(u,h,b){let m=!1;if(h.paints){m=!0;for(let g of h.paints)g.kind==="when"&&i.add(g.field),o.push({def:g,el:u,ctx:b})}for(let g of W)g.collect&&g.collect(A,u,h,b)!==!1&&(m=!0);c&&m&&(h.calcs&&(c.pure=!1),c.collects.push(u,h))}function v(u,h,b){Object.defineProperty(u,"$key",{value:qt(h,"row"),enumerable:!1}),Object.defineProperty(u,"$index",{value:b,enumerable:!1,configurable:!0}),Object.defineProperty(u,"$el",{value:h,enumerable:!1})}function R(u,h,b){let m=ft(u);a(u,m,h,b),u._sapScope=h,!b.projection&&m.bind!=null&&d(u,m,b),p(u,m,b),m.items?nt(u,h,b):_(u,h,b)}function _(u,h,b){for(let m=u.firstElementChild;m;m=m.nextElementSibling)$(m,h,b)}function $(u,h,b){let m=ft(u);if(!m.inert){if(m.boundary){c&&(c.pure=!1),m.boundary==="scope"?et(u,h,b):m.boundary==="items"?(p(u,m,b),nt(u,h,b)):We[m.boundary](A,u,m,h,b);return}!b.projection&&!b.view&&m.bind!=null&&d(u,m,b),p(u,m,b);for(let g=u.firstElementChild;g;g=g.nextElementSibling)$(g,h,b)}}function et(u,h,b){let m=u.getAttribute("scope"),g={};h[m]=g;let E={root:b.root,state:g,item:null,ownerEl:u,projection:b.projection};R(u,g,E)}function nt(u,h,b){c&&(c.pure=!1);let m=u.getAttribute("items"),g=[];h[m]=g,u._sapList=g;let E=!b.projection&&!b.view&&he(),k=0;for(let N=u.firstElementChild;N;N=N.nextElementSibling){let x=ft(N);if(!x.item||x.template||x.cms)continue;let L=E?be(N):void 0;g.push(L&&L.plan===x&&Object.isExtensible(L.obj)&&rt(L,N,k,b)||X(N,x,k,b,E)),k++}}function X(u,h,b,m,g){let E={};v(E,u,b);let k={root:m.root,state:m.state,item:E,ownerEl:u,projection:m.projection};if(!g)return R(u,E,k),E;let N=c,x={plan:h,obj:E,fields:null,presence:gt,pending:gt,collects:[],pure:!0},L=s.length,nn=t.diag.errors.length;c=x;try{R(u,E,k)}finally{c=N}if(!x.pure||t.halted||t.diag.errors.length!==nn)return E;let Ft=[];for(let H of Object.keys(E)){let wt=E[H];if(wt!==null&&typeof wt=="object")return E;Ft.push(H,wt)}if(h.decls)for(let H of h.decls)Nt(u,H)&&(x.presence===gt?x.presence=[]:x.presence).push(H.name,H.attr);return s.length>L&&(x.pending=s.slice(L)),x.collects.length||(x.collects=gt),x.fields=Ft,ge(u,x),E}function rt(u,h,b,m){let g=u.obj;try{g.$index!==b&&Object.defineProperty(g,"$index",{value:b,enumerable:!1,configurable:!0});let N=u.presence;for(let L=0;L<N.length;L+=2)g[N[L]]=h.hasAttribute(N[L+1]);let x=u.fields;for(let L=0;L<x.length;L+=2)g[x[L]]=x[L+1]}catch{return ye(h),null}h._sapScope=g;let E=u.pending;for(let N=0;N<E.length;N++)s.push(E[N]);let k=u.collects;if(k.length){let N={root:m.root,state:m.state,item:g,ownerEl:h,projection:m.projection};for(let x=0;x<k.length;x+=2)p(k[x],k[x+1],N)}return g}let A={app:t,root:r,rootObj:n,paints:o,stats:{calcs:0,lists:0},resolveDefault:l,collectEl:p,walkScope:_};for(let u of W)u.begin&&u.begin(A);let w=e.cacheReads===!1?null:we(r);try{R(r,n,f)}finally{e.cacheReads!==!1&&Ae(w)}if(t.halted)return;for(let u of W)u.afterIntake&&u.afterIntake(A);if(s.length&&i.size)for(let u of s)i.has(u.attr)&&u.el.getAttribute(u.attr)==null&&u.el.setAttribute(u.attr,u.value);for(let u of W)u.compute&&u.compute(A);let y=0;for(let u of W)u.reconcile&&(y+=u.reconcile(A));let S=0,C=y;for(let u of o){let h=Mn(u,t);u.ctx.view?C+=h:S+=h}for(let u of W)u.afterPaint&&u.afterPaint(A);t._state=n,t._stats={fields:Object.keys(n).filter(u=>typeof n[u]!="function").length,calcs:A.stats.calcs,paints:o.length,lists:A.stats.lists,writes:S,viewWrites:C},t._viewsChanged=C>0,t._lastPass={trigger:e.trigger||"refresh",writes:S},t._debug&&console.log(`sap pass \xB7 trigger: ${t._lastPass.trigger} \xB7 writes ${S}/${o.length}`)}function Pn(t){return t.kind==="text"?t.fmt?"text:"+t.fmt:"text":t.kind==="attr"?"attr:"+t.arg:t.kind==="class"?"class:"+t.arg:t.kind==="css"?"css:"+t.arg:t.kind==="when"?(t.match==="hide"?"hide-when:":t.match==="show-not"?"option-not:":"show-when:")+t.field:t.kind}function Mt(t,e,r,n){let o=t;for(;o&&o.nodeType===1;){if(o.hasAttribute&&o.hasAttribute(e)){let s=r.includes(o.getAttribute(e));if(n?!s:s)return!0}o=o.parentElement}return!1}function Mn(t,e){let r=t.def,n=t.el,o=Be[r.kind];if(o)return o(t,e);if(r.kind==="when")return Ie(r,n,null);try{let s=ie(r.entry,t.ctx.state,t.ctx.item,n,t.ctx.root),i=Ie(r,n,s);return zt(n),i}catch(s){return e.diag.error(s.sapCode==="E22"?"E22":"E24",n,{attr:Pn(r),expr:r.entry&&r.entry.src,problem:String(s.message)}),B(n,s.sapCode||"E24"),0}}function Ie(t,e,r){switch(t.kind){case"text":{let n=t.fmt!=null?ne(t.fmt,r):r==null?"":String(r);return e.textContent!==n?(e.textContent=n,1):0}case"show":{let n=!r;return e.hidden!==n?(e.hidden=n,1):0}case"when":{let n=T("optionVisibility");if(n&&n._started)return e._sapWhen&&e.hidden?(e.hidden=!1,e._sapWhen=!1,1):0;let o;t.match==="hide"?o=!Mt(e,t.field,t.values,!1):t.match==="show-not"?o=Mt(e,t.field,t.values,!0):o=Mt(e,t.field,t.values,!1),e._sapWhen=!0;let s=!o;return e.hidden!==s?(e.hidden=s,1):0}case"attr":{let n=t.arg;if((n==="checked"||n==="selected")&&typeof e[n]=="boolean"&&!e.hasAttribute("bind")&&!e.closest("select[bind]")){let s=0;return e[n]!==!!r&&(e[n]=!!r,s=1),!!r!==e.hasAttribute(n)&&(r?e.setAttribute(n,""):e.removeAttribute(n),s=1),s}if(Cn.has(n)){let s=e.hasAttribute(n);return r&&!s?(e.setAttribute(n,""),1):!r&&s?(e.removeAttribute(n),1):0}let o=typeof r=="boolean"?String(r):r==null?"":String(r);return e.getAttribute(n)!==o?(e.setAttribute(n,o),1):0}case"class":{let n=!!r;return e.classList.contains(t.arg)!==n?(e.classList.toggle(t.arg,n),1):0}case"css":{let n=r==null?"":String(r);return e.style.getPropertyValue("--"+t.arg)!==n?(e.style.setProperty("--"+t.arg,n),1):0}default:return 0}}var On=new Set(z),je=new Set(["calc","text","attr","class","css","set","move","sort","option","option-not","show-when","hide-when","editmode","viewmode"]),Dn=new Set(["show-when","hide-when","option","option-not"]),In=/\b(?:state|item|root)\.|===|!==|&&|\|\||[()]|^\s*!/,He=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"]),Dt=[];function ze(t){Dt.includes(t)||Dt.push(t)}function Wn(t){return t.tagName==="INPUT"||t.tagName==="SELECT"||t.tagName==="TEXTAREA"}function Ot(t){return t.hasAttribute("bind")}function Bn(t,e){e(t);for(let n=t.firstElementChild;n;n=n.nextElementSibling)r(n);function r(n){if(!n.hasAttribute("sap-ignore")){if(n.tagName==="TEMPLATE"){if(n.hasAttribute("items"))for(let o=n.content.firstElementChild;o;o=o.nextElementSibling)r(o);return}e(n);for(let o=n.firstElementChild;o;o=o.nextElementSibling)r(o)}}}function Ue(t,e){let r=!1,n=(i,f,c)=>{e.error(i,f,c),r=!0},o=t.ownerDocument.createTreeWalker(t,4),s;for(;s=o.nextNode();)if(/\{\{.*\}\}/.test(s.nodeValue||"")){n("E02",s.parentElement||t,{problem:"moustaches in text content are not a Sap feature",fix:'move the expression onto the element: text="state.x"'});break}return Bn(t,i=>{let f=new Set;for(let l of Dt)l(i,n,a=>f.add(a));let c=i.closest&&i.closest("[detail]");for(let l of[...i.attributes]){let a=l.name;if(f.has(a))continue;if(a.includes(":")){let p=a.slice(0,a.indexOf(":"));if(je.has(p)){if(Dn.has(p)&&In.test(l.value)){let v=a.slice(a.indexOf(":")+1);e.warn("W04",i,{attr:a,expr:l.value,problem:`${p}: compares the "${v}" attribute against a literal value, not a JS expression`,fix:`use show="${l.value}" for an expression, or a literal like ${p}:${v}="overview"`})}}else{let v=vt(p,[...je]);e.warn("W03",i,{attr:a,problem:`unknown "${p}:" attribute`,didYouMean:v?`${v}:`:null})}}else if(!He.has(a)&&!xt.has(a)&&!On.has(a)&&!/^(data-|aria-|on)/.test(a)&&!(a in i)){let p=vt(a,[...He]);p&&e.warn("W03",i,{attr:a,problem:`unknown "${a}" attribute`,didYouMean:p})}a==="attr:hidden"&&e.warn("W03",i,{attr:a,problem:"attr:hidden paints the wrong attribute",fix:'use show="expr"'});let d=Ot(i)||a==="attr:selected"&&i.tagName==="OPTION"&&!!i.closest("select[bind]");(a==="attr:value"||a==="attr:checked"||a==="attr:selected")&&d&&n("E30",i,{attr:a,problem:"attr: on a bound control collides with persist ownership",fix:"remove it; bind owns this attribute"}),a==="effect"&&Ot(i)&&/\b(value|checked)\s*=[^=]/.test(l.value)&&n("E30",i,{attr:a,expr:l.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"}),(a==="text"||a.startsWith("text:")||a==="show")&&Wn(i)&&(a==="show"||n("E18",i,{attr:a,problem:"paint belongs on output elements, not form controls",fix:"move the paint to an <output> or <span>"}))}if(i.hasAttribute("state")){let l=it(i.getAttribute("state")),a=new Set;for(let d of l){d.name.includes("-")&&n("E08",i,{attr:"state",problem:`field "${d.name}" is not a valid identifier (the hyphen parses as subtraction)`,fix:`rename to ${d.name.replace(/-/g,"")}`}),a.has(d.name)&&n("E04",i,{attr:"state",problem:`field "${d.name}" is declared twice in one scope`}),a.add(d.name),Ht.has(d.attr)&&n("E05",i,{attr:"state",problem:`"${d.name}" is a reserved Sap word`}),xt.has(d.attr)&&n("E06",i,{attr:"state",problem:`"${d.name}" is a global HTML attribute name; pick another field name`}),d.name==="open"&&i.tagName==="DIALOG"&&n("E33",i,{attr:"state",problem:"dialog open is transient",fix:"use showModal() \u2014 declare state= only on <details> or popovers"});let p=kt(i,d.attr);p&&(d.attr==="checked"||d.attr==="selected")&&n("E35",i,{attr:"state",problem:`"${d.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&&d.type==="num"&&n("E35",i,{attr:"state",problem:`"${d.attr}" is an HTML boolean attribute; it cannot hold a number`,fix:`declare it bare: state="${d.attr}"`}),d.transient&&(p||d.type==="presence")&&n("E35",i,{attr:"state",problem:`"${d.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(Ot(i)){if(i.hasAttribute("-"),i.tagName==="INPUT"){let l=(i.getAttribute("type")||"text").toLowerCase();l==="file"&&n("E32",i,{attr:"bind",problem:"files never serialize into an HTML file",fix:"use no-save + effect instead of bind"}),l==="password"&&!i.hasAttribute("transient")&&n("E31",i,{attr:"bind",problem:"a password must never serialize into a world-readable file",fix:"add transient to the password input"})}else if(i.tagName!=="SELECT"&&i.tagName!=="TEXTAREA"){let l=i.getAttribute("contenteditable");!(l!=null&&l!=="false")&&i.children.length>0&&n("E20",i,{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(i.hasAttribute("transient")&&i.hasAttribute("persist")&&n("E34",i,{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"}),i.tagName==="DIALOG"&&i.hasAttribute("detail")&&!(i.parentElement&&i.parentElement.closest('[clay~="freeze"], [freeze], [save-freeze]'))&&e.warn("W31",i,{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'}),i.hasAttribute("item")&&!i.hasAttribute("template")&&i.parentNode&&i.parentNode.nodeType===1){let l=i.parentElement;(!l||!l.hasAttribute("items"))&&n("E10",i,{problem:"an [item] must be a direct child of an [items] list",fix:'wrap it in a container with items="name"'})}if(i.hasAttribute("items")&&c&&n("E17",i,{attr:"items",problem:"nested items inside a detail panel is a v1 mount error (nested collections ship in v1.1)"}),i.hasAttribute("items")){let l=t.querySelector(`[trigger-add="${i.getAttribute("items")}"]`);!Yt(i)&&!St(t,i.getAttribute("items"))&&Vt(i).length===0&&l&&n("E17",i,{attr:"items",problem:`trigger-add targets items="${i.getAttribute("items")}" but it has no [item template] to clone`})}}),r&&(e.halted=!0,e.haltReason=e.errors[0]?e.errors[0].code:"halt",B(t,e.haltReason)),!r}var qe="sap-styles",Ve="[item][template]{display:none!important}[hidden]{display:none!important}[sap-error]{outline:2px solid #e5484d;outline-offset:1px}",It=new WeakSet;function Fn(t){if(It.has(t))return;let e=t.defaultView,r=e&&e.CSSStyleSheet;if(r&&"adoptedStyleSheets"in t)try{let n=new r;n.replaceSync(Ve),t.adoptedStyleSheets=[...t.adoptedStyleSheets,n],It.add(t);return}catch{}if(!t.getElementById(qe)){let n=t.createElement("style");n.id=qe,n.textContent=Ve,(t.head||t.documentElement).appendChild(n)}It.add(t)}var jn=0;function Ye(){return typeof performance<"u"&&performance.now?performance.now():0}function Wt(t){let e=t.id||t.getAttribute("sap")||`app-${jn++}`,r=new ot(e),n={root:t,name:e,diag:r,_state:null,_stats:null,_lastPass:null,_passes:0,_broken:!1,_mountMs:0,_mountWrites:0};if(!Ue(t,r))return n.halted=!0,n;Fn(t.ownerDocument);for(let i of t.querySelectorAll("textarea[data-value]"))dt(i);let s=Ye();return yt(n,{trigger:"mount",full:!0}),n._mountMs=Ye()-s,n._mountWrites=n._stats?n._stats.writes:0,n._mountWrites>0&&!Ne()&&!T("derived")&&r.warn("W30",t,{problem:`${n._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)"}),n}var Ge=/^(set:|move:|sort:|trigger-add$|trigger-remove$|trigger-reset$)/;function Hn(t){return`${t.tagName.toLowerCase()}[sap]`}function zn(t){let e=0;for(let r of t.querySelectorAll("*"))for(let n of r.attributes)if(Ge.test(n.name)){e++;break}for(let r of t.attributes)if(Ge.test(r.name)){e++;break}return e}function Xe(t){function e(f){let c=f._stats||{},l=f.root;return{root:Hn(l),fields:c.fields||0,calcs:c.calcs||0,paints:c.paints||0,actions:zn(l),lists:(l.hasAttribute("items")?1:0)+l.querySelectorAll("[items]").length,rows:l.querySelectorAll("[item]:not([template])").length,warnings:f.diag.warnings.length,errors:f.diag.errors.length,mountWrites:f._mountWrites||0,ms:Math.round((f._mountMs||0)*10)/10,passes:f._passes||0,lastPass:f._lastPass||null,ok:f.diag.errors.length===0&&!f.halted}}function r(){let f=t.apps().map(e);return{ok:f.every(c=>c.ok),apps:f}}function n(f){let c=e(f);return c.ok?`sap \u2713 ${c.root} \xB7 fields ${c.fields} \xB7 calcs ${c.calcs} \xB7 paints ${c.paints} \xB7 actions ${c.actions} \xB7 lists ${c.lists} \xB7 rows ${c.rows} \xB7 warnings ${c.warnings} \xB7 mount writes ${c.mountWrites} \xB7 ${c.ms}ms`:`sap \u2717 ${c.root} \xB7 errors ${c.errors} \xB7 warnings ${c.warnings} \xB7 ${c.ms}ms`}function o(){for(let f of t.apps()){let c=n(f);f.diag.errors.length||f.halted?console.error(c):console.log(c)}}function s(){let f=[],c=[];for(let l of t.apps())f.push(...l.diag.errors),c.push(...l.diag.warnings);return{ok:f.length===0,errors:f,warnings:c,counts:{errors:f.length,warnings:c.length}}}function i(f){let c=f===void 0?!0:!!f;for(let l of t.apps())l._debug=c;return console.log(`sap debug ${c?"on":"off"} \u2014 per-pass headers will ${c?"":"no longer "}log`),c}return{status:r,report:s,debug:i,greenLine:n,printGreenLines:o,REGISTRY:Et}}var Ke="0.7.0";function Je({createAccessor:t,installInput:e,debugExtras:r}){let n=new Map,o=[],s=jt(yt);function i(w){let y=w;for(;y;){if(y.nodeType===1&&y.hasAttribute&&y.hasAttribute("sap"))return n.get(y)||null;y=y.parentNode&&y.parentNode.host?y.parentNode.host:y.parentElement}return null}function f(){for(let w=o.length-1;w>=0;w--){let y=o[w];y.root.isConnected||(n.delete(y.root),o.splice(w,1))}}function c(w,y){if(w.moveBefore)try{w.moveBefore(y,null);return}catch{}w.appendChild(y)}function l(w,y){let S=y.parentElement;if(S){if(S.moveBefore)try{S.moveBefore(w,y);return}catch{}S.insertBefore(w,y)}}let a={apps:()=>o.slice(),appFor:i,isRegistered:w=>n.has(w),pruneDisconnected:f,schedule:(w,y)=>s.schedule(w,y),runNow:(w,y)=>s.runNow(w,y),moveInto:c,placeBefore:l,remountIfPresent:()=>X()},d=t(a),p=Xe(a),v=r?r(a,p):{},R=!1,_=!1,$=null;function et(){R||(R=!0,e(a,d,document),$=_e(a))}function nt(){let w=T("derived");w&&typeof w.mounted=="function"&&w.mounted()}function X(w=document){if(_)return[];et(),$t(a);let y=w.querySelectorAll("[sap]"),S=[];for(let C of y){if(n.has(C))continue;let u=Wt(C);n.set(C,u),o.push(u),S.push(u)}for(let C of S){let u=p.greenLine(C);C.diag.errors.length||C.halted?console.error(u):console.log(u)}return nt(),S}function rt(w){if(_)return null;if(et(),$t(a),!w)return X();let y=typeof w=="string"?document.querySelector(w):w;if(!y)return null;if(n.has(y))return n.get(y);let S=Wt(y);n.set(y,S),o.push(S);let C=p.greenLine(S);return S.diag.errors.length||S.halted?console.error(C):console.log(C),S}let A=d.Sap;return A.version=Ke,A.refresh=function(){for(let y of o)y.root.isConnected&&s.runNow(y,"refresh")},A.batch=Le,A.status=p.status,A.report=p.report,A.why=v.why,A.debug=p.debug,A.doctor=v.doctor,A.greenLine=p.greenLine,A.formats=U,A.serializeControlToAttributes=V,A.finalizeControlForSave=ke,A.rehydrateControlFromAttributes=dt,A.mount=rt,A.config=function(y={}){return y.formats&&Object.assign(U,y.formats),A},A._registry=n,A._reset=function(){n.clear(),o.length=0,Pt()},A.unmount=function(){_=!0,n.clear(),o.length=0,Pt(),typeof $=="function"&&$()},{Sap:A,mountAll:X,mount:rt,runtime:a}}function Qe(t){if(typeof document>"u")return;let e=()=>Te(()=>t());document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e):e()}function Ze(t){let e=[];function r(c){let l=c.target;if(!l||l.nodeType!==1)return;let a=t.appFor(l);if(a){l.hasAttribute("persist")&&!pt(l)&&mt(l)&&V(l);for(let d of e)if(d(l,a))return;t.schedule(a,c.type+" "+(l.id||l.tagName.toLowerCase()))}}function n(c){let l=c.target,a=t.appFor(l);a&&[...l.querySelectorAll("[bind]")].every(d=>mt(d))&&setTimeout(()=>{l.querySelectorAll("[bind]").forEach(d=>{d.dispatchEvent(new Event("input",{bubbles:!0})),d.dispatchEvent(new Event("change",{bubbles:!0}))}),t.schedule(a,"reset")},0)}function o(c){let l=t.appFor(c.target);l&&t.schedule(l,"toggle")}function s(c){let l=c.detail||{};for(let a of[l.from,l.to,c.target]){if(!a||a.nodeType!==1)continue;let d=t.appFor(a);d&&t.schedule(d,"sorted")}}function i(c){if(c.key!=="ArrowUp"&&c.key!=="ArrowDown")return;let l=c.target;if(!l||l.nodeType!==1||l.tagName!=="INPUT"||!l.hasAttribute("bind")||!l.hasAttribute("step"))return;let a=(l.getAttribute("type")||"text").toLowerCase();if(a!=="text"&&a!=="tel"&&a!=="search"||!t.appFor(l)||!mt(l))return;c.preventDefault();let p=P(l.getAttribute("step"))||1,v=c.key==="ArrowUp"?1:-1,R=P(l.value)+p*(c.shiftKey?10:1)*v,_=l.getAttribute("min"),$=l.getAttribute("max");_!==null&&_!==""&&R<P(_)&&(R=P(_)),$!==null&&$!==""&&R>P($)&&(R=P($)),Me(l).write(String(Number(R.toFixed(2))))}function f(c=document){c.addEventListener("reset",n),c.addEventListener("toggle",o,!0),c.addEventListener("input",r),c.addEventListener("change",r),c.addEventListener("clay:sorted",s),c.addEventListener("keydown",i)}return{install:f,addRouter:c=>e.push(c)}}var Z="https://clayjs.com/v1/sap.js",Un=/^(calc|set|move|sort):/,qn=new Set(["each","detail","effect","invalid","confirm","trigger-add","trigger-remove","trigger-reset"]);function Bt(t){return Un.test(t)||qn.has(t)}ze((t,e)=>{for(let r of t.attributes)Bt(r.name)&&e("E50",t,{attr:r.name,expr:r.value,problem:`${r.name} is full sapjs; the sapjs core only paints declared state`,fix:`load ${Z}; the markup stays as it is`})});function G(t,e,r){t.app.diag.error("E50",e,{attr:r,problem:`${r} is full sapjs; the sapjs core only paints declared state`,fix:`load ${Z}; the markup stays as it is`}),B(e,"E50"),t.app.halted=!0}Fe({name:"core-only",collect(t,e,r){r.calcs&&G(t,e,"calc:"+r.calcs[0].name),r.effects&&G(t,e,"effect"),r.invalids&&G(t,e,"invalid");for(let n of e.attributes)Bt(n.name)&&(n.name.startsWith("calc:")&&r.calcs||n.name==="effect"&&r.effects||n.name==="invalid"&&r.invalids||G(t,e,n.name));return!1},boundary:{each(t,e){G(t,e,"each")},detail(t,e){G(t,e,"detail")}}});function Vn(){return{Sap:function(){throw new Error(`Sap(el) is full sapjs; load ${Z}`)}}}var tn=t=>()=>(console.warn(`Sap.${t} is full sapjs; load ${Z}`),null),{Sap:tt,mountAll:en,mount:Yn,runtime:Gn}=Je({createAccessor:Vn,debugExtras:()=>({why:tn("why"),doctor:tn("doctor")}),installInput(t,e,r){Ze(t).install(r)}});tt.core=!0;var Xn=typeof window<"u"&&window.Sap&&!window.Sap.core;Xn?tt.unmount():Qe(en);typeof window<"u"&&!window.Sap&&(window.Sap=tt);var Kn=tt;return cn(Jn);})();
9
9
  export default SapCoreBundle.default;
@@ -1 +0,0 @@
1
- import{a as r}from"../c-HT33EQRN.js";import"../c-IJUK2GPW.js";import{a as o,b as i,c as u,d as s}from"../c-S7LK4KUE.js";import"../c-GHBCCVG4.js";import"../c-HA6INT6J.js";import"../c-DCFSEJZG.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";function m(e){if(e.parentNode){r.pause();try{e.remove()}finally{r.resume()}}}function p(e){let a=o(e);if(!a||s(e))return;let t=new URL(e.getAttribute(a),location.href);t.searchParams.set("v",Date.now());let f=t.origin===location.origin?t.pathname+t.search:t.href;r.pause();try{let n=document.createElement(e.tagName);for(let{name:d,value:l}of e.attributes)n.setAttribute(d,l);i(n,a,f),u(e),e.insertAdjacentElement("afterend",n),n.onload=()=>m(e),setTimeout(()=>m(e),2e3)}finally{r.resume()}}function c(){document.addEventListener("clay:save-saved",()=>{document.querySelectorAll("[refetch-on-save]").forEach(p)})}c();var g=c;export{g as default};
@@ -1 +0,0 @@
1
- import{a}from"../c-LTGMXXKO.js";import"../c-QIX5BJYN.js";import"../c-HT33EQRN.js";import"../c-IJUK2GPW.js";import"../c-35NBGMZB.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-GHBCCVG4.js";import"../c-HA6INT6J.js";import"../c-DCFSEJZG.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{a as default};
@@ -1 +0,0 @@
1
- import{a as f,b as u,c as i}from"./c-QIX5BJYN.js";import{a as c}from"./c-VKEDWYDF.js";import{i as n}from"./c-7O6AFR65.js";import{b as A,k as l}from"./c-35NBGMZB.js";var d="[editmode\\:onclick]";function b(){l(o=>{o.querySelectorAll(d).forEach(e=>{let t=e.getAttribute("onclick");t!==null&&(e.setAttribute("inert-onclick",t),e.removeAttribute("onclick"))})})}function p(){n&&c(()=>{E()})}function E(o=document){o.querySelectorAll(d).forEach(e=>{let t=e.getAttribute("inert-onclick");t&&(e.setAttribute("onclick",t),e.removeAttribute("inert-onclick"))})}function D(){document.querySelectorAll(d).forEach(o=>{let e=o.getAttribute("onclick");e&&(o.setAttribute("inert-onclick",e),o.removeAttribute("onclick")),i(o)})}function q(){b(),p()}var O="[viewmode\\:disabled]",k="[viewmode\\:readonly]",a=[[O,"disabled"],[k,"readonly"]];function S(){l(o=>{for(let[e,t]of a)o.querySelectorAll(e).forEach(r=>{if(r.hasAttribute(t))return;let m=A(r),s=m?u(m,t):null;r.setAttribute(t,s===null?"":s)})})}function x(){n&&c(()=>{h()})}function h(o=document){for(let[e,t]of a)o.querySelectorAll(e).forEach(r=>{f(r),r.removeAttribute(t)})}function M(){for(let[o,e]of a)document.querySelectorAll(o).forEach(t=>{let r=u(t,e);r===null?t.removeAttribute(e):t.setAttribute(e,r),i(t)})}function P(){S(),x()}export{d as a,E as b,D as c,q as d,O as e,k as f,h as g,M as h,P as i};
@@ -1 +0,0 @@
1
- var n=new Map,u=0;function l({id:e="",isPending:s,flush:t=null}){let o=++u;n.set(o,{id:e,isPending:s,flush:t});let r=!1;return{changed(){r||document.dispatchEvent(new CustomEvent("clay:unsaved-state-changed",{detail:{pending:i()}}))},dispose(){r||(r=!0,n.delete(o))}}}function a(e){try{return!!e.isPending()}catch(s){return console.error(`[clay] unsaved-state check "${e.id}" threw`,s),!0}}function i(){return[...n.values()].filter(a).map(e=>e.id)}function c(){for(let e of n.values())if(a(e))return!0;return!1}async function d(){let e=[...n.values()].filter(t=>typeof t.flush=="function"&&a(t));return{ok:(await Promise.all(e.map(t=>Promise.resolve().then(t.flush).catch(()=>({ok:!1}))))).every(t=>t?.ok!==!1),pending:i()}}typeof window<"u"&&(window.clay=window.clay||{},window.clay.registerUnsavedState=l);export{l as a,i as b,c,d};
@@ -1 +0,0 @@
1
- import{a as I}from"./c-XQXZAO7N.js";import{e as L}from"./c-S7LK4KUE.js";import{d as D}from"./c-GHBCCVG4.js";import{b as q,i as N,o as H}from"./c-HA6INT6J.js";import{c as F,h as A,j as T,k as E,n as S,o as P}from"./c-DCFSEJZG.js";var z=[],f=[],Y=new WeakMap,R=null,g=0;function te(){return g}function U(e){return Y.get(e)||null}var _=new WeakMap,h=null;function re(){return h}function ne(e){h&&e&&(h.artifact=e)}function ce(e){return e&&_.get(e)||null}function se(e){e&&_.delete(e)}function V(e){let o=t=>{if(t.hasAttribute("onbeforesave")||t.hasAttribute("onbeforesnapshot"))return!0;let n=t.localName==="template"&&t.content?t.content:t;for(let i of n.children)if(o(i))return!0;return!1};return e.nodeType===1?o(e):!1}function s(e){for(let o of e.querySelectorAll(P))o.remove()}function d(e,o){for(let t of e.querySelectorAll(`[${o}]`))if(s(e),!(t!==e&&!e.contains(t)))try{new Function(t.getAttribute(o)).call(t)}catch(n){console.error(`[${o}] handler failed:`,n)}}var b=null;function le(e){b=e}function ie(e){return b?.(e),e}function ae(e){z.push(e)}function ue(e){R=e}var j="http://www.w3.org/1999/xhtml";function $(e){let o=[],t=r=>{for(let c of r.childNodes)if(c.nodeType===1){if(c.localName==="noscript"&&c.namespaceURI===j){let a=Array.from(c.childNodes);a.length&&a.every(m=>m.nodeType===3)&&o.push([c,a]);continue}t(c.localName==="template"&&c.content?c.content:c)}};if(t(e),!o.length)return"<!DOCTYPE html>"+e.outerHTML;let n=Math.random().toString(36).slice(2),i=o.map(([r,c],a)=>{let m=`\uE000clay-noscript-${n}-${a}\uE000`;return r.replaceChildren(r.ownerDocument.createTextNode(m)),[m,c.map(C=>C.data).join("")]}),l;try{l="<!DOCTYPE html>"+e.outerHTML}finally{for(let[r,c]of o)r.replaceChildren(...c)}for(let[r,c]of i)l=l.split(r).join(c);return l}function w(e,o=null){let t=$(e);if(!R)return t;let n=h;h=o;try{return R(e,t)}catch(i){return console.error("clayjs: save renderer failed, sending the full serialization",i),t}finally{h=n}}function fe(e){f.push(e)}function y(e,o=!0){let t=window.__preventOnclone;window.__preventOnclone=!0;try{return e.cloneNode(o)}finally{window.__preventOnclone=t}}function p({flushUndo:e=!0,authored:o=!0,forSave:t=!1,requestRefresh:n=!1,context:i=null}={}){e&&typeof window<"u"&&window.clay?.undo?.flush&&window.clay.undo.flush();let r=I(document.documentElement,{capability:"snapshot",provenance:Y}).root;for(let c of z)s(r),c(r,{original:U,forSave:t,requestRefresh:n});return L(r),b?.(r),s(r),i&&(i.authoredHandlers=V(r)),o&&d(r,"onbeforesnapshot"),s(r),F(r),H(r),q(r),r}function x(e,{authored:o=!0}={}){s(e),o&&d(e,"onbeforesave");for(let t of f)s(e),t(e);s(e);for(let t of e.querySelectorAll(A))t.remove();return k(e),e}function k(e){for(let o of e.querySelectorAll("[sap-error]"))o.removeAttribute("sap-error")}function B({flushUndo:e=!0,authored:o=!0}={}){return x(p({flushUndo:e,authored:o}),{authored:o})}var K=["style","class"];function v(e){D(e);for(let o of K){e.getAttribute(o)===""&&e.removeAttribute(o);for(let t of e.querySelectorAll(`[${o}=""]`))t.removeAttribute(o)}return"<!DOCTYPE html>"+e.outerHTML}function pe({flushUndo:e=!0}={}){let o=p({flushUndo:e});d(o,"onbeforesave");for(let t of o.querySelectorAll(T))t.remove();for(let t of f)s(o),t(o);return s(o),v(o)}function de({flushUndo:e=!0}={}){let o=p({flushUndo:e});d(o,"onbeforesave");for(let t of o.querySelectorAll(S))t.remove();for(let t of f)s(o),t(o);return s(o),v(o)}function me({flushUndo:e=!0}={}){let o=p({flushUndo:e});d(o,"onbeforesave");let t=o.querySelector(E)?y(o):null;for(let l of o.querySelectorAll(T))l.remove();for(let l of f)s(o),l(o);s(o);let n=v(o),i=n;if(t){for(let l of t.querySelectorAll(S))l.remove();for(let l of f)s(t),l(t);s(t),i=v(t)}return{forComparison:n,forDirty:i}}function he({emitForSync:e=!0,flushUndo:o=!0,requestRefresh:t=!1,forRequest:n=!1}={}){if(!Number.isSafeInteger(g+1))throw new Error("Save capture identity exhausted");let i=++g,l=n?{captureId:i,authoredHandlers:!1,artifact:null}:null,r=p({flushUndo:o,forSave:e,requestRefresh:t,context:l});e&&document.dispatchEvent(new CustomEvent("clay:snapshot-ready",{detail:{documentElement:r,forSave:!0,captureId:i}})),d(r,"onbeforesave");let c=y(r),a=r.querySelector(E)?y(r):null;for(let u of f)s(r),u(r);s(r);for(let u of r.querySelectorAll(A))u.remove();k(r);let m=w(r,l);for(let u of c.querySelectorAll(T))u.remove();for(let u of f)s(c),u(c);s(c);let C=v(c),O=C;if(a){for(let u of a.querySelectorAll(S))u.remove();for(let u of f)s(a),u(a);s(a),O=v(a)}let M={forSave:m,forComparison:C,forDirty:O,captureId:i};return l&&l.artifact&&_.set(M,l.artifact),M}function ye(){let e=p({flushUndo:!1});d(e,"onbeforesave");let o=y(e),t=new WeakMap;(function n(i,l){t.set(i,l);let r=i.children,c=l.children;for(let a=0;a<r.length;a++)n(r[a],c[a])})(o,e);for(let n of f)s(e),n(e);s(e);for(let n of e.querySelectorAll(A))n.remove();k(e);for(let n of o.querySelectorAll(S))n.remove();for(let n of f)s(o),n(o);return s(o),{saveClone:e,compareClone:o,pairMap:t}}function W({emitForSync:e=!0}={}){let o=p();return e&&document.dispatchEvent(new CustomEvent("clay:snapshot-ready",{detail:{documentElement:o}})),w(x(o))}function ve(e){let o=y(e,!1);for(let i of N)o.removeAttribute(i);let t=o.outerHTML,n=`</${o.localName}>`;return"<!DOCTYPE html>"+t.slice(0,t.length-n.length)+e.innerHTML+n}function Se(){return p().querySelector("body").innerHTML}function Ce({transform:e=null,flushUndo:o=!0}={}){if(!e&&o)return W({emitForSync:!1});let t=p({flushUndo:o});if(e){let n=e(t);if(n&&typeof n.then=="function")throw new TypeError("getHTML: the transform must be synchronous")}return w(x(t))}function Ae(e,{prepared:o=!1}={}){let t=y(e);return $(o?t:x(t,{authored:!1}))}function Te(){return w(B({flushUndo:!1,authored:!1}))}export{te as a,U as b,re as c,ne as d,ce as e,se as f,le as g,ie as h,ae as i,ue as j,fe as k,p as l,B as m,pe as n,de as o,me as p,he as q,ye as r,W as s,ve as t,Se as u,Ce as v,Ae as w,Te as x};
@@ -1 +0,0 @@
1
- import{d as i}from"./c-AYVOREBE.js";import{a as r,i as l}from"./c-7O6AFR65.js";var e=r,a=r,s=!1,n=0;function k(){return e}function w(){return s}function p(t){e=typeof t=="string"&&t!==""?t:null,n++,a=e}function L(){return a}function g(){a=null}function m(){p(null)}function c(t){typeof t.spec=="number"&&(s=t.extensions.includes("conditional"))}async function b(){return c(await i()),s}async function y({fresh:t=!1,clearIfMissing:d=t}={}){let f=n,u=await i({fresh:t});if(c(u),n!==f||r&&!(t&&d))return e;let o=u.document?.etag;return typeof o=="string"&&o!==""?(e=o,n++):d&&(e=null,n++),e}document.addEventListener("clay:sync-applied",t=>{t.detail?.source==="disk"&&(typeof t.detail.etag=="string"&&t.detail.etag||g())});document.addEventListener("clay:sync-applied",t=>{l&&t.detail?.source==="disk"&&(typeof t.detail.etag=="string"&&t.detail.etag||(m(),y({fresh:!0})))});export{k as a,w as b,p as c,L as d,g as e,m as f,b as g,y as h};
@@ -1 +0,0 @@
1
- import{d as A,e as I}from"./c-AYVOREBE.js";import{b as M,i as b,m as T}from"./c-7O6AFR65.js";var B=15e3,P=12e4,K=15e3,V=4e3,W=5e3,U=50,y=new Set(["sent","acked"]),R=new Set(["done","error","cancelled"]),j="wire",i=new Map,k=new Set,f=null,g=null,D=0,h=null;function Q(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`page-${Date.now()}-${Math.random().toString(16).slice(2)}`}function H(e){return new URL(e,window.location.origin).href}function N(){let e=M();return typeof e=="string"&&e!==""?e:null}function w(e){return{id:e.id,type:e.type,state:e.state,helper:e.helper,text:e.text,result:e.result,error:e.error,errorCode:e.errorCode,errorDetails:e.errorDetails,errorSource:e.errorSource,startedAt:e.startedAt}}function m(e,t){let n=w(e);for(let r of k)try{r(n,t||null)}catch(s){console.error("clay.wire: a listener threw",s)}document.dispatchEvent(new CustomEvent("clay:wire-state",{detail:n}))}function Y(e,t){e.state!==t&&(e.state=t,m(e))}function v(e,t,n,{cancelFirst:r=!1,errorCode:s=null}={}){clearTimeout(e.timer),e.timer=setTimeout(()=>{e.timer=null,r&&z(e),l(e,"error",n,{errorCode:s,errorSource:"client"})},t)}function q(e){clearTimeout(e.timer),e.timer=null}function Z(){if(!(i.size<=U))for(let[e,t]of i){if(i.size<=U)break;!y.has(t.state)&&t.state!=="landing"&&i.delete(e)}}function ee(){if(g)return g;let e=N(),t=`/_/wire/subscribe?page-url=${encodeURIComponent(window.location.href)}`+(e?`&token=${encodeURIComponent(e)}`:"");return f=new EventSource(H(t)),f.onmessage=n=>{let r;try{r=JSON.parse(n.data)}catch{return}te(r)},f.onerror=()=>{},g=new Promise(n=>{let r=!1,s=()=>{r||(r=!0,n())};f.onopen=s,setTimeout(s,2e3)}),g}function L(){for(let e of i.values())if(y.has(e.state))return;f&&(f.close(),f=null,g=null)}function te(e){if(!e||typeof e.id!="string")return;let t=i.get(e.id);if(!(!t||!y.has(t.state)))switch(e.type){case"wire/ack":e.payload?.mode==="jsonl"&&Number.isFinite(e.payload.budgetMs)&&e.payload.budgetMs>0?(t.structured=!0,v(t,e.payload.budgetMs+K,"the helper did not finish within its execution budget",{cancelFirst:!0,errorCode:"helper_timeout"})):v(t,P,"the agent stopped responding"),Y(t,"acked");break;case"wire/status":t.structured||v(t,P,"the agent stopped responding"),t.text=typeof e.text=="string"?e.text:"",t.state="acked",ne(t,e),m(t,e);break;case"wire/done":t.result=Object.prototype.hasOwnProperty.call(e,"payload")?e.payload:null,t.document==="edit"?ae(t):l(t,"done",null);break;case"wire/error":re(t,e);break;default:break}}function ne(e,t){if(!e.onStatus||typeof t.text!="string")return;let n={text:t.text};t.payload&&typeof t.payload=="object"&&Object.prototype.hasOwnProperty.call(t.payload,"progress")&&(n.progress=t.payload.progress);try{e.onStatus(n)}catch(r){console.error("clay.wire: an onStatus listener threw",r)}}function re(e,t){let n=t.payload,r=n&&typeof n=="object"&&!Array.isArray(n)&&(n.source==="application"||n.source==="host")&&typeof n.code=="string"&&n.code,s=typeof t.text=="string"&&t.text?t.text:"the handler reported an error";if(!r){l(e,"error",s);return}let a=n.source==="host"&&n.code==="helper_cancelled"?"cancelled":"error";l(e,a,s,{errorCode:n.code,errorDetails:Object.prototype.hasOwnProperty.call(n,"details")?n.details:null,errorSource:n.source})}function oe(){h||(h=e=>{if(e.detail?.source!=="peer"){for(let t of i.values())if(t.state==="landing"){l(t,"done",null);return}}},document.addEventListener("clay:sync-applied",h))}function se(){D>0||!h||(document.removeEventListener("clay:sync-applied",h),h=null)}function ae(e){R.has(e.state)||e.state==="landing"||(q(e),e.state="landing",D++,oe(),e.landingTimer=setTimeout(()=>{l(e,"done",null)},V),m(e),L())}function l(e,t,n,r={}){if(R.has(e.state))return;let s=e.state==="landing";if(q(e),clearTimeout(e.landingTimer),e.landingTimer=null,e.abort?.abort(),s&&(D--,se()),e.error=n,Object.prototype.hasOwnProperty.call(r,"errorCode")&&(e.errorCode=r.errorCode),Object.prototype.hasOwnProperty.call(r,"errorDetails")&&(e.errorDetails=r.errorDetails),Object.prototype.hasOwnProperty.call(r,"errorSource")&&(e.errorSource=r.errorSource),e.state=t,e.signal&&e.signalHandler&&(e.signal.removeEventListener("abort",e.signalHandler),e.signalHandler=null),ue(e),m(e),L(),Z(),e.settle){let a=e.settle;e.settle=null,a(w(e))}}var C=0,$=null,E=null;function ie(){return E||(E=import("./core/save-WUCHTQBE.js")),E}async function le(e){if(!b||e.holdsSave)return;let t=await ie();e.state==="sent"&&($=t,e.holdsSave=!0,!(C++>0)&&t.suspendAutosave())}function ue(e){e.holdsSave&&(e.holdsSave=!1,!(--C>0)&&(C=0,$?.resumeAutosave()))}var c=null,de=()=>!c||c.admitted,ce=(e,t,n)=>Object.assign(new Error(`clay.wire: ${e}`),{code:t,pending:n});function O(e){return e.document!=="edit"||e.generation===T().generation&&de()?!0:(l(e,"error","the page changed mode before this request went out",{errorCode:"stale-document",errorSource:"client"}),!1)}function _e(){return{id:"clay:wire",order:900,prepare(e={}){let t={admitted:e.initial===!0};return c=t,{enable(){c===t&&(t.admitted=!0)},quiesce(){if(c!==t)return;t.admitted=!1;let n=[...i.values()].filter(r=>r.document==="edit"&&(r.holdsSave||y.has(r.state))).map(r=>r.id);if(n.length)throw ce("a request on this page has not settled","pending-input",n)},resume(){c===t&&(t.admitted=!0)},dispose(){c===t&&(c=null)}}}}}function fe(e,t){return new Promise(n=>{let r=!1,s=()=>{r||(r=!0,document.removeEventListener(e,s),n())};document.addEventListener(e,s),setTimeout(s,t)})}async function pe(){if(!b)return;let e=window.clay;if(!e||typeof e.save!="function")return;let{isSaveInProgress:t}=await import("./core/save-core-FJVHT5M3.js"),{savesHeld:n,saveHoldReason:r}=await import("./core/save-WUCHTQBE.js");if(n())throw new Error(r());let s=Date.now()+W;for(let a=0;a<3;a++){t()&&await fe("clay:save-saved",Math.max(0,s-Date.now()));let u=await e.save();if(u?.ok||u?.msgType==="skipped"&&!t())return;if(u?.msgType==="error"||u?.msgType==="unknown")throw new Error(`could not save this page first: ${u.msg||u.msgType}`);if(Date.now()>=s)break}throw new Error("could not save this page before sending")}async function F(e,t){let n={"Content-Type":"application/json","Page-URL":window.location.href},r=N();r&&(n["Save-Token"]=r);let s=await fetch(H("/_/wire/send"),{method:"POST",headers:n,body:JSON.stringify(e),signal:t}),a=null;try{a=await s.json()}catch{a=null}return{ok:s.ok,status:s.status,reply:a}}function he(e,t={}){let n=typeof t.id=="string"&&t.id?t.id:Q(),r=typeof t.type=="string"&&t.type?t.type:"wire/request",s=Object.prototype.hasOwnProperty.call(t,"helper"),a=s&&typeof t.helper=="string"&&t.helper?t.helper:null,u=t.document===void 0?a?"none":"edit":t.document;if(s&&!a)return _(n,r,null,"helper must be a nonempty string","invalid_helper");if(u!=="edit"&&u!=="none")return _(n,r,a,'document must be "edit" or "none"',"invalid_document");if(i.has(n))return _(n,r,a,"a request with this id is already on the wire","duplicate_request");let o={id:n,type:r,state:"sent",helper:a,document:u,structured:!1,onStatus:typeof t.onStatus=="function"?t.onStatus:null,text:"",result:null,error:null,errorCode:null,errorDetails:null,errorSource:null,startedAt:Date.now(),timer:null,landingTimer:null,abort:typeof AbortController=="function"?new AbortController:null,holdsSave:!1,generation:T().generation,settle:null,signal:t.signal&&typeof t.signal.addEventListener=="function"?t.signal:null,signalHandler:null};return o.done=new Promise(d=>{o.settle=d}),i.set(n,o),m(o),o.signal&&(o.signalHandler=()=>x(n),o.signal.addEventListener("abort",o.signalHandler,{once:!0}),o.signal.aborted&&o.signalHandler()),(async()=>{if(o.state!=="sent")return;if(o.helper){let X=await I(j);if(o.state!=="sent")return;if(!X){l(o,"error","this host does not support named wire helpers",{errorCode:"helper_protocol_unsupported",errorSource:"client"});return}}if(!O(o)||o.document==="edit"&&(await le(o),o.state!=="sent"||!O(o)||(await pe(),o.state!=="sent")||!O(o)))return;if(await ee(),o.state!=="sent"){L();return}v(o,B,"the agent never answered",o.helper?{cancelFirst:!0,errorCode:"ack_timeout"}:void 0);let d={type:o.type,id:o.id,text:t.text,payload:e};o.helper&&(d.helper=o.helper),(o.helper||t.document!==void 0)&&(d.document=o.document);let{ok:G,status:J,reply:S}=await F(d,o.abort?.signal);if(o.state!=="sent")return;if(!G){l(o,"error",`the wire refused this request (${J})`);return}let p=S&&S.refused;if(p&&typeof p.code=="string"&&p.code){l(o,"error",p.message||"the handler refused this request",{errorCode:p.code,errorSource:p.source==="application"?"application":"host",errorDetails:null});return}(!S||S.delivered===0)&&l(o,"error","no agent is attached to this file")})().catch(d=>{l(o,"error",d&&d.message?d.message:String(d))}),{id:n,get state(){return o.state},done:o.done,cancel:()=>x(n)}}function _(e,t,n,r,s){let a={id:e,type:t,state:"error",helper:n,text:"",result:null,error:r,errorCode:s,errorDetails:null,errorSource:"client",startedAt:Date.now()};return{id:e,get state(){return a.state},done:Promise.resolve(w(a)),cancel:()=>!1}}function x(e){let t=i.get(e);return!t||!y.has(t.state)?!1:(z(t),l(t,"cancelled",null),!0)}function z(e){F({type:"wire/cancel",id:e.id}).catch(()=>{})}function ye(e){let t=i.get(e);return t?w(t):void 0}function ge(){return[...i.values()].map(w)}function we(){for(let e of i.values())if(y.has(e.state))return!0;return!1}function me(e){return typeof e!="function"?()=>{}:(k.add(e),()=>k.delete(e))}async function Se(){let e=await A({fresh:!0});if(!e.extensions.includes(j))return[];let t=e.document?.helpers;return Array.isArray(t)?t.filter(n=>n&&typeof n.name=="string"&&["ready","denied","unavailable"].includes(n.state)).map(({name:n,state:r})=>({name:n,state:r})):[]}var ve={send:he,cancel:x,get:ye,list:ge,isBusy:we,on:me,helpers:Se},ke=ve;export{_e as a,ve as b,ke as c};
@@ -1 +0,0 @@
1
- import{b as u}from"./c-PZ4XEPUP.js";import{w as p,x as i}from"./c-35NBGMZB.js";function y(e=new Date){let o=n=>String(n).padStart(2,"0");return`${e.getFullYear()}${o(e.getMonth()+1)}${o(e.getDate())}-${o(e.getHours())}${o(e.getMinutes())}${o(e.getSeconds())}`}function m(e=location.pathname){let o=e.split("/").filter(Boolean).pop();if(!o)return e.endsWith("/")||e===""?"index":"page";let n=o;try{n=decodeURIComponent(o)}catch{}return n.replace(/\.(html?|htmlclay)$/i,"")||"page"}function f(e,o){let t=`<script type="application/json" id="clay-lost-edits" clay="no-save">${JSON.stringify(o).replace(/</g,"\\u003c")}<\/script>`,a=e.lastIndexOf("</body>");return a>=0?e.slice(0,a)+t+e.slice(a):e+t}function O(e,{refused:o=!1}={}){let n=window.clay?.conflicts||null,t=[],a=new Set;for(let r of e){let l=n?.recoveryOf(r.id);l&&!a.has(l.id)&&(a.add(l.id),t.push(l))}t.sort((r,l)=>(r.ticket||0)-(l.ticket||0));let d=r=>p(r.recoveryRoot??r.root,{prepared:r.domain==="save"}),c,s;o||!t.length?(c=i(),s=t):(c=d(t[t.length-1]),s=t.slice(0,-1));let g=e.map(r=>{if(r.kind==="apply-incomplete")return{id:r.id,kind:"apply-incomplete",name:"Sync update that did not finish",error:r.error??null};let{id:l,name:w,kind:b,yours:$,now:R,sentence:S}=u(r);return{id:l,name:w,kind:b,yours:$,now:R,sentence:S}}),v={format:"clay-lost-edits",version:1,savedAt:new Date().toISOString(),page:location.href,refused:!!o,edits:g,earlierPages:s.map(r=>({applyId:r.id,source:r.source,html:d(r)}))};return{html:f(c,v),name:`${m()}-${o?"my-version":"my-copy"}-${y()}.html`}}function h({html:e,name:o}){let n=null;try{n=URL.createObjectURL(new Blob([e],{type:"text/html"}));let t=document.createElement("a");return t.setAttribute("clay","no-save no-watch no-snapshot"),t.href=n,t.download=o,t.style.setProperty("display","none","important"),document.body.appendChild(t),t.click(),t.remove(),setTimeout(()=>URL.revokeObjectURL(n),4e4),!0}catch(t){return console.error("clayjs: could not build the download",t),n&&URL.revokeObjectURL(n),!1}}function x({html:e=null,edits:o=[]}={}){try{let n=typeof e=="string"?e:i(),t={format:"clay-lost-edits",version:1,savedAt:new Date().toISOString(),page:location.href,refused:!1,edits:Array.isArray(o)?o:[],earlierPages:[]};return h({html:f(n,t),name:`${m()}-my-copy-${y()}.html`})}catch(n){return console.error("clayjs: could not build the download",n),!1}}function U(e,{refused:o=!1}={}){try{let{html:n,name:t}=O(e,{refused:o});return h({html:n,name:t})}catch(n){return console.error("clayjs: could not build the download",n),!1}}export{m as a,h as b,x as c,U as d};
@@ -1 +0,0 @@
1
- import{j as X}from"./c-7O6AFR65.js";var pe=500,he=5e3,L="text",ke=64,ge=1024*1024,we=256,me=1024*1024;function be(){let a=globalThis.crypto?.randomUUID?.();return a||`wr-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}function D(a){return Array.isArray(a)?a.join("\0"):String(a)}function I(a,u){return Array.isArray(a)&&Array.isArray(u)?a.length===u.length&&a.every((g,B)=>g===u[B]):a===u}function ve(a){return globalThis.crypto?.randomUUID?.()??`rec-${a}-${Math.random().toString(36).slice(2)}`}function M(a){return a instanceof Uint8Array?new Uint8Array(a):a instanceof ArrayBuffer?a.slice(0):a}function ye(a,u){if(a===u)return!0;if(!a||!u||typeof a!="object"||typeof u!="object")return!1;if(a instanceof Uint8Array||u instanceof Uint8Array){if(!(a instanceof Uint8Array)||!(u instanceof Uint8Array)||a.length!==u.length)return!1;for(let h=0;h<a.length;h++)if(a[h]!==u[h])return!1;return!0}let g=Object.keys(u),B=Object.keys(a);if(g.length!==B.length)return!1;for(let h=0;h<g.length;h++)if(g[h]!==B[h]||u[g[h]]!==a[B[h]])return!1;return!0}var T=new Set;function Se({captureId:a,html:u}={}){if(T.size)for(let g of T)g.capture(a,u)}function Ue({captureId:a,ok:u=!1,etag:g=null}={}){if(T.size)for(let B of T)B.settle(a,u===!0,g)}function Ae({mode:a=X==="draft"?"draft":"edit",writerId:u=be(),indexedDB:g,maxScopeBytes:B,maxDbBytes:h,now:E}={}){let S=new Map,x=new Set,O=new Map,Q=null,_=null,p=null,m={ok:!0,code:null,durable:!1};function C(){return{ok:m.ok,code:m.code,durable:m.durable,usage:p?.status().usage??null,identityMismatch:_?_.check().ok===!1:!1}}function w(e){let n={channel:e.channel,status:C(),count:e.pending.size,revisions:[...e.pending.values()].map(({id:t,revision:o})=>({id:t,revision:o}))};for(let t of e.listeners)try{t(n)}catch{}for(let t of x)try{t(n)}catch{}}function b(e){if(e&&e.ok){let t=m.ok;if(m={ok:!0,code:null,durable:!0},!t)for(let o of S.values())w(o);return}let n=e?.code||"error";if(m.ok||m.code!==n){m={ok:!1,code:n,durable:!1};for(let t of S.values())w(t);return}m={ok:!1,code:n,durable:!1}}async function H(){let[{createIdentity:e},{createStore:n}]=await Promise.all([import("./c-FA4DZVTC.js"),import("./c-QNKREOL6.js")]);_=e({mode:a,writerId:u}),p=n({scope:_.scope,indexedDB:g,maxScopeBytes:B,maxDbBytes:h,now:E});let t=await p.open();return t.ok?m={ok:!0,code:null,durable:!1}:b(t),t}function v(){return Q||(Q=H().catch(e=>({ok:!1,code:e?.name==="DataCloneError"?"uncloneable":"unavailable"}))),Q}function N(e,n){let t;try{t=e.readSaved(n)}catch{return[]}if(!t||typeof t.get!="function")return[];let o=[];for(let i of e.held.values())i.kind===L&&t.has(i.key)&&ye(t.get(i.key),i.payload)&&o.push({id:i.id,revision:i.revision});return o}function Y(e,n){if(e==null||typeof n!="string")return;let t=new Map;for(let o of S.values()){if(typeof o.readSaved!="function"||!o.held.size)continue;let i=N(o,n);i.length&&t.set(o.channel,i)}t.size&&O.set(e,t)}async function F(e,n,t,o){if((await v()).ok){for(let{id:r,revision:s}of n){let c=await p.acknowledge(r,{revision:s,etag:t,captureId:o});b(c);let l=D(r),f=e.held.get(l);f&&f.revision<=s&&e.held.delete(l)}w(e)}}function K(e,n,t){let o=O.get(e);if(!o||(O.delete(e),!n))return Promise.resolve();let i=[];for(let[r,s]of o){let c=S.get(r);if(!c)continue;let l=()=>F(c,s,t,e);c.writing=c.writing.then(l,l),i.push(c.writing)}return Promise.all(i).then(()=>{},()=>{})}function V(e){let n=E?.()??Date.now();e.burstStart||(e.burstStart=n);let t=Math.max(0,Math.min(pe,e.burstStart+he-n));e.timer&&clearTimeout(e.timer),e.timer=setTimeout(()=>{e.timer=null,e.burstStart=0,q(e).catch(()=>{})},t)}function W(e,{key:n,kind:t=L,baseEtag:o=null,base:i=null,payload:r=null,lineage:s=null}={}){let c=n==null?"":String(n);if(!c)throw new TypeError("clay.recovery.stage needs a key");let l=E?.()??Date.now(),f=++e.revision,k=t===L?[e.channel,c,u]:globalThis.crypto?.randomUUID?.()??`rec-${f}-${Math.random().toString(36).slice(2)}`,y=D(k),A=e.pending.get(y),d={id:k,kind:t,channel:e.channel,version:e.version,key:c,writerId:u,revision:f,status:"journaled",baseEtag:o,base:M(i),payload:M(r),lineage:s,created:A?.created??l,updated:l};return e.pending.set(y,d),e.held.set(y,{id:k,kind:t,key:c,revision:f,payload:d.payload}),V(e),w(e),{id:k,revision:f}}async function G(e){let n=[...e.pending.values()];if(!n.length)return{ok:!0,stored:[]};let t=await v();if(!t.ok)return{ok:!1,code:t.code};let o=[],i=null;for(let r of n){let s=await p.put(r);if(s.ok){let c=D(r.id);if(e.pending.get(c)===r&&e.pending.delete(c),s.skipped){let l=e.held.get(c);l&&l.revision===r.revision&&e.held.delete(c)}else o.push({id:r.id,revision:r.revision})}else i=i||s.code||"error"}return b(i?{ok:!1,code:i}:{ok:!0}),w(e),i?{ok:!1,code:i}:{ok:!0,stored:o}}function J(e,n){return[e.channel,n,u]}function Z(e,n,t,o,i){return{id:n,kind:"binary",channel:e.channel,version:e.version,writerId:u,revision:0,context:t,payload:{base:i??new Uint8Array(0),dependencies:new Uint8Array(0),owned:new Uint8Array(0)},acknowledged:null,created:o,updated:o}}function $(e,n,t){return e.batchQueue.size>=we||e.queuedBytes+n.payload.byteLength>me?!1:(e.batchQueue.set(D(n.id),{record:n,capsule:t}),e.queuedBytes+=n.payload.byteLength,!0)}async function ee(e){if(!e.batchQueue.size)return{ok:!0};let n=await v();if(!n.ok)return{ok:!1,code:n.code};let t=[],o=null;for(let[i,r]of[...e.batchQueue.entries()]){let s=await p.appendBinary(r.record,r.capsule);if(!s.ok){o=o||s.code||"error";continue}e.batchQueue.delete(i),e.queuedBytes=Math.max(0,e.queuedBytes-r.record.payload.byteLength),!s.skipped&&(e.batches+=1,e.batchBytes+=r.record.payload.byteLength,t.push({id:r.record.id,revision:r.record.revision}))}return b(o?{ok:!1,code:o}:{ok:!0}),w(e),o?{ok:!1,code:o}:{ok:!0,stored:t}}async function ne(e,{key:n,context:t=null,update:o,origin:i="local",base:r=null}={}){let s=n==null?"":String(n);if(!s)throw new TypeError("clay.recovery.append needs a key");if(!(o instanceof Uint8Array)&&!(o instanceof ArrayBuffer))throw new TypeError("clay.recovery.append needs binary bytes");let c=E?.()??Date.now(),l=++e.revision,f=J(e,s),k={id:ve(l),kind:"binary-batch",channel:e.channel,version:e.version,writerId:u,revision:l,capsuleId:f,origin:i==="dependency"?"dependency":"local",context:t,payload:M(o),updated:c},y=Z(e,f,t,c,r==null?null:M(r)),A=await v();if(!A.ok)return $(e,k,y)?{ok:!1,code:A.code}:{ok:!1,code:"over-budget"};let d=await p.appendBinary(k,y);return b(d),w(e),d.ok?(e.batches+=1,e.batchBytes+=k.payload.byteLength,d.skipped?{ok:!0,id:k.id,revision:l,skipped:!0}:(re(e),{ok:!0,id:k.id,revision:l})):$(e,k,y)?{ok:!1,code:d.code}:{ok:!1,code:d.code}}async function te(e,{records:n=[],authority:t=null,epoch:o=null,sequence:i=null}={}){let r=(n||[]).filter(l=>l&&l.id!==void 0&&typeof l.revision=="number");if(!r.length)return{ok:!0,acknowledged:0};let s=await v();if(!s.ok)return{ok:!1,code:s.code};let c=await p.acknowledgeBinary({channel:e.channel,version:e.version,writerId:u,records:r,authority:t,epoch:o,sequence:i});return b(c),w(e),c.ok?{ok:!0,acknowledged:c.acknowledged}:{ok:!1,code:c.code}}async function oe(e,{records:n=[],proof:t=null}={}){let o=(n||[]).filter(l=>l&&l.id!==void 0&&typeof l.revision=="number");if(!o.length)return{ok:!0,retired:[]};if(typeof e.validateCheckpoint!="function")return{ok:!0,retired:[]};let i;try{i=await e.validateCheckpoint(t,o.map(({id:l,revision:f})=>({id:l,revision:f})))}catch{return{ok:!1,code:"invalid",retired:[]}}if(!Array.isArray(i))return{ok:!1,code:"invalid",retired:[]};let r=o.filter(l=>i.some(f=>f&&f.revision===l.revision&&I(f.id,l.id)));if(!r.length)return{ok:!0,retired:[]};let s=await v();if(!s.ok)return{ok:!1,code:s.code,retired:[]};let c=await p.checkpointBinary({channel:e.channel,version:e.version,writerId:u,records:r});return b(c),w(e),c.ok?{ok:!0,retired:c.retired}:{ok:!1,code:c.code,retired:[]}}function P(e){return e&&typeof e.byteLength=="number"&&e.byteLength>0?e:null}async function ie(e,n){for(let t=0;t<3;t++){let o=null,i=[];for(let{id:d,revision:fe}of n){let z=await p.get(d);if(!z.ok||!z.record)continue;let U=z.record;U.revision!==fe||U.kind!=="binary-batch"||!U.capsuleId||(o||(o=U.capsuleId),I(o,U.capsuleId)&&i.push(U))}if(!o||!i.length)return{ok:!0,retired:[]};let r=await p.get(o);if(!r.ok||!r.record)return{ok:!1,code:"missing"};let s=r.record,c=[P(s.payload?.owned),...i.filter(d=>d.origin!=="dependency").map(d=>P(d.payload))].filter(Boolean),l=[P(s.payload?.dependencies),...i.filter(d=>d.origin==="dependency").map(d=>P(d.payload))].filter(Boolean),f=c.length?M(await e.merge(c)):new Uint8Array(0),k=l.length?M(await e.merge(l)):new Uint8Array(0),y=Math.max(e.revision,s.revision)+1;e.revision=y;let A=await p.compactBinary({channel:e.channel,version:e.version,capsuleId:o,expectedRevision:s.revision,replacement:{revision:y,updated:E?.()??Date.now(),payload:{base:s.payload?.base??new Uint8Array(0),dependencies:k,owned:f}},inputs:i.map(d=>({id:d.id,revision:d.revision}))});if(A.ok)return e.batches=0,e.batchBytes=0,{ok:!0,retired:A.retired,revision:A.revision};if(A.code!=="stale")return{ok:!1,code:A.code}}return{ok:!1,code:"stale"}}async function j(e,{records:n=[]}={}){if(typeof e.merge!="function")return{ok:!1,code:"invalid",retired:[]};let t=(n||[]).filter(r=>r&&r.id!==void 0&&typeof r.revision=="number");if(!t.length)return{ok:!0,retired:[]};let o=await v();if(!o.ok)return{ok:!1,code:o.code,retired:[]};let i=await ie(e,t);return b(i),w(e),i.ok?{ok:!0,retired:i.retired}:{ok:!1,code:i.code,retired:[]}}function re(e){typeof e.merge!="function"||e.compaction||e.batches<ke&&e.batchBytes<ge||(e.compaction=(async()=>{let n=await p.list();if(!n.ok)return;let t=n.records.filter(o=>o.channel===e.channel&&o.kind==="binary-batch"&&o.writerId===u);t.length&&await j(e,{records:t.map(({id:o,revision:i})=>({id:o,revision:i}))})})().catch(()=>{}).finally(()=>{e.compaction=null}))}function q(e){e.timer&&clearTimeout(e.timer),e.timer=null,e.burstStart=0;let n=async()=>{let t=await ee(e);return t.ok?G(e):t};return e.writing=e.writing.then(n,n),e.writing}async function ce(e){let n=await v();if(!n.ok)return{ok:!1,code:n.code,records:[],status:C()};let t=await p.list();return b(t),t.ok?{ok:!0,records:t.records.filter(i=>i.channel===e.channel).map(i=>({...i,supported:i.version===e.version})),status:C()}:{ok:!1,code:t.code,records:[],status:C()}}async function ae(e,n,{revision:t}={}){let o=await v();if(!o.ok)return{ok:!1,code:o.code};e.timer&&clearTimeout(e.timer),e.timer=null,e.burstStart=0,await e.writing;let i=D(n),r=e.pending.get(i);r&&(t===void 0||r.revision===t)&&e.pending.delete(i);let s=e.held.get(i);s&&(t===void 0||s.revision===t)&&e.held.delete(i);let c=await p.remove(n,{revision:t});return b(c),w(e),c.ok?{ok:!0,id:n,revision:t}:{ok:!1,code:c.code}}function se(e,n){return e.listeners.add(n),()=>e.listeners.delete(n)}function le(e){e.timer&&clearTimeout(e.timer),e.timer=null,e.burstStart=0;let n=q(e).catch(()=>({ok:!1,code:"aborted"}));return e.listeners.clear(),S.delete(e.channel),S.size||T.delete(R),n}let R={capture:Y,settle:K};function ue(e){return{channel:e.channel,version:e.version,stage:n=>W(e,n),flush:()=>q(e),list:()=>ce(e),dismiss:(n,t)=>ae(e,n,t),append:n=>ne(e,n),markAcknowledged:n=>te(e,n),checkpoint:n=>oe(e,n),compact:n=>j(e,n),subscribe:n=>se(e,n),dispose:()=>le(e)}}function de({channel:e,version:n=1,readSaved:t=null,describe:o=null,validateCheckpoint:i=null,merge:r=null}={}){if(!e||typeof e!="string")throw new TypeError("clay.recovery.register needs a channel name");let s=S.get(e);if(s)throw new Error(`clay.recovery: the "${e}" channel is already registered at version ${s.version}`);let c={channel:e,version:n,readSaved:t,describe:o,validateCheckpoint:i,merge:r,revision:0,pending:new Map,held:new Map,batchQueue:new Map,queuedBytes:0,batches:0,batchBytes:0,compaction:null,timer:null,burstStart:0,writing:Promise.resolve(),listeners:new Set};return S.set(e,c),T.add(R),v(),ue(c)}return{register:de,status:C,subscribe(e){return x.add(e),()=>x.delete(e)}}}var Me=Ae();export{Se as a,Ue as b,Ae as c,Me as d};
@@ -1 +0,0 @@
1
- import{A as b,e as L,y as h}from"./c-TR6RMDQ7.js";import{E as x,b as z,d as T,l as B,m as P}from"./c-66O32MV3.js";var C=new WeakMap;var{Plugin:Y,PluginKey:H}=z,{Decoration:_,DecorationSet:K}=T,E=P.nodes,f=new H("page-media"),A=1.5*1024*1024,ce=new Set(["timeout","network","error","bad-response"]),m=new WeakMap,M=(e,o)=>{let a=e.resolve(Math.max(0,Math.min(o,e.content.size)));return a.depth===0?a.pos:a.after(1)};function D(e,o){let a=L(e.doc),r=a[Math.min(o,a.length-1)],t=r.node.type===E.paragraph&&r.node.content.size===0;return{hostId:r.node.attrs.id,at:t?r.at:a[r.subEnd].end,parent:r.node.attrs.parent??null,replaceId:t?r.node.attrs.id:null}}var W={init:()=>({items:[],placed:{},picker:null}),apply(e,o){let{items:a,placed:r,picker:t}=o;if(e.docChanged&&(a=a.map(n=>({...n,pos:M(e.doc,e.mapping.map(n.pos,-1))}))),t&&e.docChanged&&(t={...t,place:{...t.place,at:M(e.doc,e.mapping.map(t.place.at,-1))}},t.remove)){let n=e.mapping.map(t.remove.from,1),c=e.mapping.map(t.remove.to,-1);t=n<=c&&e.doc.textBetween(n,c)===t.remove.text?{...t,remove:{...t.remove,from:n,to:c}}:null}let s=e.getMeta(f);if(s?.picker!==void 0&&(t=s.picker),s?.add&&(a=[...a,...s.add]),s?.update&&(a=a.map(n=>n.id===s.update.id?{...n,...s.update}:n)),s?.placed){let{id:n,at:c,size:d,blockId:p}=s.placed,l=o.items.find(i=>i.id===n);a=a.filter(i=>i.id!==n).map(i=>l&&i.pos===c&&i.group===l.group&&i.order>l.order?{...i,pos:i.pos+d}:i),l&&(r={...r,[l.group]:[...r[l.group]||[],p]})}s?.remove&&(a=a.filter(n=>n.id!==s.remove));for(let n of Object.keys(r))a.some(c=>c.group===n)||(r={...r},delete r[n]);return{items:a,placed:r,picker:t}}};function O(e,o,a){if(!o)return;let r=null,t=null;e.doc.forEach((s,n)=>{s.attrs.id===o&&r&&a.includes(r.attrs.id)&&(t={n:s,off:n}),r=s}),t&&t.n.type===E.paragraph&&t.n.content.size===0&&e.delete(t.off,t.off+t.n.nodeSize)}function j(e,o,a){let{items:r,placed:t}=f.getState(e),s=r.find(l=>l.id===o);if(!s)return null;let n=M(e.doc,s.pos),c=x(),d=(s.kind==="image"?E.image:E.file).create({...a,id:c,pos:null,parent:s.parent}),p=e.tr.insert(n,d);return r.some(l=>l.group===s.group&&l.id!==o)||O(p,s.replaceId,[...t[s.group]||[],c]),b(p).setMeta(f,{placed:{id:o,at:n,size:d.nodeSize,blockId:c}})}function F(e,o){let{items:a,placed:r}=f.getState(e),t=a.find(n=>n.id===o);if(!t)return null;let s=e.tr;return a.some(n=>n.group===t.group&&n.id!==o)||O(s,t.replaceId,r[t.group]||[]),s.docChanged&&b(s),s.setMeta(f,{remove:o})}function R(e,o,a=D(e.state,e.state.selection.$head.index(0))){if(o=[...o].filter(Boolean),!o.length)return!1;let r=x("g"),t=o.map((s,n)=>{let c=/^image\//.test(s.type||"")?"image":"file";return{id:x("u"),pos:a.at,group:r,order:n,file:s,kind:c,name:s.name||(c==="image"?"image":"file"),parent:a.parent,replaceId:a.replaceId,state:"uploading",percent:0,preview:c==="image"&&globalThis.URL?.createObjectURL?URL.createObjectURL(s):null}});e.dispatch(e.state.tr.setMeta(f,{add:t}));for(let s of t)V(e,s);return h(e,o.length===1?`Uploading ${t[0].name}`:`Uploading ${o.length} files`),!0}var g=(e,o)=>f.getState(e.state).items.find(a=>a.id===o),y=(e,o,a)=>e.dispatch(e.state.tr.setMeta(f,{update:{id:o,...a}})),X=e=>new Promise((o,a)=>{let r=new FileReader;r.onload=()=>o(r.result),r.onerror=()=>a(r.error),r.readAsDataURL(e)}),N=(e,o)=>e.kind==="image"?{src:o,alt:"",caption:""}:{src:o,name:e.name,size:e.file.size??null,mime:e.file.type||null};function $(e,o,a){e.preview&&URL.revokeObjectURL?.(e.preview),a&&o.dispatch(a)}async function V(e,o){let a=m.get(e),r=new AbortController;a.aborts.set(o.id,r);let t=-5,s=({percent:d})=>{d-t<5&&d!==100||(t=d,m.has(e)&&g(e,o.id)&&y(e,o.id,{percent:d}))},n;try{n=await a.upload(o.file,{onProgress:s,signal:r.signal})}catch{n={code:"network",msg:"Upload failed"}}if(a.aborts.delete(o.id),!m.has(e)||!g(e,o.id))return;if(n?.ok){let d=B(n.uploads?.[0]?.url);if(d){$(o,e,j(e.state,o.id,N(o,d))),h(e,`${o.name} added`);return}n={code:"bad-response",msg:"The upload returned an invalid address"}}if((!n||typeof n!="object")&&(n={code:"bad-response",msg:"The upload returned an invalid response"}),n.code==="aborted")return $(o,e,F(e.state,o.id));if(n.code==="unsupported"){let d=/^image\/(png|jpeg|gif|webp)$/i.test(o.file.type)&&o.file.size<=A,p=d?"This host doesn't store files. You can keep this image inside the document, which makes the document larger.":o.kind==="image"&&o.file.size>A?"This host doesn't store files, and this image is over 1.5 MB, too large to keep inside the document.":"This host doesn't store files.";y(e,o.id,{state:d?"embed-choice":"error",code:n.code,message:p}),h(e,`${o.name}: ${p}`);return}let c=n.code==="timeout"?"The upload timed out. It may have arrived; trying again is safe.":n.msg||"Upload failed";y(e,o.id,{state:"error",code:n.code,message:c}),h(e,`${o.name}: ${c}`)}async function q(e,o){let a=g(e,o);if(!a||a.state!=="embed-choice")return;let r=await X(a.file);!m.has(e)||!g(e,o)||($(a,e,j(e.state,o,N(a,r))),h(e,"Saved inside the document"))}function G(e,o){g(e,o)&&(y(e,o,{state:"uploading",percent:0,code:null,message:null}),V(e,g(e,o)))}function J(e,o){let a=m.get(e),r=a?.aborts.get(o),t=g(e,o);t&&$(t,e,F(e.state,o)),a?.aborts.delete(o),r?.abort()}var Q=e=>e.replace(/<(meta|style|img)\b[^>]*>/gi,"").replace(/<[^>]+>/g,"").trim()!=="";function de({upload:e,features:o=null}){let a=null,r=t=>{!o||o.has("media")||!m.has(t)||o.ensure("media").catch(()=>{})};return new Y({key:f,state:W,view(t){a=t;let n=t.dom.ownerDocument.createElement("input");n.type="file",n.multiple=!0,n.hidden=!0,n.className="page-file-input",t.dom.parentElement.append(n),m.set(t,{upload:e,aborts:new Map,input:n}),n.addEventListener("change",()=>{let d=[...n.files??[]],p=f.getState(t.state).picker;if(t.dispatch(t.state.tr.setMeta(f,{picker:null})),d.length&&p){let{remove:l}=p;l&&t.state.doc.textBetween(l.from,l.to)===l.text&&t.dispatch(b(t.state.tr.delete(l.from,l.to)));let i=U(t.state.doc,p.place.hostId);(!p.place.hostId||i>=0)&&(R(t,d,i>=0?D(t.state,i):p.place),r(t))}n.value="",t.focus()}),n.addEventListener("cancel",()=>t.dispatch(t.state.tr.setMeta(f,{picker:null})));let c=d=>{let p=d.target.closest?.(".page-upload-btn");if(!p)return;d.preventDefault();let l=p.dataset.upload;p.dataset.act==="retry"?G(t,l):p.dataset.act==="embed"?q(t,l):J(t,l)};return t.dom.addEventListener("click",c),{destroy(){t.dom.removeEventListener("click",c),a===t&&(a=null);let d=m.get(t);m.delete(t);for(let p of f.getState(t.state).items)p.preview&&URL.revokeObjectURL?.(p.preview);for(let p of d.aborts.values())p.abort();n.remove()}}},props:{decorations(t){let{items:s}=f.getState(t),n=a?C.get(a):null;return!s.length||!n?null:K.create(t.doc,s.map(c=>_.widget(M(t.doc,c.pos),d=>n(d.dom.ownerDocument,c),{side:-1e3+c.order,key:`${c.id}:${c.state}:${c.percent}`,stopEvent:()=>!0,ignoreSelection:!0})))},handlePaste(t,s){let n=s.clipboardData,c=[...n?.files??[]];if(!c.length||t.state.selection.$from.parent.type.spec.code||Q(n.getData("text/html")||""))return!1;let d=D(t.state,t.state.selection.$head.index(0));return s.preventDefault(),R(t,c,d),r(t),!0},handleDrop(t,s,n,c){let d=[...s.dataTransfer?.files??[]];if(c||!d.length)return!1;let p=t.posAtCoords({left:s.clientX,top:s.clientY});if(!p)return!1;let l=L(t.state.doc),i=Math.min(t.state.doc.resolve(p.pos).index(0),l.length-1),u=t.nodeDOM(l[i].at)?.getBoundingClientRect?.(),S=u&&s.clientY<u.top+u.height/2;s.preventDefault();let k={at:S?l[i].at:l[l[i].subEnd].end,parent:l[i].node.attrs.parent??null,replaceId:null};return R(t,d,k),r(t),!0}}})}function le(e,o,a=D(e.state,e.state.selection.$head.index(0)),r=null){let t=m.get(e);if(!t)return!1;let s={place:a,remove:r&&{...r,text:e.state.doc.textBetween(r.from,r.to)}};return e.dispatch(e.state.tr.setMeta(f,{picker:s})),t.input.accept=o,t.input.click(),!0}var U=(e,o)=>{let a=-1;return e.forEach((r,t,s)=>{r.attrs.id===o&&(a=s)}),a};function Z(e,o,a){let r=e.state,t=U(r.doc,o);if(t<0)return!1;let s=0;for(let c=0;c<t;c++)s+=r.doc.child(c).nodeSize;let n=r.doc.child(t);return e.dispatch(b(r.tr.setNodeMarkup(s,null,{...n.attrs,...a}))),!0}function pe(e,o){let a=U(e.state.doc,o);if(a<0)return!1;let r=e.dom.parentElement,t=r.ownerDocument,s=0;for(let u=0;u<a;u++)s+=e.state.doc.child(u).nodeSize;let n=t.createElement("div");n.className="page-link",n.dataset.mode="alt";let c=t.createElement("input");c.className="page-link-input",c.type="text",c.value=e.state.doc.child(a).attrs.alt||"",c.placeholder="Describe the image",c.setAttribute("aria-label","Alt text"),n.append(c);let d=e.nodeDOM(s)?.getBoundingClientRect?.(),p=r.getBoundingClientRect();d&&(n.style.setProperty("--page-pop-x",`${d.left-p.left}px`),n.style.setProperty("--page-pop-y",`${d.bottom-p.top+6}px`)),r.append(n);let l=!1,i=(u,S=!0)=>{if(l)return;l=!0;let k=c.value.trim();n.remove();let I=U(e.state.doc,o);u&&I>=0&&k!==e.state.doc.child(I).attrs.alt&&Z(e,o,{alt:k}),S&&e.focus()};return c.addEventListener("keydown",u=>{u.key==="Enter"?(u.preventDefault(),i(!0)):u.key==="Escape"&&(u.preventDefault(),u.stopPropagation(),i(!1))}),c.addEventListener("blur",()=>i(!0,!1)),c.focus(),!0}export{C as a,ce as b,D as c,de as d,le as e,Z as f,pe as g};
@@ -1,4 +0,0 @@
1
- import{a as ie}from"./c-S7H2DRCB.js";import{g as ke}from"./c-B2ZXPOS3.js";import"./c-TQEMVJCS.js";import{a as xe}from"./c-3IQRECYS.js";import"./c-AYVOREBE.js";import"./c-IJUK2GPW.js";import"./c-7O6AFR65.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import{b as Y,c as we,d as ve,j as se,m as Te}from"./c-35NBGMZB.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-GHBCCVG4.js";import"./c-HA6INT6J.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var ue=new Set(["script","style","xmp","iframe","noembed","noframes","plaintext","noscript"]),Me=new Set(["textarea","title"]),Se=e=>ue.has(e)?"raw":Me.has(e)?"rcdata":"normal",ae=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),Le="http://www.w3.org/1999/xhtml",ct=e=>e.replace(/&/g,"&amp;").replace(/ /g,"&nbsp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),Ne=e=>e.replace(/&/g,"&amp;").replace(/ /g,"&nbsp;").replace(/"/g,"&quot;");function ne(e){let t=new Map,n=ie(e,{sourceCodeLocationInfo:!0,onParseError:r=>t.set(r.code,(t.get(r.code)||0)+1)});return je(e,n,t)}function je(e,t,n){let r=t.childNodes.find(l=>l.nodeName==="html"),s=t.childNodes.filter(l=>l!==r).map(l=>l.nodeName==="#documentType"?{kind:"doctype",name:l.name||"",publicId:l.publicId||"",systemId:l.systemId||""}:{kind:l.nodeName==="#comment"?"comment":l.nodeName,value:l.data}),o=r?Fe(r,null,e):null;return o&&Pe(o,e),{src:e,doc:t,outside:s,root:o,parseErrors:n,relocated:o?le(o):null,movedIn:o?le(o,"movedIn"):null,tailOwner:o?De(o):null}}function Fe(e,t,n){let r=e.sourceCodeLocation||null,s=e.nodeName==="#text"?"text":e.nodeName==="#comment"?"comment":"element",o={node:e,parent:t,live:null,kind:s,children:[],from:r?r.startOffset:-1,to:r?r.endOffset:-1};if(s==="text")return o.value=e.value,o;if(s==="comment")return o.value=e.data,o;o.tag=e.tagName,o.located=!!(r&&r.startTag),o.openFrom=o.located?r.startTag.startOffset:-1,o.openTo=o.located?r.startTag.endOffset:-1,o.closeFrom=r&&r.endTag?r.endTag.startOffset:o.located?o.to:-1,o.closeTo=r&&r.endTag?r.endTag.endOffset:o.located?o.to:-1,o.endTagged=!!(r&&r.endTag),o.located&&(o.to<o.openTo&&(o.to=o.openTo),o.closeFrom<o.openTo&&(o.closeFrom=o.closeTo=o.openTo)),o.attrs=[];let l=o.located&&r.startTag.attrs||r&&r.attrs||{};for(let a of e.attrs){let m=a.prefix?a.prefix+":"+a.name:a.name,p=l[m.toLowerCase()];o.attrs.push({name:m,key:m.toLowerCase(),value:a.value,from:p?p.startOffset:-1,to:p?p.endOffset:-1})}let g=e.nodeName==="template"&&e.content?e.content.childNodes:e.childNodes;for(let a of g)a.nodeName!=="#documentType"&&o.children.push(Fe(a,o,n));if(!o.located){let a=o.children.filter(h=>h.from>=0),m=a.length?Math.min(...a.map(h=>h.from)):-1,p=a.length?Math.max(...a.map(h=>h.to)):-1;o.openFrom=o.openTo=m,o.closeFrom=o.closeTo=p,o.from=m,o.to=p}return o}function Pe(e,t,n=1/0){if(e.kind!=="element")return;for(let o of e.children){if(o.from>=n&&!(o.kind==="text"&&!/\S/.test(o.value))&&(e.movedIn=!0),o.from>=0&&e.located){let l=Math.max(e.openTo,Math.min(o.to,e.closeFrom)),g=Math.min(Math.max(o.from,e.openTo),l);if(g!==o.from||l!==o.to){if(o.kind==="text"&&!ue.has(e.tag)&&!Me.has(e.tag)){let a=t.slice(l,o.to).replace(/<!--[\s\S]*?-->|<[^>]*>/g,"").replace(/\r\n?/g,`
2
- `);a&&!/\S/.test(a)&&o.value.endsWith(a)&&(o.outsideTail=a)}o.clamped=!0,o.from=g,o.to=l}}o.kind==="element"&&o.located&&!o.endTagged&&o.closeFrom>o.to&&(o.closeFrom=o.closeTo=o.to)}let r=e.located?e.openTo:-1;for(let o of e.children)if(!(o.from<0)){if(o.from<r){e.outOfOrder=!0;break}r=o.to}let s=e.located&&e.endTagged?Math.min(n,e.closeTo):n;for(let o of e.children)Pe(o,t,s)}function le(e,t="outOfOrder"){if(e[t])return e.tag;for(let n of e.children){if(n.kind!=="element")continue;let r=le(n,t);if(r)return r}return null}function De(e){if(e.outsideTail)return e;for(let t of e.children||[]){let n=De(t);if(n)return n}return null}function G(e,t){if(!e.root)return"source has no <html> element";if(e.root.openFrom<0)return"source has no content inside <html>";if(e.relocated)return"the parser moved content out of <"+e.relocated+">, so source order and tree order disagree";if(e.movedIn)return"the parser moved content written after the end of <"+e.movedIn+"> back inside it, so source order and tree order disagree";let n=ft(t),r=e.outside.map(ut);if(n.length!==r.length)return"outside <html>: "+JSON.stringify(r)+" vs live "+JSON.stringify(n);for(let s=0;s<n.length;s++)if(n[s]!==r[s])return"outside <html>: "+r[s]+" vs live "+n[s];return null}function ut(e){return e.kind==="doctype"?"doctype:"+e.name+"|"+e.publicId+"|"+e.systemId:e.kind+":"+e.value}function ft(e){let t=[];for(let n of e.childNodes)n.nodeType===10?t.push("doctype:"+n.name+"|"+n.publicId+"|"+n.systemId):n.nodeType===8?t.push("comment:"+n.data):n.nodeType!==1&&t.push("#"+n.nodeType+":"+(n.data||""));return t}var re="\0",Be={align:0,hashKey:0};function Oe(e,t){for(let n=0;n<t.length;n++)e^=t.charCodeAt(n),e=Math.imul(e,16777619);return e>>>0}function ee(e){Be.hashKey++;let t=2166136261,n=5381;for(let r of e)t=Oe(t,r),n=(Math.imul(n,33)^Oe(t^2654435769,r))>>>0;return t.toString(36)+"."+n.toString(36)}function X(e){let t=e.nodeType===1&&e.tagName==="TEMPLATE"&&e.content?e.content.childNodes:e.childNodes,n=[];for(let r of t)(r.nodeType===1||r.nodeType===3||r.nodeType===8)&&n.push(r);return n}var Ue=e=>Array.from(e.attributes,t=>t.name.toLowerCase()+"="+t.value).sort().join(re),Je=e=>e.attrs.map(t=>t.key+"="+t.value).sort().join(re);function fe(e,t){let n;if(e.nodeType===3)n={tag:"#text",shallow:"t:"+e.data,content:"t:"+e.data,deep:"t:"+e.data};else if(e.nodeType===8)n={tag:"#comment",shallow:"c:"+e.data,content:"c:"+e.data,deep:"c:"+e.data};else{let r=X(e).map(o=>fe(o,t)),s="e:"+e.localName+"|"+Ue(e);n={tag:e.localName,shallow:s,content:"e:"+e.localName+"|"+ee(r.map(o=>o.content)),deep:s+"|"+ee(r.map(o=>o.deep))}}return t.set(e,n),n}function _e(e){if(e.kind==="text")return e.keys={tag:"#text",shallow:"t:"+e.value,content:"t:"+e.value,deep:"t:"+e.value};if(e.kind==="comment")return e.keys={tag:"#comment",shallow:"c:"+e.value,content:"c:"+e.value,deep:"c:"+e.value};let t=e.children.map(_e),n="e:"+e.tag+"|"+Je(e);return e.keys={tag:e.tag,shallow:n,content:"e:"+e.tag+"|"+ee(t.map(r=>r.content)),deep:n+"|"+ee(t.map(r=>r.deep))}}var Ee=["deep","content","shallow","tag"],dt=4096;function pt(e,t){Be.align++;let n=[],r=e.map((h,w)=>w),s=t.map((h,w)=>w);m(r,s,0);let o=new Set(n.map(h=>h[0])),l=new Set(n.map(h=>h[1])),g=r.filter(h=>!o.has(h)),a=s.filter(h=>!l.has(h));return g.length&&a.length&&m(g,a,0),n.sort((h,w)=>h[0]-w[0]),n;function m(h,w,k){let f=0,y=h.length,v=0,S=w.length;if(f>=y||v>=S)return;if(k>=Ee.length)return p(h,w);let L=Ee[k];for(;f<y&&v<S&&e[h[f]][L]===t[w[v]][L];)n.push([h[f],w[v]]),f++,v++;for(;f<y&&v<S&&e[h[y-1]][L]===t[w[S-1]][L];)y--,S--,n.push([h[y],w[S]]);if(f>=y||v>=S)return;let F=new Map,$=new Map;for(let I=f;I<y;I++){let b=e[h[I]][L];F.set(b,F.has(b)?-1:I)}for(let I=v;I<S;I++){let b=t[w[I]][L];$.set(b,$.has(b)?-1:I)}let K=[];for(let I=f;I<y;I++){let b=e[h[I]][L];if(F.get(b)===I){let P=$.get(b);P!==void 0&&P>=0&&K.push([I,P])}}let q=mt(K);if(!q.length){if((y-f)*(S-v)<=dt){let I=ht(e,t,h,w,f,y,v,S,L);if(I.length){let b=f,P=v;for(let[z,V]of I)n.push([h[z],w[V]]),m(h.slice(b,z),w.slice(P,V),k+1),b=z+1,P=V+1;m(h.slice(b,y),w.slice(P,S),k+1);return}}return m(h.slice(f,y),w.slice(v,S),k+1)}let Q=f,W=v;for(let[I,b]of q)n.push([h[I],w[b]]),m(h.slice(Q,I),w.slice(W,b),k),Q=I+1,W=b+1;m(h.slice(Q,y),w.slice(W,S),k)}function p(h,w){let k=new Map,f=new Map;for(let y of h){let v=e[y].tag;k.has(v)||k.set(v,[]),k.get(v).push(y)}for(let y of w){let v=t[y].tag;f.has(v)||f.set(v,[]),f.get(v).push(y)}for(let[y,v]of k){let S=f.get(y);S&&S.length===v.length&&y!=="#text"&&y!=="#comment"&&v.forEach((L,F)=>n.push([L,S[F]]))}}}function mt(e){let t=[],n=[],r=new Array(e.length).fill(-1);for(let l=0;l<e.length;l++){let g=e[l][1],a=0,m=t.length;for(;a<m;){let p=a+m>>1;t[p]<g?a=p+1:m=p}t[a]=g,n[a]=l,r[l]=a>0?n[a-1]:-1}let s=[],o=n.length?n[n.length-1]:-1;for(;o>=0;)s.push(e[o]),o=r[o];return s.reverse()}function ht(e,t,n,r,s,o,l,g,a){let m=o-s,p=g-l,h=(v,S)=>e[n[s+v]][a]===t[r[l+S]][a],w=Array.from({length:m+1},()=>new Uint16Array(p+1));for(let v=m-1;v>=0;v--)for(let S=p-1;S>=0;S--)w[v][S]=h(v,S)?w[v+1][S+1]+1:Math.max(w[v+1][S],w[v][S+1]);let k=[],f=0,y=0;for(;f<m&&y<p;)h(f,y)?(k.push([s+f,l+y]),f++,y++):w[f+1][y]>=w[f][y+1]?f++:y++;return k}function Ie(e){return e.nodeType===3?"#text "+JSON.stringify(e.data.slice(0,40)):e.nodeType===8?"#comment":"<"+e.localName+Array.from(e.attributes,t=>" "+t.name+'="'+t.value.slice(0,30)+'"').join("")+">"}function Ce(e){return e.kind==="text"?"#text "+JSON.stringify(e.value.slice(0,40)):e.kind==="comment"?"#comment":"<"+e.tag+e.attrs.map(t=>" "+t.name+'="'+t.value.slice(0,30)+'"').join("")+">"}function $e(e,t,n=r=>r){let r=new WeakMap,s=new Map;fe(e,s),_e(t.root);let o={paired:0,unmatchedLive:[],unmatchedSource:[],attrDiffs:[],textDiffs:0,unresolved:0},l={};return t.gen=l,qe(e,t.root,r,s,o,"html",n,l),{map:r,stats:o}}function qe(e,t,n,r,s,o,l,g){let a=l(e);if(a?(n.set(a,t),t.gen=g,s.paired++):s.unresolved++,t.kind!=="element"){e.data!==t.value&&s.textDiffs++;return}Ue(e)!==Je(t)&&s.attrDiffs.push({path:o,live:Ie(e),source:Ce(t)});let m=X(e),p=t.children,h=pt(m.map(f=>r.get(f)),p.map(f=>f.keys)),w=new Set,k=new Set;for(let[f,y]of h)w.add(f),k.add(y),qe(m[f],p[y],n,r,s,o+">"+(m[f].nodeType===1?m[f].localName:"#")+"["+f+"]",l,g);for(let f=0;f<m.length;f++)w.has(f)||s.unmatchedLive.push({path:o,node:Ie(m[f])});for(let f=0;f<p.length;f++)k.has(f)||s.unmatchedSource.push({path:o,node:Ce(p[f])})}function Qe(e,t,n=r=>r){if(!t.root)return null;let r=[],s=We(e,t.root,n,r);if(s<0)return null;let o=new WeakMap,l={};t.gen=l;let g=0;for(let[a,m]of r)a&&(o.set(a,m),m.gen=l,g++);return{map:o,stats:{paired:g,unmatchedLive:[],unmatchedSource:[],attrDiffs:[],textDiffs:0,unresolved:s}}}function We(e,t,n,r){if(t.kind==="text"){if(e.nodeType!==3||e.data!==t.value)return-1}else if(t.kind==="comment"){if(e.nodeType!==8||e.data!==t.value)return-1}else if(e.nodeType!==1||e.localName!==t.tag||e.namespaceURI!==t.node.namespaceURI||gt(e)!==yt(t.node))return-1;let s=n(e);r.push([s,t]);let o=s?0:1;if(t.kind!=="element")return o;let l=wt(e),g=t.children;if(l.length!==g.length)return-1;for(let a=0;a<l.length;a++){let m=We(l[a],g[a],n,r);if(m<0)return-1;o+=m}return o}var ze=e=>JSON.stringify(e),gt=e=>Array.from(e.attributes,t=>ze([t.namespaceURI||"",t.name,t.value])).sort().join(re),yt=e=>e.attrs.map(t=>ze([t.namespace||"",t.prefix?t.prefix+":"+t.name:t.name,t.value])).sort().join(re);function wt(e){let t=e.nodeType===1&&e.tagName==="TEMPLATE"&&e.content?e.content.childNodes:e.childNodes,n=[];for(let r of t)(r.nodeType===1||r.nodeType===3||r.nodeType===8)&&n.push(r);return n}function Ve(e,t,n){let r=t.get(e);if(!r||r.gen!==n.gen||r.from<0||r.to<0||r.kind==="element"&&r.located&&n.src.slice(r.openFrom,r.openFrom+r.tag.length+1).toLowerCase()!=="<"+r.tag.toLowerCase())return null;let s=vt(n),o=Tt(s,r.from);return{from:r.from,to:r.to,line:o+1,column:r.from-s[o]+1}}function vt(e){if(!e.lineStarts){let t=[0];for(let n=0;n<e.src.length;n++)e.src.charCodeAt(n)===10&&t.push(n+1);e.lineStarts=t}return e.lineStarts}function Tt(e,t){let n=0,r=e.length-1;for(;n<r;){let s=n+r+1>>1;e[s]<=t?n=s:r=s-1}return n}function He(e,t,n,r,s={}){let o=()=>typeof performance<"u"?performance.now():Date.now(),l=o(),g=n.src,a=[],m=0,p=(c,d)=>{if(!(c>=0&&d>c))return;let u=a.length>m?a[a.length-1]:null;u&&u.text===void 0&&u.to===c?u.to=d:a.push({from:c,to:d})},h=c=>{c&&a.push({text:c})},w=0,k=c=>{if(w)return null;let d=r(c),u=d?t.get(d):null;return u&&u.gen===n.gen?u:null},f=null,y=-1,v=!1,S=n.root;if(p(0,S.openFrom),I(e,S),p(S.closeTo,g.length),n.tailOwner&&y>=0&&!v){for(let c=y;c<a.length;c++)a[c]={text:$(F(a[c]))};f&&f.tail&&a.splice(f.at,0,{text:f.tail})}return{text:a.map(F).join(""),ms:o()-l};function F(c){return c.text!==void 0?c.text:g.slice(c.from,c.to)}function $(c){return c.split(/(<!--[\s\S]*?-->|<[^>]*>)/).map((d,u)=>u%2?d:d.replace(/[\t\n\f\r ]+/g,"")).join("")}function K(){y=a.length,m=a.length,v=!!f&&f.whole&&/^(?:<\/[^>]*>)*$/.test(a.slice(f.at).map(F).join(""))}function q(c,d){if(c.nodeType===3)return W(c,d);if(c.nodeType===8)return Q(c);if(c.nodeType===1){if(s.print&&s.print.has(c)){w++;try{I(c,null)}finally{w--}}else I(c,k(c));c.localName==="body"&&c.parentNode===e&&K()}}function Q(c){let d=k(c);d&&d.kind==="comment"&&d.value===c.data&&d.from>=0&&!s.breakText?p(d.from,d.to):h("<!--"+c.data+"-->")}function W(c,d){let u=k(c),x=c.data;s.corrupt==="drop-first-text"&&!s.corrupted&&x.trim()&&(s.corrupted=!0,x=x.slice(1));let T=u&&u.parent&&Se(u.parent.tag)===Se(d);if(u&&u.kind==="text"&&u.value===x&&u.from>=0&&!s.breakText&&T){p(u.from,u.to),s.doubleCopied!==void 0&&x===s.doubleCopied&&p(u.from,u.to),u.outsideTail&&(f={at:a.length,tail:u.outsideTail,whole:!0},m=a.length);return}let R=null;if(u&&u.kind==="text"&&u.outsideTail){let A=x.endsWith(u.outsideTail);A&&(x=x.slice(0,x.length-u.outsideTail.length)),R={tail:A?u.outsideTail:"",whole:A}}h(ue.has(d)?x:ct(x)),R&&(f={at:a.length,...R},m=a.length)}function I(c,d){let u=c.localName,x=ae.has(u)&&c.namespaceURI===Le,T=d&&d.kind==="element"&&!s.breakTags?d:null;if(T&&!T.located){if(c.attributes.length===0){if(T.openFrom>=0){H(c,T,u);return}X(c).length&&H(c,null,u);return}if(h(b(c)),x)return;H(c,T.openFrom>=0?T:null,u),h("</"+u+">");return}if(!T){if(h(b(c)),x)return;H(c,null,u),h("</"+u+">");return}z(c,T),!x&&(H(c,T,u),p(T.closeFrom,T.closeTo))}function b(c){let d="<"+c.localName;for(let u of c.attributes)d+=" "+u.name+(u.value===""?"":'="'+Ne(u.value)+'"');return d+">"}function P(c,d){let u=c.attributes;if(u.length!==d.attrs.length)return!1;for(let x=0;x<u.length;x++){let T=d.attrs[x];if(T.from<0||u[x].value!==T.value||u[x].name.toLowerCase()!==T.key)return!1}return!0}function z(c,d){if(P(c,d)){p(d.openFrom,d.openTo);return}let u=new Map;for(let E of c.attributes)u.set(E.name.toLowerCase(),E);let x=new Set,T=d.openFrom;for(let E of d.attrs){if(E.from<0){let J=u.get(E.key);J&&J.value===E.value&&x.add(E.key);continue}let M=u.get(E.key);if(x.add(E.key),!M){p(T,V(T,E.from)),T=E.to;continue}if(M.value===E.value){p(T,E.to),T=E.to;continue}p(T,E.from),h(st(g.slice(E.from,E.to),M.value)),T=E.to}let R=d.openTo-1,A=d.attrs.reduce((E,M)=>M.to>E?M.to:E,d.openFrom);g[R-1]==="/"&&R-1>=A&&R--,p(T,R);for(let E of c.attributes)x.has(E.name.toLowerCase())||h(" "+E.name+(E.value===""?"":'="'+Ne(E.value)+'"'));p(R,d.openTo)}function V(c,d){let u=d;for(;u>c&&/[ \t\n\r\f]/.test(g[u-1]);)u--;return u}function st(c,d){let u=c.indexOf("="),x=(u<0?c:c.slice(0,u)).trimEnd(),T=u<0?"":c.slice(u+1).trim(),R=T[0]==="'"?"'":T[0]==='"'?'"':"",A=d.replace(/&/g,"&amp;").replace(/ /g,"&nbsp;");return R==="'"&&!d.includes("'")?x+"='"+A+"'":R===""&&T!==""&&d!==""&&!/[\s"'=<>`]/.test(d)?x+"="+A:x+'="'+A.replace(/"/g,"&quot;")+'"'}function it(c){if(c.nodeType!==1||w||s.print&&s.print.has(c))return null;let d=k(c);return d&&d.kind==="element"&&d.located&&!d.endTagged&&!ae.has(d.tag)&&!s.breakTags?d:null}function oe(c){let d=it(c);if(!d)return null;let u=X(c);return((u.length?oe(u[u.length-1]):null)||[]).concat(d.tag)}function H(c,d,u){let x=X(c),T=null,R=(C,N)=>{T&&!(N>=0&&T.j>=0&&N===T.j+1)&&h(T.tags.map(O=>"</"+O+">").join("")),T=null};if(!d){for(let C of x){R(-1,-1),q(C,u);let N=oe(C);N&&(T={tags:N,j:-1})}return}let A=d.children,E=new Map(A.map((C,N)=>[C,N])),M=x.map(C=>{let N=k(C);return N&&N.parent===d&&N.from>=0?E.get(N):-1}),J=new Set;if(!s.breakText&&!s.breakTags){let C=new Set(M),N=new Map;A.forEach((O,j)=>{C.has(j)||O.from<0||!O.keys||(N.has(O.keys.deep)||N.set(O.keys.deep,[]),N.get(O.keys.deep).push(j))}),N.size&&x.forEach((O,j)=>{if(M[j]>=0||k(O))return;let D=N.get(fe(O,new Map).deep);D&&D.length&&(M[j]=D.shift(),J.add(j))})}let me=(C,N)=>{if(!J.has(N))return q(C,u);let O=A[M[N]];p(O.from,O.to),O.outsideTail&&(f={at:a.length,tail:O.outsideTail,whole:!0},m=a.length)},at=(C,N)=>{if(!J.has(N))return oe(C);let O=A[M[N]];return O.kind==="element"&&O.located&&!O.endTagged&&!ae.has(O.tag)?[O.tag]:null},lt=new Set(xt(M)),B=d.openTo,he=-1,ge=C=>{for(let N=he+1;N<C;N++){let O=A[N];O.from<0||(p(B,O.from),B=Math.max(B,O.to))}};for(let C=0;C<x.length;C++){let N=x[C],O=at(N,C);if(lt.has(C)){let D=M[C],ye=A[D];R(C,D),ge(D),p(B,ye.from),me(N,C),B=Math.max(B,ye.to),he=D,T=O?{tags:O,j:D}:null;continue}let j=k(N);R(C,j&&j.parent===d?E.get(j):-1),me(N,C),T=O?{tags:O,j:-1}:null}ge(A.length),p(B,d.closeFrom)}}function xt(e){let t=[],n=[],r=new Array(e.length).fill(-1);for(let l=0;l<e.length;l++){let g=e[l];if(g<0)continue;let a=0,m=t.length;for(;a<m;){let p=a+m>>1;t[p]<g?a=p+1:m=p}t[a]=g,n[a]=l,r[l]=a>0?n[a-1]:-1}let s=[],o=n.length?n[n.length-1]:-1;for(;o>=0;)s.push(o),o=r[o];return s.reverse()}function Xe(e,t,n,r=null,s=null){return Ke(e,t,n,r,s,!1)}function Ge(e,t,n,r=null,s=null){return Ke(e,t,n,r,s,!0)}function Ke(e,t,n,r,s,o){let l=new DOMParser,g=l.parseFromString(e,"text/html"),a=Re(g),m=Re(n);if(a.join(`
3
- `)!==m.join(`
4
- `))return{ok:!1,diff:"document: outside <html> "+JSON.stringify(a)+" vs live "+JSON.stringify(m)};let p=null,h=null;if(r&&(p=[],h=te(g.documentElement,r,"html",p),!h)){let y=be(e,s,o);return y.diff?{ok:!1,diff:y.diff}:o?Ae({ok:!0,diff:null,oracle:"clone"},y,e,n):{ok:!0,diff:null,oracle:"clone"}}let w=l.parseFromString(t,"text/html"),k=te(g.documentElement,w.documentElement,"html"),f=k?null:be(e,s,o);return k?r?{ok:!1,diff:k,at:p}:{ok:!1,diff:k}:f.diff?{ok:!1,diff:f.diff}:o?Ae({ok:!0,diff:null,oracle:"today"},f,e,n):{ok:!0,diff:null,oracle:"today"}}function Ye(e,t){let n=e;for(let r of t){let s=ce(n);if(r>=s.length)return null;n=s[r]}return n}function be(e,t,n){if(!t)return{diff:null};let r=new Map,s=ie(e,n?{sourceCodeLocationInfo:!0,onParseError:o=>r.set(o.code,(r.get(o.code)||0)+1)}:{onParseError:o=>r.set(o.code,(r.get(o.code)||0)+1)});for(let[o,l]of r){let g=t.get(o)||0;if(l>g)return{diff:`the render introduced parse errors the source does not have: ${o} ${g} -> ${l}`}}return n?{diff:null,doc:s,parseErrors:r}:{diff:null}}function Ae(e,t,n,r){if(!t.doc)return e;let s=je(n,t.doc,t.parseErrors);return G(s,r)||(e.model=s),e}function Re(e){let t=[];for(let n of e.childNodes)n.nodeType===10?t.push("doctype "+n.name+"|"+n.publicId+"|"+n.systemId):n.nodeType===8?t.push("comment "+n.data):n.nodeType!==1&&t.push("node"+n.nodeType+" "+(n.data||""));return t}function kt(e,t,n){let r=new DOMParser,s=o=>{let l=Array.from(o.childNodes);return l.length&&l.every(g=>g.nodeType===3)?l.map(g=>g.data).join(""):o.innerHTML};return te(r.parseFromString(e.innerHTML,"text/html").body,r.parseFromString(s(t),"text/html").body,n+">#noscript")}function ce(e){let t=e.localName==="template"&&e.content?e.content.childNodes:e.childNodes,n=[];for(let r=0;r<t.length;r++){let s=t[r];(s.nodeType===1||s.nodeType===3||s.nodeType===8)&&n.push(s)}return n}var Z=e=>Array.from(e.attributes,t=>(t.namespaceURI||"")+" "+t.name+"="+JSON.stringify(t.value)).sort().join("; ");function St(e,t){let n=e.attributes,r=t.attributes;if(n.length!==r.length)return!1;for(let s=0;s<n.length;s++){let o=n[s],l=r[s];if(o.name!==l.name||o.value!==l.value||o.namespaceURI!==l.namespaceURI)return!1}return!0}function te(e,t,n,r=[]){if(e.nodeType!==t.nodeType)return n+": node type "+e.nodeType+" vs "+t.nodeType;if(e.nodeType===3||e.nodeType===8)return e.data===t.data?null:n+": text "+JSON.stringify(e.data.slice(0,60))+" vs "+JSON.stringify(t.data.slice(0,60));if(e.localName!==t.localName||e.namespaceURI!==t.namespaceURI)return n+": tag "+e.localName+" vs "+t.localName;if(!St(e,t)&&Z(e)!==Z(t))return n+": attrs "+Z(e)+" vs "+Z(t);if(e.localName==="noscript"&&e.namespaceURI===Le)return kt(e,t,n);let s=ce(e),o=ce(t);if(s.length!==o.length)return n+": "+s.length+" vs "+o.length+" children";for(let l=0;l<s.length;l++){r.push(l);let g=te(s[l],o[l],n+">"+(s[l].localName||"#")+"["+l+"]",r);if(g)return g;r.pop()}return null}var i={installed:!1,refused:null,session:0,model:null,map:null,stats:null,saves:0,reprints:0,lastReprint:null,partialReprints:0,lastPartialReprint:null,lastOutcome:null,lastRenderMs:null,lastBytes:null,timing:{fetch:null,model:null,pair:null,refresh:null},refreshes:0,repairs:0,refreshQueued:!1,pendingBytes:null,refetch:!1,adoptions:0},Nt=2,_=()=>typeof performance<"u"?performance.now():Date.now(),Ze='<script type="application/json" id="clay-runtime-map"',et=e=>e.includes(Ze)||e.includes("/_/clayjs/");async function tt(e){let t=await fetch(e,{cache:"no-store",redirect:"manual",credentials:"same-origin",headers:{"Clay-Source":"1"}});if(!t.ok)throw new Error(`source fetch: status ${t.status}`);if(t.redirected||t.type==="opaqueredirect")throw new Error("source fetch: redirected");let n=(t.headers.get("content-type")||"").toLowerCase();if(!n.startsWith("text/html"))throw new Error(`source fetch: content-type ${n||"missing"}`);let r=await t.text();if(r.includes(Ze))throw new Error("source fetch: projected response");return r}function pe(e){let t=Te({flushUndo:!1,authored:!1});return $e(t,e,Y)}function Ot(e){let t=e.doc&&e.doc.childNodes.find(r=>r.nodeName==="html"),n=t&&Array.isArray(t.attrs)?t.attrs.find(r=>r.name==="documentetag"):null;return n&&n.value?n.value:null}function Et(e){let t=e&&e.represented&&e.represented.etag;if(t)return t;let n=xe();return n||e===null&&document.documentElement.getAttribute("documentetag")||null}function It(e,t){let n=Ot(e),r=Et(t);return!n||!r||n===r?null:`source refused: the fetch answered version ${n} while this page holds ${r}`}function nt(e,t=null,n=0,r=!0,s=null){let o=i.session,l=_(),g=i.adoptions;i.refused=null;let a=s?s():null,m=a&&typeof a.bytes=="string"&&!et(a.bytes)?a.bytes:null;return(m!==null?Promise.resolve(m):tt(e)).then(p=>{if(o!==i.session)return null;let h=_(),w=ne(p),k=G(w,document);if(k)throw new Error(`source refused: ${k}`);let f=It(w,t);if(f)throw new Error(f);if(i.adoptions!==g){if(n<Nt)return nt(e,t,n+1,r,s);throw new Error("source refused: a save replaced the file while the fetch was in flight")}let y=_(),{map:v,stats:S}=pe(w),L=_();return i.model=w,i.map=v,i.stats=S,i.timing={fetch:h-l,model:y-h,pair:L-y,refresh:null},i.installed=!0,r&&se(Ct),ot()}).catch(p=>(o!==i.session||(i.refused=String(p&&p.message?p.message:p),console.info(`clayjs: source map off (${i.refused}); saves use the full serialization`)),null))}function Ct(e,t,n={}){if(!i.installed)return t;U(),i.lastOutcome=null;let r=we(),s=!!r&&!r.authoredHandlers,o=new Set,l=null;for(let g=0;g<=At;g++){let a;try{a=He(e,i.map,i.model,Y,{...n,print:o})}catch(p){return de("render threw: "+(p&&p.message?p.message:p),t)}let m=s?Ge(a.text,t,document,e,i.model.parseErrors):Xe(a.text,t,document,e,i.model.parseErrors);if(m.ok)return i.lastRenderMs=a.ms,i.lastBytes=a.text.length,i.lastOutcome=o.size?{text:a.text,scope:"partial",reason:l,printed:o.size}:{text:a.text,scope:null},m.model&&bt(m.model,a.text,e,r),a.text;if(l===null&&(l=m.diff),!m.at||!Rt(e,Ye(e,m.at),o))return de(l,t)}return de(l,t)}function bt(e,t,n,r){let s=Qe(n,e,Y);s&&ve({captureId:r.captureId,html:t,source:{model:e,map:s.map,stats:s.stats,repairGeneration:i.repairs,outcome:i.lastOutcome}})}var At=8;function Rt(e,t,n){let r=t&&t.nodeType===1?t:t&&t.parentNode;for(let s=r;s&&s!==e;s=s.parentNode)if(n.has(s)){n.delete(s),r=s.parentNode;break}return!r||r.nodeType!==1||r===e?!1:(n.add(r),!0)}function de(e,t){return i.lastOutcome={text:t,scope:"full",reason:e},t}function Mt(e){i.reprints++,i.lastReprint=e,console.warn("clayjs: source map did not verify, saving the full serialization instead:",e),document.dispatchEvent(new CustomEvent("clay:save-reprinted",{detail:{reason:e,scope:"full"}}))}function Lt(e,t){i.partialReprints++,i.lastPartialReprint=e,console.info(`clayjs: source map printed ${t} element(s) in full to match the page:`,e),document.dispatchEvent(new CustomEvent("clay:save-reprinted",{detail:{reason:e,scope:"partial",printed:t}}))}function jt(e,t){i.adoptions++,i.installed&&(Pt(e,t&&t.artifact?t.artifact.source.outcome:null),!Ft(e,t)&&(i.pendingBytes=e,rt()))}function Ft(e,t){let n=t&&t.artifact;return!n||!n.source||n.html!==e||t.captureId===null||t.captureId===void 0||n.captureId!==t.captureId||n.source.repairGeneration!==i.repairs||i.refreshQueued||i.pendingBytes!==null?!1:(i.model=n.source.model,i.map=n.source.map,i.stats=n.source.stats,!0)}function Pt(e,t=null){let n=i.lastOutcome&&i.lastOutcome.text===e?i.lastOutcome:t;!n||n.text!==e||(i.lastOutcome===n&&(i.lastOutcome=null),i.saves++,n.scope==="full"?Mt(n.reason):n.scope==="partial"&&Lt(n.reason,n.printed))}function Dt(e){let t=e&&e.detail;t&&t.source==="disk"&&typeof t.html=="string"&&i.adoptions++,i.installed&&(t&&t.source==="disk"&&typeof t.html=="string"&&(et(t.html)?i.refetch=!0:i.pendingBytes=t.html),rt())}function rt(){i.refreshQueued||(i.refreshQueued=!0,typeof requestIdleCallback=="function"?requestIdleCallback(U,{timeout:2e3}):setTimeout(U,0))}function U(){if(!i.refreshQueued||(i.refreshQueued=!1,!i.installed))return;let e=i.pendingBytes;i.pendingBytes=null;let t=i.refetch&&e===null;t&&(i.refetch=!1),i.repairs++;let n=_(),r=i.model;if(e!==null)try{let s=ne(e),o=G(s,document);if(o)throw new Error(o);r=s}catch(s){console.warn("clayjs: source map kept the previous model, the accepted bytes did not model:",s)}try{let{map:s,stats:o}=pe(r);i.model=r,i.map=s,i.stats=o,i.refreshes++,i.timing.refresh=_()-n}catch(s){console.warn("clayjs: source map could not re-pair, continuing on the previous map:",s)}t&&Bt()}function Bt(){let e=i.repairs,t=i.adoptions;tt(window.location.href).then(n=>{let r=ne(n),s=G(r,document);if(s)throw new Error(s);return r}).then(n=>{if(!(i.repairs!==e||i.adoptions!==t))try{i.repairs++,i.adoptions++;let{map:r,stats:s}=pe(n);i.model=n,i.map=r,i.stats=s,i.refreshes++}catch(r){console.warn("clayjs: source map could not re-pair, continuing on the previous map:",r)}}).catch(n=>{console.warn("clayjs: source map kept the previous model, the accepted bytes did not model:",n)})}function ot(){let e=i.stats;return{installed:i.installed,refused:i.refused,sourceBytes:i.model?i.model.src.length:null,paired:e?e.paired:0,unresolved:e?e.unresolved:0,unmatchedLive:e?e.unmatchedLive.length:0,unmatchedSource:e?e.unmatchedSource.length:0,attrDiffs:e?e.attrDiffs.length:0,saves:i.saves,reprints:i.reprints,lastReprint:i.lastReprint,partialReprints:i.partialReprints,lastPartialReprint:i.lastPartialReprint,lastRenderMs:i.lastRenderMs,lastBytes:i.lastBytes,refreshes:i.refreshes,timing:i.timing}}function zt(){return U(),i.model?i.model.src:null}function Vt(e){return U(),i.installed&&e?Ve(e,i.map,i.model):null}function Ht(){return U(),i.stats?{live:i.stats.unmatchedLive.slice(0,50),source:i.stats.unmatchedSource.slice(0,50)}:null}function Xt(){return U(),ot()}var Gt=()=>i.installed;function Kt(){Ut()}function Ut(){i.session++,i.installed=!1,i.refreshQueued=!1,i.pendingBytes=null,i.refetch=!1,se(null)}function Yt({context:e=null,latest:t=null}={}){return nt(window.location.href,e,0,!0,t)}ke(jt);document.addEventListener("clay:sync-applied",Dt);export{jt as adoptAccepted,Gt as installed,Vt as locateLive,Kt as release,Ct as renderSave,Yt as start,Xt as stats,zt as text,Ht as unpaired};
@@ -1 +0,0 @@
1
- var u=/^(.+)\.(\d+)\.(\d+)$/,y=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}(?:==)?|[A-Za-z0-9+/]{3}=?)?$/,a=/^[A-Za-z0-9+/=\t\n\f\r ]*$/;function g(e){let s=[],r=new Map;for(let n of Object.keys(e).sort()){let t=u.exec(n);if(!t){s.push([n,e[n]]);continue}let o=r.get(t[1])??{n:Number(t[3]),got:[]};o.got[Number(t[2])]=e[n],r.set(t[1],o)}for(let[n,t]of r){let o=0;for(let i=0;i<t.n;i++)typeof t.got[i]=="string"&&o++;o===t.n&&s.push([n,t.got.join("")])}return s}function b(e){if(e?.v!==1||!e.y||typeof e.y!="object"||Array.isArray(e.y))return e;let s=new Map;for(let[n,t]of Object.entries(e.y)){let o=u.exec(n);if(!o)continue;let i=o[1],p=Number(o[2]),f=Number(o[3]),c=s.get(i)??{count:f,indices:new Set,keys:[],invalid:!1};(!Number.isSafeInteger(p)||!Number.isSafeInteger(f)||f<1||p>=f||c.count!==f||c.indices.has(p)||typeof t!="string"||!a.test(t))&&(c.invalid=!0),c.indices.add(p),c.keys.push(n),s.set(i,c)}let r=new Set;for(let[n,t]of s)if(!t.invalid&&!Object.hasOwn(e.y,n)&&t.indices.size<t.count)for(let o of t.keys)r.add(o);return r.size?{...e,y:Object.fromEntries(Object.entries(e.y).filter(([n])=>!r.has(n)))}:e}export{u as a,y as b,g as c,b as d};