diff options
| author | Hizbu Azka <hanifan.azka@gmail.com> | 2026-10-21 14:31:59 +0700 |
|---|---|---|
| committer | Hizbu Azka <hanifan.azka@gmail.com> | 2026-10-21 15:11:13 +0700 |
| commit | 976c0d950461ab884a9d107659d3ba103d8cb269 (patch) | |
| tree | e86016b3d1c966fb3c11f16c52b99f0de56a5b94 | |
| parent | 8ad5216903950b5e3785b3729068ca48bd5232e0 (diff) | |
selfhost cm, add dark theme
23 files changed, 803 insertions, 17 deletions
@@ -12,10 +12,11 @@ _site/ vendor/ # playwright -node_modules/ -/_e2e/test-results/ -/_e2e/playwright-report/ -/_e2e/blob-report/ -/_e2e/playwright/.cache/ -/_e2e/playwright/.auth/ +_tools/*/node_modules/ +_tools/cm-esbuild/dist/ +_tools/e2e/playwright-report/ +_tools/e2e/test-results/ +_tools/e2e/blob-report/ +_tools/e2e/playwright/.cache/ +_tools/e2e/playwright/.auth/ diff --git a/_includes/cm-importmap.html b/_includes/cm-importmap.html new file mode 100644 index 0000000..c0c7c99 --- /dev/null +++ b/_includes/cm-importmap.html @@ -0,0 +1,14 @@ +<link rel="modulepreload" href="{{ '/assets/cm/chunk-7PWEZHZB.js' | relative_url }}"> +<link rel="modulepreload" href="{{ '/assets/cm/chunk-I3OVNVKL.js' | relative_url }}"> +<link rel="modulepreload" href="{{ '/assets/cm/chunk-JULZPKSW.js' | relative_url }}"> +<script type="importmap"> +{ + "imports": { + "@codemirror/state": "{{ '/assets/cm/state.js' | relative_url }}?v=ea9398b90f", + "@codemirror/view": "{{ '/assets/cm/view.js' | relative_url }}?v=ea9398b90f", + "@codemirror/commands": "{{ '/assets/cm/commands.js' | relative_url }}?v=ea9398b90f", + "@codemirror/language": "{{ '/assets/cm/language.js' | relative_url }}?v=ea9398b90f", + "@uiw/codemirror-theme-github": "{{ '/assets/cm/theme.js' | relative_url }}?v=ea9398b90f" + } +} +</script> diff --git a/_posts/2026-10-17-regex.html b/_posts/2026-10-17-regex.html index b7e3855..b03779a 100644 --- a/_posts/2026-10-17-regex.html +++ b/_posts/2026-10-17-regex.html @@ -31,11 +31,23 @@ layout: post <style> :root { - --bg-color: #ffffff; --border-color: #d0d7de; - --text-color: #24292f; --tab-bg: #f6f8fa; --tab-active-bg: #ffffff; + --editor-bg: #ffffff; + --rename-bg: #ffffff; + --rename-fg: #000000; + } + + @media (prefers-color-scheme: dark) { + :root { + --border-color: #2f2821; + --tab-bg: #090705; + --tab-active-bg: #000000; + --editor-bg: #0d1117; + --rename-bg: #0d1117; + --rename-fg: #ffffff; + } } #loading { @@ -105,7 +117,8 @@ layout: post padding: 0 2px; border: 1px solid #0969da; outline: none; - background: #fff; + background: var(--rename-bg); + color: var(--rename-fg); } .tab-btn.active { background: var(--tab-active-bg); @@ -122,7 +135,7 @@ layout: post border-radius: 4px; } .tab-close:hover { - background: rgba(0, 0, 0, 0.1); + background: rgba(128, 128, 128, 0.25); color: var(--text-color); } .tab-add-btn { @@ -141,7 +154,7 @@ layout: post margin-bottom: 1rem; border: 1px solid var(--border-color); overflow: hidden; - background: #ffffff; + background: var(--editor-bg); } #cm6-editor { @@ -150,7 +163,7 @@ layout: post flex-direction: column; border: 1px solid var(--border-color); overflow: hidden; - background: #ffffff; + background: var(--editor-bg); } #regex-editor .cm-editor, @@ -180,11 +193,20 @@ layout: post </div> <div id="cm6-editor"></div> +{% include cm-importmap.html %} + <script type="module"> - import { EditorState, StateField, StateEffect, RangeSetBuilder } from 'https://esm.sh/@codemirror/state@6.7.6'; - import { EditorView, Decoration, keymap, lineNumbers, highlightActiveLineGutter, highlightSpecialChars, drawSelection, highlightActiveLine } from 'https://esm.sh/@codemirror/view@6.43.14'; - import { defaultKeymap, history, historyKeymap } from 'https://esm.sh/@codemirror/commands@6.11.1'; - import { syntaxHighlighting, defaultHighlightStyle, bracketMatching } from 'https://esm.sh/@codemirror/language@6.13.1'; + import { EditorState, StateField, StateEffect, RangeSetBuilder, Compartment } from '@codemirror/state'; + import { EditorView, Decoration, keymap, lineNumbers, highlightActiveLineGutter, highlightSpecialChars, drawSelection, highlightActiveLine } from '@codemirror/view'; + import { defaultKeymap, history, historyKeymap } from '@codemirror/commands'; + import { syntaxHighlighting, defaultHighlightStyle, bracketMatching } from '@codemirror/language'; + import { githubLight, githubDark } from "@uiw/codemirror-theme-github"; + + const darkQuery = window.matchMedia('(prefers-color-scheme: dark)'); + const themeFor = dark => dark ? githubDark : githubLight; + + const regexTheme = new Compartment(); + const mainTheme = new Compartment(); // Top Editor Line Fringe Decorations const topEditorLineDecos = [ @@ -265,6 +287,7 @@ layout: post lineNumbers(), drawSelection(), keymap.of(defaultKeymap), + regexTheme.of(themeFor(darkQuery.matches)), topEditorField, EditorView.updateListener.of(update => { if (update.docChanged) { @@ -334,9 +357,18 @@ layout: post input.addEventListener('click', e => e.stopPropagation()); // don't trigger switchTab } + function applyTheme() { + const t = themeFor(darkQuery.matches); + regexView.dispatch({ effects: regexTheme.reconfigure(t) }); + mainView.dispatch({ effects: mainTheme.reconfigure(t) }); + } + + darkQuery.addEventListener('change', applyTheme); + function loadActive() { renderTabs(); mainView.setState(states[activeTabIndex]); + applyTheme(); dispatchRegexUpdate(); // a stashed state may hold stale regex queries saveToStorage(); // must run after setState so it saves the new tab's text } @@ -447,7 +479,8 @@ layout: post drawSelection(), highlightActiveLine(), bracketMatching(), - syntaxHighlighting(defaultHighlightStyle, { fallback: true }), + mainTheme.of(themeFor(darkQuery.matches)), + // syntaxHighlighting(defaultHighlightStyle, { fallback: true }), keymap.of([...defaultKeymap, ...historyKeymap]), regexHighlightField, EditorView.updateListener.of(u => { if (u.docChanged) saveToStorage(); }) diff --git a/_tools/cm-esbuild/package-lock.json b/_tools/cm-esbuild/package-lock.json new file mode 100644 index 0000000..73ea867 --- /dev/null +++ b/_tools/cm-esbuild/package-lock.json @@ -0,0 +1,650 @@ +{ + "name": "cm-rollup", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "cm-rollup", + "version": "1.0.0", + "dependencies": { + "@codemirror/commands": "6.11.1", + "@codemirror/language": "6.13.1", + "@codemirror/state": "6.7.6", + "@codemirror/view": "6.43.14", + "@uiw/codemirror-theme-github": "4.25.12" + }, + "devDependencies": { + "esbuild": "0.28.2" + } + }, + "node_modules/@babel/runtime": { + "version": "7.29.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.10.tgz", + "integrity": "sha512-NpugTzbKgGrNe45Ui32cN8vCFFMxVtP/9rtfwv0nP5FRDAjvYBxJcLVpYA9mr1jxP6cnIT7x9LUzuDTbWYYNRA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@codemirror/commands": { + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.11.1.tgz", + "integrity": "sha512-O/4hG3SC1YwcmQ0d2UVNDs+AsaNWd1iHVxbTeEBuqH+6bExAiPK3iS/BvpY6rZGURALv4ZD3sIgcCmRvw3ehBg==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.7.0", + "@codemirror/view": "^6.27.0", + "@lezer/common": "^1.1.0" + } + }, + "node_modules/@codemirror/language": { + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.13.1.tgz", + "integrity": "sha512-zfvU2r3TyylQLMj/te+5CnQ0rSqZi8B1oTCBbQkagcLW4Xc6imab6qN+pEJhsuNOLaJqiRyBXp9UhWA1DhVvDw==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/streamparser": "^6.0.0", + "@codemirror/view": "^6.23.0", + "@lezer/common": "^1.5.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0", + "style-mod": "^4.0.0" + } + }, + "node_modules/@codemirror/state": { + "version": "6.7.6", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.7.6.tgz", + "integrity": "sha512-kAz+AncRtKuIknedxT1bq4XwXv4UowhbkHU1myPrtVb/jZtImWuV5BXzv5vK6i3kYACsdiZiQKFQQ5Mq7elW8w==", + "license": "MIT", + "dependencies": { + "@marijn/find-cluster-break": "^1.0.0" + } + }, + "node_modules/@codemirror/streamparser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@codemirror/streamparser/-/streamparser-6.0.0.tgz", + "integrity": "sha512-JTFPF6xrfjt0mnfGPgzcLiMwYmvIyNaoizp8BYzv8FE8KrT6GBGDZ190rtt+O7Wke3gG/MFHyiY9YGNeimof4w==", + "license": "MIT" + }, + "node_modules/@codemirror/view": { + "version": "6.43.14", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.43.14.tgz", + "integrity": "sha512-hC45YnmJNR1rz42OF57BLoQNFMV12/13drnvibDsR2quNDmldcb4WvYVV81hFQg56i9lcqQMEDqilhX2QDcGQQ==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.7.0", + "crelt": "^1.0.6", + "style-mod": "^4.1.0", + "w3c-keyname": "^2.2.4" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz", + "integrity": "sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.2.tgz", + "integrity": "sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz", + "integrity": "sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.2.tgz", + "integrity": "sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz", + "integrity": "sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz", + "integrity": "sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz", + "integrity": "sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz", + "integrity": "sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz", + "integrity": "sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz", + "integrity": "sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz", + "integrity": "sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz", + "integrity": "sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz", + "integrity": "sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz", + "integrity": "sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz", + "integrity": "sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz", + "integrity": "sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz", + "integrity": "sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz", + "integrity": "sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz", + "integrity": "sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz", + "integrity": "sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz", + "integrity": "sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz", + "integrity": "sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz", + "integrity": "sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz", + "integrity": "sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz", + "integrity": "sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz", + "integrity": "sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@lezer/common": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.5.3.tgz", + "integrity": "sha512-H0iErY4e43LpXbYDyBci5W4v/RwTgGV3YzYOlJPiGZ8RY8w51kVE+xLn1tg3Z6UmSfyETvtsUK3r7YsgDQEI7Q==", + "license": "MIT" + }, + "node_modules/@lezer/highlight": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.5.tgz", + "integrity": "sha512-O1GMVKgtf5YspFaRzpmqkVgMtIk2HG9uMAbH6wdAIdNh3TVzCsch/+cRi+6l2//UGDKe6NB9BW3cvuR5ezMQ0w==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.3.0" + } + }, + "node_modules/@lezer/lr": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.11.tgz", + "integrity": "sha512-UwgZcl1R66H2hDzBrA7kWyYmX6s8p5TQ+e/t7CuvgCtBEPxbEPaHYHu+pJBvTvDotEJpuQkJjbXuHiw5Cixxgw==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@marijn/find-cluster-break": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.4.tgz", + "integrity": "sha512-Wy0V7+SGUjnF9/TkiM1hKVDPj7jKXduPNboMVtHTA8dySMURWqfg/JZ9E2Sq8JgSJmkl7k7Qe9FLeMSrSraWmQ==", + "license": "MIT" + }, + "node_modules/@uiw/codemirror-theme-github": { + "version": "4.25.12", + "resolved": "https://registry.npmjs.org/@uiw/codemirror-theme-github/-/codemirror-theme-github-4.25.12.tgz", + "integrity": "sha512-ZEdyK7WEmV91HwRs6Twgae63GtE1C2QfS40NlnRvs6vHHTQjyz+wI1Hkpf1uTpWxtrNVUrc35k9KUUXWTmViFg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.6", + "@lezer/highlight": "^1.0.0", + "@uiw/codemirror-themes": "4.25.12" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + } + }, + "node_modules/@uiw/codemirror-themes": { + "version": "4.25.12", + "resolved": "https://registry.npmjs.org/@uiw/codemirror-themes/-/codemirror-themes-4.25.12.tgz", + "integrity": "sha512-3bLX6C+gstr82SmY2FAj2TfHXnl2SnC+whRZJmRsv82wMhG8RZlZVy+o0rLuGRIPD9acuY0gpouHVRNUnzBj3g==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@codemirror/language": ">=6.0.0", + "@codemirror/state": ">=6.0.0", + "@codemirror/view": ">=6.0.0" + } + }, + "node_modules/crelt": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.7.tgz", + "integrity": "sha512-aK6BbWfhf4U/wCcLHKPJl/xa6VkVstRaPywWtMKGwuOLc/wZTyQYuoxgvZnNsBvv7Kg3YTBQYYBCggcviQczuA==", + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.2.tgz", + "integrity": "sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.2", + "@esbuild/android-arm": "0.28.2", + "@esbuild/android-arm64": "0.28.2", + "@esbuild/android-x64": "0.28.2", + "@esbuild/darwin-arm64": "0.28.2", + "@esbuild/darwin-x64": "0.28.2", + "@esbuild/freebsd-arm64": "0.28.2", + "@esbuild/freebsd-x64": "0.28.2", + "@esbuild/linux-arm": "0.28.2", + "@esbuild/linux-arm64": "0.28.2", + "@esbuild/linux-ia32": "0.28.2", + "@esbuild/linux-loong64": "0.28.2", + "@esbuild/linux-mips64el": "0.28.2", + "@esbuild/linux-ppc64": "0.28.2", + "@esbuild/linux-riscv64": "0.28.2", + "@esbuild/linux-s390x": "0.28.2", + "@esbuild/linux-x64": "0.28.2", + "@esbuild/netbsd-arm64": "0.28.2", + "@esbuild/netbsd-x64": "0.28.2", + "@esbuild/openbsd-arm64": "0.28.2", + "@esbuild/openbsd-x64": "0.28.2", + "@esbuild/openharmony-arm64": "0.28.2", + "@esbuild/sunos-x64": "0.28.2", + "@esbuild/win32-arm64": "0.28.2", + "@esbuild/win32-ia32": "0.28.2", + "@esbuild/win32-x64": "0.28.2" + } + }, + "node_modules/style-mod": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.4.tgz", + "integrity": "sha512-XXWIQt633/EpAFx8aZDOTjBzrCaGmhvEQlQo6MVPfa2OzO2cWo+4hV9h+6UkHYlXGfy+ODXKUdP7Pthmcu5ATw==", + "license": "MIT" + }, + "node_modules/w3c-keyname": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", + "license": "MIT" + } + } +} diff --git a/_tools/cm-esbuild/package.json b/_tools/cm-esbuild/package.json new file mode 100644 index 0000000..4e6d5a8 --- /dev/null +++ b/_tools/cm-esbuild/package.json @@ -0,0 +1,26 @@ +{ + "name": "cm-esbuild", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "build": "esbuild src/state.js src/view.js src/commands.js src/language.js src/theme.js --bundle --format=esm --minify --splitting --target=es2022 --outdir=dist", + "deploy:cm": "npm run build && node scripts/deploy.js ../../" + }, + "keywords": [], + "type": "commonjs", + "dependencies": { + "@codemirror/commands": "6.11.1", + "@codemirror/language": "6.13.1", + "@codemirror/state": "6.7.6", + "@codemirror/view": "6.43.14", + "@uiw/codemirror-theme-github": "4.25.12" + }, + "devDependencies": { + "esbuild": "0.28.2" + }, + "allowScripts": { + "esbuild@0.28.2": true + } +} diff --git a/_tools/cm-esbuild/scripts/deploy.js b/_tools/cm-esbuild/scripts/deploy.js new file mode 100644 index 0000000..a06130e --- /dev/null +++ b/_tools/cm-esbuild/scripts/deploy.js @@ -0,0 +1,37 @@ +const fs = require('fs'), path = require('path'), crypto = require('crypto'); + +const site = process.argv[2]; +if (!site) { console.error('usage: node scripts/publish.js <path-to-jekyll-site>'); process.exit(1); } + +const dist = path.join(__dirname, '..', 'dist'); +const dest = path.join(site, 'assets', 'cm'); +const jsFiles = fs.readdirSync(dist).filter(f => f.endsWith('.js')).sort(); + +// version = hash of the bundle contents, so it only changes when the code does +const h = crypto.createHash('sha1'); +for (const f of jsFiles) h.update(fs.readFileSync(path.join(dist, f))); +const v = h.digest('hex').slice(0, 10); + +// replace old files so stale chunks don't pile up +fs.rmSync(dest, { recursive: true, force: true }); +fs.mkdirSync(dest, { recursive: true }); +for (const f of fs.readdirSync(dist)) fs.copyFileSync(path.join(dist, f), path.join(dest, f)); + +const entries = { + '@codemirror/state': 'state', + '@codemirror/view': 'view', + '@codemirror/commands': 'commands', + '@codemirror/language': 'language', + '@uiw/codemirror-theme-github': 'theme', +}; +const imports = Object.entries(entries) + .map(([spec, name]) => ` "${spec}": "{{ '/assets/cm/${name}.js' | relative_url }}?v=${v}"`) + .join(',\n'); +const preload = jsFiles.filter(f => f.startsWith('chunk-')) + .map(f => `<link rel="modulepreload" href="{{ '/assets/cm/${f}' | relative_url }}">`) + .join('\n'); + +const html = `${preload}\n<script type="importmap">\n{\n "imports": {\n${imports}\n }\n}\n</script>\n`; +fs.mkdirSync(path.join(site, '_includes'), { recursive: true }); +fs.writeFileSync(path.join(site, '_includes', 'cm-importmap.html'), html); +console.log('published, version', v); diff --git a/_tools/cm-esbuild/src/commands.js b/_tools/cm-esbuild/src/commands.js new file mode 100644 index 0000000..34031c2 --- /dev/null +++ b/_tools/cm-esbuild/src/commands.js @@ -0,0 +1 @@ +export * from '@codemirror/commands'; diff --git a/_tools/cm-esbuild/src/language.js b/_tools/cm-esbuild/src/language.js new file mode 100644 index 0000000..9bfe6b6 --- /dev/null +++ b/_tools/cm-esbuild/src/language.js @@ -0,0 +1 @@ +export * from '@codemirror/language'; diff --git a/_tools/cm-esbuild/src/state.js b/_tools/cm-esbuild/src/state.js new file mode 100644 index 0000000..b6ef173 --- /dev/null +++ b/_tools/cm-esbuild/src/state.js @@ -0,0 +1 @@ +export * from '@codemirror/state'; diff --git a/_tools/cm-esbuild/src/theme.js b/_tools/cm-esbuild/src/theme.js new file mode 100644 index 0000000..d7b898a --- /dev/null +++ b/_tools/cm-esbuild/src/theme.js @@ -0,0 +1 @@ +export * from '@uiw/codemirror-theme-github'; diff --git a/_tools/cm-esbuild/src/view.js b/_tools/cm-esbuild/src/view.js new file mode 100644 index 0000000..6d964dc --- /dev/null +++ b/_tools/cm-esbuild/src/view.js @@ -0,0 +1 @@ +export * from '@codemirror/view'; diff --git a/_e2e/package-lock.json b/_tools/e2e/package-lock.json index 8ffab32..8ffab32 100644 --- a/_e2e/package-lock.json +++ b/_tools/e2e/package-lock.json diff --git a/_e2e/package.json b/_tools/e2e/package.json index 369ba46..369ba46 100644 --- a/_e2e/package.json +++ b/_tools/e2e/package.json diff --git a/_e2e/playwright.config.ts b/_tools/e2e/playwright.config.ts index 1e97f70..1e97f70 100644 --- a/_e2e/playwright.config.ts +++ b/_tools/e2e/playwright.config.ts diff --git a/_e2e/tests/regex-editor.spec.ts b/_tools/e2e/tests/regex-editor.spec.ts index 1f3c0d3..1f3c0d3 100644 --- a/_e2e/tests/regex-editor.spec.ts +++ b/_tools/e2e/tests/regex-editor.spec.ts diff --git a/assets/cm/chunk-7PWEZHZB.js b/assets/cm/chunk-7PWEZHZB.js new file mode 100644 index 0000000..b74c60b --- /dev/null +++ b/assets/cm/chunk-7PWEZHZB.js @@ -0,0 +1,5 @@ +var fe=[],Te=[];(()=>{let s="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,1n,9,16,o,,x,1i,3,,i,,7,a,2,t,3,1k,,,7,2,2,2,3,9,,a,2,q,,2,3,1k,,,5,4,2,2,3,3,,u,2,3,,b,3,1k,,,8,,3,,3,k,2,m,6,,3,1k,,,7,2,2,2,3,7,3,a,2,u,,1n,5,3,3,,4,9,,14,5,1j,,,7,,3,,4,7,2,b,2,t,3,1k,,,7,,3,,4,7,2,b,2,f,,c,4,1j,2,,7,,3,,4,9,,a,2,t,3,1y,,4,6,,,,8,i,2,1p,,,8,c,8,2q,,,a,b,7,21,2,r,,,,,,4,2,1d,k,,2,5,b,,10,9,,2u,b,,6,n,4,4,3,g,4,d,,,3,6,,f,,jj,3,qa,4,s,3,t,2,u,2,1s,w,9,,19,3,,,39,2,y,,3a,c,4,c,63,5,1l,a,,,,,2,o,2,,1c,1a,2,c,k,5,1b,h,12,9,c,3,u,d,1k,e,1c,k,48,3,,l,4,,6,,2,3,5i,1s,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,n,5,4,,2b,2,1e,i,q,i,d,,12,8,p,d,18,4,1b,e,10,,1v,e,c,,8,2,1a,,1f,,,3,2,2,5,2,,,15,5,5,2,6k,8,,2,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,1t,5,8t,2,25,6,1y,b,1d,4,3e,3,1h,f,15,,2,2,a,4,19,b,7,,1p,3,10,e,g,2,18,,c,3,1c,e,8,4,,2,2k,c,6,,2,,4d,c,l,4,1j,2,,7,2,2,2,3,9,,a,2,2,7,3,5,1v,9,,,2,,,4,,5,,,e,2,2a,i,n,,29,k,6j,7,2,9,r,2,2a,h,2y,d,2t,3,2,a,74,f,6t,6,,2,2,4,,,,2,3x,7,2,7,3,,s,a,14,7,,4,8,,9,b,1a,g,5i,8,5j,8,,8,2a,m,,e,3e,6,3,,,2,,7,,,1u,5,,2,,5,9n,4,9,2,,,1c,7,3,5,n,,44l,,6,f,8ug,i,1xc,5,1n,7,t4,,,1j,7,4,29,,b,2,f57,2,3mp,1a,2,n,f2,5,3,6,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,2s,,4g,7,af,,1p,4,e4,4,72,2,6r,,2,,7,2,5,,d6,7,31,7,240,5".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e<s.length;e++)(e%2?Te:fe).push(t=t+s[e])})();function Xe(s){if(s<768)return!1;for(let e=0,t=fe.length;;){let n=e+t>>1;if(s<fe[n])t=n;else if(s>=Te[n])e=n+1;else return!0;if(e==t)return!1}}function Ce(s){return s>=127462&&s<=127487}var Oe=8205;function Me(s,e,t=!0,n=!0){return(t?Be:Ye)(s,e,n)}function Be(s,e,t){if(e==s.length)return e;e&&Fe(s.charCodeAt(e))&&Le(s.charCodeAt(e-1))&&e--;let n=ae(s,e);for(e+=Re(n);e<s.length;){let i=ae(s,e);if(n==Oe||i==Oe||t&&Xe(i))e+=Re(i),n=i;else if(Ce(i)){let r=0,l=e-2;for(;l>=0&&Ce(ae(s,l));)r++,l-=2;if(r%2==0)break;e+=2}else break}return e}function Ye(s,e,t){for(;e>1;){let n=Be(s,e-2,t);if(n<e)return n;e--}return 0}function ae(s,e){let t=s.charCodeAt(e);if(!Le(t)||e+1==s.length)return t;let n=s.charCodeAt(e+1);return Fe(n)?(t-55296<<10)+(n-56320)+65536:t}function Fe(s){return s>=56320&&s<57344}function Le(s){return s>=55296&&s<56320}function Re(s){return s<65536?1:2}var w=class s{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,n){[e,t]=q(this,e,t);let i=[];return this.decompose(0,e,i,2),n.length&&n.decompose(0,n.length,i,3),this.decompose(t,this.length,i,1),V.from(i,this.length-(t-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=q(this,e,t);let n=[];return this.decompose(e,t,n,0),V.from(n,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),i=new F(this),r=new F(e);for(let l=t,h=t;;){if(i.next(l),r.next(l),l=0,i.lineBreak!=r.lineBreak||i.done!=r.done||i.value!=r.value)return!1;if(h+=i.value.length,i.done||h>=n)return!0}}iter(e=1){return new F(this,e)}iterRange(e,t=this.length){return new te(this,e,t)}iterLines(e,t){let n;if(e==null)n=this.iter();else{t==null&&(t=this.lines+1);let i=this.line(e).from;n=this.iterRange(i,Math.max(i,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new ne(n)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?s.empty:e.length<=32?new S(e):V.from(S.split(e,[]))}},S=class s extends w{constructor(e,t=_e(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,n,i){for(let r=0;;r++){let l=this.text[r],h=i+l.length;if((t?n:h)>=e)return new ce(i,h,n,l);i=h+1,n++}}decompose(e,t,n,i){let r=e<=0&&t>=this.length?this:new s(De(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(i&1){let l=n.pop(),h=ee(r.text,l.text.slice(),0,r.length);if(h.length<=32)n.push(new s(h,l.length+r.length));else{let o=h.length>>1;n.push(new s(h.slice(0,o)),new s(h.slice(o)))}}else n.push(r)}replace(e,t,n){if(!(n instanceof s))return super.replace(e,t,n);[e,t]=q(this,e,t);let i=ee(this.text,ee(n.text,De(this.text,0,e)),t),r=this.length+n.length-(t-e);return i.length<=32?new s(i,r):V.from(s.split(i,[]),r)}sliceString(e,t=this.length,n=` +`){[e,t]=q(this,e,t);let i="";for(let r=0,l=0;r<=t&&l<this.text.length;l++){let h=this.text[l],o=r+h.length;r>e&&l&&(i+=n),e<o&&t>r&&(i+=h.slice(Math.max(0,e-r),t-r)),r=o+1}return i}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let n=[],i=-1;for(let r of e)n.push(r),i+=r.length+1,n.length==32&&(t.push(new s(n,i)),n=[],i=-1);return i>-1&&t.push(new s(n,i)),t}},V=class s extends w{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let n of e)this.lines+=n.lines}lineInner(e,t,n,i){for(let r=0;;r++){let l=this.children[r],h=i+l.length,o=n+l.lines-1;if((t?o:h)>=e)return l.lineInner(e,t,n,i);i=h+1,n=o+1}}decompose(e,t,n,i){for(let r=0,l=0;l<=t&&r<this.children.length;r++){let h=this.children[r],o=l+h.length;if(e<=o&&t>=l){let a=i&((l<=e?1:0)|(o>=t?2:0));l>=e&&o<=t&&!a?n.push(h):h.decompose(e-l,t-l,n,a)}l=o+1}}replace(e,t,n){if([e,t]=q(this,e,t),n.lines<this.lines)for(let i=0,r=0;i<this.children.length;i++){let l=this.children[i],h=r+l.length;if(e>=r&&t<=h){let o=l.replace(e-r,t-r,n),a=this.lines-l.lines+o.lines;if(o.lines<a>>4&&o.lines>a>>6){let f=this.children.slice();return f[i]=o,new s(f,this.length-(t-e)+n.length)}return super.replace(r,h,o)}r=h+1}return super.replace(e,t,n)}sliceString(e,t=this.length,n=` +`){[e,t]=q(this,e,t);let i="";for(let r=0,l=0;r<this.children.length&&l<=t;r++){let h=this.children[r],o=l+h.length;l>e&&r&&(i+=n),e<o&&t>l&&(i+=h.sliceString(e-l,t-l,n)),l=o+1}return i}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof s))return 0;let n=0,[i,r,l,h]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;i+=t,r+=t){if(i==l||r==h)return n;let o=this.children[i],a=e.children[r];if(o!=a)return n+o.scanIdentical(a,t);n+=o.length+1}}static from(e,t=e.reduce((n,i)=>n+i.length+1,-1)){let n=0;for(let d of e)n+=d.lines;if(n<32){let d=[];for(let g of e)g.flatten(d);return new S(d,t)}let i=Math.max(32,n>>5),r=i<<1,l=i>>1,h=[],o=0,a=-1,f=[];function u(d){let g;if(d.lines>r&&d instanceof s)for(let m of d.children)u(m);else d.lines>l&&(o>l||!o)?(c(),h.push(d)):d instanceof S&&o&&(g=f[f.length-1])instanceof S&&d.lines+g.lines<=32?(o+=d.lines,a+=d.length+1,f[f.length-1]=new S(g.text.concat(d.text),g.length+1+d.length)):(o+d.lines>i&&c(),o+=d.lines,a+=d.length+1,f.push(d))}function c(){o!=0&&(h.push(f.length==1?f[0]:s.from(f,a)),a=-1,o=f.length=0)}for(let d of e)u(d);return c(),h.length==1?h[0]:new s(h,t)}};w.empty=new S([""],0);function _e(s){let e=-1;for(let t of s)e+=t.length+1;return e}function ee(s,e,t=0,n=1e9){for(let i=0,r=0,l=!0;r<s.length&&i<=n;r++){let h=s[r],o=i+h.length;o>=t&&(o>n&&(h=h.slice(0,n-i)),i<t&&(h=h.slice(t-i)),l?(e[e.length-1]+=h,l=!1):e.push(h)),i=o+1}return e}function De(s,e,t){return ee(s,[""],e,t)}var F=class{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof S?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,i=this.nodes[n],r=this.offsets[n],l=r>>1,h=i instanceof S?i.text.length:i.children.length;if(l==(t>0?h:0)){if(n==0)return this.done=!0,this.value="",this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((r&1)==(t>0?0:1)){if(this.offsets[n]+=t,e==0)return this.lineBreak=!0,this.value=` +`,this;e--}else if(i instanceof S){let o=i.text[l+(t<0?-1:0)];if(this.offsets[n]+=t,o.length>Math.max(0,e))return this.value=e==0?o:t>0?o.slice(e):o.slice(0,o.length-e),this;e-=o.length}else{let o=i.children[l+(t<0?-1:0)];e>o.length?(e-=o.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(o),this.offsets.push(t>0?1:(o instanceof S?o.text.length:o.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},te=class{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new F(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:i}=this.cursor.next(e);return this.pos+=(i.length+e)*t,this.value=i.length<=n?i:t<0?i.slice(i.length-n):i.slice(0,n),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},ne=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:n,value:i}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):n?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=i,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<"u"&&(w.prototype[Symbol.iterator]=function(){return this.iter()},F.prototype[Symbol.iterator]=te.prototype[Symbol.iterator]=ne.prototype[Symbol.iterator]=function(){return this});var ce=class{constructor(e,t,n,i){this.from=e,this.to=t,this.number=n,this.text=i}get length(){return this.to-this.from}};function q(s,e,t){return e=Math.max(0,Math.min(s.length,e)),[e,Math.max(e,Math.min(s.length,t))]}function ie(s,e,t=!0,n=!0){return Me(s,e,t,n)}function et(s){return s>=56320&&s<57344}function tt(s){return s>=55296&&s<56320}function gt(s,e){let t=s.charCodeAt(e);if(!tt(t)||e+1==s.length)return t;let n=s.charCodeAt(e+1);return et(n)?(t-55296<<10)+(n-56320)+65536:t}function pt(s){return s<=65535?String.fromCharCode(s):(s-=65536,String.fromCharCode((s>>10)+55296,(s&1023)+56320))}function mt(s){return s<65536?1:2}var de=/\r\n?|\n/,b=(function(s){return s[s.Simple=0]="Simple",s[s.TrackDel=1]="TrackDel",s[s.TrackBefore=2]="TrackBefore",s[s.TrackAfter=3]="TrackAfter",s})(b||(b={})),L=class s{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t+1];e+=n<0?this.sections[t]:n}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,n=0,i=0;t<this.sections.length;){let r=this.sections[t++],l=this.sections[t++];l<0?(e(n,i,r),i+=r):i+=l,n+=r}}iterChangedRanges(e,t=!1){ge(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let n=this.sections[t++],i=this.sections[t++];i<0?e.push(n,i):e.push(i,n)}return new s(e)}composeDesc(e){return this.empty?e:e.empty?this:ze(this,e)}mapDesc(e,t=!1){return e.empty?this:pe(this,e,t)}mapPos(e,t=-1,n=b.Simple){let i=0,r=0;for(let l=0;l<this.sections.length;){let h=this.sections[l++],o=this.sections[l++],a=i+h;if(o<0){if(a>e)return r+(e-i);r+=h}else{if(n!=b.Simple&&a>=e&&(n==b.TrackDel&&i<e&&a>e||n==b.TrackBefore&&i<e||n==b.TrackAfter&&a>e))return null;if(a>e||a==e&&t<0&&!h)return e==i||t<0?r:r+o;r+=o}i=a}if(e>i)throw new RangeError(`Position ${e} is out of range for changeset of length ${i}`);return r}touchesRange(e,t=e){for(let n=0,i=0;n<this.sections.length&&i<=t;){let r=this.sections[n++],l=this.sections[n++],h=i+r;if(l>=0&&i<=t&&h>=e)return i<e&&h>t?"cover":!0;i=h}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let n=this.sections[t++],i=this.sections[t++];e+=(e?" ":"")+n+(i>=0?":"+i:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new s(e)}static create(e){return new s(e)}},E=class s extends L{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return ge(this,(t,n,i,r,l)=>e=e.replace(i,i+(n-t),l),!1),e}mapDesc(e,t=!1){return pe(this,e,t,!0)}invert(e){let t=this.sections.slice(),n=[];for(let i=0,r=0;i<t.length;i+=2){let l=t[i],h=t[i+1];if(h>=0){t[i]=h,t[i+1]=l;let o=i>>1;for(;n.length<o;)n.push(w.empty);n.push(l?e.slice(r,r+l):w.empty)}r+=l}return new s(t,n)}compose(e){return this.empty?e:e.empty?this:ze(this,e,!0)}map(e,t=!1){return e.empty?this:pe(this,e,t,!0)}iterChanges(e,t=!1){ge(this,e,t)}get desc(){return L.create(this.sections)}filter(e){let t=[],n=[],i=[],r=new D(this);e:for(let l=0,h=0;;){let o=l==e.length?1e9:e[l++];for(;h<o||h==o&&r.len==0;){if(r.done)break e;let f=Math.min(r.len,o-h);x(i,f,-1);let u=r.ins==-1?-1:r.off==0?r.ins:0;x(t,f,u),u>0&&C(n,t,r.text),r.forward(f),h+=f}let a=e[l++];for(;h<a;){if(r.done)break e;let f=Math.min(r.len,a-h);x(t,f,-1),x(i,f,r.ins==-1?-1:r.off==0?r.ins:0),r.forward(f),h+=f}}return{changes:new s(t,n),filtered:L.create(i)}}toJSON(){let e=[];for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t],i=this.sections[t+1];i<0?e.push(n):i==0?e.push([n]):e.push([n].concat(this.inserted[t>>1].toJSON()))}return e}static of(e,t,n){let i=[],r=[],l=0,h=null;function o(f=!1){if(!f&&!i.length)return;l<t&&x(i,t-l,-1);let u=new s(i,r);h=h?h.compose(u.map(h)):u,i=[],r=[],l=0}function a(f){if(Array.isArray(f))for(let u of f)a(u);else if(f instanceof s){if(f.length!=t)throw new RangeError(`Mismatched change set length (got ${f.length}, expected ${t})`);o(),h=h?h.compose(f.map(h)):f}else{let{from:u,to:c=u,insert:d}=f;if(u>c||u<0||c>t)throw new RangeError(`Invalid change range ${u} to ${c} (in doc of length ${t})`);let g=d?typeof d=="string"?w.of(d.split(n||de)):d:w.empty,m=g.length;if(u==c&&m==0)return;u<l&&o(),u>l&&x(i,u-l,-1),x(i,c-u,m),C(r,i,g),l=c}}return a(e),o(!h),h}static empty(e){return new s(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],n=[];for(let i=0;i<e.length;i++){let r=e[i];if(typeof r=="number")t.push(r,-1);else{if(!Array.isArray(r)||typeof r[0]!="number"||r.some((l,h)=>h&&typeof l!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(r.length==1)t.push(r[0],0);else{for(;n.length<i;)n.push(w.empty);n[i]=w.of(r.slice(1)),t.push(r[0],n[i].length)}}}return new s(t,n)}static createSet(e,t){return new s(e,t)}};function x(s,e,t,n=!1){if(e==0&&t<=0)return;let i=s.length-2;i>=0&&t<=0&&t==s[i+1]?s[i]+=e:i>=0&&e==0&&s[i]==0?s[i+1]+=t:n?(s[i]+=e,s[i+1]+=t):s.push(e,t)}function C(s,e,t){if(t.length==0)return;let n=e.length-2>>1;if(n<s.length)s[s.length-1]=s[s.length-1].append(t);else{for(;s.length<n;)s.push(w.empty);s.push(t)}}function ge(s,e,t){let n=s.inserted;for(let i=0,r=0,l=0;l<s.sections.length;){let h=s.sections[l++],o=s.sections[l++];if(o<0)i+=h,r+=h;else{let a=i,f=r,u=w.empty;for(;a+=h,f+=o,o&&n&&(u=u.append(n[l-2>>1])),!(t||l==s.sections.length||s.sections[l+1]<0);)h=s.sections[l++],o=s.sections[l++];e(i,a,r,f,u),i=a,r=f}}}function pe(s,e,t,n=!1){let i=[],r=n?[]:null,l=new D(s),h=new D(e);for(let o=-1;;){if(l.done&&h.len||h.done&&l.len)throw new Error("Mismatched change set lengths");if(l.ins==-1&&h.ins==-1){let a=Math.min(l.len,h.len);x(i,a,-1),l.forward(a),h.forward(a)}else if(h.ins>=0&&(l.ins<0||o==l.i||l.off==0&&(h.len<l.len||h.len==l.len&&!t))){let a=h.len;for(x(i,h.ins,-1);a;){let f=Math.min(l.len,a);l.ins>=0&&o<l.i&&l.len<=f&&(x(i,0,l.ins),r&&C(r,i,l.text),o=l.i),l.forward(f),a-=f}h.next()}else if(l.ins>=0){let a=0,f=l.len;for(;f;)if(h.ins==-1){let u=Math.min(f,h.len);a+=u,f-=u,h.forward(u)}else if(h.ins==0&&h.len<f)f-=h.len,h.next();else break;x(i,a,o<l.i?l.ins:0),r&&o<l.i&&C(r,i,l.text),o=l.i,l.forward(l.len-f)}else{if(l.done&&h.done)return r?E.createSet(i,r):L.create(i);throw new Error("Mismatched change set lengths")}}}function ze(s,e,t=!1){let n=[],i=t?[]:null,r=new D(s),l=new D(e);for(let h=!1;;){if(r.done&&l.done)return i?E.createSet(n,i):L.create(n);if(r.ins==0)x(n,r.len,0,h),r.next();else if(l.len==0&&!l.done)x(n,0,l.ins,h),i&&C(i,n,l.text),l.next();else{if(r.done||l.done)throw new Error("Mismatched change set lengths");{let o=Math.min(r.len2,l.len),a=n.length;if(r.ins==-1){let f=l.ins==-1?-1:l.off?0:l.ins;x(n,o,f,h),i&&f&&C(i,n,l.text)}else l.ins==-1?(x(n,r.off?0:r.len,o,h),i&&C(i,n,r.textBit(o))):(x(n,r.off?0:r.len,l.off?0:l.ins,h),i&&!l.off&&C(i,n,l.text));h=(r.ins>o||l.ins>=0&&l.len>o)&&(h||n.length>a),r.forward2(o),l.forward(o)}}}}var D=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,t=this.i-2>>1;return t>=e.length?w.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?w.empty:t[n].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},T=class s{constructor(e,t,n,i){this.from=e,this.to=t,this.flags=n,this.goalColumn=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get undirectional(){return(this.flags&64)>0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}map(e,t=-1){let n,i;return this.empty?n=i=e.mapPos(this.from,t):(n=e.mapPos(this.from,1),i=e.mapPos(this.to,-1)),n==this.from&&i==this.to?this:new s(n,i,this.flags,this.goalColumn)}extend(e,t=e,n=0){if(e<=this.anchor&&t>=this.anchor)return y.range(e,t,void 0,void 0,n);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return y.range(this.anchor,i,void 0,void 0,n)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return y.range(e.anchor,e.head)}static create(e,t,n,i){return new s(e,t,n,i)}},y=class s{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:s.create(this.ranges.map(n=>n.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let n=0;n<this.ranges.length;n++)if(!this.ranges[n].eq(e.ranges[n],t))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new s([this.main],0)}addRange(e,t=!0){return s.create([e].concat(this.ranges),t?0:this.mainIndex+1)}replaceRange(e,t=this.mainIndex){let n=this.ranges.slice();return n[t]=e,s.create(n,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new s(e.ranges.map(t=>T.fromJSON(t)),e.main)}static single(e,t=e){return new s([s.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let n=0,i=0;i<e.length;i++){let r=e[i];if(r.empty?r.from<=n:r.from<n)return s.normalized(e.slice(),t);n=r.to}return new s(e,t)}static cursor(e,t=0,n,i){return T.create(e,e,(t==0?0:t<0?8:16)|(n==null?7:Math.min(6,n)),i)}static range(e,t,n,i,r){let l=i==null?7:Math.min(6,i);return!r&&e!=t&&(r=t<e?1:-1),r&&(l|=r<0?8:16),t<e?T.create(t,e,l|32,n):T.create(e,t,l,n)}static undirectionalRange(e,t){return T.create(e,t,64,void 0)}static normalized(e,t=0){let n=e[t];e.sort((i,r)=>i.from-r.from),t=e.indexOf(n);for(let i=1;i<e.length;i++){let r=e[i],l=e[i-1];if(r.empty?r.from<=l.to:r.from<l.to){let h=l.from,o=Math.max(r.to,l.to);i<=t&&t--,e.splice(--i,2,r.anchor>r.head?s.range(o,h):s.range(h,o))}}return new s(e,t)}};function qe(s,e){for(let t of s.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}var Pe=0,I=class s{constructor(e,t,n,i,r){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=i,this.id=Pe++,this.default=e([]),this.extensions=typeof r=="function"?r(this):r}get reader(){return this}static define(e={}){return new s(e.combine||(t=>t),e.compareInput||((t,n)=>t===n),e.compare||(e.combine?(t,n)=>t===n:Ee),!!e.static,e.enables)}of(e){return new $([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new $(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new $(e,this,2,t)}from(e,t){return t||(t=n=>n),this.compute([e],n=>t(n.field(e)))}};function Ee(s,e){return s==e||s.length==e.length&&s.every((t,n)=>t===e[n])}var $=class{constructor(e,t,n,i){this.dependencies=e,this.facet=t,this.type=n,this.value=i,this.id=Pe++}dynamicSlot(e){var t;let n=this.value,i=this.facet.compareInput,r=this.id,l=e[r]>>1,h=this.type==2,o=!1,a=!1,f=[];for(let u of this.dependencies)u=="doc"?o=!0:u=="selection"?a=!0:(((t=e[u.id])!==null&&t!==void 0?t:1)&1)==0&&f.push(e[u.id]);return{create(u){return u.values[l]=n(u),1},update(u,c){if(o&&c.docChanged||a&&(c.docChanged||c.selection)||me(u,f)){let d=n(u);if(h?!Je(d,u.values[l],i):!i(d,u.values[l]))return u.values[l]=d,1}return 0},reconfigure:(u,c)=>{let d,g=c.config.address[r];if(g!=null){let m=he(c,g);if(this.dependencies.every(p=>p instanceof I?c.facet(p)===u.facet(p):p instanceof W?c.field(p,!1)==u.field(p,!1):!0)||(h?Je(d=n(u),m,i):i(d=n(u),m)))return u.values[l]=m,0}else d=n(u);return u.values[l]=d,1}}}get extension(){return this}};function Je(s,e,t){if(s.length!=e.length)return!1;for(let n=0;n<s.length;n++)if(!t(s[n],e[n]))return!1;return!0}function me(s,e){let t=!1;for(let n of e)G(s,n)&1&&(t=!0);return t}function nt(s,e,t){let n=t.map(o=>s[o.id]),i=t.map(o=>o.type),r=n.filter(o=>!(o&1)),l=s[e.id]>>1;function h(o){let a=[];for(let f=0;f<n.length;f++){let u=he(o,n[f]);if(i[f]==2)for(let c of u)a.push(c);else a.push(u)}return e.combine(a)}return{create(o){for(let a of n)G(o,a);return o.values[l]=h(o),1},update(o,a){if(!me(o,r))return 0;let f=h(o);return e.compare(f,o.values[l])?0:(o.values[l]=f,1)},reconfigure(o,a){let f=me(o,n),u=a.config.facets[e.id],c=a.facet(e);if(u&&!f&&Ee(t,u))return o.values[l]=c,0;let d=h(o);return e.compare(d,c)?(o.values[l]=c,0):(o.values[l]=d,1)}}}var X=I.define({static:!0}),W=class s{constructor(e,t,n,i,r){this.id=e,this.createF=t,this.updateF=n,this.compareF=i,this.spec=r,this.provides=void 0}static define(e){let t=new s(Pe++,e.create,e.update,e.compare||((n,i)=>n===i),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(X).find(n=>n.field==this);return(t?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:n=>(n.values[t]=this.create(n),1),update:(n,i)=>{let r=n.values[t],l=this.updateF(r,i);return this.compareF(r,l)?0:(n.values[t]=l,1)},reconfigure:(n,i)=>{let r=n.facet(X),l=i.facet(X),h;return(h=r.find(o=>o.field==this))&&h!=l.find(o=>o.field==this)?(n.values[t]=h.create(n),1):i.config.address[this.id]!=null?(n.values[t]=i.field(this),0):(n.values[t]=this.create(n),1)}}}init(e){return[this,X.of({field:this,create:e})]}get extension(){return this}},M={lowest:4,low:3,default:2,high:1,highest:0};function U(s){return e=>new se(e,s)}var wt={highest:U(M.highest),high:U(M.high),default:U(M.default),low:U(M.low),lowest:U(M.lowest)},se=class{constructor(e,t){this.inner=e,this.prec=t}get extension(){return this}},re=class s{of(e){return new Z(this,e)}reconfigure(e){return s.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},Z=class{constructor(e,t){this.compartment=e,this.inner=t}get extension(){return this}},le=class s{constructor(e,t,n,i,r,l){for(this.base=e,this.compartments=t,this.dynamicSlots=n,this.address=i,this.staticValues=r,this.facets=l,this.statusTemplate=[];this.statusTemplate.length<n.length;)this.statusTemplate.push(0)}staticFacet(e){let t=this.address[e.id];return t==null?e.default:this.staticValues[t>>1]}static resolve(e,t,n){let i=[],r=Object.create(null),l=new Map;for(let c of it(e,t,l))c instanceof W?i.push(c):(r[c.facet.id]||(r[c.facet.id]=[])).push(c);let h=Object.create(null),o=[],a=[];for(let c of i)h[c.id]=a.length<<1,a.push(d=>c.slot(d));let f=n?.config.facets;for(let c in r){let d=r[c],g=d[0].facet,m=f&&f[c]||[];if(d.every(p=>p.type==0))if(h[g.id]=o.length<<1|1,Ee(m,d))o.push(n.facet(g));else{let p=g.combine(d.map(v=>v.value));o.push(n&&g.compare(p,n.facet(g))?n.facet(g):p)}else{for(let p of d)p.type==0?(h[p.id]=o.length<<1|1,o.push(p.value)):(h[p.id]=a.length<<1,a.push(v=>p.dynamicSlot(v)));h[g.id]=a.length<<1,a.push(p=>nt(p,g,d))}}let u=a.map(c=>c(h));return new s(e,l,u,h,o,r)}};function it(s,e,t){let n=[[],[],[],[],[]],i=new Map;function r(l,h){let o=i.get(l);if(o!=null){if(o<=h)return;let a=n[o].indexOf(l);a>-1&&n[o].splice(a,1),l instanceof Z&&t.delete(l.compartment)}if(i.set(l,h),Array.isArray(l))for(let a of l)r(a,h);else if(l instanceof Z){if(t.has(l.compartment))throw new RangeError("Duplicate use of compartment in extensions");let a=e.get(l.compartment)||l.inner;t.set(l.compartment,a),r(a,h)}else if(l instanceof se)r(l.inner,l.prec);else if(l instanceof W)n[h].push(l),l.provides&&r(l.provides,h);else if(l instanceof $)n[h].push(l),l.facet.extensions&&r(l.facet.extensions,M.default);else{let a=l.extension;if(!a)throw new Error(`Unrecognized extension value in extension set (${l}).`);if(a==l)throw new Error(`Unrecognized extension value in extension set (${l}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);r(a,h)}}return r(s,M.default),n.reduce((l,h)=>l.concat(h))}function G(s,e){if(e&1)return 2;let t=e>>1,n=s.status[t];if(n==4)throw new Error("Cyclic dependency between fields and/or facets");if(n&2)return n;s.status[t]=4;let i=s.computeSlot(s,s.config.dynamicSlots[t]);return s.status[t]=2|i}function he(s,e){return e&1?s.config.staticValues[e>>1]:s.values[e>>1]}var We=I.define(),we=I.define({combine:s=>s.some(e=>e),static:!0}),je=I.define({combine:s=>s.length?s[0]:void 0,static:!0}),Ue=I.define(),Ge=I.define(),He=I.define(),Ze=I.define({combine:s=>s.length?s[0]:!1}),J=class{constructor(e,t){this.type=e,this.value=t}static define(){return new ve}},ve=class{of(e){return new J(this,e)}},xe=class{constructor(e){this.map=e}of(e){return new k(this,e)}},k=class s{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new s(this.type,t)}is(e){return this.type==e}static define(e={}){return new xe(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let n=[];for(let i of e){let r=i.map(t);r&&n.push(r)}return n}};k.reconfigure=k.define();k.appendConfig=k.define();var A=class s{constructor(e,t,n,i,r,l){this.startState=e,this.changes=t,this.selection=n,this.effects=i,this.annotations=r,this.scrollIntoView=l,this._doc=null,this._state=null,n&&qe(n,t.newLength),r.some(h=>h.type==s.time)||(this.annotations=r.concat(s.time.of(Date.now())))}static create(e,t,n,i,r,l){return new s(e,t,n,i,r,l)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(s.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}};A.time=J.define();A.userEvent=J.define();A.addToHistory=J.define();A.remote=J.define();function st(s,e){let t=[];for(let n=0,i=0;;){let r,l;if(n<s.length&&(i==e.length||e[i]>=s[n]))r=s[n++],l=s[n++];else if(i<e.length)r=e[i++],l=e[i++];else return t;!t.length||t[t.length-1]<r?t.push(r,l):t[t.length-1]<l&&(t[t.length-1]=l)}}function Ke(s,e,t){var n;let i,r,l;return t?(i=e.changes,r=E.empty(e.changes.length),l=s.changes.compose(e.changes)):(i=e.changes.map(s.changes),r=s.changes.mapDesc(e.changes,!0),l=s.changes.compose(i)),{changes:l,selection:e.selection?e.selection.map(r):(n=s.selection)===null||n===void 0?void 0:n.map(i),effects:k.mapEffects(s.effects,i).concat(k.mapEffects(e.effects,r)),annotations:s.annotations.length?s.annotations.concat(e.annotations):e.annotations,scrollIntoView:s.scrollIntoView||e.scrollIntoView}}function ke(s,e,t){let n=e.selection,i=z(e.annotations);return e.userEvent&&(i=i.concat(A.userEvent.of(e.userEvent))),{changes:e.changes instanceof E?e.changes:E.of(e.changes||[],t,s.facet(je)),selection:n&&(n instanceof y?n:y.single(n.anchor,n.head)),effects:z(e.effects),annotations:i,scrollIntoView:!!e.scrollIntoView}}function Qe(s,e,t){let n=ke(s,e.length?e[0]:{},s.doc.length);e.length&&e[0].filter===!1&&(t=!1);for(let r=1;r<e.length;r++){e[r].filter===!1&&(t=!1);let l=!!e[r].sequential;n=Ke(n,ke(s,e[r],l?n.changes.newLength:s.doc.length),l)}let i=A.create(s,n.changes,n.selection,n.effects,n.annotations,n.scrollIntoView);return lt(t?rt(i):i)}function rt(s){let e=s.startState,t=!0;for(let i of e.facet(Ue)){let r=i(s);if(r===!1){t=!1;break}Array.isArray(r)&&(t=t===!0?r:st(t,r))}if(t!==!0){let i,r;if(t===!1)r=s.changes.invertedDesc,i=E.empty(e.doc.length);else{let l=s.changes.filter(t);i=l.changes,r=l.filtered.mapDesc(l.changes).invertedDesc}s=A.create(e,i,s.selection&&s.selection.map(r),k.mapEffects(s.effects,r),s.annotations,s.scrollIntoView)}let n=e.facet(Ge);for(let i=n.length-1;i>=0;i--){let r=n[i](s);r instanceof A?s=r:Array.isArray(r)&&r.length==1&&r[0]instanceof A?s=r[0]:s=Qe(e,z(r),!1)}return s}function lt(s){let e=s.startState,t=e.facet(He),n=s;for(let i=t.length-1;i>=0;i--){let r=t[i](s);r&&Object.keys(r).length&&(n=Ke(n,ke(e,r,s.changes.newLength),!0))}return n==s?s:A.create(e,s.changes,s.selection,n.effects,n.annotations,n.scrollIntoView)}var ht=[];function z(s){return s==null?ht:Array.isArray(s)?s:[s]}var O=(function(s){return s[s.Word=0]="Word",s[s.Space=1]="Space",s[s.Other=2]="Other",s})(O||(O={})),ot=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,ye;try{ye=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function at(s){if(ye)return ye.test(s);for(let e=0;e<s.length;e++){let t=s[e];if(/\w/.test(t)||t>"\x80"&&(t.toUpperCase()!=t.toLowerCase()||ot.test(t)))return!0}return!1}function ft(s){return e=>{if(!/\S/.test(e))return O.Space;if(at(e))return O.Word;for(let t=0;t<s.length;t++)if(e.indexOf(s[t])>-1)return O.Word;return O.Other}}var P=class s{constructor(e,t,n,i,r,l){this.config=e,this.doc=t,this.selection=n,this.values=i,this.status=e.statusTemplate.slice(),this.computeSlot=r,l&&(l._state=this);for(let h=0;h<this.config.dynamicSlots.length;h++)G(this,h<<1);this.computeSlot=null}field(e,t=!0){let n=this.config.address[e.id];if(n==null){if(t)throw new RangeError("Field is not present in this state");return}return G(this,n),he(this,n)}update(...e){return Qe(this,e,!0)}applyTransaction(e){let t=this.config,{base:n,compartments:i}=t;for(let h of e.effects)h.is(re.reconfigure)?(t&&(i=new Map,t.compartments.forEach((o,a)=>i.set(a,o)),t=null),i.set(h.value.compartment,h.value.extension)):h.is(k.reconfigure)?(t=null,n=h.value):h.is(k.appendConfig)&&(t=null,n=z(n).concat(h.value));let r;t?r=e.startState.values.slice():(t=le.resolve(n,i,this),r=new s(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(o,a)=>a.reconfigure(o,this),null).values);let l=e.startState.facet(we)?e.newSelection:e.newSelection.asSingle();new s(t,e.newDoc,l,r,(h,o)=>o.update(h,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:y.cursor(t.from+e.length,-1)}))}changeByRange(e){let t=this.selection,n=e(t.ranges[0]),i=this.changes(n.changes),r=[n.range],l=z(n.effects);for(let h=1;h<t.ranges.length;h++){let o=e(t.ranges[h]),a=this.changes(o.changes),f=a.map(i);for(let c=0;c<h;c++)r[c]=r[c].map(f);let u=i.mapDesc(a,!0);r.push(o.range.map(u)),i=i.compose(f),l=k.mapEffects(l,f).concat(k.mapEffects(z(o.effects),u))}return{changes:i,selection:y.create(r,t.mainIndex),effects:l}}changes(e=[]){return e instanceof E?e:E.of(e,this.doc.length,this.facet(s.lineSeparator))}toText(e){return w.of(e.split(this.facet(s.lineSeparator)||de))}sliceDoc(e=0,t=this.doc.length){return this.doc.sliceString(e,t,this.lineBreak)}facet(e){let t=this.config.address[e.id];return t==null?e.default:(G(this,t),he(this,t))}toJSON(e){let t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let n in e){let i=e[n];i instanceof W&&this.config.address[i.id]!=null&&(t[n]=i.spec.toJSON(this.field(e[n]),this))}return t}static fromJSON(e,t={},n){if(!e||typeof e.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let i=[];if(n){for(let r in n)if(Object.prototype.hasOwnProperty.call(e,r)){let l=n[r],h=e[r];i.push(l.init(o=>l.spec.fromJSON(h,o)))}}return s.create({doc:e.doc,selection:y.fromJSON(e.selection),extensions:t.extensions?i.concat([t.extensions]):i})}static create(e={}){let t=le.resolve(e.extensions||[],new Map),n=e.doc instanceof w?e.doc:w.of((e.doc||"").split(t.staticFacet(s.lineSeparator)||de)),i=e.selection?e.selection instanceof y?e.selection:y.single(e.selection.anchor,e.selection.head):y.single(0);return qe(i,n.length),t.staticFacet(we)||(i=i.asSingle()),new s(t,n,i,t.dynamicSlots.map(()=>null),(r,l)=>l.create(r),null)}get tabSize(){return this.facet(s.tabSize)}get lineBreak(){return this.facet(s.lineSeparator)||` +`}get readOnly(){return this.facet(Ze)}phrase(e,...t){for(let n of this.facet(s.phrases))if(Object.prototype.hasOwnProperty.call(n,e)){e=n[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(n,i)=>{if(i=="$")return"$";let r=+(i||1);return!r||r>t.length?n:t[r-1]})),e}languageDataAt(e,t,n=-1){let i=[];for(let r of this.facet(We))for(let l of r(this,t,n))Object.prototype.hasOwnProperty.call(l,e)&&i.push(l[e]);return i}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return ft(t.length?t[0]:"")}wordAt(e){let{text:t,from:n,length:i}=this.doc.lineAt(e),r=this.charCategorizer(e),l=e-n,h=e-n;for(;l>0;){let o=ie(t,l,!1);if(r(t.slice(o,l))!=O.Word)break;l=o}for(;h<i;){let o=ie(t,h);if(r(t.slice(h,o))!=O.Word)break;h=o}return l==h?null:y.range(l+n,h+n)}};P.allowMultipleSelections=we;P.tabSize=I.define({combine:s=>s.length?s[0]:4});P.lineSeparator=je;P.readOnly=Ze;P.phrases=I.define({compare(s,e){let t=Object.keys(s),n=Object.keys(e);return t.length==n.length&&t.every(i=>s[i]==e[i])}});P.languageData=We;P.changeFilter=Ue;P.transactionFilter=Ge;P.transactionExtender=He;re.reconfigure=k.define();function vt(s,e,t={}){let n={};for(let i of s)for(let r of Object.keys(i)){let l=i[r],h=n[r];if(h===void 0)n[r]=l;else if(!(h===l||l===void 0))if(Object.hasOwnProperty.call(t,r))n[r]=t[r](h,l);else throw new Error("Config merge conflict for field "+r)}for(let i in e)n[i]===void 0&&(n[i]=e[i]);return n}var j=class{eq(e){return this==e}range(e,t=e){return K.create(e,t,this)}};j.prototype.startSide=j.prototype.endSide=0;j.prototype.point=!1;j.prototype.mapMode=b.TrackDel;function be(s,e){return s==e||s.constructor==e.constructor&&s.eq(e)}var K=class s{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(e,t,n){return new s(e,t,n)}};function Se(s,e){return s.from-e.from||s.value.startSide-e.value.startSide}var Ie=class s{constructor(e,t,n,i){this.from=e,this.to=t,this.value=n,this.maxPoint=i}get length(){return N(this.to)}findIndex(e,t,n,i=0){let r=n?this.to:this.from;for(let l=i,h=r.length;;){if(l==h)return l;let o=l+h>>1,a=r[o]-e||(n?this.value[o].endSide:this.value[o].startSide)-t;if(o==l)return a>=0?l:h;a>=0?h=o:l=o+1}}between(e,t,n,i){for(let r=this.findIndex(t,-1e9,!0),l=this.findIndex(n,1e9,!1,r);r<l;r++)if(i(this.from[r]+e,this.to[r]+e,this.value[r])===!1)return!1}map(e,t,n,i,r){let l=[],h=[],o=[],a=-1,f=-1;e:for(let u=0;u<this.value.length;u++){let c=this.value[u],d=this.from[u]+e,g=this.to[u]+e,m,p;if(d==g){let v=t.mapPos(d,c.startSide,c.mapMode);if(v==null||(m=p=v,c.startSide!=c.endSide&&(p=t.mapPos(d,c.endSide),p<m)))continue}else if(m=t.mapPos(d,c.startSide),p=t.mapPos(g,c.endSide),m>p||m==p&&c.startSide>0&&c.endSide<=0)continue;if(!((p-m||c.endSide-c.startSide)<0))if(a<0&&(a=m),c.point&&(f=Math.max(f,p-m)),(m-n||c.startSide-i)>=0)l.push(c),h.push(m-a),o.push(p-a),n=p,i=c.endSide;else{if(m==p)for(let v=l.length;v>0;v--){if((m-(o[v-1]+a)||c.startSide-l[v-1].endSide)>=0){l.splice(v,0,c),h.splice(v,0,m-a),o.splice(v,0,p-a);continue e}if((m-(h[v-1]+a)||c.endSide-l[v-1].startSide)>0)break}r(m,p,c)}}return{mapped:l.length?new s(h,o,l,f):null,pos:a}}},R=class s{constructor(e,t,n,i){this.chunkPos=e,this.chunk=t,this.nextLayer=n,this.maxPoint=i}static create(e,t,n,i){return new s(e,t,n,i)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:n=!1,filterFrom:i=0,filterTo:r=this.length}=e,l=e.filter;if(t.length==0&&!l)return this;if(n&&(t=t.slice().sort(Se)),this.isEmpty)return t.length?s.of(t):this;let h=new oe(this,null,-1).goto(0),o=0,a=[],f=new H;for(;h.value||o<t.length;)if(o<t.length&&(h.from-t[o].from||h.startSide-t[o].value.startSide)>=0){let u=t[o++];f.addInner(u.from,u.to,u.value,!1)||a.push(u)}else h.rangeIndex==1&&h.chunkIndex<this.chunk.length&&(o==t.length||this.chunkEnd(h.chunkIndex)<t[o].from)&&(!l||i>this.chunkEnd(h.chunkIndex)||r<this.chunkPos[h.chunkIndex])&&f.addChunk(this.chunkPos[h.chunkIndex],this.chunk[h.chunkIndex])?h.nextChunk():((!l||i>h.to||r<h.from||l(h.from,h.to,h.value))&&(f.addInner(h.from,h.to,h.value,!1)||a.push(K.create(h.from,h.to,h.value))),h.next());return f.finishInner(this.nextLayer.isEmpty&&!a.length?s.empty:this.nextLayer.update({add:a,filter:l,filterFrom:i,filterTo:r}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],n=[],i=-1,r,l=(o,a,f)=>{r||(r=new H),r.addRange(o,a,f,!1)};for(let o=0;o<this.chunk.length;o++){let a=this.chunkPos[o],f=this.chunk[o],u=e.touchesRange(a,a+f.length);if(u===!1)i=Math.max(i,f.maxPoint),t.push(f),n.push(e.mapPos(a));else if(u===!0){let[c,d]=t.length?[N(n)+N(t).length,N(N(t).value).endSide]:[-1,-1],{mapped:g,pos:m}=f.map(a,e,c,d,l);g&&(i=Math.max(i,g.maxPoint),t.push(g),n.push(m))}}let h=this.nextLayer.map(e);return r&&(h=r.finishInner(h)),t.length==0?h:new s(n,t,h||s.empty,i)}between(e,t,n){if(!this.isEmpty){for(let i=0;i<this.chunk.length;i++){let r=this.chunkPos[i],l=this.chunk[i];if(t>=r&&e<=r+l.length&&l.between(r,e-r,t-r,n)===!1)return}this.nextLayer.between(e,t,n)}}iter(e=0){return Q.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return Q.from(e).goto(t)}static compare(e,t,n,i,r=-1){let l=e.filter(u=>u.maxPoint>0||!u.isEmpty&&u.maxPoint>=r),h=t.filter(u=>u.maxPoint>0||!u.isEmpty&&u.maxPoint>=r),o=Ne(l,h,n),a=new B(l,o,r),f=new B(h,o,r);n.iterGaps((u,c,d)=>Ve(a,u,f,c,d,i)),n.empty&&n.length==0&&Ve(a,0,f,0,0,i)}static eq(e,t,n=0,i){i==null&&(i=999999999);let r=e.filter(f=>!f.isEmpty&&t.indexOf(f)<0),l=t.filter(f=>!f.isEmpty&&e.indexOf(f)<0);if(r.length!=l.length)return!1;if(!r.length)return!0;let h=Ne(r,l),o=new B(r,h,0).goto(n),a=new B(l,h,0).goto(n);for(;;){if(o.to!=a.to||!Ae(o.active,a.active)||o.point&&(!a.point||!be(o.point,a.point)))return!1;if(o.to>i)return!0;o.next(),a.next()}}static spans(e,t,n,i,r=-1){let l=new B(e,null,r).goto(t),h=t,o=l.openStart;for(;;){let a=Math.min(l.to,n);if(l.point){let f=l.activeForPoint(l.to),u=l.pointFrom<t?f.length+1:l.point.startSide<0?f.length:Math.min(f.length,o);i.point(h,a,l.point,f,u,l.pointRank),o=Math.min(l.openEnd(a),f.length)}else a>h&&(i.span(h,a,l.active,o),o=l.openEnd(a));if(l.to>n)return o+(l.point&&l.to>n?1:0);h=l.to,l.next()}}static of(e,t=!1){let n=new H;for(let i of e instanceof K?[e]:t?ut(e):e)n.add(i.from,i.to,i.value);return n.finish()}static join(e){if(!e.length)return s.empty;let t=N(e);for(let n=e.length-2;n>=0;n--)for(let i=e[n];i!=s.empty;i=i.nextLayer)t=new s(i.chunkPos,i.chunk,t,Math.max(i.maxPoint,t.maxPoint));return t}};R.empty=new R([],[],null,-1);function N(s){return s[s.length-1]}function ut(s){if(s.length>1)for(let e=s[0],t=1;t<s.length;t++){let n=s[t];if(Se(e,n)>0)return s.slice().sort(Se);e=n}return s}R.empty.nextLayer=R.empty;var H=class s{finishChunk(e){this.chunks.push(new Ie(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,n){this.addRange(e,t,n,!0)}addRange(e,t,n,i){this.addInner(e,t,n,i)||(this.nextLayer||(this.nextLayer=new s)).addRange(e,t,n,i)}addInner(e,t,n,i){let r=e-this.lastTo||n.startSide-this.last.endSide;if(i&&r<=0&&(e-this.lastFrom||n.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return r<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=n,this.lastFrom=e,this.lastTo=t,this.value.push(n),n.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let n=t.value.length-1;return this.last=t.value[n],this.lastFrom=t.from[n]+e,this.lastTo=t.to[n]+e,!0}finish(){return this.finishInner(R.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=R.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}};function Ne(s,e,t){let n=new Map;for(let r of s)for(let l=0;l<r.chunk.length;l++)r.chunk[l].maxPoint<=0&&n.set(r.chunk[l],r.chunkPos[l]);let i=new Set;for(let r of e)for(let l=0;l<r.chunk.length;l++){let h=n.get(r.chunk[l]);h!=null&&(t?t.mapPos(h):h)==r.chunkPos[l]&&!t?.touchesRange(h,h+r.chunk[l].length)&&i.add(r.chunk[l])}return i}var oe=class{constructor(e,t,n,i=0){this.layer=e,this.skip=t,this.minPoint=n,this.rank=i}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(e,t=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(e,t,!1),this}gotoInner(e,t,n){for(;this.chunkIndex<this.layer.chunk.length;){let i=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(i)||this.layer.chunkEnd(this.chunkIndex)<e||i.maxPoint<this.minPoint))break;this.chunkIndex++,n=!1}if(this.chunkIndex<this.layer.chunk.length){let i=this.layer.chunk[this.chunkIndex].findIndex(e-this.layer.chunkPos[this.chunkIndex],t,!0);(!n||this.rangeIndex<i)&&this.setRangeIndex(i)}this.next()}forward(e,t){(this.to-e||this.endSide-t)<0&&this.gotoInner(e,t,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let e=this.layer.chunkPos[this.chunkIndex],t=this.layer.chunk[this.chunkIndex],n=e+t.from[this.rangeIndex];if(this.from=n,this.to=e+t.to[this.rangeIndex],this.value=t.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=e}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(e){return this.from-e.from||this.startSide-e.startSide||this.rank-e.rank||this.to-e.to||this.endSide-e.endSide}},Q=class s{constructor(e){this.heap=e}static from(e,t=null,n=-1){let i=[];for(let r=0;r<e.length;r++)for(let l=e[r];!l.isEmpty;l=l.nextLayer)l.maxPoint>=n&&i.push(new oe(l,t,n,r));return i.length==1?i[0]:new s(i)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let n of this.heap)n.goto(e,t);for(let n=this.heap.length>>1;n>=0;n--)ue(this.heap,n);return this.next(),this}forward(e,t){for(let n of this.heap)n.forward(e,t);for(let n=this.heap.length>>1;n>=0;n--)ue(this.heap,n);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),ue(this.heap,0)}}};function ue(s,e){for(let t=s[e];;){let n=(e<<1)+1;if(n>=s.length)break;let i=s[n];if(n+1<s.length&&i.compare(s[n+1])>=0&&(i=s[n+1],n++),t.compare(i)<0)break;s[n]=t,s[e]=i,e=n}}var B=class{constructor(e,t,n){this.minPoint=n,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=Q.from(e,t,n)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){Y(this.active,e),Y(this.activeTo,e),Y(this.activeRank,e),this.minActive=$e(this.active,this.activeTo)}addActive(e){let t=0,{value:n,to:i,rank:r}=this.cursor;for(;t<this.activeRank.length&&(r-this.activeRank[t]||i-this.activeTo[t])>0;)t++;_(this.active,t,n),_(this.activeTo,t,i),_(this.activeRank,t,r),e&&_(e,t,this.cursor.from),this.minActive=$e(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let n=this.openStart<0?[]:null;for(;;){let i=this.minActive;if(i>-1&&(this.activeTo[i]-this.cursor.from||this.active[i].endSide-this.cursor.startSide)<0){if(this.activeTo[i]>e){this.to=this.activeTo[i],this.endSide=this.active[i].endSide;break}this.removeActive(i),n&&Y(n,i)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let r=this.cursor.value;if(!r.point)this.addActive(n),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)this.cursor.next();else{this.point=r,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=r.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}}else{this.to=this.endSide=1e9;break}}if(n){this.openStart=0;for(let i=n.length-1;i>=0&&n[i]<e;i--)this.openStart++}}activeForPoint(e){if(!this.active.length)return this.active;let t=[];for(let n=this.active.length-1;n>=0&&!(this.activeRank[n]<this.pointRank);n--)(this.activeTo[n]>e||this.activeTo[n]==e&&this.active[n].endSide>=this.point.endSide)&&t.push(this.active[n]);return t.reverse()}openEnd(e){let t=0;for(let n=this.activeTo.length-1;n>=0&&this.activeTo[n]>e;n--)t++;return t}};function Ve(s,e,t,n,i,r){s.goto(e),t.goto(n);let l=n+i,h=n,o=n-e,a=!!r.boundChange;for(let f=!1;;){let u=s.to+o-t.to,c=u||s.endSide-t.endSide,d=c<0?s.to+o:t.to,g=Math.min(d,l);if(s.point||t.point?(s.point&&t.point&&be(s.point,t.point)&&Ae(s.activeForPoint(s.to),t.activeForPoint(t.to))||r.comparePoint(h,g,s.point,t.point),f=!1):(f&&(r.boundChange(h),f=!1),g>h&&!Ae(s.active,t.active)&&r.compareRange(h,g,s.active,t.active),a&&g<l&&(u||s.openEnd(d)!=t.openEnd(d))&&(f=!0)),d>l)break;h=d,c<=0&&s.next(),c>=0&&t.next()}}function Ae(s,e){if(s.length!=e.length)return!1;for(let t=0;t<s.length;t++)if(s[t]!=e[t]&&!be(s[t],e[t]))return!1;return!0}function Y(s,e){for(let t=e,n=s.length-1;t<n;t++)s[t]=s[t+1];s.pop()}function _(s,e,t){for(let n=s.length-1;n>=e;n--)s[n+1]=s[n];s[e]=t}function $e(s,e){let t=-1,n=1e9;for(let i=0;i<e.length;i++)(e[i]-n||s[i].endSide-s[t].endSide)<0&&(t=i,n=e[i]);return t}function xt(s,e,t=s.length){let n=0;for(let i=0;i<t&&i<s.length;)s.charCodeAt(i)==9?(n+=e-n%e,i++):(n++,i=ie(s,i));return n}function kt(s,e,t,n){for(let i=0,r=0;;){if(r>=e)return i;if(i==s.length)break;r+=s.charCodeAt(i)==9?t-r%t:1,i=ie(s,i)}return n===!0?-1:s.length}export{w as a,ce as b,ie as c,gt as d,pt as e,mt as f,b as g,L as h,E as i,T as j,y as k,I as l,W as m,wt as n,re as o,J as p,ve as q,xe as r,k as s,A as t,O as u,P as v,vt as w,j as x,K as y,R as z,H as A,xt as B,kt as C}; diff --git a/assets/cm/chunk-I3OVNVKL.js b/assets/cm/chunk-I3OVNVKL.js new file mode 100644 index 0000000..73b884f --- /dev/null +++ b/assets/cm/chunk-I3OVNVKL.js @@ -0,0 +1,7 @@ +import{A as Ts,B as ri,C as ye,a as q,c as ft,d as si,f as Cs,g as wt,i as ni,k as v,l as C,m as pe,n as ge,p as ks,s as U,t as Ms,u as As,v as Ot,w as me,x as be,z as E}from"./chunk-7PWEZHZB.js";var Ds=typeof Symbol>"u"?"__\u037C":Symbol.for("\u037C"),oi=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),Os=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},st=class{constructor(t,e){this.rules=[];let{finish:i}=e||{};function n(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function r(o,l,a,h){let c=[],f=/^@(\w+)\b/.exec(o[0]),d=f&&f[1]=="keyframes";if(f&&l==null)return a.push(o[0]+";");for(let u in l){let p=l[u];if(/&/.test(u))r(u.split(/,\s*/).map(g=>o.map(m=>g.replace(/&/,m))).reduce((g,m)=>g.concat(m)),p,a);else if(p&&typeof p=="object"){if(!f)throw new RangeError("The value of a property ("+u+") should be a primitive value.");r(n(u),p,c,d)}else p!=null&&c.push(u.replace(/_.*/,"").replace(/[A-Z]/g,g=>"-"+g.toLowerCase())+": "+p+";")}(c.length||d)&&a.push((i&&!f&&!h?o.map(i):o).join(", ")+" {"+c.join(" ")+"}")}for(let o in t)r(n(o),t[o],this.rules)}getRules(){return this.rules.join(` +`)}static newName(){let t=Os[Ds]||1;return Os[Ds]=t+1,"\u037C"+t.toString(36)}static mount(t,e,i){let n=t[oi],r=i&&i.nonce;n?r&&n.setNonce(r):n=new li(t,r),n.mount(Array.isArray(e)?e:[e],t)}},Rs=new Map,li=class{constructor(t,e){let i=t.ownerDocument||t,n=i.defaultView;if(!t.head&&t.adoptedStyleSheets&&n.CSSStyleSheet){let r=Rs.get(i);if(r)return t[oi]=r;this.sheet=new n.CSSStyleSheet,Rs.set(i,this)}else this.styleTag=i.createElement("style"),e&&this.styleTag.setAttribute("nonce",e);this.modules=[],t[oi]=this}mount(t,e){let i=this.sheet,n=0,r=0,o=!1;for(let l=0;l<t.length;l++){let a=t[l],h=this.modules.indexOf(a);if(h<r&&h>-1&&(this.modules.splice(h,1),o=!0,r--,h=-1),h==-1){if(this.modules.splice(r++,0,a),o=!0,i)for(let c=0;c<a.rules.length;c++)i.insertRule(a.rules[c],n++)}else{for(;r<h;)n+=this.modules[r++].rules.length;n+=a.rules.length,r++}}if(i)e.adoptedStyleSheets.indexOf(this.sheet)<0&&(e.adoptedStyleSheets=[this.sheet,...e.adoptedStyleSheets]);else{if(o){let a="";for(let h=0;h<this.modules.length;h++)a+=this.modules[h].getRules()+` +`;this.styleTag.textContent=a}let l=e.head||e;this.styleTag.parentNode!=l&&l.insertBefore(this.styleTag,l.firstChild)}}setNonce(t){this.styleTag&&this.styleTag.getAttribute("nonce")!=t&&this.styleTag.setAttribute("nonce",t)}};var nt={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},Rt={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},Mr=typeof navigator<"u"&&/Mac/.test(navigator.platform),Ar=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(H=0;H<10;H++)nt[48+H]=nt[96+H]=String(H);var H;for(H=1;H<=24;H++)nt[H+111]="F"+H;var H;for(H=65;H<=90;H++)nt[H]=String.fromCharCode(H+32),Rt[H]=String.fromCharCode(H);var H;for(we in nt)Rt.hasOwnProperty(we)||(Rt[we]=nt[we]);var we;function Ls(s){var t=Mr&&s.metaKey&&s.shiftKey&&!s.ctrlKey&&!s.altKey||Ar&&s.shiftKey&&s.key&&s.key.length==1||s.key=="Unidentified",e=!t&&s.key||(s.shiftKey?Rt:nt)[s.keyCode]||s.key||"Unidentified";return e=="Esc"&&(e="Escape"),e=="Del"&&(e="Delete"),e=="Left"&&(e="ArrowLeft"),e=="Up"&&(e="ArrowUp"),e=="Right"&&(e="ArrowRight"),e=="Down"&&(e="ArrowDown"),e}function dt(){var s=arguments[0];typeof s=="string"&&(s=document.createElement(s));var t=1,e=arguments[1];if(e&&typeof e=="object"&&e.nodeType==null&&!Array.isArray(e)){for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var n=e[i];typeof n=="string"?s.setAttribute(i,n):n!=null&&(s[i]=n)}t++}for(;t<arguments.length;t++)Bs(s,arguments[t]);return s}function Bs(s,t){if(typeof t=="string")s.appendChild(document.createTextNode(t));else if(t!=null)if(t.nodeType!=null)s.appendChild(t);else if(Array.isArray(t))for(var e=0;e<t.length;e++)Bs(s,t[e]);else throw new RangeError("Unsupported child node: "+t)}var F=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},gi=typeof document<"u"?document:{documentElement:{style:{}}},mi=/Edge\/(\d+)/.exec(F.userAgent),bn=/MSIE \d/.test(F.userAgent),bi=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(F.userAgent),Je=!!(bn||bi||mi),Es=!Je&&/gecko\/(\d+)/i.test(F.userAgent),ai=!Je&&/Chrome\/(\d+)/.exec(F.userAgent),Hs="webkitFontSmoothing"in gi.documentElement.style,yi=!Je&&/Apple Computer/.test(F.vendor),Ps=yi&&(/Mobile\/\w+/.test(F.userAgent)||F.maxTouchPoints>2),y={mac:Ps||/Mac/.test(F.platform),windows:/Win/.test(F.platform),linux:/Linux|X11/.test(F.platform),ie:Je,ie_version:bn?gi.documentMode||6:bi?+bi[1]:mi?+mi[1]:0,gecko:Es,gecko_version:Es?+(/Firefox\/(\d+)/.exec(F.userAgent)||[0,0])[1]:0,chrome:!!ai,chrome_version:ai?+ai[1]:0,ios:Ps,android:/Android\b/.test(F.userAgent),webkit:Hs,webkit_version:Hs?+(/\bAppleWebKit\/(\d+)/.exec(F.userAgent)||[0,0])[1]:0,safari:yi,safari_version:yi?+(/\bVersion\/(\d+(\.\d+)?)/.exec(F.userAgent)||[0,0])[1]:0,tabSize:gi.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function us(s,t){for(let e in s)e=="class"&&t.class?t.class+=" "+s.class:e=="style"&&t.style?t.style+=";"+s.style:t[e]=s[e];return t}var Pe=Object.create(null);function ps(s,t,e){if(s==t)return!0;s||(s=Pe),t||(t=Pe);let i=Object.keys(s),n=Object.keys(t);if(i.length-0!=n.length-0)return!1;for(let r of i)if(r!=e&&(n.indexOf(r)==-1||s[r]!==t[r]))return!1;return!0}function Tr(s,t){for(let e=s.attributes.length-1;e>=0;e--){let i=s.attributes[e].name;t[i]==null&&s.removeAttribute(i)}for(let e in t){let i=t[e];e=="style"?s.style.cssText=i:s.getAttribute(e)!=i&&s.setAttribute(e,i)}}function Ns(s,t,e){let i=!1;if(t)for(let n in t)e&&n in e||(i=!0,n=="style"?s.style.cssText="":s.removeAttribute(n));if(e)for(let n in e)t&&t[n]==e[n]||(i=!0,n=="style"?s.style.cssText=e[n]:s.setAttribute(n,e[n]));return i}function Dr(s){let t=Object.create(null);for(let e=0;e<s.attributes.length;e++){let i=s.attributes[e];t[i.name]=i.value}return t}var lt=class{eq(t){return!1}updateDOM(t,e,i){return!1}compare(t){return this==t||this.constructor==t.constructor&&this.eq(t)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(t){return!0}coordsAt(t,e,i){return null}get isHidden(){return!1}get editable(){return!1}destroy(t){}},W=(function(s){return s[s.Text=0]="Text",s[s.WidgetBefore=1]="WidgetBefore",s[s.WidgetAfter=2]="WidgetAfter",s[s.WidgetRange=3]="WidgetRange",s})(W||(W={})),T=class extends be{constructor(t,e,i,n){super(),this.startSide=t,this.endSide=e,this.widget=i,this.spec=n}get heightRelevant(){return!1}static mark(t){return new se(t)}static widget(t){let e=Math.max(-1e4,Math.min(1e4,t.side||0)),i=!!t.block;return e+=i&&!t.inlineOrder?e>0?3e8:-4e8:e>0?1e8:-1e8,new Ct(t,e,e,i,t.widget||null,!1)}static replace(t){let e=!!t.block,i,n;if(t.isBlockGap)i=-5e8,n=4e8;else{let{start:r,end:o}=yn(t,e);i=(r?e?-3e8:-1:5e8)-1,n=(o?e?2e8:1:-6e8)+1}return new Ct(t,i,n,e,t.widget||null,!0)}static line(t){return new ne(t)}static set(t,e=!1){return E.of(t,e)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};T.none=E.empty;var se=class s extends T{constructor(t){let{start:e,end:i}=yn(t);super(e?-1:5e8,i?1:-6e8,null,t),this.tagName=t.tagName||"span",this.attrs=t.class&&t.attributes?us(t.attributes,{class:t.class}):t.class?{class:t.class}:t.attributes||Pe}eq(t){return this==t||t instanceof s&&this.tagName==t.tagName&&ps(this.attrs,t.attrs)}range(t,e=t){if(t>=e)throw new RangeError("Mark decorations may not be empty");return super.range(t,e)}};se.prototype.point=!1;var ne=class s extends T{constructor(t){super(-2e8,-2e8,null,t)}eq(t){return t instanceof s&&this.spec.class==t.spec.class&&ps(this.spec.attributes,t.spec.attributes)}range(t,e=t){if(e!=t)throw new RangeError("Line decoration ranges must be zero-length");return super.range(t,e)}};ne.prototype.mapMode=wt.TrackBefore;ne.prototype.point=!0;var Ct=class s extends T{constructor(t,e,i,n,r,o){super(e,i,r,t),this.block=n,this.isReplace=o,this.mapMode=n?e<=0?wt.TrackBefore:wt.TrackAfter:wt.TrackDel}get type(){return this.startSide!=this.endSide?W.WidgetRange:this.startSide<=0?W.WidgetBefore:W.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(t){return t instanceof s&&Or(this.widget,t.widget)&&this.block==t.block&&this.startSide==t.startSide&&this.endSide==t.endSide}range(t,e=t){if(this.isReplace&&(t>e||t==e&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&e!=t)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(t,e)}};Ct.prototype.point=!0;function yn(s,t=!1){let{inclusiveStart:e,inclusiveEnd:i}=s;return e==null&&(e=s.inclusive),i==null&&(i=s.inclusive),{start:e??t,end:i??t}}function Or(s,t){return s==t||!!(s&&t&&s.compare(t))}function Nt(s,t,e,i=0){let n=e.length-1;n>=0&&e[n]+i>=s?e[n]=Math.max(e[n],t):e.push(s,t)}var Ne=class s extends be{constructor(t,e,i){super(),this.tagName=t,this.attributes=e,this.rank=i}eq(t){return t==this||t instanceof s&&this.tagName==t.tagName&&ps(this.attributes,t.attributes)}static create(t){return new s(t.tagName,t.attributes||Pe,t.rank==null?50:Math.max(0,Math.min(t.rank,100)))}static set(t,e=!1){return E.of(t,e)}};Ne.prototype.startSide=Ne.prototype.endSide=-1;var N=s=>s.nodeType==1,Vt=s=>s.nodeType==3;function re(s){let t;return s.nodeType==11?t=s.getSelection?s:s.ownerDocument:t=s,t.getSelection()}function wi(s,t){return t?s==t||s.contains(t.nodeType!=1?t.parentNode:t):!1}function Xt(s,t){if(!t.anchorNode)return!1;try{return wi(s,t.anchorNode)}catch{return!1}}function $t(s){return Vt(s)?le(s,0,s.nodeValue.length).getClientRects():N(s)?s.getClientRects():[]}function Gt(s,t,e,i){return e?Ws(s,t,e,i,-1)||Ws(s,t,e,i,1):!1}function gt(s){for(var t=0;;t++)if(s=s.previousSibling,!s)return t}function We(s){return N(s)&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(s.nodeName)}function Ws(s,t,e,i,n){for(;;){if(s==e&&t==i)return!0;if(t==(n<0?0:at(s))){if(s.nodeName=="DIV")return!1;let r=s.parentNode;if(!r||!N(r))return!1;t=gt(s)+(n<0?0:1),s=r}else if(N(s)){if(s=s.childNodes[t+(n<0?-1:0)],N(s)&&(s.nodeName=="IMG"||s.nodeName=="BR"||s.contentEditable=="false"))return!1;t=n<0?at(s):0}else return!1}}function at(s){return Vt(s)?s.nodeValue.length:s.childNodes.length}function oe(s,t){let{left:e,right:i}=s;if(e==i)return s;let n=t?e:i;return{left:n,right:n,top:s.top,bottom:s.bottom}}function Rr(s){let t=s.visualViewport;return t?{left:0,right:t.width,top:0,bottom:t.height}:{left:0,right:s.innerWidth,top:0,bottom:s.innerHeight}}function wn(s,t){let e=t.width/s.offsetWidth,i=t.height/s.offsetHeight;return(e>.995&&e<1.005||!isFinite(e)||Math.abs(t.width-s.offsetWidth)<1)&&(e=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(t.height-s.offsetHeight)<1)&&(i=1),{scaleX:e,scaleY:i}}function Lr(s,t,e,i,n,r,o,l){let a=s.ownerDocument,h=a.defaultView||window;for(let c=s,f=!1;c&&!f;)if(N(c)){let d,u=c==a.body,p=1,g=1;if(u)d=Rr(h);else{if(/^(fixed|sticky)$/.test(getComputedStyle(c).position)&&(f=!0),c.scrollHeight<=c.clientHeight&&c.scrollWidth<=c.clientWidth){c=c.assignedSlot||c.parentNode;continue}let w=c.getBoundingClientRect();({scaleX:p,scaleY:g}=wn(c,w)),d={left:w.left,right:w.left+c.clientWidth*p,top:w.top,bottom:w.top+c.clientHeight*g}}let m=0,b=0;if(n=="nearest")t.top<d.top+o?(b=t.top-(d.top+o),e>0&&t.bottom>d.bottom+b&&(b=t.bottom-d.bottom+o)):t.bottom>d.bottom-o&&(b=t.bottom-d.bottom+o,e<0&&t.top-b<d.top&&(b=t.top-(d.top+o)));else{let w=t.bottom-t.top,x=d.bottom-d.top;b=(n=="center"&&w<=x?t.top+w/2-x/2:n=="start"||n=="center"&&e<0?t.top-o:t.bottom-x+o)-d.top}if(i=="nearest"?t.left<d.left+r?(m=t.left-(d.left+r),e>0&&t.right>d.right+m&&(m=t.right-d.right+r)):t.right>d.right-r&&(m=t.right-d.right+r,e<0&&t.left<d.left+m&&(m=t.left-(d.left+r))):m=(i=="center"?t.left+(t.right-t.left)/2-(d.right-d.left)/2:i=="start"==l?t.left-r:t.right-(d.right-d.left)+r)-d.left,m||b)if(u)h.scrollBy(m,b);else{let w=0,x=0;if(b){let A=c.scrollTop;c.scrollTop+=b/g,x=(c.scrollTop-A)*g}if(m){let A=c.scrollLeft;c.scrollLeft+=m/p,w=(c.scrollLeft-A)*p}t={left:t.left-w,top:t.top-x,right:t.right-w,bottom:t.bottom-x},w&&Math.abs(w-m)<1&&(i="nearest"),x&&Math.abs(x-b)<1&&(n="nearest")}if(u)break;(t.top<d.top||t.bottom>d.bottom||t.left<d.left||t.right>d.right)&&(t={left:Math.max(t.left,d.left),right:Math.min(t.right,d.right),top:Math.max(t.top,d.top),bottom:Math.min(t.bottom,d.bottom)}),c=c.assignedSlot||c.parentNode}else if(c.nodeType==11)c=c.host;else break}function xn(s,t=!0){let e=s.ownerDocument,i=null,n=null;for(let r=s.parentNode;r&&!(r==e.body||(!t||i)&&n);)if(N(r))!n&&r.scrollHeight>r.clientHeight&&(n=r),t&&!i&&r.scrollWidth>r.clientWidth&&(i=r),r=r.assignedSlot||r.parentNode;else if(r.nodeType==11)r=r.host;else break;return{x:i,y:n}}var xi=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(t){return this.anchorNode==t.anchorNode&&this.anchorOffset==t.anchorOffset&&this.focusNode==t.focusNode&&this.focusOffset==t.focusOffset}setRange(t){let{anchorNode:e,focusNode:i}=t;this.set(e,Math.min(t.anchorOffset,e?at(e):0),i,Math.min(t.focusOffset,i?at(i):0))}set(t,e,i,n){this.anchorNode=t,this.anchorOffset=e,this.focusNode=i,this.focusOffset=n}};function vn(s){let t=[];for(let e=s;e;e=e.nodeType==11?e.host:e.parentNode)N(e)&&t.push({node:e,left:e.scrollLeft,top:e.scrollTop});return t}function Sn(s,t=!0){for(let{node:e,left:i,top:n}of s)t&&e.scrollTop!=n&&(e.scrollTop=n),e.scrollLeft!=i&&(e.scrollLeft=i)}var xt=null;y.safari&&y.safari_version>=26&&(xt=!1);function Cn(s){if(s.setActive)return s.setActive();if(xt)return s.focus(xt);let t=vn(s);s.focus(xt==null?{get preventScroll(){return xt={preventScroll:!0},!0}}:void 0),xt||(xt=!1,Sn(t))}var Vs;function le(s,t,e=t){let i=Vs||(Vs=document.createRange());return i.setEnd(s,e),i.setStart(s,t),i}function Wt(s,t,e,i){let n={key:t,code:t,keyCode:e,which:e,cancelable:!0};i&&({altKey:n.altKey,ctrlKey:n.ctrlKey,shiftKey:n.shiftKey,metaKey:n.metaKey}=i);let r=new KeyboardEvent("keydown",n);r.synthetic=!0,s.dispatchEvent(r);let o=new KeyboardEvent("keyup",n);return o.synthetic=!0,s.dispatchEvent(o),r.defaultPrevented||o.defaultPrevented}function Br(s){for(;s;){if(s&&(s.nodeType==9||s.nodeType==11&&s.host))return s;s=s.assignedSlot||s.parentNode}return null}function Er(s,t){let e=t.focusNode,i=t.focusOffset;if(!e||t.anchorNode!=e||t.anchorOffset!=i)return!1;for(i=Math.min(i,at(e));;)if(i){if(!N(e))return!1;let n=e.childNodes[i-1];n.contentEditable=="false"?i--:(e=n,i=at(e))}else{if(e==s)return!0;i=gt(e),e=e.parentNode}}function kn(s){return s instanceof Window?s.pageYOffset>Math.max(0,s.document.documentElement.scrollHeight-s.innerHeight-4):s.scrollTop>Math.max(1,s.scrollHeight-s.clientHeight-4)}function Mn(s,t){for(let e=s,i=t;;){if(Vt(e)&&i>0)return{node:e,offset:i};if(N(e)&&i>0){if(e.contentEditable=="false")return null;e=e.childNodes[i-1],i=at(e)}else if(e.parentNode&&!We(e))i=gt(e),e=e.parentNode;else return null}}function An(s,t){for(let e=s,i=t;;){if(Vt(e)&&i<e.nodeValue.length)return{node:e,offset:i};if(N(e)&&i<e.childNodes.length){if(e.contentEditable=="false")return null;e=e.childNodes[i],i=0}else if(e.parentNode&&!We(e))i=gt(e)+1,e=e.parentNode;else return null}}var J=class s{constructor(t,e,i=!0){this.node=t,this.offset=e,this.precise=i}static before(t,e){return new s(t.parentNode,gt(t),e)}static after(t,e){return new s(t.parentNode,gt(t)+1,e)}},B=(function(s){return s[s.LTR=0]="LTR",s[s.RTL=1]="RTL",s})(B||(B={})),kt=B.LTR,gs=B.RTL;function Tn(s){let t=[];for(let e=0;e<s.length;e++)t.push(1<<+s[e]);return t}var Hr=Tn("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),Pr=Tn("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),vi=Object.create(null),Q=[];for(let s of["()","[]","{}"]){let t=s.charCodeAt(0),e=s.charCodeAt(1);vi[t]=e,vi[e]=-t}function Dn(s){return s<=247?Hr[s]:1424<=s&&s<=1524?2:1536<=s&&s<=1785?Pr[s-1536]:1774<=s&&s<=2220?4:8192<=s&&s<=8204?256:64336<=s&&s<=65023?4:1}var Nr=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/,Y=class{get dir(){return this.level%2?gs:kt}constructor(t,e,i){this.from=t,this.to=e,this.level=i}side(t,e){return this.dir==e==t?this.to:this.from}forward(t,e){return t==(this.dir==e)}static find(t,e,i,n){let r=-1;for(let o=0;o<t.length;o++){let l=t[o];if(l.from<=e&&l.to>=e){if(l.level==i)return o;(r<0||(n!=0?n<0?l.from<e:l.to>e:t[r].level>l.level))&&(r=o)}}if(r<0)throw new RangeError("Index out of range");return r}};function On(s,t){if(s.length!=t.length)return!1;for(let e=0;e<s.length;e++){let i=s[e],n=t[e];if(i.from!=n.from||i.to!=n.to||i.direction!=n.direction||!On(i.inner,n.inner))return!1}return!0}var R=[];function Wr(s,t,e,i,n){for(let r=0;r<=i.length;r++){let o=r?i[r-1].to:t,l=r<i.length?i[r].from:e,a=r?256:n;for(let h=o,c=a,f=a;h<l;h++){let d=Dn(s.charCodeAt(h));d==512?d=c:d==8&&f==4&&(d=16),R[h]=d==4?2:d,d&7&&(f=d),c=d}for(let h=o,c=a,f=a;h<l;h++){let d=R[h];if(d==128)h<l-1&&c==R[h+1]&&c&24?d=R[h]=c:R[h]=256;else if(d==64){let u=h+1;for(;u<l&&R[u]==64;)u++;let p=h&&c==8||u<e&&R[u]==8?f==1?1:8:256;for(let g=h;g<u;g++)R[g]=p;h=u-1}else d==8&&f==1&&(R[h]=1);c=d,d&7&&(f=d)}}}function Vr(s,t,e,i,n){let r=n==1?2:1;for(let o=0,l=0,a=0;o<=i.length;o++){let h=o?i[o-1].to:t,c=o<i.length?i[o].from:e;for(let f=h,d,u,p;f<c;f++)if(u=vi[d=s.charCodeAt(f)])if(u<0){for(let g=l-3;g>=0;g-=3)if(Q[g+1]==-u){let m=Q[g+2],b=m&2?n:m&4?m&1?r:n:0;b&&(R[f]=R[Q[g]]=b),l=g;break}}else{if(Q.length==189)break;Q[l++]=f,Q[l++]=d,Q[l++]=a}else if((p=R[f])==2||p==1){let g=p==n;a=g?0:1;for(let m=l-3;m>=0;m-=3){let b=Q[m+2];if(b&2)break;if(g)Q[m+2]|=2;else{if(b&4)break;Q[m+2]|=4}}}}}function Fr(s,t,e,i){for(let n=0,r=i;n<=e.length;n++){let o=n?e[n-1].to:s,l=n<e.length?e[n].from:t;for(let a=o;a<l;){let h=R[a];if(h==256){let c=a+1;for(;;)if(c==l){if(n==e.length)break;c=e[n++].to,l=n<e.length?e[n].from:t}else if(R[c]==256)c++;else break;let f=r==1,d=(c<t?R[c]:i)==1,u=f==d?f?1:2:i;for(let p=c,g=n,m=g?e[g-1].to:s;p>a;)p==m&&(p=e[--g].from,m=g?e[g-1].to:s),R[--p]=u;a=c}else r=h,a++}}}function Si(s,t,e,i,n,r,o){let l=i%2?2:1;if(i%2==n%2)for(let a=t,h=0;a<e;){let c=!0,f=!1;if(h==r.length||a<r[h].from){let g=R[a];g!=l&&(c=!1,f=g==16)}let d=!c&&l==1?[]:null,u=c?i:i+1,p=a;t:for(;;)if(h<r.length&&p==r[h].from){if(f)break t;let g=r[h];if(!c)for(let m=g.to,b=h+1;;){if(m==e)break t;if(b<r.length&&r[b].from==m)m=r[b++].to;else{if(R[m]==l)break t;break}}if(h++,d)d.push(g);else{g.from>a&&o.push(new Y(a,g.from,u));let m=g.direction==kt!=!(u%2);Ci(s,m?i+1:i,n,g.inner,g.from,g.to,o),a=g.to}p=g.to}else{if(p==e||(c?R[p]!=l:R[p]==l))break;p++}d?Si(s,a,p,i+1,n,d,o):a<p&&o.push(new Y(a,p,u)),a=p}else for(let a=e,h=r.length;a>t;){let c=!0,f=!1;if(!h||a>r[h-1].to){let g=R[a-1];g!=l&&(c=!1,f=g==16)}let d=!c&&l==1?[]:null,u=c?i:i+1,p=a;t:for(;;)if(h&&p==r[h-1].to){if(f)break t;let g=r[--h];if(!c)for(let m=g.from,b=h;;){if(m==t)break t;if(b&&r[b-1].to==m)m=r[--b].from;else{if(R[m-1]==l)break t;break}}if(d)d.push(g);else{g.to<a&&o.push(new Y(g.to,a,u));let m=g.direction==kt!=!(u%2);Ci(s,m?i+1:i,n,g.inner,g.from,g.to,o),a=g.from}p=g.from}else{if(p==t||(c?R[p-1]!=l:R[p-1]==l))break;p--}d?Si(s,p,a,i+1,n,d,o):p<a&&o.push(new Y(p,a,u)),a=p}}function Ci(s,t,e,i,n,r,o){let l=t%2?2:1;Wr(s,n,r,i,l),Vr(s,n,r,i,l),Fr(n,r,i,l),Si(s,n,r,t,e,i,o)}function Rn(s,t,e){if(!s)return[new Y(0,0,t==gs?1:0)];if(t==kt&&!e.length&&!Nr.test(s))return Ln(s.length);if(e.length)for(;s.length>R.length;)R[R.length]=256;let i=[],n=t==kt?0:1;return Ci(s,n,n,e,0,s.length,i),i}function Ln(s){return[new Y(0,s,0)]}var Bn="";function En(s,t,e,i,n){var r;if(!s.length)return null;let o=i.head-s.from,l;if(i.head==s.from&&i.assoc<0){if(!n)return null;o=t[l=0].side(!1,e)}else if(i.head==s.to&&i.assoc>0){if(n)return null;o=t[l=t.length-1].side(!0,e)}else l=Y.find(t,o,(r=i.bidiLevel)!==null&&r!==void 0?r:-1,i.assoc);let a=t[l],h=a.side(n,e);if(o==h){let d=l+=n?1:-1;if(d<0||d>=t.length)return null;a=t[l=d],o=a.side(!n,e),h=a.side(n,e)}let c=ft(s.text,o,a.forward(n,e));(c<a.from||c>a.to)&&(c=h),Bn=s.text.slice(Math.min(o,c),Math.max(o,c));let f=l==(n?t.length-1:0)?null:t[l+(n?1:-1)];if(c==h){if(!f)return n?v.cursor(s.to,1):v.cursor(s.from,-1);if(f.level+(n?0:1)<a.level)return v.cursor(f.side(!n,e)+s.from,f.forward(n,e)?1:-1,f.level)}return v.cursor(c+s.from,a.forward(n,e)?-1:1,a.level)}function Ir(s,t,e){for(let i=t;i<e;i++){let n=Dn(s.charCodeAt(i));if(n==1)return kt;if(n==2||n==4)return gs}return kt}var Hn=C.define(),Pn=C.define(),Nn=C.define(),Wn=C.define(),ki=C.define(),Vn=C.define(),Fn=C.define(),ms=C.define(),bs=C.define(),In=C.define({combine:s=>s.some(t=>t)}),zn=C.define({combine:s=>s.some(t=>t)}),Kn=C.define(),Ut=class s{constructor(t,e,i,n,r,o=!1){this.range=t,this.y=e,this.x=i,this.yMargin=n,this.xMargin=r,this.isSnapshot=o}map(t){return t.empty?this:new s(this.range.map(t),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(t){return this.range.to<=t.doc.length?this:new s(v.cursor(t.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},xe=U.define({map:(s,t)=>s.map(t)}),qn=U.define();function Z(s,t,e){let i=s.facet(Wn);i.length?i[0](t):window.onerror&&window.onerror(String(t),e,void 0,void 0,t)||(e?console.error(e+":",t):console.error(t))}var rt=C.define({combine:s=>s.length?s[0]:!0}),zr=0,Bt=C.define({combine(s){return s.filter((t,e)=>{for(let i=0;i<e;i++)if(s[i].plugin==t.plugin)return!1;return!0})}}),V=class s{constructor(t,e,i,n,r){this.id=t,this.create=e,this.domEventHandlers=i,this.domEventObservers=n,this.baseExtensions=r(this),this.extension=this.baseExtensions.concat(Bt.of({plugin:this,arg:void 0}))}of(t){return this.baseExtensions.concat(Bt.of({plugin:this,arg:t}))}static define(t,e){let{eventHandlers:i,eventObservers:n,provide:r,decorations:o}=e||{};return new s(zr++,t,i,n,l=>{let a=[];return o&&a.push(ti.of(h=>{let c=h.plugin(l);return c?o(c):T.none})),r&&a.push(r(l)),a})}static fromClass(t,e){return s.define((i,n)=>new t(i,n),e)}},Qt=class{constructor(t){this.spec=t,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(t){if(this.value){if(this.mustUpdate){let e=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(e)}catch(i){if(Z(e.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(t,this.spec.arg)}catch(e){Z(t.state,e,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(t){var e;if(!((e=this.value)===null||e===void 0)&&e.destroy)try{this.value.destroy()}catch(i){Z(t.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},_n=C.define(),Ze=C.define(),ti=C.define(),jn=C.define(),ys=C.define(),ce=C.define(),Yn=C.define();function Fs(s,t){let e=s.state.facet(Yn);if(!e.length)return e;let i=e.map(r=>r instanceof Function?r(s):r),n=[];return E.spans(i,t.from,t.to,{point(){},span(r,o,l,a){let h=r-t.from,c=o-t.from,f=n;for(let d=l.length-1;d>=0;d--,a--){let u=l[d].spec.bidiIsolate,p;if(u==null&&(u=Ir(t.text,h,c)),a>0&&f.length&&(p=f[f.length-1]).to==h&&p.direction==u)p.to=c,f=p.inner;else{let g={from:h,to:c,direction:u,inner:[]};f.push(g),f=g.inner}}}}),n}var Xn=C.define();function ws(s){let t=0,e=0,i=0,n=0;for(let r of s.state.facet(Xn)){let o=r(s);o&&(o.left!=null&&(t=Math.max(t,o.left)),o.right!=null&&(e=Math.max(e,o.right)),o.top!=null&&(i=Math.max(i,o.top)),o.bottom!=null&&(n=Math.max(n,o.bottom)))}return{left:t,right:e,top:i,bottom:n}}var _t=C.define(),X=class s{constructor(t,e,i,n){this.fromA=t,this.toA=e,this.fromB=i,this.toB=n}join(t){return new s(Math.min(this.fromA,t.fromA),Math.max(this.toA,t.toA),Math.min(this.fromB,t.fromB),Math.max(this.toB,t.toB))}addToSet(t){let e=t.length,i=this;for(;e>0;e--){let n=t[e-1];if(!(n.fromA>i.toA)){if(n.toA<i.fromA)break;i=i.join(n),t.splice(e-1,1)}}return t.splice(e,0,i),t}static extendWithRanges(t,e){if(e.length==0)return t;let i=[];for(let n=0,r=0,o=0;;){let l=n<t.length?t[n].fromB:1e9,a=r<e.length?e[r]:1e9,h=Math.min(l,a);if(h==1e9)break;let c=h+o,f=h,d=c;for(;;)if(r<e.length&&e[r]<=f){let u=e[r+1];r+=2,f=Math.max(f,u);for(let p=n;p<t.length&&t[p].fromB<=f;p++)o=t[p].toA-t[p].toB;d=Math.max(d,u+o)}else if(n<t.length&&t[n].fromB<=f){let u=t[n++];f=Math.max(f,u.toB),d=Math.max(d,u.toA),o=u.toA-u.toB}else break;i.push(new s(c,d,h,f))}return i}},Ve=class s{constructor(t,e,i){this.view=t,this.state=e,this.transactions=i,this.flags=0,this.startState=t.state,this.changes=ni.empty(this.startState.doc.length);for(let r of i)this.changes=this.changes.compose(r.changes);let n=[];this.changes.iterChangedRanges((r,o,l,a)=>n.push(new X(r,o,l,a))),this.changedRanges=n}static create(t,e,i){return new s(t,e,i)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(t=>t.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},Kr=[],L=class{constructor(t,e,i=0){this.dom=t,this.length=e,this.flags=i,this.parent=null,t.cmTile=this}get breakAfter(){return this.flags&1}get children(){return Kr}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(t){if(this.flags|=2,this.flags&4){this.flags&=-5;let e=this.domAttrs;e&&Tr(this.dom,e)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(t){this.dom=t,t.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(t,e=this.posAtStart){let i=e;for(let n of this.children){if(n==t)return i;i+=n.length+n.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(t){return this.posBefore(t)+t.length}covers(t){return!0}coordsIn(t,e,i){return null}domPosFor(t,e){let i=gt(this.dom),n=this.length?t>0:e>0;return new J(this.parent.dom,i+(n?1:0),t==0||t==this.length)}markDirty(t){this.flags&=-3,t&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let t=this;t;t=t.parent)if(t instanceof It)return t;return null}static get(t){return t.cmTile}},Ft=class extends L{constructor(t){super(t,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(t){this.children.push(t),t.parent=this}sync(t){if(this.flags&2)return;super.sync(t);let e=this.dom,i=null,n,r=t?.node==e?t:null,o=0;for(let l of this.children){if(l.sync(t),o+=l.length+l.breakAfter,n=i?i.nextSibling:e.firstChild,r&&n!=l.dom&&(r.written=!0),l.dom.parentNode==e)for(;n&&n!=l.dom;)n=Is(n);else e.insertBefore(l.dom,n);i=l.dom}for(n=i?i.nextSibling:e.firstChild,r&&n&&(r.written=!0);n;)n=Is(n);this.length=o}};function Is(s){let t=s.nextSibling;return s.parentNode.removeChild(s),t}var It=class extends Ft{constructor(t,e){super(e),this.view=t}owns(t){for(;t;t=t.parent)if(t==this)return!0;return!1}isBlock(){return!0}nearest(t){for(;;){if(!t)return null;let e=L.get(t);if(e&&this.owns(e))return e;t=t.parentNode}}blockTiles(t){for(let e=[],i=this,n=0,r=0;;)if(n==i.children.length){if(!e.length)return;i=i.parent,i.breakAfter&&r++,n=e.pop()}else{let o=i.children[n++];if(o instanceof ot)e.push(n),i=o,n=0;else{let l=r+o.length,a=t(o,r);if(a!==void 0)return a;r=l+o.breakAfter}}}resolveBlock(t,e){let i,n=-1,r,o=-1;if(this.blockTiles((l,a)=>{let h=a+l.length;if(t>=a&&t<=h){if(l.isWidget()&&e>=-1&&e<=1){if(l.flags&32)return!0;l.flags&16&&(i=void 0)}(a<t||t==h&&(e<-1?l.length:l.covers(1)))&&(!i||!l.isWidget()&&i.isWidget())&&(i=l,n=t-a),(h>t||t==a&&(e>1?l.length:l.covers(-1)))&&(!r||!l.isWidget()&&r.isWidget())&&(r=l,o=t-a)}}),!i&&!r)throw new Error("No tile at position "+t);return i&&e<0||!r?{tile:i,offset:n}:{tile:r,offset:o}}},ot=class s extends Ft{constructor(t,e){super(t),this.wrapper=e}isBlock(){return!0}covers(t){return this.children.length?t<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(t,e){let i=new s(e||document.createElement(t.tagName),t);return e||(i.flags|=4),i}},zt=class s extends Ft{constructor(t,e){super(t),this.attrs=e}isLine(){return!0}static start(t,e,i){let n=new s(e||document.createElement("div"),t);return(!e||!i)&&(n.flags|=4),n}get domAttrs(){return this.attrs}resolveInline(t,e,i=!1){let n=null,r=-1,o=null,l=-1;function a(c,f){for(let d=0,u=0;d<c.children.length&&u<=f;d++){let p=c.children[d],g=u+p.length;g>=f&&(p.isComposite()?a(p,f-u):(!o||i&&o.isHidden&&(e>0&&!(o.flags&32)||i&&_r(o,p)))&&(g>f||p.flags&32&&e<=1)?(o=p,l=f-u):(u<f||p.flags&16&&!(i&&p.isHidden)&&e>=-1)&&(n=p,r=f-u)),u=g}}a(this,t);let h=(e<0?n:o)||n||o;return h?{tile:h,offset:h==n?r:l}:null}coordsIn(t,e,i){let n=this.resolveInline(t,e,!0);return n?n.tile.coordsIn(Math.max(0,n.offset),e,i):qr(this)}domIn(t,e){let i=this.resolveInline(t,e);if(i){let{tile:n,offset:r}=i;if(this.dom.contains(n.dom))return n.isText()?new J(n.dom,Math.min(n.dom.nodeValue.length,r)):n.domPosFor(r,n.flags&16?1:n.flags&32?-1:e);let o=i.tile.parent,l=!1;for(let a of o.children){if(l)return new J(a.dom,0);a==i.tile&&(l=!0)}}return new J(this.dom,0)}};function qr(s){let t=s.dom.lastChild;if(!t)return s.dom.getBoundingClientRect();let e=$t(t);return e[e.length-1]||null}function _r(s,t){let e=s.coordsIn(0,1),i=t.coordsIn(0,1);return e&&i&&i.top<e.bottom}var z=class s extends Ft{constructor(t,e){super(t),this.mark=e}get domAttrs(){return this.mark.attrs}static of(t,e){let i=new s(e||document.createElement(t.tagName),t);return e||(i.flags|=4),i}},vt=class s extends L{constructor(t,e){super(t,e.length),this.text=e}sync(t){this.flags&2||(super.sync(t),this.dom.nodeValue!=this.text&&(t&&t.node==this.dom&&(t.written=!0),this.dom.nodeValue=this.text))}isText(){return!0}toString(){return JSON.stringify(this.text)}coordsIn(t,e,i){let n=this.dom.nodeValue.length;t>n&&(t=n);let r=t,o=t,l=0;t==0&&e<0||t==n&&e>=0?y.chrome||y.gecko||(t?(r--,l=1):o<n&&(o++,l=-1)):e<0?r--:o<n&&o++;let a=le(this.dom,r,o).getClientRects();if(!a.length)return null;let h=a[(l?l<0:e>=0)?0:a.length-1];return y.safari&&!l&&h.width==0&&(h=Array.prototype.find.call(a,c=>c.width)||h),i==null?h:oe(h,(l?l>0:e<0)==i)}static of(t,e){let i=new s(e||document.createTextNode(t),t);return e||(i.flags|=2),i}},Mt=class s extends L{constructor(t,e,i,n){super(t,e,n),this.widget=i}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(t){return this.flags&48?!1:(this.flags&(t<0?64:128))>0}coordsIn(t,e){return this.coordsInWidget(t,e,!1)}coordsInWidget(t,e,i){let n=this.widget.coordsAt(this.dom,t,e);if(n)return n;if(i)return oe(this.dom.getBoundingClientRect(),this.length?t==0:e<=0);{let r=this.dom.getClientRects(),o=null;if(!r.length)return null;let l=this.flags&16?!0:this.flags&32?!1:t>0;for(let a=l?r.length-1:0;o=r[a],!(t>0?a==0:a==r.length-1||o.top<o.bottom);a+=l?-1:1);return oe(o,!l)}}get overrideDOMText(){if(!this.length)return q.empty;let{root:t}=this;if(!t)return q.empty;let e=this.posAtStart;return t.view.state.doc.slice(e,e+this.length)}destroy(){super.destroy(),this.widget.destroy(this.dom)}static of(t,e,i,n,r){return r||(r=t.toDOM(e),t.editable||(r.contentEditable="false")),new s(r,i,t,n)}},Kt=class extends L{constructor(t){let e=document.createElement("img");e.className="cm-widgetBuffer",e.setAttribute("aria-hidden","true"),super(e,0,t)}get isHidden(){return!0}get overrideDOMText(){return q.empty}coordsIn(t,e,i){let n=this.dom.getBoundingClientRect();return i==null?n:oe(n,e>0==i)}},Mi=class{constructor(t){this.index=0,this.beforeBreak=!1,this.parents=[],this.tile=t}advance(t,e,i){let{tile:n,index:r,beforeBreak:o,parents:l}=this;for(;t||e>0;)if(n.isComposite())if(o){if(!t)break;i&&i.break(),t--,o=!1}else if(r==n.children.length){if(!t&&!l.length)break;i&&i.leave(n),o=!!n.breakAfter,{tile:n,index:r}=l.pop(),r++}else{let a=n.children[r],h=a.breakAfter;(e>0?a.length<=t:a.length<t)&&(!i||i.skip(a,0,a.length)!==!1||!a.isComposite)?(o=!!h,r++,t-=a.length):(l.push({tile:n,index:r}),n=a,r=0,i&&a.isComposite()&&i.enter(a))}else{let a=n.length;if(r<a&&t){let h=Math.min(t,a-r);i&&i.skip(n,r,r+h),t-=h,r+=h}if(r==a)o=!!n.breakAfter,{tile:n,index:r}=l.pop(),r++;else if(!t)break}return this.tile=n,this.index=r,this.beforeBreak=o,this}get root(){return this.parents.length?this.parents[0].tile:this.tile}},Ai=class{constructor(t,e,i,n){this.from=t,this.to=e,this.wrapper=i,this.rank=n}},Ti=class{constructor(t,e,i){this.cache=t,this.root=e,this.blockWrappers=i,this.curLine=null,this.lastBlock=null,this.afterWidget=null,this.pos=0,this.wrappers=[],this.wrapperPos=0}addText(t,e,i,n){var r;this.flushBuffer();let o=this.ensureMarks(e,i),l=o.lastChild;if(l&&l.isText()&&!(l.flags&8)&&l.length+t.length<512){this.cache.reused.set(l,2);let a=o.children[o.children.length-1]=new vt(l.dom,l.text+t);a.parent=o}else o.append(n||vt.of(t,(r=this.cache.find(vt))===null||r===void 0?void 0:r.dom));this.pos+=t.length,this.afterWidget=null}addComposition(t,e){let i=this.curLine;i.dom!=e.line.dom&&(i.setDOM(this.cache.reused.has(e.line)?hi(e.line.dom):e.line.dom),this.cache.reused.set(e.line,2));let n=i;for(let l=e.marks.length-1;l>=0;l--){let a=e.marks[l],h=n.lastChild;if(h instanceof z&&h.mark.eq(a.mark))h.dom!=a.dom&&h.setDOM(hi(a.dom)),n=h;else{let{dom:c}=a;this.cache.reused.get(a)&&L.get(a.dom)&&(c=hi(a.dom));let f=z.of(a.mark,c);n.append(f),n=f}this.cache.reused.set(a,2)}let r=L.get(t.text);r&&this.cache.reused.set(r,2);let o=new vt(t.text,t.text.nodeValue);o.flags|=8,this.pos=t.range.toB,n.append(o)}addInlineWidget(t,e,i){let n=this.afterWidget&&t.flags&48&&(this.afterWidget.flags&48)==(t.flags&48);n||this.flushBuffer();let r=this.ensureMarks(e,i);!n&&!(t.flags&16)&&r.append(this.getBuffer(1)),r.append(t),this.pos+=t.length,this.afterWidget=t}addMark(t,e,i){this.flushBuffer(),this.ensureMarks(e,i).append(t),this.pos+=t.length,this.afterWidget=null}addBlockWidget(t){this.getBlockPos().append(t),this.pos+=t.length,this.lastBlock=t,this.endLine()}continueWidget(t){let e=this.afterWidget||this.lastBlock;e.length+=t,this.pos+=t}addLineStart(t,e){var i;t||(t=$n);let n=zt.start(t,e||((i=this.cache.find(zt))===null||i===void 0?void 0:i.dom),!!e);this.getBlockPos().append(this.lastBlock=this.curLine=n)}addLine(t){this.getBlockPos().append(t),this.pos+=t.length,this.lastBlock=t,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(t){this.blockPosCovered()||this.addLineStart(t)}ensureLine(t){this.curLine||this.addLineStart(t)}ensureMarks(t,e){var i;let n=this.curLine;for(let r=t.length-1;r>=0;r--){let o=t[r],l;if(e>0&&(l=n.lastChild)&&l instanceof z&&l.mark.eq(o))n=l,e--;else{let a=z.of(o,(i=this.cache.find(z,h=>h.mark.eq(o)))===null||i===void 0?void 0:i.dom);n.append(a),n=a,e=0}}return n}endLine(){if(this.curLine){this.flushBuffer();let t=this.curLine.lastChild;(!t||!zs(this.curLine,!1)||t.dom.nodeName!="BR"&&t.isWidget()&&!(y.ios&&zs(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(ci,0,32)||new Mt(ci.toDOM(),0,ci,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let t=this.wrappers.length-1;t>=0;t--)this.wrappers[t].to<this.pos&&this.wrappers.splice(t,1);for(let t=this.blockWrappers;t.value&&t.from<=this.pos;t.next())if(t.to>=this.pos){let e=t.rank*102+t.value.rank,i=new Ai(t.from,t.to,t.value,e),n=this.wrappers.length;for(;n>0&&(this.wrappers[n-1].rank-i.rank||this.wrappers[n-1].to-i.to)<0;)n--;this.wrappers.splice(n,0,i)}this.wrapperPos=this.pos}getBlockPos(){var t;this.updateBlockWrappers();let e=this.root;for(let i of this.wrappers){let n=e.lastChild;if(i.from<this.pos&&n instanceof ot&&n.wrapper.eq(i.wrapper))e=n;else{let r=ot.of(i.wrapper,(t=this.cache.find(ot,o=>o.wrapper.eq(i.wrapper)))===null||t===void 0?void 0:t.dom);e.append(r),e=r}}return e}blockPosCovered(){let t=this.lastBlock;return t!=null&&!t.breakAfter&&(!t.isWidget()||(t.flags&160)>0)}getBuffer(t){let e=2|(t<0?16:32),i=this.cache.find(Kt,void 0,1);return i&&(i.flags=e),i||new Kt(e)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}},Di=class{constructor(t){this.skipCount=0,this.text="",this.textOff=0,this.cursor=t.iter()}skip(t){this.textOff+t<=this.text.length?this.textOff+=t:(this.skipCount+=t-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(t){if(this.textOff==this.text.length){let{value:n,lineBreak:r,done:o}=this.cursor.next(this.skipCount);if(this.skipCount=0,o)throw new Error("Ran out of text content when drawing inline views");this.text=n;let l=this.textOff=Math.min(t,n.length);return r?null:n.slice(0,l)}let e=Math.min(this.text.length,this.textOff+t),i=this.text.slice(this.textOff,e);return this.textOff=e,i}},Fe=[Mt,zt,vt,z,Kt,ot,It];for(let s=0;s<Fe.length;s++)Fe[s].bucket=s;var Oi=class{constructor(t){this.view=t,this.buckets=Fe.map(()=>[]),this.index=Fe.map(()=>0),this.reused=new Map}add(t){let e=t.constructor.bucket,i=this.buckets[e];i.length<6?i.push(t):i[this.index[e]=(this.index[e]+1)%6]=t}find(t,e,i=2){let n=t.bucket,r=this.buckets[n],o=this.index[n];for(let l=0;l<r.length;l++){let a=(l+o)%r.length,h=r[a];if((!e||e(h))&&!this.reused.has(h))return r.splice(a,1),a<o&&this.index[n]--,this.reused.set(h,i),h}return null}findWidget(t,e,i){let n=this.buckets[0];if(n.length)for(let r=0,o=0;;r++){if(r==n.length){if(o)return null;o=1,r=0}let l=n[r];if(!this.reused.has(l)&&(o==0?l.widget.compare(t):l.widget.constructor==t.constructor&&t.updateDOM(l.dom,this.view,l.widget)))return n.splice(r,1),r<this.index[0]&&this.index[0]--,l.widget==t&&l.length==e&&(l.flags&497)==i?(this.reused.set(l,1),l):(this.reused.set(l,2),new Mt(l.dom,e,t,l.flags&-498|i))}}reuse(t){return this.reused.set(t,1),t}maybeReuse(t,e=2){if(!this.reused.has(t))return this.reused.set(t,e),t.dom}clear(){for(let t=0;t<this.buckets.length;t++)this.buckets[t].length=this.index[t]=0}},Ri=class{constructor(t,e,i,n,r){this.view=t,this.decorations=n,this.disallowBlockEffectsFor=r,this.openWidget=!1,this.openMarks=0,this.cache=new Oi(t),this.text=new Di(t.state.doc),this.builder=new Ti(this.cache,new It(t,t.contentDOM),E.iter(i)),this.cache.reused.set(e,2),this.old=new Mi(e),this.reuseWalker={skip:(o,l,a)=>{if(this.cache.add(o),o.isComposite())return!1},enter:o=>this.cache.add(o),leave:()=>{},break:()=>{}}}run(t,e){let i=e&&this.getCompositionContext(e.text);for(let n=0,r=0,o=0;;){let l=o<t.length?t[o++]:null,a=l?l.fromA:this.old.root.length;if(a>n){let h=a-n;this.preserve(h,!o,!l),n=a,r+=h}if(!l)break;e&&l.fromA<=e.range.fromA&&l.toA>=e.range.toA?(this.forward(l.fromA,e.range.fromA,e.range.fromA<e.range.toA?1:-1),this.emit(r,e.range.fromB),this.builder.flushBuffer(),this.cache.clear(),this.builder.addComposition(e,i),this.text.skip(e.range.toB-e.range.fromB),this.forward(e.range.fromA,l.toA),this.emit(e.range.toB,l.toB)):(this.forward(l.fromA,l.toA),this.emit(r,l.toB)),r=l.toB,n=l.toA}return this.builder.curLine&&this.builder.endLine(),this.builder.root}preserve(t,e,i){let n=Xr(this.old),r=this.openMarks;this.old.advance(t,i?1:-1,{skip:(o,l,a)=>{if(o.isWidget())if(this.openWidget)this.builder.continueWidget(a-l);else{let h=a>0||l<o.length?Mt.of(o.widget,this.view,a-l,o.flags&496,this.cache.maybeReuse(o)):this.cache.reuse(o);h.flags&256?(h.flags&=-2,this.builder.addBlockWidget(h)):(this.builder.ensureLine(null),this.builder.addInlineWidget(h,n,r),r=n.length)}else if(o.isText())this.builder.ensureLine(null),!l&&a==o.length&&!this.cache.reused.has(o)?this.builder.addText(o.text,n,r,this.cache.reuse(o)):(this.cache.add(o),this.builder.addText(o.text.slice(l,a),n,r)),r=n.length;else if(o.isLine())o.flags&=-2,this.cache.reused.set(o,1),this.builder.addLine(o);else if(o instanceof Kt)this.cache.add(o);else if(o instanceof z)this.builder.ensureLine(null),this.builder.addMark(o,n,r),this.cache.reused.set(o,1),r=n.length;else return!1;this.openWidget=!1},enter:o=>{o.isLine()?this.builder.addLineStart(o.attrs,this.cache.maybeReuse(o)):(this.cache.add(o),o instanceof z&&n.unshift(o.mark)),this.openWidget=!1},leave:o=>{o.isLine()?n.length&&(n.length=r=0):o instanceof z&&(n.shift(),r=Math.min(r,n.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(t)}emit(t,e){let i=null,n=this.builder,r=-1,o=E.spans(this.decorations,t,e,{point:(l,a,h,c,f,d)=>{if(h instanceof Ct){if(this.disallowBlockEffectsFor[d]){if(h.block)throw new RangeError("Block decorations may not be specified via plugins");if(a>this.view.state.doc.lineAt(l).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(r=c.length,f>c.length)n.continueWidget(a-l);else{let u=h.widget||(h.block?mt.block:mt.inline),p=jr(h),g=this.cache.findWidget(u,a-l,p)||Mt.of(u,this.view,a-l,p);h.block?(h.startSide>0&&n.addLineStartIfNotCovered(i),n.addBlockWidget(g)):(n.ensureLine(i),n.addInlineWidget(g,c,f))}i=null}else i=Yr(i,h);a>l&&this.text.skip(a-l)},span:(l,a,h,c)=>{for(let f=l;f<a;){let d=this.text.next(Math.min(512,a-f));d==null?(n.addLineStartIfNotCovered(i),n.addBreak(),f++):(n.ensureLine(i),n.addText(d,h,f==l?c:h.length),f+=d.length),i=null}r=h.length}});r>-1&&(this.openWidget=o>r),this.openWidget||n.addLineStartIfNotCovered(i),this.openMarks=o}forward(t,e,i=1){e-t<=10?this.old.advance(e-t,i,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(e-t-10,-1),this.old.advance(5,i,this.reuseWalker))}getCompositionContext(t){let e=[],i=null;for(let n=t.parentNode;;n=n.parentNode){let r=L.get(n);if(n==this.view.contentDOM)break;r instanceof z?e.push(r):r?.isLine()?i=r:r instanceof ot||(n.nodeName=="DIV"&&!i?i=new zt(n,$n):i||e.push(z.of(new se({tagName:n.nodeName.toLowerCase(),attributes:Dr(n)}),n)))}return i?{line:i,marks:e}:null}};function zs(s,t){let e=i=>{for(let n of i.children)if((t?n.isText():n.length)||e(n))return!0;return!1};return e(s)}function jr(s){let t=s.isReplace?(s.startSide<0?64:0)|(s.endSide>0?128:0):s.startSide>0?32:16;return s.block&&(t|=256),t}var $n={class:"cm-line"};function Yr(s,t){let e=t.spec.attributes,i=t.spec.class;return!e&&!i||(s||(s={class:"cm-line"}),e&&us(e,s),i&&(s.class+=" "+i)),s}function Xr(s){let t=[];for(let e=s.parents.length;e>1;e--){let i=e==s.parents.length?s.tile:s.parents[e].tile;i instanceof z&&t.push(i.mark)}return t}function hi(s){let t=L.get(s);return t&&t.setDOM(s.cloneNode()),s}var mt=class extends lt{constructor(t){super(),this.tag=t}eq(t){return t.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(t){return t.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}};mt.inline=new mt("span");mt.block=new mt("div");var ci=new class extends lt{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}},Ie=class{constructor(t){this.view=t,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=T.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new It(t,t.contentDOM),this.updateInner([new X(0,0,0,t.state.doc.length)],null)}update(t){var e;let i=t.changedRanges;this.minWidth>0&&i.length&&(i.every(({fromA:c,toA:f})=>f<this.minWidthFrom||c>this.minWidthTo)?(this.minWidthFrom=t.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=t.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(t);let n=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((e=this.domChanged)===null||e===void 0)&&e.newSel?n=this.domChanged.newSel.head:!eo(t.changes,this.hasComposition)&&!t.selectionSet&&(n=t.state.selection.main.head));let r=n>-1?Gr(this.view,t.changes,n):null;if(this.domChanged=null,this.hasComposition){let{from:c,to:f}=this.hasComposition;i=new X(c,f,t.changes.mapPos(c,-1),t.changes.mapPos(f,1)).addToSet(i.slice())}this.hasComposition=r?{from:r.range.fromB,to:r.range.toB}:null,(y.ie||y.chrome)&&!r&&t&&t.state.doc.lines!=t.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,l=this.blockWrappers;this.updateDeco();let a=Jr(o,this.decorations,t.changes);a.length&&(i=X.extendWithRanges(i,a));let h=Zr(l,this.blockWrappers,t.changes);return h.length&&(i=X.extendWithRanges(i,h)),r&&!i.some(c=>c.fromA<=r.range.fromA&&c.toA>=r.range.toA)&&(i=r.range.addToSet(i.slice())),this.tile.flags&2&&i.length==0?!1:(this.updateInner(i,r),t.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(t,e){this.view.viewState.mustMeasureContent=!0;let{observer:i}=this.view;i.ignore(()=>{if(e||t.length){let o=this.tile,l=new Ri(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);e&&L.get(e.text)&&l.cache.reused.set(L.get(e.text),2),this.tile=l.run(t,e),Li(o,l.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let r=y.chrome||y.ios?{node:i.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(r),r&&(r.written||i.selectionRange.focusNode!=r.node||!this.tile.dom.contains(r.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let n=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let r of this.tile.children)r.isWidget()&&r.widget instanceof Jt&&n.push(r.dom);i.updateGaps(n)}updateEditContextFormatting(t){this.editContextFormatting=this.editContextFormatting.map(t.changes);for(let e of t.transactions)for(let i of e.effects)i.is(qn)&&(this.editContextFormatting=i.value)}updateSelection(t=!1,e=!1){(t||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let{dom:i}=this.tile,n=this.view.root.activeElement,r=n==i,o=!r&&!(this.view.state.facet(rt)||i.tabIndex>-1)&&Xt(i,this.view.observer.selectionRange)&&!(n&&i.contains(n));if(!(r||e||o))return;let l=this.forceSelection;this.forceSelection=!1;let a=this.view.state.selection.main,h,c;if(a.empty?c=h=this.inlineDOMNearPos(a.anchor,a.assoc||1):(c=this.inlineDOMNearPos(a.head,a.head==a.from?1:-1),h=this.inlineDOMNearPos(a.anchor,a.anchor==a.from?1:-1)),y.gecko&&a.empty&&!this.hasComposition&&$r(h)){let d=document.createTextNode("");this.view.observer.ignore(()=>h.node.insertBefore(d,h.node.childNodes[h.offset]||null)),h=c=new J(d,0),l=!0}let f=this.view.observer.selectionRange;(l||!f.focusNode||(!Gt(h.node,h.offset,f.anchorNode,f.anchorOffset)||!Gt(c.node,c.offset,f.focusNode,f.focusOffset))&&!this.suppressWidgetCursorChange(f,a))&&(this.view.observer.ignore(()=>{y.android&&y.chrome&&i.contains(f.focusNode)&&to(f.focusNode,i)&&(i.blur(),i.focus({preventScroll:!0}));let d=re(this.view.root);if(d)if(a.empty){if(y.gecko){let u=Ur(h.node,h.offset);if(u&&u!=3){let p=(u==1?Mn:An)(h.node,h.offset);p&&(h=new J(p.node,p.offset))}}d.collapse(h.node,h.offset),a.bidiLevel!=null&&d.caretBidiLevel!==void 0&&(d.caretBidiLevel=a.bidiLevel)}else if(d.extend){d.collapse(h.node,h.offset);try{d.extend(c.node,c.offset)}catch{}}else{let u=document.createRange();a.anchor>a.head&&([h,c]=[c,h]),u.setEnd(c.node,c.offset),u.setStart(h.node,h.offset),d.removeAllRanges(),d.addRange(u)}o&&this.view.root.activeElement==i&&(i.blur(),n&&n.focus())}),this.view.observer.setSelectionRange(h,c)),this.impreciseAnchor=h.precise?null:new J(f.anchorNode,f.anchorOffset),this.impreciseHead=c.precise?null:new J(f.focusNode,f.focusOffset)}suppressWidgetCursorChange(t,e){return this.hasComposition&&e.empty&&Gt(t.focusNode,t.focusOffset,t.anchorNode,t.anchorOffset)&&this.posFromDOM(t.focusNode,t.focusOffset)==e.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:t}=this,e=t.state.selection.main,i=re(t.root),{anchorNode:n,anchorOffset:r}=t.observer.selectionRange;if(!i||!e.empty||!e.assoc||!i.modify)return;let o=this.lineAt(e.head,e.assoc);if(!o)return;let l=o.posAtStart;if(e.head==l||e.head==l+o.length)return;let a=this.coordsAt(e.head,-1),h=this.coordsAt(e.head,1);if(!a||!h||a.bottom>h.top)return;let c=this.domAtPos(e.head+e.assoc,e.assoc);i.collapse(c.node,c.offset),i.modify("move",e.assoc<0?"forward":"backward","lineboundary"),t.observer.readSelectionRange();let f=t.observer.selectionRange;t.docView.posFromDOM(f.anchorNode,f.anchorOffset)!=e.from&&i.collapse(n,r)}posFromDOM(t,e){let i=this.tile.nearest(t);if(!i)return this.tile.dom.compareDocumentPosition(t)&2?0:this.view.state.doc.length;let n=i.posAtStart;if(i.isComposite()){let r;if(t==i.dom)r=i.dom.childNodes[e];else{let o=at(t)==0?0:e==0?-1:1;for(;;){let l=t.parentNode;if(l==i.dom)break;o==0&&l.firstChild!=l.lastChild&&(t==l.firstChild?o=-1:o=1),t=l}o<0?r=t:r=t.nextSibling}if(r==i.dom.firstChild)return n;for(;r&&!L.get(r);)r=r.nextSibling;if(!r)return n+i.length;for(let o=0,l=n;;o++){let a=i.children[o];if(a.dom==r)return l;l+=a.length+a.breakAfter}}else return i.isText()?t==i.dom?n+e:n+(e?i.length:0):n}domAtPos(t,e){let{tile:i,offset:n}=this.tile.resolveBlock(t,e);return i.isWidget()?i.domPosFor(n,e):i.domIn(n,e)}inlineDOMNearPos(t,e){let i,n=-1,r=!1,o,l=-1,a=!1;return this.tile.blockTiles((h,c)=>{if(h.isWidget()){if(h.flags&32&&c>=t)return!0;h.flags&16&&(r=!0)}else{let f=c+h.length;if(c<=t&&(i=h,n=t-c,r=f<t),f>=t&&!o&&(o=h,l=t-c,a=c>t),c>t&&o)return!0}}),!i&&!o?this.domAtPos(t,e):(r&&o?i=null:a&&i&&(o=null),i&&e<0||!o?i.domIn(n,e):o.domIn(l,e))}coordsAt(t,e,i){let{tile:n,offset:r}=this.tile.resolveBlock(t,e);return n.isWidget()?n.widget instanceof Jt?null:n.coordsInWidget(r,e,!0):n.coordsIn(r,e,i)}lineAt(t,e){let{tile:i}=this.tile.resolveBlock(t,e);return i.isLine()?i:null}coordsForChar(t){let{tile:e,offset:i}=this.tile.resolveBlock(t,1);if(!e.isLine())return null;function n(r,o){if(r.isComposite())for(let l of r.children){if(l.length>=o){let a=n(l,o);if(a)return a}if(o-=l.length,o<0)break}else if(r.isText()&&o<r.length){let l=ft(r.text,o);if(l==o)return null;let a=le(r.dom,o,l).getClientRects();for(let h=0;h<a.length;h++){let c=a[h];if(h==a.length-1||c.top<c.bottom&&c.left<c.right)return c}}return null}return n(e,i)}measureVisibleLineHeights(t){let e=[],{from:i,to:n}=t,r=this.view.contentDOM.clientWidth,o=r>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,l=-1,a=this.view.textDirection==B.LTR,h=0,c=(f,d,u)=>{for(let p=0;p<f.children.length&&!(d>n);p++){let g=f.children[p],m=d+g.length,b=g.dom.getBoundingClientRect(),{height:w}=b;if(u&&!p&&(h+=b.top-u.top),g instanceof ot)m>i&&c(g,d,b);else if(d>=i&&(h>0&&e.push(-h),e.push(w+h),h=0,o)){let x=g.dom.lastChild,A=x?$t(x):[];if(A.length){let k=A[A.length-1],S=a?k.right-b.left:b.right-k.left;S>l&&(l=S,this.minWidth=r,this.minWidthFrom=d,this.minWidthTo=m)}}u&&p==f.children.length-1&&(h+=u.bottom-b.bottom),d=m+g.breakAfter}};return c(this.tile,0,null),e}textDirectionAt(t){let{tile:e}=this.tile.resolveBlock(t,1);return getComputedStyle(e.dom).direction=="rtl"?B.RTL:B.LTR}measureTextSize(){let t=this.tile.blockTiles(o=>{if(o.isLine()&&o.children.length&&o.length<=20){let l=0,a;for(let h of o.children){if(!h.isText()||/[^ -~]/.test(h.text))return;let c=$t(h.dom);if(c.length!=1)return;l+=c[0].width,a=c[0].height}if(l)return{lineHeight:o.dom.getBoundingClientRect().height,charWidth:l/o.length,textHeight:a}}});if(t)return t;let e=document.createElement("div"),i,n,r;return e.className="cm-line",e.style.width="99999px",e.style.position="absolute",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(e);let o=$t(e.firstChild)[0];i=e.getBoundingClientRect().height,n=o&&o.width?o.width/27:7,r=o&&o.height?o.height:i,e.remove()}),{lineHeight:i,charWidth:n,textHeight:r}}computeBlockGapDeco(){let t=[],e=this.view.viewState;for(let i=0,n=0;;n++){let r=n==e.viewports.length?null:e.viewports[n],o=r?r.from-1:this.view.state.doc.length;if(o>i){let l=(e.lineBlockAt(o).bottom-e.lineBlockAt(i).top)/this.view.scaleY;t.push(T.replace({widget:new Jt(l),block:!0,inclusive:!0,isBlockGap:!0}).range(i,o))}if(!r)break;i=r.to+1}return T.set(t)}updateDeco(){let t=1,e=this.view.state.facet(ti).map(r=>(this.dynamicDecorationMap[t++]=typeof r=="function")?r(this.view):r),i=!1,n=this.view.state.facet(ys).map((r,o)=>{let l=typeof r=="function";return l&&(i=!0),l?r(this.view):r});for(n.length&&(this.dynamicDecorationMap[t++]=i,e.push(E.join(n))),this.decorations=[this.editContextFormatting,...e,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];t<this.decorations.length;)this.dynamicDecorationMap[t++]=!1;this.blockWrappers=this.view.state.facet(jn).map(r=>typeof r=="function"?r(this.view):r)}scrollIntoView(t){if(t.isSnapshot){let h=this.view.viewState.lineBlockAt(t.range.head);this.view.scrollDOM.scrollTop=h.top-t.yMargin,this.view.scrollDOM.scrollLeft=t.xMargin;return}for(let h of this.view.state.facet(Kn))try{if(h(this.view,t.range,t))return!0}catch(c){Z(this.view.state,c,"scroll handler")}let{range:e}=t,i=this.coordsAt(e.head,e.assoc||(e.head>e.anchor?-1:1)),n;if(!i)return;!e.empty&&(n=this.coordsAt(e.anchor,e.anchor>e.head?-1:1))&&(i={left:Math.min(i.left,n.left),top:Math.min(i.top,n.top),right:Math.max(i.right,n.right),bottom:Math.max(i.bottom,n.bottom)});let r=ws(this.view),o={left:i.left-r.left,top:i.top-r.top,right:i.right+r.right,bottom:i.bottom+r.bottom},{offsetWidth:l,offsetHeight:a}=this.view.scrollDOM;if(Lr(this.view.scrollDOM,o,e.head<e.anchor?-1:1,t.x,t.y,Math.max(Math.min(t.xMargin,l),-l),Math.max(Math.min(t.yMargin,a),-a),this.view.textDirection==B.LTR),window.visualViewport&&window.innerHeight-window.visualViewport.height>1&&(i.top>window.visualViewport.offsetTop+window.visualViewport.height||i.bottom<window.visualViewport.offsetTop)){let h=this.view.docView.lineAt(e.head,1);if(h){let c=vn(h.dom);h.dom.scrollIntoView({block:"nearest"}),Sn(c,!1)}}}lineHasWidget(t){let e=i=>i.isWidget()||i.children.some(e);return e(this.tile.resolveBlock(t,1).tile)}destroy(){Li(this.tile)}};function Li(s,t){let e=t?.get(s);if(e!=1){e==null&&s.destroy();for(let i of s.children)Li(i,t)}}function $r(s){return N(s.node)&&s.node.firstChild&&(s.offset==0||s.node.childNodes[s.offset-1].contentEditable=="false")&&(s.offset==s.node.childNodes.length||s.node.childNodes[s.offset].contentEditable=="false")}function Gn(s,t){let e=s.observer.selectionRange;if(!e.focusNode)return null;let i=Mn(e.focusNode,e.focusOffset),n=An(e.focusNode,e.focusOffset),r=i||n;if(n&&i&&n.node!=i.node){let l=L.get(n.node);if(!l||l.isText()&&l.text!=n.node.nodeValue)r=n;else if(s.docView.lastCompositionAfterCursor){let a=L.get(i.node);!a||a.isText()&&a.text!=i.node.nodeValue||(r=n)}}if(s.docView.lastCompositionAfterCursor=r!=i,!r)return null;let o=t-r.offset;return{from:o,to:o+r.node.nodeValue.length,node:r.node}}function Gr(s,t,e){let i=Gn(s,e);if(!i)return null;let{node:n,from:r,to:o}=i,l=n.nodeValue;if(/[\n\r]/.test(l)||s.state.doc.sliceString(i.from,i.to)!=l)return null;let a=t.invertedDesc;return{range:new X(a.mapPos(r),a.mapPos(o),r,o),text:n}}function Ur(s,t){return N(s)?(t&&s.childNodes[t-1].contentEditable=="false"?1:0)|(t<s.childNodes.length&&s.childNodes[t].contentEditable=="false"?2:0):0}var Qr=class{constructor(){this.changes=[]}compareRange(t,e){Nt(t,e,this.changes)}comparePoint(t,e){Nt(t,e,this.changes)}boundChange(t){Nt(t,t,this.changes)}};function Jr(s,t,e){let i=new Qr;return E.compare(s,t,e,i),i.changes}var Bi=class{constructor(){this.changes=[]}compareRange(t,e){Nt(t,e,this.changes)}comparePoint(){}boundChange(t){Nt(t,t,this.changes)}};function Zr(s,t,e){let i=new Bi;return E.compare(s,t,e,i),i.changes}function to(s,t){for(let e=s;e&&e!=t;e=e.assignedSlot||e.parentNode)if(N(e)&&e.contentEditable=="false")return!0;return!1}function eo(s,t){let e=!1;return t&&s.iterChangedRanges((i,n)=>{i<t.to&&n>t.from&&(e=!0)}),e}var Jt=class extends lt{constructor(t){super(),this.height=t}toDOM(){let t=document.createElement("div");return t.className="cm-gap",this.updateDOM(t),t}eq(t){return t.height==this.height}updateDOM(t){return t.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}};function io(s,t,e=1){let i=s.charCategorizer(t),n=s.doc.lineAt(t),r=t-n.from;if(n.length==0)return v.cursor(t);r==0?e=1:r==n.length&&(e=-1);let o=r,l=r;e<0?o=ft(n.text,r,!1):l=ft(n.text,r);let a=i(n.text.slice(o,l));for(;o>0;){let h=ft(n.text,o,!1);if(i(n.text.slice(h,o))!=a)break;o=h}for(;l<n.length;){let h=ft(n.text,l);if(i(n.text.slice(l,h))!=a)break;l=h}return v.undirectionalRange(o+n.from,l+n.from)}function so(s,t,e,i,n){let r=Math.round((i-t.left)*s.defaultCharacterWidth);if(s.lineWrapping&&e.height>s.defaultLineHeight*1.5){let l=s.viewState.heightOracle.textHeight,a=Math.floor((n-e.top-(s.defaultLineHeight-l)*.5)/l);r+=a*s.viewState.heightOracle.lineLength}let o=s.state.sliceDoc(e.from,e.to);return e.from+ye(o,r,s.state.tabSize)}function Ei(s,t,e){let i=s.lineBlockAt(t);if(Array.isArray(i.type)){let n;for(let r of i.type){if(r.from>t)break;if(!(r.to<t)){if(r.from<t&&r.to>t)return r;(!n||r.type==W.Text&&(n.type!=r.type||(e<0?r.from<t:r.to>t)))&&(n=r)}}return n||i}return i}function no(s,t,e,i){let n=Ei(s,t.head,t.assoc||-1),r=!i||n.type!=W.Text||!(s.lineWrapping||n.widgetLineBreaks)?null:s.coordsAtPos(t.assoc<0&&t.head>n.from?t.head-1:t.head);if(r){let o=s.dom.getBoundingClientRect(),l=s.textDirectionAt(n.from),a=s.posAtCoords({x:e==(l==B.LTR)?o.right-1:o.left+1,y:(r.top+r.bottom)/2});if(a!=null)return v.cursor(a,e?-1:1)}return v.cursor(e?n.to:n.from,e?-1:1)}function Ks(s,t,e,i){let n=s.state.doc.lineAt(t.head),r=s.bidiSpans(n),o=s.textDirectionAt(n.from);for(let l=t,a=null;;){let h=En(n,r,o,l,e),c=Bn;if(!h){if(n.number==(e?s.state.doc.lines:1))return l;c=` +`,n=s.state.doc.line(n.number+(e?1:-1)),r=s.bidiSpans(n),h=e?v.cursor(n.from,-1):v.cursor(n.to,1)}if(a){if(!a(c))return l}else{if(!i)return h;a=i(c)}l=h}}function ro(s,t,e){let i=s.state.charCategorizer(t),n=i(e);return r=>{let o=i(r);return n==As.Space&&(n=o),n==o}}function oo(s,t,e,i){let n=t.head,r=e?1:-1;if(n==(e?s.state.doc.length:0))return v.cursor(n,t.assoc);let o=t.goalColumn,l,a=s.contentDOM.getBoundingClientRect(),h=s.coordsAtPos(n,t.assoc||((t.empty?e:t.head==t.from)?1:-1)),c=s.documentTop;if(h)o==null&&(o=h.left-a.left),l=r<0?h.top:h.bottom;else{let p=s.viewState.lineBlockAt(n);o==null&&(o=Math.min(a.right-a.left,s.defaultCharacterWidth*(n-p.from))),l=(r<0?p.top:p.bottom)+c}let f=a.left+o,d=s.viewState.heightOracle.textHeight>>1,u=i??d;for(let p=0;;p+=d){let g=l+(u+p)*r,m=Hi(s,{x:f,y:g},!1,r);if(e?g>a.bottom:g<a.top)return v.cursor(m.pos,m.assoc);let b=s.coordsAtPos(m.pos,m.assoc),w=b?(b.top+b.bottom)/2:0;if(!b||(e?w>l:w<l))return v.cursor(m.pos,m.assoc,void 0,o)}}function Zt(s,t,e){for(;;){let i=0;for(let n of s)n.between(t-1,t+1,(r,o,l)=>{if(t>r&&t<o){let a=i||e||(t-r<o-t?-1:1);t=a<0?r:o,i=a}});if(!i)return t}}function Un(s,t){let e=null;for(let i=0;i<t.ranges.length;i++){let n=t.ranges[i],r=null;if(n.empty){let o=Zt(s,n.from,0);o!=n.from&&(r=v.cursor(o,-1))}else{let o=Zt(s,n.from,-1),l=Zt(s,n.to,1);(o!=n.from||l!=n.to)&&(n.undirectional?r=v.undirectionalRange(n.from,n.to):r=v.range(n.from==n.anchor?o:l,n.from==n.head?o:l))}r&&(e||(e=t.ranges.slice()),e[i]=r)}return e?v.create(e,t.mainIndex):t}function fi(s,t,e){let i=Zt(s.state.facet(ce).map(n=>n(s)),e.from,t.head>e.from?-1:1);return i==e.from?e:v.cursor(i,i<e.from?1:-1)}var j=class{constructor(t,e){this.pos=t,this.assoc=e}};function Hi(s,t,e,i){let n=s.contentDOM.getBoundingClientRect(),r=n.top+s.viewState.paddingTop,{x:o,y:l}=t,a=l-r,h;for(;;){if(a<0)return new j(0,1);if(a>s.viewState.docHeight)return new j(s.state.doc.length,-1);if(h=s.elementAtHeight(a),i==null)break;if(h.type==W.Text){if(i<0?h.to<s.viewport.from:h.from>s.viewport.to)break;let d=s.docView.coordsAt(i<0?h.from:h.to,i>0?-1:1);if(d&&(i<0?d.top<=a+r:d.bottom>=a+r))break}let f=s.viewState.heightOracle.textHeight/2;a=i>0?h.bottom+f:h.top-f}if(s.viewport.from>=h.to||s.viewport.to<=h.from){if(e)return null;if(h.type==W.Text){let f=so(s,n,h,o,l);return new j(f,f==h.from?1:-1)}}if(h.type!=W.Text)return a<(h.top+h.bottom)/2?new j(h.from,1):new j(h.to,-1);let c=s.docView.lineAt(h.from,2);return(!c||c.length!=h.length)&&(c=s.docView.lineAt(h.from,-2)),new Pi(s,o,l,s.textDirectionAt(h.from)).scanTile(c,h.from)}var Pi=class{constructor(t,e,i,n){this.view=t,this.x=e,this.y=i,this.baseDir=n,this.line=null,this.spans=null}bidiSpansAt(t){return(!this.line||this.line.from>t||this.line.to<t)&&(this.line=this.view.state.doc.lineAt(t),this.spans=this.view.bidiSpans(this.line)),this}baseDirAt(t,e){let{line:i,spans:n}=this.bidiSpansAt(t);return n[Y.find(n,t-i.from,-1,e)].level==this.baseDir}dirAt(t,e){let{line:i,spans:n}=this.bidiSpansAt(t);return n[Y.find(n,t-i.from,-1,e)].dir}bidiIn(t,e){let{spans:i,line:n}=this.bidiSpansAt(t);return i.length>1||i.length&&(i[0].level!=this.baseDir||i[0].to+n.from<e)}scan(t,e,i=!1){let n=0,r=t.length-1,o=new Set,l=this.bidiIn(t[0],t[r]),a,h,c=-1,f=1e9,d;t:for(;n<r;){let p=r-n,g=n+r>>1;e:if(o.has(g)){for(let w=1;w<p;w++){let x=g+w;if(x>=r&&(x-=p),!o.has(x)){g=x;break e}}break t}o.add(g);let m=e(g),b=0;if(m)for(let w=0;w<m.length;w++){let x=m[w];if(!(x.width==0&&m.length>1))if(x.bottom<this.y)(!a||a.bottom<x.bottom)&&(a=x),b=1;else if(x.top>this.y)(!h||h.top>x.top)&&(h=x),b=-1;else{let A=x.left>this.x?this.x-x.left:x.right<this.x?this.x-x.right:0,k=Math.abs(A);k<f&&(c=g,f=k,d=x),A&&(b=A<0==(this.baseDir==B.LTR)?-1:1)}}b==-1&&(!l||this.baseDirAt(t[g],1))?r=g:b==1&&(!l||this.baseDirAt(t[g+1],-1))&&(n=g+1)}if(!d){if(!h&&!a)return{i:0,after:!1};let p=a&&(!h||this.y-a.bottom<h.top-this.y)?a:h;return this.y=(p.top+p.bottom)/2,this.scan(t,e,!0)}if(f&&!i){let{top:p,bottom:g}=d;if(a&&a.bottom>(p+p+g)/3)return this.y=a.bottom-1,this.scan(t,e,!0);if(h&&h.top<(p+g+g)/3)return this.y=h.top+1,this.scan(t,e,!0)}let u=(l?this.dirAt(t[c],1):this.baseDir)==B.LTR;return{i:c,after:this.x>(d.left+d.right)/2==u}}scanText(t,e){let i=[];for(let r=0;r<t.length;r=ft(t.text,r))i.push(e+r);i.push(e+t.length);let n=this.scan(i,r=>{let o=i[r]-e,l=i[r+1]-e;return le(t.dom,o,l).getClientRects()});return n.after?new j(i[n.i+1],-1):new j(i[n.i],1)}scanTile(t,e){if(!t.length)return new j(e,1);if(t.children.length==1){let l=t.children[0];if(l.isText())return this.scanText(l,e);if(l.isComposite())return this.scanTile(l,e)}let i=[e];for(let l=0,a=e;l<t.children.length;l++)i.push(a+=t.children[l].length);let n=this.scan(i,l=>{let a=t.children[l];return a.flags&48?null:(N(a.dom)?a.dom:le(a.dom,0,a.length)).getClientRects()}),r=t.children[n.i],o=i[n.i];return r.isText()?this.scanText(r,o):r.isComposite()?this.scanTile(r,o):n.after?new j(i[n.i+1],-1):new j(o,1)}},Lt="\uFFFF",Ni=class{constructor(t,e){this.points=t,this.view=e,this.text="",this.lineSeparator=e.state.facet(Ot.lineSeparator)}append(t){this.text+=t}lineBreak(){this.text+=Lt}readRange(t,e){if(!t)return this;let i=t.parentNode;for(let n=t;;){this.findPointBefore(i,n);let r=this.text.length;this.readNode(n);let o=L.get(n),l=n.nextSibling;if(l==e){o?.breakAfter&&!l&&i!=this.view.contentDOM&&this.lineBreak();break}let a=L.get(l);(o&&a?o.breakAfter:(o?o.breakAfter:We(n))||We(l)&&(n.nodeName!="BR"||o?.isWidget())&&this.text.length>r)&&!ao(l,e)&&this.lineBreak(),n=l}return this.findPointBefore(i,e),this}readTextNode(t){let e=t.nodeValue;for(let i of this.points)i.node==t&&(i.pos=this.text.length+Math.min(i.offset,e.length));for(let i=0,n=this.lineSeparator?null:/\r\n?|\n/g;;){let r=-1,o=1,l;if(this.lineSeparator?(r=e.indexOf(this.lineSeparator,i),o=this.lineSeparator.length):(l=n.exec(e))&&(r=l.index,o=l[0].length),this.append(e.slice(i,r<0?e.length:r)),r<0)break;if(this.lineBreak(),o>1)for(let a of this.points)a.node==t&&a.pos>this.text.length&&(a.pos-=o-1);i=r+o}}readNode(t){let e=L.get(t),i=e&&e.overrideDOMText;if(i!=null){this.findPointInside(t,i.length);for(let n=i.iter();!n.next().done;)n.lineBreak?this.lineBreak():this.append(n.value)}else Vt(t)?this.readTextNode(t):t.nodeName=="BR"?t.nextSibling&&this.lineBreak():N(t)&&this.readRange(t.firstChild,null)}findPointBefore(t,e){for(let i of this.points)i.node==t&&t.childNodes[i.offset]==e&&(i.pos=this.text.length)}findPointInside(t,e){for(let i of this.points)(Vt(t)?i.node==t:t.contains(i.node))&&(i.pos=this.text.length+(lo(t,i.node,i.offset)?e:0))}};function lo(s,t,e){for(;;){if(!t||e<at(t))return!1;if(t==s)return!0;e=gt(t)+1,t=t.parentNode}}function ao(s,t){let e;for(;!(s==t||!s);s=s.nextSibling){let i=L.get(s);if(!i?.isWidget())return!1;i&&(e||(e=[])).push(i)}if(e)for(let i of e){let n=i.overrideDOMText;if(n?.length)return!1}return!0}var ze=class{constructor(t,e){this.node=t,this.offset=e,this.pos=-1}},Wi=class{constructor(t,e,i,n){this.typeOver=n,this.bounds=null,this.text="",this.domChanged=e>-1;let{impreciseHead:r,impreciseAnchor:o}=t.docView,l=t.state.selection;if(t.state.readOnly&&e>-1)this.newSel=null;else if(e>-1&&(this.bounds=Qn(t.docView.tile,e,i,0))){let a=r||o?[]:co(t),h=new Ni(a,t);h.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=h.text,this.newSel=fo(a,this.bounds.from)}else{let a=t.observer.selectionRange,h=r&&r.node==a.focusNode&&r.offset==a.focusOffset||!wi(t.contentDOM,a.focusNode)?l.main.head:t.docView.posFromDOM(a.focusNode,a.focusOffset),c=o&&o.node==a.anchorNode&&o.offset==a.anchorOffset||!wi(t.contentDOM,a.anchorNode)?l.main.anchor:t.docView.posFromDOM(a.anchorNode,a.anchorOffset),f=t.viewport;if((y.ios||y.chrome)&&h!=c&&Math.min(h,c)<=l.main.from&&Math.max(h,c)>=l.main.to&&(f.from>0||f.to<t.state.doc.length)){let d=Math.min(h,c),u=Math.max(h,c),p=f.from-d,g=f.to-u;(p==0||p==1||d==0)&&(g==0||g==-1||u==t.state.doc.length)&&(h=0,c=t.state.doc.length)}if(t.inputState.composing>-1&&l.ranges.length>1)this.newSel=l.replaceRange(v.range(c,h));else if(t.lineWrapping&&c==h&&!(l.main.empty&&l.main.head==h)&&t.inputState.lastTouchTime>Date.now()-100){let d=t.coordsAtPos(h,-1),u=0;d&&(u=t.inputState.lastTouchY<=d.bottom?-1:1),this.newSel=v.create([v.cursor(h,u)])}else this.newSel=v.single(c,h)}}};function Qn(s,t,e,i){if(s.isComposite()){let n=-1,r=-1,o=-1,l=-1;for(let a=0,h=i,c=i;a<s.children.length;a++){let f=s.children[a],d=h+f.length;if(h<t&&d>e)return Qn(f,t,e,h);if(d>=t&&n==-1&&(n=a,r=h),h>e&&f.dom.parentNode==s.dom){o=a,l=c;break}c=d,h=d+f.breakAfter}return{from:r,to:l<0?i+s.length:l,startDOM:(n?s.children[n-1].dom.nextSibling:null)||s.dom.firstChild,endDOM:o<s.children.length&&o>=0?s.children[o].dom:null}}else return s.isText()?{from:i,to:i+s.length,startDOM:s.dom,endDOM:s.dom.nextSibling}:null}function Jn(s,t){let e,{newSel:i}=t,{state:n}=s,r=n.selection.main,o=s.inputState.lastKeyTime>Date.now()-100?s.inputState.lastKeyCode:-1;if(t.bounds){let{from:l,to:a}=t.bounds,h=r.from,c=null;(o===8||y.android&&t.text.length<a-l)&&(h=r.to,c="end");let f=n.doc.sliceString(l,a,Lt),d,u;!r.empty&&r.from>=l&&r.to<=a&&(t.typeOver||f!=t.text)&&f.slice(0,r.from-l)==t.text.slice(0,r.from-l)&&f.slice(r.to-l)==t.text.slice(d=t.text.length-(f.length-(r.to-l)))?e={from:r.from,to:r.to,insert:q.of(t.text.slice(r.from-l,d).split(Lt))}:(u=Zn(f,t.text,h-l,c))&&(y.chrome&&o==13&&u.toB==u.from+2&&t.text.slice(u.from,u.toB)==Lt+Lt&&u.toB--,e={from:l+u.from,to:l+u.toA,insert:q.of(t.text.slice(u.from,u.toB).split(Lt))})}else i&&(!s.hasFocus&&n.facet(rt)||Vi(i,r))&&(i=null);if(!e&&!i)return!1;if((y.mac||y.android)&&e&&e.from==e.to&&e.from==r.head-1&&/^\. ?$/.test(e.insert.toString())&&s.contentDOM.getAttribute("autocorrect")=="off"?(i&&e.insert.length==2&&(i=v.single(i.main.anchor-1,i.main.head-1)),e={from:e.from,to:e.to,insert:q.of([e.insert.toString().replace("."," ")])}):n.doc.lineAt(r.from).to<r.to&&s.docView.lineHasWidget(r.to)&&s.inputState.insertingTextAt>Date.now()-50?e={from:r.from,to:r.to,insert:n.toText(s.inputState.insertingText)}:y.chrome&&e&&e.from==e.to&&e.from==r.head&&e.insert.toString()==` + `&&s.lineWrapping&&(i&&(i=v.single(i.main.anchor-1,i.main.head-1)),e={from:r.from,to:r.to,insert:q.of([" "])}),e)return xs(s,e,i,o);if(i&&!Vi(i,r)){let l=!1,a="select";return s.inputState.lastSelectionTime>Date.now()-50&&(s.inputState.lastSelectionOrigin=="select"&&(l=!0),a=s.inputState.lastSelectionOrigin,a=="select.pointer"&&(i=Un(n.facet(ce).map(h=>h(s)),i))),s.dispatch({selection:i,scrollIntoView:l,userEvent:a}),!0}else return!1}function xs(s,t,e,i=-1){if(y.ios&&s.inputState.flushIOSKey(t))return!0;let n=s.state.selection.main;if(y.android&&(t.to==n.to&&(t.from==n.from||t.from==n.from-1&&s.state.sliceDoc(t.from,n.from)==" ")&&t.insert.length==1&&t.insert.lines==2&&Wt(s.contentDOM,"Enter",13)||(t.from==n.from-1&&t.to==n.to&&t.insert.length==0||i==8&&t.insert.length<t.to-t.from&&t.to>n.head)&&Wt(s.contentDOM,"Backspace",8)||t.from==n.from&&t.to==n.to+1&&t.insert.length==0&&Wt(s.contentDOM,"Delete",46)))return!0;let r=t.insert.toString();s.inputState.composing>=0&&s.inputState.composing++;let o,l=()=>o||(o=ho(s,t,e));return s.state.facet(Vn).some(a=>a(s,t.from,t.to,r,l))||s.dispatch(l()),!0}function ho(s,t,e){let i,n=s.state,r=n.selection.main,o=-1;if(t.from==t.to&&t.from<r.from||t.from>r.to){let a=t.from<r.from?-1:1,h=a<0?r.from:r.to,c=Zt(n.facet(ce).map(f=>f(s)),h,a);t.from==c&&(o=c)}if(o>-1)i={changes:t,selection:v.cursor(t.from+t.insert.length,-1)};else if(t.from>=r.from&&t.to<=r.to&&t.to-t.from>=(r.to-r.from)/3&&(!e||e.main.empty&&e.main.from==t.from+t.insert.length)&&s.inputState.composing<0){let a=r.from<t.from?n.sliceDoc(r.from,t.from):"",h=r.to>t.to?n.sliceDoc(t.to,r.to):"";i=n.replaceSelection(s.state.toText(a+t.insert.sliceString(0,void 0,s.state.lineBreak)+h))}else{let a=n.changes(t),h=e&&e.main.to<=a.newLength?e.main:void 0;if(n.selection.ranges.length>1&&(s.inputState.composing>=0||s.inputState.compositionPendingChange)&&t.to<=r.to+10&&t.to>=r.to-10){let c=s.state.sliceDoc(t.from,t.to),f,d=e&&Gn(s,e.main.head);if(d){let p=t.insert.length-(t.to-t.from);f={from:d.from,to:d.to-p}}else f=s.state.doc.lineAt(r.head);let u=r.to-t.to;i=n.changeByRange(p=>{if(p.from==r.from&&p.to==r.to)return{changes:a,range:h||p.map(a)};let g=p.to-u,m=g-c.length;if(s.state.sliceDoc(m,g)!=c||g>=f.from&&m<=f.to)return{range:p};let b=n.changes({from:m,to:g,insert:t.insert}),w=p.to-r.to;return{changes:b,range:h?v.range(Math.max(0,h.anchor+w),Math.max(0,h.head+w)):p.map(b)}})}else i={changes:a,selection:h&&n.selection.replaceRange(h)}}let l="input.type";return(s.composing||s.inputState.compositionPendingChange&&s.inputState.compositionEndedAt>Date.now()-50)&&(s.inputState.compositionPendingChange=!1,l+=".compose",s.inputState.compositionFirstChange&&(l+=".start",s.inputState.compositionFirstChange=!1)),n.update(i,{userEvent:l,scrollIntoView:!0})}function Zn(s,t,e,i){let n=Math.min(s.length,t.length),r=0;for(;r<n&&s.charCodeAt(r)==t.charCodeAt(r);)r++;if(r==n&&s.length==t.length)return null;let o=s.length,l=t.length;for(;o>0&&l>0&&s.charCodeAt(o-1)==t.charCodeAt(l-1);)o--,l--;if(i=="end"){let a=Math.max(0,r-Math.min(o,l));e-=o+a-r}if(o<r&&s.length<t.length){let a=e<=r&&e>=o?r-e:0;r-=a,l=r+(l-o),o=r}else if(l<r){let a=e<=r&&e>=l?r-e:0;r-=a,o=r+(o-l),l=r}return{from:r,toA:o,toB:l}}function co(s){let t=[];if(s.root.activeElement!=s.contentDOM)return t;let{anchorNode:e,anchorOffset:i,focusNode:n,focusOffset:r}=s.observer.selectionRange;return e&&(t.push(new ze(e,i)),(n!=e||r!=i)&&t.push(new ze(n,r))),t}function fo(s,t){if(s.length==0)return null;let e=s[0].pos,i=s.length==2?s[1].pos:e;return e<0||i<0?null:e==i?v.create([v.cursor(i+t,-1)]):v.single(e+t,i+t)}function Vi(s,t){return t.head==s.main.head&&t.anchor==s.main.anchor}var Fi=class{setSelectionOrigin(t){this.lastSelectionOrigin=t,this.lastSelectionTime=Date.now()}constructor(t){this.view=t,this.lastKeyCode=0,this.lastKeyTime=0,this.touchActive=!1,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.lastIOSMomentumScroll=0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=t.hasFocus,y.safari&&t.contentDOM.addEventListener("input",()=>null),y.gecko&&To(t.contentDOM.ownerDocument)}handleEvent(t){!xo(this.view,t)||this.ignoreDuringComposition(t)||t.type=="keydown"&&this.keydown(t)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(t.type,t)):this.runHandlers(t.type,t))}runHandlers(t,e){let i=this.handlers[t];if(i){for(let n of i.observers)n(this.view,e);for(let n of i.handlers){if(e.defaultPrevented)break;if(n(this.view,e)){e.preventDefault();break}}}}ensureHandlers(t){let e=po(t),i=this.handlers,n=this.view.contentDOM;for(let r in e)if(r!="scroll"){let o=!e[r].handlers.length,l=i[r];l&&o!=!l.handlers.length&&(n.removeEventListener(r,this.handleEvent),l=null),l||n.addEventListener(r,this.handleEvent,{passive:o})}for(let r in i)r!="scroll"&&!e[r]&&n.removeEventListener(r,this.handleEvent);this.handlers=e}keydown(t){if(this.lastKeyCode=t.keyCode,this.lastKeyTime=Date.now(),t.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&t.keyCode!=27&&er.indexOf(t.keyCode)<0&&(this.tabFocusMode=-1),y.android&&y.chrome&&!t.synthetic&&(t.keyCode==13||t.keyCode==8))return this.view.observer.delayAndroidKey(t.key,t.keyCode),!0;if(y.ios&&!t.synthetic&&!t.altKey&&!t.metaKey&&(tr.some(e=>e.keyCode==t.keyCode)&&!t.ctrlKey||go.indexOf(t.key)>-1&&t.ctrlKey)){let e={ctrlKey:t.ctrlKey,altKey:t.altKey,metaKey:t.metaKey,shiftKey:t.shiftKey};e.shiftKey&&y.ios&&!/^(off|none)$/.test(this.view.contentDOM.autocapitalize)&&uo(this.view.win)&&(e.shiftKey=!1);let i=this.pendingIOSKey={key:t.key,keyCode:t.keyCode,mods:e};return setTimeout(()=>{this.pendingIOSKey==i&&this.flushIOSKey()},50),!0}return t.keyCode!=229&&this.view.observer.forceFlush(),!1}flushIOSKey(t){let e=this.pendingIOSKey;return!e||this.view.observer.pendingRecords().length||e.key=="Enter"&&t&&t.from<t.to&&/^\S+$/.test(t.insert.toString())?!1:(this.pendingIOSKey=void 0,Wt(this.view.contentDOM,e.key,e.keyCode,e.mods))}ignoreDuringComposition(t){return!/^key/.test(t.type)||t.synthetic?!1:this.composing>0?!0:y.safari&&!y.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(t){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=t}update(t){this.view.observer.update(t),this.mouseSelection&&this.mouseSelection.update(t),this.draggedContent&&t.docChanged&&(this.draggedContent=this.draggedContent.map(t.changes)),t.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};function uo(s){return s.visualViewport?s.visualViewport.height*s.visualViewport.scale/s.document.documentElement.clientHeight<.85:!1}function qs(s,t){return(e,i)=>{try{return t.call(s,i,e)}catch(n){Z(e.state,n)}}}function po(s){let t=Object.create(null);function e(i){return t[i]||(t[i]={observers:[],handlers:[]})}for(let i of s){let n=i.spec,r=n&&n.plugin.domEventHandlers,o=n&&n.plugin.domEventObservers;if(r)for(let l in r){let a=r[l];a&&e(l).handlers.push(qs(i.value,a))}if(o)for(let l in o){let a=o[l];a&&e(l).observers.push(qs(i.value,a))}}for(let i in G)e(i).handlers.push(G[i]);for(let i in I)e(i).observers.push(I[i]);return t}var tr=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],go="dthko",er=[16,17,18,20,91,92,224,225],ve=6;function Se(s){return Math.max(0,s)*.7+8}function mo(s,t){return Math.max(Math.abs(s.clientX-t.clientX),Math.abs(s.clientY-t.clientY))}var Ii=class{constructor(t,e,i,n){this.view=t,this.startEvent=e,this.style=i,this.mustSelect=n,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=e,this.scrollParents=xn(t.contentDOM),this.atoms=t.state.facet(ce).map(o=>o(t));let r=t.contentDOM.ownerDocument;r.addEventListener("mousemove",this.move=this.move.bind(this)),r.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=e.shiftKey,this.multiple=t.state.facet(Ot.allowMultipleSelections)&&bo(t,e),this.dragging=wo(t,e)&&nr(e)==1?null:!1}start(t){this.dragging===!1&&this.select(t)}move(t){if(t.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&mo(this.startEvent,t)<10)return;this.select(this.lastEvent=t);let e=0,i=0,n=0,r=0,o=this.view.win.innerWidth,l=this.view.win.innerHeight;this.scrollParents.x&&({left:n,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:r,bottom:l}=this.scrollParents.y.getBoundingClientRect());let a=ws(this.view);t.clientX-a.left<=n+ve?e=-Se(n-t.clientX):t.clientX+a.right>=o-ve&&(e=Se(t.clientX-o)),t.clientY-a.top<=r+ve?i=-Se(r-t.clientY):t.clientY+a.bottom>=l-ve&&(i=Se(t.clientY-l)),this.setScrollSpeed(e,i)}up(t){this.dragging==null&&this.select(this.lastEvent),this.dragging||t.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let t=this.view.contentDOM.ownerDocument;t.removeEventListener("mousemove",this.move),t.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(t,e){this.scrollSpeed={x:t,y:e},t||e?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:t,y:e}=this.scrollSpeed;t&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=t,t=0),e&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=e,e=0),(t||e)&&this.view.win.scrollBy(t,e),this.dragging===!1&&this.select(this.lastEvent)}select(t){let{view:e}=this,i=Un(this.atoms,this.style.get(t,this.extend,this.multiple));(this.mustSelect||!i.eq(e.state.selection,this.dragging===!1))&&this.view.dispatch({selection:i,userEvent:"select.pointer"}),this.mustSelect=!1}update(t){t.transactions.some(e=>e.isUserEvent("input.type"))?this.destroy():this.style.update(t)&&setTimeout(()=>this.select(this.lastEvent),20)}};function bo(s,t){let e=s.state.facet(Hn);return e.length?e[0](t):y.mac?t.metaKey:t.ctrlKey}function yo(s,t){let e=s.state.facet(Pn);return e.length?e[0](t):y.mac?!t.altKey:!t.ctrlKey}function wo(s,t){let{main:e}=s.state.selection;if(e.empty)return!1;let i=re(s.root);if(!i||i.rangeCount==0)return!0;let n=i.getRangeAt(0).getClientRects();for(let r=0;r<n.length;r++){let o=n[r];if(o.left<=t.clientX&&o.right>=t.clientX&&o.top<=t.clientY&&o.bottom>=t.clientY)return!0}return!1}function xo(s,t){if(!t.bubbles)return!0;if(t.defaultPrevented)return!1;for(let e=t.target,i;e!=s.contentDOM;e=e.parentNode)if(!e||e.nodeType==11||(i=L.get(e))&&i.isWidget()&&!i.isHidden&&i.widget.ignoreEvent(t))return!1;return!0}var G=Object.create(null),I=Object.create(null),ir=y.ie&&y.ie_version<15||y.ios&&y.webkit_version<604;function vo(s){let t=s.dom.parentNode;if(!t)return;let e=t.appendChild(document.createElement("textarea"));e.style.cssText="position: fixed; left: -10000px; top: 10px",e.focus(),setTimeout(()=>{s.focus(),e.remove(),sr(s,e.value)},50)}function ei(s,t,e){for(let i of s.facet(t))e=i(e,s);return e}function sr(s,t){t=ei(s.state,ms,t);let{state:e}=s,i,n=1,r=e.toText(t),o=r.lines==e.selection.ranges.length;if(zi!=null&&e.selection.ranges.every(a=>a.empty)&&zi==r.toString()){let a=-1;i=e.changeByRange(h=>{let c=e.doc.lineAt(h.from);if(c.from==a)return{range:h};a=c.from;let f=e.toText((o?r.line(n++).text:t)+e.lineBreak);return{changes:{from:c.from,insert:f},range:v.cursor(h.from+f.length,-1)}})}else o?i=e.changeByRange(a=>{let h=r.line(n++);return{changes:{from:a.from,to:a.to,insert:h.text},range:v.cursor(a.from+h.length,-1)}}):i=e.replaceSelection(r);s.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}I.scroll=s=>{let t=s.inputState;t.lastScrollTop=s.scrollDOM.scrollTop,t.lastScrollLeft=s.scrollDOM.scrollLeft,y.ios&&!t.touchActive&&(t.lastIOSMomentumScroll=Date.now())};I.wheel=I.mousewheel=s=>{s.inputState.lastWheelEvent=Date.now()};G.keydown=(s,t)=>(s.inputState.setSelectionOrigin("select"),t.keyCode==27&&s.inputState.tabFocusMode!=0&&(s.inputState.tabFocusMode=Date.now()+2e3),!1);I.touchstart=(s,t)=>{let e=s.inputState,i=t.targetTouches[0];e.touchActive=!0,e.lastTouchTime=Date.now(),i&&(e.lastTouchX=i.clientX,e.lastTouchY=i.clientY),e.setSelectionOrigin("select.pointer")};I.touchmove=s=>{s.inputState.setSelectionOrigin("select.pointer")};I.touchend=(s,t)=>{s.inputState.touchActive=!1};G.mousedown=(s,t)=>{if(s.observer.flush(),s.inputState.lastTouchTime>Date.now()-2e3)return!1;let e=null;for(let i of s.state.facet(Nn))if(e=i(s,t),e)break;if(!e&&t.button==0&&(e=Co(s,t)),e){let i=!s.hasFocus;s.inputState.startMouseSelection(new Ii(s,t,e,i)),i&&s.observer.ignore(()=>{Cn(s.contentDOM);let r=s.root.activeElement;r&&!r.contains(s.contentDOM)&&r.blur()});let n=s.inputState.mouseSelection;if(n)return n.start(t),n.dragging===!1}else s.inputState.setSelectionOrigin("select.pointer");return!1};function _s(s,t,e,i){if(i==1)return v.cursor(t,e);if(i==2)return io(s.state,t,e);{let n=s.docView.lineAt(t,e),r=s.state.doc.lineAt(n?n.posAtEnd:t),o=n?n.posAtStart:r.from,l=n?n.posAtEnd:r.to;return l<s.state.doc.length&&l==r.to&&l++,v.undirectionalRange(o,l)}}var So=y.ie&&y.ie_version<=11,js=null,Ys=0,Xs=0;function nr(s){if(!So)return s.detail;let t=js,e=Xs;return js=s,Xs=Date.now(),Ys=!t||e>Date.now()-400&&Math.abs(t.clientX-s.clientX)<2&&Math.abs(t.clientY-s.clientY)<2?(Ys+1)%3:1}function Co(s,t){let e=s.posAndSideAtCoords({x:t.clientX,y:t.clientY},!1),i=nr(t),n=s.state.selection;return{update(r){r.docChanged&&(e.pos=r.changes.mapPos(e.pos),n=n.map(r.changes))},get(r,o,l){let a=s.posAndSideAtCoords({x:r.clientX,y:r.clientY},!1),h,c=_s(s,a.pos,a.assoc,i);if(e.pos!=a.pos&&!o){let f=_s(s,e.pos,e.assoc,i),d=Math.min(f.from,c.from),u=Math.max(f.to,c.to);c=d<c.from?v.range(d,u,c.assoc):v.range(u,d,c.assoc)}return o?n.replaceRange(n.main.extend(c.from,c.to,c.assoc)):l&&i==1&&n.ranges.length>1&&(h=ko(n,a.pos))?h:l?n.addRange(c):v.create([c])}}}function ko(s,t){for(let e=0;e<s.ranges.length;e++){let{from:i,to:n}=s.ranges[e];if(i<=t&&n>=t)return v.create(s.ranges.slice(0,e).concat(s.ranges.slice(e+1)),s.mainIndex==e?0:s.mainIndex-(s.mainIndex>e?1:0))}return null}G.dragstart=(s,t)=>{let{selection:{main:e}}=s.state;if(t.target.draggable){let n=s.docView.tile.nearest(t.target);if(n&&n.isWidget()){let r=n.posAtStart,o=r+n.length;(r>=e.to||o<=e.from)&&(e=v.undirectionalRange(r,o))}}let{inputState:i}=s;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=e,t.dataTransfer&&(t.dataTransfer.setData("Text",ei(s.state,bs,s.state.sliceDoc(e.from,e.to))),t.dataTransfer.effectAllowed="copyMove"),!1};G.dragend=s=>(s.inputState.draggedContent=null,!1);function $s(s,t,e,i){if(e=ei(s.state,ms,e),!e)return;let n=s.posAtCoords({x:t.clientX,y:t.clientY},!1),{draggedContent:r}=s.inputState,o=i&&r&&yo(s,t)?{from:r.from,to:r.to}:null,l={from:n,insert:e},a=s.state.changes(o?[o,l]:l);s.focus(),s.dispatch({changes:a,selection:{anchor:a.mapPos(n,-1),head:a.mapPos(n,1)},userEvent:o?"move.drop":"input.drop"}),s.inputState.draggedContent=null}G.drop=(s,t)=>{if(!t.dataTransfer)return!1;if(s.state.readOnly)return!0;let e=t.dataTransfer.files;if(e&&e.length){let i=Array(e.length),n=0,r=()=>{++n==e.length&&$s(s,t,i.filter(o=>o!=null).join(s.state.lineBreak),!1)};for(let o=0;o<e.length;o++){let l=new FileReader;l.onerror=r,l.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(l.result)||(i[o]=l.result),r()},l.readAsText(e[o])}return!0}else{let i=t.dataTransfer.getData("Text");if(i)return $s(s,t,i,!0),!0}return!1};G.paste=(s,t)=>{if(s.state.readOnly)return!0;s.observer.flush();let e=ir?null:t.clipboardData;return e?(sr(s,e.getData("text/plain")||e.getData("text/uri-list")),!0):(vo(s),!1)};function Mo(s,t){let e=s.dom.parentNode;if(!e)return;let i=e.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=t,i.focus(),i.selectionEnd=t.length,i.selectionStart=0,setTimeout(()=>{i.remove(),s.focus()},50)}function Ao(s){let t=[],e=[],i=!1;for(let n of s.selection.ranges)n.empty||(t.push(s.sliceDoc(n.from,n.to)),e.push(n));if(!t.length){let n=-1;for(let{from:r}of s.selection.ranges){let o=s.doc.lineAt(r);o.number>n&&(t.push(o.text),e.push({from:o.from,to:Math.min(s.doc.length,o.to+1)})),n=o.number}i=!0}return{text:ei(s,bs,t.join(s.lineBreak)),ranges:e,linewise:i}}var zi=null;G.copy=G.cut=(s,t)=>{if(!Xt(s.contentDOM,s.observer.selectionRange))return!1;let{text:e,ranges:i,linewise:n}=Ao(s.state);if(!e&&!n)return!1;zi=n?e:null,t.type=="cut"&&!s.state.readOnly&&s.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let r=ir?null:t.clipboardData;return r?(r.clearData(),r.setData("text/plain",e),!0):(Mo(s,e),!1)};var rr=ks.define();function or(s,t){let e=[];for(let i of s.facet(Fn)){let n=i(s,t);n&&e.push(n)}return e.length?s.update({effects:e,annotations:rr.of(!0)}):null}function lr(s){setTimeout(()=>{let t=s.hasFocus;if(t!=s.inputState.notifiedFocused){let e=or(s.state,t);e?s.dispatch(e):s.update([])}},10)}I.focus=s=>{s.inputState.lastFocusTime=Date.now(),!s.scrollDOM.scrollTop&&(s.inputState.lastScrollTop||s.inputState.lastScrollLeft)&&(s.scrollDOM.scrollTop=s.inputState.lastScrollTop,s.scrollDOM.scrollLeft=s.inputState.lastScrollLeft),lr(s)};I.blur=s=>{s.observer.clearSelectionRange(),lr(s)};I.compositionstart=I.compositionupdate=(s,t)=>{if(!s.observer.editContext&&(s.inputState.compositionFirstChange==null&&(s.inputState.compositionFirstChange=!0),s.inputState.composing<0)){let{main:e}=s.state.selection;!e.empty&&s.lineBlockAt(e.from).from!=s.lineBlockAt(e.to).from&&!s.state.readOnly&&s.dispatch({changes:s.state.selection.ranges.filter(i=>!i.empty).map(i=>({from:i.from,to:i.to})),userEvent:"input"}),s.inputState.composing=0}};I.compositionend=s=>{s.observer.editContext||(s.inputState.composing=-1,s.inputState.compositionEndedAt=Date.now(),s.inputState.compositionPendingKey=!0,s.inputState.compositionPendingChange=s.observer.pendingRecords().length>0,s.inputState.compositionFirstChange=null,y.chrome&&y.android?s.observer.flushSoon():s.inputState.compositionPendingChange?Promise.resolve().then(()=>s.observer.flush()):setTimeout(()=>{s.inputState.composing<0&&s.docView.hasComposition&&s.update([])},50))};I.contextmenu=s=>{s.inputState.lastContextMenu=Date.now()};G.beforeinput=(s,t)=>{var e,i;if((t.inputType=="insertText"||t.inputType=="insertCompositionText")&&(s.inputState.insertingText=t.data,s.inputState.insertingTextAt=Date.now()),t.inputType=="insertReplacementText"&&s.observer.editContext){let r=(e=t.dataTransfer)===null||e===void 0?void 0:e.getData("text/plain"),o=t.getTargetRanges();if(r&&o.length){let l=o[0],a=s.posAtDOM(l.startContainer,l.startOffset),h=s.posAtDOM(l.endContainer,l.endOffset);return xs(s,{from:a,to:h,insert:s.state.toText(r)},null),!0}}let n;if(y.chrome&&y.android&&(n=tr.find(r=>r.inputType==t.inputType))&&(s.observer.delayAndroidKey(n.key,n.keyCode),n.key=="Backspace"||n.key=="Delete")){let r=((i=window.visualViewport)===null||i===void 0?void 0:i.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>r+10&&s.hasFocus&&(s.contentDOM.blur(),s.focus())},100)}return y.ios&&t.inputType=="deleteContentForward"&&s.observer.flushSoon(),y.safari&&t.inputType=="insertText"&&s.inputState.composing>=0&&setTimeout(()=>I.compositionend(s,t),20),!1};var Gs=new Set;function To(s){Gs.has(s)||(Gs.add(s),s.addEventListener("copy",()=>{}),s.addEventListener("cut",()=>{}))}var Us=["pre-wrap","normal","pre-line","break-spaces"],At=!1;function Ki(){At=!1}var Ke=class{constructor(t){this.lineWrapping=t,this.doc=q.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(t,e){let i=this.doc.lineAt(e).number-this.doc.lineAt(t).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((e-t-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(t){return this.lineWrapping?(1+Math.max(0,Math.ceil((t-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(t){return this.doc=t,this}mustRefreshForWrapping(t){return Us.indexOf(t)>-1!=this.lineWrapping}mustRefreshForHeights(t){let e=!1;for(let i=0;i<t.length;i++){let n=t[i];n<0?i++:this.heightSamples[Math.floor(n*10)]||(e=!0,this.heightSamples[Math.floor(n*10)]=!0)}return e}refresh(t,e,i,n,r,o){let l=Us.indexOf(t)>-1,a=Math.abs(e-this.lineHeight)>.3||this.lineWrapping!=l;if(this.lineWrapping=l,this.lineHeight=e,this.charWidth=i,this.textHeight=n,this.lineLength=r,a){this.heightSamples={};for(let h=0;h<o.length;h++){let c=o[h];c<0?h++:this.heightSamples[Math.floor(c*10)]=!0}}return a}},qe=class{constructor(t,e){this.from=t,this.heights=e,this.index=0}get more(){return this.index<this.heights.length}},$=class s{constructor(t,e,i,n,r){this.from=t,this.length=e,this.top=i,this.height=n,this._content=r}get type(){return typeof this._content=="number"?W.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof Ct?this._content.widget:null}get widgetLineBreaks(){return typeof this._content=="number"?this._content:0}join(t){let e=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(t._content)?t._content:[t]);return new s(this.from,this.length+t.length,this.top,this.height+t.height,e)}},O=(function(s){return s[s.ByPos=0]="ByPos",s[s.ByHeight=1]="ByHeight",s[s.ByPosNoHeight=2]="ByPosNoHeight",s})(O||(O={})),Oe=.001,K=class s{constructor(t,e,i=2){this.length=t,this.height=e,this.flags=i}get outdated(){return(this.flags&2)>0}set outdated(t){this.flags=(t?2:0)|this.flags&-3}setHeight(t){this.height!=t&&(Math.abs(this.height-t)>Oe&&(At=!0),this.height=t)}replace(t,e,i){return s.of(i)}decomposeLeft(t,e){e.push(this)}decomposeRight(t,e){e.push(this)}applyChanges(t,e,i,n){let r=this,o=i.doc;for(let l=n.length-1;l>=0;l--){let{fromA:a,toA:h,fromB:c,toB:f}=n[l],d=r.lineAt(a,O.ByPosNoHeight,i.setDoc(e),0,0),u=d.to>=h?d:r.lineAt(h,O.ByPosNoHeight,i,0,0);for(f+=u.to-h,h=u.to;l>0&&d.from<=n[l-1].toA;)a=n[l-1].fromA,c=n[l-1].fromB,l--,a<d.from&&(d=r.lineAt(a,O.ByPosNoHeight,i,0,0));c+=d.from-a,a=d.from;let p=_i.build(i.setDoc(o),t,c,f);r=_e(r,r.replace(a,h,p))}return r.updateHeight(i,0)}static empty(){return new _(0,0,0)}static of(t){if(t.length==1)return t[0];let e=0,i=t.length,n=0,r=0;for(;;)if(e==i)if(n>r*2){let l=t[e-1];l.break?t.splice(--e,1,l.left,null,l.right):t.splice(--e,1,l.left,l.right),i+=1+l.break,n-=l.size}else if(r>n*2){let l=t[i];l.break?t.splice(i,1,l.left,null,l.right):t.splice(i,1,l.left,l.right),i+=2+l.break,r-=l.size}else break;else if(n<r){let l=t[e++];l&&(n+=l.size)}else{let l=t[--i];l&&(r+=l.size)}let o=!1;return t[e-1]==null?(o=!0,e--):t[e]==null&&(o=!0,i++),new qi(s.of(t.slice(0,e)),o,s.of(t.slice(i)))}};function _e(s,t){return s==t?s:(s.constructor!=t.constructor&&(At=!0),t)}K.prototype.size=1;var Do=T.replace({}),je=class extends K{constructor(t,e,i){super(t,e),this.deco=i,this.spaceAbove=0}mainBlock(t,e){return new $(e,this.length,t+this.spaceAbove,this.height-this.spaceAbove,this.deco||0)}blockAt(t,e,i,n){return this.spaceAbove&&t<i+this.spaceAbove?new $(n,0,i,this.spaceAbove,Do):this.mainBlock(i,n)}lineAt(t,e,i,n,r){let o=this.mainBlock(n,r);return this.spaceAbove?this.blockAt(0,i,n,r).join(o):o}forEachLine(t,e,i,n,r,o){t<=r+this.length&&e>=r&&o(this.lineAt(0,O.ByPos,i,n,r))}setMeasuredHeight(t){let e=t.heights[t.index++];e<0?(this.spaceAbove=-e,e=t.heights[t.index++]):this.spaceAbove=0,this.setHeight(e)}updateHeight(t,e=0,i=!1,n){return n&&n.from<=e&&n.more&&this.setMeasuredHeight(n),this.outdated=!1,this}toString(){return`block(${this.length})`}},_=class s extends je{constructor(t,e,i){super(t,e,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=i}mainBlock(t,e){return new $(e,this.length,t+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(t,e,i){let n=i[0];return i.length==1&&(n instanceof s||n instanceof pt&&n.flags&4)&&Math.abs(this.length-n.length)<10?(n instanceof pt?n=new s(n.length,this.height,this.spaceAbove):n.height=this.height,this.outdated||(n.outdated=!1),n):K.of(i)}updateHeight(t,e=0,i=!1,n){return n&&n.from<=e&&n.more?this.setMeasuredHeight(n):(i||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,t.heightForLine(this.length-this.collapsed))+this.breaks*t.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},pt=class s extends K{constructor(t){super(t,0)}heightMetrics(t,e){let i=t.doc.lineAt(e).number,n=t.doc.lineAt(e+this.length).number,r=n-i+1,o,l=0;if(t.lineWrapping){let a=Math.min(this.height,t.lineHeight*r);o=a/r,this.length>r+1&&(l=(this.height-a)/(this.length-r-1))}else o=this.height/r;return{firstLine:i,lastLine:n,perLine:o,perChar:l}}blockAt(t,e,i,n){let{firstLine:r,lastLine:o,perLine:l,perChar:a}=this.heightMetrics(e,n);if(e.lineWrapping){let h=n+(t<e.lineHeight?0:Math.round(Math.max(0,Math.min(1,(t-i)/this.height))*this.length)),c=e.doc.lineAt(h),f=l+c.length*a,d=Math.max(i,t-f/2);return new $(c.from,c.length,d,f,0)}else{let h=Math.max(0,Math.min(o-r,Math.floor((t-i)/l))),{from:c,length:f}=e.doc.line(r+h);return new $(c,f,i+l*h,l,0)}}lineAt(t,e,i,n,r){if(e==O.ByHeight)return this.blockAt(t,i,n,r);if(e==O.ByPosNoHeight){let{from:u,to:p}=i.doc.lineAt(t);return new $(u,p-u,0,0,0)}let{firstLine:o,perLine:l,perChar:a}=this.heightMetrics(i,r),h=i.doc.lineAt(t),c=l+h.length*a,f=h.number-o,d=n+l*f+a*(h.from-r-f);return new $(h.from,h.length,Math.max(n,Math.min(d,n+this.height-c)),c,0)}forEachLine(t,e,i,n,r,o){t=Math.max(t,r),e=Math.min(e,r+this.length);let{firstLine:l,perLine:a,perChar:h}=this.heightMetrics(i,r);for(let c=t,f=n;c<=e;){let d=i.doc.lineAt(c);if(c==t){let p=d.number-l;f+=a*p+h*(t-r-p)}let u=a+h*d.length;o(new $(d.from,d.length,f,u,0)),f+=u,c=d.to+1}}replace(t,e,i){let n=this.length-e;if(n>0){let r=i[i.length-1];r instanceof s?i[i.length-1]=new s(r.length+n):i.push(null,new s(n-1))}if(t>0){let r=i[0];r instanceof s?i[0]=new s(t+r.length):i.unshift(new s(t-1),null)}return K.of(i)}decomposeLeft(t,e){e.push(new s(t-1),null)}decomposeRight(t,e){e.push(null,new s(this.length-t-1))}updateHeight(t,e=0,i=!1,n){let r=e+this.length;if(n&&n.from<=e+this.length&&n.more){let o=[],l=Math.max(e,n.from),a=-1;for(n.from>e&&o.push(new s(n.from-e-1).updateHeight(t,e));l<=r&&n.more;){let c=t.doc.lineAt(l).length;o.length&&o.push(null);let f=n.heights[n.index++],d=0;f<0&&(d=-f,f=n.heights[n.index++]),a==-1?a=f:Math.abs(f-a)>=Oe&&(a=-2);let u=new _(c,f,d);u.outdated=!1,o.push(u),l+=c+1}l<=r&&o.push(null,new s(r-l).updateHeight(t,l));let h=K.of(o);return(a<0||Math.abs(h.height-this.height)>=Oe||Math.abs(a-this.heightMetrics(t,e).perLine)>=Oe)&&(At=!0),_e(this,h)}else(i||this.outdated)&&(this.setHeight(t.heightForGap(e,e+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},qi=class extends K{constructor(t,e,i){super(t.length+(e?1:0)+i.length,t.height+i.height,(e?1:0)|(t.outdated||i.outdated?2:0)),this.left=t,this.right=i,this.size=t.size+i.size}get break(){return this.flags&1}blockAt(t,e,i,n){let r=i+this.left.height;return t<r?this.left.blockAt(t,e,i,n):this.right.blockAt(t,e,r,n+this.left.length+this.break)}lineAt(t,e,i,n,r){let o=n+this.left.height,l=r+this.left.length+this.break,a=e==O.ByHeight?t<o:t<l,h=a?this.left.lineAt(t,e,i,n,r):this.right.lineAt(t,e,i,o,l);if(this.break||(a?h.to<l:h.from>l))return h;let c=e==O.ByPosNoHeight?O.ByPosNoHeight:O.ByPos;return a?h.join(this.right.lineAt(l,c,i,o,l)):this.left.lineAt(l,c,i,n,r).join(h)}forEachLine(t,e,i,n,r,o){let l=n+this.left.height,a=r+this.left.length+this.break;if(this.break)t<a&&this.left.forEachLine(t,e,i,n,r,o),e>=a&&this.right.forEachLine(t,e,i,l,a,o);else{let h=this.lineAt(a,O.ByPos,i,n,r);t<h.from&&this.left.forEachLine(t,Math.min(e,h.from-1),i,n,r,o),h.to>=t&&h.from<=e&&o(h),e>h.to&&this.right.forEachLine(Math.max(t,h.to+1),e,i,l,a,o)}}replace(t,e,i){let n=this.left.length+this.break;if(e<n)return this.balanced(this.left.replace(t,e,i),this.right);if(t>this.left.length)return this.balanced(this.left,this.right.replace(t-n,e-n,i));let r=[];t>0&&this.decomposeLeft(t,r);let o=r.length;for(let l of i)r.push(l);if(t>0&&Qs(r,o-1),e<this.length){let l=r.length;this.decomposeRight(e,r),Qs(r,l)}return K.of(r)}decomposeLeft(t,e){let i=this.left.length;if(t<=i)return this.left.decomposeLeft(t,e);e.push(this.left),this.break&&(i++,t>=i&&e.push(null)),t>i&&this.right.decomposeLeft(t-i,e)}decomposeRight(t,e){let i=this.left.length,n=i+this.break;if(t>=n)return this.right.decomposeRight(t-n,e);t<i&&this.left.decomposeRight(t,e),this.break&&t<n&&e.push(null),e.push(this.right)}balanced(t,e){return t.size>2*e.size||e.size>2*t.size?K.of(this.break?[t,null,e]:[t,e]):(this.left=_e(this.left,t),this.right=_e(this.right,e),this.setHeight(t.height+e.height),this.outdated=t.outdated||e.outdated,this.size=t.size+e.size,this.length=t.length+this.break+e.length,this)}updateHeight(t,e=0,i=!1,n){let{left:r,right:o}=this,l=e+r.length+this.break,a=null;return n&&n.from<=e+r.length&&n.more?a=r=r.updateHeight(t,e,i,n):r.updateHeight(t,e,i),n&&n.from<=l+o.length&&n.more?a=o=o.updateHeight(t,l,i,n):o.updateHeight(t,l,i),a?this.balanced(r,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function Qs(s,t){let e,i;s[t]==null&&(e=s[t-1])instanceof pt&&(i=s[t+1])instanceof pt&&s.splice(t-1,3,new pt(e.length+1+i.length))}var Oo=5,_i=class s{constructor(t,e){this.pos=t,this.oracle=e,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=t}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(t,e){if(this.lineStart>-1){let i=Math.min(e,this.lineEnd),n=this.nodes[this.nodes.length-1];n instanceof _?n.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new _(i-this.pos,-1,0)),this.writtenTo=i,e>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=e}point(t,e,i){if(t<e||i.heightRelevant){let n=i.widget?i.widget.estimatedHeight:0,r=i.widget?i.widget.lineBreaks:0;n<0&&(n=this.oracle.lineHeight);let o=e-t;i.block?this.addBlock(new je(o,n,i)):(o||r||n>=Oo)&&this.addLineDeco(n,r,o)}else e>t&&this.span(t,e);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:t,to:e}=this.oracle.doc.lineAt(this.pos);this.lineStart=t,this.lineEnd=e,this.writtenTo<t&&((this.writtenTo<t-1||this.nodes[this.nodes.length-1]==null)&&this.nodes.push(this.blankContent(this.writtenTo,t-1)),this.nodes.push(null)),this.pos>t&&this.nodes.push(new _(this.pos-t,-1,0)),this.writtenTo=this.pos}blankContent(t,e){let i=new pt(e-t);return this.oracle.doc.lineAt(t).to==e&&(i.flags|=4),i}ensureLine(){this.enterLine();let t=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(t instanceof _)return t;let e=new _(0,-1,0);return this.nodes.push(e),e}addBlock(t){this.enterLine();let e=t.deco;e&&e.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(t),this.writtenTo=this.pos=this.pos+t.length,e&&e.endSide>0&&(this.covering=t)}addLineDeco(t,e,i){let n=this.ensureLine();n.length+=i,n.collapsed+=i,n.widgetHeight=Math.max(n.widgetHeight,t),n.breaks+=e,this.writtenTo=this.pos=this.pos+i}finish(t){let e=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(e instanceof _)&&!this.isCovered?this.nodes.push(new _(0,-1,0)):(this.writtenTo<this.pos||e==null)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos));let i=t;for(let n of this.nodes)n instanceof _&&n.updateHeight(this.oracle,i),i+=n?n.length:1;return this.nodes}static build(t,e,i,n){let r=new s(i,t);return E.spans(e,i,n,r,0),r.finish(i)}};function Ro(s,t,e){let i=new ji;return E.compare(s,t,e,i,0),i.changes}var ji=class{constructor(){this.changes=[]}compareRange(){}comparePoint(t,e,i,n){(t<e||i&&i.heightRelevant||n&&n.heightRelevant)&&Nt(t,e,this.changes,5)}};function Lo(s,t){let e=s.getBoundingClientRect(),i=s.ownerDocument,n=i.defaultView||window,r=Math.max(0,e.left),o=Math.min(n.innerWidth,e.right),l=Math.max(0,e.top),a=Math.min(n.innerHeight,e.bottom);for(let h=s.parentNode;h&&h!=i.body;)if(N(h)){let c=window.getComputedStyle(h);if((h.scrollHeight>h.clientHeight||h.scrollWidth>h.clientWidth)&&c.overflow!="visible"){let f=h.getBoundingClientRect();r=Math.max(r,f.left),o=Math.min(o,f.right),l=Math.max(l,f.top),a=Math.min(h==s.parentNode?n.innerHeight:a,f.bottom)}h=c.position=="absolute"||c.position=="fixed"?h.offsetParent:h.parentNode}else if(h.nodeType==11)h=h.host;else break;return{left:r-e.left,right:Math.max(r,o)-e.left,top:l-(e.top+t),bottom:Math.max(l,a)-(e.top+t)}}function Bo(s){let t=s.getBoundingClientRect(),e=s.ownerDocument.defaultView||window;return t.left<e.innerWidth&&t.right>0&&t.top<e.innerHeight&&t.bottom>0}function Eo(s,t){let e=s.getBoundingClientRect();return{left:0,right:e.right-e.left,top:t,bottom:e.bottom-(e.top+t)}}var te=class{constructor(t,e,i,n){this.from=t,this.to=e,this.size=i,this.displaySize=n}static same(t,e){if(t.length!=e.length)return!1;for(let i=0;i<t.length;i++){let n=t[i],r=e[i];if(n.from!=r.from||n.to!=r.to||n.size!=r.size)return!1}return!0}draw(t,e){return T.replace({widget:new Yi(this.displaySize*(e?t.scaleY:t.scaleX),e)}).range(this.from,this.to)}},Yi=class extends lt{constructor(t,e){super(),this.size=t,this.vertical=e}eq(t){return t.size==this.size&&t.vertical==this.vertical}toDOM(){let t=document.createElement("div");return this.vertical?t.style.height=this.size+"px":(t.style.width=this.size+"px",t.style.height="2px",t.style.display="inline-block"),t}get estimatedHeight(){return this.vertical?this.size:-1}},Ye=class{constructor(t,e){this.view=t,this.state=e,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scaleX=1,this.scaleY=1,this.scrollOffset=0,this.scrolledToBottom=!1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=Js,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=B.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let i=e.facet(Ze).some(n=>typeof n!="function"&&n.class=="cm-lineWrapping");this.heightOracle=new Ke(i),this.stateDeco=Zs(e),this.heightMap=K.empty().applyChanges(this.stateDeco,q.empty,this.heightOracle.setDoc(e.doc),[new X(0,0,0,e.doc.length)]);for(let n=0;n<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());n++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=T.set(this.lineGaps.map(n=>n.draw(this,!1))),this.scrollParent=t.scrollDOM,this.computeVisibleRanges()}updateForViewport(){let t=[this.viewport],{main:e}=this.state.selection;for(let i=0;i<=1;i++){let n=i?e.head:e.anchor;if(!t.some(({from:r,to:o})=>n>=r&&n<=o)){let{from:r,to:o}=this.lineBlockAt(n);t.push(new Et(r,o))}}return this.viewports=t.sort((i,n)=>i.from-n.from),this.updateScaler()}updateScaler(){let t=this.scaler;return this.scaler=this.heightMap.height<=7e6?Js:new Xi(this.heightOracle,this.heightMap,this.viewports),t.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,t=>{this.viewportLines.push(jt(t,this.scaler))})}update(t,e=null){this.state=t.state;let i=this.stateDeco;this.stateDeco=Zs(this.state);let n=t.changedRanges,r=X.extendWithRanges(n,Ro(i,this.stateDeco,t?t.changes:ni.empty(this.state.doc.length))),o=this.heightMap.height,l=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);Ki(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,t.startState.doc,this.heightOracle.setDoc(this.state.doc),r),(this.heightMap.height!=o||At)&&(t.flags|=2),l?(this.scrollAnchorPos=t.changes.mapPos(l.from,-1),this.scrollAnchorHeight=l.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let a=r.length?this.mapViewport(this.viewport,t.changes):this.viewport;(e&&(e.range.head<a.from||e.range.head>a.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,e));let h=a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,t.flags|=this.updateForViewport(),(h||!t.changes.empty||t.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,t.changes))),t.flags|=this.computeVisibleRanges(t.changes),e&&(this.scrollTarget=e),!this.mustEnforceCursorAssoc&&(t.selectionSet||t.focusChanged)&&t.view.lineWrapping&&t.state.selection.main.empty&&t.state.selection.main.assoc&&!t.state.facet(zn)&&(this.mustEnforceCursorAssoc=!0)}measure(){let{view:t}=this,e=t.contentDOM,i=window.getComputedStyle(e),n=this.heightOracle,r=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?B.RTL:B.LTR;let o=this.heightOracle.mustRefreshForWrapping(r)||this.mustMeasureContent==="refresh",l=e.getBoundingClientRect(),a=o||this.mustMeasureContent||this.contentDOMHeight!=l.height;this.contentDOMHeight=l.height,this.mustMeasureContent=!1;let h=0,c=0;if(l.width&&l.height){let{scaleX:k,scaleY:S}=wn(e,l);(k>.005&&Math.abs(this.scaleX-k)>.005||S>.005&&Math.abs(this.scaleY-S)>.005)&&(this.scaleX=k,this.scaleY=S,h|=16,o=a=!0)}let f=(parseInt(i.paddingTop)||0)*this.scaleY,d=(parseInt(i.paddingBottom)||0)*this.scaleY;(this.paddingTop!=f||this.paddingBottom!=d)&&(this.paddingTop=f,this.paddingBottom=d,h|=18),this.editorWidth!=t.scrollDOM.clientWidth&&(n.lineWrapping&&(a=!0),this.editorWidth=t.scrollDOM.clientWidth,h|=16);let u=xn(this.view.contentDOM,!1).y;u!=this.scrollParent&&(this.scrollParent=u,this.scrollAnchorHeight=-1,this.scrollOffset=0);let p=this.getScrollOffset();this.scrollOffset!=p&&(this.scrollAnchorHeight=-1,this.scrollOffset=p),this.scrolledToBottom=kn(this.scrollParent||t.win);let g=(this.printing?Eo:Lo)(e,this.paddingTop),m=g.top-this.pixelViewport.top,b=g.bottom-this.pixelViewport.bottom;this.pixelViewport=g;let w=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(w!=this.inView&&(this.inView=w,w&&(a=!0)),!this.inView&&!this.scrollTarget&&!Bo(t.dom))return 0;let x=l.width;if((this.contentDOMWidth!=x||this.editorHeight!=t.scrollDOM.clientHeight)&&(this.contentDOMWidth=l.width,this.editorHeight=t.scrollDOM.clientHeight,h|=16),a){let k=t.docView.measureVisibleLineHeights(this.viewport);if(n.mustRefreshForHeights(k)&&(o=!0),o||n.lineWrapping&&Math.abs(x-this.contentDOMWidth)>n.charWidth){let{lineHeight:S,charWidth:D,textHeight:P}=t.docView.measureTextSize();o=S>0&&n.refresh(r,S,D,P,Math.max(5,x/D),k),o&&(t.docView.minWidth=0,h|=16)}m>0&&b>0?c=Math.max(m,b):m<0&&b<0&&(c=Math.min(m,b)),Ki();for(let S of this.viewports){let D=S.from==this.viewport.from?k:t.docView.measureVisibleLineHeights(S);this.heightMap=(o?K.empty().applyChanges(this.stateDeco,q.empty,this.heightOracle,[new X(0,0,0,t.state.doc.length)]):this.heightMap).updateHeight(n,0,o,new qe(S.from,D))}At&&(h|=2)}let A=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return A&&(h&2&&(h|=this.updateScaler()),this.viewport=this.getViewport(c,this.scrollTarget),h|=this.updateForViewport()),(h&2||A)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,t)),h|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,t.docView.enforceCursorAssoc()),h}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(t,e){let i=.5-Math.max(-.5,Math.min(.5,t/1e3/2)),n=this.heightMap,r=this.heightOracle,{visibleTop:o,visibleBottom:l}=this,a=new Et(n.lineAt(o-i*1e3,O.ByHeight,r,0,0).from,n.lineAt(l+(1-i)*1e3,O.ByHeight,r,0,0).to);if(e){let{head:h}=e.range;if(h<a.from||h>a.to){let c=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),f=n.lineAt(h,O.ByPos,r,0,0),d;e.y=="center"?d=(f.top+f.bottom)/2-c/2:e.y=="start"||e.y=="nearest"&&h<a.from?d=f.top:d=f.bottom-c,a=new Et(n.lineAt(d-1e3/2,O.ByHeight,r,0,0).from,n.lineAt(d+c+1e3/2,O.ByHeight,r,0,0).to)}}return a}mapViewport(t,e){let i=e.mapPos(t.from,-1),n=e.mapPos(t.to,1);return new Et(this.heightMap.lineAt(i,O.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(n,O.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:t,to:e},i=0){if(!this.inView)return!0;let{top:n}=this.heightMap.lineAt(t,O.ByPos,this.heightOracle,0,0),{bottom:r}=this.heightMap.lineAt(e,O.ByPos,this.heightOracle,0,0),{visibleTop:o,visibleBottom:l}=this;return(t==0||n<=o-Math.max(10,Math.min(-i,250)))&&(e==this.state.doc.length||r>=l+Math.max(10,Math.min(i,250)))&&n>o-2*1e3&&r<l+2*1e3}mapLineGaps(t,e){if(!t.length||e.empty)return t;let i=[];for(let n of t)e.touchesRange(n.from,n.to)||i.push(new te(e.mapPos(n.from),e.mapPos(n.to),n.size,n.displaySize));return i}ensureLineGaps(t,e){let i=this.heightOracle.lineWrapping,n=i?1e4:2e3,r=n>>1,o=n<<1;if(this.defaultTextDirection!=B.LTR&&!i)return[];let l=[],a=(c,f,d,u)=>{if(f-c<r)return;let p=this.state.selection.main,g=[p.from];p.empty||g.push(p.to);for(let b of g)if(b>c&&b<f){a(c,b-10,d,u),a(b+10,f,d,u);return}let m=Po(t,b=>b.from>=d.from&&b.to<=d.to&&Math.abs(b.from-c)<r&&Math.abs(b.to-f)<r&&!g.some(w=>b.from<w&&b.to>w));if(!m){if(f<d.to&&e&&i&&e.visibleRanges.some(x=>x.from<=f&&x.to>=f)){let x=e.moveToLineBoundary(v.cursor(f),!1,!0).head;x>c&&(f=x)}let b=this.gapSize(d,c,f,u),w=i||b<2e6?b:2e6;m=new te(c,f,b,w)}l.push(m)},h=c=>{if(c.length<o||c.type!=W.Text)return;let f=Ho(c.from,c.to,this.stateDeco);if(f.total<o)return;let d=this.scrollTarget?this.scrollTarget.range.head:null,u,p;if(i){let g=n/this.heightOracle.lineLength*this.heightOracle.lineHeight,m,b;if(d!=null){let w=ke(f,d),x=((this.visibleBottom-this.visibleTop)/2+g)/c.height;m=w-x,b=w+x}else m=(this.visibleTop-c.top-g)/c.height,b=(this.visibleBottom-c.top+g)/c.height;u=Ce(f,m),p=Ce(f,b)}else{let g=f.total*this.heightOracle.charWidth,m=n*this.heightOracle.charWidth,b=0;if(g>2e6)for(let S of t)S.from>=c.from&&S.from<c.to&&S.size!=S.displaySize&&S.from*this.heightOracle.charWidth+b<this.pixelViewport.left&&(b=S.size-S.displaySize);let w=this.pixelViewport.left+b,x=this.pixelViewport.right+b,A,k;if(d!=null){let S=ke(f,d),D=((x-w)/2+m)/g;A=S-D,k=S+D}else A=(w-m)/g,k=(x+m)/g;u=Ce(f,A),p=Ce(f,k)}u>c.from&&a(c.from,u,c,f),p<c.to&&a(p,c.to,c,f)};for(let c of this.viewportLines)Array.isArray(c.type)?c.type.forEach(h):h(c);return l}gapSize(t,e,i,n){let r=ke(n,i)-ke(n,e);return this.heightOracle.lineWrapping?t.height*r:n.total*this.heightOracle.charWidth*r}updateLineGaps(t){te.same(t,this.lineGaps)||(this.lineGaps=t,this.lineGapDeco=T.set(t.map(e=>e.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(t){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let i=[];E.spans(e,this.viewport.from,this.viewport.to,{span(r,o){i.push({from:r,to:o})},point(){}},20);let n=0;if(i.length!=this.visibleRanges.length)n=12;else for(let r=0;r<i.length&&!(n&8);r++){let o=this.visibleRanges[r],l=i[r];(o.from!=l.from||o.to!=l.to)&&(n|=4,t&&t.mapPos(o.from,-1)==l.from&&t.mapPos(o.to,1)==l.to||(n|=8))}return this.visibleRanges=i,n}lineBlockAt(t){return t>=this.viewport.from&&t<=this.viewport.to&&this.viewportLines.find(e=>e.from<=t&&e.to>=t)||jt(this.heightMap.lineAt(t,O.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(t){return t>=this.viewportLines[0].top&&t<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(e=>e.top<=t&&e.bottom>=t)||jt(this.heightMap.lineAt(this.scaler.fromDOM(t),O.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){return this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop*this.scaleY:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top}scrollAnchorAt(t){let e=this.lineBlockAtHeight(t+8);return e.from>=this.viewport.from||this.viewportLines[0].top-t>200?e:this.viewportLines[0]}elementAtHeight(t){return jt(this.heightMap.blockAt(this.scaler.fromDOM(t),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},Et=class{constructor(t,e){this.from=t,this.to=e}};function Ho(s,t,e){let i=[],n=s,r=0;return E.spans(e,s,t,{span(){},point(o,l){o>n&&(i.push({from:n,to:o}),r+=o-n),n=l}},20),n<t&&(i.push({from:n,to:t}),r+=t-n),{total:r,ranges:i}}function Ce({total:s,ranges:t},e){if(e<=0)return t[0].from;if(e>=1)return t[t.length-1].to;let i=Math.floor(s*e);for(let n=0;;n++){let{from:r,to:o}=t[n],l=o-r;if(i<=l)return r+i;i-=l}}function ke(s,t){let e=0;for(let{from:i,to:n}of s.ranges){if(t<=n){e+=t-i;break}e+=n-i}return e/s.total}function Po(s,t){for(let e of s)if(t(e))return e}var Js={toDOM(s){return s},fromDOM(s){return s},scale:1,eq(s){return s==this}};function Zs(s){let t=s.facet(ti).filter(i=>typeof i!="function"),e=s.facet(ys).filter(i=>typeof i!="function");return e.length&&t.push(E.join(e)),t}var Xi=class s{constructor(t,e,i){let n=0,r=0,o=0;this.viewports=i.map(({from:l,to:a})=>{let h=e.lineAt(l,O.ByPos,t,0,0).top,c=e.lineAt(a,O.ByPos,t,0,0).bottom;return n+=c-h,{from:l,to:a,top:h,bottom:c,domTop:0,domBottom:0}}),this.scale=(7e6-n)/(e.height-n);for(let l of this.viewports)l.domTop=o+(l.top-r)*this.scale,o=l.domBottom=l.domTop+(l.bottom-l.top),r=l.bottom}toDOM(t){for(let e=0,i=0,n=0;;e++){let r=e<this.viewports.length?this.viewports[e]:null;if(!r||t<r.top)return n+(t-i)*this.scale;if(t<=r.bottom)return r.domTop+(t-r.top);i=r.bottom,n=r.domBottom}}fromDOM(t){for(let e=0,i=0,n=0;;e++){let r=e<this.viewports.length?this.viewports[e]:null;if(!r||t<r.domTop)return i+(t-n)/this.scale;if(t<=r.domBottom)return r.top+(t-r.domTop);i=r.bottom,n=r.domBottom}}eq(t){return t instanceof s?this.scale==t.scale&&this.viewports.length==t.viewports.length&&this.viewports.every((e,i)=>e.from==t.viewports[i].from&&e.to==t.viewports[i].to):!1}};function jt(s,t){if(t.scale==1)return s;let e=t.toDOM(s.top),i=t.toDOM(s.bottom);return new $(s.from,s.length,e,i-e,Array.isArray(s._content)?s._content.map(n=>jt(n,t)):s._content)}var Me=C.define({combine:s=>s.join(" ")}),$i=C.define({combine:s=>s.indexOf(!0)>-1}),Gi=st.newName(),ar=st.newName(),hr=st.newName(),cr={"&light":"."+ar,"&dark":"."+hr};function Ui(s,t,e){return new st(t,{finish(i){return/&/.test(i)?i.replace(/&\w*/,n=>{if(n=="&")return s;if(!e||!e[n])throw new RangeError(`Unsupported selector: ${n}`);return e[n]}):s+" "+i}})}var No=Ui("."+Gi,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{userSelect:"none",position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-selectionHandle":{backgroundColor:"currentColor",width:"1.5px"},".cm-selectionHandle-start::before, .cm-selectionHandle-end::before":{content:'""',backgroundColor:"inherit",borderRadius:"50%",width:"8px",height:"8px",position:"absolute",left:"-3.25px"},".cm-selectionHandle-start::before":{top:"-8px"},".cm-selectionHandle-end::before":{bottom:"-8px"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},".cm-panels-top":{top:"0"},".cm-panels-bottom":{bottom:"0"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"baseline",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{background:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 0) no-repeat",backgroundSize:".4em",backgroundPosition:"calc(min(50%, 0px)) center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},cr),Wo={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},di=y.ie&&y.ie_version<=11,Qi=class{constructor(t){this.view=t,this.active=!1,this.editContext=null,this.selectionRange=new xi,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=t.contentDOM,this.observer=new MutationObserver(e=>{for(let i of e)this.queue.push(i);(y.ie&&y.ie_version<=11||y.ios&&t.composing)&&e.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&y.android&&t.constructor.EDIT_CONTEXT!==!1&&!(y.chrome&&y.chrome_version<126)&&(this.editContext=new Ji(t),t.state.facet(rt)&&(t.contentDOM.editContext=this.editContext.editContext)),di&&(this.onCharData=e=>{this.queue.push({target:e.target,type:"characterData",oldValue:e.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var e;((e=this.view.docView)===null||e===void 0?void 0:e.lastUpdate)<Date.now()-75&&this.onResize()}),this.resizeScroll.observe(t.scrollDOM)),this.addWindowListeners(this.win=t.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(e=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),e.length>0&&e[e.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(e=>{e.length>0&&e[e.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(t){this.view.inputState.runHandlers("scroll",t),this.intersecting&&this.view.measure()}onScroll(t){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(t)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(t){(t.type=="change"||!t.type)&&!t.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(t){if(this.gapIntersection&&(t.length!=this.gaps.length||this.gaps.some((e,i)=>e!=t[i]))){this.gapIntersection.disconnect();for(let e of t)this.gapIntersection.observe(e);this.gaps=t}}onSelectionChange(t){let e=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,n=this.selectionRange;if(i.state.facet(rt)?i.root.activeElement!=this.dom:!Xt(this.dom,n))return;let r=n.anchorNode&&i.docView.tile.nearest(n.anchorNode);if(r&&r.isWidget()&&r.widget.ignoreEvent(t)){e||(this.selectionChanged=!1);return}(y.ie&&y.ie_version<=11||y.android&&y.chrome)&&!i.state.selection.main.empty&&n.focusNode&&Gt(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:t}=this,e=re(t.root);if(!e)return!1;let i=y.safari&&t.root.nodeType==11&&t.root.activeElement==this.dom&&Vo(this.view,e)||e;if(!i||this.selectionRange.eq(i))return!1;let n=Xt(this.dom,i);return n&&!this.selectionChanged&&t.inputState.lastFocusTime>Date.now()-200&&t.inputState.lastTouchTime<Date.now()-300&&Er(this.dom,i)?(this.view.inputState.lastFocusTime=0,t.docView.updateSelection(),!1):(this.selectionRange.setRange(i),n&&(this.selectionChanged=!0),!0)}setSelectionRange(t,e){this.selectionRange.set(t.node,t.offset,e.node,e.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let t=0,e=null;for(let i=this.dom;i;)if(N(i))!e&&t<this.scrollTargets.length&&this.scrollTargets[t]==i?t++:e||(e=this.scrollTargets.slice(0,t)),e&&e.push(i),i=i.assignedSlot||i.parentNode;else if(i.nodeType==11)i=i.host;else break;if(t<this.scrollTargets.length&&!e&&(e=this.scrollTargets.slice(0,t)),e){for(let i of this.scrollTargets)i.removeEventListener("scroll",this.onScroll);for(let i of this.scrollTargets=e)i.addEventListener("scroll",this.onScroll)}}ignore(t){if(!this.active)return t();try{return this.stop(),t()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,Wo),di&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),di&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(t,e){var i;if(!this.delayedAndroidKey){let n=()=>{let r=this.delayedAndroidKey;r&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=r.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&r.force&&Wt(this.dom,r.key,r.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(n)}(!this.delayedAndroidKey||t=="Enter")&&(this.delayedAndroidKey={key:t,keyCode:e,force:this.lastChange<Date.now()-50||!!(!((i=this.delayedAndroidKey)===null||i===void 0)&&i.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let t of this.observer.takeRecords())this.queue.push(t);return this.queue}processRecords(){let t=this.pendingRecords();t.length&&(this.queue=[]);let e=-1,i=-1,n=!1;for(let r of t){let o=this.readMutation(r);o&&(o.typeOver&&(n=!0),e==-1?{from:e,to:i}=o:(e=Math.min(o.from,e),i=Math.max(o.to,i)))}return{from:e,to:i,typeOver:n}}readChange(){let{from:t,to:e,typeOver:i}=this.processRecords(),n=this.selectionChanged&&Xt(this.dom,this.selectionRange);if(t<0&&!n)return null;t>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let r=new Wi(this.view,t,e,i);return this.view.docView.domChanged={newSel:r.newSel?r.newSel.main:null},r}flush(t=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;t&&this.readSelectionRange();let e=this.selectionChanged,i=this.readChange();if(!i)return this.view.requestMeasure(),!1;let n=this.view.state,r=Jn(this.view,i);return this.view.state==n&&(i.domChanged||e)&&this.view.update([]),r}readMutation(t){let e=this.view.docView.tile.nearest(t.target);if(!e||e.isWidget())return null;if(e.markDirty(t.type=="attributes"),t.type=="childList"){let i=tn(e,t.previousSibling||t.target.previousSibling,-1),n=tn(e,t.nextSibling||t.target.nextSibling,1);return{from:i?e.posAfter(i):e.posAtStart,to:n?e.posBefore(n):e.posAtEnd,typeOver:!1}}else return t.type=="characterData"?{from:e.posAtStart,to:e.posAtEnd,typeOver:t.target.nodeValue==t.oldValue}:null}setWindow(t){t!=this.win&&(this.removeWindowListeners(this.win),this.win=t,this.addWindowListeners(this.win))}addWindowListeners(t){t.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):t.addEventListener("beforeprint",this.onPrint),t.addEventListener("scroll",this.onScroll),t.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(t){t.removeEventListener("scroll",this.onScroll),t.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):t.removeEventListener("beforeprint",this.onPrint),t.document.removeEventListener("selectionchange",this.onSelectionChange)}update(t){this.editContext&&(this.editContext.update(t),t.startState.facet(rt)!=t.state.facet(rt)&&(t.view.contentDOM.editContext=t.state.facet(rt)?this.editContext.editContext:null))}destroy(){var t,e,i;this.stop(),(t=this.intersection)===null||t===void 0||t.disconnect(),(e=this.gapIntersection)===null||e===void 0||e.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect();for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}};function tn(s,t,e){for(;t;){let i=L.get(t);if(i&&i.parent==s)return i;let n=t.parentNode;t=n!=s.dom?n:e>0?t.nextSibling:t.previousSibling}return null}function en(s,t){let e=t.startContainer,i=t.startOffset,n=t.endContainer,r=t.endOffset,o=s.docView.domAtPos(s.state.selection.main.anchor,1);return Gt(o.node,o.offset,n,r)&&([e,i,n,r]=[n,r,e,i]),{anchorNode:e,anchorOffset:i,focusNode:n,focusOffset:r}}function Vo(s,t){if(t.getComposedRanges){let n=t.getComposedRanges(s.root)[0];if(n)return en(s,n)}let e=null;function i(n){n.preventDefault(),n.stopImmediatePropagation(),e=n.getTargetRanges()[0]}return s.contentDOM.addEventListener("beforeinput",i,!0),s.dom.ownerDocument.execCommand("indent"),s.contentDOM.removeEventListener("beforeinput",i,!0),e?en(s,e):null}var Ji=class{constructor(t){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(t.state);let e=this.editContext=new window.EditContext({text:t.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,t.state.selection.main.anchor))),selectionEnd:this.toContextPos(t.state.selection.main.head)});this.handlers.textupdate=i=>{let n=t.state.selection.main,{anchor:r,head:o}=n,l=this.toEditorPos(i.updateRangeStart),a=this.toEditorPos(i.updateRangeEnd);t.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:i.updateRangeStart,editorBase:l,drifted:!1});let h=a-l>i.text.length;l==this.from&&r<this.from?l=r:a==this.to&&r>this.to&&(a=r);let c=Zn(t.state.sliceDoc(l,a),i.text,(h?n.from:n.to)-l,h?"end":null);if(!c){let d=v.single(this.toEditorPos(i.selectionStart),this.toEditorPos(i.selectionEnd));Vi(d,n)||t.dispatch({selection:d,userEvent:"select"});return}let f={from:c.from+l,to:c.toA+l,insert:q.of(i.text.slice(c.from,c.toB).split(` +`))};if((y.mac||y.android)&&f.from==o-1&&/^\. ?$/.test(i.text)&&t.contentDOM.getAttribute("autocorrect")=="off"&&(f={from:l,to:a,insert:q.of([i.text.replace("."," ")])}),this.pendingContextChange=f,!t.state.readOnly){let d=this.to-this.from+(f.to-f.from+f.insert.length);xs(t,f,v.single(this.toEditorPos(i.selectionStart,d),this.toEditorPos(i.selectionEnd,d)))}this.pendingContextChange&&(this.revertPending(t.state),this.setSelection(t.state)),f.from<f.to&&!f.insert.length&&t.inputState.composing>=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(e.text.slice(Math.max(0,i.updateRangeStart-1),Math.min(e.text.length,i.updateRangeStart+1)))&&this.handlers.compositionend(i)},this.handlers.characterboundsupdate=i=>{let n=[],r=null;for(let o=this.toEditorPos(i.rangeStart),l=this.toEditorPos(i.rangeEnd);o<l;o++){let a=t.coordsForChar(o);r=a&&new DOMRect(a.left,a.top,a.right-a.left,a.bottom-a.top)||r||new DOMRect,n.push(r)}e.updateCharacterBounds(i.rangeStart,n)},this.handlers.textformatupdate=i=>{let n=[];for(let r of i.getTextFormats()){let o=r.underlineStyle,l=r.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(l)){let a=this.toEditorPos(r.rangeStart),h=this.toEditorPos(r.rangeEnd);if(a<h){let c=`text-decoration: underline ${/^[a-z]/.test(o)?o+" ":o=="Dashed"?"dashed ":o=="Squiggle"?"wavy ":""}${/thin/i.test(l)?1:2}px`;n.push(T.mark({attributes:{style:c}}).range(a,h))}}}t.dispatch({effects:qn.of(T.set(n))})},this.handlers.compositionstart=()=>{t.inputState.composing<0&&(t.inputState.composing=0,t.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(t.inputState.composing=-1,t.inputState.compositionFirstChange=null,this.composing){let{drifted:i}=this.composing;this.composing=null,i&&this.reset(t.state)}};for(let i in this.handlers)e.addEventListener(i,this.handlers[i]);this.measureReq={read:i=>{let n=re(i.root);n&&n.rangeCount&&this.editContext.updateSelectionBounds(n.getRangeAt(0).getBoundingClientRect())}}}applyEdits(t){let e=0,i=!1,n=this.pendingContextChange;return t.changes.iterChanges((r,o,l,a,h)=>{if(i)return;let c=h.length-(o-r);if(n&&o>=n.to)if(n.from==r&&n.to==o&&n.insert.eq(h)){n=this.pendingContextChange=null,e+=c,this.to+=c;return}else n=null,this.revertPending(t.state);if(r+=e,o+=e,o<=this.from)this.from+=c,this.to+=c;else if(r<this.to){if(r<this.from||o>this.to||this.to-this.from+h.length>3e4){i=!0;return}this.editContext.updateText(this.toContextPos(r),this.toContextPos(o),h.toString()),this.to+=c}e+=c}),n&&!i&&this.revertPending(t.state),!i}update(t){let e=this.pendingContextChange,i=t.startState.selection.main;this.composing&&(this.composing.drifted||!t.changes.touchesRange(i.from,i.to)&&t.transactions.some(n=>!n.isUserEvent("input.type")&&n.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=t.changes.mapPos(this.composing.editorBase)):!this.applyEdits(t)||!this.rangeIsValid(t.state)?(this.pendingContextChange=null,this.reset(t.state)):(t.docChanged||t.selectionSet||e)&&this.setSelection(t.state),(t.geometryChanged||t.docChanged||t.selectionSet)&&t.view.requestMeasure(this.measureReq)}resetRange(t){let{head:e}=t.selection.main;this.from=Math.max(0,e-1e4),this.to=Math.min(t.doc.length,e+1e4)}reset(t){this.resetRange(t),this.editContext.updateText(0,this.editContext.text.length,t.doc.sliceString(this.from,this.to)),this.setSelection(t)}revertPending(t){let e=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(e.from),this.toContextPos(e.from+e.insert.length),t.doc.sliceString(e.from,e.to))}setSelection(t){let{main:e}=t.selection,i=this.toContextPos(Math.max(this.from,Math.min(this.to,e.anchor))),n=this.toContextPos(e.head);(this.editContext.selectionStart!=i||this.editContext.selectionEnd!=n)&&this.editContext.updateSelection(i,n)}rangeIsValid(t){let{head:e}=t.selection.main;return!(this.from>0&&e-this.from<500||this.to<t.doc.length&&this.to-e<500||this.to-this.from>1e4*3)}toEditorPos(t,e=this.to-this.from){t=Math.min(t,e);let i=this.composing;return i&&i.drifted?i.editorBase+(t-i.contextBase):t+this.from}toContextPos(t){let e=this.composing;return e&&e.drifted?e.contextBase+(t-e.editorBase):t-this.from}destroy(){for(let t in this.handlers)this.editContext.removeEventListener(t,this.handlers[t])}},M=class s{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(t={}){var e;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.clearAnnouncement=-1,this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),t.parent&&t.parent.appendChild(this.dom);let{dispatch:i}=t;this.dispatchTransactions=t.dispatchTransactions||i&&(n=>n.forEach(r=>i(r,this)))||(n=>this.update(n)),this.dispatch=this.dispatch.bind(this),this._root=t.root||Br(t.parent)||document,this.viewState=new Ye(this,t.state||Ot.create(t)),t.scrollTo&&t.scrollTo.is(xe)&&(this.viewState.scrollTarget=t.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(Bt).map(n=>new Qt(n));for(let n of this.plugins)n.update(this);this.observer=new Qi(this),this.inputState=new Fi(this),this.inputState.ensureHandlers(this.plugins),this.docView=new Ie(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((e=document.fonts)===null||e===void 0)&&e.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...t){let e=t.length==1&&t[0]instanceof Ms?t:t.length==1&&Array.isArray(t[0])?t[0]:[this.state.update(...t)];this.dispatchTransactions(e,this)}update(t){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let e=!1,i=!1,n,r=this.state;for(let d of t){if(d.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=d.state}if(this.destroyed){this.viewState.state=r;return}let o=this.hasFocus,l=0,a=null;t.some(d=>d.annotation(rr))?(this.inputState.notifiedFocused=o,l=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,a=or(r,o),a||(l=1));let h=this.observer.delayedAndroidKey,c=null;if(h?(this.observer.clearDelayedAndroidKey(),c=this.observer.readChange(),(c&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(c=null)):this.observer.clear(),r.facet(Ot.phrases)!=this.state.facet(Ot.phrases))return this.setState(r);n=Ve.create(this,r,t),n.flags|=l;let f=this.viewState.scrollTarget;try{this.updateState=2;for(let d of t){if(f&&(f=f.map(d.changes)),d.scrollIntoView){let{main:u}=d.state.selection,{x:p,y:g}=this.state.facet(s.cursorScrollMargin);f=new Ut(u.empty?u:v.cursor(u.head,u.head>u.anchor?-1:1),"nearest","nearest",g,p)}for(let u of d.effects)u.is(xe)&&(f=u.value.clip(this.state))}this.viewState.update(n,f),this.bidiCache=Xe.update(this.bidiCache,n.changes),n.empty||(this.updatePlugins(n),this.inputState.update(n)),e=this.docView.update(n),this.state.facet(_t)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(t),this.docView.updateSelection(e,t.some(d=>d.isUserEvent("select.pointer")))}finally{this.updateState=0}if(n.startState.facet(Me)!=n.state.facet(Me)&&(this.viewState.mustMeasureContent=!0),(e||i||f||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),e&&this.docViewUpdate(),!n.empty)for(let d of this.state.facet(ki))try{d(n)}catch(u){Z(this.state,u,"update listener")}(a||c)&&Promise.resolve().then(()=>{a&&this.state==a.startState&&this.dispatch(a),c&&!Jn(this,c)&&h.force&&Wt(this.contentDOM,h.key,h.keyCode)})}setState(t){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=t;return}this.updateState=2;let e=this.hasFocus;try{for(let i of this.plugins)i.destroy(this);this.viewState=new Ye(this,t),this.plugins=t.facet(Bt).map(i=>new Qt(i)),this.pluginMap.clear();for(let i of this.plugins)i.update(this);this.docView.destroy(),this.docView=new Ie(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}e&&this.focus(),this.requestMeasure()}updatePlugins(t){let e=t.startState.facet(Bt),i=t.state.facet(Bt);if(e!=i){let n=[];for(let r of i){let o=e.indexOf(r);if(o<0)n.push(new Qt(r));else{let l=this.plugins[o];l.mustUpdate=t,n.push(l)}}for(let r of this.plugins)r.mustUpdate!=t&&r.destroy(this);this.plugins=n,this.pluginMap.clear()}else for(let n of this.plugins)n.mustUpdate=t;for(let n=0;n<this.plugins.length;n++)this.plugins[n].update(this);e!=i&&this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let t of this.plugins){let e=t.value;if(e&&e.docViewUpdate)try{e.docViewUpdate(this)}catch(i){Z(this.state,i,"doc view update listener")}}}measure(t=!0){if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,t&&this.observer.forceFlush();let e=null,i=this.viewState.scrollParent,n=this.viewState.getScrollOffset(),{scrollAnchorPos:r,scrollAnchorHeight:o,scaleY:l}=this.viewState;Math.abs(n-this.viewState.scrollOffset)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let a=0;;a++){if(o<0){if(kn(i||this.win))r=-1,o=this.viewState.heightMap.height/this.viewState.scaleY;else{let p=this.viewState.scrollAnchorAt(n);r=p.from,o=p.top}l=this.viewState.scaleY}this.updateState=1;let h=this.viewState.measure();if(!h&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(a>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let c=[];h&4||([this.measureRequests,c]=[c,this.measureRequests]);let f=c.map(p=>{try{return p.read(this)}catch(g){return Z(this.state,g),sn}}),d=Ve.create(this,this.state,[]),u=!1;d.flags|=h,e?e.flags|=h:e=d,this.updateState=2,d.empty||(this.updatePlugins(d),this.inputState.update(d),this.updateAttrs(),u=this.docView.update(d),u&&this.docViewUpdate());for(let p=0;p<c.length;p++)if(f[p]!=sn)try{let g=c[p];g.write&&g.write(f[p],this)}catch(g){Z(this.state,g)}if(u&&this.docView.updateSelection(!0),!d.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight)if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,o=-1;continue}else{let g=(r<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(r).top)/this.viewState.scaleY-o/l;if((g>1||g<-1)&&!(y.ios&&this.inputState.lastIOSMomentumScroll>Date.now()-100)&&(i==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){n=n+g,i?r<0?i.scrollTop=i.scrollHeight:i.scrollTop+=g:this.win.scrollBy(0,g),o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(e&&!e.empty)for(let a of this.state.facet(ki))a(e)}get themeClasses(){return Gi+" "+(this.state.facet($i)?hr:ar)+" "+this.state.facet(Me)}updateAttrs(){let t=nn(this,_n,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),e={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(rt)?"true":"false",class:"cm-content",style:`${y.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(e["aria-readonly"]="true"),nn(this,Ze,e);let i=this.observer.ignore(()=>{let n=Ns(this.contentDOM,this.contentAttrs,e),r=Ns(this.dom,this.editorAttrs,t);return n||r});return this.editorAttrs=t,this.contentAttrs=e,i}showAnnouncements(t){let e=!0;for(let i of t)for(let n of i.effects)if(n.is(s.announce)){e&&(this.announceDOM.textContent="",this.win.clearTimeout(this.clearAnnouncement),this.clearAnnouncement=this.win.setTimeout(()=>{this.announceDOM.textContent="\xA0"},200),e=!1);let r=this.announceDOM.appendChild(document.createElement("div"));r.textContent=n.value}}mountStyles(){this.styleModules=this.state.facet(_t);let t=this.state.facet(s.cspNonce);st.mount(this.root,this.styleModules.concat(No).reverse(),t?{nonce:t}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(t){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),t){if(this.measureRequests.indexOf(t)>-1)return;if(t.key!=null){for(let e=0;e<this.measureRequests.length;e++)if(this.measureRequests[e].key===t.key){this.measureRequests[e]=t;return}}this.measureRequests.push(t)}}plugin(t){let e=this.pluginMap.get(t);return(e===void 0||e&&e.plugin!=t)&&this.pluginMap.set(t,e=this.plugins.find(i=>i.plugin==t)||null),e&&e.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(t){return this.readMeasured(),this.viewState.elementAtHeight(t)}lineBlockAtHeight(t){return this.readMeasured(),this.viewState.lineBlockAtHeight(t)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(t){return this.viewState.lineBlockAt(t)}get contentHeight(){return this.viewState.contentHeight}moveByChar(t,e,i){return fi(this,t,Ks(this,t,e,i))}moveByGroup(t,e){return fi(this,t,Ks(this,t,e,i=>ro(this,t.head,i)))}visualLineSide(t,e){return e?v.cursor(t.to,1):v.cursor(t.from,-1)}moveToLineBoundary(t,e,i=!0){return no(this,t,e,i)}moveVertically(t,e,i){return fi(this,t,oo(this,t,e,i))}domAtPos(t,e=1){return this.docView.domAtPos(t,e)}posAtDOM(t,e=0){return this.docView.posFromDOM(t,e)}posAtCoords(t,e=!0){this.readMeasured();let i=Hi(this,t,e);return i&&i.pos}posAndSideAtCoords(t,e=!0){return this.readMeasured(),Hi(this,t,e)}coordsAtPos(t,e=1){this.readMeasured();let i=this.state.doc.lineAt(t),n=this.bidiSpans(i),r=n[Y.find(n,t-i.from,-1,e)];return i.length&&(t==i.from&&e<0||t==i.to&&e>0)&&r.dir!=this.textDirectionAt(i.from)&&(t==i.to?(t=i.from+r.from,e=1):(t=i.from+r.to,e=-1)),this.docView.coordsAt(t,e,r.dir==B.RTL)}coordsForChar(t){return this.readMeasured(),this.docView.coordsForChar(t)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(t){return!this.state.facet(In)||t<this.viewport.from||t>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(t))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(t){if(t.length>Fo)return Ln(t.length);let e=this.textDirectionAt(t.from),i;for(let r of this.bidiCache)if(r.from==t.from&&r.dir==e&&(r.fresh||On(r.isolates,i=Fs(this,t))))return r.order;i||(i=Fs(this,t));let n=Rn(t.text,e,i);return this.bidiCache.push(new Xe(t.from,t.to,e,i,!0,n)),n}get hasFocus(){var t;return(this.dom.ownerDocument.hasFocus()||y.safari&&((t=this.inputState)===null||t===void 0?void 0:t.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{Cn(this.contentDOM),this.docView.updateSelection()})}setRoot(t){this._root!=t&&(this._root=t,this.observer.setWindow((t.nodeType==9?t:t.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let t of this.plugins)t.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.win.clearTimeout(this.clearAnnouncement),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(t,e={}){var i,n,r,o;return xe.of(new Ut(typeof t=="number"?v.cursor(t):t,(i=e.y)!==null&&i!==void 0?i:"nearest",(n=e.x)!==null&&n!==void 0?n:"nearest",(r=e.yMargin)!==null&&r!==void 0?r:5,(o=e.xMargin)!==null&&o!==void 0?o:5))}scrollSnapshot(){let{scrollTop:t,scrollLeft:e}=this.scrollDOM,i=this.viewState.scrollAnchorAt(t);return xe.of(new Ut(v.cursor(i.from),"start","start",i.top-t,e,!0))}setTabFocusMode(t){t==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof t=="boolean"?this.inputState.tabFocusMode=t?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+t)}static domEventHandlers(t){return V.define(()=>({}),{eventHandlers:t})}static domEventObservers(t){return V.define(()=>({}),{eventObservers:t})}static theme(t,e){let i=st.newName(),n=[Me.of(i),_t.of(Ui(`.${i}`,t))];return e&&e.dark&&n.push($i.of(!0)),n}static baseTheme(t){return ge.lowest(_t.of(Ui("."+Gi,t,cr)))}static findFromDOM(t){var e;let i=t.querySelector(".cm-content"),n=i&&L.get(i)||L.get(t);return((e=n?.root)===null||e===void 0?void 0:e.view)||null}};M.styleModule=_t;M.inputHandler=Vn;M.clipboardInputFilter=ms;M.clipboardOutputFilter=bs;M.scrollHandler=Kn;M.focusChangeEffect=Fn;M.perLineTextDirection=In;M.exceptionSink=Wn;M.updateListener=ki;M.editable=rt;M.mouseSelectionStyle=Nn;M.dragMovesSelection=Pn;M.clickAddsSelectionRange=Hn;M.decorations=ti;M.blockWrappers=jn;M.outerDecorations=ys;M.atomicRanges=ce;M.bidiIsolatedRanges=Yn;M.cursorScrollMargin=C.define({combine:s=>{let t=5,e=5;for(let i of s)typeof i=="number"?t=e=i:{x:t,y:e}=i;return{x:t,y:e}}});M.scrollMargins=Xn;M.darkTheme=$i;M.cspNonce=C.define({combine:s=>s.length?s[0]:""});M.contentAttributes=Ze;M.editorAttributes=_n;M.lineWrapping=M.contentAttributes.of({class:"cm-lineWrapping"});M.announce=U.define();var Fo=4096,sn={},Xe=class s{constructor(t,e,i,n,r,o){this.from=t,this.to=e,this.dir=i,this.isolates=n,this.fresh=r,this.order=o}static update(t,e){if(e.empty&&!t.some(r=>r.fresh))return t;let i=[],n=t.length?t[t.length-1].dir:B.LTR;for(let r=Math.max(0,t.length-10);r<t.length;r++){let o=t[r];o.dir==n&&!e.touchesRange(o.from,o.to)&&i.push(new s(e.mapPos(o.from,1),e.mapPos(o.to,-1),o.dir,o.isolates,!1,o.order))}return i}};function nn(s,t,e){for(let i=s.state.facet(t),n=i.length-1;n>=0;n--){let r=i[n],o=typeof r=="function"?r(s):r;o&&us(o,e)}return e}var Io=y.mac?"mac":y.windows?"win":y.linux?"linux":"key";function zo(s,t){let e=s.split(/-(?!$)/),i=e[e.length-1];i=="Space"&&(i=" ");let n,r,o,l;for(let a=0;a<e.length-1;++a){let h=e[a];if(/^(cmd|meta|m)$/i.test(h))l=!0;else if(/^a(lt)?$/i.test(h))n=!0;else if(/^(c|ctrl|control)$/i.test(h))r=!0;else if(/^s(hift)?$/i.test(h))o=!0;else if(/^mod$/i.test(h))t=="mac"?l=!0:r=!0;else throw new Error("Unrecognized modifier name: "+h)}return n&&(i="Alt-"+i),r&&(i="Ctrl-"+i),l&&(i="Meta-"+i),o&&(i="Shift-"+i),i}function Ae(s,t,e){return t.altKey&&(s="Alt-"+s),t.ctrlKey&&(s="Ctrl-"+s),t.metaKey&&(s="Meta-"+s),e!==!1&&t.shiftKey&&(s="Shift-"+s),s}var Ko=ge.default(M.domEventHandlers({keydown(s,t){return dr(fr(t.state),s,t,"editor")}})),qo=C.define({enables:Ko}),rn=new WeakMap;function fr(s){let t=s.facet(qo),e=rn.get(t);return e||rn.set(t,e=jo(t.reduce((i,n)=>i.concat(n),[]))),e}function Kl(s,t,e){return dr(fr(s.state),t,s,e)}var ut=null,_o=4e3;function jo(s,t=Io){let e=Object.create(null),i=Object.create(null),n=(o,l)=>{let a=i[o];if(a==null)i[o]=l;else if(a!=l)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},r=(o,l,a,h,c)=>{var f,d;let u=e[o]||(e[o]=Object.create(null)),p=l.split(/ (?!$)/).map(b=>zo(b,t));for(let b=1;b<p.length;b++){let w=p.slice(0,b).join(" ");n(w,!0),u[w]||(u[w]={preventDefault:!0,stopPropagation:!1,run:[x=>{let A=ut={view:x,prefix:w,scope:o};return setTimeout(()=>{ut==A&&(ut=null)},_o),!0}]})}let g=p.join(" ");n(g,!1);let m=u[g]||(u[g]={preventDefault:!1,stopPropagation:!1,run:((d=(f=u._any)===null||f===void 0?void 0:f.run)===null||d===void 0?void 0:d.slice())||[]});a&&m.run.push(a),h&&(m.preventDefault=!0),c&&(m.stopPropagation=!0)};for(let o of s){let l=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let h of l){let c=e[h]||(e[h]=Object.create(null));c._any||(c._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:f}=o;for(let d in c)c[d].run.push(u=>f(u,Zi))}let a=o[t]||o.key;if(a)for(let h of l)r(h,a,o.run,o.preventDefault,o.stopPropagation),o.shift&&r(h,"Shift-"+a,o.shift,o.preventDefault,o.stopPropagation)}return e}var Zi=null;function dr(s,t,e,i){Zi=t;let n=Ls(t),r=si(n,0),o=Cs(r)==n.length&&n!=" ",l="",a=!1,h=!1,c=!1;ut&&ut.view==e&&ut.scope==i&&(l=ut.prefix+" ",er.indexOf(t.keyCode)<0&&(h=!0,ut=null));let f=new Set,d=m=>{if(m){for(let b of m.run)if(!f.has(b)&&(f.add(b),b(e)))return m.stopPropagation&&(c=!0),!0;m.preventDefault&&(m.stopPropagation&&(c=!0),h=!0)}return!1},u=s[i],p,g;return u&&(d(u[l+Ae(n,t,!o)])?a=!0:o&&(t.altKey||t.metaKey||t.ctrlKey)&&!(y.windows&&t.ctrlKey&&t.altKey)&&!(y.mac&&t.altKey&&!(t.ctrlKey||t.metaKey))&&(p=nt[t.keyCode])&&p!=n?(d(u[l+Ae(p,t,!0)])||t.shiftKey&&(g=Rt[t.keyCode])!=n&&g!=p&&d(u[l+Ae(g,t,!1)]))&&(a=!0):o&&t.shiftKey&&d(u[l+Ae(n,t,!0)])&&(a=!0),!a&&d(u._any)&&(a=!0)),h&&(a=!0),a&&c&&t.stopPropagation(),Zi=null,a}var St=class s{constructor(t,e,i,n,r){this.className=t,this.left=e,this.top=i,this.width=n,this.height=r}draw(){let t=document.createElement("div");return t.className=this.className,this.adjust(t),t}update(t,e){return e.className!=this.className?!1:(this.adjust(t),!0)}adjust(t){t.style.left=this.left+"px",t.style.top=this.top+"px",this.width!=null&&(t.style.width=this.width+"px"),t.style.height=this.height+"px"}eq(t){return this.left==t.left&&this.top==t.top&&this.width==t.width&&this.height==t.height&&this.className==t.className}static forRange(t,e,i){if(i.empty){let n=t.coordsAtPos(i.head,i.assoc||1);if(!n)return[];let r=ur(t);return[new s(e,n.left-r.left,n.top-r.top,null,n.bottom-n.top)]}else return Yo(t,e,i)}};function ur(s){let t=s.scrollDOM.getBoundingClientRect();return{left:(s.textDirection==B.LTR?t.left:t.right-s.scrollDOM.clientWidth*s.scaleX)-s.scrollDOM.scrollLeft*s.scaleX,top:t.top-s.scrollDOM.scrollTop*s.scaleY}}function on(s,t,e,i){let n=s.coordsAtPos(t,e*2);if(!n)return i;let r=s.dom.getBoundingClientRect(),o=(n.top+n.bottom)/2,l=s.posAtCoords({x:r.left+1,y:o}),a=s.posAtCoords({x:r.right-1,y:o});return l==null||a==null?i:{from:Math.max(i.from,Math.min(l,a)),to:Math.min(i.to,Math.max(l,a))}}function Yo(s,t,e){if(e.to<=s.viewport.from||e.from>=s.viewport.to)return[];let i=Math.max(e.from,s.viewport.from),n=Math.min(e.to,s.viewport.to),r=s.textDirection==B.LTR,o=s.contentDOM,l=o.getBoundingClientRect(),a=ur(s),h=o.querySelector(".cm-line"),c=h&&window.getComputedStyle(h),f=l.left+(c?parseInt(c.paddingLeft)+Math.min(0,parseInt(c.textIndent)):0),d=l.right-(c?parseInt(c.paddingRight):0),u=Ei(s,i,1),p=Ei(s,n,-1),g=u.type==W.Text?u:null,m=p.type==W.Text?p:null;if(g&&(s.lineWrapping||u.widgetLineBreaks)&&(g=on(s,i,1,g)),m&&(s.lineWrapping||p.widgetLineBreaks)&&(m=on(s,n,-1,m)),g&&m&&g.from==m.from&&g.to==m.to)return w(x(e.from,e.to,g));{let k=g?x(e.from,null,g):A(u,!1),S=m?x(null,e.to,m):A(p,!0),D=[];return(g||u).to<(m||p).from-(g&&m?1:0)||u.widgetLineBreaks>1&&k.bottom+s.defaultLineHeight/2<S.top?D.push(b(f,k.bottom,d,S.top)):k.bottom<S.top&&s.elementAtHeight((k.bottom+S.top)/2).type==W.Text&&(k.bottom=S.top=(k.bottom+S.top)/2),w(k).concat(D).concat(w(S))}function b(k,S,D,P){return new St(t,k-a.left,S-a.top,Math.max(0,D-k),P-S)}function w({top:k,bottom:S,horizontal:D}){let P=[];for(let ht=0;ht<D.length;ht+=2)P.push(b(D[ht],k,D[ht+1],S));return P}function x(k,S,D){let P=1e9,ht=-1e9,fe=[];function Ss(bt,ct,Dt,yt,qt){let et=s.coordsAtPos(bt,bt==D.to?-2:2),it=s.coordsAtPos(Dt,Dt==D.from?2:-2);!et||!it||(P=Math.min(et.top,it.top,P),ht=Math.max(et.bottom,it.bottom,ht),qt==B.LTR?fe.push(r&&ct?f:et.left,r&&yt?d:it.right):fe.push(!r&&yt?f:it.left,!r&&ct?d:et.right))}let de=k??D.from,ue=S??D.to;for(let bt of s.visibleRanges)if(bt.to>de&&bt.from<ue)for(let ct=Math.max(bt.from,de),Dt=Math.min(bt.to,ue);;){let yt=s.state.doc.lineAt(ct);for(let qt of s.bidiSpans(yt)){let et=qt.from+yt.from,it=qt.to+yt.from;if(et>=Dt)break;it>ct&&Ss(Math.max(et,ct),k==null&&et<=de,Math.min(it,Dt),S==null&&it>=ue,qt.dir)}if(ct=yt.to+1,ct>=Dt)break}return fe.length==0&&Ss(de,k==null,ue,S==null,s.textDirection),{top:P,bottom:ht,horizontal:fe}}function A(k,S){let D=l.top+(S?k.top:k.bottom);return{top:D,bottom:D,horizontal:[]}}}function Xo(s,t){return s.constructor==t.constructor&&s.eq(t)}var ts=class{constructor(t,e){this.view=t,this.layer=e,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=t.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),e.above&&this.dom.classList.add("cm-layer-above"),e.class&&this.dom.classList.add(e.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(t.state),t.requestMeasure(this.measureReq),e.mount&&e.mount(this.dom,t)}update(t){t.startState.facet(Re)!=t.state.facet(Re)&&this.setOrder(t.state),(this.layer.update(t,this.dom)||t.geometryChanged)&&(this.scale(),t.view.requestMeasure(this.measureReq))}docViewUpdate(t){this.layer.updateOnDocViewUpdate!==!1&&t.requestMeasure(this.measureReq)}setOrder(t){let e=0,i=t.facet(Re);for(;e<i.length&&i[e]!=this.layer;)e++;this.dom.style.zIndex=String((this.layer.above?150:-1)-e)}measure(){return this.layer.markers(this.view)}scale(){let{scaleX:t,scaleY:e}=this.view;(t!=this.scaleX||e!=this.scaleY)&&(this.scaleX=t,this.scaleY=e,this.dom.style.transform=`scale(${1/t}, ${1/e})`)}draw(t){if(t.length!=this.drawn.length||t.some((e,i)=>!Xo(e,this.drawn[i]))){let e=this.dom.firstChild,i=0;for(let n of t)n.update&&e&&n.constructor&&this.drawn[i].constructor&&n.update(e,this.drawn[i])?(e=e.nextSibling,i++):this.dom.insertBefore(n.draw(),e);for(;e;){let n=e.nextSibling;e.remove(),e=n}this.drawn=t,y.webkit&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},Re=C.define();function pr(s){return[V.define(t=>new ts(t,s)),Re.of(s)]}var es=!y.ios,Tt=C.define({combine(s){return me(s,{cursorBlinkRate:1200,drawRangeCursor:!0,iosSelectionHandles:!0},{cursorBlinkRate:(t,e)=>Math.min(t,e),drawRangeCursor:(t,e)=>t||e})}});function ql(s={}){return[Tt.of(s),$o,Go,Qo,zn.of(!0)]}function _l(s){return s.facet(Tt)}function gr(s){return s.startState.facet(Tt)!=s.state.facet(Tt)}var $o=pr({above:!0,markers(s){let{state:t}=s,e=t.facet(Tt),i=[];for(let n of t.selection.ranges){let r=n==t.selection.main;if(n.empty||e.drawRangeCursor&&!(r&&y.ios&&e.iosSelectionHandles)){let o=r?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",l=n.empty?n:v.cursor(n.head,n.assoc);for(let a of St.forRange(s,o,l))i.push(a)}}return i},update(s,t){s.transactions.some(i=>i.selection)&&(t.style.animationName=t.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let e=gr(s);return e&&ln(s.state,t),s.docChanged||s.selectionSet||e},mount(s,t){ln(t.state,s)},class:"cm-cursorLayer"});function ln(s,t){t.style.animationDuration=s.facet(Tt).cursorBlinkRate+"ms"}var Go=pr({above:!1,markers(s){let t=[],{main:e,ranges:i}=s.state.selection;for(let n of i)if(!n.empty&&(es||n!=e))for(let r of St.forRange(s,"cm-selectionBackground",n))t.push(r);if(y.ios&&!e.empty&&s.state.facet(Tt).iosSelectionHandles){for(let n of St.forRange(s,"cm-selectionHandle cm-selectionHandle-start",v.cursor(e.from,1)))t.push(n);for(let n of St.forRange(s,"cm-selectionHandle cm-selectionHandle-end",v.cursor(e.to,1)))t.push(n)}return t},update(s,t){return s.docChanged||s.selectionSet||s.viewportChanged||gr(s)},class:"cm-selectionLayer"}),Uo=y.gecko&&y.gecko_version==153?"#ffffff01":"transparent",Qo=ge.highest(M.theme({".cm-line":{...es?{"& ::selection, &::selection":{backgroundColor:`${Uo} !important`}}:{},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important",...es?{"&::selection, & ::selection":{backgroundColor:"Highlight !important"}}:{}}}})),mr=U.define({map(s,t){return s==null?null:t.mapPos(s)}}),Yt=pe.define({create(){return null},update(s,t){return s!=null&&(s=t.changes.mapPos(s)),t.effects.reduce((e,i)=>i.is(mr)?i.value:e,s)}}),Jo=V.fromClass(class{constructor(s){this.view=s,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(s){var t;let e=s.state.field(Yt);e==null?this.cursor!=null&&((t=this.cursor)===null||t===void 0||t.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(s.startState.field(Yt)!=e||s.docChanged||s.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:s}=this,t=s.state.field(Yt),e=t!=null&&s.coordsAtPos(t);if(!e)return null;let i=s.scrollDOM.getBoundingClientRect();return{left:e.left-i.left+s.scrollDOM.scrollLeft*s.scaleX,top:e.top-i.top+s.scrollDOM.scrollTop*s.scaleY,height:e.bottom-e.top}}drawCursor(s){if(this.cursor){let{scaleX:t,scaleY:e}=this.view;s?(this.cursor.style.left=s.left/t+"px",this.cursor.style.top=s.top/e+"px",this.cursor.style.height=s.height/e+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(s){this.view.state.field(Yt)!=s&&this.view.dispatch({effects:mr.of(s)})}},{eventObservers:{dragover(s){this.setDropPos(this.view.posAtCoords({x:s.clientX,y:s.clientY}))},dragleave(s){(s.target==this.view.contentDOM||!this.view.contentDOM.contains(s.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function jl(){return[Yt,Jo]}function an(s,t,e,i,n){t.lastIndex=0;for(let r=s.iterRange(e,i),o=e,l;!r.next().done;o+=r.value.length)if(!r.lineBreak)for(;l=t.exec(r.value);)n(o+l.index,l)}function Zo(s,t){let e=s.visibleRanges;if(e.length==1&&e[0].from==s.viewport.from&&e[0].to==s.viewport.to)return e;let i=[];for(let{from:n,to:r}of e)n=Math.max(s.state.doc.lineAt(n).from,n-t),r=Math.min(s.state.doc.lineAt(r).to,r+t),i.length&&i[i.length-1].to>=n?i[i.length-1].to=r:i.push({from:n,to:r});return i}var ae=class{constructor(t){let{regexp:e,decoration:i,decorate:n,boundary:r,maxLength:o=1e3}=t;if(!e.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=e,n)this.addMatch=(l,a,h,c)=>n(c,h,h+l[0].length,l,a);else if(typeof i=="function")this.addMatch=(l,a,h,c)=>{let f=i(l,a,h);f&&c(h,h+l[0].length,f)};else if(i)this.addMatch=(l,a,h,c)=>c(h,h+l[0].length,i);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=r,this.maxLength=o}createDeco(t){let e=new Ts,i=e.add.bind(e);for(let{from:n,to:r}of Zo(t,this.maxLength))an(t.state.doc,this.regexp,n,r,(o,l)=>this.addMatch(l,t,o,i));return e.finish()}updateDeco(t,e){let i=1e9,n=-1;return t.docChanged&&t.changes.iterChanges((r,o,l,a)=>{a>=t.view.viewport.from&&l<=t.view.viewport.to&&(i=Math.min(l,i),n=Math.max(a,n))}),t.viewportMoved||n-i>1e3?this.createDeco(t.view):n>-1?this.updateRange(t.view,e.map(t.changes),i,n):e}updateRange(t,e,i,n){for(let r of t.visibleRanges){let o=Math.max(r.from,i),l=Math.min(r.to,n);if(l>=o){let a=t.state.doc.lineAt(o),h=a.to<l?t.state.doc.lineAt(l):a,c=Math.max(r.from,a.from),f=Math.min(r.to,h.to);if(this.boundary){for(;o>a.from;o--)if(this.boundary.test(a.text[o-1-a.from])){c=o;break}for(;l<h.to;l++)if(this.boundary.test(h.text[l-h.from])){f=l;break}}let d=[],u,p=(g,m,b)=>d.push(b.range(g,m));if(a==h)for(this.regexp.lastIndex=c-a.from;(u=this.regexp.exec(a.text))&&u.index<f-a.from;)this.addMatch(u,t,u.index+a.from,p);else an(t.state.doc,this.regexp,c,f,(g,m)=>this.addMatch(m,t,g,p));e=e.update({filterFrom:c,filterTo:f,filter:(g,m)=>g<c||m>f,add:d})}}return e}},is=/x/.unicode!=null?"gu":"g",tl=new RegExp(`[\0-\b +-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,is),el={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},ui=null;function il(){var s;if(ui==null&&typeof document<"u"&&document.body){let t=document.body.style;ui=((s=t.tabSize)!==null&&s!==void 0?s:t.MozTabSize)!=null}return ui||!1}var Le=C.define({combine(s){let t=me(s,{render:null,specialChars:tl,addSpecialChars:null});return(t.replaceTabs=!il())&&(t.specialChars=new RegExp(" |"+t.specialChars.source,is)),t.addSpecialChars&&(t.specialChars=new RegExp(t.specialChars.source+"|"+t.addSpecialChars.source,is)),t}});function Yl(s={}){return[Le.of(s),sl()]}var hn=null;function sl(){return hn||(hn=V.fromClass(class{constructor(s){this.view=s,this.decorations=T.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(s.state.facet(Le)),this.decorations=this.decorator.createDeco(s)}makeDecorator(s){return new ae({regexp:s.specialChars,decoration:(t,e,i)=>{let{doc:n}=e.state,r=si(t[0],0);if(r==9){let o=n.lineAt(i),l=e.state.tabSize,a=ri(o.text,l,i-o.from);return T.replace({widget:new ns((l-a%l)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[r]||(this.decorationCache[r]=T.replace({widget:new ss(s,r)}))},boundary:s.replaceTabs?void 0:/[^]/})}update(s){let t=s.state.facet(Le);s.startState.facet(Le)!=t?(this.decorator=this.makeDecorator(t),this.decorations=this.decorator.createDeco(s.view)):this.decorations=this.decorator.updateDeco(s,this.decorations)}},{decorations:s=>s.decorations}))}var nl="\u2022";function rl(s){return s>=32?nl:s==10?"\u2424":String.fromCharCode(9216+s)}var ss=class extends lt{constructor(t,e){super(),this.options=t,this.code=e}eq(t){return t.code==this.code}toDOM(t){let e=rl(this.code),i=t.state.phrase("Control character")+" "+(el[this.code]||"0x"+this.code.toString(16)),n=this.options.render&&this.options.render(this.code,i,e);if(n)return n;let r=document.createElement("span");return r.textContent=e,r.title=i,r.setAttribute("aria-label",i),r.className="cm-specialChar",r}ignoreEvent(){return!1}},ns=class extends lt{constructor(t){super(),this.width=t}eq(t){return t.width==this.width}toDOM(){let t=document.createElement("span");return t.textContent=" ",t.className="cm-tab",t.style.width=this.width+"px",t}ignoreEvent(){return!1}},cn=V.fromClass(class{constructor(){this.height=1e3,this.attrs={style:"padding-bottom: 1000px"}}update(s){let{view:t}=s,e=t.viewState.editorHeight-t.defaultLineHeight-t.documentPadding.top-.5;e>=0&&e!=this.height&&(this.height=e,this.attrs={style:`padding-bottom: ${e}px`})}});function Xl(){return[cn,Ze.of(s=>{var t;return((t=s.plugin(cn))===null||t===void 0?void 0:t.attrs)||null})]}function $l(){return ll}var ol=T.line({class:"cm-activeLine"}),ll=V.fromClass(class{constructor(s){this.decorations=this.getDeco(s)}update(s){(s.docChanged||s.selectionSet)&&(this.decorations=this.getDeco(s.view))}getDeco(s){let t=-1,e=[];for(let i of s.state.selection.ranges){let n=s.lineBlockAt(i.head);n.from>t&&(e.push(ol.range(n.from)),t=n.from)}return T.set(e)}},{decorations:s=>s.decorations}),rs=class extends lt{constructor(t){super(),this.content=t}toDOM(t){let e=document.createElement("span");return e.className="cm-placeholder",e.style.pointerEvents="none",e.appendChild(typeof this.content=="string"?document.createTextNode(this.content):typeof this.content=="function"?this.content(t):this.content.cloneNode(!0)),e.setAttribute("aria-hidden","true"),e}coordsAt(t){let e=t.firstChild?$t(t.firstChild):[];if(!e.length)return null;let i=window.getComputedStyle(t.parentNode),n=oe(e[0],i.direction!="rtl"),r=parseInt(i.lineHeight);return n.bottom-n.top>r*1.5?{left:n.left,right:n.right,top:n.top,bottom:n.top+r}:n}ignoreEvent(){return!1}};function Gl(s){let t=V.fromClass(class{constructor(e){this.view=e,this.placeholder=s?T.set([T.widget({widget:new rs(s),side:1}).range(0)]):T.none}get decorations(){return this.view.state.doc.length?T.none:this.placeholder}},{decorations:e=>e.decorations});return typeof s=="string"?[t,M.contentAttributes.of({"aria-placeholder":s})]:t}var os=2e3;function al(s,t,e){let i=Math.min(t.line,e.line),n=Math.max(t.line,e.line),r=[];if(t.off>os||e.off>os||t.col<0||e.col<0){let o=Math.min(t.off,e.off),l=Math.max(t.off,e.off);for(let a=i;a<=n;a++){let h=s.doc.line(a);h.length<=l&&r.push(v.range(h.from+o,h.to+l))}}else{let o=Math.min(t.col,e.col),l=Math.max(t.col,e.col);for(let a=i;a<=n;a++){let h=s.doc.line(a),c=ye(h.text,o,s.tabSize,!0);if(c<0)r.push(v.cursor(h.to));else{let f=ye(h.text,l,s.tabSize);r.push(v.range(h.from+c,h.from+f))}}}return r}function hl(s,t){let e=s.coordsAtPos(s.viewport.from);return e?Math.round(Math.abs((e.left-t)/s.defaultCharacterWidth)):-1}function fn(s,t){let e=s.posAtCoords({x:t.clientX,y:t.clientY},!1),i=s.state.doc.lineAt(e),n=e-i.from,r=n>os?-1:n==i.length?hl(s,t.clientX):ri(i.text,s.state.tabSize,e-i.from);return{line:i.number,col:r,off:n}}function cl(s,t){let e=fn(s,t),i=s.state.selection;return e?{update(n){if(n.docChanged){let r=n.changes.mapPos(n.startState.doc.line(e.line).from),o=n.state.doc.lineAt(r);e={line:o.number,col:e.col,off:Math.min(e.off,o.length)},i=i.map(n.changes)}},get(n,r,o){let l=fn(s,n);if(!l)return i;let a=al(s.state,e,l);return a.length?o?v.create(a.concat(i.ranges)):v.create(a):i}}:null}function Ul(s){let t=s?.eventFilter||(e=>e.altKey&&e.button==0);return M.mouseSelectionStyle.of((e,i)=>t(i)?cl(e,i):null)}var fl={Alt:[18,s=>!!s.altKey],Control:[17,s=>!!s.ctrlKey],Shift:[16,s=>!!s.shiftKey],Meta:[91,s=>!!s.metaKey]},dl={style:"cursor: crosshair"};function Ql(s={}){let[t,e]=fl[s.key||"Alt"],i=V.fromClass(class{constructor(n){this.view=n,this.isDown=!1}set(n){this.isDown!=n&&(this.isDown=n,this.view.update([]))}},{eventObservers:{keydown(n){this.set(n.keyCode==t||e(n))},keyup(n){(n.keyCode==t||!e(n))&&this.set(!1)},mousemove(n){this.set(e(n))}}});return[i,M.contentAttributes.of(n=>{var r;return!((r=n.plugin(i))===null||r===void 0)&&r.isDown?dl:null})]}var Te="-10000px",$e=class{constructor(t,e,i,n){this.facet=e,this.createTooltipView=i,this.removeTooltipView=n,this.input=t.state.facet(e),this.tooltips=this.input.filter(o=>o);let r=null;this.tooltipViews=this.tooltips.map(o=>r=i(o,r))}update(t,e){var i;let n=t.state.facet(this.facet),r=n.filter(a=>a);if(n===this.input){for(let a of this.tooltipViews)a.update&&a.update(t);return!1}let o=[],l=e?[]:null;for(let a=0;a<r.length;a++){let h=r[a],c=-1;if(h){for(let f=0;f<this.tooltips.length;f++){let d=this.tooltips[f];d&&d.create==h.create&&(c=f)}if(c<0)o[a]=this.createTooltipView(h,a?o[a-1]:null),l&&(l[a]=!!h.above);else{let f=o[a]=this.tooltipViews[c];l&&(l[a]=e[c]),f.update&&f.update(t)}}}for(let a of this.tooltipViews)o.indexOf(a)<0&&(this.removeTooltipView(a),(i=a.destroy)===null||i===void 0||i.call(a));return e&&(l.forEach((a,h)=>e[h]=a),e.length=l.length),this.input=n,this.tooltips=r,this.tooltipViews=o,!0}};function Jl(s={}){return Be.of(s)}function br(s){let t=s.dom.ownerDocument.documentElement,e=t.clientWidth,i=getComputedStyle(t);if(!/stable/.test(i.scrollbarGutter||""))return{left:0,right:e};let n=t.getBoundingClientRect(),r=s.win.scrollX;return{left:Math.max(0,n.left+r-parseFloat(i.marginLeft)),right:Math.min(e,n.right+r+parseFloat(i.marginRight))}}function ul(s){let{left:t,right:e}=br(s);return{top:0,left:t,right:e,bottom:s.dom.ownerDocument.documentElement.clientHeight}}var Be=C.define({combine:s=>{var t,e,i;return{position:y.ios?"absolute":((t=s.find(n=>n.position))===null||t===void 0?void 0:t.position)||"fixed",parent:((e=s.find(n=>n.parent))===null||e===void 0?void 0:e.parent)||null,tooltipSpace:((i=s.find(n=>n.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||ul}}}),dn=new WeakMap,ii=V.fromClass(class{constructor(s){this.view=s,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let t=s.state.facet(Be);this.position=t.position,this.parent=t.parent,this.classes=s.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new $e(s,yr,(e,i)=>this.createTooltip(e,i),e=>{this.resizeObserver&&this.resizeObserver.unobserve(e.dom),e.dom.remove()}),this.above=this.manager.tooltips.map(e=>!!e.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(e=>{Date.now()>this.lastTransaction-50&&e.length>0&&e[e.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),s.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let s of this.manager.tooltipViews)this.intersectionObserver.observe(s.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(s){s.transactions.length&&(this.lastTransaction=Date.now());let t=this.manager.update(s,this.above);t&&this.observeIntersection();let e=t||s.geometryChanged,i=s.state.facet(Be);if(i.position!=this.position&&!this.madeAbsolute){this.position=i.position;for(let n of this.manager.tooltipViews)n.dom.style.position=this.position;e=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let n of this.manager.tooltipViews)this.container.appendChild(n.dom);e=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);e&&this.maybeMeasure()}createTooltip(s,t){let e=s.create(this.view),i=t?t.dom:null;if(e.dom.classList.add("cm-tooltip"),s.arrow&&!e.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let n=document.createElement("div");n.className="cm-tooltip-arrow",e.dom.appendChild(n)}return e.dom.style.position=this.position,e.dom.style.top=Te,e.dom.style.left="0px",this.container.insertBefore(e.dom,i),e.mount&&e.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(e.dom),e}destroy(){var s,t,e;this.view.win.removeEventListener("resize",this.measureSoon);for(let i of this.manager.tooltipViews)i.dom.remove(),(s=i.destroy)===null||s===void 0||s.call(i);this.parent&&this.container.remove(),(t=this.resizeObserver)===null||t===void 0||t.disconnect(),(e=this.intersectionObserver)===null||e===void 0||e.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let s=1,t=1,e=!1,i=0;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:o}=this.manager.tooltipViews[0];if(y.safari){let l=o.getBoundingClientRect();e=Math.abs(l.top+1e4)>1||Math.abs(l.left)>1}else e=!!o.offsetParent&&o.offsetParent!=this.container.ownerDocument.body}if(e||this.position=="absolute")if(this.parent){let o=this.parent.getBoundingClientRect();o.width&&o.height&&(s=o.width/this.parent.offsetWidth,t=o.height/this.parent.offsetHeight)}else({scaleX:s,scaleY:t}=this.view.viewState);else i=br(this.view).left;let n=this.view.scrollDOM.getBoundingClientRect(),r=ws(this.view);return{visible:{left:n.left+r.left,top:n.top+r.top,right:n.right-r.right,bottom:n.bottom-r.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((o,l)=>{let a=this.manager.tooltipViews[l];return a.getCoords?a.getCoords(o.pos):this.view.coordsAtPos(o.pos)}),size:this.manager.tooltipViews.map(({dom:o})=>o.getBoundingClientRect()),space:this.view.state.facet(Be).tooltipSpace(this.view),scaleX:s,scaleY:t,makeAbsolute:e,fixedLeft:i}}writeMeasure(s){var t;if(s.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let l of this.manager.tooltipViews)l.dom.style.position="absolute"}let{visible:e,space:i,scaleX:n,scaleY:r}=s,o=[];for(let l=0;l<this.manager.tooltips.length;l++){let a=this.manager.tooltips[l],h=this.manager.tooltipViews[l],{dom:c}=h,f=s.pos[l],d=s.size[l];if(!f||a.clip!==!1&&(f.bottom<=Math.max(e.top,i.top)||f.top>=Math.min(e.bottom,i.bottom)||f.right<Math.max(e.left,i.left)-.1||f.left>Math.min(e.right,i.right)+.1)){c.style.top=Te;continue}let u=a.arrow?h.dom.querySelector(".cm-tooltip-arrow"):null,p=u?7:0,g=d.right-d.left,m=(t=dn.get(h))!==null&&t!==void 0?t:d.bottom-d.top,b=h.offset||gl,w=this.view.textDirection==B.LTR,x=d.width>i.right-i.left?w?i.left:i.right-d.width:w?Math.max(i.left,Math.min(f.left-(u?14:0)+b.x,i.right-g)):Math.min(Math.max(i.left,f.left-g+(u?14:0)-b.x),i.right-g),A=this.above[l];!a.strictSide&&(A?f.top-m-p-b.y<i.top:f.bottom+m+p+b.y>i.bottom)&&A==i.bottom-f.bottom>f.top-i.top&&(A=this.above[l]=!A);let k=(A?f.top-i.top:i.bottom-f.bottom)-p;if(k<m&&h.resize!==!1){if(k<this.view.defaultLineHeight){c.style.top=Te;continue}dn.set(h,m),c.style.height=(m=k)/r+"px"}else c.style.height&&(c.style.height="");let S=A?f.top-m-p-b.y:f.bottom+p+b.y,D=x+g;if(h.overlap!==!0)for(let P of o)P.left<D&&P.right>x&&P.top<S+m&&P.bottom>S&&(S=A?P.top-m-2-p:P.bottom+p+2);if(this.position=="absolute"?(c.style.top=(S-s.parent.top)/r+"px",un(c,(x-s.parent.left)/n)):(c.style.top=S/r+"px",un(c,(x-s.fixedLeft)/n)),u){let P=f.left+(w?b.x:-b.x)-(x+14-7);u.style.left=P/n+"px"}h.overlap!==!0&&o.push({left:x,top:S,right:D,bottom:S+m}),c.classList.toggle("cm-tooltip-above",A),c.classList.toggle("cm-tooltip-below",!A),h.positioned&&h.positioned(s.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let s of this.manager.tooltipViews)s.dom.style.top=Te}},{eventObservers:{scroll(){this.maybeMeasure()}}});function un(s,t){let e=parseInt(s.style.left,10);(isNaN(e)||Math.abs(t-e)>1)&&(s.style.left=t+"px")}var pl=M.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),gl={x:0,y:0},yr=C.define({enables:[ii,pl]}),he=C.define({combine:s=>s.reduce((t,e)=>t.concat(e),[])}),Ge=class s{static create(t){return new s(t)}constructor(t){this.view=t,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new $e(t,he,(e,i)=>this.createHostedView(e,i),e=>e.dom.remove())}createHostedView(t,e){let i=t.create(this.view);return i.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(i.dom,e?e.dom.nextSibling:this.dom.firstChild),this.mounted&&i.mount&&i.mount(this.view),i}mount(t){for(let e of this.manager.tooltipViews)e.mount&&e.mount(t);this.mounted=!0}positioned(t){for(let e of this.manager.tooltipViews)e.positioned&&e.positioned(t)}update(t){this.manager.update(t)}destroy(){var t;for(let e of this.manager.tooltipViews)(t=e.destroy)===null||t===void 0||t.call(e)}passProp(t){let e;for(let i of this.manager.tooltipViews){let n=i[t];if(n!==void 0){if(e===void 0)e=n;else if(e!==n)return}}return e}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}},ml=yr.compute([he],s=>{let t=s.facet(he);return t.length===0?null:{pos:Math.min(...t.map(e=>e.pos)),end:Math.max(...t.map(e=>{var i;return(i=e.end)!==null&&i!==void 0?i:e.pos})),create:Ge.create,above:t[0].above,arrow:t.some(e=>e.arrow)}}),wr=C.define(),ls=class{constructor(t,e,i,n,r,o){this.view=t,this.source=e,this.field=i,this.locked=n,this.setHover=r,this.hoverTime=o,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:t.dom,time:0},this.checkHover=this.checkHover.bind(this),t.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),t.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(t){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let t=Date.now()-this.lastMove.time;t<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-t):this.startHover()}startHover(){clearTimeout(this.restartTimeout);let{view:t,lastMove:e}=this,i=t.docView.tile.nearest(e.target);if(!i)return;let n,r=1;if(i.isWidget())n=i.posAtStart;else{if(n=t.posAtCoords(e),n==null)return;let o=t.coordsAtPos(n);if(!o||e.y<o.top||e.y>o.bottom||e.x<o.left-t.defaultCharacterWidth||e.x>o.right+t.defaultCharacterWidth)return;let l=t.bidiSpans(t.state.doc.lineAt(n)).find(h=>h.from<=n&&h.to>=n),a=l&&l.dir==B.RTL?-1:1;r=e.x<o.left?-a:a}this.activateHover(t,n,r)}activateHover(t,e,i,n){let r=this.source(t,e,i),o=l=>{if(l&&!(Array.isArray(l)&&!l.length)){let a=Array.isArray(l)?l:[l];n&&this.locked.set(a,n),t.dispatch({effects:this.setHover.of(a)})}};if(r&&"then"in r){let l=this.pending={pos:e};r.then(a=>{this.pending==l&&(this.pending=null,o(a))},a=>Z(t.state,a,"hover tooltip"))}else o(r)}get tooltip(){let t=this.view.plugin(ii),e=t?t.manager.tooltips.findIndex(i=>i.create==Ge.create):-1;return e>-1?t.manager.tooltipViews[e]:null}mousemove(t){var e,i;this.lastMove={x:t.clientX,y:t.clientY,target:t.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:n,tooltip:r}=this;if(n.length&&!this.locked.has(n)&&r&&!bl(r.dom,t)||this.pending){let{pos:o}=n[0]||this.pending,l=(i=(e=n[0])===null||e===void 0?void 0:e.end)!==null&&i!==void 0?i:o;(o==l?this.view.posAtCoords(this.lastMove)!=o:!yl(this.view,o,l,t.clientX,t.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(t){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:e}=this;if(e.length&&!this.locked.has(e)){let{tooltip:i}=this;i&&i.dom.contains(t.relatedTarget)?this.watchTooltipLeave(i.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(t){let e=i=>{t.removeEventListener("mouseleave",e);let{active:n}=this;n.length&&!this.locked.has(n)&&!this.view.dom.contains(i.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};t.addEventListener("mouseleave",e)}destroy(){clearTimeout(this.hoverTimeout),clearTimeout(this.restartTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}},De=4;function bl(s,t){let{left:e,right:i,top:n,bottom:r}=s.getBoundingClientRect(),o;if(o=s.querySelector(".cm-tooltip-arrow")){let l=o.getBoundingClientRect();n=Math.min(l.top,n),r=Math.max(l.bottom,r)}return t.clientX>=e-De&&t.clientX<=i+De&&t.clientY>=n-De&&t.clientY<=r+De}function yl(s,t,e,i,n,r){let o=s.scrollDOM.getBoundingClientRect(),l=s.documentTop+s.documentPadding.top+s.contentHeight;if(o.left>i||o.right<i||o.top>n||Math.min(o.bottom,l)<n)return!1;let a=s.posAtCoords({x:i,y:n},!1);return a>=t&&a<=e}function Zl(s,t={}){let e=U.define(),i=new WeakMap,n=pe.define({create(){return[]},update(o,l){let a=i.get(o);if(o.length&&(t.hideOnChange&&(l.docChanged||l.selection)?o=[]:a&&a(l)?o=[]:t.hideOn&&(o=o.filter(h=>!t.hideOn(l,h)))),l.docChanged&&o.length){let h=[];for(let c of o){let f=l.changes.mapPos(c.pos,-1,wt.TrackDel);if(f!=null){let d=Object.assign(Object.create(null),c);d.pos=f,d.end!=null&&(d.end=l.changes.mapPos(d.end)),h.push(d)}}o=h}for(let h of l.effects)h.is(e)&&(o=h.value,a=void 0),(h.is(vs)&&!h.value||h.value==n)&&(o=[]);return o.length&&a&&i.set(o,a),o},provide:o=>he.from(o)}),r=V.define(o=>new ls(o,s,n,i,e,t.hoverTime||300));return{active:n,extension:[n,r,wr.of(r),ml]}}function ta(s,t,e,i={}){var n;let r=s.state.facet(wr).map(o=>s.plugin(o)).filter(o=>!!o);if(i.tooltip&&i.tooltip.active){let o=r.find(l=>l.field==i.tooltip.active);o&&(r=[o])}for(let o of r)o.activateHover(s,t,e,(n=i.until)!==null&&n!==void 0?n:(()=>!1))}function ea(s,t){let e=s.plugin(ii);if(!e)return null;let i=e.manager.tooltips.indexOf(t);return i<0?null:e.manager.tooltipViews[i]}function ia(s){return s.facet(he).some(t=>t)}var vs=U.define(),sa=vs.of(null);function na(s){return vs.of(s.active)}function ra(s){let t=s.plugin(ii);t&&t.maybeMeasure()}var as=C.define({combine(s){let t,e;for(let i of s)t=t||i.topContainer,e=e||i.bottomContainer;return{topContainer:t,bottomContainer:e}}});function oa(s){return s?[as.of(s)]:[]}function wl(s,t){let e=s.plugin(xr),i=e?e.specs.indexOf(t):-1;return i>-1?e.panels[i]:null}var xr=V.fromClass(class{constructor(s){this.input=s.state.facet(hs),this.specs=this.input.filter(e=>e),this.panels=this.specs.map(e=>e(s));let t=s.state.facet(as);this.top=new Ht(s,!0,t.topContainer),this.bottom=new Ht(s,!1,t.bottomContainer),this.top.sync(this.panels.filter(e=>e.top)),this.bottom.sync(this.panels.filter(e=>!e.top));for(let e of this.panels)e.dom.classList.add("cm-panel"),e.mount&&e.mount()}update(s){let t=s.state.facet(as);this.top.container!=t.topContainer&&(this.top.sync([]),this.top=new Ht(s.view,!0,t.topContainer)),this.bottom.container!=t.bottomContainer&&(this.bottom.sync([]),this.bottom=new Ht(s.view,!1,t.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let e=s.state.facet(hs);if(e!=this.input){let i=e.filter(a=>a),n=[],r=[],o=[],l=[];for(let a of i){let h=this.specs.indexOf(a),c;h<0?(c=a(s.view),l.push(c)):(c=this.panels[h],c.update&&c.update(s)),n.push(c),(c.top?r:o).push(c)}this.specs=i,this.panels=n,this.top.sync(r),this.bottom.sync(o);for(let a of l)a.dom.classList.add("cm-panel"),a.mount&&a.mount()}else for(let i of this.panels)i.update&&i.update(s)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:s=>M.scrollMargins.of(t=>{let e=t.plugin(s);return e&&{top:e.top.scrollMargin(),bottom:e.bottom.scrollMargin()}})}),Ht=class{constructor(t,e,i){this.view=t,this.top=e,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(t){for(let e of this.panels)e.destroy&&t.indexOf(e)<0&&e.destroy();this.panels=t,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom";let e=this.container||this.view.dom;e.insertBefore(this.dom,this.top?e.firstChild:null)}let t=this.dom.firstChild;for(let e of this.panels)if(e.dom.parentNode==this.dom){for(;t!=e.dom;)t=pn(t);t=t.nextSibling}else this.dom.insertBefore(e.dom,t);for(;t;)t=pn(t)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let t of this.classes.split(" "))t&&this.container.classList.remove(t);for(let t of(this.classes=this.view.themeClasses).split(" "))t&&this.container.classList.add(t)}}};function pn(s){let t=s.nextSibling;return s.remove(),t}var hs=C.define({enables:xr});function la(s,t){let e,i=new Promise(o=>e=o),n=o=>xl(o,t,e);s.state.field(Ee,!1)?s.dispatch({effects:vr.of(n)}):s.dispatch({effects:U.appendConfig.of(Ee.init(()=>[n]))});let r=Sr.of(n);return{close:r,result:i.then(o=>((s.win.queueMicrotask||(a=>s.win.setTimeout(a,10)))(()=>{s.state.field(Ee).indexOf(n)>-1&&s.dispatch({effects:r})}),o))}}function aa(s,t){let e=s.state.field(Ee,!1)||[];for(let i of e){let n=wl(s,i);if(n&&n.dom.classList.contains(t))return n}return null}var Ee=pe.define({create(){return[]},update(s,t){for(let e of t.effects)e.is(vr)?s=[e.value].concat(s):e.is(Sr)&&(s=s.filter(i=>i!=e.value));return s},provide:s=>hs.computeN([s],t=>t.field(s))}),vr=U.define(),Sr=U.define();function xl(s,t,e){let i=t.content?t.content(s,()=>o(null)):null;if(!i){if(i=dt("form"),t.input){let l=dt("input",t.input);/^(text|password|number|email|tel|url)$/.test(l.type)&&l.classList.add("cm-textfield"),l.name||(l.name="input"),i.appendChild(dt("label",(t.label||"")+": ",l))}else i.appendChild(document.createTextNode(t.label||""));i.appendChild(document.createTextNode(" ")),i.appendChild(dt("button",{class:"cm-button",type:"submit"},t.submitLabel||"OK"))}let n=i.nodeName=="FORM"?[i]:i.querySelectorAll("form");for(let l=0;l<n.length;l++){let a=n[l];a.addEventListener("keydown",h=>{h.keyCode==27?(h.preventDefault(),o(null)):h.keyCode==13&&(h.preventDefault(),o(a))}),a.addEventListener("submit",h=>{h.preventDefault(),o(a)})}let r=dt("div",i,dt("button",{onclick:()=>o(null),"aria-label":s.state.phrase("close"),class:"cm-dialog-close",type:"button"},["\xD7"]));t.class&&(r.className=t.class),r.classList.add("cm-dialog");function o(l){r.contains(r.ownerDocument.activeElement)&&s.focus(),e(l)}return{dom:r,top:t.top,mount:()=>{if(t.focus){let l;typeof t.focus=="string"?l=i.querySelector(t.focus):l=i.querySelector("input")||i.querySelector("button"),l&&"select"in l?l.select():l&&"focus"in l&&l.focus()}}}}var tt=class extends be{compare(t){return this==t||this.constructor==t.constructor&&this.eq(t)}eq(t){return!1}destroy(t){}};tt.prototype.elementClass="";tt.prototype.toDOM=void 0;tt.prototype.mapMode=wt.TrackBefore;tt.prototype.startSide=tt.prototype.endSide=-1;tt.prototype.point=!0;var He=C.define(),vl=C.define(),Sl={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>E.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},ee=C.define();function ha(s){return[Cr(),ee.of({...Sl,...s})]}var cs=C.define({combine:s=>s.some(t=>t)});function Cr(s){let t=[Cl];return s&&s.fixed===!1&&t.push(cs.of(!0)),t}var Cl=V.fromClass(class{constructor(s){this.view=s,this.domAfter=null,this.prevViewport=s.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=s.state.facet(ee).map(t=>new Ue(s,t)),this.fixed=!s.state.facet(cs);for(let t of this.gutters)t.config.side=="after"?this.getDOMAfter().appendChild(t.dom):this.dom.appendChild(t.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),s.scrollDOM.insertBefore(this.dom,s.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(s){if(this.updateGutters(s)){let t=this.prevViewport,e=s.view.viewport,i=Math.min(t.to,e.to)-Math.max(t.from,e.from);this.syncGutters(i<(e.to-e.from)*.8)}if(s.geometryChanged){let t=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=t,this.domAfter&&(this.domAfter.style.minHeight=t)}this.view.state.facet(cs)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=s.view.viewport}syncGutters(s){let t=this.dom.nextSibling;s&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let e=E.iter(this.view.state.facet(He),this.view.viewport.from),i=[],n=this.gutters.map(r=>new ds(r,this.view.viewport,-this.view.documentPadding.top));for(let r of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(r.type)){let o=!0;for(let l of r.type)if(l.type==W.Text&&o){fs(e,i,l.from);for(let a of n)a.line(this.view,l,i);o=!1}else if(l.widget)for(let a of n)a.widget(this.view,l)}else if(r.type==W.Text){fs(e,i,r.from);for(let o of n)o.line(this.view,r,i)}else if(r.widget)for(let o of n)o.widget(this.view,r);for(let r of n)r.finish();s&&(this.view.scrollDOM.insertBefore(this.dom,t),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(s){let t=s.startState.facet(ee),e=s.state.facet(ee),i=s.docChanged||s.heightChanged||s.viewportChanged||!E.eq(s.startState.facet(He),s.state.facet(He),s.view.viewport.from,s.view.viewport.to);if(t==e)for(let n of this.gutters)n.update(s)&&(i=!0);else{i=!0;let n=[];for(let r of e){let o=t.indexOf(r);o<0?n.push(new Ue(this.view,r)):(this.gutters[o].update(s),n.push(this.gutters[o]))}for(let r of this.gutters)r.dom.remove(),n.indexOf(r)<0&&r.destroy();for(let r of n)r.config.side=="after"?this.getDOMAfter().appendChild(r.dom):this.dom.appendChild(r.dom);this.gutters=n}return i}destroy(){for(let s of this.gutters)s.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:s=>M.scrollMargins.of(t=>{let e=t.plugin(s);if(!e||e.gutters.length==0||!e.fixed)return null;let i=e.dom.offsetWidth*t.scaleX,n=e.domAfter?e.domAfter.offsetWidth*t.scaleX:0;return t.textDirection==B.LTR?{left:i,right:n}:{right:i,left:n}})});function gn(s){return Array.isArray(s)?s:[s]}function fs(s,t,e){for(;s.value&&s.from<=e;)s.from==e&&t.push(s.value),s.next()}var ds=class{constructor(t,e,i){this.gutter=t,this.height=i,this.i=0,this.cursor=E.iter(t.markers,e.from)}addElement(t,e,i){let{gutter:n}=this,r=(e.top-this.height)/t.scaleY,o=e.height/t.scaleY;if(this.i==n.elements.length){let l=new Qe(t,o,r,i);n.elements.push(l),n.dom.appendChild(l.dom)}else n.elements[this.i].update(t,o,r,i);this.height=e.bottom,this.i++}line(t,e,i){let n=[];fs(this.cursor,n,e.from),i.length&&(n=n.concat(i));let r=this.gutter.config.lineMarker(t,e,n);r&&n.unshift(r);let o=this.gutter;n.length==0&&!o.config.renderEmptyElements||this.addElement(t,e,n)}widget(t,e){let i=this.gutter.config.widgetMarker(t,e.widget,e),n=i?[i]:null;for(let r of t.state.facet(vl)){let o=r(t,e.widget,e);o&&(n||(n=[])).push(o)}n&&this.addElement(t,e,n)}finish(){let t=this.gutter;for(;t.elements.length>this.i;){let e=t.elements.pop();t.dom.removeChild(e.dom),e.destroy()}}},Ue=class{constructor(t,e){this.view=t,this.config=e,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in e.domEventHandlers)this.dom.addEventListener(i,n=>{let r=n.target,o;if(r!=this.dom&&this.dom.contains(r)){for(;r.parentNode!=this.dom;)r=r.parentNode;let a=r.getBoundingClientRect();o=(a.top+a.bottom)/2}else o=n.clientY;let l=t.lineBlockAtHeight(o-t.documentTop);e.domEventHandlers[i](t,l,n)&&n.preventDefault()});this.markers=gn(e.markers(t)),e.initialSpacer&&(this.spacer=new Qe(t,0,0,[e.initialSpacer(t)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(t){let e=this.markers;if(this.markers=gn(this.config.markers(t.view)),this.spacer&&this.config.updateSpacer){let n=this.config.updateSpacer(this.spacer.markers[0],t);n!=this.spacer.markers[0]&&this.spacer.update(t.view,0,0,[n])}let i=t.view.viewport;return!E.eq(this.markers,e,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(t):!1)}destroy(){for(let t of this.elements)t.destroy()}},Qe=class{constructor(t,e,i,n){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(t,e,i,n)}update(t,e,i,n){this.height!=e&&(this.height=e,this.dom.style.height=e+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),kl(this.markers,n)||this.setMarkers(t,n)}setMarkers(t,e){let i="cm-gutterElement",n=this.dom.firstChild;for(let r=0,o=0;;){let l=o,a=r<e.length?e[r++]:null,h=!1;if(a){let c=a.elementClass;c&&(i+=" "+c);for(let f=o;f<this.markers.length;f++)if(this.markers[f].compare(a)){l=f,h=!0;break}}else l=this.markers.length;for(;o<l;){let c=this.markers[o++];if(c.toDOM){c.destroy(n);let f=n.nextSibling;n.remove(),n=f}}if(!a)break;a.toDOM&&(h?n=n.nextSibling:this.dom.insertBefore(a.toDOM(t),n)),h&&o++}this.dom.className=i,this.markers=e}destroy(){this.setMarkers(null,[])}};function kl(s,t){if(s.length!=t.length)return!1;for(let e=0;e<s.length;e++)if(!s[e].compare(t[e]))return!1;return!0}var Ml=C.define(),Al=C.define(),Pt=C.define({combine(s){return me(s,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(t,e){let i=Object.assign({},t);for(let n in e){let r=i[n],o=e[n];i[n]=r?(l,a,h)=>r(l,a,h)||o(l,a,h):o}return i}})}}),ie=class extends tt{constructor(t){super(),this.number=t}eq(t){return this.number==t.number}toDOM(){return document.createTextNode(this.number)}};function pi(s,t){return s.state.facet(Pt).formatNumber(t,s.state)}var Tl=ee.compute([Pt],s=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(t){return t.state.facet(Ml)},lineMarker(t,e,i){return i.some(n=>n.toDOM)?null:new ie(pi(t,t.state.doc.lineAt(e.from).number))},widgetMarker:(t,e,i)=>{for(let n of t.state.facet(Al)){let r=n(t,e,i);if(r)return r}return null},lineMarkerChange:t=>t.startState.facet(Pt)!=t.state.facet(Pt),initialSpacer(t){return new ie(pi(t,mn(t.state.doc.lines)))},updateSpacer(t,e){let i=pi(e.view,mn(e.view.state.doc.lines));return i==t.number?t:new ie(i)},domEventHandlers:s.facet(Pt).domEventHandlers,side:"before"}));function ca(s={}){return[Pt.of(s),Cr(),Tl]}function mn(s){let t=9;for(;t<s;)t=t*10+9;return t}var Dl=new class extends tt{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},Ol=He.compute(["selection"],s=>{let t=[],e=-1;for(let i of s.selection.ranges){let n=s.doc.lineAt(i.head).from;n>e&&(e=n,t.push(Dl.range(n)))}return E.of(t)});function fa(){return Ol}function kr(s){return V.define(t=>({decorations:s.createDeco(t),update(e){this.decorations=s.updateDeco(e,this.decorations)}}),{decorations:t=>t.decorations})}var Rl=T.mark({class:"cm-highlightTab"}),Ll=T.mark({class:"cm-highlightSpace"}),Bl=kr(new ae({regexp:/\t| /g,decoration:s=>s[0]==" "?Rl:Ll,boundary:/\S/}));function da(){return Bl}var El=kr(new ae({regexp:/\s+$/g,decoration:T.mark({class:"cm-trailingSpace"})}));function ua(){return El}var pa={HeightMap:K,HeightOracle:Ke,MeasuredHeights:qe,QueryType:O,ChangedRange:X,computeOrder:Rn,moveVisually:En,clearHeightChangeFlag:Ki,getHeightChangeFlag:()=>At};export{st as a,lt as b,W as c,T as d,Ne as e,B as f,Y as g,Z as h,V as i,Ve as j,$ as k,M as l,qo as m,Kl as n,St as o,pr as p,ql as q,_l as r,jl as s,ae as t,Yl as u,Xl as v,$l as w,Gl as x,Ul as y,Ql as z,Jl as A,yr as B,Zl as C,ta as D,ea as E,ia as F,sa as G,na as H,ra as I,oa as J,wl as K,hs as L,la as M,aa as N,tt as O,He as P,vl as Q,ha as R,Cr as S,Ml as T,Al as U,ca as V,fa as W,da as X,ua as Y,pa as Z}; diff --git a/assets/cm/chunk-JULZPKSW.js b/assets/cm/chunk-JULZPKSW.js new file mode 100644 index 0000000..1ee907f --- /dev/null +++ b/assets/cm/chunk-JULZPKSW.js @@ -0,0 +1,3 @@ +import{O as Et,R as Rt,a as et,b as tt,d as R,f as ke,h as Dt,i as ce,l as F}from"./chunk-I3OVNVKL.js";import{A as Re,B as Ot,l as W,m as Qe,n as Xe,s as me,v as ue,w as Ye,z as Ze}from"./chunk-7PWEZHZB.js";function _t(r,e,t,n=0,i=0){e==null&&(e=r.search(/[^\s\u00a0]/),e==-1&&(e=r.length));let s=i;for(let l=n;l<e;l++)r.charCodeAt(l)==9?s+=t-s%t:s++;return s}var de=class{constructor(e,t,n,i){this.string=e,this.tabSize=t,this.indentUnit=n,this.overrideIndent=i,this.pos=0,this.start=0,this.lastColumnPos=0,this.lastColumnValue=0}eol(){return this.pos>=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)}eat(e){let t=this.string.charAt(this.pos),n;if(typeof e=="string"?n=t==e:n=t&&(e instanceof RegExp?e.test(t):e(t)),n)return++this.pos,t}eatWhile(e){let t=this.pos;for(;this.eat(e););return this.pos>t}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPos<this.start&&(this.lastColumnValue=_t(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue}indentation(){var e;return(e=this.overrideIndent)!==null&&e!==void 0?e:_t(this.string,null,this.tabSize)}match(e,t,n){if(typeof e=="string"){let i=l=>n?l.toLowerCase():l,s=this.string.substr(this.pos,e.length);return i(s)==i(e)?(t!==!1&&(this.pos+=e.length),!0):null}else{let i=this.string.slice(this.pos).match(e);return i&&i.index>0?null:(i&&t!==!1&&(this.pos+=i[0].length),i)}}current(){return this.string.slice(this.start,this.pos)}};var In=0,be=class{constructor(e,t){this.from=e,this.to=t}},k=class{constructor(e={}){this.id=In++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=_.match(e)),t=>{let n=e(t);return n===void 0?null:[this,n]}}};k.closedBy=new k({deserialize:r=>r.split(" ")});k.openedBy=new k({deserialize:r=>r.split(" ")});k.group=new k({deserialize:r=>r.split(" ")});k.isolate=new k({deserialize:r=>{if(r&&r!="rtl"&&r!="ltr"&&r!="auto")throw new RangeError("Invalid value for isolate: "+r);return r||"auto"}});k.contextHash=new k({perNode:!0});k.lookAhead=new k({perNode:!0});k.mounted=new k({perNode:!0});var se=class{constructor(e,t,n,i=!1){this.tree=e,this.overlay=t,this.parser=n,this.bracketed=i}static get(e){return e&&e.props&&e.props[k.mounted.id]}},Bn=Object.create(null),_=class r{constructor(e,t,n,i=0){this.name=e,this.props=t,this.id=n,this.flags=i}static define(e){let t=e.props&&e.props.length?Object.create(null):Bn,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),i=new r(e.name||"",t,e.id,n);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(i)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[s[0].id]=s[1]}}return i}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(k.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let n in e)for(let i of n.split(" "))t[i]=e[n];return n=>{for(let i=n.prop(k.group),s=-1;s<(i?i.length:0);s++){let l=t[s<0?n.name:i[s]];if(l)return l}}}};_.none=new _("",Object.create(null),0,8);var Fe=class r{constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let t=[];for(let n of this.types){let i=null;for(let s of e){let l=s(n);if(l){i||(i=Object.assign({},n.props));let o=l[1],a=l[0];a.combine&&a.id in i&&(o=a.combine(i[a.id],o)),i[a.id]=o}}t.push(i?new _(n.name,i,n.id,n.flags):n)}return new r(t)}},_e=new WeakMap,Lt=new WeakMap,I;(function(r){r[r.ExcludeBuffers=1]="ExcludeBuffers",r[r.IncludeAnonymous=2]="IncludeAnonymous",r[r.IgnoreMounts=4]="IgnoreMounts",r[r.IgnoreOverlays=8]="IgnoreOverlays",r[r.EnterBracketed=16]="EnterBracketed"})(I||(I={}));var A=class r{constructor(e,t,n,i,s){if(this.type=e,this.children=t,this.positions=n,this.length=i,this.props=null,s&&s.length){this.props=Object.create(null);for(let[l,o]of s)this.props[typeof l=="number"?l:l.id]=o}}toString(){let e=se.get(this);if(e&&!e.overlay)return e.tree.toString();let t="";for(let n of this.children){let i=n.toString();i&&(t&&(t+=","),t+=i)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(t.length?"("+t+")":""):t}cursor(e=0){return new we(this.topNode,e)}cursorAt(e,t=0,n=0){let i=_e.get(this)||this.topNode,s=new we(i);return s.moveTo(e,t),_e.set(this,s._tree),s}get topNode(){return new q(this,0,0,null)}resolve(e,t=0){let n=ye(_e.get(this)||this.topNode,e,t,!1);return _e.set(this,n),n}resolveInner(e,t=0){let n=ye(Lt.get(this)||this.topNode,e,t,!0);return Lt.set(this,n),n}resolveStack(e,t=0){return Mn(this,e,t)}iterate(e){let{enter:t,leave:n,from:i=0,to:s=this.length}=e,l=e.mode||0,o=(l&I.IncludeAnonymous)>0;for(let a=this.cursor(l|I.IncludeAnonymous);;){let h=!1;if(a.from<=s&&a.to>=i&&(!o&&a.type.isAnonymous||t(a)!==!1)){if(a.firstChild())continue;h=!0}for(;h&&n&&(o||!a.type.isAnonymous)&&n(a),!a.nextSibling();){if(!a.parent())return;h=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:at(_.none,this.children,this.positions,0,this.children.length,0,this.length,(t,n,i)=>new r(this.type,t,n,i,this.propValues),e.makeTree||((t,n,i)=>new r(_.none,t,n,i)))}static build(e){return On(e)}};A.empty=new A(_.none,[],[],0);var nt=class r{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new r(this.buffer,this.index)}},Y=class r{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return _.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(",")}childString(e){let t=this.buffer[e],n=this.buffer[e+3],i=this.set.types[t],s=i.name;if(/\W/.test(s)&&!i.isError&&(s=JSON.stringify(s)),e+=4,n==e)return s;let l=[];for(;e<n;)l.push(this.childString(e)),e=this.buffer[e+3];return s+"("+l.join(",")+")"}findChild(e,t,n,i,s){let{buffer:l}=this,o=-1;for(let a=e;a!=t&&!(jt(s,i,l[a+1],l[a+2])&&(o=a,n>0));a=l[a+3]);return o}slice(e,t,n){let i=this.buffer,s=new Uint16Array(t-e),l=0;for(let o=e,a=0;o<t;){s[a++]=i[o++],s[a++]=i[o++]-n;let h=s[a++]=i[o++]-n;s[a++]=i[o++]-e,l=Math.max(l,h)}return new r(s,l,this.set)}};function jt(r,e,t,n){switch(r){case-2:return t<e;case-1:return n>=e&&t<e;case 0:return t<e&&n>e;case 1:return t<=e&&n>e;case 2:return n>e;case 4:return!0}}function ye(r,e,t,n){for(var i;r.from==r.to||(t<1?r.from>=e:r.from>e)||(t>-1?r.to<=e:r.to<e);){let l=!n&&r instanceof q&&r.index<0?null:r.parent;if(!l)return r;r=l}let s=n?0:I.IgnoreOverlays;if(n)for(let l=r,o=l.parent;o;l=o,o=l.parent)l instanceof q&&l.index<0&&((i=o.enter(e,t,s))===null||i===void 0?void 0:i.from)!=l.from&&(r=o);for(;;){let l=r.enter(e,t,s);if(!l)return r;r=l}}var ze=class{cursor(e=0){return new we(this,e)}getChild(e,t=null,n=null){let i=Ft(this,e,t,n);return i.length?i[0]:null}getChildren(e,t=null,n=null){return Ft(this,e,t,n)}resolve(e,t=0){return ye(this,e,t,!1)}resolveInner(e,t=0){return ye(this,e,t,!0)}matchContext(e){return rt(this.parent,e)}enterUnfinishedNodesBefore(e){let t=this.childBefore(e),n=this;for(;t;){let i=t.lastChild;if(!i||i.to!=t.to)break;i.type.isError&&i.from==i.to?(n=t,t=i.prevSibling):t=i}return n}get node(){return this}get next(){return this.parent}},q=class r extends ze{constructor(e,t,n,i){super(),this._tree=e,this.from=t,this.index=n,this._parent=i}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,t,n,i,s=0){for(let l=this;;){for(let{children:o,positions:a}=l._tree,h=t>0?o.length:-1;e!=h;e+=t){let f=o[e],d=a[e]+l.from,g;if(!(!(s&I.EnterBracketed&&f instanceof A&&(g=se.get(f))&&!g.overlay&&g.bracketed&&n>=d&&n<=d+f.length)&&!jt(i,n,d,d+f.length))){if(f instanceof Y){if(s&I.ExcludeBuffers)continue;let b=f.findChild(0,f.buffer.length,t,n-d,i);if(b>-1)return new xe(new it(l,f,e,d),null,b)}else if(s&I.IncludeAnonymous||!f.type.isAnonymous||ot(f)){let b;if(!(s&I.IgnoreMounts)&&(b=se.get(f))&&!b.overlay)return new r(b.tree,d,e,l);let w=new r(f,d,e,l);return s&I.IncludeAnonymous||!w.type.isAnonymous?w:w.nextChild(t<0?f.children.length-1:0,t,n,i,s)}}}if(s&I.IncludeAnonymous||!l.type.isAnonymous||(l.index>=0?e=l.index+t:e=t<0?-1:l._parent._tree.children.length,l=l._parent,!l))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,t,n=0){let i;if(!(n&I.IgnoreOverlays)&&(i=se.get(this._tree))&&i.overlay){let s=e-this.from,l=n&I.EnterBracketed&&i.bracketed;for(let{from:o,to:a}of i.overlay)if((t>0||l?o<=s:o<s)&&(t<0||l?a>=s:a>s))return new r(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,n)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function Ft(r,e,t,n){let i=r.cursor(),s=[];if(!i.firstChild())return s;if(t!=null){for(let l=!1;!l;)if(l=i.type.is(t),!i.nextSibling())return s}for(;;){if(n!=null&&i.type.is(n))return s;if(i.type.is(e)&&s.push(i.node),!i.nextSibling())return n==null?s:[]}}function rt(r,e,t=e.length-1){for(let n=r;t>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[t]&&e[t]!=n.name)return!1;t--}}return!0}var it=class{constructor(e,t,n,i){this.parent=e,this.buffer=t,this.index=n,this.start=i}},xe=class r extends ze{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,n){super(),this.context=e,this._parent=t,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(e,t,n){let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.context.start,n);return s<0?null:new r(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,t,n=0){if(n&I.ExcludeBuffers)return null;let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new r(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new r(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new r(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,i=this.index+4,s=n.buffer[this.index+3];if(s>i){let l=n.buffer[this.index+1];e.push(n.slice(i,s,l)),t.push(0)}return new A(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function Ut(r){if(!r.length)return null;let e=0,t=r[0];for(let s=1;s<r.length;s++){let l=r[s];(l.from>t.from||l.to<t.to)&&(t=l,e=s)}let n=t instanceof q&&t.index<0?null:t.parent,i=r.slice();return n?i[e]=n:i.splice(e,1),new st(i,t)}var st=class{constructor(e,t){this.heads=e,this.node=t}get next(){return Ut(this.heads)}};function Mn(r,e,t){let n=r.resolveInner(e,t),i=null;for(let s=n instanceof q?n:n.context.parent;s;s=s.parent)if(s.index<0){let l=s.parent;(i||(i=[n])).push(l.resolve(e,t)),s=l}else{let l=se.get(s.tree);if(l&&l.overlay&&l.overlay[0].from<=e&&l.overlay[l.overlay.length-1].to>=e){let o=new q(l.tree,l.overlay[0].from+s.from,-1,s);(i||(i=[n])).push(ye(o,e,t,!1))}}return i?Ut(i):n}var we=class{get name(){return this.type.name}constructor(e,t=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=t&~I.EnterBracketed,e instanceof q)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let n=e._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:n,buffer:i}=this.buffer;return this.type=t||i.set.types[i.buffer[e]],this.from=n+i.buffer[e+1],this.to=n+i.buffer[e+2],!0}yield(e){return e?e instanceof q?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,n,this.mode));let{buffer:i}=this.buffer,s=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.buffer.start,n);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,n=this.mode){return this.buffer?n&I.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&I.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&I.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let i=n<0?0:this.stack[n]+4;if(this.index!=i)return this.yieldBuf(t.findChild(i,this.index,-1,0,4))}else{let i=t.buffer[this.index+3];if(i<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(i)}return n<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,n,{buffer:i}=this;if(i){if(e>0){if(this.index<i.buffer.buffer.length)return!1}else for(let s=0;s<this.index;s++)if(i.buffer.buffer[s+3]<this.index)return!1;({index:t,parent:n}=i)}else({index:t,_parent:n}=this._tree);for(;n;{index:t,_parent:n}=n)if(t>-1)for(let s=t+e,l=e<0?-1:n._tree.children.length;s!=l;s+=e){let o=n._tree.children[s];if(this.mode&I.IncludeAnonymous||o instanceof Y||!o.type.isAnonymous||ot(o))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,n=0;if(e&&e.context==this.buffer)e:for(let i=this.index,s=this.stack.length;s>=0;){for(let l=e;l;l=l._parent)if(l.index==i){if(i==this.index)return l;t=l,n=s+1;break e}i=this.stack[--s]}for(let i=n;i<this.stack.length;i++)t=new xe(this.buffer,t,this.stack[i]);return this.bufferNode=new xe(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let n=0;;){let i=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){n++;continue}this.type.isAnonymous||(i=!0)}for(;;){if(i&&t&&t(this),i=this.type.isAnonymous,!n)return;if(this.nextSibling())break;this.parent(),n--,i=!0}}}matchContext(e){if(!this.buffer)return rt(this.node.parent,e);let{buffer:t}=this.buffer,{types:n}=t.set;for(let i=e.length-1,s=this.stack.length-1;i>=0;s--){if(s<0)return rt(this._tree,e,i);let l=n[t.buffer[this.stack[s]]];if(!l.isAnonymous){if(e[i]&&e[i]!=l.name)return!1;i--}}return!0}};function ot(r){return r.children.some(e=>e instanceof Y||!e.type.isAnonymous||ot(e))}function On(r){var e;let{buffer:t,nodeSet:n,maxBufferLength:i=1024,reused:s=[],minRepeatType:l=n.types.length}=r,o=Array.isArray(t)?new nt(t,t.length):t,a=n.types,h=0,f=0;function d(x,C,p,P,v,N){let{id:y,start:m,end:S,size:T}=o,O=f,X=h;if(T<0)if(o.next(),T==-1){let Q=s[y];p.push(Q),P.push(m-x);return}else if(T==-3){h=y;return}else if(T==-4){f=y;return}else throw new RangeError(`Unrecognized record size: ${T}`);let ge=a[y],De,re,Bt=m-x;if(S-m<=i&&(re=j(o.pos-C,v))){let Q=new Uint16Array(re.size-re.skip),U=o.pos-re.size,$=Q.length;for(;o.pos>U;)$=E(re.start,Q,$);De=new Y(Q,S-re.start,n),Bt=re.start-x}else{let Q=o.pos-T;o.next();let U=[],$=[],ie=y>=l?y:-1,fe=0,Ee=S;for(;o.pos>Q;)ie>=0&&o.id==ie&&o.size>=0?(o.end<=Ee-i&&(w(U,$,m,fe,o.end,Ee,ie,O,X),fe=U.length,Ee=o.end),o.next()):N>2500?g(m,Q,U,$):d(m,Q,U,$,ie,N+1);if(ie>=0&&fe>0&&fe<U.length&&w(U,$,m,fe,m,Ee,ie,O,X),U.reverse(),$.reverse(),ie>-1&&fe>0){let Mt=b(ge,X);De=at(ge,U,$,0,U.length,0,S-m,Mt,Mt)}else De=M(ge,U,$,S-m,O-S,X)}p.push(De),P.push(Bt)}function g(x,C,p,P){let v=[],N=0,y=-1;for(;o.pos>C;){let{id:m,start:S,end:T,size:O}=o;if(O>4)o.next();else{if(y>-1&&S<y)break;y<0&&(y=T-i),v.push(m,S,T),N++,o.next()}}if(N){let m=new Uint16Array(N*4),S=v[v.length-2];for(let T=v.length-3,O=0;T>=0;T-=3)m[O++]=v[T],m[O++]=v[T+1]-S,m[O++]=v[T+2]-S,m[O++]=O;p.push(new Y(m,v[2]-S,n)),P.push(S-x)}}function b(x,C){return(p,P,v)=>{let N=0,y=p.length-1,m,S;if(y>=0&&(m=p[y])instanceof A){if(!y&&m.type==x&&m.length==v)return m;(S=m.prop(k.lookAhead))&&(N=P[y]+m.length+S)}return M(x,p,P,v,N,C)}}function w(x,C,p,P,v,N,y,m,S){let T=[],O=[];for(;x.length>P;)T.push(x.pop()),O.push(C.pop()+p-v);x.push(M(n.types[y],T,O,N-v,m-N,S)),C.push(v-p)}function M(x,C,p,P,v,N,y){if(N){let m=[k.contextHash,N];y=y?[m].concat(y):[m]}if(v>25){let m=[k.lookAhead,v];y=y?[m].concat(y):[m]}return new A(x,C,p,P,y)}function j(x,C){let p=o.fork(),P=0,v=0,N=0,y=p.end-i,m={size:0,start:0,skip:0};e:for(let S=p.pos-x;p.pos>S;){let T=p.size;if(p.id==C&&T>=0){m.size=P,m.start=v,m.skip=N,N+=4,P+=4,p.next();continue}let O=p.pos-T;if(T<0||O<S||p.start<y)break;let X=p.id>=l?4:0,ge=p.start;for(p.next();p.pos>O;){if(p.size<0)if(p.size==-3||p.size==-4)X+=4;else break e;else p.id>=l&&(X+=4);p.next()}v=ge,P+=T,N+=X}return(C<0||P==x)&&(m.size=P,m.start=v,m.skip=N),m.size>4?m:void 0}function E(x,C,p){let{id:P,start:v,end:N,size:y}=o;if(o.next(),y>=0&&P<l){let m=p;if(y>4){let S=o.pos-(y-4);for(;o.pos>S;)p=E(x,C,p)}C[--p]=m,C[--p]=N-x,C[--p]=v-x,C[--p]=P}else y==-3?h=P:y==-4&&(f=P);return p}let L=[],B=[];for(;o.pos>0;)d(r.start||0,r.bufferStart||0,L,B,-1,0);let V=(e=r.length)!==null&&e!==void 0?e:L.length?B[0]+L[0].length:0;return new A(a[r.topID],L.reverse(),B.reverse(),V)}var zt=new WeakMap;function Le(r,e){if(!r.isAnonymous||e instanceof Y||e.type!=r)return 1;let t=zt.get(e);if(t==null){t=1;for(let n of e.children){if(n.type!=r||!(n instanceof A)){t=1;break}t+=Le(r,n)}zt.set(e,t)}return t}function at(r,e,t,n,i,s,l,o,a){let h=0;for(let w=n;w<i;w++)h+=Le(r,e[w]);let f=Math.ceil(h*1.5/8),d=[],g=[];function b(w,M,j,E,L){for(let B=j;B<E;){let V=B,x=M[B],C=Le(r,w[B]);for(B++;B<E;B++){let p=Le(r,w[B]);if(C+p>=f)break;C+=p}if(B==V+1){if(C>f){let p=w[V];b(p.children,p.positions,0,p.children.length,M[V]+L);continue}d.push(w[V])}else{let p=M[B-1]+w[B-1].length-x;d.push(at(r,w,M,V,B,x,p,null,a))}g.push(x+L-s)}}return b(e,t,n,i,0),(o||a)(d,g,l)}var le=class r{constructor(e,t,n,i,s=!1,l=!1){this.from=e,this.to=t,this.tree=n,this.offset=i,this.open=(s?1:0)|(l?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],n=!1){let i=[new r(0,e.length,e,0,!1,n)];for(let s of t)s.to>e.length&&i.push(s);return i}static applyChanges(e,t,n=128){if(!t.length)return e;let i=[],s=1,l=e.length?e[0]:null;for(let o=0,a=0,h=0;;o++){let f=o<t.length?t[o]:null,d=f?f.fromA:1e9;if(d-a>=n)for(;l&&l.from<d;){let g=l;if(a>=g.from||d<=g.to||h){let b=Math.max(g.from,a)-h,w=Math.min(g.to,d)-h;g=b>=w?null:new r(b,w,g.tree,g.offset+h,o>0,!!f)}if(g&&i.push(g),l.to>d)break;l=s<e.length?e[s++]:null}if(!f)break;a=f.toA,h=f.toA-f.toB}return i}},ve=class{startParse(e,t,n){return typeof e=="string"&&(e=new lt(e)),n=n?n.length?n.map(i=>new be(i.from,i.to)):[new be(0,0)]:[new be(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let i=this.startParse(e,t,n);for(;;){let s=i.advance();if(s)return s}}},lt=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}};var Ir=new k({perNode:!0});var Dn=0,H=class r{constructor(e,t,n,i){this.name=e,this.set=t,this.base=n,this.modified=i,this.id=Dn++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let n=typeof e=="string"?e:"?";if(e instanceof r&&(t=e),t?.base)throw new Error("Can not derive from a modified tag");let i=new r(n,[],null,[]);if(i.set.push(i),t)for(let s of t.set)i.set.push(s);return i}static defineModifier(e){let t=new He(e);return n=>n.modified.indexOf(t)>-1?n:He.get(n.base||n,n.modified.concat(t).sort((i,s)=>i.id-s.id))}},En=0,He=class r{constructor(e){this.name=e,this.instances=[],this.id=En++}static get(e,t){if(!t.length)return e;let n=t[0].instances.find(o=>o.base==e&&Rn(t,o.modified));if(n)return n;let i=[],s=new H(e.name,i,e,t);for(let o of t)o.instances.push(s);let l=_n(t);for(let o of e.set)if(!o.modified.length)for(let a of l)i.push(r.get(o,a));return s}};function Rn(r,e){return r.length==e.length&&r.every((t,n)=>t==e[n])}function _n(r){let e=[[]];for(let t=0;t<r.length;t++)for(let n=0,i=e.length;n<i;n++)e.push(e[n].concat(r[t]));return e.sort((t,n)=>n.length-t.length)}function Vt(r){let e=Object.create(null);for(let t in r){let n=r[t];Array.isArray(n)||(n=[n]);for(let i of t.split(" "))if(i){let s=[],l=2,o=i;for(let d=0;;){if(o=="..."&&d>0&&d+3==i.length){l=1;break}let g=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(o);if(!g)throw new RangeError("Invalid path: "+i);if(s.push(g[0]=="*"?"":g[0][0]=='"'?JSON.parse(g[0]):g[0]),d+=g[0].length,d==i.length)break;let b=i[d++];if(d==i.length&&b=="!"){l=0;break}if(b!="/")throw new RangeError("Invalid path: "+i);o=i.slice(d)}let a=s.length-1,h=s[a];if(!h)throw new RangeError("Invalid path: "+i);let f=new ae(n,l,a>0?s.slice(0,a):null);e[h]=f.sort(e[h])}}return $t.add(e)}var $t=new k({combine(r,e){let t,n,i;for(;r||e;){if(!r||e&&r.depth<=e.depth?(i=e,e=e.next):(i=r,r=r.next),t&&t.mode==i.mode&&!i.context&&!t.context)continue;let s=new ae(i.tags,i.mode,i.context);t?t.next=s:n=s,t=s}return n}}),ae=class{constructor(e,t,n,i){this.tags=e,this.mode=t,this.context=n,this.next=i}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth<this.depth?(this.next=e,this):(e.next=this.sort(e.next),e)}get depth(){return this.context?this.context.length:0}};ae.empty=new ae([],2,null);function ct(r,e){let t=Object.create(null);for(let s of r)if(!Array.isArray(s.tag))t[s.tag.id]=s.class;else for(let l of s.tag)t[l.id]=s.class;let{scope:n,all:i=null}=e||{};return{style:s=>{let l=i;for(let o of s)for(let a of o.set){let h=t[a.id];if(h){l=l?l+" "+h:h;break}}return l},scope:n}}function Ln(r,e){let t=null;for(let n of r){let i=n.style(e);i&&(t=t?t+" "+i:i)}return t}function qt(r,e,t,n=0,i=r.length){let s=new ft(n,Array.isArray(e)?e:[e],t);s.highlightRange(r.cursor(),n,i,"",s.highlighters),s.flush(i)}var ft=class{constructor(e,t,n){this.at=e,this.highlighters=t,this.span=n,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,n,i,s){let{type:l,from:o,to:a}=e;if(o>=n||a<=t)return;l.isTop&&(s=this.highlighters.filter(b=>!b.scope||b.scope(l)));let h=i,f=Fn(e)||ae.empty,d=Ln(s,f.tags);if(d&&(h&&(h+=" "),h+=d,f.mode==1&&(i+=(i?" ":"")+d)),this.startSpan(Math.max(t,o),h),f.opaque)return;let g=e.tree&&e.tree.prop(k.mounted);if(g&&g.overlay){let b=e.node.enter(g.overlay[0].from+o,1),w=this.highlighters.filter(j=>!j.scope||j.scope(g.tree.type)),M=e.firstChild();for(let j=0,E=o;;j++){let L=j<g.overlay.length?g.overlay[j]:null,B=L?L.from+o:a,V=Math.max(t,E),x=Math.min(n,B);if(V<x&&M)for(;e.from<x&&(this.highlightRange(e,V,x,i,s),this.startSpan(Math.min(x,e.to),h),!(e.to>=B||!e.nextSibling())););if(!L||B>n)break;E=L.to+o,E>t&&(this.highlightRange(b.cursor(),Math.max(t,L.from+o),Math.min(n,E),"",w),this.startSpan(Math.min(n,E),h))}M&&e.parent()}else if(e.firstChild()){g&&(i="");do if(!(e.to<=t)){if(e.from>=n)break;this.highlightRange(e,t,n,i,s),this.startSpan(Math.min(n,e.to),h)}while(e.nextSibling());e.parent()}}};function Fn(r){let e=r.type.prop($t);for(;e&&e.context&&!r.matchContext(e.context);)e=e.next;return e||null}var u=H.define,je=u(),Z=u(),Wt=u(Z),Ht=u(Z),ee=u(),Ue=u(ee),ht=u(ee),K=u(),oe=u(K),G=u(),J=u(),ut=u(),Se=u(ut),We=u(),c={comment:je,lineComment:u(je),blockComment:u(je),docComment:u(je),name:Z,variableName:u(Z),typeName:Wt,tagName:u(Wt),propertyName:Ht,attributeName:u(Ht),className:u(Z),labelName:u(Z),namespace:u(Z),macroName:u(Z),literal:ee,string:Ue,docString:u(Ue),character:u(Ue),attributeValue:u(Ue),number:ht,integer:u(ht),float:u(ht),bool:u(ee),regexp:u(ee),escape:u(ee),color:u(ee),url:u(ee),keyword:G,self:u(G),null:u(G),atom:u(G),unit:u(G),modifier:u(G),operatorKeyword:u(G),controlKeyword:u(G),definitionKeyword:u(G),moduleKeyword:u(G),operator:J,derefOperator:u(J),arithmeticOperator:u(J),logicOperator:u(J),bitwiseOperator:u(J),compareOperator:u(J),updateOperator:u(J),definitionOperator:u(J),typeOperator:u(J),controlOperator:u(J),punctuation:ut,separator:u(ut),bracket:Se,angleBracket:u(Se),squareBracket:u(Se),paren:u(Se),brace:u(Se),content:K,heading:oe,heading1:u(oe),heading2:u(oe),heading3:u(oe),heading4:u(oe),heading5:u(oe),heading6:u(oe),contentSeparator:u(K),list:u(K),quote:u(K),emphasis:u(K),strong:u(K),link:u(K),monospace:u(K),strikethrough:u(K),inserted:u(),deleted:u(),changed:u(),invalid:u(),meta:We,documentMeta:u(We),annotation:u(We),processingInstruction:u(We),definition:H.defineModifier("definition"),constant:H.defineModifier("constant"),function:H.defineModifier("function"),standard:H.defineModifier("standard"),local:H.defineModifier("local"),special:H.defineModifier("special")};for(let r in c){let e=c[r];e instanceof H&&(e.name=r)}var Or=ct([{tag:c.link,class:"tok-link"},{tag:c.heading,class:"tok-heading"},{tag:c.emphasis,class:"tok-emphasis"},{tag:c.strong,class:"tok-strong"},{tag:c.keyword,class:"tok-keyword"},{tag:c.atom,class:"tok-atom"},{tag:c.bool,class:"tok-bool"},{tag:c.url,class:"tok-url"},{tag:c.labelName,class:"tok-labelName"},{tag:c.inserted,class:"tok-inserted"},{tag:c.deleted,class:"tok-deleted"},{tag:c.literal,class:"tok-literal"},{tag:c.string,class:"tok-string"},{tag:c.number,class:"tok-number"},{tag:[c.regexp,c.escape,c.special(c.string)],class:"tok-string2"},{tag:c.variableName,class:"tok-variableName"},{tag:c.local(c.variableName),class:"tok-variableName tok-local"},{tag:c.definition(c.variableName),class:"tok-variableName tok-definition"},{tag:c.special(c.variableName),class:"tok-variableName2"},{tag:c.definition(c.propertyName),class:"tok-propertyName tok-definition"},{tag:c.typeName,class:"tok-typeName"},{tag:c.namespace,class:"tok-namespace"},{tag:c.className,class:"tok-className"},{tag:c.macroName,class:"tok-macroName"},{tag:c.propertyName,class:"tok-propertyName"},{tag:c.operator,class:"tok-operator"},{tag:c.comment,class:"tok-comment"},{tag:c.meta,class:"tok-meta"},{tag:c.invalid,class:"tok-invalid"},{tag:c.punctuation,class:"tok-punctuation"}]);var dt,he=new k;function on(r){return W.define({combine:r?e=>e.concat(r):void 0})}var zn=new k,D=class{constructor(e,t,n=[],i=""){this.data=e,this.name=i,ue.prototype.hasOwnProperty("tree")||Object.defineProperty(ue.prototype,"tree",{get(){return z(this)}}),this.parser=t,this.extension=[te.of(this),ue.languageData.of((s,l,o)=>{let a=Gt(s,l,o),h=a.type.prop(he);if(!h)return[];let f=s.facet(h),d=a.type.prop(zn);if(d){let g=a.resolve(l-a.from,o);for(let b of d)if(b.test(g,s)){let w=s.facet(b.facet);return b.type=="replace"?w:w.concat(f)}}return f})].concat(n)}isActiveAt(e,t,n=-1){return Gt(e,t,n).type.prop(he)==this.data}findRegions(e){let t=e.facet(te);if(t?.data==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let n=[],i=(s,l)=>{if(s.prop(he)==this.data){n.push({from:l,to:l+s.length});return}let o=s.prop(k.mounted);if(o){if(o.tree.prop(he)==this.data){if(o.overlay)for(let a of o.overlay)n.push({from:a.from+l,to:a.to+l});else n.push({from:l,to:l+s.length});return}else if(o.overlay){let a=n.length;if(i(o.tree,o.overlay[0].from+l),n.length>a)return}}for(let a=0;a<s.children.length;a++){let h=s.children[a];h instanceof A&&i(h,s.positions[a]+l)}};return i(z(e),0),n}get allowsNesting(){return!0}};D.setState=me.define();function Gt(r,e,t){let n=r.facet(te),i=z(r).topNode;if(!n||n.allowsNesting)for(let s=i;s;s=s.enter(e,t,I.ExcludeBuffers|I.EnterBracketed))s.type.isTop&&(i=s);return i}var Jt=class r extends D{constructor(e,t,n){super(e,t,[],n),this.parser=t}static define(e){let t=on(e.languageData);return new r(t,e.parser.configure({props:[he.add(n=>n.isTop?t:void 0)]}),e.name)}configure(e,t){return new r(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function z(r){let e=r.field(D.state,!1);return e?e.tree:A.empty}function jn(r,e,t=50){var n;let i=(n=r.field(D.state,!1))===null||n===void 0?void 0:n.context;if(!i)return null;let s=i.viewport;i.updateViewport({from:0,to:e});let l=i.isDone(e)||i.work(t,e)?i.tree:null;return i.updateViewport(s),l}function jr(r,e=r.doc.length){var t;return((t=r.field(D.state,!1))===null||t===void 0?void 0:t.context.isDone(e))||!1}function Ur(r,e=r.viewport.to,t=100){let n=jn(r.state,e,t);return n!=z(r.state)&&r.dispatch({}),!!n}function Wr(r){var e;return((e=r.plugin(hn))===null||e===void 0?void 0:e.isWorking())||!1}var mt=class{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let n=this.cursorPos-this.string.length;return e<n||t>=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-n,t-n)}},Ae=null,Te=class r{constructor(e,t,n=[],i,s,l,o,a){this.parser=e,this.state=t,this.fragments=n,this.tree=i,this.treeLen=s,this.viewport=l,this.skipped=o,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,t,n){return new r(e,t,[],A.empty,0,n,[],null)}startParse(){return this.parser.startParse(new mt(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=A.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var n;if(typeof e=="number"){let i=Date.now()+e;e=()=>Date.now()>i}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t<this.state.doc.length&&this.parse.stopAt(t);;){let i=this.parse.advance();if(i)if(this.fragments=this.withoutTempSkipped(le.addTree(i,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(n=this.parse.stoppedAt)!==null&&n!==void 0?n:this.state.doc.length,this.tree=i,this.parse=null,this.treeLen<(t??this.state.doc.length))this.parse=this.startParse();else return!0;if(e())return!1}})}takeTree(){let e,t;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(le.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=Ae;Ae=this;try{return e()}finally{Ae=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=Kt(e,t.from,t.to);return e}changes(e,t){let{fragments:n,tree:i,treeLen:s,viewport:l,skipped:o}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((h,f,d,g)=>a.push({fromA:h,toA:f,fromB:d,toB:g})),n=le.applyChanges(n,a),i=A.empty,s=0,l={from:e.mapPos(l.from,-1),to:e.mapPos(l.to,1)},this.skipped.length){o=[];for(let h of this.skipped){let f=e.mapPos(h.from,1),d=e.mapPos(h.to,-1);f<d&&o.push({from:f,to:d})}}}return new r(this.parser,t,n,i,s,l,o,this.scheduleOn)}updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.to)return!1;this.viewport=e;let t=this.skipped.length;for(let n=0;n<this.skipped.length;n++){let{from:i,to:s}=this.skipped[n];i<e.to&&s>e.from&&(this.fragments=Kt(this.fragments,i,s),this.skipped.splice(n--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends ve{createParse(t,n,i){let s=i[0].from,l=i[i.length-1].to;return{parsedPos:s,advance(){let a=Ae;if(a){for(let h of i)a.tempSkipped.push(h);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=l,new A(_.none,[],[],l-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return Ae}};function Kt(r,e,t){return le.applyChanges(r,[{fromA:e,toA:t,fromB:e,toB:t}])}var Pe=class r{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),n=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,n)||t.takeTree(),new r(t)}static init(e){let t=Math.min(3e3,e.doc.length),n=Te.create(e.facet(te).parser,e,{from:0,to:t});return n.work(20,t)||n.takeTree(),new r(n)}};D.state=Qe.define({create:Pe.init,update(r,e){for(let t of e.effects)if(t.is(D.setState))return t.value;return e.startState.facet(te)!=e.state.facet(te)?Pe.init(e.state):r.apply(e)}});var an=r=>{let e=setTimeout(()=>r(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(an=r=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(r,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});var pt=typeof navigator<"u"&&(!((dt=navigator.scheduling)===null||dt===void 0)&&dt.isInputPending)?()=>navigator.scheduling.isInputPending():null,hn=ce.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(D.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(D.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=an(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEnd<t&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=t+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:n,viewport:{to:i}}=this.view,s=n.field(D.state);if(s.tree==s.context.tree&&s.context.isDone(i+1e5))return;let l=Date.now()+Math.min(this.chunkBudget,100,e&&!pt?Math.max(25,e.timeRemaining()-5):1e9),o=s.context.treeLen<i&&n.doc.length>i+1e3,a=s.context.work(()=>pt&&pt()||Date.now()>l,i+(o?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:D.setState.of(new Pe(s.context))})),this.chunkBudget>0&&!(a&&!o)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>Dt(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),te=W.define({combine(r){return r.length?r[0]:null},enables:r=>[D.state,hn,F.contentAttributes.compute([r],e=>{let t=e.facet(r);return t&&t.name?{"data-language":t.name}:{}})]}),Qt=class{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}},Xt=class r{constructor(e,t,n,i,s,l=void 0){this.name=e,this.alias=t,this.extensions=n,this.filename=i,this.loadFunc=s,this.support=l,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(e=>this.support=e,e=>{throw this.loading=null,e}))}static of(e){let{load:t,support:n}=e;if(!t){if(!n)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");t=()=>Promise.resolve(n)}return new r(e.name,(e.alias||[]).concat(e.name).map(i=>i.toLowerCase()),e.extensions||[],e.filename,t,n)}static matchFilename(e,t){for(let i of e)if(i.filename&&i.filename.test(t))return i;let n=/\.([^.]+)$/.exec(t);if(n){for(let i of e)if(i.extensions.indexOf(n[1])>-1)return i}return null}static matchLanguageName(e,t,n=!0){t=t.toLowerCase();for(let i of e)if(i.alias.some(s=>s==t))return i;if(n)for(let i of e)for(let s of i.alias){let l=t.indexOf(s);if(l>-1&&(s.length>2||!/\w/.test(t[l-1])&&!/\w/.test(t[l+s.length])))return i}return null}},Un=W.define(),fn=W.define({combine:r=>{if(!r.length)return" ";let e=r[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(r[0]));return e}});function qe(r){let e=r.facet(fn);return e.charCodeAt(0)==9?r.tabSize*e.length:e.length}function un(r,e){let t="",n=r.tabSize,i=r.facet(fn)[0];if(i==" "){for(;e>=n;)t+=" ",e-=n;i=" "}for(let s=0;s<e;s++)t+=i;return t}function cn(r,e){r instanceof ue&&(r=new Ne(r));for(let n of r.state.facet(Un)){let i=n(r,e);if(i!==void 0)return i}let t=z(r.state);return t.length>=e?Wn(r,t,e):null}function Vr(r,e,t){let n=Object.create(null),i=new Ne(r,{overrideIndentation:l=>{var o;return(o=n[l])!==null&&o!==void 0?o:-1}}),s=[];for(let l=e;l<=t;){let o=r.doc.lineAt(l);l=o.to+1;let a=cn(i,o.from);if(a==null)continue;/\S/.test(o.text)||(a=0);let h=/^\s*/.exec(o.text)[0],f=un(r,a);h!=f&&(n[o.from]=a,s.push({from:o.from,to:o.from+h.length,insert:f}))}return r.changes(s)}var Ne=class{constructor(e,t={}){this.state=e,this.options=t,this.unit=qe(e)}lineAt(e,t=1){let n=this.state.doc.lineAt(e),{simulateBreak:i,simulateDoubleBreak:s}=this.options;return i!=null&&i>=n.from&&i<=n.to?s&&i==e?{text:"",from:e}:(t<0?i<e:i<=e)?{text:n.text.slice(i-n.from),from:i}:{text:n.text.slice(0,i-n.from),from:n.from}:n}textAfterPos(e,t=1){if(this.options.simulateDoubleBreak&&e==this.options.simulateBreak)return"";let{text:n,from:i}=this.lineAt(e,t);return n.slice(e-i,Math.min(n.length,e+100-i))}column(e,t=1){let{text:n,from:i}=this.lineAt(e,t),s=this.countColumn(n,e-i),l=this.options.overrideIndentation?this.options.overrideIndentation(i):-1;return l>-1&&(s+=l-this.countColumn(n,n.search(/\S|$/))),s}countColumn(e,t=e.length){return Ot(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:n,from:i}=this.lineAt(e,t),s=this.options.overrideIndentation;if(s){let l=s(i);if(l>-1)return l}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},dn=new k;function Wn(r,e,t){let n=e.resolveStack(t),i=e.resolveInner(t,-1).resolve(t,0).enterUnfinishedNodesBefore(t);if(i!=n.node){let s=[];for(let l=i;l&&!(l.from<n.node.from||l.to>n.node.to||l.from==n.node.from&&l.type==n.node.type);l=l.parent)s.push(l);for(let l=s.length-1;l>=0;l--)n={node:s[l],next:n}}return pn(n,r,t)}function pn(r,e,t){for(let n=r;n;n=n.next){let i=Vn(n.node);if(i)return i(kt.create(e,t,n))}return 0}function Hn(r){return r.pos==r.options.simulateBreak&&r.options.simulateDoubleBreak}function Vn(r){let e=r.type.prop(dn);if(e)return e;let t=r.firstChild,n;if(t&&(n=t.type.prop(k.closedBy))){let i=r.lastChild,s=i&&n.indexOf(i.name)>-1;return l=>gn(l,!0,1,void 0,s&&!Hn(l)?i.from:void 0)}return r.parent==null?$n:null}function $n(){return 0}var kt=class r extends Ne{constructor(e,t,n){super(e.state,e.options),this.base=e,this.pos=t,this.context=n}get node(){return this.context.node}static create(e,t,n){return new r(e,t,n)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let n=e.resolve(t.from);for(;n.parent&&n.parent.from==n.from;)n=n.parent;if(qn(n,e))break;t=this.state.doc.lineAt(n.from)}return this.lineIndent(t.from)}continue(){return pn(this.context.next,this.base,this.pos)}};function qn(r,e){for(let t=e;t;t=t.parent)if(r==t)return!0;return!1}function Gn(r){let e=r.node,t=e.childAfter(e.from),n=e.lastChild;if(!t)return null;let i=r.options.simulateBreak,s=r.state.doc.lineAt(t.from),l=i==null||i<=s.from?s.to:Math.min(s.to,i);for(let o=t.to;;){let a=e.childAfter(o);if(!a||a==n)return null;if(!a.type.isSkipped){if(a.from>=l)return null;let h=/^ */.exec(s.text.slice(t.to-s.from))[0].length;return{from:t.from,to:t.to+h}}o=a.to}}function $r({closing:r,align:e=!0,units:t=1}){return n=>gn(n,e,t,r)}function gn(r,e,t,n,i){let s=r.textAfter,l=s.match(/^\s*/)[0].length,o=n&&s.slice(l,l+n.length)==n||i==r.pos+l,a=e?Gn(r):null;return a?o?r.column(a.from):r.column(a.to):r.baseIndent+(o?0:r.unit*t)}var qr=r=>r.baseIndent;function Gr({except:r,units:e=1}={}){return t=>{let n=r&&r.test(t.textAfter);return t.baseIndent+(n?0:e*t.unit)}}var Jn=200;function Jr(){return ue.transactionFilter.of(r=>{if(!r.docChanged||!r.isUserEvent("input.type")&&!r.isUserEvent("input.complete"))return r;let e=r.startState.languageDataAt("indentOnInput",r.startState.selection.main.head);if(!e.length)return r;let t=r.newDoc,{head:n}=r.newSelection.main,i=t.lineAt(n);if(n>i.from+Jn)return r;let s=t.sliceString(i.from,n);if(!e.some(h=>h.test(s)))return r;let{state:l}=r,o=-1,a=[];for(let{head:h}of l.selection.ranges){let f=l.doc.lineAt(h);if(f.from==o)continue;o=f.from;let d=cn(l,f.from);if(d==null)continue;let g=/^\s*/.exec(f.text)[0],b=un(l,d);g!=b&&a.push({from:f.from,to:f.from+g.length,insert:b})}return a.length?[r,{changes:a,sequential:!0}]:r})}var Kn=W.define(),Qn=new k;function Kr(r){let e=r.firstChild,t=r.lastChild;return e&&e.to<t.from?{from:e.to,to:t.type.isError?r.to:t.from}:null}function Xn(r,e,t){let n=z(r);if(n.length<t)return null;let i=n.resolveStack(t,1),s=null;for(let l=i;l;l=l.next){let o=l.node;if(o.to<=t||o.from>t)continue;if(s&&o.from<e)break;let a=o.type.prop(Qn);if(a&&(o.to<n.length-50||n.length==r.doc.length||!Yn(o))){let h=a(o,r);h&&h.from<=t&&h.from>=e&&h.to>t&&(s=h)}}return s}function Yn(r){let e=r.lastChild;return e&&e.to==r.to&&e.type.isError}function Ie(r,e,t){for(let n of r.facet(Kn)){let i=n(r,e,t);if(i)return i}return Xn(r,e,t)}function mn(r,e){let t=e.mapPos(r.from,1),n=e.mapPos(r.to,-1);return t>=n?void 0:{from:t,to:n}}var Oe=me.define({map:mn}),pe=me.define({map:mn});function Ct(r){let e=[];for(let{head:t}of r.state.selection.ranges)e.some(n=>n.from<=t&&n.to>=t)||e.push(r.lineBlockAt(t));return e}var ne=Qe.define({create(){return R.none},update(r,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((n,i)=>r=Yt(r,n,i)),r=r.map(e.changes);let t=[];for(let n of e.effects)n.is(Oe)&&!Zn(r,n.value.from,n.value.to)?t.push(n.value):n.is(pe)&&(r=r.update({filter:(i,s)=>n.value.from!=i||n.value.to!=s,filterFrom:n.value.from,filterTo:n.value.to}));if(t.length){let{preparePlaceholder:n}=e.state.facet(Pt),i=t.map(s=>(n?R.replace({widget:new bt(n(e.state,s))}):Zt).range(s.from,s.to));r=r.update({add:i})}return e.selection&&(r=Yt(r,e.selection.main.head)),r},provide:r=>F.decorations.from(r),toJSON(r,e){let t=[];return r.between(0,e.doc.length,(n,i)=>{t.push(n,i)}),t},fromJSON(r){if(!Array.isArray(r)||r.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let t=0;t<r.length;){let n=r[t++],i=r[t++];if(typeof n!="number"||typeof i!="number")throw new RangeError("Invalid JSON for fold state");e.push(Zt.range(n,i))}return R.set(e,!0)}});function Yt(r,e,t=e){let n=!1;return r.between(e,t,(i,s)=>{i<t&&s>e&&(n=!0)}),n?r.update({filterFrom:e,filterTo:t,filter:(i,s)=>i>=t||s<=e}):r}function Qr(r){return r.field(ne,!1)||Ze.empty}function Be(r,e,t){var n;let i=null;return(n=r.field(ne,!1))===null||n===void 0||n.between(e,t,(s,l)=>{(!i||i.from>s)&&(i={from:s,to:l})}),i}function Zn(r,e,t){let n=!1;return r.between(e,e,(i,s)=>{i==e&&s==t&&(n=!0)}),n}function Tt(r,e){return r.field(ne,!1)?e:e.concat(me.appendConfig.of(kn()))}var er=r=>{for(let e of Ct(r)){let t=Ie(r.state,e.from,e.to);if(t)return r.dispatch({effects:Tt(r.state,[Oe.of(t),Ge(r,t)])}),!0}return!1},tr=r=>{if(!r.state.field(ne,!1))return!1;let e=[];for(let t of Ct(r)){let n=Be(r.state,t.from,t.to);n&&e.push(pe.of(n),Ge(r,n,!1))}return e.length&&r.dispatch({effects:e}),e.length>0};function Ge(r,e,t=!0){let n=r.state.doc.lineAt(e.from).number,i=r.state.doc.lineAt(e.to).number;return F.announce.of(`${r.state.phrase(t?"Folded lines":"Unfolded lines")} ${n} ${r.state.phrase("to")} ${i}.`)}var nr=r=>{let{state:e}=r,t=[];for(let n=0;n<e.doc.length;){let i=r.lineBlockAt(n),s=Ie(e,i.from,i.to);s&&t.push(Oe.of(s)),n=(s?r.lineBlockAt(s.to):i).to+1}return t.length&&r.dispatch({effects:Tt(r.state,t)}),!!t.length},rr=r=>{let e=r.state.field(ne,!1);if(!e||!e.size)return!1;let t=[];return e.between(0,r.state.doc.length,(n,i)=>{t.push(pe.of({from:n,to:i}))}),r.dispatch({effects:t}),!0};function ir(r,e){for(let t=e;;){let n=Ie(r.state,t.from,t.to);if(n&&n.to>e.from)return n;if(!t.from)return null;t=r.lineBlockAt(t.from-1)}}var Xr=r=>{let e=[];for(let t of Ct(r)){let n=Be(r.state,t.from,t.to);if(n)e.push(pe.of(n),Ge(r,n,!1));else{let i=ir(r,t);i&&e.push(Oe.of(i),Ge(r,i))}}return e.length>0&&r.dispatch({effects:Tt(r.state,e)}),!!e.length},Yr=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:er},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:tr},{key:"Ctrl-Alt-[",run:nr},{key:"Ctrl-Alt-]",run:rr}],sr={placeholderDOM:null,preparePlaceholder:null,placeholderText:"\u2026"},Pt=W.define({combine(r){return Ye(r,sr)}});function kn(r){let e=[ne,or];return r&&e.push(Pt.of(r)),e}function bn(r,e){let{state:t}=r,n=t.facet(Pt),i=l=>{let o=r.lineBlockAt(r.posAtDOM(l.target)),a=Be(r.state,o.from,o.to);a&&r.dispatch({effects:pe.of(a)}),l.preventDefault()};if(n.placeholderDOM)return n.placeholderDOM(r,i,e);let s=document.createElement("span");return s.textContent=n.placeholderText,s.setAttribute("aria-label",t.phrase("folded code")),s.title=t.phrase("unfold"),s.className="cm-foldPlaceholder",s.onclick=i,s}var Zt=R.replace({widget:new class extends tt{toDOM(r){return bn(r,null)}}}),bt=class extends tt{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return bn(e,this.value)}},lr={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1},Ce=class extends Et{constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}};function Zr(r={}){let e={...lr,...r},t=new Ce(e,!0),n=new Ce(e,!1),i=ce.fromClass(class{constructor(l){this.from=l.viewport.from,this.markers=this.buildMarkers(l)}update(l){(l.docChanged||l.viewportChanged||l.startState.facet(te)!=l.state.facet(te)||l.startState.field(ne,!1)!=l.state.field(ne,!1)||z(l.startState)!=z(l.state)||e.foldingChanged(l))&&(this.markers=this.buildMarkers(l.view))}buildMarkers(l){let o=new Re;for(let a of l.viewportLineBlocks){let h=Be(l.state,a.from,a.to)?n:Ie(l.state,a.from,a.to)?t:null;h&&o.add(a.from,a.from,h)}return o.finish()}}),{domEventHandlers:s}=e;return[i,Rt({class:"cm-foldGutter",markers(l){var o;return((o=l.plugin(i))===null||o===void 0?void 0:o.markers)||Ze.empty},initialSpacer(){return new Ce(e,!1)},domEventHandlers:{...s,click:(l,o,a)=>{if(s.click&&s.click(l,o,a))return!0;let h=Be(l.state,o.from,o.to);if(h)return l.dispatch({effects:pe.of(h)}),!0;let f=Ie(l.state,o.from,o.to);return f?(l.dispatch({effects:Oe.of(f)}),!0):!1}}}),kn()]}var or=F.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}}),Je=class r{constructor(e,t){this.specs=e;let n;function i(o){let a=et.newName();return(n||(n=Object.create(null)))["."+a]=o,a}let s=typeof t.all=="string"?t.all:t.all?i(t.all):void 0,l=t.scope;this.scope=l instanceof D?o=>o.prop(he)==l.data:l?o=>o==l:void 0,this.style=ct(e.map(o=>({tag:o.tag,class:o.class||i(Object.assign({},o,{tag:null}))})),{all:s}).style,this.module=n?new et(n):null,this.themeType=t.themeType}static define(e,t){return new r(e,t||{})}},yt=W.define(),yn=W.define({combine(r){return r.length?[r[0]]:null}});function $e(r){let e=r.facet(yt);return e.length?e:r.facet(yn)}function ei(r,e){let t=[ar],n;return r instanceof Je&&(r.module&&t.push(F.styleModule.of(r.module)),n=r.themeType),e?.fallback?t.push(yn.of(r)):n?t.push(yt.computeN([F.darkTheme],i=>i.facet(F.darkTheme)==(n=="dark")?[r]:[])):t.push(yt.of(r)),t}function ti(r,e,t){let n=$e(r),i=null;if(n){for(let s of n)if(!s.scope||t&&s.scope(t)){let l=s.style(e);l&&(i=i?i+" "+l:l)}}return i}var xt=class{constructor(e){this.markCache=Object.create(null),this.tree=z(e.state),this.decorations=this.buildDeco(e,$e(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=z(e.state),n=$e(e.state),i=n!=$e(e.startState),{viewport:s}=e.view,l=e.changes.mapPos(this.decoratedTo,1);t.length<s.to&&!i&&t.type==this.tree.type&&l>=s.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=l):(t!=this.tree||e.viewportChanged||i)&&(this.tree=t,this.decorations=this.buildDeco(e.view,n),this.decoratedTo=s.to)}buildDeco(e,t){if(!t||!this.tree.length)return R.none;let n=new Re;for(let{from:i,to:s}of e.visibleRanges)qt(this.tree,t,(l,o,a)=>{n.add(l,o,this.markCache[a]||(this.markCache[a]=R.mark({class:a})))},i,s);return n.finish()}},ar=Xe.high(ce.fromClass(xt,{decorations:r=>r.decorations})),ni=Je.define([{tag:c.meta,color:"#404740"},{tag:c.link,textDecoration:"underline"},{tag:c.heading,textDecoration:"underline",fontWeight:"bold"},{tag:c.emphasis,fontStyle:"italic"},{tag:c.strong,fontWeight:"bold"},{tag:c.strikethrough,textDecoration:"line-through"},{tag:c.keyword,color:"#708"},{tag:[c.atom,c.bool,c.url,c.contentSeparator,c.labelName],color:"#219"},{tag:[c.literal,c.inserted],color:"#164"},{tag:[c.string,c.deleted],color:"#a11"},{tag:[c.regexp,c.escape,c.special(c.string)],color:"#e40"},{tag:c.definition(c.variableName),color:"#00f"},{tag:c.local(c.variableName),color:"#30a"},{tag:[c.typeName,c.namespace],color:"#085"},{tag:c.className,color:"#167"},{tag:[c.special(c.variableName),c.macroName],color:"#256"},{tag:c.definition(c.propertyName),color:"#00c"},{tag:c.comment,color:"#940"},{tag:c.invalid,color:"#f00"}]),hr=F.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),xn=1e4,wn="()[]{}",vn=W.define({combine(r){return Ye(r,{afterCursor:!0,brackets:wn,maxScanDistance:xn,renderMatch:cr})}}),fr=R.mark({class:"cm-matchingBracket"}),ur=R.mark({class:"cm-nonmatchingBracket"});function cr(r){let e=[],t=r.matched?fr:ur;return e.push(t.range(r.start.from,r.start.to)),r.end&&e.push(t.range(r.end.from,r.end.to)),e}function en(r){let e=[],t=r.facet(vn);for(let n of r.selection.ranges){if(!n.empty)continue;let i=Ve(r,n.head,-1,t)||n.head>0&&Ve(r,n.head-1,1,t)||t.afterCursor&&(Ve(r,n.head,1,t)||n.head<r.doc.length&&Ve(r,n.head+1,-1,t));i&&(e=e.concat(t.renderMatch(i,r)))}return R.set(e,!0)}var dr=ce.fromClass(class{constructor(r){this.paused=!1,this.decorations=en(r.state)}update(r){(r.docChanged||r.selectionSet||this.paused)&&(r.view.composing?(this.decorations=this.decorations.map(r.changes),this.paused=!0):(this.decorations=en(r.state),this.paused=!1))}},{decorations:r=>r.decorations}),pr=[dr,hr];function ri(r={}){return[vn.of(r),pr]}var gr=new k;function wt(r,e,t){let n=r.prop(e<0?k.openedBy:k.closedBy);if(n)return n;if(r.name.length==1){let i=t.indexOf(r.name);if(i>-1&&i%2==(e<0?1:0))return[t[i+e]]}return null}function vt(r){let e=r.type.prop(gr);return e?e(r.node):r}function Ve(r,e,t,n={}){let i=n.maxScanDistance||xn,s=n.brackets||wn,l=z(r),o=l.resolveInner(e,t);for(let a=o;a;a=a.parent){let h=wt(a.type,t,s);if(h&&a.from<a.to){let f=vt(a);if(f&&(t>0?e>=f.from&&e<f.to:e>f.from&&e<=f.to))return mr(r,e,t,a,f,h,s)}}return kr(r,e,t,l,o.type,i,s)}function mr(r,e,t,n,i,s,l){let o=n.parent,a={from:i.from,to:i.to},h=0,f=o?.cursor();if(f&&(t<0?f.childBefore(n.from):f.childAfter(n.to)))do if(t<0?f.to<=n.from:f.from>=n.to){if(h==0&&s.indexOf(f.type.name)>-1&&f.from<f.to){let d=vt(f);return{start:a,end:d?{from:d.from,to:d.to}:void 0,matched:!0}}else if(wt(f.type,t,l))h++;else if(wt(f.type,-t,l)){if(h==0){let d=vt(f);return{start:a,end:d&&d.from<d.to?{from:d.from,to:d.to}:void 0,matched:!1}}h--}}while(t<0?f.prevSibling():f.nextSibling());return{start:a,matched:!1}}function kr(r,e,t,n,i,s,l){if(t<0?!e:e==r.doc.length)return null;let o=t<0?r.sliceDoc(e-1,e):r.sliceDoc(e,e+1),a=l.indexOf(o);if(a<0||a%2==0!=t>0)return null;let h={from:t<0?e-1:e,to:t>0?e+1:e},f=r.doc.iterRange(e,t>0?r.doc.length:0),d=0;for(let g=0;!f.next().done&&g<=s;){let b=f.value;t<0&&(g+=b.length);let w=e+g*t;for(let M=t>0?0:b.length-1,j=t>0?b.length:-1;M!=j;M+=t){let E=l.indexOf(b[M]);if(!(E<0||n.resolveInner(w+M,1).type!=i))if(E%2==0==t>0)d++;else{if(d==1)return{start:h,end:{from:w+M,to:w+M+1},matched:E>>1==a>>1};d--}}t>0&&(g+=b.length)}return f.done?{start:h,matched:!1}:null}function br(r){return{name:r.name||"",token:r.token,blankLine:r.blankLine||(()=>{}),startState:r.startState||(()=>!0),copyState:r.copyState||yr,indent:r.indent||(()=>null),languageData:r.languageData||{},tokenTable:r.tokenTable||It,mergeTokens:r.mergeTokens!==!1}}function yr(r){if(typeof r!="object")return r;let e={};for(let t in r){let n=r[t];e[t]=n instanceof Array?n.slice():n}return e}var tn=new WeakMap,nn=class r extends D{constructor(e){let t=on(e.languageData),n=br(e),i,s=new class extends ve{createParse(l,o,a){return new St(i,l,o,a)}};super(t,s,[],e.name),this.topNode=Sr(t,this),i=this,this.streamParser=n,this.stateAfter=new k({perNode:!0}),this.tokenTable=e.tokenTable?new Ke(n.tokenTable):vr}static define(e){return new r(e)}getIndent(e){let t,{overrideIndentation:n}=e.options;n&&(t=tn.get(e.state),t!=null&&t<e.pos-1e4&&(t=void 0));let i=Nt(this,e.node.tree,e.node.from,e.node.from,t??e.pos),s,l;if(i?(l=i.state,s=i.pos+1):(l=this.streamParser.startState(e.unit),s=e.node.from),e.pos-s>1e4)return null;for(;s<e.pos;){let a=e.state.doc.lineAt(s),h=Math.min(e.pos,a.to);if(a.length){let f=n?n(a.from):-1,d=new de(a.text,e.state.tabSize,e.unit,f<0?void 0:f);for(;d.pos<h-a.from;)An(this.streamParser.token,d,l)}else this.streamParser.blankLine(l,e.unit);if(h==e.pos)break;s=a.to+1}let o=e.lineAt(e.pos);return n&&t==null&&tn.set(e.state,o.from),this.streamParser.indent(l,/^\s*(.*)/.exec(o.text)[1],e)}get allowsNesting(){return!1}};function Nt(r,e,t,n,i){let s=t>=n&&t+e.length<=i&&e.prop(r.stateAfter);if(s)return{state:r.streamParser.copyState(s),pos:t+e.length};for(let l=e.children.length-1;l>=0;l--){let o=e.children[l],a=t+e.positions[l],h=o instanceof A&&a<i&&Nt(r,o,a,n,i);if(h)return h}return null}function Sn(r,e,t,n,i){if(i&&t<=0&&n>=e.length)return e;!i&&t==0&&e.type==r.topNode&&(i=!0);for(let s=e.children.length-1;s>=0;s--){let l=e.positions[s],o=e.children[s],a;if(l<n&&o instanceof A){if(!(a=Sn(r,o,t-l,n-l,i)))break;return i?new A(e.type,e.children.slice(0,s).concat(a),e.positions.slice(0,s+1),l+a.length):a}}return null}function xr(r,e,t,n,i){for(let s of e){let l=s.from+(s.openStart?25:0),o=s.to-(s.openEnd?25:0),a=l<=t&&o>t&&Nt(r,s.tree,0-s.offset,t,o),h;if(a&&a.pos<=n&&(h=Sn(r,s.tree,t+s.offset,a.pos+s.offset,!1)))return{state:a.state,tree:h}}return{state:r.streamParser.startState(i?qe(i):4),tree:A.empty}}var St=class{constructor(e,t,n,i){this.lang=e,this.input=t,this.fragments=n,this.ranges=i,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=i[i.length-1].to;let s=Te.get(),l=i[0].from,{state:o,tree:a}=xr(e,n,l,this.to,s?.state);this.state=o,this.parsedPos=this.chunkStart=l+a.length;for(let h=0;h<a.children.length;h++)this.chunks.push(a.children[h]),this.chunkPos.push(a.positions[h]);s&&this.parsedPos<s.viewport.from-1e5&&i.some(h=>h.from<=s.viewport.from&&h.to>=s.viewport.from)&&(this.state=this.lang.streamParser.startState(qe(s.state)),s.skipUntilInView(this.parsedPos,s.viewport.from),this.parsedPos=s.viewport.from),this.moveRangeIndex()}advance(){let e=Te.get(),t=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),n=Math.min(t,this.chunkStart+512);for(e&&(n=Math.min(n,e.viewport.to));this.parsedPos<n;)this.parseLine(e);return this.chunkStart<this.parsedPos&&this.finishChunk(),this.parsedPos>=t?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,t),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let t=this.input.chunk(e);if(this.input.lineChunks)t==` +`&&(t="");else{let n=t.indexOf(` +`);n>-1&&(t=t.slice(0,n))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),n=e+t.length;for(let i=this.rangeIndex;;){let s=this.ranges[i].to;if(s>=n||(t=t.slice(0,s-(n-t.length)),i++,i==this.ranges.length))break;let l=this.ranges[i].from,o=this.lineAfter(l);t+=o,n=l+o.length}return{line:t,end:n}}skipGapsTo(e,t,n){for(;;){let i=this.ranges[this.rangeIndex].to,s=e+t;if(n>0?i>s:i>=s)break;let l=this.ranges[++this.rangeIndex].from;t+=l-i}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to<this.parsedPos;)this.rangeIndex++}emitToken(e,t,n,i){let s=4;if(this.ranges.length>1){i=this.skipGapsTo(t,i,1),t+=i;let o=this.chunk.length;i=this.skipGapsTo(n,i,-1),n+=i,s+=this.chunk.length-o}let l=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&s==4&&l>=0&&this.chunk[l]==e&&this.chunk[l+2]==t?this.chunk[l+2]=n:this.chunk.push(e,t,n,s),i}parseLine(e){let{line:t,end:n}=this.nextLine(),i=0,{streamParser:s}=this.lang,l=new de(t,e?e.state.tabSize:4,e?qe(e.state):2);if(l.eol())s.blankLine(this.state,l.indentUnit);else for(;!l.eol();){let o=An(s.token,l,this.state);if(o&&(i=this.emitToken(this.lang.tokenTable.resolve(o),this.parsedPos+l.start,this.parsedPos+l.pos,i)),l.start>1e4)break}this.parsedPos=n,this.moveRangeIndex(),this.parsedPos<this.to&&this.parsedPos++}finishChunk(){let e=A.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet:wr,topID:0,maxBufferLength:512,reused:this.chunkReused});e=new A(e.type,e.children,e.positions,e.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]),this.chunks.push(e),this.chunkPos.push(this.chunkStart-this.ranges[0].from),this.chunk=[],this.chunkReused=void 0,this.chunkStart=this.parsedPos}finish(){return new A(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}};function An(r,e,t){e.start=e.pos;for(let n=0;n<10;n++){let i=r(e,t);if(e.pos>e.start)return i}throw new Error("Stream parser failed to advance stream.")}var It=Object.create(null),Me=[_.none],wr=new Fe(Me),rn=[],sn=Object.create(null),Cn=Object.create(null);for(let[r,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])Cn[r]=Tn(It,e);var Ke=class{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),Cn)}resolve(e){return e?this.table[e]||(this.table[e]=Tn(this.extra,e)):0}},vr=new Ke(It);function gt(r,e){rn.indexOf(r)>-1||(rn.push(r),console.warn(e))}function Tn(r,e){let t=[];for(let o of e.split(" ")){let a=[];for(let h of o.split(".")){let f=r[h]||c[h];f?typeof f=="function"?a.length?a=a.map(f):gt(h,`Modifier ${h} used at start of tag`):a.length?gt(h,`Tag ${h} used as modifier`):a=Array.isArray(f)?f:[f]:gt(h,`Unknown highlighting tag ${h}`)}for(let h of a)t.push(h)}if(!t.length)return 0;let n=e.replace(/ /g,"_"),i=n+" "+t.map(o=>o.id),s=sn[i];if(s)return s.id;let l=sn[i]=_.define({id:Me.length,name:n,props:[Vt({[n]:t})]});return Me.push(l),l.id}function Sr(r,e){let t=_.define({id:Me.length,name:"Document",props:[he.add(()=>r),dn.add(()=>n=>e.getIndent(n))],top:!0});return Me.push(t),t}function Pn(r){return r.length<=4096&&/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/.test(r)}function Nn(r){for(let e=r.iter();!e.next().done;)if(Pn(e.value))return!0;return!1}function Ar(r){let e=!1;return r.iterChanges((t,n,i,s,l)=>{!e&&Nn(l)&&(e=!0)}),e}var At=W.define({combine:r=>r.some(e=>e)});function ii(r={}){let e=[Cr];return r.alwaysIsolate&&e.push(At.of(!0)),e}var Cr=ce.fromClass(class{constructor(r){this.always=r.state.facet(At)||r.textDirection!=ke.LTR||r.state.facet(F.perLineTextDirection),this.hasRTL=!this.always&&Nn(r.state.doc),this.tree=z(r.state),this.decorations=this.always||this.hasRTL?ln(r,this.tree,this.always):R.none}update(r){let e=r.state.facet(At)||r.view.textDirection!=ke.LTR||r.state.facet(F.perLineTextDirection);if(!e&&!this.hasRTL&&Ar(r.changes)&&(this.hasRTL=!0),!e&&!this.hasRTL)return;let t=z(r.state);(e!=this.always||t!=this.tree||r.docChanged||r.viewportChanged)&&(this.tree=t,this.always=e,this.decorations=ln(r.view,t,e))}},{provide:r=>{function e(t){var n,i;return(i=(n=t.plugin(r))===null||n===void 0?void 0:n.decorations)!==null&&i!==void 0?i:R.none}return[F.outerDecorations.of(e),Xe.lowest(F.bidiIsolatedRanges.of(e))]}});function ln(r,e,t){let n=new Re,i=r.visibleRanges;t||(i=Tr(i,r.state.doc));for(let{from:s,to:l}of i)e.iterate({enter:o=>{let a=o.type.prop(k.isolate);a&&n.add(o.from,o.to,Pr[a])},from:s,to:l});return n.finish()}function Tr(r,e){let t=e.iter(),n=0,i=[],s=null;for(let{from:l,to:o}of r)if(!(s&&s.to>l&&(l=s.to,l>=o)))for(n+t.value.length<l&&(t.next(l-(n+t.value.length)),n=l);;){let a=n,h=n+t.value.length;if(!t.lineBreak&&Pn(t.value)&&(s&&s.to>a-10?s.to=Math.min(o,h):i.push(s={from:a,to:Math.min(o,h)})),h>=o)break;n=h,t.next()}return i}var Pr={rtl:R.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:ke.RTL}),ltr:R.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:ke.LTR}),auto:R.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};export{k as a,c as b,de as c,he as d,on as e,zn as f,D as g,Jt as h,z as i,jn as j,jr as k,Ur as l,Wr as m,mt as n,Te as o,te as p,Qt as q,Xt as r,Un as s,fn as t,qe as u,un as v,cn as w,Vr as x,Ne as y,dn as z,kt as A,$r as B,qr as C,Gr as D,Jr as E,Kn as F,Qn as G,Kr as H,Ie as I,Oe as J,pe as K,ne as L,Qr as M,er as N,tr as O,nr as P,rr as Q,Xr as R,Yr as S,kn as T,Zr as U,Je as V,ei as W,ti as X,ni as Y,ri as Z,gr as _,Ve as $,nn as aa,ii as ba}; diff --git a/assets/cm/commands.js b/assets/cm/commands.js new file mode 100644 index 0000000..dadb2f3 --- /dev/null +++ b/assets/cm/commands.js @@ -0,0 +1 @@ +import{$ as M,a as N,i as P,t as Ae,u as J,v as I,w as te,y as ne}from"./chunk-JULZPKSW.js";import{f as Se,l as x}from"./chunk-I3OVNVKL.js";import{B as V,a as Z,c as L,h as pe,i as ge,k as h,l as _,m as ye,p as j,s as ee,t as G,u as C,w as ke}from"./chunk-7PWEZHZB.js";var it=e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=ie(e.state,n.from);return r.line?ut(e):r.block?at(e):!1};function E(e,t){return({state:n,dispatch:r})=>{if(n.readOnly)return!1;let l=e(t,n);return l?(r(n.update(l)),!0):!1}}var ut=E(ue,0),An=E(ue,1),Bn=E(ue,2),ft=E(H,0),Cn=E(H,1),Dn=E(H,2),at=E((e,t)=>H(e,t,dt(t)),0);function ie(e,t){let n=e.languageDataAt("commentTokens",t,1);return n.length?n[0]:{}}var R=50;function ht(e,{open:t,close:n},r,l){let o=e.sliceDoc(r-R,r),c=e.sliceDoc(l,l+R),s=/\s*$/.exec(o)[0].length,i=/^\s*/.exec(c)[0].length,f=o.length-s;if(o.slice(f-t.length,f)==t&&c.slice(i,i+n.length)==n)return{open:{pos:r-s,margin:s&&1},close:{pos:l+i,margin:i&&1}};let u,a;l-r<=2*R?u=a=e.sliceDoc(r,l):(u=e.sliceDoc(r,r+R),a=e.sliceDoc(l-R,l));let d=/^\s*/.exec(u)[0].length,S=/\s*$/.exec(a)[0].length,y=a.length-S-n.length;return u.slice(d,d+t.length)==t&&a.slice(y,y+n.length)==n?{open:{pos:r+d+t.length,margin:/\s/.test(u.charAt(d+t.length))?1:0},close:{pos:l-S-n.length,margin:/\s/.test(a.charAt(y-1))?1:0}}:null}function dt(e){let t=[];for(let n of e.selection.ranges){let r=e.doc.lineAt(n.from),l=n.to<=r.to?r:e.doc.lineAt(n.to);l.from>r.from&&l.from==n.to&&(l=n.to==r.to+1?r:e.doc.lineAt(n.to-1));let o=t.length-1;o>=0&&t[o].to>r.from?t[o].to=l.to:t.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:l.to})}return t}function H(e,t,n=t.selection.ranges){let r=n.map(o=>ie(t,o.from).block);if(!r.every(o=>o))return null;let l=n.map((o,c)=>ht(t,r[c],o.from,o.to));if(e!=2&&!l.every(o=>o))return{changes:t.changes(n.map((o,c)=>l[c]?[]:[{from:o.from,insert:r[c].open+" "},{from:o.to,insert:" "+r[c].close}]))};if(e!=1&&l.some(o=>o)){let o=[];for(let c=0,s;c<l.length;c++)if(s=l[c]){let i=r[c],{open:f,close:u}=s;o.push({from:f.pos-i.open.length,to:f.pos+f.margin},{from:u.pos-u.margin,to:u.pos+i.close.length})}return{changes:o}}return null}function ue(e,t,n=t.selection.ranges){let r=[],l=-1;e:for(let{from:o,to:c}of n){let s=r.length,i=1e9,f;for(let u=o;u<=c;){let a=t.doc.lineAt(u);if(f==null&&(f=ie(t,a.from).line,!f))continue e;if(a.from>l&&(o==c||c>a.from)){l=a.from;let d=/^\s*/.exec(a.text)[0].length,S=d==a.length,y=a.text.slice(d,d+f.length)==f?d:-1;d<a.text.length&&d<i&&(i=d),r.push({line:a,comment:y,token:f,indent:d,empty:S,single:!1})}u=a.to+1}if(i<1e9)for(let u=s;u<r.length;u++)r[u].indent<r[u].line.text.length&&(r[u].indent=i);r.length==s+1&&(r[s].single=!0)}if(e!=2&&r.some(o=>o.comment<0&&(!o.empty||o.single))){let o=[];for(let{line:s,token:i,indent:f,empty:u,single:a}of r)(a||!u)&&o.push({from:s.from+f,insert:i+" "});let c=t.changes(o);return{changes:c,selection:t.selection.map(c,1)}}else if(e!=1&&r.some(o=>o.comment>=0)){let o=[];for(let{line:c,comment:s,token:i}of r)if(s>=0){let f=c.from+s,u=f+i.length;c.text[u-c.from]==" "&&u++,o.push({from:f,to:u})}return{changes:o}}return null}var oe=j.define(),mt=j.define(),pt=_.define(),Oe=_.define({combine(e){return ke(e,{minDepth:100,newGroupDelay:500,joinToEvent:(t,n)=>n},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(t,n)=>(r,l)=>t(r,l)||n(r,l)})}}),F=ye.define({create(){return b.empty},update(e,t){let n=t.state.facet(Oe),r=t.annotation(oe);if(r){let i=A.fromTransaction(t,r.selection),f=r.side,u=f==0?e.undone:e.done;return i?u=z(u,u.length,n.minDepth,i):u=Ue(u,t.startState.selection),new b(f==0?r.rest:u,f==0?u:r.rest)}let l=t.annotation(mt);if((l=="full"||l=="before")&&(e=e.isolate()),t.annotation(G.addToHistory)===!1)return t.changes.empty?e:e.addMapping(t.changes.desc);let o=A.fromTransaction(t),c=t.annotation(G.time),s=t.annotation(G.userEvent);return o?e=e.addChanges(o,c,s,n,t):t.selection&&(e=e.addSelection(t.startState.selection,c,s,n.newGroupDelay)),(l=="full"||l=="after")&&(e=e.isolate()),e},toJSON(e){return{done:e.done.map(t=>t.toJSON()),undone:e.undone.map(t=>t.toJSON())}},fromJSON(e){return new b(e.done.map(A.fromJSON),e.undone.map(A.fromJSON))}});function Ln(e={}){return[F,Oe.of(e),x.domEventHandlers({beforeinput(t,n){let r=t.inputType=="historyUndo"?ve:t.inputType=="historyRedo"?le:null;return r?(t.preventDefault(),r(n)):!1}})]}var xn=F;function W(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return!1;let l=n.field(F,!1);if(!l)return!1;let o=l.pop(e,n,t);return o?(r(o),!0):!1}}var ve=W(0,!1),le=W(1,!1),gt=W(0,!0),yt=W(1,!0);function Ie(e){return function(t){let n=t.field(F,!1);if(!n)return 0;let r=e==0?n.done:n.undone;return r.length-(r.length&&!r[0].changes?1:0)}}var Mn=Ie(0),bn=Ie(1);function Re(e){return function(t){let n=t.field(F,!1);if(!n)return!1;let r=e==0?n.done:n.undone;return r.length>0&&r[0].selectionsAfter.length>0}}var En=Re(0),Tn=Re(0),A=class e{constructor(t,n,r,l,o){this.changes=t,this.effects=n,this.mapped=r,this.startSelection=l,this.selectionsAfter=o}setSelAfter(t){return new e(this.changes,this.effects,this.mapped,this.startSelection,t)}toJSON(){var t,n,r;return{changes:(t=this.changes)===null||t===void 0?void 0:t.toJSON(),mapped:(n=this.mapped)===null||n===void 0?void 0:n.toJSON(),startSelection:(r=this.startSelection)===null||r===void 0?void 0:r.toJSON(),selectionsAfter:this.selectionsAfter.map(l=>l.toJSON())}}static fromJSON(t){return new e(t.changes&&ge.fromJSON(t.changes),[],t.mapped&&pe.fromJSON(t.mapped),t.startSelection&&h.fromJSON(t.startSelection),t.selectionsAfter.map(h.fromJSON))}static fromTransaction(t,n){let r=k;for(let l of t.startState.facet(pt)){let o=l(t);o.length&&(r=r.concat(o))}return!r.length&&t.changes.empty?null:new e(t.changes.invert(t.startState.doc),r,void 0,n||t.startState.selection,k)}static selection(t){return new e(void 0,k,void 0,void 0,t)}};function z(e,t,n,r){let l=t+1>n+20?t-n-1:0,o=e.slice(l,t);return o.push(r),o}function kt(e,t){let n=[],r=!1;return e.iterChangedRanges((l,o)=>n.push(l,o)),t.iterChangedRanges((l,o,c,s)=>{for(let i=0;i<n.length;){let f=n[i++],u=n[i++];s>=f&&c<=u&&(r=!0)}}),r}function St(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter((n,r)=>n.empty!=t.ranges[r].empty).length===0}function Fe(e,t){return e.length?t.length?e.concat(t):e:t}var k=[],At=200;function Ue(e,t){if(e.length){let n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-At));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),z(e,e.length-1,1e9,n.setSelAfter(r)))}else return[A.selection([t])]}function Bt(e){let t=e[e.length-1],n=e.slice();return n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),n}function re(e,t){if(!e.length)return e;let n=e.length,r=k;for(;n;){let l=Ct(e[n-1],t,r);if(l.changes&&!l.changes.empty||l.effects.length){let o=e.slice(0,n);return o[n-1]=l,o}else t=l.mapped,n--,r=l.selectionsAfter}return r.length?[A.selection(r)]:k}function Ct(e,t,n){let r=Fe(e.selectionsAfter.length?e.selectionsAfter.map(s=>s.map(t)):k,n);if(!e.changes)return A.selection(r);let l=e.changes.map(t),o=t.mapDesc(e.changes,!0),c=e.mapped?e.mapped.composeDesc(o):o;return new A(l,ee.mapEffects(e.effects,t),c,e.startSelection.map(o),r)}var Dt=/^(input\.type|delete)($|\.)/,b=class e{constructor(t,n,r=0,l=void 0){this.done=t,this.undone=n,this.prevTime=r,this.prevUserEvent=l}isolate(){return this.prevTime?new e(this.done,this.undone):this}addChanges(t,n,r,l,o){let c=this.done,s=c[c.length-1];return s&&s.changes&&!s.changes.empty&&t.changes&&(!r||Dt.test(r))&&(!s.selectionsAfter.length&&n-this.prevTime<l.newGroupDelay&&l.joinToEvent(o,kt(s.changes,t.changes))||r=="input.type.compose")?c=z(c,c.length-1,l.minDepth,new A(t.changes.compose(s.changes),Fe(ee.mapEffects(t.effects,s.changes),s.effects),s.mapped,s.startSelection,k)):c=z(c,c.length,l.minDepth,t),new e(c,k,n,r)}addSelection(t,n,r,l){let o=this.done.length?this.done[this.done.length-1].selectionsAfter:k;return o.length>0&&n-this.prevTime<l&&r==this.prevUserEvent&&r&&/^select($|\.)/.test(r)&&St(o[o.length-1],t)?this:new e(Ue(this.done,t),this.undone,n,r)}addMapping(t){return new e(re(this.done,t),re(this.undone,t),this.prevTime,this.prevUserEvent)}pop(t,n,r){let l=t==0?this.done:this.undone;if(l.length==0)return null;let o=l[l.length-1],c=o.selectionsAfter[0]||(o.startSelection?o.startSelection.map(o.changes.invertedDesc,1):n.selection);if(r&&o.selectionsAfter.length)return n.update({selection:o.selectionsAfter[o.selectionsAfter.length-1],annotations:oe.of({side:t,rest:Bt(l),selection:c}),userEvent:t==0?"select.undo":"select.redo",scrollIntoView:!0});if(o.changes){let s=l.length==1?k:l.slice(0,l.length-1);return o.mapped&&(s=re(s,o.mapped)),n.update({changes:o.changes,selection:o.startSelection,effects:o.effects,annotations:oe.of({side:t,rest:s,selection:c}),filter:!1,userEvent:t==0?"undo":"redo",scrollIntoView:!0})}else return null}};b.empty=new b(k,k);var On=[{key:"Mod-z",run:ve,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:le,preventDefault:!0},{linux:"Ctrl-Shift-z",run:le,preventDefault:!0},{key:"Mod-u",run:gt,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:yt,preventDefault:!0}];function v(e,t){return h.create(e.ranges.map(t),e.mainIndex)}function B(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function g({state:e,dispatch:t},n){let r=v(e.selection,n);return r.eq(e.selection,!0)?!1:(t(B(e,r)),!0)}function T(e,t){return h.cursor(t?e.to:e.from)}function q(e,t){return g(e,n=>n.empty?e.moveByChar(n,t):T(n,t))}function m(e){return e.textDirectionAt(e.state.selection.main.head)==Se.LTR}var Ge=e=>q(e,!m(e)),Ve=e=>q(e,m(e)),vn=e=>q(e,!0),In=e=>q(e,!1);function fe(e,t,n){let r=t.head,l=e.doc.lineAt(r);return r==(n?l.to:l.from)?r=n?Math.min(e.doc.length,l.to+1):Math.max(0,l.from-1):r=l.from+L(l.text,r-l.from,n),h.cursor(r,n?-1:1)}function Ne(e,t){return g(e,n=>n.empty?fe(e.state,n,t):T(n,t))}var Rn=e=>Ne(e,!0),Fn=e=>Ne(e,!1);function K(e,t){return g(e,n=>n.empty?e.moveByGroup(n,t):T(n,t))}var Lt=e=>K(e,!m(e)),xt=e=>K(e,m(e)),Un=e=>K(e,!0),Gn=e=>K(e,!1);function ae(e,t,n){let r=e.state.charCategorizer(t),l=r(n),o=l!=C.Space;return c=>{let s=r(c);return s!=C.Space?o&&s==l:(o=!1,!0)}}var Vn=e=>g(e,t=>t.empty?e.moveByChar(t,!0,n=>ae(e,t.head,n)):T(t,!0)),Be=typeof Intl<"u"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function Pe(e,t,n){let r=e.state.charCategorizer(t.from),l=C.Space,o=t.from,c=0,s=!1,i=!1,f=!1,u=d=>{if(s)return!1;o+=n?d.length:-d.length;let S=r(d),y;if(S==C.Word&&d.charCodeAt(0)<128&&/[\W_]/.test(d)&&(S=-1),l==C.Space&&(l=S),l!=S)return!1;if(l==C.Word)if(d.toLowerCase()==d){if(!n&&i)return!1;f=!0}else if(f){if(n)return!1;s=!0}else{if(i&&n&&r(y=e.state.sliceDoc(o,o+1))==C.Word&&y.toLowerCase()==y)return!1;i=!0}return c++,!0},a=e.moveByChar(t,n,d=>(u(d),u));if(Be&&l==C.Word&&a.from==t.from+c*(n?1:-1)){let d=Math.min(t.head,a.head),S=Math.max(t.head,a.head),y=e.state.sliceDoc(d,S);if(y.length>1&&/[\u4E00-\uffff]/.test(y)){let U=Array.from(Be.segment(y));if(U.length>1)return n?h.cursor(t.head+U[1].index,-1):h.cursor(a.head+U[U.length-1].index,1)}}return a}function Je(e,t){return g(e,n=>n.empty?Pe(e,n,t):T(n,t))}var Nn=e=>Je(e,!0),Pn=e=>Je(e,!1);function Mt(e,t,n){if(t.type.prop(n))return!0;let r=t.to-t.from;return r&&(r>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function $(e,t,n){let r=P(e).resolveInner(t.head),l=n?N.closedBy:N.openedBy;for(let i=t.head;;){let f=n?r.childAfter(i):r.childBefore(i);if(!f)break;Mt(e,f,l)?r=f:i=n?f.to:f.from}let o=r.type.prop(l),c,s;return o&&(c=n?M(e,r.from,1):M(e,r.to,-1))&&c.matched?s=n?c.end.to:c.end.from:s=n?r.to:r.from,h.cursor(s,n?-1:1)}var bt=e=>g(e,t=>$(e.state,t,!m(e))),Et=e=>g(e,t=>$(e.state,t,m(e)));function we(e,t){return g(e,n=>{if(!n.empty)return T(n,t);let r=e.moveVertically(n,t);return r.head!=n.head?r:e.moveToLineBoundary(n,t)})}var ze=e=>we(e,!1),He=e=>we(e,!0);function We(e){let t=e.scrollDOM.clientHeight<e.scrollDOM.scrollHeight-2,n=0,r=0,l;if(t){for(let o of e.state.facet(x.scrollMargins)){let c=o(e);c?.top&&(n=Math.max(c?.top,n)),c?.bottom&&(r=Math.max(c?.bottom,r))}l=e.scrollDOM.clientHeight-n-r}else l=(e.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:n,marginBottom:r,selfScroll:t,height:Math.max(e.defaultLineHeight,l-5)}}function qe(e,t){let n=We(e),{state:r}=e,l=v(r.selection,c=>c.empty?e.moveVertically(c,t,n.height):T(c,t));if(l.eq(r.selection))return!1;let o;if(n.selfScroll){let c=e.coordsAtPos(r.selection.main.head),s=e.scrollDOM.getBoundingClientRect(),i=s.top+n.marginTop,f=s.bottom-n.marginBottom;c&&c.top>i&&c.bottom<f&&(o=x.scrollIntoView(l.main.head,{y:"start",yMargin:c.top-i}))}return e.dispatch(B(r,l),{effects:o}),!0}var Ce=e=>qe(e,!1),ce=e=>qe(e,!0);function D(e,t,n){let r=e.lineBlockAt(t.head),l=e.moveToLineBoundary(t,n);if(l.head==t.head&&l.head!=(n?r.to:r.from)&&(l=e.moveToLineBoundary(t,n,!1)),!n&&l.head==r.from&&r.length){let o=/^\s*/.exec(e.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;o&&t.head!=r.from+o&&(l=h.cursor(r.from+o))}return l}var Tt=e=>g(e,t=>D(e,t,!0)),Ot=e=>g(e,t=>D(e,t,!1)),vt=e=>g(e,t=>D(e,t,!m(e))),It=e=>g(e,t=>D(e,t,m(e))),Rt=e=>g(e,t=>e.moveToLineBoundary(t,!1,!1)),Ft=e=>g(e,t=>e.moveToLineBoundary(t,!0,!1));function Ke(e,t,n){let r=!1,l=v(e.selection,o=>{let c=M(e,o.head,-1)||M(e,o.head,1)||o.head>0&&M(e,o.head-1,1)||o.head<e.doc.length&&M(e,o.head+1,-1);if(!c||!c.end)return o;r=!0;let s=c.start.from==o.head?c.end.to:c.end.from;return n?h.range(o.anchor,s):h.cursor(s)});return r?(t(B(e,l)),!0):!1}var Ut=({state:e,dispatch:t})=>Ke(e,t,!1),Jn=({state:e,dispatch:t})=>Ke(e,t,!0);function p(e,t,n){let r=v(e.state.selection,l=>{l.undirectional&&l.head>=l.anchor!=t&&(l=h.range(l.head,l.anchor));let o=n(l);return h.range(l.anchor,o.head,o.goalColumn,o.bidiLevel||void 0,o.assoc)});return r.eq(e.state.selection)?!1:(e.dispatch(B(e.state,r)),!0)}function Q(e,t){return p(e,t,n=>e.moveByChar(n,t))}var $e=e=>Q(e,!m(e)),Qe=e=>Q(e,m(e)),wn=e=>Q(e,!0),zn=e=>Q(e,!1),Hn=e=>p(e,!0,t=>fe(e.state,t,!0)),Wn=e=>p(e,!1,t=>fe(e.state,t,!1));function X(e,t){return p(e,t,n=>e.moveByGroup(n,t))}var Gt=e=>X(e,!m(e)),Vt=e=>X(e,m(e)),qn=e=>X(e,!0),Kn=e=>X(e,!1),$n=e=>p(e,!0,t=>e.moveByChar(t,!0,n=>ae(e,t.head,n)));function Xe(e,t){return p(e,t,n=>Pe(e,n,t))}var Qn=e=>Xe(e,!0),Xn=e=>Xe(e,!1),Nt=e=>{let t=!m(e);return p(e,t,n=>$(e.state,n,t))},Pt=e=>{let t=m(e);return p(e,t,n=>$(e.state,n,t))};function Ye(e,t){return p(e,t,n=>e.moveVertically(n,t))}var Ze=e=>Ye(e,!1),_e=e=>Ye(e,!0);function je(e,t){return p(e,t,n=>e.moveVertically(n,t,We(e).height))}var De=e=>je(e,!1),Le=e=>je(e,!0),Jt=e=>p(e,!0,t=>D(e,t,!0)),wt=e=>p(e,!1,t=>D(e,t,!1)),zt=e=>{let t=!m(e);return p(e,t,n=>D(e,n,t))},Ht=e=>{let t=m(e);return p(e,t,n=>D(e,n,t))},Wt=e=>p(e,!1,t=>h.cursor(e.lineBlockAt(t.head).from)),qt=e=>p(e,!0,t=>h.cursor(e.lineBlockAt(t.head).to)),xe=({state:e,dispatch:t})=>(t(B(e,{anchor:0})),!0),Me=({state:e,dispatch:t})=>(t(B(e,{anchor:e.doc.length})),!0),be=({state:e,dispatch:t})=>(t(B(e,{anchor:e.selection.main.anchor,head:0})),!0),Ee=({state:e,dispatch:t})=>(t(B(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),Kt=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"})),!0),$t=({state:e,dispatch:t})=>{let n=Y(e).map(({from:r,to:l})=>h.undirectionalRange(r,Math.min(l+1,e.doc.length)));return t(e.update({selection:h.create(n),userEvent:"select"})),!0},Qt=({state:e,dispatch:t})=>{let n=v(e.selection,r=>{let l=P(e),o=l.resolveStack(r.from,1);if(r.empty){let c=l.resolveStack(r.from,-1);c.node.from>=o.node.from&&c.node.to<=o.node.to&&(o=c)}for(let c=o;c;c=c.next){let{node:s}=c;if((s.from<r.from&&s.to>=r.to||s.to>r.to&&s.from<=r.from)&&c.next)return h.undirectionalRange(s.from,s.to)}return r});return n.eq(e.selection)?!1:(t(B(e,n)),!0)};function et(e,t){let{state:n}=e,r=n.selection,l=n.selection.ranges.slice();for(let o of n.selection.ranges){let c=n.doc.lineAt(o.head);if(t?c.to<e.state.doc.length:c.from>0)for(let s=o;;){let i=e.moveVertically(s,t);if(i.head<c.from||i.head>c.to){l.some(f=>f.head==i.head)||l.push(i);break}else{if(i.head==s.head)break;s=i}}}return l.length==r.ranges.length?!1:(e.dispatch(B(n,h.create(l,l.length-1))),!0)}var Xt=e=>et(e,!1),Yt=e=>et(e,!0),Zt=({state:e,dispatch:t})=>{let n=e.selection,r=null;return n.ranges.length>1?r=h.create([n.main]):n.main.empty||(r=h.create([h.cursor(n.main.head)])),r?(t(B(e,r)),!0):!1};function O(e,t){if(e.state.readOnly)return!1;let n="delete.selection",{state:r}=e,l=r.changeByRange(o=>{let{from:c,to:s}=o;if(c==s){let i=t(o);i<c?(n="delete.backward",i=w(e,i,!1)):i>c&&(n="delete.forward",i=w(e,i,!0)),c=Math.min(c,i),s=Math.max(s,i)}else c=w(e,c,!1),s=w(e,s,!0);return c==s?{range:o}:{changes:{from:c,to:s},range:h.cursor(c,c<o.head?-1:1)}});return l.changes.empty?!1:(e.dispatch(r.update(l,{scrollIntoView:!0,userEvent:n,effects:n=="delete.selection"?x.announce.of(r.phrase("Selection deleted")):void 0})),!0)}function w(e,t,n){if(e instanceof x)for(let r of e.state.facet(x.atomicRanges).map(l=>l(e)))r.between(t,t,(l,o)=>{l<t&&o>t&&(t=n?o:l)});return t}var he=(e,t,n)=>O(e,r=>{let l=r.from,{state:o}=e,c=o.doc.lineAt(l),s,i;if(n&&!t&&l>c.from&&l<c.from+200&&!/[^ \t]/.test(s=c.text.slice(0,l-c.from))){if(s[s.length-1]==" ")return l-1;let f=V(s,o.tabSize),u=f%J(o)||J(o);for(let a=0;a<u&&s[s.length-1-a]==" ";a++)l--;i=l}else i=L(c.text,l-c.from,t,t)+c.from,i==l&&c.number!=(t?o.doc.lines:1)?i+=t?1:-1:!t&&/[\ufe00-\ufe0f]/.test(c.text.slice(i-c.from,l-c.from))&&(i=L(c.text,i-c.from,!1,!1)+c.from);return i}),se=e=>he(e,!1,!0),Yn=e=>he(e,!1,!1),tt=e=>he(e,!0,!1),nt=(e,t)=>O(e,n=>{let r=n.head,{state:l}=e,o=l.doc.lineAt(r),c=l.charCategorizer(r);for(let s=null;;){if(r==(t?o.to:o.from)){r==n.head&&o.number!=(t?l.doc.lines:1)&&(r+=t?1:-1);break}let i=L(o.text,r-o.from,t)+o.from,f=o.text.slice(Math.min(r,i)-o.from,Math.max(r,i)-o.from),u=c(f);if(s!=null&&u!=s)break;(f!=" "||r!=n.head)&&(s=u),r=i}return r}),rt=e=>nt(e,!1),_t=e=>nt(e,!0),Zn=e=>O(e,t=>e.moveByChar(t,!0,n=>ae(e,t.head,n)).head),jt=e=>O(e,t=>{let n=e.lineBlockAt(t.head).to;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),_n=e=>O(e,t=>{let n=e.lineBlockAt(t.head).from;return t.head>n?n:Math.max(0,t.head-1)}),en=e=>O(e,t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}),tn=e=>O(e,t=>{let n=e.moveToLineBoundary(t,!0).head;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),jn=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=[];for(let r=0,l="",o=e.doc.iter();;){if(o.next(),o.lineBreak||o.done){let c=l.search(/\s+$/);if(c>-1&&n.push({from:r-(l.length-c),to:r}),o.done)break;l=""}else l=o.value;r+=o.value.length}return n.length?(t(e.update({changes:n,userEvent:"delete"})),!0):!1},nn=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(r=>({changes:{from:r.from,to:r.to,insert:Z.of(["",""])},range:h.cursor(r.from)}));return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},rn=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(r=>{if(!r.empty||r.from==0||r.from==e.doc.length)return{range:r};let l=r.from,o=e.doc.lineAt(l),c=l==o.from?l-1:L(o.text,l-o.from,!1)+o.from,s=l==o.to?l+1:L(o.text,l-o.from,!0)+o.from;return{changes:{from:c,to:s,insert:e.doc.slice(l,s).append(e.doc.slice(c,l))},range:h.cursor(s)}});return n.changes.empty?!1:(t(e.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function Y(e){let t=[],n=-1;for(let r of e.selection.ranges){let l=e.doc.lineAt(r.from),o=e.doc.lineAt(r.to);if(!r.empty&&r.to==o.from&&(o=e.doc.lineAt(r.to-1)),n>=l.number){let c=t[t.length-1];c.to=o.to,c.ranges.push(r)}else t.push({from:l.from,to:o.to,ranges:[r]});n=o.number+1}return t}function ot(e,t,n){if(e.readOnly)return!1;let r=[],l=[];for(let o of Y(e)){if(n?o.to==e.doc.length:o.from==0)continue;let c=e.doc.lineAt(n?o.to+1:o.from-1),s=c.length+1;if(n){r.push({from:o.to,to:c.to},{from:o.from,insert:c.text+e.lineBreak});for(let i of o.ranges)l.push(h.range(Math.min(e.doc.length,i.anchor+s),Math.min(e.doc.length,i.head+s)))}else{r.push({from:c.from,to:o.from},{from:o.to,insert:e.lineBreak+c.text});for(let i of o.ranges)l.push(h.range(i.anchor-s,i.head-s))}}return r.length?(t(e.update({changes:r,scrollIntoView:!0,selection:h.create(l,e.selection.mainIndex),userEvent:"move.line"})),!0):!1}var on=({state:e,dispatch:t})=>ot(e,t,!1),ln=({state:e,dispatch:t})=>ot(e,t,!0);function lt(e,t,n){if(e.readOnly)return!1;let r=[];for(let o of Y(e))n?r.push({from:o.from,insert:e.doc.slice(o.from,o.to)+e.lineBreak}):r.push({from:o.to,insert:e.lineBreak+e.doc.slice(o.from,o.to)});let l=e.changes(r);return t(e.update({changes:l,selection:e.selection.map(l,n?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}var cn=({state:e,dispatch:t})=>lt(e,t,!1),sn=({state:e,dispatch:t})=>lt(e,t,!0),un=e=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(Y(t).map(({from:l,to:o})=>(l>0?l--:o<t.doc.length&&o++,{from:l,to:o}))),r=v(t.selection,l=>{let o;if(e.lineWrapping){let c=e.lineBlockAt(l.head),s=e.coordsAtPos(l.head,l.assoc||1);s&&(o=c.bottom+e.documentTop-s.bottom+e.defaultLineHeight/2)}return e.moveVertically(l,!0,o)}).map(n);return e.dispatch({changes:n,selection:r,scrollIntoView:!0,userEvent:"delete.line"}),!0},er=({state:e,dispatch:t})=>(t(e.update(e.replaceSelection(e.lineBreak),{scrollIntoView:!0,userEvent:"input"})),!0),tr=({state:e,dispatch:t})=>(t(e.update(e.changeByRange(n=>{let r=/^\s*/.exec(e.doc.lineAt(n.from).text)[0];return{changes:{from:n.from,to:n.to,insert:e.lineBreak+r},range:h.cursor(n.from+r.length+1)}}),{scrollIntoView:!0,userEvent:"input"})),!0);function fn(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n=P(e).resolveInner(t),r=n.childBefore(t),l=n.childAfter(t),o;return r&&l&&r.to<=t&&l.from>=t&&(o=r.type.prop(N.closedBy))&&o.indexOf(l.name)>-1&&e.doc.lineAt(r.to).from==e.doc.lineAt(l.from).from&&!/\S/.test(e.sliceDoc(r.to,l.from))?{from:r.to,to:l.from}:null}var Te=ct(!1),an=ct(!0);function ct(e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let r=t.changeByRange(l=>{let{from:o,to:c}=l,s=t.doc.lineAt(o),i=!e&&o==c&&fn(t,o);e&&(o=c=(c<=s.to?s:t.doc.lineAt(c)).to);let f=new ne(t,{simulateBreak:o,simulateDoubleBreak:!!i}),u=te(f,o);for(u==null&&(u=V(/^\s*/.exec(t.doc.lineAt(o).text)[0],t.tabSize));c<s.to&&/\s/.test(s.text[c-s.from]);)c++;i?{from:o,to:c}=i:o>s.from&&o<s.from+100&&!/\S/.test(s.text.slice(0,o))&&(o=s.from);let a=["",I(t,u)];return i&&a.push(I(t,f.lineIndent(s.from,-1))),{changes:{from:o,to:c,insert:Z.of(a)},range:h.cursor(o+1+a[1].length)}});return n(t.update(r,{scrollIntoView:!0,userEvent:"input"})),!0}}function de(e,t){let n=-1;return e.changeByRange(r=>{let l=[];for(let c=r.from;c<=r.to;){let s=e.doc.lineAt(c);s.number>n&&(r.empty||r.to>s.from)&&(t(s,l,r),n=s.number),c=s.to+1}let o=e.changes(l);return{changes:l,range:h.range(o.mapPos(r.anchor,1),o.mapPos(r.head,1))}})}var hn=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),r=new ne(e,{overrideIndentation:o=>{let c=n[o];return c??-1}}),l=de(e,(o,c,s)=>{let i=te(r,o.from);if(i==null)return;/\S/.test(o.text)||(i=0);let f=/^\s*/.exec(o.text)[0],u=I(e,i);(f!=u||s.from<o.from+f.length)&&(n[o.from]=i,c.push({from:o.from,to:o.from+f.length,insert:u}))});return l.changes.empty||t(e.update(l,{userEvent:"indent"})),!0},me=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(de(e,(n,r)=>{r.push({from:n.from,insert:e.facet(Ae)})}),{userEvent:"input.indent"})),!0),st=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(de(e,(n,r)=>{let l=/^\s*/.exec(n.text)[0];if(!l)return;let o=V(l,e.tabSize),c=0,s=I(e,Math.max(0,o-J(e)));for(;c<l.length&&c<s.length&&l.charCodeAt(c)==s.charCodeAt(c);)c++;r.push({from:n.from+c,to:n.from+l.length,insert:s.slice(c)})}),{userEvent:"delete.dedent"})),!0),dn=e=>(e.setTabFocusMode(),!0),nr=e=>(e.setTabFocusMode(2e3),!0),rr=({state:e,dispatch:t})=>e.selection.ranges.some(n=>!n.empty)?me({state:e,dispatch:t}):(t(e.update(e.replaceSelection(" "),{scrollIntoView:!0,userEvent:"input"})),!0),mn=[{key:"Ctrl-b",run:Ge,shift:$e,preventDefault:!0},{key:"Ctrl-f",run:Ve,shift:Qe},{key:"Ctrl-p",run:ze,shift:Ze},{key:"Ctrl-n",run:He,shift:_e},{key:"Ctrl-a",run:Rt,shift:Wt},{key:"Ctrl-e",run:Ft,shift:qt},{key:"Ctrl-d",run:tt},{key:"Ctrl-h",run:se},{key:"Ctrl-k",run:jt},{key:"Ctrl-Alt-h",run:rt},{key:"Ctrl-o",run:nn},{key:"Ctrl-t",run:rn},{key:"Ctrl-v",run:ce}],pn=[{key:"ArrowLeft",run:Ge,shift:$e,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:Lt,shift:Gt,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:vt,shift:zt,preventDefault:!0},{key:"ArrowRight",run:Ve,shift:Qe,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:xt,shift:Vt,preventDefault:!0},{mac:"Cmd-ArrowRight",run:It,shift:Ht,preventDefault:!0},{key:"ArrowUp",run:ze,shift:Ze,preventDefault:!0},{mac:"Cmd-ArrowUp",run:xe,shift:be},{mac:"Ctrl-ArrowUp",run:Ce,shift:De},{key:"ArrowDown",run:He,shift:_e,preventDefault:!0},{mac:"Cmd-ArrowDown",run:Me,shift:Ee},{mac:"Ctrl-ArrowDown",run:ce,shift:Le},{key:"PageUp",run:Ce,shift:De},{key:"PageDown",run:ce,shift:Le},{key:"Home",run:Ot,shift:wt,preventDefault:!0},{key:"Mod-Home",run:xe,shift:be},{key:"End",run:Tt,shift:Jt,preventDefault:!0},{key:"Mod-End",run:Me,shift:Ee},{key:"Enter",run:Te,shift:Te},{key:"Mod-a",run:Kt},{key:"Backspace",run:se,shift:se,preventDefault:!0},{key:"Delete",run:tt,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:rt,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:_t,preventDefault:!0},{mac:"Mod-Backspace",run:en,preventDefault:!0},{mac:"Mod-Delete",run:tn,preventDefault:!0}].concat(mn.map(e=>({mac:e.key,run:e.run,shift:e.shift}))),or=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:bt,shift:Nt},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:Et,shift:Pt},{key:"Alt-ArrowUp",run:on},{key:"Shift-Alt-ArrowUp",run:cn},{key:"Alt-ArrowDown",run:ln},{key:"Shift-Alt-ArrowDown",run:sn},{key:"Mod-Alt-ArrowUp",run:Xt},{key:"Mod-Alt-ArrowDown",run:Yt},{key:"Escape",run:Zt},{key:"Mod-Enter",run:an},{key:"Alt-l",mac:"Ctrl-l",run:$t},{key:"Mod-i",run:Qt,preventDefault:!0},{key:"Mod-[",run:st},{key:"Mod-]",run:me},{key:"Mod-Alt-\\",run:hn},{key:"Shift-Mod-k",run:un},{key:"Shift-Mod-\\",run:Ut},{key:"Mod-/",run:it},{key:"Alt-A",mac:"Ctrl-A",run:ft},{key:"Ctrl-m",mac:"Shift-Alt-m",run:dn}].concat(pn),lr={key:"Tab",run:me,shift:st};export{Xt as addCursorAbove,Yt as addCursorBelow,Cn as blockComment,Dn as blockUncomment,Tn as canRedoSelection,En as canUndoSelection,sn as copyLineDown,cn as copyLineUp,In as cursorCharBackward,Fn as cursorCharBackwardLogical,vn as cursorCharForward,Rn as cursorCharForwardLogical,Ge as cursorCharLeft,Ve as cursorCharRight,Me as cursorDocEnd,xe as cursorDocStart,Gn as cursorGroupBackward,Un as cursorGroupForward,Vn as cursorGroupForwardWin,Lt as cursorGroupLeft,xt as cursorGroupRight,Ot as cursorLineBoundaryBackward,Tt as cursorLineBoundaryForward,vt as cursorLineBoundaryLeft,It as cursorLineBoundaryRight,He as cursorLineDown,Ft as cursorLineEnd,Rt as cursorLineStart,ze as cursorLineUp,Ut as cursorMatchingBracket,ce as cursorPageDown,Ce as cursorPageUp,Pn as cursorSubwordBackward,Nn as cursorSubwordForward,bt as cursorSyntaxLeft,Et as cursorSyntaxRight,or as defaultKeymap,se as deleteCharBackward,Yn as deleteCharBackwardStrict,tt as deleteCharForward,rt as deleteGroupBackward,_t as deleteGroupForward,Zn as deleteGroupForwardWin,un as deleteLine,en as deleteLineBoundaryBackward,tn as deleteLineBoundaryForward,jt as deleteToLineEnd,_n as deleteToLineStart,jn as deleteTrailingWhitespace,mn as emacsStyleKeymap,Ln as history,xn as historyField,On as historyKeymap,st as indentLess,me as indentMore,hn as indentSelection,lr as indentWithTab,an as insertBlankLine,er as insertNewline,Te as insertNewlineAndIndent,tr as insertNewlineKeepIndent,rr as insertTab,pt as invertedEffects,mt as isolateHistory,An as lineComment,Bn as lineUncomment,ln as moveLineDown,on as moveLineUp,le as redo,bn as redoDepth,yt as redoSelection,Kt as selectAll,zn as selectCharBackward,Wn as selectCharBackwardLogical,wn as selectCharForward,Hn as selectCharForwardLogical,$e as selectCharLeft,Qe as selectCharRight,Ee as selectDocEnd,be as selectDocStart,Kn as selectGroupBackward,qn as selectGroupForward,$n as selectGroupForwardWin,Gt as selectGroupLeft,Vt as selectGroupRight,$t as selectLine,wt as selectLineBoundaryBackward,Jt as selectLineBoundaryForward,zt as selectLineBoundaryLeft,Ht as selectLineBoundaryRight,_e as selectLineDown,qt as selectLineEnd,Wt as selectLineStart,Ze as selectLineUp,Jn as selectMatchingBracket,Le as selectPageDown,De as selectPageUp,Qt as selectParentSyntax,Xn as selectSubwordBackward,Qn as selectSubwordForward,Nt as selectSyntaxLeft,Pt as selectSyntaxRight,Zt as simplifySelection,nn as splitLine,pn as standardKeymap,nr as temporarilySetTabFocusMode,ft as toggleBlockComment,at as toggleBlockCommentByLine,it as toggleComment,ut as toggleLineComment,dn as toggleTabFocusMode,rn as transposeChars,ve as undo,Mn as undoDepth,gt as undoSelection}; diff --git a/assets/cm/language.js b/assets/cm/language.js new file mode 100644 index 0000000..755e877 --- /dev/null +++ b/assets/cm/language.js @@ -0,0 +1 @@ +import{$ as Z,A as y,B as z,C as A,D as B,E as C,F as D,G as E,H as F,I as G,J as H,K as I,L as J,M as K,N as L,O as M,P as N,Q as O,R as P,S as Q,T as R,U as S,V as T,W as U,X as V,Y as W,Z as X,_ as Y,aa as _,ba as $,c as o,d as r,e,f,g as m,h as p,i as t,j as x,k as a,l as b,m as c,n as d,o as g,p as h,q as i,r as j,s as k,t as l,u as n,v as q,w as s,x as u,y as v,z as w}from"./chunk-JULZPKSW.js";import"./chunk-I3OVNVKL.js";import"./chunk-7PWEZHZB.js";export{d as DocInput,T as HighlightStyle,v as IndentContext,p as LRLanguage,m as Language,j as LanguageDescription,i as LanguageSupport,g as ParseContext,_ as StreamLanguage,o as StringStream,y as TreeIndentContext,$ as bidiIsolates,X as bracketMatching,Y as bracketMatchingHandle,R as codeFolding,B as continuedIndent,W as defaultHighlightStyle,e as defineLanguageFacet,z as delimitedIndent,x as ensureSyntaxTree,A as flatIndent,N as foldAll,L as foldCode,H as foldEffect,S as foldGutter,F as foldInside,Q as foldKeymap,E as foldNodeProp,D as foldService,J as foldState,G as foldable,K as foldedRanges,b as forceParsing,n as getIndentUnit,s as getIndentation,V as highlightingFor,w as indentNodeProp,C as indentOnInput,u as indentRange,k as indentService,q as indentString,l as indentUnit,h as language,r as languageDataProp,Z as matchBrackets,f as sublanguageProp,U as syntaxHighlighting,c as syntaxParserRunning,t as syntaxTree,a as syntaxTreeAvailable,P as toggleFold,O as unfoldAll,M as unfoldCode,I as unfoldEffect}; diff --git a/assets/cm/state.js b/assets/cm/state.js new file mode 100644 index 0000000..3abe41b --- /dev/null +++ b/assets/cm/state.js @@ -0,0 +1 @@ +import{A,B,C,a as o,b as r,c as e,d as f,e as m,f as p,g as t,h as x,i as a,j as b,k as c,l as d,m as g,n as h,o as i,p as j,q as k,r as l,s as n,t as q,u as s,v as u,w as v,x as w,y,z}from"./chunk-7PWEZHZB.js";export{j as Annotation,k as AnnotationType,x as ChangeDesc,a as ChangeSet,s as CharCategory,i as Compartment,c as EditorSelection,u as EditorState,d as Facet,r as Line,t as MapMode,h as Prec,y as Range,z as RangeSet,A as RangeSetBuilder,w as RangeValue,b as SelectionRange,n as StateEffect,l as StateEffectType,g as StateField,o as Text,q as Transaction,f as codePointAt,p as codePointSize,v as combineConfig,B as countColumn,e as findClusterBreak,C as findColumn,m as fromCodePoint}; diff --git a/assets/cm/theme.js b/assets/cm/theme.js new file mode 100644 index 0000000..7204816 --- /dev/null +++ b/assets/cm/theme.js @@ -0,0 +1 @@ +import{V as m,W as u,b as e}from"./chunk-JULZPKSW.js";import{l as f}from"./chunk-I3OVNVKL.js";import"./chunk-7PWEZHZB.js";function l(){return l=Object.assign?Object.assign.bind():function(i){for(var o=1;o<arguments.length;o++){var a=arguments[o];for(var t in a)({}).hasOwnProperty.call(a,t)&&(i[t]=a[t])}return i},l.apply(null,arguments)}var d=i=>{var o=i.theme,a=i.settings,t=a===void 0?{}:a,n=i.styles,c=n===void 0?[]:n,r={".cm-gutters":{}},g={};t.background&&(g.backgroundColor=t.background),t.backgroundImage&&(g.backgroundImage=t.backgroundImage),t.foreground&&(g.color=t.foreground),t.fontSize&&(g.fontSize=t.fontSize),(t.background||t.foreground)&&(r["&"]=g),t.fontFamily&&(r["&.cm-editor .cm-scroller"]={fontFamily:t.fontFamily}),t.gutterBackground&&(r[".cm-gutters"].backgroundColor=t.gutterBackground),t.gutterForeground&&(r[".cm-gutters"].color=t.gutterForeground),t.gutterBorder&&(r[".cm-gutters"].borderRightColor=t.gutterBorder),t.caret&&(r[".cm-content"]={caretColor:t.caret},r[".cm-cursor, .cm-dropCursor"]={borderLeftColor:t.caret});var s={};t.gutterActiveForeground&&(s.color=t.gutterActiveForeground),t.lineHighlight&&(r[".cm-activeLine"]={backgroundColor:t.lineHighlight},s.backgroundColor=t.lineHighlight),r[".cm-activeLineGutter"]=s,t.selection&&(r["&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection"]={background:t.selection+" !important"}),t.selectionMatch&&(r["& .cm-selectionMatch"]={backgroundColor:t.selectionMatch});var h=f.theme(r,{dark:o==="dark"}),b=m.define(c),p=[h,u(b)];return p};var v={background:"#fff",foreground:"#24292e",selection:"#BBDFFF",selectionMatch:"#BBDFFF",gutterBackground:"#fff",gutterForeground:"#6e7781"},k=[{tag:[e.standard(e.tagName),e.tagName],color:"#116329"},{tag:[e.comment,e.bracket],color:"#6a737d"},{tag:[e.className,e.propertyName],color:"#6f42c1"},{tag:[e.variableName,e.attributeName,e.number,e.operator],color:"#005cc5"},{tag:[e.keyword,e.typeName,e.typeOperator,e.typeName],color:"#d73a49"},{tag:[e.string,e.meta,e.regexp],color:"#032f62"},{tag:[e.name,e.quote],color:"#22863a"},{tag:[e.heading,e.strong],color:"#24292e",fontWeight:"bold"},{tag:[e.emphasis],color:"#24292e",fontStyle:"italic"},{tag:[e.deleted],color:"#b31d28",backgroundColor:"ffeef0"},{tag:[e.atom,e.bool,e.special(e.variableName)],color:"#e36209"},{tag:[e.url,e.escape,e.regexp,e.link],color:"#032f62"},{tag:e.link,textDecoration:"underline"},{tag:e.strikethrough,textDecoration:"line-through"},{tag:e.invalid,color:"#cb2431"}],y=i=>{var o=i||{},a=o.theme,t=a===void 0?"light":a,n=o.settings,c=n===void 0?{}:n,r=o.styles,g=r===void 0?[]:r;return d({theme:t,settings:l({},v,c),styles:[...k,...g]})},H=y(),x={background:"#0d1117",foreground:"#c9d1d9",caret:"#c9d1d9",selection:"#003d73",selectionMatch:"#003d73",lineHighlight:"#36334280"},N=[{tag:[e.standard(e.tagName),e.tagName],color:"#7ee787"},{tag:[e.comment,e.bracket],color:"#8b949e"},{tag:[e.className,e.propertyName],color:"#d2a8ff"},{tag:[e.variableName,e.attributeName,e.number,e.operator],color:"#79c0ff"},{tag:[e.keyword,e.typeName,e.typeOperator,e.typeName],color:"#ff7b72"},{tag:[e.string,e.meta,e.regexp],color:"#a5d6ff"},{tag:[e.name,e.quote],color:"#7ee787"},{tag:[e.heading,e.strong],color:"#d2a8ff",fontWeight:"bold"},{tag:[e.emphasis],color:"#d2a8ff",fontStyle:"italic"},{tag:[e.deleted],color:"#ffdcd7",backgroundColor:"ffeef0"},{tag:[e.atom,e.bool,e.special(e.variableName)],color:"#ffab70"},{tag:e.link,textDecoration:"underline"},{tag:e.strikethrough,textDecoration:"line-through"},{tag:e.invalid,color:"#f97583"}],F=i=>{var o=i||{},a=o.theme,t=a===void 0?"dark":a,n=o.settings,c=n===void 0?{}:n,r=o.styles,g=r===void 0?[]:r;return d({theme:t,settings:l({},x,c),styles:[...N,...g]})},O=F();export{x as defaultSettingsGithubDark,v as defaultSettingsGithubLight,O as githubDark,F as githubDarkInit,N as githubDarkStyle,H as githubLight,y as githubLightInit,k as githubLightStyle}; diff --git a/assets/cm/view.js b/assets/cm/view.js new file mode 100644 index 0000000..5f666d9 --- /dev/null +++ b/assets/cm/view.js @@ -0,0 +1 @@ +import{A as z,B as A,C as B,D as C,E as D,F as E,G as F,H as G,I as H,J as I,K as J,L as K,M as L,N as M,O as N,P as O,Q as P,R as Q,S as R,T as S,U as T,V as U,W as V,X as W,Y as X,Z as Y,b as o,c as r,d as e,e as f,f as m,g as p,h as t,i as x,j as a,k as b,l as c,m as d,n as g,o as h,p as i,q as j,r as k,s as l,t as n,u as q,v as s,w as u,x as v,y as w,z as y}from"./chunk-I3OVNVKL.js";import"./chunk-7PWEZHZB.js";export{p as BidiSpan,b as BlockInfo,r as BlockType,f as BlockWrapper,e as Decoration,m as Direction,c as EditorView,N as GutterMarker,n as MatchDecorator,h as RectangleMarker,x as ViewPlugin,a as ViewUpdate,o as WidgetType,Y as __test,C as activateHover,G as closeHoverTooltip,F as closeHoverTooltips,y as crosshairCursor,j as drawSelection,l as dropCursor,M as getDialog,k as getDrawSelectionConfig,J as getPanel,D as getTooltip,Q as gutter,O as gutterLineClass,P as gutterWidgetClass,R as gutters,E as hasHoverTooltips,u as highlightActiveLine,V as highlightActiveLineGutter,q as highlightSpecialChars,X as highlightTrailingWhitespace,W as highlightWhitespace,B as hoverTooltip,d as keymap,i as layer,S as lineNumberMarkers,T as lineNumberWidgetMarker,U as lineNumbers,t as logException,I as panels,v as placeholder,w as rectangularSelection,H as repositionTooltips,g as runScopeHandlers,s as scrollPastEnd,L as showDialog,K as showPanel,A as showTooltip,z as tooltips}; |