@jxsuite/studio 10.4.0 → 10.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/locales/en/elements.json +434 -0
- package/data/webdata.json +116 -139
- package/dist/chunks/2020-rqm7qrje.js +4 -0
- package/dist/chunks/adapter-cyy8vbcx.js +4 -0
- package/dist/chunks/add-new-flow-8cgtejv2.js +4 -0
- package/dist/chunks/{cf-account-picker-xb8vvt2h.js → cf-account-picker-v3qd2dhw.js} +3 -3
- package/dist/chunks/cf-settings-1fnw874z.js +4 -0
- package/dist/chunks/{color-area-h8dbasp1.js → color-area-frd9y9q6.js} +2 -2
- package/dist/chunks/color-field-rebpbe33.js +4 -0
- package/dist/chunks/{color-slider-nz2mrzky.js → color-slider-6bzmk3s7.js} +2 -2
- package/dist/chunks/color-t2bnnj8y.js +4 -0
- package/dist/chunks/{combobox-6hs00996.js → combobox-c49x7gf1.js} +3 -3
- package/dist/chunks/components-y8yhdd7d.js +4 -0
- package/dist/chunks/content-source-9e7qvmsf.js +4 -0
- package/dist/chunks/convert-to-repeater-pd2w4z21.js +4 -0
- package/dist/chunks/editor-mb9jzdrw.js +4 -0
- package/dist/chunks/entry-commands-at0wnx3f.js +4 -0
- package/dist/chunks/extension-sections-4z9qq0gh.js +4 -0
- package/dist/chunks/file-ops-dtdvjmza.js +4 -0
- package/dist/chunks/files-8pf70854.js +4 -0
- package/dist/chunks/format-host-fd3m2y2a.js +4 -0
- package/dist/chunks/fs-events-hrk29vcv.js +4 -0
- package/dist/chunks/grid-open-bh74v82z.js +4 -0
- package/dist/chunks/{grid-view-2f03wcgw.js → grid-view-a51mgzmq.js} +17 -17
- package/dist/chunks/{icons-gb967qc8.js → icons-qp8fn1k8.js} +2 -2
- package/dist/chunks/{iframe-entry-btck0e9s.js → iframe-entry-mpwe5pwk.js} +4 -4
- package/dist/chunks/{iframe-entry-2x9bn5ng.js → iframe-entry-msd43x9h.js} +4 -4
- package/dist/chunks/iframe-entry-rt8jz5t8.js +5 -0
- package/dist/chunks/{iframe-entry-b5qgggyp.js → iframe-entry-v40cr813.js} +4 -4
- package/dist/chunks/iframe-host-q0s0wwy3.js +4 -0
- package/dist/chunks/{image-bake-4afr4y6a.js → image-bake-q9ajdjsj.js} +3 -3
- package/dist/chunks/{image-editor-x7t8jbjn.js → image-editor-ke9std9b.js} +3 -3
- package/dist/chunks/index-57ang7ma.js +4 -0
- package/dist/chunks/index-eytr7av4.js +17 -0
- package/dist/chunks/{index-yjrfeks8.js → index-x495reff.js} +3 -3
- package/dist/chunks/{javascript-hy2mws8v.js → javascript-qe34bvaz.js} +3 -3
- package/dist/chunks/jsonMode-m8rseh31.js +13 -0
- package/dist/chunks/jx-validate-bbd1mary.js +4 -0
- package/dist/chunks/layers-panel-wcjtdqsa.js +4 -0
- package/dist/chunks/layers-yscpys6q.js +4 -0
- package/dist/chunks/{listbox-7gka1h86.js → listbox-tktzq5xj.js} +2 -2
- package/dist/chunks/lit-html-qm5wbhqz.js +4 -0
- package/dist/chunks/media-library-2hfff88g.js +4 -0
- package/dist/chunks/media-open-4pb05cne.js +4 -0
- package/dist/chunks/media-picker-bzktmmwr.js +4 -0
- package/dist/chunks/menu-xc3cbgsd.js +4 -0
- package/dist/chunks/{monaco-binding-a51py33c.js → monaco-binding-7t38arh9.js} +3 -3
- package/dist/chunks/monaco-buffer-3vz94c9f.js +4 -0
- package/dist/chunks/monaco-setup-fstdew02.js +4 -0
- package/dist/chunks/notify-gbdcckrh.js +4 -0
- package/dist/chunks/parse-fpdzgk4c.js +4 -0
- package/dist/chunks/platform-9g72gdqr.js +4 -0
- package/dist/chunks/popover-cnmsav6b.js +4 -0
- package/dist/chunks/publish-panel-91x1cb5d.js +4 -0
- package/dist/chunks/publish-quick-e2dmf7eg.js +4 -0
- package/dist/chunks/publish-workspace-1x8mnzrj.js +4 -0
- package/dist/chunks/quick-search-2m4y6p1x.js +4 -0
- package/dist/chunks/references-yg1g9rwx.js +4 -0
- package/dist/chunks/right-panel-7mfyhzrk.js +4 -0
- package/dist/chunks/source-control-rrc4jgp5.js +4 -0
- package/dist/chunks/{split-m5rwn31z.js → split-d15yencd.js} +2 -2
- package/dist/chunks/studio-0jhhznxy.js +9 -0
- package/dist/chunks/studio-0nb57pjg.js +7 -0
- package/dist/chunks/{studio-s24mhq0z.js → studio-0wa4wv4s.js} +4 -4
- package/dist/chunks/studio-0z8kp4xk.js +5 -0
- package/dist/chunks/{studio-g0hxtcga.js → studio-18gc5t3v.js} +4 -4
- package/dist/chunks/{studio-4fnb5648.js → studio-1b79rpcb.js} +4 -4
- package/dist/chunks/studio-211q5j7m.js +4 -0
- package/dist/chunks/studio-213pyfxh.js +16 -0
- package/dist/chunks/studio-2b1smjvp.js +5 -0
- package/dist/chunks/{studio-nwf0c32p.js → studio-2v6tc9jp.js} +4 -4
- package/dist/chunks/studio-30j0wz99.js +5 -0
- package/dist/chunks/studio-3kmqhwtt.js +5 -0
- package/dist/chunks/studio-44drsmhw.js +5 -0
- package/dist/chunks/{studio-2pk7kc7z.js → studio-495b6f2r.js} +4 -4
- package/dist/chunks/{studio-jma2q8r9.js → studio-4gthb2fd.js} +4 -4
- package/dist/chunks/{studio-0gvvqj3h.js → studio-4xadhxj1.js} +4 -4
- package/dist/chunks/{studio-nvcn2ykc.js → studio-52mzbxqm.js} +4 -4
- package/dist/chunks/{studio-v7a7yb5w.js → studio-56mmnsw8.js} +7 -7
- package/dist/chunks/studio-59hz8f4r.js +5 -0
- package/dist/chunks/{studio-sce30r7b.js → studio-5k9mfafh.js} +3 -3
- package/dist/chunks/{studio-rr00ex23.js → studio-5qez462c.js} +6 -6
- package/dist/chunks/studio-6tnpg0vx.js +5 -0
- package/dist/chunks/studio-6w8mt734.js +6 -0
- package/dist/chunks/studio-7hm04x5z.js +5 -0
- package/dist/chunks/studio-8atmfjjm.js +7 -0
- package/dist/chunks/{studio-wmjmsw0p.js → studio-8n99z71s.js} +4 -4
- package/dist/chunks/studio-8vmad6x2.js +5 -0
- package/dist/chunks/studio-93p5k4r4.js +5 -0
- package/dist/chunks/{studio-2x972v58.js → studio-9gb0m81w.js} +4 -4
- package/dist/chunks/studio-a4ymg4vd.js +5 -0
- package/dist/chunks/studio-anc8067x.js +5 -0
- package/dist/chunks/{studio-2e4hry72.js → studio-dbdt67kr.js} +5 -5
- package/dist/chunks/studio-dbex091t.js +5 -0
- package/dist/chunks/{studio-amaz545p.js → studio-dj8ctxey.js} +4 -4
- package/dist/chunks/{studio-k2evngrj.js → studio-ed9bz68j.js} +5 -5
- package/dist/chunks/{studio-4bgvvzhv.js → studio-fe2d1fp5.js} +4 -4
- package/dist/chunks/{studio-45mj4jqe.js → studio-fgp4cyy3.js} +4 -4
- package/dist/chunks/studio-ft706q02.js +5 -0
- package/dist/chunks/studio-g79s1dyg.js +6 -0
- package/dist/chunks/{studio-pj216fmn.js → studio-gahswxp4.js} +4 -4
- package/dist/chunks/studio-gbqc12bk.js +5 -0
- package/dist/chunks/studio-gxphbetb.js +6 -0
- package/dist/chunks/studio-hdf01j7q.js +7 -0
- package/dist/chunks/studio-hf259xzd.js +48 -0
- package/dist/chunks/studio-jbva4wxw.js +5 -0
- package/dist/chunks/studio-jj9gf1qc.js +5 -0
- package/dist/chunks/studio-jsjg3mjv.js +5 -0
- package/dist/chunks/studio-jtvb8hd7.js +5 -0
- package/dist/chunks/{studio-g9brbewz.js → studio-kp4vzrct.js} +4 -4
- package/dist/chunks/studio-kpx02gaa.js +7 -0
- package/dist/chunks/{studio-3na1r48j.js → studio-kv1728ex.js} +8 -8
- package/dist/chunks/studio-m25ry0mf.js +5 -0
- package/dist/chunks/studio-mcbwmkyh.js +5 -0
- package/dist/chunks/studio-meajkr51.js +5 -0
- package/dist/chunks/studio-mkjrjpr2.js +6 -0
- package/dist/chunks/{studio-eqcddvc2.js → studio-mr084886.js} +201 -201
- package/dist/chunks/studio-mrb10hv3.js +5 -0
- package/dist/chunks/{studio-0939t1q1.js → studio-nhpg405j.js} +4 -4
- package/dist/chunks/studio-nsec0hxm.js +64 -0
- package/dist/chunks/{studio-xx3r3sb0.js → studio-nv0mh0p5.js} +4 -4
- package/dist/chunks/studio-pafmb06w.js +5 -0
- package/dist/chunks/{studio-pm17wdc4.js → studio-pgftd79b.js} +4 -4
- package/dist/chunks/{studio-4zd6an2b.js → studio-pk961xgz.js} +4 -4
- package/dist/chunks/studio-pzbr7g05.js +5 -0
- package/dist/chunks/studio-qcc5hsw2.js +10 -0
- package/dist/chunks/studio-qfq58c8n.js +5 -0
- package/dist/chunks/studio-qvb2jr83.js +5 -0
- package/dist/chunks/studio-r85zw6ay.js +5 -0
- package/dist/chunks/studio-s0kwce5w.js +9 -0
- package/dist/chunks/studio-s6ymkf3q.js +14 -0
- package/dist/chunks/{studio-0x6f3nk9.js → studio-s7p5ccxa.js} +4 -4
- package/dist/chunks/{studio-1410q5dw.js → studio-s9jjap3x.js} +4 -4
- package/dist/chunks/{studio-evq47j2z.js → studio-t5hde1ws.js} +4 -4
- package/dist/chunks/studio-vj9yv897.js +5 -0
- package/dist/chunks/studio-wmak8xjw.js +5 -0
- package/dist/chunks/{studio-bnc50f9h.js → studio-wqsmvtqj.js} +4 -4
- package/dist/chunks/studio-x3z3rhej.js +5 -0
- package/dist/chunks/{studio-bg8pzprg.js → studio-xb55kpmy.js} +4 -4
- package/dist/chunks/studio-xxtdajmv.js +12 -0
- package/dist/chunks/studio-xxttcym1.js +5 -0
- package/dist/chunks/{studio-90zkgne5.js → studio-y2zsnzye.js} +7 -7
- package/dist/chunks/{studio-3qr08sxq.js → studio-y3tjh2xb.js} +3 -3
- package/dist/chunks/studio-y4f1rdsj.js +5 -0
- package/dist/chunks/studio-ybkd5w8k.js +5 -0
- package/dist/chunks/{studio-tpxcryf2.js → studio-yetr4gg1.js} +4 -4
- package/dist/chunks/studio-z295anhs.js +6 -0
- package/dist/chunks/studio-z89e6wpg.js +9 -0
- package/dist/chunks/{studio-5tet77de.js → studio-zbwr6prc.js} +3 -3
- package/dist/chunks/{studio-daksw8kh.js → studio-zdbsv5q2.js} +4 -4
- package/dist/chunks/{studio-abh9kfdh.js → studio-zvthj8hg.js} +4 -4
- package/dist/chunks/toast-2kn2vrn4.js +4 -0
- package/dist/chunks/{toast-host-g3r2s0kn.js → toast-host-3rxeyj3d.js} +3 -3
- package/dist/chunks/{tooltip-dj1pvgz7.js → tooltip-ghkxkasp.js} +3 -3
- package/dist/chunks/{tree-j0ebwr5s.js → tree-vw4nc63s.js} +2 -2
- package/dist/chunks/tsMode-7gngmamr.js +14 -0
- package/dist/chunks/workspace-gv0hxgsm.js +4 -0
- package/dist/chunks/workspace-home-j7e0mjy5.js +4 -0
- package/dist/chunks/{ws-client-arz2qsy9.js → ws-client-vs11sxc5.js} +3 -3
- package/dist/iframe-entry.js +14 -14
- package/dist/manifest.json +84 -83
- package/dist/studio.js +99 -98
- package/dist/workers/ts.worker.js +3 -3
- package/package.json +12 -12
- package/src/browse/library-layouts.ts +9 -12
- package/src/browse/library-pane.ts +22 -16
- package/src/browse/library-source.ts +3 -4
- package/src/browse/preview-style.ts +2 -1
- package/src/canvas/canvas-live-render.ts +2 -5
- package/src/canvas/canvas-page-context.ts +5 -0
- package/src/canvas/canvas-render.ts +6 -1
- package/src/canvas/iframe-drop.ts +84 -1
- package/src/canvas/iframe-entry.ts +9 -6
- package/src/canvas/iframe-render.ts +13 -0
- package/src/collab/collab-session.ts +2 -2
- package/src/commands/levels.ts +1 -1
- package/src/content/entry-commands.ts +32 -27
- package/src/content/entry-editor.ts +46 -44
- package/src/content/entry-inspector.ts +15 -12
- package/src/content/entry-model.ts +3 -3
- package/src/content/entry-summaries.ts +5 -5
- package/src/content/hold-state.ts +172 -0
- package/src/content/page-summaries.ts +10 -14
- package/src/create/add-new-flow.ts +2 -1
- package/src/editor/convert-targets.ts +2 -23
- package/src/editor/inline-edit.ts +6 -1
- package/src/editor/repeater-scope.ts +333 -74
- package/src/editor/slash-menu.ts +35 -17
- package/src/files/files.ts +18 -0
- package/src/format/format-choices.ts +5 -5
- package/src/format/format-host.ts +35 -3
- package/src/grid/redirects-grid.ts +4 -4
- package/src/grid/sources/content-source.ts +42 -66
- package/src/locale/element-names.ts +131 -0
- package/src/panels/block-action-bar.ts +3 -4
- package/src/panels/dnd.ts +3 -1
- package/src/panels/elements-panel.ts +93 -36
- package/src/panels/events-panel.ts +6 -2
- package/src/panels/formula-workspace.ts +9 -0
- package/src/panels/imports-panel.ts +3 -2
- package/src/panels/navigator-panels.ts +10 -10
- package/src/panels/panel-registry.ts +3 -3
- package/src/panels/properties-panel.ts +127 -35
- package/src/panels/site-panel.ts +2 -1
- package/src/panels/statement-editor.ts +4 -0
- package/src/panels/style-panel.ts +2 -1
- package/src/panels/styles-panel.ts +2 -2
- package/src/panels/tab-strip.ts +29 -26
- package/src/platforms/cloud.ts +5 -2
- package/src/services/ai-command-tools.ts +2 -1
- package/src/services/ai-project-tools.ts +21 -8
- package/src/services/ai-tools.ts +5 -5
- package/src/services/ai-write-report.ts +22 -4
- package/src/services/context-manager.ts +110 -2
- package/src/services/document-assistant.ts +2 -2
- package/src/services/harness/chat-reducer.ts +9 -4
- package/src/services/jxn-language.ts +110 -0
- package/src/services/model-uri.ts +3 -0
- package/src/services/monaco-setup.ts +6 -2
- package/src/services/render-critic.ts +234 -12
- package/src/services/tool-executor.ts +16 -8
- package/src/settings/contributed-section.ts +2 -1
- package/src/settings/extension-commands.ts +2 -1
- package/src/settings/general-settings.ts +2 -2
- package/src/settings/settings-document.ts +5 -5
- package/src/shell.ts +1 -1
- package/src/studio.ts +28 -11
- package/src/style/variables-view.ts +2 -2
- package/src/surfaces/collections-panel.json +1 -1
- package/src/surfaces/collections-panel.ts +1 -1
- package/src/surfaces/entry-editor.json +10 -10
- package/src/surfaces/entry-editor.ts +22 -19
- package/src/surfaces/entry-inspector.json +11 -11
- package/src/surfaces/entry-inspector.ts +17 -10
- package/src/surfaces/panel-elements.json +466 -206
- package/src/surfaces/panel-elements.ts +61 -25
- package/src/surfaces/tab-strip.json +5 -5
- package/src/surfaces/tab-strip.ts +2 -2
- package/src/tabs/project-config.ts +13 -13
- package/src/tabs/tab.ts +7 -2
- package/src/types.ts +13 -2
- package/src/ui/expression-editor.ts +10 -5
- package/src/ui/schema-form.ts +18 -1
- package/src/utils/edit-display.ts +27 -1
- package/src/view.ts +9 -2
- package/src/workspace/tab-workspace.ts +2 -2
- package/src/workspace/workspace-back.ts +2 -2
- package/dist/chunks/2020-906vx2dq.js +0 -4
- package/dist/chunks/adapter-hnvad61x.js +0 -4
- package/dist/chunks/add-new-flow-v0pm96mr.js +0 -4
- package/dist/chunks/cf-settings-mkbcz4z2.js +0 -4
- package/dist/chunks/color-04361ttk.js +0 -4
- package/dist/chunks/color-field-qv5r2b16.js +0 -4
- package/dist/chunks/components-w5zqwva1.js +0 -4
- package/dist/chunks/content-source-g38w0d3f.js +0 -4
- package/dist/chunks/convert-to-repeater-r8sfxjjm.js +0 -4
- package/dist/chunks/editor-wvf5e6j9.js +0 -4
- package/dist/chunks/entry-commands-t13dyw3c.js +0 -4
- package/dist/chunks/extension-sections-vjzw46xb.js +0 -4
- package/dist/chunks/file-ops-1sghzgcr.js +0 -4
- package/dist/chunks/files-zrqtgt41.js +0 -4
- package/dist/chunks/format-host-9gy76erh.js +0 -4
- package/dist/chunks/fs-events-45rhg3me.js +0 -4
- package/dist/chunks/grid-open-t4fq6bbm.js +0 -4
- package/dist/chunks/iframe-entry-42hpmwz5.js +0 -5
- package/dist/chunks/iframe-host-9aq8ze3q.js +0 -4
- package/dist/chunks/index-f9qr7kzh.js +0 -4
- package/dist/chunks/jsonMode-vj30te2h.js +0 -13
- package/dist/chunks/jx-validate-r4ax11e3.js +0 -4
- package/dist/chunks/layers-m49nmwvx.js +0 -4
- package/dist/chunks/layers-panel-zr92pwdp.js +0 -4
- package/dist/chunks/lit-html-k2mb9k0r.js +0 -4
- package/dist/chunks/media-library-j74rt0w4.js +0 -4
- package/dist/chunks/media-open-mypr0k6b.js +0 -4
- package/dist/chunks/media-picker-pemtbsjv.js +0 -4
- package/dist/chunks/menu-d2jxpgma.js +0 -4
- package/dist/chunks/monaco-buffer-pa0g6ax7.js +0 -4
- package/dist/chunks/monaco-setup-0hw9f835.js +0 -4
- package/dist/chunks/notify-bwehrp7q.js +0 -4
- package/dist/chunks/parse-hee7ne9b.js +0 -4
- package/dist/chunks/platform-kv0k65cy.js +0 -4
- package/dist/chunks/popover-9tf4cjrk.js +0 -4
- package/dist/chunks/publish-panel-vg1n880b.js +0 -4
- package/dist/chunks/publish-quick-4fwngwrw.js +0 -4
- package/dist/chunks/publish-workspace-jv4w2bx2.js +0 -4
- package/dist/chunks/quick-search-nh29rt8a.js +0 -4
- package/dist/chunks/references-vqyr5s9x.js +0 -4
- package/dist/chunks/right-panel-3ws9f2w0.js +0 -4
- package/dist/chunks/source-control-h3hcs5gy.js +0 -4
- package/dist/chunks/studio-0khd8xtx.js +0 -4
- package/dist/chunks/studio-1ctnw3xv.js +0 -5
- package/dist/chunks/studio-1ks5d9y4.js +0 -5
- package/dist/chunks/studio-1y9mab9m.js +0 -5
- package/dist/chunks/studio-2kpxm0eh.js +0 -7
- package/dist/chunks/studio-2zz4qbv9.js +0 -5
- package/dist/chunks/studio-3pz4t5a2.js +0 -5
- package/dist/chunks/studio-4f7thq0p.js +0 -5
- package/dist/chunks/studio-61rg2cz5.js +0 -5
- package/dist/chunks/studio-7rrdbvex.js +0 -5
- package/dist/chunks/studio-9c6cbq2c.js +0 -4
- package/dist/chunks/studio-9dq7rwc7.js +0 -5
- package/dist/chunks/studio-9gr7xs9r.js +0 -6
- package/dist/chunks/studio-a88ej93p.js +0 -7
- package/dist/chunks/studio-acer0g8w.js +0 -5
- package/dist/chunks/studio-az3wvyh2.js +0 -5
- package/dist/chunks/studio-brh8d2pr.js +0 -5
- package/dist/chunks/studio-c2fa783p.js +0 -9
- package/dist/chunks/studio-cfnn70h1.js +0 -5
- package/dist/chunks/studio-cqxj4fcy.js +0 -5
- package/dist/chunks/studio-cw11h078.js +0 -5
- package/dist/chunks/studio-dn56z7sn.js +0 -5
- package/dist/chunks/studio-egnjpyde.js +0 -9
- package/dist/chunks/studio-ejrypvmq.js +0 -5
- package/dist/chunks/studio-frc16j8v.js +0 -10
- package/dist/chunks/studio-gnazwtv3.js +0 -5
- package/dist/chunks/studio-hfqpfmpk.js +0 -5
- package/dist/chunks/studio-hh394phe.js +0 -5
- package/dist/chunks/studio-j0zf5x2x.js +0 -5
- package/dist/chunks/studio-j5fcp6gj.js +0 -5
- package/dist/chunks/studio-jd1qb1st.js +0 -7
- package/dist/chunks/studio-k0xzrse2.js +0 -64
- package/dist/chunks/studio-k1xqrgm5.js +0 -5
- package/dist/chunks/studio-k3we3kqb.js +0 -5
- package/dist/chunks/studio-knsjyx7n.js +0 -5
- package/dist/chunks/studio-mrjtnm62.js +0 -5
- package/dist/chunks/studio-n9qba0gx.js +0 -5
- package/dist/chunks/studio-nzemfbkk.js +0 -14
- package/dist/chunks/studio-pwctzka3.js +0 -16
- package/dist/chunks/studio-q80fg1d6.js +0 -12
- package/dist/chunks/studio-q9hx2qp0.js +0 -5
- package/dist/chunks/studio-qrzmfaf6.js +0 -5
- package/dist/chunks/studio-r6mx7vm5.js +0 -7
- package/dist/chunks/studio-swedpd82.js +0 -5
- package/dist/chunks/studio-tmfcn347.js +0 -6
- package/dist/chunks/studio-v5wktj6f.js +0 -5
- package/dist/chunks/studio-vpevkfxw.js +0 -5
- package/dist/chunks/studio-wqfaqw4m.js +0 -5
- package/dist/chunks/studio-xpx91fby.js +0 -6
- package/dist/chunks/studio-xva3hzkv.js +0 -5
- package/dist/chunks/studio-z3fztxrp.js +0 -9
- package/dist/chunks/studio-z9453ypn.js +0 -6
- package/dist/chunks/toast-w11qpkyz.js +0 -4
- package/dist/chunks/tsMode-jg1dtphj.js +0 -14
- package/dist/chunks/workspace-6ztqcrsh.js +0 -4
- package/dist/chunks/workspace-home-rse9h8a0.js +0 -4
- package/src/content/draft-state.ts +0 -108
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var Uvt=Object.defineProperty;var Hvt=(d)=>d;function qvt(d,E){this[d]=Hvt.bind(null,E)}var Jvt=(d,E)=>{for(var P in E)Uvt(d,P,{get:E[P],enumerable:!0,configurable:!0,set:qvt.bind(E,P)})};class dFe{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(d){setTimeout(()=>{if(d.stack){if(I8.isErrorNoTelemetry(d))throw new I8(d.message+`
|
|
1
|
+
var Uvt=Object.defineProperty;var Hvt=(d)=>d;function qvt(d,E){this[d]=Hvt.bind(null,E)}var Jvt=(d,E)=>{for(var P in E)Uvt(d,P,{get:E[P],enumerable:!0,configurable:!0,set:qvt.bind(E,P)})};var MQ={};Jvt(MQ,{EndOfLineState:()=>S0t,IndentStyle:()=>A0t,ScriptKind:()=>vN,ScriptTarget:()=>I0t,TokenClass:()=>x0t,createClassifier:()=>b0t,createLanguageService:()=>Uve,displayPartsToString:()=>T0t,flattenDiagnosticMessageText:()=>E0t,typescript:()=>Hve});class dFe{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(d){setTimeout(()=>{if(d.stack){if(I8.isErrorNoTelemetry(d))throw new I8(d.message+`
|
|
2
2
|
|
|
3
3
|
`+d.stack);throw Error(d.message+`
|
|
4
4
|
|
|
@@ -27,7 +27,7 @@ var Uvt=Object.defineProperty;var Hvt=(d)=>d;function qvt(d,E){this[d]=Hvt.bind(
|
|
|
27
27
|
`)),Te=this._computer.computeDiff(G.value,le.value,{ignoreTrimWhitespace:!0,computeMoves:P.computeMoves,extendToSubwords:P.extendToSubwords}),ke=G.getTransformer(),Ge=le.getTransformer(),ae=[],Mt=0;for(let nr of Te.edits.replacements){let Mn=nr.range.start+Mt,rr=Mn+nr.newText.length,cr=ke.getRange(new qa(nr.range.start,nr.range.endExclusive)),Ji=Ge.getRange(new qa(Mn,rr));ae.push(new oy(cr,Ji)),Mt+=nr.newText.length-(nr.range.endExclusive-nr.range.start)}let He=xz(ae,G,le),nt=[];if(P.computeMoves)for(let nr of Te.moves){let Mn=ke.getPosition(nr.range.original.start),rr=ke.getPosition(nr.range.original.endExclusive),cr=Ge.getPosition(nr.range.modified.start),Ji=Ge.getPosition(nr.range.modified.endExclusive),ho=new Ks(Mn.lineNumber,rr.lineNumber),kn=new Ks(cr.lineNumber,Ji.lineNumber);nt.push(new Sz(new ay(ho,kn),[]))}return new RR(He,nt,Te.hitTimeout)}}var Mz={getLegacy:()=>new Ive,getDefault:()=>new Mve,getAdvancedExternal:()=>Wve(!1),getAdvancedWasm:()=>Wve(!0)};function yN(d,E){let P=Math.pow(10,E);return Math.round(d*P)/P}class Ar{constructor(d,E,P,G=1){this._rgbaBrand=void 0,this.r=Math.min(255,Math.max(0,d))|0,this.g=Math.min(255,Math.max(0,E))|0,this.b=Math.min(255,Math.max(0,P))|0,this.a=yN(Math.max(Math.min(1,G),0),3)}static equals(d,E){return d.r===E.r&&d.g===E.g&&d.b===E.b&&d.a===E.a}}class P0{constructor(d,E,P,G){this._hslaBrand=void 0,this.h=Math.max(Math.min(360,d),0)|0,this.s=yN(Math.max(Math.min(1,E),0),3),this.l=yN(Math.max(Math.min(1,P),0),3),this.a=yN(Math.max(Math.min(1,G),0),3)}static equals(d,E){return d.h===E.h&&d.s===E.s&&d.l===E.l&&d.a===E.a}static fromRGBA(d){let E=d.r/255,P=d.g/255,G=d.b/255,le=d.a,Te=Math.max(E,P,G),ke=Math.min(E,P,G),Ge=0,ae=0,Mt=(ke+Te)/2,He=Te-ke;if(He>0){switch(ae=Math.min(Mt<=0.5?He/(2*Mt):He/(2-2*Mt),1),Te){case E:Ge=(P-G)/He+(P<G?6:0);break;case P:Ge=(G-E)/He+2;break;case G:Ge=(E-P)/He+4;break}Ge*=60,Ge=Math.round(Ge)}return new P0(Ge,ae,Mt,le)}static _hue2rgb(d,E,P){if(P<0)P+=1;if(P>1)P-=1;if(P<0.16666666666666666)return d+(E-d)*6*P;if(P<0.5)return E;if(P<0.6666666666666666)return d+(E-d)*(0.6666666666666666-P)*6;return d}static toRGBA(d){let E=d.h/360,{s:P,l:G,a:le}=d,Te,ke,Ge;if(P===0)Te=ke=Ge=G;else{let ae=G<0.5?G*(1+P):G+P-G*P,Mt=2*G-ae;Te=P0._hue2rgb(Mt,ae,E+0.3333333333333333),ke=P0._hue2rgb(Mt,ae,E),Ge=P0._hue2rgb(Mt,ae,E-0.3333333333333333)}return new Ar(Math.round(Te*255),Math.round(ke*255),Math.round(Ge*255),le)}}class W8{constructor(d,E,P,G){this._hsvaBrand=void 0,this.h=Math.max(Math.min(360,d),0)|0,this.s=yN(Math.max(Math.min(1,E),0),3),this.v=yN(Math.max(Math.min(1,P),0),3),this.a=yN(Math.max(Math.min(1,G),0),3)}static equals(d,E){return d.h===E.h&&d.s===E.s&&d.v===E.v&&d.a===E.a}static fromRGBA(d){let E=d.r/255,P=d.g/255,G=d.b/255,le=Math.max(E,P,G),Te=Math.min(E,P,G),ke=le-Te,Ge=le===0?0:ke/le,ae;if(ke===0)ae=0;else if(le===E)ae=((P-G)/ke%6+6)%6;else if(le===P)ae=(G-E)/ke+2;else ae=(E-P)/ke+4;return new W8(Math.round(ae*60),Ge,le,d.a)}static toRGBA(d){let{h:E,s:P,v:G,a:le}=d,Te=G*P,ke=Te*(1-Math.abs(E/60%2-1)),Ge=G-Te,[ae,Mt,He]=[0,0,0];if(E<60)ae=Te,Mt=ke;else if(E<120)ae=ke,Mt=Te;else if(E<180)Mt=Te,He=ke;else if(E<240)Mt=ke,He=Te;else if(E<300)ae=ke,He=Te;else if(E<=360)ae=Te,He=ke;return ae=Math.round((ae+Ge)*255),Mt=Math.round((Mt+Ge)*255),He=Math.round((He+Ge)*255),new Ar(ae,Mt,He,le)}}class Mp{static fromHex(d){return Mp.Format.CSS.parseHex(d)||Mp.red}static equals(d,E){if(!d&&!E)return!0;if(!d||!E)return!1;return d.equals(E)}get hsla(){if(this._hsla)return this._hsla;else return P0.fromRGBA(this.rgba)}get hsva(){if(this._hsva)return this._hsva;return W8.fromRGBA(this.rgba)}constructor(d){if(!d)throw Error("Color needs a value");else if(d instanceof Ar)this.rgba=d;else if(d instanceof P0)this._hsla=d,this.rgba=P0.toRGBA(d);else if(d instanceof W8)this._hsva=d,this.rgba=W8.toRGBA(d);else throw Error("Invalid color ctor argument")}equals(d){return!!d&&Ar.equals(this.rgba,d.rgba)&&P0.equals(this.hsla,d.hsla)&&W8.equals(this.hsva,d.hsva)}getRelativeLuminance(){let d=Mp._relativeLuminanceForComponent(this.rgba.r),E=Mp._relativeLuminanceForComponent(this.rgba.g),P=Mp._relativeLuminanceForComponent(this.rgba.b),G=0.2126*d+0.7152*E+0.0722*P;return yN(G,4)}static _relativeLuminanceForComponent(d){let E=d/255;return E<=0.03928?E/12.92:Math.pow((E+0.055)/1.055,2.4)}isLighter(){return(this.rgba.r*299+this.rgba.g*587+this.rgba.b*114)/1000>=128}isLighterThan(d){let E=this.getRelativeLuminance(),P=d.getRelativeLuminance();return E>P}isDarkerThan(d){let E=this.getRelativeLuminance(),P=d.getRelativeLuminance();return E<P}lighten(d){return new Mp(new P0(this.hsla.h,this.hsla.s,this.hsla.l+this.hsla.l*d,this.hsla.a))}darken(d){return new Mp(new P0(this.hsla.h,this.hsla.s,this.hsla.l-this.hsla.l*d,this.hsla.a))}transparent(d){let{r:E,g:P,b:G,a:le}=this.rgba;return new Mp(new Ar(E,P,G,le*d))}isTransparent(){return this.rgba.a===0}isOpaque(){return this.rgba.a===1}opposite(){return new Mp(new Ar(255-this.rgba.r,255-this.rgba.g,255-this.rgba.b,this.rgba.a))}mix(d,E=0.5){let P=Math.min(Math.max(E,0),1),G=this.rgba,le=d.rgba,Te=G.r+(le.r-G.r)*P,ke=G.g+(le.g-G.g)*P,Ge=G.b+(le.b-G.b)*P,ae=G.a+(le.a-G.a)*P;return new Mp(new Ar(Te,ke,Ge,ae))}makeOpaque(d){if(this.isOpaque()||d.rgba.a!==1)return this;let{r:E,g:P,b:G,a:le}=this.rgba;return new Mp(new Ar(d.rgba.r-le*(d.rgba.r-E),d.rgba.g-le*(d.rgba.g-P),d.rgba.b-le*(d.rgba.b-G),1))}toString(){if(!this._toString)this._toString=Mp.Format.CSS.format(this);return this._toString}toNumber32Bit(){if(!this._toNumber32Bit)this._toNumber32Bit=(this.rgba.r<<24|this.rgba.g<<16|this.rgba.b<<8|this.rgba.a*255<<0)>>>0;return this._toNumber32Bit}static getLighterColor(d,E,P){if(d.isLighterThan(E))return d;P=P?P:0.5;let G=d.getRelativeLuminance(),le=E.getRelativeLuminance();return P=P*(le-G)/le,d.lighten(P)}static getDarkerColor(d,E,P){if(d.isDarkerThan(E))return d;P=P?P:0.5;let G=d.getRelativeLuminance(),le=E.getRelativeLuminance();return P=P*(G-le)/G,d.darken(P)}static{this.white=new Mp(new Ar(255,255,255,1))}static{this.black=new Mp(new Ar(0,0,0,1))}static{this.red=new Mp(new Ar(255,0,0,1))}static{this.blue=new Mp(new Ar(0,0,255,1))}static{this.green=new Mp(new Ar(0,255,0,1))}static{this.cyan=new Mp(new Ar(0,255,255,1))}static{this.lightgrey=new Mp(new Ar(211,211,211,1))}static{this.transparent=new Mp(new Ar(0,0,0,0))}}(function(d){(function(E){(function(P){function G(cr){if(cr.rgba.a===1)return`rgb(${cr.rgba.r}, ${cr.rgba.g}, ${cr.rgba.b})`;return d.Format.CSS.formatRGBA(cr)}P.formatRGB=G;function le(cr){return`rgba(${cr.rgba.r}, ${cr.rgba.g}, ${cr.rgba.b}, ${+cr.rgba.a.toFixed(2)})`}P.formatRGBA=le;function Te(cr){if(cr.hsla.a===1)return`hsl(${cr.hsla.h}, ${Math.round(cr.hsla.s*100)}%, ${Math.round(cr.hsla.l*100)}%)`;return d.Format.CSS.formatHSLA(cr)}P.formatHSL=Te;function ke(cr){return`hsla(${cr.hsla.h}, ${Math.round(cr.hsla.s*100)}%, ${Math.round(cr.hsla.l*100)}%, ${cr.hsla.a.toFixed(2)})`}P.formatHSLA=ke;function Ge(cr){let Ji=cr.toString(16);return Ji.length!==2?"0"+Ji:Ji}function ae(cr){return`#${Ge(cr.rgba.r)}${Ge(cr.rgba.g)}${Ge(cr.rgba.b)}`}P.formatHex=ae;function Mt(cr,Ji=!1){if(Ji&&cr.rgba.a===1)return d.Format.CSS.formatHex(cr);return`#${Ge(cr.rgba.r)}${Ge(cr.rgba.g)}${Ge(cr.rgba.b)}${Ge(Math.round(cr.rgba.a*255))}`}P.formatHexA=Mt;function He(cr){if(cr.isOpaque())return d.Format.CSS.formatHex(cr);return d.Format.CSS.formatRGBA(cr)}P.format=He;function nt(cr){if(cr==="transparent")return d.transparent;if(cr.startsWith("#"))return Mn(cr);if(cr.startsWith("rgba(")){let Ji=cr.match(/rgba\((?<r>(?:\+|-)?\d+), *(?<g>(?:\+|-)?\d+), *(?<b>(?:\+|-)?\d+), *(?<a>(?:\+|-)?\d+(\.\d+)?)\)/);if(!Ji)throw Error("Invalid color format "+cr);let ho=parseInt(Ji.groups?.r??"0"),kn=parseInt(Ji.groups?.g??"0"),Pn=parseInt(Ji.groups?.b??"0"),Qo=parseFloat(Ji.groups?.a??"0");return new d(new Ar(ho,kn,Pn,Qo))}if(cr.startsWith("rgb(")){let Ji=cr.match(/rgb\((?<r>(?:\+|-)?\d+), *(?<g>(?:\+|-)?\d+), *(?<b>(?:\+|-)?\d+)\)/);if(!Ji)throw Error("Invalid color format "+cr);let ho=parseInt(Ji.groups?.r??"0"),kn=parseInt(Ji.groups?.g??"0"),Pn=parseInt(Ji.groups?.b??"0");return new d(new Ar(ho,kn,Pn))}return nr(cr)}P.parse=nt;function nr(cr){switch(cr){case"aliceblue":return new d(new Ar(240,248,255,1));case"antiquewhite":return new d(new Ar(250,235,215,1));case"aqua":return new d(new Ar(0,255,255,1));case"aquamarine":return new d(new Ar(127,255,212,1));case"azure":return new d(new Ar(240,255,255,1));case"beige":return new d(new Ar(245,245,220,1));case"bisque":return new d(new Ar(255,228,196,1));case"black":return new d(new Ar(0,0,0,1));case"blanchedalmond":return new d(new Ar(255,235,205,1));case"blue":return new d(new Ar(0,0,255,1));case"blueviolet":return new d(new Ar(138,43,226,1));case"brown":return new d(new Ar(165,42,42,1));case"burlywood":return new d(new Ar(222,184,135,1));case"cadetblue":return new d(new Ar(95,158,160,1));case"chartreuse":return new d(new Ar(127,255,0,1));case"chocolate":return new d(new Ar(210,105,30,1));case"coral":return new d(new Ar(255,127,80,1));case"cornflowerblue":return new d(new Ar(100,149,237,1));case"cornsilk":return new d(new Ar(255,248,220,1));case"crimson":return new d(new Ar(220,20,60,1));case"cyan":return new d(new Ar(0,255,255,1));case"darkblue":return new d(new Ar(0,0,139,1));case"darkcyan":return new d(new Ar(0,139,139,1));case"darkgoldenrod":return new d(new Ar(184,134,11,1));case"darkgray":return new d(new Ar(169,169,169,1));case"darkgreen":return new d(new Ar(0,100,0,1));case"darkgrey":return new d(new Ar(169,169,169,1));case"darkkhaki":return new d(new Ar(189,183,107,1));case"darkmagenta":return new d(new Ar(139,0,139,1));case"darkolivegreen":return new d(new Ar(85,107,47,1));case"darkorange":return new d(new Ar(255,140,0,1));case"darkorchid":return new d(new Ar(153,50,204,1));case"darkred":return new d(new Ar(139,0,0,1));case"darksalmon":return new d(new Ar(233,150,122,1));case"darkseagreen":return new d(new Ar(143,188,143,1));case"darkslateblue":return new d(new Ar(72,61,139,1));case"darkslategray":return new d(new Ar(47,79,79,1));case"darkslategrey":return new d(new Ar(47,79,79,1));case"darkturquoise":return new d(new Ar(0,206,209,1));case"darkviolet":return new d(new Ar(148,0,211,1));case"deeppink":return new d(new Ar(255,20,147,1));case"deepskyblue":return new d(new Ar(0,191,255,1));case"dimgray":return new d(new Ar(105,105,105,1));case"dimgrey":return new d(new Ar(105,105,105,1));case"dodgerblue":return new d(new Ar(30,144,255,1));case"firebrick":return new d(new Ar(178,34,34,1));case"floralwhite":return new d(new Ar(255,250,240,1));case"forestgreen":return new d(new Ar(34,139,34,1));case"fuchsia":return new d(new Ar(255,0,255,1));case"gainsboro":return new d(new Ar(220,220,220,1));case"ghostwhite":return new d(new Ar(248,248,255,1));case"gold":return new d(new Ar(255,215,0,1));case"goldenrod":return new d(new Ar(218,165,32,1));case"gray":return new d(new Ar(128,128,128,1));case"green":return new d(new Ar(0,128,0,1));case"greenyellow":return new d(new Ar(173,255,47,1));case"grey":return new d(new Ar(128,128,128,1));case"honeydew":return new d(new Ar(240,255,240,1));case"hotpink":return new d(new Ar(255,105,180,1));case"indianred":return new d(new Ar(205,92,92,1));case"indigo":return new d(new Ar(75,0,130,1));case"ivory":return new d(new Ar(255,255,240,1));case"khaki":return new d(new Ar(240,230,140,1));case"lavender":return new d(new Ar(230,230,250,1));case"lavenderblush":return new d(new Ar(255,240,245,1));case"lawngreen":return new d(new Ar(124,252,0,1));case"lemonchiffon":return new d(new Ar(255,250,205,1));case"lightblue":return new d(new Ar(173,216,230,1));case"lightcoral":return new d(new Ar(240,128,128,1));case"lightcyan":return new d(new Ar(224,255,255,1));case"lightgoldenrodyellow":return new d(new Ar(250,250,210,1));case"lightgray":return new d(new Ar(211,211,211,1));case"lightgreen":return new d(new Ar(144,238,144,1));case"lightgrey":return new d(new Ar(211,211,211,1));case"lightpink":return new d(new Ar(255,182,193,1));case"lightsalmon":return new d(new Ar(255,160,122,1));case"lightseagreen":return new d(new Ar(32,178,170,1));case"lightskyblue":return new d(new Ar(135,206,250,1));case"lightslategray":return new d(new Ar(119,136,153,1));case"lightslategrey":return new d(new Ar(119,136,153,1));case"lightsteelblue":return new d(new Ar(176,196,222,1));case"lightyellow":return new d(new Ar(255,255,224,1));case"lime":return new d(new Ar(0,255,0,1));case"limegreen":return new d(new Ar(50,205,50,1));case"linen":return new d(new Ar(250,240,230,1));case"magenta":return new d(new Ar(255,0,255,1));case"maroon":return new d(new Ar(128,0,0,1));case"mediumaquamarine":return new d(new Ar(102,205,170,1));case"mediumblue":return new d(new Ar(0,0,205,1));case"mediumorchid":return new d(new Ar(186,85,211,1));case"mediumpurple":return new d(new Ar(147,112,219,1));case"mediumseagreen":return new d(new Ar(60,179,113,1));case"mediumslateblue":return new d(new Ar(123,104,238,1));case"mediumspringgreen":return new d(new Ar(0,250,154,1));case"mediumturquoise":return new d(new Ar(72,209,204,1));case"mediumvioletred":return new d(new Ar(199,21,133,1));case"midnightblue":return new d(new Ar(25,25,112,1));case"mintcream":return new d(new Ar(245,255,250,1));case"mistyrose":return new d(new Ar(255,228,225,1));case"moccasin":return new d(new Ar(255,228,181,1));case"navajowhite":return new d(new Ar(255,222,173,1));case"navy":return new d(new Ar(0,0,128,1));case"oldlace":return new d(new Ar(253,245,230,1));case"olive":return new d(new Ar(128,128,0,1));case"olivedrab":return new d(new Ar(107,142,35,1));case"orange":return new d(new Ar(255,165,0,1));case"orangered":return new d(new Ar(255,69,0,1));case"orchid":return new d(new Ar(218,112,214,1));case"palegoldenrod":return new d(new Ar(238,232,170,1));case"palegreen":return new d(new Ar(152,251,152,1));case"paleturquoise":return new d(new Ar(175,238,238,1));case"palevioletred":return new d(new Ar(219,112,147,1));case"papayawhip":return new d(new Ar(255,239,213,1));case"peachpuff":return new d(new Ar(255,218,185,1));case"peru":return new d(new Ar(205,133,63,1));case"pink":return new d(new Ar(255,192,203,1));case"plum":return new d(new Ar(221,160,221,1));case"powderblue":return new d(new Ar(176,224,230,1));case"purple":return new d(new Ar(128,0,128,1));case"rebeccapurple":return new d(new Ar(102,51,153,1));case"red":return new d(new Ar(255,0,0,1));case"rosybrown":return new d(new Ar(188,143,143,1));case"royalblue":return new d(new Ar(65,105,225,1));case"saddlebrown":return new d(new Ar(139,69,19,1));case"salmon":return new d(new Ar(250,128,114,1));case"sandybrown":return new d(new Ar(244,164,96,1));case"seagreen":return new d(new Ar(46,139,87,1));case"seashell":return new d(new Ar(255,245,238,1));case"sienna":return new d(new Ar(160,82,45,1));case"silver":return new d(new Ar(192,192,192,1));case"skyblue":return new d(new Ar(135,206,235,1));case"slateblue":return new d(new Ar(106,90,205,1));case"slategray":return new d(new Ar(112,128,144,1));case"slategrey":return new d(new Ar(112,128,144,1));case"snow":return new d(new Ar(255,250,250,1));case"springgreen":return new d(new Ar(0,255,127,1));case"steelblue":return new d(new Ar(70,130,180,1));case"tan":return new d(new Ar(210,180,140,1));case"teal":return new d(new Ar(0,128,128,1));case"thistle":return new d(new Ar(216,191,216,1));case"tomato":return new d(new Ar(255,99,71,1));case"turquoise":return new d(new Ar(64,224,208,1));case"violet":return new d(new Ar(238,130,238,1));case"wheat":return new d(new Ar(245,222,179,1));case"white":return new d(new Ar(255,255,255,1));case"whitesmoke":return new d(new Ar(245,245,245,1));case"yellow":return new d(new Ar(255,255,0,1));case"yellowgreen":return new d(new Ar(154,205,50,1));default:return null}}function Mn(cr){let Ji=cr.length;if(Ji===0)return null;if(cr.charCodeAt(0)!==35)return null;if(Ji===7){let ho=16*rr(cr.charCodeAt(1))+rr(cr.charCodeAt(2)),kn=16*rr(cr.charCodeAt(3))+rr(cr.charCodeAt(4)),Pn=16*rr(cr.charCodeAt(5))+rr(cr.charCodeAt(6));return new d(new Ar(ho,kn,Pn,1))}if(Ji===9){let ho=16*rr(cr.charCodeAt(1))+rr(cr.charCodeAt(2)),kn=16*rr(cr.charCodeAt(3))+rr(cr.charCodeAt(4)),Pn=16*rr(cr.charCodeAt(5))+rr(cr.charCodeAt(6)),Qo=16*rr(cr.charCodeAt(7))+rr(cr.charCodeAt(8));return new d(new Ar(ho,kn,Pn,Qo/255))}if(Ji===4){let ho=rr(cr.charCodeAt(1)),kn=rr(cr.charCodeAt(2)),Pn=rr(cr.charCodeAt(3));return new d(new Ar(16*ho+ho,16*kn+kn,16*Pn+Pn))}if(Ji===5){let ho=rr(cr.charCodeAt(1)),kn=rr(cr.charCodeAt(2)),Pn=rr(cr.charCodeAt(3)),Qo=rr(cr.charCodeAt(4));return new d(new Ar(16*ho+ho,16*kn+kn,16*Pn+Pn,(16*Qo+Qo)/255))}return null}P.parseHex=Mn;function rr(cr){switch(cr){case 48:return 0;case 49:return 1;case 50:return 2;case 51:return 3;case 52:return 4;case 53:return 5;case 54:return 6;case 55:return 7;case 56:return 8;case 57:return 9;case 97:return 10;case 65:return 10;case 98:return 11;case 66:return 11;case 99:return 12;case 67:return 12;case 100:return 13;case 68:return 13;case 101:return 14;case 69:return 14;case 102:return 15;case 70:return 15}return 0}})(E.CSS||(E.CSS={}))})(d.Format||(d.Format={}))})(Mp||(Mp={}));function x9e(d){let E=[];for(let P of d){let G=Number(P);if(G||G===0&&P.replace(/\s/g,"")!=="")E.push(G)}return E}function Fve(d,E,P,G){return{red:d/255,blue:P/255,green:E/255,alpha:G}}function Pz(d,E){let P=E.index,G=E[0].length;if(P===void 0)return;let le=d.positionAt(P);return{startLineNumber:le.lineNumber,startColumn:le.column,endLineNumber:le.lineNumber,endColumn:le.column+G}}function l0t(d,E){if(!d)return;let P=Mp.Format.CSS.parseHex(E);if(!P)return;return{range:d,color:Fve(P.rgba.r,P.rgba.g,P.rgba.b,P.rgba.a)}}function A9e(d,E,P){if(!d||E.length!==1)return;let le=E[0].values(),Te=x9e(le);return{range:d,color:Fve(Te[0],Te[1],Te[2],P?Te[3]:1)}}function I9e(d,E,P){if(!d||E.length!==1)return;let le=E[0].values(),Te=x9e(le),ke=new Mp(new P0(Te[0],Te[1]/100,Te[2]/100,P?Te[3]:1));return{range:d,color:Fve(ke.rgba.r,ke.rgba.g,ke.rgba.b,ke.rgba.a)}}function Lz(d,E){if(typeof d==="string")return[...d.matchAll(E)];else return d.findMatches(E)}function c0t(d){let E=[],G=Lz(d,/\b(rgb|rgba|hsl|hsla)(\([0-9\s,.\%\/]*\))|^(#)([A-Fa-f0-9]{3})\b|^(#)([A-Fa-f0-9]{4})\b|^(#)([A-Fa-f0-9]{6})\b|^(#)([A-Fa-f0-9]{8})\b|(?<=['"\s])(#)([A-Fa-f0-9]{3})\b|(?<=['"\s])(#)([A-Fa-f0-9]{4})\b|(?<=['"\s])(#)([A-Fa-f0-9]{6})\b|(?<=['"\s])(#)([A-Fa-f0-9]{8})\b/gm);if(G.length>0)for(let le of G){let Te=le.filter((Mt)=>Mt!==void 0),ke=Te[1],Ge=Te[2];if(!Ge)continue;let ae;if(ke==="rgb"){let Mt=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*[\s,]\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*[\s,]\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*\)$/gm;ae=A9e(Pz(d,le),Lz(Ge,Mt),!1)}else if(ke==="rgba"){let Mt=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*[\s,]\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*[\s,]\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*(?:[\s,]|[\s]*\/)\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;ae=A9e(Pz(d,le),Lz(Ge,Mt),!0)}else if(ke==="hsl"){let Mt=/^\(\s*((?:360(?:\.0+)?|(?:36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])(?:\.\d+)?))\s*[\s,]\s*(100(?:\.0+)?|\d{1,2}[.]\d*|\d{1,2})%\s*[\s,]\s*(100(?:\.0+)?|\d{1,2}[.]\d*|\d{1,2})%\s*\)$/gm;ae=I9e(Pz(d,le),Lz(Ge,Mt),!1)}else if(ke==="hsla"){let Mt=/^\(\s*((?:360(?:\.0+)?|(?:36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])(?:\.\d+)?))\s*[\s,]\s*(100(?:\.0+)?|\d{1,2}[.]\d*|\d{1,2})%\s*[\s,]\s*(100(?:\.0+)?|\d{1,2}[.]\d*|\d{1,2})%\s*(?:[\s,]|[\s]*\/)\s*(0[.][0-9]+|[.][0-9]+|[01][.]0*|[01])\s*\)$/gm;ae=I9e(Pz(d,le),Lz(Ge,Mt),!0)}else if(ke==="#")ae=l0t(Pz(d,le),ke+Ge);if(ae)E.push(ae)}return E}function R9e(d){if(!d||typeof d.getValue!=="function"||typeof d.positionAt!=="function")return[];return c0t(d)}var d0t=/^-+|-+$/g,D9e=100,u0t=5;function C9e(d,E){let P=[];if(E.findRegionSectionHeaders&&E.foldingRules?.markers){let G=p0t(d,E);P=P.concat(G)}if(E.findMarkSectionHeaders){let G=f0t(d,E);P=P.concat(G)}return P}function p0t(d,E){let P=[],G=d.getLineCount();for(let le=1;le<=G;le++){let Te=d.getLineContent(le),ke=Te.match(E.foldingRules.markers.start);if(ke){let Ge={startLineNumber:le,startColumn:ke[0].length+1,endLineNumber:le,endColumn:Te.length+1};if(Ge.endColumn>Ge.startColumn){let ae={range:Ge,...m0t(Te.substring(ke[0].length)),shouldBeInComments:!1};if(ae.text||ae.hasSeparatorLine)P.push(ae)}}}return P}function f0t(d,E){let P=[],G=d.getLineCount();if(!E.markSectionHeaderRegex||E.markSectionHeaderRegex.trim()==="")return P;let le=F5e(E.markSectionHeaderRegex),Te=new RegExp(E.markSectionHeaderRegex,`gdm${le?"s":""}`);if(FFe(Te))return P;for(let ke=1;ke<=G;ke+=D9e-u0t){let Ge=Math.min(ke+D9e-1,G),ae=[];for(let nt=ke;nt<=Ge;nt++)ae.push(d.getLineContent(nt));let Mt=ae.join(`
|
|
28
28
|
`);Te.lastIndex=0;let He;while((He=Te.exec(Mt))!==null){let nt=Mt.substring(0,He.index),nr=(nt.match(/\n/g)||[]).length,Mn=ke+nr,rr=He[0].split(`
|
|
29
29
|
`),cr=rr.length,Ji=Mn+cr-1,ho=nt.lastIndexOf(`
|
|
30
|
-
`)+1,kn=He.index-ho+1,Pn=rr[rr.length-1],Qo=cr===1?kn+He[0].length:Pn.length+1,Zo={startLineNumber:Mn,startColumn:kn,endLineNumber:Ji,endColumn:Qo},pa=(He.groups??{}).label??"",wn=((He.groups??{}).separator??"")!=="",co={range:Zo,text:pa,hasSeparatorLine:wn,shouldBeInComments:!0};if(co.text||co.hasSeparatorLine){if(P.length===0||P[P.length-1].range.endLineNumber<co.range.startLineNumber)P.push(co)}Te.lastIndex=He.index+He[0].length}}return P}function m0t(d){d=d.trim();let E=d.startsWith("-");return d=d.replace(d0t,""),{text:d,hasSeparatorLine:E}}var h0t=Symbol("MicrotaskDelay");var _0t,zve;(function(){let d=globalThis;if(typeof d.requestIdleCallback!=="function"||typeof d.cancelIdleCallback!=="function")zve=(E,P,G)=>{RFe(()=>{if(le)return;let Te=Date.now()+15;P(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,Te-Date.now())}}))});let le=!1;return{dispose(){if(le)return;le=!0}}};else zve=(E,P,G)=>{let le=E.requestIdleCallback(P,typeof G==="number"?{timeout:G}:void 0),Te=!1;return{dispose(){if(Te)return;Te=!0,E.cancelIdleCallback(le)}}};_0t=(E,P)=>zve(globalThis,E,P)})();class Bve{get isRejected(){return this.outcome?.outcome===1}get isSettled(){return!!this.outcome}constructor(){this.p=new Promise((d,E)=>{this.completeCallback=d,this.errorCallback=E})}complete(d){if(this.isSettled)return Promise.resolve();return new Promise((E)=>{this.completeCallback(d),this.outcome={outcome:0,value:d},E()})}error(d){if(this.isSettled)return Promise.resolve();return new Promise((E)=>{this.errorCallback(d),this.outcome={outcome:1,value:d},E()})}cancel(){return this.error(new eQ)}}var N9e;(function(d){async function E(G){let le=void 0,Te=await Promise.all(G.map((ke)=>ke.then((Ge)=>Ge,(Ge)=>{if(!le)le=Ge;return})));if(typeof le<"u")throw le;return Te}d.settled=E;function P(G){return new Promise(async(le,Te)=>{try{await G(le,Te)}catch(ke){Te(ke)}})}d.withAsyncBody=P})(N9e||(N9e={}));class M9e{constructor(){this._unsatisfiedConsumers=[],this._unconsumedValues=[]}get hasFinalValue(){return!!this._finalValue}produce(d){if(this._ensureNoFinalValue(),this._unsatisfiedConsumers.length>0){let E=this._unsatisfiedConsumers.shift();this._resolveOrRejectDeferred(E,d)}else this._unconsumedValues.push(d)}produceFinal(d){this._ensureNoFinalValue(),this._finalValue=d;for(let E of this._unsatisfiedConsumers)this._resolveOrRejectDeferred(E,d);this._unsatisfiedConsumers.length=0}_ensureNoFinalValue(){if(this._finalValue)throw new Lu("ProducerConsumer: cannot produce after final value has been set")}_resolveOrRejectDeferred(d,E){if(E.ok)d.complete(E.value);else d.error(E.error)}consume(){if(this._unconsumedValues.length>0||this._finalValue){let d=this._unconsumedValues.length>0?this._unconsumedValues.shift():this._finalValue;if(d.ok)return Promise.resolve(d.value);else return Promise.reject(d.error)}else{let d=new Bve;return this._unsatisfiedConsumers.push(d),d.p}}}class ib{constructor(d,E){this._onReturn=E,this._producerConsumer=new M9e,this._iterator={next:()=>this._producerConsumer.consume(),return:()=>(this._onReturn?.(),Promise.resolve({done:!0,value:void 0})),throw:async(P)=>(this._finishError(P),{done:!0,value:void 0})},queueMicrotask(async()=>{let P=d({emitOne:(G)=>this._producerConsumer.produce({ok:!0,value:{done:!1,value:G}}),emitMany:(G)=>{for(let le of G)this._producerConsumer.produce({ok:!0,value:{done:!1,value:le}})},reject:(G)=>this._finishError(G)});if(!this._producerConsumer.hasFinalValue)try{await P,this._finishOk()}catch(G){this._finishError(G)}})}static fromArray(d){return new ib((E)=>{E.emitMany(d)})}static fromPromise(d){return new ib(async(E)=>{E.emitMany(await d)})}static fromPromisesResolveOrder(d){return new ib(async(E)=>{await Promise.all(d.map(async(P)=>E.emitOne(await P)))})}static merge(d){return new ib(async(E)=>{await Promise.all(d.map(async(P)=>{for await(let G of P)E.emitOne(G)}))})}static{this.EMPTY=ib.fromArray([])}static map(d,E){return new ib(async(P)=>{for await(let G of d)P.emitOne(E(G))})}static tee(d){let E,P,G=new Bve,le=async()=>{if(!E||!P)return;try{for await(let Ge of d)E.emitOne(Ge),P.emitOne(Ge)}catch(Ge){E.reject(Ge),P.reject(Ge)}finally{G.complete()}},Te=new ib(async(Ge)=>(E=Ge,le(),G.p)),ke=new ib(async(Ge)=>(P=Ge,le(),G.p));return[Te,ke]}map(d){return ib.map(this,d)}static coalesce(d){return ib.filter(d,(E)=>!!E)}coalesce(){return ib.coalesce(this)}static filter(d,E){return new ib(async(P)=>{for await(let G of d)if(E(G))P.emitOne(G)})}filter(d){return ib.filter(this,d)}_finishOk(){if(!this._producerConsumer.hasFinalValue)this._producerConsumer.produceFinal({ok:!0,value:{done:!0,value:void 0}})}_finishError(d){if(!this._producerConsumer.hasFinalValue)this._producerConsumer.produceFinal({ok:!1,error:d})}[Symbol.asyncIterator](){return this._iterator}}class Gve{constructor(d){this.values=d,this.prefixSum=new Uint32Array(d.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(d,E){d=lL(d);let P=this.values,G=this.prefixSum,le=E.length;if(le===0)return!1;if(this.values=new Uint32Array(P.length+le),this.values.set(P.subarray(0,d),0),this.values.set(P.subarray(d),d+le),this.values.set(E,d),d-1<this.prefixSumValidIndex[0])this.prefixSumValidIndex[0]=d-1;if(this.prefixSum=new Uint32Array(this.values.length),this.prefixSumValidIndex[0]>=0)this.prefixSum.set(G.subarray(0,this.prefixSumValidIndex[0]+1));return!0}setValue(d,E){if(d=lL(d),E=lL(E),this.values[d]===E)return!1;if(this.values[d]=E,d-1<this.prefixSumValidIndex[0])this.prefixSumValidIndex[0]=d-1;return!0}removeValues(d,E){d=lL(d),E=lL(E);let P=this.values,G=this.prefixSum;if(d>=P.length)return!1;let le=P.length-d;if(E>=le)E=le;if(E===0)return!1;if(this.values=new Uint32Array(P.length-E),this.values.set(P.subarray(0,d),0),this.values.set(P.subarray(d+E),d),this.prefixSum=new Uint32Array(this.values.length),d-1<this.prefixSumValidIndex[0])this.prefixSumValidIndex[0]=d-1;if(this.prefixSumValidIndex[0]>=0)this.prefixSum.set(G.subarray(0,this.prefixSumValidIndex[0]+1));return!0}getTotalSum(){if(this.values.length===0)return 0;return this._getPrefixSum(this.values.length-1)}getPrefixSum(d){if(d<0)return 0;return d=lL(d),this._getPrefixSum(d)}_getPrefixSum(d){if(d<=this.prefixSumValidIndex[0])return this.prefixSum[d];let E=this.prefixSumValidIndex[0]+1;if(E===0)this.prefixSum[0]=this.values[0],E++;if(d>=this.values.length)d=this.values.length-1;for(let P=E;P<=d;P++)this.prefixSum[P]=this.prefixSum[P-1]+this.values[P];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],d),this.prefixSum[d]}getIndexOf(d){d=Math.floor(d),this.getTotalSum();let E=0,P=this.values.length-1,G=0,le=0,Te=0;while(E<=P)if(G=E+(P-E)/2|0,le=this.prefixSum[G],Te=le-this.values[G],d<Te)P=G-1;else if(d>=le)E=G+1;else break;return new P9e(G,d-Te)}}class P9e{constructor(d,E){this.index=d,this.remainder=E,this._prefixSumIndexOfResultBrand=void 0,this.index=d,this.remainder=E}}class Vve{constructor(d,E,P,G){this._uri=d,this._lines=E,this._eol=P,this._versionId=G,this._lineStarts=null,this._cachedTextValue=null}dispose(){this._lines.length=0}get version(){return this._versionId}getText(){if(this._cachedTextValue===null)this._cachedTextValue=this._lines.join(this._eol);return this._cachedTextValue}onEvents(d){if(d.eol&&d.eol!==this._eol)this._eol=d.eol,this._lineStarts=null;let E=d.changes;for(let P of E)this._acceptDeleteRange(P.range),this._acceptInsertText(new ws(P.range.startLineNumber,P.range.startColumn),P.text);this._versionId=d.versionId,this._cachedTextValue=null}_ensureLineStarts(){if(!this._lineStarts){let d=this._eol.length,E=this._lines.length,P=new Uint32Array(E);for(let G=0;G<E;G++)P[G]=this._lines[G].length+d;this._lineStarts=new Gve(P)}}_setLineText(d,E){if(this._lines[d]=E,this._lineStarts)this._lineStarts.setValue(d,this._lines[d].length+this._eol.length)}_acceptDeleteRange(d){if(d.startLineNumber===d.endLineNumber){if(d.startColumn===d.endColumn)return;this._setLineText(d.startLineNumber-1,this._lines[d.startLineNumber-1].substring(0,d.startColumn-1)+this._lines[d.startLineNumber-1].substring(d.endColumn-1));return}if(this._setLineText(d.startLineNumber-1,this._lines[d.startLineNumber-1].substring(0,d.startColumn-1)+this._lines[d.endLineNumber-1].substring(d.endColumn-1)),this._lines.splice(d.startLineNumber,d.endLineNumber-d.startLineNumber),this._lineStarts)this._lineStarts.removeValues(d.startLineNumber,d.endLineNumber-d.startLineNumber)}_acceptInsertText(d,E){if(E.length===0)return;let P=zFe(E);if(P.length===1){this._setLineText(d.lineNumber-1,this._lines[d.lineNumber-1].substring(0,d.column-1)+P[0]+this._lines[d.lineNumber-1].substring(d.column-1));return}P[P.length-1]+=this._lines[d.lineNumber-1].substring(d.column-1),this._setLineText(d.lineNumber-1,this._lines[d.lineNumber-1].substring(0,d.column-1)+P[0]);let G=new Uint32Array(P.length-1);for(let le=1;le<P.length;le++)this._lines.splice(d.lineNumber+le-1,0,P[le]),G[le-1]=P[le].length+this._eol.length;if(this._lineStarts)this._lineStarts.insertValues(d.lineNumber,G)}}class jve{constructor(){this._models=Object.create(null)}getModel(d){return this._models[d]}getModels(){let d=[];return Object.keys(this._models).forEach((E)=>d.push(this._models[E])),d}$acceptNewModel(d){this._models[d.url]=new L9e(pg.parse(d.url),d.lines,d.EOL,d.versionId)}$acceptModelChanged(d,E){if(!this._models[d])return;this._models[d].onEvents(E)}$acceptRemovedModel(d){if(!this._models[d])return;delete this._models[d]}}class L9e extends Vve{get uri(){return this._uri}get eol(){return this._eol}getValue(){return this.getText()}findMatches(d){let E=[];for(let P=0;P<this._lines.length;P++){let G=this._lines[P],le=this.offsetAt(new ws(P+1,1)),Te=G.matchAll(d);for(let ke of Te){if(ke.index||ke.index===0)ke.index=ke.index+le;E.push(ke)}}return E}getLinesContent(){return this._lines.slice(0)}getLineCount(){return this._lines.length}getLineContent(d){return this._lines[d-1]}getWordAtPosition(d,E){let P=Tz(d.column,_ve(E),this._lines[d.lineNumber-1],0);if(P)return new jo(d.lineNumber,P.startColumn,d.lineNumber,P.endColumn);return null}words(d){let E=this._lines,P=this._wordenize.bind(this),G=0,le="",Te=0,ke=[];return{*[Symbol.iterator](){while(!0)if(Te<ke.length){let Ge=le.substring(ke[Te].start,ke[Te].end);Te+=1,yield Ge}else if(G<E.length)le=E[G],ke=P(le,d),Te=0,G+=1;else break}}}getLineWords(d,E){let P=this._lines[d-1],G=this._wordenize(P,E),le=[];for(let Te of G)le.push({word:P.substring(Te.start,Te.end),startColumn:Te.start+1,endColumn:Te.end+1});return le}_wordenize(d,E){let P=[],G;E.lastIndex=0;while(G=E.exec(d)){if(G[0].length===0)break;P.push({start:G.index,end:G.index+G[0].length})}return P}getValueInRange(d){if(d=this._validateRange(d),d.startLineNumber===d.endLineNumber)return this._lines[d.startLineNumber-1].substring(d.startColumn-1,d.endColumn-1);let E=this._eol,P=d.startLineNumber-1,G=d.endLineNumber-1,le=[];le.push(this._lines[P].substring(d.startColumn-1));for(let Te=P+1;Te<G;Te++)le.push(this._lines[Te]);return le.push(this._lines[G].substring(0,d.endColumn-1)),le.join(E)}offsetAt(d){return d=this._validatePosition(d),this._ensureLineStarts(),this._lineStarts.getPrefixSum(d.lineNumber-2)+(d.column-1)}positionAt(d){d=Math.floor(d),d=Math.max(0,d),this._ensureLineStarts();let E=this._lineStarts.getIndexOf(d),P=this._lines[E.index].length;return{lineNumber:1+E.index,column:1+Math.min(E.remainder,P)}}_validateRange(d){let E=this._validatePosition({lineNumber:d.startLineNumber,column:d.startColumn}),P=this._validatePosition({lineNumber:d.endLineNumber,column:d.endColumn});if(E.lineNumber!==d.startLineNumber||E.column!==d.startColumn||P.lineNumber!==d.endLineNumber||P.column!==d.endColumn)return{startLineNumber:E.lineNumber,startColumn:E.column,endLineNumber:P.lineNumber,endColumn:P.column};return d}_validatePosition(d){if(!ws.isIPosition(d))throw Error("bad position");let{lineNumber:E,column:P}=d,G=!1;if(E<1)E=1,P=1,G=!0;else if(E>this._lines.length)E=this._lines.length,P=this._lines[E-1].length+1,G=!0;else{let le=this._lines[E-1].length+1;if(P<1)P=1,G=!0;else if(P>le)P=le,G=!0}if(!G)return d;else return{lineNumber:E,column:P}}}class F8{constructor(d=null){this._foreignModule=d,this._requestHandlerBrand=void 0,this._workerTextModelSyncServer=new jve}dispose(){}async $ping(){return"pong"}_getModel(d){return this._workerTextModelSyncServer.getModel(d)}getModels(){return this._workerTextModelSyncServer.getModels()}$acceptNewModel(d){this._workerTextModelSyncServer.$acceptNewModel(d)}$acceptModelChanged(d,E){this._workerTextModelSyncServer.$acceptModelChanged(d,E)}$acceptRemovedModel(d){this._workerTextModelSyncServer.$acceptRemovedModel(d)}async $computeUnicodeHighlights(d,E,P){let G=this._getModel(d);if(!G)return{ranges:[],hasMore:!1,ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0};return yve.computeUnicodeHighlights(G,E,P)}async $findSectionHeaders(d,E){let P=this._getModel(d);if(!P)return[];return C9e(P,E)}async $computeDiff(d,E,P,G){let le=this._getModel(d),Te=this._getModel(E);if(!le||!Te)return null;let ke=await g0t(G);return F8.computeDiff(le,Te,P,ke)}static computeDiff(d,E,P,G){let le=d.getLinesContent(),Te=E.getLinesContent(),ke=G.computeDiff(le,Te,P),Ge=ke.changes.length>0?!1:this._modelsAreIdentical(d,E);function ae(Mt){return Mt.map((He)=>[He.original.startLineNumber,He.original.endLineNumberExclusive,He.modified.startLineNumber,He.modified.endLineNumberExclusive,He.innerChanges?.map((nt)=>[nt.originalRange.startLineNumber,nt.originalRange.startColumn,nt.originalRange.endLineNumber,nt.originalRange.endColumn,nt.modifiedRange.startLineNumber,nt.modifiedRange.startColumn,nt.modifiedRange.endLineNumber,nt.modifiedRange.endColumn])])}return{identical:Ge,quitEarly:ke.hitTimeout,changes:ae(ke.changes),moves:ke.moves.map((Mt)=>[Mt.lineRangeMapping.original.startLineNumber,Mt.lineRangeMapping.original.endLineNumberExclusive,Mt.lineRangeMapping.modified.startLineNumber,Mt.lineRangeMapping.modified.endLineNumberExclusive,ae(Mt.changes)])}}static _modelsAreIdentical(d,E){let P=d.getLineCount(),G=E.getLineCount();if(P!==G)return!1;for(let le=1;le<=P;le++){let Te=d.getLineContent(le),ke=E.getLineContent(le);if(Te!==ke)return!1}return!0}static{this._diffLimit=1e5}async $computeMoreMinimalEdits(d,E,P){let G=this._getModel(d);if(!G)return E;let le=[],Te=void 0;E=E.slice(0).sort((Ge,ae)=>{if(Ge.range&&ae.range)return jo.compareRangesUsingStarts(Ge.range,ae.range);let Mt=Ge.range?0:1,He=ae.range?0:1;return Mt-He});let ke=0;for(let Ge=1;Ge<E.length;Ge++)if(jo.getEndPosition(E[ke].range).equals(jo.getStartPosition(E[Ge].range)))E[ke].range=jo.fromPositions(jo.getStartPosition(E[ke].range),jo.getEndPosition(E[Ge].range)),E[ke].text+=E[Ge].text;else ke++,E[ke]=E[Ge];E.length=ke+1;for(let{range:Ge,text:ae,eol:Mt}of E){if(typeof Mt==="number")Te=Mt;if(jo.isEmpty(Ge)&&!ae)continue;let He=G.getValueInRange(Ge);if(ae=ae.replace(/\r\n|\n|\r/g,G.eol),He===ae)continue;if(Math.max(ae.length,He.length)>F8._diffLimit){le.push({range:Ge,text:ae});continue}let nt=o7e(He,ae,P),nr=G.offsetAt(jo.lift(Ge).getStartPosition());for(let Mn of nt){let rr=G.positionAt(nr+Mn.originalStart),cr=G.positionAt(nr+Mn.originalStart+Mn.originalLength),Ji={text:ae.substr(Mn.modifiedStart,Mn.modifiedLength),range:{startLineNumber:rr.lineNumber,startColumn:rr.column,endLineNumber:cr.lineNumber,endColumn:cr.column}};if(G.getValueInRange(Ji.range)!==Ji.text)le.push(Ji)}}if(typeof Te==="number")le.push({eol:Te,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}});return le}async $computeLinks(d){let E=this._getModel(d);if(!E)return null;return l7e(E)}async $computeDefaultDocumentColors(d){let E=this._getModel(d);if(!E)return null;return R9e(E)}static{this._suggestionsLimit=1e4}async $textualSuggest(d,E,P,G){let le=new C8,Te=new RegExp(P,G),ke=new Set;e:for(let Ge of d){let ae=this._getModel(Ge);if(!ae)continue;for(let Mt of ae.words(Te)){if(Mt===E||!isNaN(Number(Mt)))continue;if(ke.add(Mt),ke.size>F8._suggestionsLimit)break e}}return{words:Array.from(ke),duration:le.elapsed()}}async $computeWordRanges(d,E,P,G){let le=this._getModel(d);if(!le)return Object.create(null);let Te=new RegExp(P,G),ke=Object.create(null);for(let Ge=E.startLineNumber;Ge<E.endLineNumber;Ge++){let ae=le.getLineWords(Ge,Te);for(let Mt of ae){if(!isNaN(Number(Mt.word)))continue;let He=ke[Mt.word];if(!He)He=[],ke[Mt.word]=He;He.push({startLineNumber:Ge,startColumn:Mt.startColumn,endLineNumber:Ge,endColumn:Mt.endColumn})}}return ke}async $navigateValueSet(d,E,P,G,le){let Te=this._getModel(d);if(!Te)return null;let ke=new RegExp(G,le);if(E.startColumn===E.endColumn)E={startLineNumber:E.startLineNumber,startColumn:E.startColumn,endLineNumber:E.endLineNumber,endColumn:E.endColumn+1};let Ge=Te.getValueInRange(E),ae=Te.getWordAtPosition({lineNumber:E.startLineNumber,column:E.startColumn},ke);if(!ae)return null;let Mt=Te.getValueInRange(ae);return hQ.INSTANCE.navigateValueSet(E,Ge,ae,Mt,P)}$fmr(d,E){if(!this._foreignModule||typeof this._foreignModule[d]!=="function")return Promise.reject(Error("Missing requestHandler or method: "+d));try{return Promise.resolve(this._foreignModule[d].apply(this._foreignModule,E))}catch(P){return Promise.reject(P)}}}if(typeof importScripts==="function")globalThis.monaco=R5e();function g0t(d){switch(d){case"legacy":return Mz.getLegacy();case"advanced":return Mz.getDefault();case"advanced-external":return Mz.getAdvancedExternal();case"advanced-wasm":return Mz.getAdvancedWasm()}}class wz{static{this.CHANNEL_NAME="editorWorkerHost"}static getChannel(d){return d.getChannel(wz.CHANNEL_NAME)}static setChannel(d,E){d.setChannel(wz.CHANNEL_NAME,E)}}function w9e(d){let E,P=QFe((G)=>{let le=wz.getChannel(G),ke={host:new Proxy({},{get(Ge,ae,Mt){if(ae==="then")return;if(typeof ae!=="string")throw Error("Not supported");return(...He)=>le.$fhr(ae,He)}}),getMirrorModels:()=>P.requestHandler.getModels()};return E=d(ke),new F8(E)});return E}var y0t=!1;function k9e(d){y0t=!0,self.onmessage=(E)=>{w9e((P)=>d(P,E.data))}}var MQ={};Jvt(MQ,{EndOfLineState:()=>S0t,IndentStyle:()=>A0t,ScriptKind:()=>vN,ScriptTarget:()=>I0t,TokenClass:()=>x0t,createClassifier:()=>b0t,createLanguageService:()=>Uve,displayPartsToString:()=>T0t,flattenDiagnosticMessageText:()=>E0t,typescript:()=>Hve});var v0t=void 0;/*! *****************************************************************************
|
|
30
|
+
`)+1,kn=He.index-ho+1,Pn=rr[rr.length-1],Qo=cr===1?kn+He[0].length:Pn.length+1,Zo={startLineNumber:Mn,startColumn:kn,endLineNumber:Ji,endColumn:Qo},pa=(He.groups??{}).label??"",wn=((He.groups??{}).separator??"")!=="",co={range:Zo,text:pa,hasSeparatorLine:wn,shouldBeInComments:!0};if(co.text||co.hasSeparatorLine){if(P.length===0||P[P.length-1].range.endLineNumber<co.range.startLineNumber)P.push(co)}Te.lastIndex=He.index+He[0].length}}return P}function m0t(d){d=d.trim();let E=d.startsWith("-");return d=d.replace(d0t,""),{text:d,hasSeparatorLine:E}}var h0t=Symbol("MicrotaskDelay");var _0t,zve;(function(){let d=globalThis;if(typeof d.requestIdleCallback!=="function"||typeof d.cancelIdleCallback!=="function")zve=(E,P,G)=>{RFe(()=>{if(le)return;let Te=Date.now()+15;P(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,Te-Date.now())}}))});let le=!1;return{dispose(){if(le)return;le=!0}}};else zve=(E,P,G)=>{let le=E.requestIdleCallback(P,typeof G==="number"?{timeout:G}:void 0),Te=!1;return{dispose(){if(Te)return;Te=!0,E.cancelIdleCallback(le)}}};_0t=(E,P)=>zve(globalThis,E,P)})();class Bve{get isRejected(){return this.outcome?.outcome===1}get isSettled(){return!!this.outcome}constructor(){this.p=new Promise((d,E)=>{this.completeCallback=d,this.errorCallback=E})}complete(d){if(this.isSettled)return Promise.resolve();return new Promise((E)=>{this.completeCallback(d),this.outcome={outcome:0,value:d},E()})}error(d){if(this.isSettled)return Promise.resolve();return new Promise((E)=>{this.errorCallback(d),this.outcome={outcome:1,value:d},E()})}cancel(){return this.error(new eQ)}}var N9e;(function(d){async function E(G){let le=void 0,Te=await Promise.all(G.map((ke)=>ke.then((Ge)=>Ge,(Ge)=>{if(!le)le=Ge;return})));if(typeof le<"u")throw le;return Te}d.settled=E;function P(G){return new Promise(async(le,Te)=>{try{await G(le,Te)}catch(ke){Te(ke)}})}d.withAsyncBody=P})(N9e||(N9e={}));class M9e{constructor(){this._unsatisfiedConsumers=[],this._unconsumedValues=[]}get hasFinalValue(){return!!this._finalValue}produce(d){if(this._ensureNoFinalValue(),this._unsatisfiedConsumers.length>0){let E=this._unsatisfiedConsumers.shift();this._resolveOrRejectDeferred(E,d)}else this._unconsumedValues.push(d)}produceFinal(d){this._ensureNoFinalValue(),this._finalValue=d;for(let E of this._unsatisfiedConsumers)this._resolveOrRejectDeferred(E,d);this._unsatisfiedConsumers.length=0}_ensureNoFinalValue(){if(this._finalValue)throw new Lu("ProducerConsumer: cannot produce after final value has been set")}_resolveOrRejectDeferred(d,E){if(E.ok)d.complete(E.value);else d.error(E.error)}consume(){if(this._unconsumedValues.length>0||this._finalValue){let d=this._unconsumedValues.length>0?this._unconsumedValues.shift():this._finalValue;if(d.ok)return Promise.resolve(d.value);else return Promise.reject(d.error)}else{let d=new Bve;return this._unsatisfiedConsumers.push(d),d.p}}}class ib{constructor(d,E){this._onReturn=E,this._producerConsumer=new M9e,this._iterator={next:()=>this._producerConsumer.consume(),return:()=>(this._onReturn?.(),Promise.resolve({done:!0,value:void 0})),throw:async(P)=>(this._finishError(P),{done:!0,value:void 0})},queueMicrotask(async()=>{let P=d({emitOne:(G)=>this._producerConsumer.produce({ok:!0,value:{done:!1,value:G}}),emitMany:(G)=>{for(let le of G)this._producerConsumer.produce({ok:!0,value:{done:!1,value:le}})},reject:(G)=>this._finishError(G)});if(!this._producerConsumer.hasFinalValue)try{await P,this._finishOk()}catch(G){this._finishError(G)}})}static fromArray(d){return new ib((E)=>{E.emitMany(d)})}static fromPromise(d){return new ib(async(E)=>{E.emitMany(await d)})}static fromPromisesResolveOrder(d){return new ib(async(E)=>{await Promise.all(d.map(async(P)=>E.emitOne(await P)))})}static merge(d){return new ib(async(E)=>{await Promise.all(d.map(async(P)=>{for await(let G of P)E.emitOne(G)}))})}static{this.EMPTY=ib.fromArray([])}static map(d,E){return new ib(async(P)=>{for await(let G of d)P.emitOne(E(G))})}static tee(d){let E,P,G=new Bve,le=async()=>{if(!E||!P)return;try{for await(let Ge of d)E.emitOne(Ge),P.emitOne(Ge)}catch(Ge){E.reject(Ge),P.reject(Ge)}finally{G.complete()}},Te=new ib(async(Ge)=>(E=Ge,le(),G.p)),ke=new ib(async(Ge)=>(P=Ge,le(),G.p));return[Te,ke]}map(d){return ib.map(this,d)}static coalesce(d){return ib.filter(d,(E)=>!!E)}coalesce(){return ib.coalesce(this)}static filter(d,E){return new ib(async(P)=>{for await(let G of d)if(E(G))P.emitOne(G)})}filter(d){return ib.filter(this,d)}_finishOk(){if(!this._producerConsumer.hasFinalValue)this._producerConsumer.produceFinal({ok:!0,value:{done:!0,value:void 0}})}_finishError(d){if(!this._producerConsumer.hasFinalValue)this._producerConsumer.produceFinal({ok:!1,error:d})}[Symbol.asyncIterator](){return this._iterator}}class Gve{constructor(d){this.values=d,this.prefixSum=new Uint32Array(d.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(d,E){d=lL(d);let P=this.values,G=this.prefixSum,le=E.length;if(le===0)return!1;if(this.values=new Uint32Array(P.length+le),this.values.set(P.subarray(0,d),0),this.values.set(P.subarray(d),d+le),this.values.set(E,d),d-1<this.prefixSumValidIndex[0])this.prefixSumValidIndex[0]=d-1;if(this.prefixSum=new Uint32Array(this.values.length),this.prefixSumValidIndex[0]>=0)this.prefixSum.set(G.subarray(0,this.prefixSumValidIndex[0]+1));return!0}setValue(d,E){if(d=lL(d),E=lL(E),this.values[d]===E)return!1;if(this.values[d]=E,d-1<this.prefixSumValidIndex[0])this.prefixSumValidIndex[0]=d-1;return!0}removeValues(d,E){d=lL(d),E=lL(E);let P=this.values,G=this.prefixSum;if(d>=P.length)return!1;let le=P.length-d;if(E>=le)E=le;if(E===0)return!1;if(this.values=new Uint32Array(P.length-E),this.values.set(P.subarray(0,d),0),this.values.set(P.subarray(d+E),d),this.prefixSum=new Uint32Array(this.values.length),d-1<this.prefixSumValidIndex[0])this.prefixSumValidIndex[0]=d-1;if(this.prefixSumValidIndex[0]>=0)this.prefixSum.set(G.subarray(0,this.prefixSumValidIndex[0]+1));return!0}getTotalSum(){if(this.values.length===0)return 0;return this._getPrefixSum(this.values.length-1)}getPrefixSum(d){if(d<0)return 0;return d=lL(d),this._getPrefixSum(d)}_getPrefixSum(d){if(d<=this.prefixSumValidIndex[0])return this.prefixSum[d];let E=this.prefixSumValidIndex[0]+1;if(E===0)this.prefixSum[0]=this.values[0],E++;if(d>=this.values.length)d=this.values.length-1;for(let P=E;P<=d;P++)this.prefixSum[P]=this.prefixSum[P-1]+this.values[P];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],d),this.prefixSum[d]}getIndexOf(d){d=Math.floor(d),this.getTotalSum();let E=0,P=this.values.length-1,G=0,le=0,Te=0;while(E<=P)if(G=E+(P-E)/2|0,le=this.prefixSum[G],Te=le-this.values[G],d<Te)P=G-1;else if(d>=le)E=G+1;else break;return new P9e(G,d-Te)}}class P9e{constructor(d,E){this.index=d,this.remainder=E,this._prefixSumIndexOfResultBrand=void 0,this.index=d,this.remainder=E}}class Vve{constructor(d,E,P,G){this._uri=d,this._lines=E,this._eol=P,this._versionId=G,this._lineStarts=null,this._cachedTextValue=null}dispose(){this._lines.length=0}get version(){return this._versionId}getText(){if(this._cachedTextValue===null)this._cachedTextValue=this._lines.join(this._eol);return this._cachedTextValue}onEvents(d){if(d.eol&&d.eol!==this._eol)this._eol=d.eol,this._lineStarts=null;let E=d.changes;for(let P of E)this._acceptDeleteRange(P.range),this._acceptInsertText(new ws(P.range.startLineNumber,P.range.startColumn),P.text);this._versionId=d.versionId,this._cachedTextValue=null}_ensureLineStarts(){if(!this._lineStarts){let d=this._eol.length,E=this._lines.length,P=new Uint32Array(E);for(let G=0;G<E;G++)P[G]=this._lines[G].length+d;this._lineStarts=new Gve(P)}}_setLineText(d,E){if(this._lines[d]=E,this._lineStarts)this._lineStarts.setValue(d,this._lines[d].length+this._eol.length)}_acceptDeleteRange(d){if(d.startLineNumber===d.endLineNumber){if(d.startColumn===d.endColumn)return;this._setLineText(d.startLineNumber-1,this._lines[d.startLineNumber-1].substring(0,d.startColumn-1)+this._lines[d.startLineNumber-1].substring(d.endColumn-1));return}if(this._setLineText(d.startLineNumber-1,this._lines[d.startLineNumber-1].substring(0,d.startColumn-1)+this._lines[d.endLineNumber-1].substring(d.endColumn-1)),this._lines.splice(d.startLineNumber,d.endLineNumber-d.startLineNumber),this._lineStarts)this._lineStarts.removeValues(d.startLineNumber,d.endLineNumber-d.startLineNumber)}_acceptInsertText(d,E){if(E.length===0)return;let P=zFe(E);if(P.length===1){this._setLineText(d.lineNumber-1,this._lines[d.lineNumber-1].substring(0,d.column-1)+P[0]+this._lines[d.lineNumber-1].substring(d.column-1));return}P[P.length-1]+=this._lines[d.lineNumber-1].substring(d.column-1),this._setLineText(d.lineNumber-1,this._lines[d.lineNumber-1].substring(0,d.column-1)+P[0]);let G=new Uint32Array(P.length-1);for(let le=1;le<P.length;le++)this._lines.splice(d.lineNumber+le-1,0,P[le]),G[le-1]=P[le].length+this._eol.length;if(this._lineStarts)this._lineStarts.insertValues(d.lineNumber,G)}}class jve{constructor(){this._models=Object.create(null)}getModel(d){return this._models[d]}getModels(){let d=[];return Object.keys(this._models).forEach((E)=>d.push(this._models[E])),d}$acceptNewModel(d){this._models[d.url]=new L9e(pg.parse(d.url),d.lines,d.EOL,d.versionId)}$acceptModelChanged(d,E){if(!this._models[d])return;this._models[d].onEvents(E)}$acceptRemovedModel(d){if(!this._models[d])return;delete this._models[d]}}class L9e extends Vve{get uri(){return this._uri}get eol(){return this._eol}getValue(){return this.getText()}findMatches(d){let E=[];for(let P=0;P<this._lines.length;P++){let G=this._lines[P],le=this.offsetAt(new ws(P+1,1)),Te=G.matchAll(d);for(let ke of Te){if(ke.index||ke.index===0)ke.index=ke.index+le;E.push(ke)}}return E}getLinesContent(){return this._lines.slice(0)}getLineCount(){return this._lines.length}getLineContent(d){return this._lines[d-1]}getWordAtPosition(d,E){let P=Tz(d.column,_ve(E),this._lines[d.lineNumber-1],0);if(P)return new jo(d.lineNumber,P.startColumn,d.lineNumber,P.endColumn);return null}words(d){let E=this._lines,P=this._wordenize.bind(this),G=0,le="",Te=0,ke=[];return{*[Symbol.iterator](){while(!0)if(Te<ke.length){let Ge=le.substring(ke[Te].start,ke[Te].end);Te+=1,yield Ge}else if(G<E.length)le=E[G],ke=P(le,d),Te=0,G+=1;else break}}}getLineWords(d,E){let P=this._lines[d-1],G=this._wordenize(P,E),le=[];for(let Te of G)le.push({word:P.substring(Te.start,Te.end),startColumn:Te.start+1,endColumn:Te.end+1});return le}_wordenize(d,E){let P=[],G;E.lastIndex=0;while(G=E.exec(d)){if(G[0].length===0)break;P.push({start:G.index,end:G.index+G[0].length})}return P}getValueInRange(d){if(d=this._validateRange(d),d.startLineNumber===d.endLineNumber)return this._lines[d.startLineNumber-1].substring(d.startColumn-1,d.endColumn-1);let E=this._eol,P=d.startLineNumber-1,G=d.endLineNumber-1,le=[];le.push(this._lines[P].substring(d.startColumn-1));for(let Te=P+1;Te<G;Te++)le.push(this._lines[Te]);return le.push(this._lines[G].substring(0,d.endColumn-1)),le.join(E)}offsetAt(d){return d=this._validatePosition(d),this._ensureLineStarts(),this._lineStarts.getPrefixSum(d.lineNumber-2)+(d.column-1)}positionAt(d){d=Math.floor(d),d=Math.max(0,d),this._ensureLineStarts();let E=this._lineStarts.getIndexOf(d),P=this._lines[E.index].length;return{lineNumber:1+E.index,column:1+Math.min(E.remainder,P)}}_validateRange(d){let E=this._validatePosition({lineNumber:d.startLineNumber,column:d.startColumn}),P=this._validatePosition({lineNumber:d.endLineNumber,column:d.endColumn});if(E.lineNumber!==d.startLineNumber||E.column!==d.startColumn||P.lineNumber!==d.endLineNumber||P.column!==d.endColumn)return{startLineNumber:E.lineNumber,startColumn:E.column,endLineNumber:P.lineNumber,endColumn:P.column};return d}_validatePosition(d){if(!ws.isIPosition(d))throw Error("bad position");let{lineNumber:E,column:P}=d,G=!1;if(E<1)E=1,P=1,G=!0;else if(E>this._lines.length)E=this._lines.length,P=this._lines[E-1].length+1,G=!0;else{let le=this._lines[E-1].length+1;if(P<1)P=1,G=!0;else if(P>le)P=le,G=!0}if(!G)return d;else return{lineNumber:E,column:P}}}class F8{constructor(d=null){this._foreignModule=d,this._requestHandlerBrand=void 0,this._workerTextModelSyncServer=new jve}dispose(){}async $ping(){return"pong"}_getModel(d){return this._workerTextModelSyncServer.getModel(d)}getModels(){return this._workerTextModelSyncServer.getModels()}$acceptNewModel(d){this._workerTextModelSyncServer.$acceptNewModel(d)}$acceptModelChanged(d,E){this._workerTextModelSyncServer.$acceptModelChanged(d,E)}$acceptRemovedModel(d){this._workerTextModelSyncServer.$acceptRemovedModel(d)}async $computeUnicodeHighlights(d,E,P){let G=this._getModel(d);if(!G)return{ranges:[],hasMore:!1,ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0};return yve.computeUnicodeHighlights(G,E,P)}async $findSectionHeaders(d,E){let P=this._getModel(d);if(!P)return[];return C9e(P,E)}async $computeDiff(d,E,P,G){let le=this._getModel(d),Te=this._getModel(E);if(!le||!Te)return null;let ke=await g0t(G);return F8.computeDiff(le,Te,P,ke)}static computeDiff(d,E,P,G){let le=d.getLinesContent(),Te=E.getLinesContent(),ke=G.computeDiff(le,Te,P),Ge=ke.changes.length>0?!1:this._modelsAreIdentical(d,E);function ae(Mt){return Mt.map((He)=>[He.original.startLineNumber,He.original.endLineNumberExclusive,He.modified.startLineNumber,He.modified.endLineNumberExclusive,He.innerChanges?.map((nt)=>[nt.originalRange.startLineNumber,nt.originalRange.startColumn,nt.originalRange.endLineNumber,nt.originalRange.endColumn,nt.modifiedRange.startLineNumber,nt.modifiedRange.startColumn,nt.modifiedRange.endLineNumber,nt.modifiedRange.endColumn])])}return{identical:Ge,quitEarly:ke.hitTimeout,changes:ae(ke.changes),moves:ke.moves.map((Mt)=>[Mt.lineRangeMapping.original.startLineNumber,Mt.lineRangeMapping.original.endLineNumberExclusive,Mt.lineRangeMapping.modified.startLineNumber,Mt.lineRangeMapping.modified.endLineNumberExclusive,ae(Mt.changes)])}}static _modelsAreIdentical(d,E){let P=d.getLineCount(),G=E.getLineCount();if(P!==G)return!1;for(let le=1;le<=P;le++){let Te=d.getLineContent(le),ke=E.getLineContent(le);if(Te!==ke)return!1}return!0}static{this._diffLimit=1e5}async $computeMoreMinimalEdits(d,E,P){let G=this._getModel(d);if(!G)return E;let le=[],Te=void 0;E=E.slice(0).sort((Ge,ae)=>{if(Ge.range&&ae.range)return jo.compareRangesUsingStarts(Ge.range,ae.range);let Mt=Ge.range?0:1,He=ae.range?0:1;return Mt-He});let ke=0;for(let Ge=1;Ge<E.length;Ge++)if(jo.getEndPosition(E[ke].range).equals(jo.getStartPosition(E[Ge].range)))E[ke].range=jo.fromPositions(jo.getStartPosition(E[ke].range),jo.getEndPosition(E[Ge].range)),E[ke].text+=E[Ge].text;else ke++,E[ke]=E[Ge];E.length=ke+1;for(let{range:Ge,text:ae,eol:Mt}of E){if(typeof Mt==="number")Te=Mt;if(jo.isEmpty(Ge)&&!ae)continue;let He=G.getValueInRange(Ge);if(ae=ae.replace(/\r\n|\n|\r/g,G.eol),He===ae)continue;if(Math.max(ae.length,He.length)>F8._diffLimit){le.push({range:Ge,text:ae});continue}let nt=o7e(He,ae,P),nr=G.offsetAt(jo.lift(Ge).getStartPosition());for(let Mn of nt){let rr=G.positionAt(nr+Mn.originalStart),cr=G.positionAt(nr+Mn.originalStart+Mn.originalLength),Ji={text:ae.substr(Mn.modifiedStart,Mn.modifiedLength),range:{startLineNumber:rr.lineNumber,startColumn:rr.column,endLineNumber:cr.lineNumber,endColumn:cr.column}};if(G.getValueInRange(Ji.range)!==Ji.text)le.push(Ji)}}if(typeof Te==="number")le.push({eol:Te,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}});return le}async $computeLinks(d){let E=this._getModel(d);if(!E)return null;return l7e(E)}async $computeDefaultDocumentColors(d){let E=this._getModel(d);if(!E)return null;return R9e(E)}static{this._suggestionsLimit=1e4}async $textualSuggest(d,E,P,G){let le=new C8,Te=new RegExp(P,G),ke=new Set;e:for(let Ge of d){let ae=this._getModel(Ge);if(!ae)continue;for(let Mt of ae.words(Te)){if(Mt===E||!isNaN(Number(Mt)))continue;if(ke.add(Mt),ke.size>F8._suggestionsLimit)break e}}return{words:Array.from(ke),duration:le.elapsed()}}async $computeWordRanges(d,E,P,G){let le=this._getModel(d);if(!le)return Object.create(null);let Te=new RegExp(P,G),ke=Object.create(null);for(let Ge=E.startLineNumber;Ge<E.endLineNumber;Ge++){let ae=le.getLineWords(Ge,Te);for(let Mt of ae){if(!isNaN(Number(Mt.word)))continue;let He=ke[Mt.word];if(!He)He=[],ke[Mt.word]=He;He.push({startLineNumber:Ge,startColumn:Mt.startColumn,endLineNumber:Ge,endColumn:Mt.endColumn})}}return ke}async $navigateValueSet(d,E,P,G,le){let Te=this._getModel(d);if(!Te)return null;let ke=new RegExp(G,le);if(E.startColumn===E.endColumn)E={startLineNumber:E.startLineNumber,startColumn:E.startColumn,endLineNumber:E.endLineNumber,endColumn:E.endColumn+1};let Ge=Te.getValueInRange(E),ae=Te.getWordAtPosition({lineNumber:E.startLineNumber,column:E.startColumn},ke);if(!ae)return null;let Mt=Te.getValueInRange(ae);return hQ.INSTANCE.navigateValueSet(E,Ge,ae,Mt,P)}$fmr(d,E){if(!this._foreignModule||typeof this._foreignModule[d]!=="function")return Promise.reject(Error("Missing requestHandler or method: "+d));try{return Promise.resolve(this._foreignModule[d].apply(this._foreignModule,E))}catch(P){return Promise.reject(P)}}}if(typeof importScripts==="function")globalThis.monaco=R5e();function g0t(d){switch(d){case"legacy":return Mz.getLegacy();case"advanced":return Mz.getDefault();case"advanced-external":return Mz.getAdvancedExternal();case"advanced-wasm":return Mz.getAdvancedWasm()}}class wz{static{this.CHANNEL_NAME="editorWorkerHost"}static getChannel(d){return d.getChannel(wz.CHANNEL_NAME)}static setChannel(d,E){d.setChannel(wz.CHANNEL_NAME,E)}}function w9e(d){let E,P=QFe((G)=>{let le=wz.getChannel(G),ke={host:new Proxy({},{get(Ge,ae,Mt){if(ae==="then")return;if(typeof ae!=="string")throw Error("Not supported");return(...He)=>le.$fhr(ae,He)}}),getMirrorModels:()=>P.requestHandler.getModels()};return E=d(ke),new F8(E)});return E}var y0t=!1;function k9e(d){y0t=!0,self.onmessage=(E)=>{w9e((P)=>d(P,E.data))}}var v0t=void 0;/*! *****************************************************************************
|
|
31
31
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
32
32
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
33
33
|
this file except in compliance with the License. You may obtain a copy of the
|
|
@@ -67732,5 +67732,5 @@ interface WebGLRenderingContextOverloads {
|
|
|
67732
67732
|
}
|
|
67733
67733
|
`;function sh(d){if(typeof d==="string"){if(/^file:\/\/\//.test(d))return!!Gi[d.substr(8)];return!1}if(d.path.indexOf("/lib.")===0)return!!Gi[d.path.slice(1)];return!1}class PR{constructor(d,E){this._extraLibs=Object.create(null),this._languageService=Uve(this),this._ctx=d,this._compilerOptions=E.compilerOptions,this._extraLibs=E.extraLibs,this._inlayHintsOptions=E.inlayHintsOptions}getCompilationSettings(){return this._compilerOptions}getLanguageService(){return this._languageService}getExtraLibs(){return this._extraLibs}getScriptFileNames(){return this._ctx.getMirrorModels().map((P)=>P.uri).filter((P)=>!sh(P)).map((P)=>P.toString()).concat(Object.keys(this._extraLibs))}_getModel(d){let E=this._ctx.getMirrorModels();for(let P=0;P<E.length;P++){let G=E[P].uri;if(G.toString()===d||G.toString(!0)===d)return E[P]}return null}getScriptVersion(d){let E=this._getModel(d);if(E)return E.version.toString();else if(this.isDefaultLibFileName(d))return"1";else if(d in this._extraLibs)return String(this._extraLibs[d].version);return""}async getScriptText(d){return this._getScriptText(d)}_getScriptText(d){let E,P=this._getModel(d),G="lib."+d+".d.ts";if(P)E=P.getValue();else if(d in Gi)E=Gi[d];else if(G in Gi)E=Gi[G];else if(d in this._extraLibs)E=this._extraLibs[d].content;else return;return E}getScriptSnapshot(d){let E=this._getScriptText(d);if(E===void 0)return;return{getText:(P,G)=>E.substring(P,G),getLength:()=>E.length,getChangeRange:()=>{return}}}getScriptKind(d){switch(d.substr(d.lastIndexOf(".")+1)){case"ts":return vN.TS;case"tsx":return vN.TSX;case"js":return vN.JS;case"jsx":return vN.JSX;default:return this.getCompilationSettings().allowJs?vN.JS:vN.TS}}getCurrentDirectory(){return""}getDefaultLibFileName(d){switch(d.target){case 99:if("lib.esnext.full.d.ts"in Gi||"lib.esnext.full.d.ts"in this._extraLibs)return"lib.esnext.full.d.ts";case 7:case 6:case 5:case 4:case 3:case 2:default:let P=`lib.es${2013+(d.target||99)}.full.d.ts`;if(P in Gi||P in this._extraLibs)return P;return"lib.es6.d.ts";case 1:case 0:return"lib.d.ts"}}isDefaultLibFileName(d){return d===this.getDefaultLibFileName(this._compilerOptions)}readFile(d){return this._getScriptText(d)}fileExists(d){return this._getScriptText(d)!==void 0}async getLibFiles(){return Gi}static clearFiles(d){let E=[];for(let P of d){let G={...P};if(G.file=G.file?{fileName:G.file.fileName}:void 0,P.relatedInformation){G.relatedInformation=[];for(let le of P.relatedInformation){let Te={...le};Te.file=Te.file?{fileName:Te.file.fileName}:void 0,G.relatedInformation.push(Te)}}E.push(G)}return E}async getSyntacticDiagnostics(d){if(sh(d))return[];let E=this._languageService.getSyntacticDiagnostics(d);return PR.clearFiles(E)}async getSemanticDiagnostics(d){if(sh(d))return[];let E=this._languageService.getSemanticDiagnostics(d);return PR.clearFiles(E)}async getSuggestionDiagnostics(d){if(sh(d))return[];let E=this._languageService.getSuggestionDiagnostics(d);return PR.clearFiles(E)}async getCompilerOptionsDiagnostics(d){if(sh(d))return[];let E=this._languageService.getCompilerOptionsDiagnostics();return PR.clearFiles(E)}async getCompletionsAtPosition(d,E){if(sh(d))return;return this._languageService.getCompletionsAtPosition(d,E,void 0)}async getCompletionEntryDetails(d,E,P){return this._languageService.getCompletionEntryDetails(d,E,P,void 0,void 0,void 0,void 0)}async getSignatureHelpItems(d,E,P){if(sh(d))return;return this._languageService.getSignatureHelpItems(d,E,P)}async getQuickInfoAtPosition(d,E){if(sh(d))return;return this._languageService.getQuickInfoAtPosition(d,E)}async getDocumentHighlights(d,E,P){if(sh(d))return;return this._languageService.getDocumentHighlights(d,E,P)}async getDefinitionAtPosition(d,E){if(sh(d))return;return this._languageService.getDefinitionAtPosition(d,E)}async getReferencesAtPosition(d,E){if(sh(d))return;return this._languageService.getReferencesAtPosition(d,E)}async getNavigationTree(d){if(sh(d))return;return this._languageService.getNavigationTree(d)}async getFormattingEditsForDocument(d,E){if(sh(d))return[];return this._languageService.getFormattingEditsForDocument(d,E)}async getFormattingEditsForRange(d,E,P,G){if(sh(d))return[];return this._languageService.getFormattingEditsForRange(d,E,P,G)}async getFormattingEditsAfterKeystroke(d,E,P,G){if(sh(d))return[];return this._languageService.getFormattingEditsAfterKeystroke(d,E,P,G)}async findRenameLocations(d,E,P,G,le){if(sh(d))return;return this._languageService.findRenameLocations(d,E,P,G,le)}async getRenameInfo(d,E,P){if(sh(d))return{canRename:!1,localizedErrorMessage:"Cannot rename in lib file"};return this._languageService.getRenameInfo(d,E,P)}async getEmitOutput(d,E,P){if(sh(d))return{outputFiles:[],emitSkipped:!0};let G=this._languageService.getEmitOutput(d,E,P),le=G.diagnostics?PR.clearFiles(G.diagnostics):void 0;return{...G,diagnostics:le}}async getCodeFixesAtPosition(d,E,P,G,le){if(sh(d))return[];let Te={};try{return this._languageService.getCodeFixesAtPosition(d,E,P,G,le,Te)}catch{return[]}}async updateExtraLibs(d){this._extraLibs=d}async provideInlayHints(d,E,P){if(sh(d))return[];let G=this._inlayHintsOptions??{},le={start:E,length:P-E};try{return this._languageService.provideInlayHints(d,le,G)}catch{return[]}}}function O9e(d,E){let P=PR;if(E.customWorkerPath)if(typeof importScripts>"u")console.warn("Monaco is not using webworkers for background tasks, and that is needed to support the customWorkerPath flag");else{self.importScripts(E.customWorkerPath);let G=self.customTSWorkerFactory;if(!G)throw Error(`The script at ${E.customWorkerPath} does not add customTSWorkerFactory to self`);P=G(PR,MQ,Gi)}return new P(d,E)}globalThis.ts=Hve;self.onmessage=()=>{k9e((d,E)=>O9e(d,E))};export{PR as TypeScriptWorker,O9e as create,k9e as initialize,Gi as libFileMap,MQ as ts};
|
|
67734
67734
|
|
|
67735
|
-
//# debugId=
|
|
67735
|
+
//# debugId=450D788B255D9E5B64756E2164756E21
|
|
67736
67736
|
//# sourceMappingURL=ts.worker.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jxsuite/studio",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.6.0",
|
|
4
4
|
"description": "Jx Studio — visual builder for Jx documents",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"scripts": {
|
|
48
48
|
"build": "bun run scripts/build.ts",
|
|
49
49
|
"build:metafile": "bun build ./src/studio.ts --outdir dist-metafile --target browser --sourcemap=linked --metafile=metafile.json",
|
|
50
|
-
"gen:webdata": "bun run scripts/gen-webdata.
|
|
50
|
+
"gen:webdata": "bun run scripts/gen-webdata.ts",
|
|
51
51
|
"eval": "bun run evals/cli.ts",
|
|
52
52
|
"eval:headless": "bun run tests/harness/run-eval.ts",
|
|
53
53
|
"lint:styles": "bun run scripts/check-styles.ts",
|
|
@@ -60,16 +60,16 @@
|
|
|
60
60
|
"dependencies": {
|
|
61
61
|
"@atlaskit/pragmatic-drag-and-drop": "^4.0.0",
|
|
62
62
|
"@atlaskit/pragmatic-drag-and-drop-hitbox": "^3.0.0",
|
|
63
|
-
"@jxsuite/ai": "^0.
|
|
64
|
-
"@jxsuite/collab": "^0.11.
|
|
65
|
-
"@jxsuite/create": "^1.5.
|
|
66
|
-
"@jxsuite/formulas": "^0.0.
|
|
67
|
-
"@jxsuite/markup": "^1.0.
|
|
68
|
-
"@jxsuite/protocol": "^6.2.
|
|
69
|
-
"@jxsuite/runtime": "^6.0
|
|
70
|
-
"@jxsuite/schema": "^5.
|
|
71
|
-
"@jxsuite/site": "^2.
|
|
72
|
-
"@jxsuite/ui": "^0.10.
|
|
63
|
+
"@jxsuite/ai": "^0.43.1",
|
|
64
|
+
"@jxsuite/collab": "^0.11.7",
|
|
65
|
+
"@jxsuite/create": "^1.5.5",
|
|
66
|
+
"@jxsuite/formulas": "^0.0.29",
|
|
67
|
+
"@jxsuite/markup": "^1.0.5",
|
|
68
|
+
"@jxsuite/protocol": "^6.2.3",
|
|
69
|
+
"@jxsuite/runtime": "^6.2.0",
|
|
70
|
+
"@jxsuite/schema": "^5.3.0",
|
|
71
|
+
"@jxsuite/site": "^2.4.0",
|
|
72
|
+
"@jxsuite/ui": "^0.10.2",
|
|
73
73
|
"@vue/reactivity": "3.5.44",
|
|
74
74
|
"ajv": "^8.20.0",
|
|
75
75
|
"ajv-formats": "^3.0.1",
|
|
@@ -35,7 +35,7 @@ import type { LibraryGroup, LibraryRow } from "../surfaces/library-pane";
|
|
|
35
35
|
/** What a collection entry says about itself, once read: its title, status and date. */
|
|
36
36
|
export interface EntryFacts {
|
|
37
37
|
title: string;
|
|
38
|
-
/**
|
|
38
|
+
/** A `hold` rule's label, "Published", or "" for a collection with no rules. */
|
|
39
39
|
status: string;
|
|
40
40
|
/** `YYYY-MM-DD`, or "". */
|
|
41
41
|
date: string;
|
|
@@ -361,10 +361,10 @@ export function calendarView(
|
|
|
361
361
|
|
|
362
362
|
// ─── Board ───────────────────────────────────────────────────────────────────
|
|
363
363
|
|
|
364
|
-
/** The order a status Board's columns stand in:
|
|
365
|
-
const
|
|
364
|
+
/** The order a status Board's columns stand in: held work first, by name, then what is live. */
|
|
365
|
+
const STATUS_LAST = "Published";
|
|
366
366
|
|
|
367
|
-
/** Group entries by their status,
|
|
367
|
+
/** Group entries by their status: by name, with {@link STATUS_LAST} after every held state. */
|
|
368
368
|
function groupByStatus(
|
|
369
369
|
files: readonly LibraryFile[],
|
|
370
370
|
factsOf: EntryFactsOf,
|
|
@@ -379,10 +379,7 @@ function groupByStatus(
|
|
|
379
379
|
byStatus.set(status, [file]);
|
|
380
380
|
}
|
|
381
381
|
}
|
|
382
|
-
const rank = (status: string) =>
|
|
383
|
-
const at = STATUS_ORDER.indexOf(status);
|
|
384
|
-
return at === -1 ? STATUS_ORDER.length : at;
|
|
385
|
-
};
|
|
382
|
+
const rank = (status: string) => (status === STATUS_LAST ? 1 : 0);
|
|
386
383
|
return [...byStatus.entries()]
|
|
387
384
|
.map(([group, grouped]) => ({ files: grouped, group }))
|
|
388
385
|
.toSorted((a, b) => rank(a.group) - rank(b.group) || a.group.localeCompare(b.group));
|
|
@@ -421,10 +418,10 @@ function groupByField(
|
|
|
421
418
|
}
|
|
422
419
|
|
|
423
420
|
/**
|
|
424
|
-
* Board: one column per status when the collection's entries have one (
|
|
425
|
-
* per value of the field the collection is grouped by ({@link boardFieldOf}: a menu's
|
|
426
|
-
* else one per folder present; each capped and each stating its own total. A flat
|
|
427
|
-
* grouped by folder is one column, which says nothing, so a field is preferred to it.
|
|
421
|
+
* Board: one column per status when the collection's entries have one (a rule's label, Published),
|
|
422
|
+
* else one per value of the field the collection is grouped by ({@link boardFieldOf}: a menu's
|
|
423
|
+
* `course`), else one per folder present; each capped and each stating its own total. A flat
|
|
424
|
+
* collection grouped by folder is one column, which says nothing, so a field is preferred to it.
|
|
428
425
|
*
|
|
429
426
|
* @param factsOf What each entry says about itself.
|
|
430
427
|
* @param field The field to group by when the entries have no status.
|
|
@@ -80,6 +80,8 @@ import {
|
|
|
80
80
|
titleFieldOf,
|
|
81
81
|
} from "../content/entry-summaries";
|
|
82
82
|
import { entryCollection } from "../content/entry-model";
|
|
83
|
+
import { NOT_HELD, holdSwitch } from "../content/hold-state";
|
|
84
|
+
import type { HoldBearer } from "../content/hold-state";
|
|
83
85
|
import { isString } from "@jxsuite/schema/guards";
|
|
84
86
|
import type { ContentTypeSchema } from "@jxsuite/schema/types";
|
|
85
87
|
import { openEntry } from "../content/entry-open";
|
|
@@ -976,13 +978,12 @@ function entryFactsFor(collection: ContentCollection, layout: LibraryLayout): En
|
|
|
976
978
|
|
|
977
979
|
/**
|
|
978
980
|
* What each page says about itself in the Pages table: its name, as the Site panel gives it (Home,
|
|
979
|
-
* About, "Post page" for a collection's page)
|
|
981
|
+
* About, "Post page" for a collection's page) and its template.
|
|
980
982
|
*
|
|
981
|
-
* The name comes from the route, so it is there before any file is read; the template
|
|
982
|
-
*
|
|
983
|
-
*
|
|
984
|
-
*
|
|
985
|
-
* pages: Cards, Calendar and Board name a page by its route and read nothing.
|
|
983
|
+
* The name comes from the route, so it is there before any file is read; the template arrives with
|
|
984
|
+
* the page summaries. A page has no status: `hold` rules are written on a content type and a page
|
|
985
|
+
* belongs to none, so nothing in a build could act on one. Only the Table draws a template, so only
|
|
986
|
+
* the Table reads the pages: Cards, Calendar and Board name a page by its route and read nothing.
|
|
986
987
|
*/
|
|
987
988
|
function pageFactsFor(readPages: boolean): EntryFactsOf {
|
|
988
989
|
const paths = collectionEntryPaths(PAGES_COLLECTION);
|
|
@@ -990,7 +991,6 @@ function pageFactsFor(readPages: boolean): EntryFactsOf {
|
|
|
990
991
|
const declared = new Set(Object.keys(projectState?.projectConfig?.content ?? {}));
|
|
991
992
|
const fallback = defaultLayoutPath();
|
|
992
993
|
const { i18n } = resolveI18n(projectState?.projectConfig ?? {});
|
|
993
|
-
const anyDraft = [...(summaries?.values() ?? [])].some((page) => page.draft);
|
|
994
994
|
const byPath = new Map<string, EntryFacts>(
|
|
995
995
|
paths.map((path) => {
|
|
996
996
|
const summary = summaries?.get(path);
|
|
@@ -1000,7 +1000,7 @@ function pageFactsFor(readPages: boolean): EntryFactsOf {
|
|
|
1000
1000
|
path,
|
|
1001
1001
|
{
|
|
1002
1002
|
date: "",
|
|
1003
|
-
status:
|
|
1003
|
+
status: "",
|
|
1004
1004
|
template:
|
|
1005
1005
|
layout === undefined ? "" : layout === false ? "None" : templateDisplayName(layout),
|
|
1006
1006
|
title:
|
|
@@ -1028,11 +1028,15 @@ function collectionSchema(key: string): ContentTypeSchema | null {
|
|
|
1028
1028
|
}
|
|
1029
1029
|
|
|
1030
1030
|
/** The fields the Table names in a column of their own already: what an entry is called, its date. */
|
|
1031
|
-
function listedElsewhere(
|
|
1031
|
+
function listedElsewhere(
|
|
1032
|
+
schema: ContentTypeSchema | null,
|
|
1033
|
+
def?: HoldBearer | null,
|
|
1034
|
+
): ReadonlySet<string> {
|
|
1032
1035
|
const skip = new Set<string>();
|
|
1033
1036
|
const title = titleFieldOf(schema);
|
|
1034
1037
|
const date = declaredDateField(schema);
|
|
1035
|
-
|
|
1038
|
+
// The Status column already says what a hold switch says.
|
|
1039
|
+
for (const name of [title, date, holdSwitch(def)?.field ?? null]) {
|
|
1036
1040
|
if (name !== null) {
|
|
1037
1041
|
skip.add(name);
|
|
1038
1042
|
}
|
|
@@ -1065,10 +1069,10 @@ export interface FilterField {
|
|
|
1065
1069
|
}
|
|
1066
1070
|
|
|
1067
1071
|
/**
|
|
1068
|
-
* What the Filter narrows by: an entry's **status** where the collection has
|
|
1069
|
-
*
|
|
1070
|
-
*
|
|
1071
|
-
*
|
|
1072
|
+
* What the Filter narrows by: an entry's **status** where the collection has `hold` rules, else the
|
|
1073
|
+
* field its Board groups by (`boardFieldOf`: the first field with an `enum`, else the first whose
|
|
1074
|
+
* values repeat; a list field by each of its items). The same choice the Board makes, so the Filter
|
|
1075
|
+
* offers exactly the columns the Board draws. `null` when nothing groups the entries.
|
|
1072
1076
|
*/
|
|
1073
1077
|
export function filterFieldOf(
|
|
1074
1078
|
facts: readonly (EntryFacts | undefined)[],
|
|
@@ -1079,8 +1083,9 @@ export function filterFieldOf(
|
|
|
1079
1083
|
return {
|
|
1080
1084
|
matches: (entry, value) => (entry?.status ?? "") === value,
|
|
1081
1085
|
title: "Status",
|
|
1086
|
+
// Held work first, which is what someone filtering by status has come to find.
|
|
1082
1087
|
values: statuses.toSorted((a, b) =>
|
|
1083
|
-
a ===
|
|
1088
|
+
a === NOT_HELD ? 1 : b === NOT_HELD ? -1 : a.localeCompare(b),
|
|
1084
1089
|
),
|
|
1085
1090
|
};
|
|
1086
1091
|
}
|
|
@@ -1111,7 +1116,8 @@ function homeView(panel: ActiveLibraryPane | null, paneId: string): LibraryView
|
|
|
1111
1116
|
const factsOf = entryFactsFor(collection, layout);
|
|
1112
1117
|
const facts = all.map((file) => factsOf(file));
|
|
1113
1118
|
const schema = collection.kind === "collection" ? collectionSchema(collection.key) : null;
|
|
1114
|
-
const
|
|
1119
|
+
const def = collection.kind === "collection" ? entryCollection(collection.key)?.def : null;
|
|
1120
|
+
const fieldColumns = entryFieldColumns(schema, listedElsewhere(schema, def));
|
|
1115
1121
|
const boardField = boardFieldOf(fieldColumns, fieldEnums(schema), facts);
|
|
1116
1122
|
// Pages are listed by route; the Filter is a collection's, over what its entries say.
|
|
1117
1123
|
const filterField = collection.kind === "collection" ? filterFieldOf(facts, boardField) : null;
|
|
@@ -21,7 +21,6 @@ import { PAGES_COLLECTION, capitalise, humanName } from "../content/content-coll
|
|
|
21
21
|
import { fileToRoute } from "@jxsuite/site/routes";
|
|
22
22
|
import { libraryScanDirs, scanLibrary } from "./library-model";
|
|
23
23
|
import { routedPageExtensions } from "../format/format-host";
|
|
24
|
-
import { DRAFT_FIELD } from "../content/draft-state";
|
|
25
24
|
import { isString } from "@jxsuite/schema/guards";
|
|
26
25
|
import { collectionForFile } from "../content/collection-match";
|
|
27
26
|
import { fileRecords, recordKey } from "../content/file-records";
|
|
@@ -44,7 +43,7 @@ export const LIBRARY_READ_ONLY =
|
|
|
44
43
|
|
|
45
44
|
/** Which of an entry's own facts a collection's entries carry, so the Table draws a column for each. */
|
|
46
45
|
export interface EntryColumnFacts {
|
|
47
|
-
/** Some entry
|
|
46
|
+
/** Some entry states a status: the collection has `hold` rules. */
|
|
48
47
|
status: boolean;
|
|
49
48
|
/** Some entry is dated by a field of its own. */
|
|
50
49
|
date: boolean;
|
|
@@ -96,7 +95,7 @@ export function fieldTitle(name: string): string {
|
|
|
96
95
|
|
|
97
96
|
/**
|
|
98
97
|
* The schema fields a collection's Table draws, in declaration order: every scalar field except the
|
|
99
|
-
* ones the Table already names some other way (the title, the date, the
|
|
98
|
+
* ones the Table already names some other way (the title, the date, the hold switch) and the ones
|
|
100
99
|
* whose value is not text to read in a row (an image, a body, an object).
|
|
101
100
|
*
|
|
102
101
|
* @param schema The collection's schema.
|
|
@@ -108,7 +107,7 @@ export function entryFieldColumns(
|
|
|
108
107
|
): EntryFieldColumn[] {
|
|
109
108
|
return Object.entries(schema?.properties ?? {})
|
|
110
109
|
.filter(([name, field]) => {
|
|
111
|
-
if (skip.has(name)
|
|
110
|
+
if (skip.has(name)) {
|
|
112
111
|
return false;
|
|
113
112
|
}
|
|
114
113
|
if (
|
|
@@ -27,6 +27,7 @@ import { isFunction, isNonNullObject, isString } from "@jxsuite/schema/guards";
|
|
|
27
27
|
import { previewAssetSrcFor } from "../canvas/asset-refs";
|
|
28
28
|
import { projectState } from "../store";
|
|
29
29
|
import type { JxHeadEntry, ProjectConfig } from "@jxsuite/schema/types";
|
|
30
|
+
import { PROJECT_FILE_NAME } from "@jxsuite/schema/project-file";
|
|
30
31
|
|
|
31
32
|
/** The preview box, as a project sheet names the page's root and body inside a shadow root. */
|
|
32
33
|
const HOST_ROOTS = { body: ":host", root: ":host" };
|
|
@@ -93,7 +94,7 @@ export function headStylesheetHrefs(head: readonly JxHeadEntry[] | undefined): s
|
|
|
93
94
|
|
|
94
95
|
/** One linked stylesheet as a preview sheet, or null when it cannot be read. */
|
|
95
96
|
async function linkedSheet(href: string): Promise<CSSStyleSheet | null> {
|
|
96
|
-
const url = previewAssetSrcFor(href,
|
|
97
|
+
const url = previewAssetSrcFor(href, PROJECT_FILE_NAME);
|
|
97
98
|
try {
|
|
98
99
|
const response = await fetch(url);
|
|
99
100
|
if (!response.ok) {
|
|
@@ -42,7 +42,7 @@ import { assetContextFor, hostAssetDeclarations } from "./asset-refs";
|
|
|
42
42
|
import { collectionForFile } from "../content/collection-match";
|
|
43
43
|
import { writesEntryOnCanvas } from "../content/content-collections";
|
|
44
44
|
import { collectionPage, entryLayoutPath, entryLocale } from "../content/collection-pages";
|
|
45
|
-
import { pageContextFor } from "./canvas-page-context";
|
|
45
|
+
import { isPagePath, pageContextFor } from "./canvas-page-context";
|
|
46
46
|
import { loadExtensions } from "../format/format-host";
|
|
47
47
|
import { bakeRepeaterSources, extensionClassKeys, repeaterSourceKeys } from "./repeater-sources";
|
|
48
48
|
|
|
@@ -304,10 +304,7 @@ export async function resolveCanvasDocument(
|
|
|
304
304
|
: prepareForEditMode(stripEventHandlers(doc));
|
|
305
305
|
|
|
306
306
|
let layoutWrapped = false;
|
|
307
|
-
const isPage =
|
|
308
|
-
S.documentPath &&
|
|
309
|
-
projectState?.isSiteProject &&
|
|
310
|
-
(S.documentPath.startsWith("pages/") || S.documentPath.startsWith("./pages/"));
|
|
307
|
+
const isPage = S.documentPath && projectState?.isSiteProject && isPagePath(S.documentPath);
|
|
311
308
|
/* A collection entry written on the canvas is drawn the way a page is: inside a layout, with the
|
|
312
309
|
layout's nodes locked and the entry's own tree the editable region (studio.md §22.5). */
|
|
313
310
|
const isEntry =
|
|
@@ -50,6 +50,11 @@ export interface PageContextSource {
|
|
|
50
50
|
params?: Readonly<Record<string, string>>;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
+
/** Whether a project-relative path is one of a site's pages. */
|
|
54
|
+
export function isPagePath(documentPath: string): boolean {
|
|
55
|
+
return documentPath.startsWith("pages/") || documentPath.startsWith("./pages/");
|
|
56
|
+
}
|
|
57
|
+
|
|
53
58
|
/** The parameters `url` fills in `pattern`, by position: `/blog/:slug` and `/blog/a` → `{slug: a}`. */
|
|
54
59
|
export function routeParams(pattern: string, url: string): NonNullable<SiteRoute["_pathParams"]> {
|
|
55
60
|
const values = url.split("/");
|
|
@@ -175,8 +175,13 @@ export function initCanvasRender(ctx: CanvasRenderCtx) {
|
|
|
175
175
|
*/
|
|
176
176
|
function sourceLang(tab: Tab) {
|
|
177
177
|
const format = formatByName(tab.doc.sourceFormat);
|
|
178
|
+
if (!format) {
|
|
179
|
+
return "json";
|
|
180
|
+
}
|
|
178
181
|
// The essence: splitting the declared type would yield `markdown; variant=GFM` as a language id.
|
|
179
|
-
|
|
182
|
+
const fromType = mediaTypeEssence(format.mediaType)?.split("/").pop();
|
|
183
|
+
// `.jxn` has no media type to read a language from, and its path says everything it needs to.
|
|
184
|
+
return fromType ?? monacoLangForPath(tab.documentPath ?? "");
|
|
180
185
|
}
|
|
181
186
|
|
|
182
187
|
/**
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* preview is display-only and never the source of truth (patch-mid-drag safety).
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
import { parseJxPath } from "./path-mapping";
|
|
19
|
+
import { parseJxPath, serializeJxPath } from "./path-mapping";
|
|
20
20
|
import { displayTagName, isNonNullObject } from "@jxsuite/schema/guards";
|
|
21
21
|
import { rectOf, elementAtPoint } from "../utils/geometry";
|
|
22
22
|
import { getNodeAtPath, isAncestor, pathsEqual } from "../state";
|
|
@@ -161,6 +161,89 @@ export function resolveDropTarget(x: number, y: number, doc: Document): HTMLElem
|
|
|
161
161
|
return nearestPathEl(hit);
|
|
162
162
|
}
|
|
163
163
|
|
|
164
|
+
/**
|
|
165
|
+
* The drop for a cursor over blank canvas: a point under no addressable node and outside a layout's
|
|
166
|
+
* chrome.
|
|
167
|
+
*
|
|
168
|
+
* **The canvas around the content is part of the page** (§5.3). A short page fills the top of a
|
|
169
|
+
* frame whose remainder is the body, or the unstamped layout node its blocks are drawn into, and
|
|
170
|
+
* that blank space is exactly where an author drags a new block. The drop goes to the nearest edge
|
|
171
|
+
* of the page's own top-level blocks, so below the content it lands after the last one. Layout
|
|
172
|
+
* chrome (`data-jx-layout-region`, the site header and footer a page is drawn inside) is not the
|
|
173
|
+
* page, so a drop over it resolves to nothing, as a click there edits nothing.
|
|
174
|
+
*
|
|
175
|
+
* Two shapes reach here. Without a layout the root is an element (`data-jx-path="[]"`) and the root
|
|
176
|
+
* branch of {@link computeDropInstruction} already answers. Inside a layout the page root has no
|
|
177
|
+
* element of its own (its children are drawn into the layout's slot), so its blocks are found by
|
|
178
|
+
* their stamped paths, and each keeps its own path as the target, which a text child of the root
|
|
179
|
+
* would otherwise shift.
|
|
180
|
+
*/
|
|
181
|
+
export function resolveBlankCanvasDrop(
|
|
182
|
+
x: number,
|
|
183
|
+
y: number,
|
|
184
|
+
doc: Document,
|
|
185
|
+
shadowDoc: JxMutableNode,
|
|
186
|
+
src: DragSrcKind,
|
|
187
|
+
): DropPreview | null {
|
|
188
|
+
const hit = elementAtPoint(x, y, doc);
|
|
189
|
+
if (!hit || nearestPathEl(hit) || hit.closest("[data-jx-layout-region]")) {
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
const root = doc.querySelector<HTMLElement>(`[data-jx-path="${serializeJxPath([])}"]`);
|
|
193
|
+
if (root) {
|
|
194
|
+
return computeDropInstruction(root, y, shadowDoc, src);
|
|
195
|
+
}
|
|
196
|
+
const blocks = [...doc.querySelectorAll<HTMLElement>("[data-jx-path]")].filter(
|
|
197
|
+
(el) => parseJxPath(el.dataset.jxPath ?? "").length === 2,
|
|
198
|
+
);
|
|
199
|
+
const [first, ...rest] = blocks;
|
|
200
|
+
if (!first) {
|
|
201
|
+
return canDrop(src, [])
|
|
202
|
+
? { edge: "inside", instruction: "make-child", referenceRect: rectFor(hit), targetPath: [] }
|
|
203
|
+
: null;
|
|
204
|
+
}
|
|
205
|
+
return nearestBlockEdge(first, rest, y, src);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/** How far `cursorY` is from `block`, and whether its bottom edge is the nearer one. */
|
|
209
|
+
function blockEdge(block: HTMLElement, cursorY: number) {
|
|
210
|
+
const rect = rectFor(block);
|
|
211
|
+
const above = Math.abs(cursorY - rect.y);
|
|
212
|
+
const below = Math.abs(cursorY - (rect.y + rect.height));
|
|
213
|
+
return { below: below <= above, block, distance: Math.min(above, below) };
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* {@link nearestChildEdge} over blocks that carry their own paths, for a root with no element. The
|
|
218
|
+
* first block is passed apart from the rest because an empty page is the caller's to answer.
|
|
219
|
+
*/
|
|
220
|
+
function nearestBlockEdge(
|
|
221
|
+
first: HTMLElement,
|
|
222
|
+
rest: readonly HTMLElement[],
|
|
223
|
+
cursorY: number,
|
|
224
|
+
src: DragSrcKind,
|
|
225
|
+
): DropPreview | null {
|
|
226
|
+
let best = blockEdge(first, cursorY);
|
|
227
|
+
for (const block of rest) {
|
|
228
|
+
const edge = blockEdge(block, cursorY);
|
|
229
|
+
if (edge.distance < best.distance) {
|
|
230
|
+
best = edge;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
const targetPath = parseJxPath(best.block.dataset.jxPath ?? "");
|
|
234
|
+
if (!canDrop(src, targetPath)) {
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
return best.below
|
|
238
|
+
? {
|
|
239
|
+
edge: "bottom",
|
|
240
|
+
instruction: "reorder-below",
|
|
241
|
+
referenceRect: rectFor(best.block),
|
|
242
|
+
targetPath,
|
|
243
|
+
}
|
|
244
|
+
: { edge: "top", instruction: "reorder-above", referenceRect: rectFor(best.block), targetPath };
|
|
245
|
+
}
|
|
246
|
+
|
|
164
247
|
/**
|
|
165
248
|
* Compute the structural drop placement for a cursor over `targetEl`, PURE against iframe-realm
|
|
166
249
|
* rects.
|
|
@@ -24,6 +24,7 @@ import { parseJxPath, serializeJxPath } from "./path-mapping";
|
|
|
24
24
|
import {
|
|
25
25
|
AUTO_SCROLL_STEP,
|
|
26
26
|
computeDropInstruction,
|
|
27
|
+
resolveBlankCanvasDrop,
|
|
27
28
|
rectFor,
|
|
28
29
|
resolveDropTarget,
|
|
29
30
|
scrollDirection,
|
|
@@ -107,8 +108,9 @@ setNpmModuleResolver((specifier) => npmModuleUrl(specifier, location.href));
|
|
|
107
108
|
|
|
108
109
|
/**
|
|
109
110
|
* Resolve the drop placement for a forwarded cursor: point hit-test → nearest `[data-jx-path]` →
|
|
110
|
-
* pure {@link computeDropInstruction}
|
|
111
|
-
*
|
|
111
|
+
* pure {@link computeDropInstruction}, or, over blank canvas, {@link resolveBlankCanvasDrop}. Returns
|
|
112
|
+
* null when the cursor resolves to no droppable target (a layout's chrome). Shared by the
|
|
113
|
+
* `dragMove` (display-only preview) and `drop` (fresh, authoritative) handlers.
|
|
112
114
|
*/
|
|
113
115
|
function previewAt(
|
|
114
116
|
cursor: { x: number; y: number },
|
|
@@ -118,7 +120,7 @@ function previewAt(
|
|
|
118
120
|
) {
|
|
119
121
|
const targetEl = resolveDropTarget(cursor.x, cursor.y, doc);
|
|
120
122
|
if (!targetEl) {
|
|
121
|
-
return
|
|
123
|
+
return resolveBlankCanvasDrop(cursor.x, cursor.y, doc, shadowDoc, src);
|
|
122
124
|
}
|
|
123
125
|
return computeDropInstruction(targetEl, cursor.y, shadowDoc, src);
|
|
124
126
|
}
|
|
@@ -703,10 +705,11 @@ export function startCanvasIframe(opts: {
|
|
|
703
705
|
const doc = container.ownerDocument;
|
|
704
706
|
const targetEl = resolveDropTarget(cursor.x, cursor.y, doc);
|
|
705
707
|
const hit = targetEl ? fileDropHitFor(targetEl, shadowDoc) : null;
|
|
706
|
-
const preview =
|
|
707
|
-
|
|
708
|
+
const preview = shadowDoc
|
|
709
|
+
? targetEl
|
|
708
710
|
? computeDropInstruction(targetEl, cursor.y, shadowDoc, FILE_DRAG_SRC)
|
|
709
|
-
:
|
|
711
|
+
: resolveBlankCanvasDrop(cursor.x, cursor.y, doc, shadowDoc, FILE_DRAG_SRC)
|
|
712
|
+
: null;
|
|
710
713
|
if (kind === "fileDragOver") {
|
|
711
714
|
if (e.dataTransfer) {
|
|
712
715
|
e.dataTransfer.dropEffect = "copy";
|