@uiw/react-codemirror 4.19.4 → 4.19.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -174,6 +174,9 @@ function useCodeMirror(props) {
174
174
  // eslint-disable-next-line react-hooks/exhaustive-deps
175
175
  }, [theme, extensions, height, minHeight, maxHeight, width, minWidth, maxWidth, placeholderStr, editable, readOnly, defaultIndentWithTab, defaultBasicSetup, onChange, onUpdate]);
176
176
  (0, _react.useEffect)(function () {
177
+ if (value === undefined) {
178
+ return;
179
+ }
177
180
  var currentValue = view ? view.state.doc.toString() : '';
178
181
  if (view && value !== currentValue) {
179
182
  view.dispatch({
@@ -81,7 +81,7 @@
81
81
  "../src/useCodeMirror.ts"
82
82
  ],
83
83
  "sourcesContent": [
84
- "import { useEffect, useState } from 'react';\nimport { EditorState, StateEffect } from '@codemirror/state';\nimport { indentWithTab } from '@codemirror/commands';\nimport { EditorView, keymap, ViewUpdate, placeholder } from '@codemirror/view';\nimport { basicSetup } from '@uiw/codemirror-extensions-basic-setup';\nimport { oneDark } from '@codemirror/theme-one-dark';\nimport { getStatistics } from './utils';\nimport { ReactCodeMirrorProps } from '.';\n\nexport interface UseCodeMirror extends ReactCodeMirrorProps {\n container?: HTMLDivElement | null;\n}\n\nexport function useCodeMirror(props: UseCodeMirror) {\n const {\n value,\n selection,\n onChange,\n onStatistics,\n onCreateEditor,\n onUpdate,\n extensions = [],\n autoFocus,\n theme = 'light',\n height = '',\n minHeight = '',\n maxHeight = '',\n placeholder: placeholderStr = '',\n width = '',\n minWidth = '',\n maxWidth = '',\n editable = true,\n readOnly = false,\n indentWithTab: defaultIndentWithTab = true,\n basicSetup: defaultBasicSetup = true,\n root,\n initialState,\n } = props;\n const [container, setContainer] = useState<HTMLDivElement>();\n const [view, setView] = useState<EditorView>();\n const [state, setState] = useState<EditorState>();\n const defaultLightThemeOption = EditorView.theme(\n {\n '&': {\n backgroundColor: '#fff',\n },\n },\n {\n dark: false,\n },\n );\n const defaultThemeOption = EditorView.theme({\n '&': {\n height,\n minHeight,\n maxHeight,\n width,\n minWidth,\n maxWidth,\n },\n });\n const updateListener = EditorView.updateListener.of((vu: ViewUpdate) => {\n if (vu.docChanged && typeof onChange === 'function') {\n const doc = vu.state.doc;\n const value = doc.toString();\n onChange(value, vu);\n }\n onStatistics && onStatistics(getStatistics(vu));\n });\n\n let getExtensions = [updateListener, defaultThemeOption];\n if (defaultIndentWithTab) {\n getExtensions.unshift(keymap.of([indentWithTab]));\n }\n if (defaultBasicSetup) {\n if (typeof defaultBasicSetup === 'boolean') {\n getExtensions.unshift(basicSetup());\n } else {\n getExtensions.unshift(basicSetup(defaultBasicSetup));\n }\n }\n\n if (placeholderStr) {\n getExtensions.unshift(placeholder(placeholderStr));\n }\n\n switch (theme) {\n case 'light':\n getExtensions.push(defaultLightThemeOption);\n break;\n case 'dark':\n getExtensions.push(oneDark);\n break;\n case 'none':\n break;\n default:\n getExtensions.push(theme);\n break;\n }\n\n if (editable === false) {\n getExtensions.push(EditorView.editable.of(false));\n }\n if (readOnly) {\n getExtensions.push(EditorState.readOnly.of(true));\n }\n\n if (onUpdate && typeof onUpdate === 'function') {\n getExtensions.push(EditorView.updateListener.of(onUpdate));\n }\n getExtensions = getExtensions.concat(extensions);\n\n useEffect(() => {\n if (container && !state) {\n const config = {\n doc: value,\n selection,\n extensions: getExtensions,\n };\n const stateCurrent = initialState\n ? EditorState.fromJSON(initialState.json, config, initialState.fields)\n : EditorState.create(config);\n setState(stateCurrent);\n if (!view) {\n const viewCurrent = new EditorView({\n state: stateCurrent,\n parent: container,\n root,\n });\n setView(viewCurrent);\n onCreateEditor && onCreateEditor(viewCurrent, stateCurrent);\n }\n }\n return () => {\n if (view) {\n setState(undefined);\n setView(undefined);\n }\n };\n }, [container, state]);\n\n useEffect(() => setContainer(props.container!), [props.container]);\n\n useEffect(\n () => () => {\n if (view) {\n view.destroy();\n setView(undefined);\n }\n },\n [view],\n );\n\n useEffect(() => {\n if (autoFocus && view) {\n view.focus();\n }\n }, [autoFocus, view]);\n\n useEffect(() => {\n if (view) {\n view.dispatch({ effects: StateEffect.reconfigure.of(getExtensions) });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n theme,\n extensions,\n height,\n minHeight,\n maxHeight,\n width,\n minWidth,\n maxWidth,\n placeholderStr,\n editable,\n readOnly,\n defaultIndentWithTab,\n defaultBasicSetup,\n onChange,\n onUpdate,\n ]);\n\n useEffect(() => {\n const currentValue = view ? view.state.doc.toString() : '';\n if (view && value !== currentValue) {\n view.dispatch({\n changes: { from: 0, to: currentValue.length, insert: value || '' },\n });\n }\n }, [value, view]);\n\n return { state, setState, view, setView, container, setContainer };\n}\n"
84
+ "import { useEffect, useState } from 'react';\nimport { EditorState, StateEffect } from '@codemirror/state';\nimport { indentWithTab } from '@codemirror/commands';\nimport { EditorView, keymap, ViewUpdate, placeholder } from '@codemirror/view';\nimport { basicSetup } from '@uiw/codemirror-extensions-basic-setup';\nimport { oneDark } from '@codemirror/theme-one-dark';\nimport { getStatistics } from './utils';\nimport { ReactCodeMirrorProps } from '.';\n\nexport interface UseCodeMirror extends ReactCodeMirrorProps {\n container?: HTMLDivElement | null;\n}\n\nexport function useCodeMirror(props: UseCodeMirror) {\n const {\n value,\n selection,\n onChange,\n onStatistics,\n onCreateEditor,\n onUpdate,\n extensions = [],\n autoFocus,\n theme = 'light',\n height = '',\n minHeight = '',\n maxHeight = '',\n placeholder: placeholderStr = '',\n width = '',\n minWidth = '',\n maxWidth = '',\n editable = true,\n readOnly = false,\n indentWithTab: defaultIndentWithTab = true,\n basicSetup: defaultBasicSetup = true,\n root,\n initialState,\n } = props;\n const [container, setContainer] = useState<HTMLDivElement>();\n const [view, setView] = useState<EditorView>();\n const [state, setState] = useState<EditorState>();\n const defaultLightThemeOption = EditorView.theme(\n {\n '&': {\n backgroundColor: '#fff',\n },\n },\n {\n dark: false,\n },\n );\n const defaultThemeOption = EditorView.theme({\n '&': {\n height,\n minHeight,\n maxHeight,\n width,\n minWidth,\n maxWidth,\n },\n });\n const updateListener = EditorView.updateListener.of((vu: ViewUpdate) => {\n if (vu.docChanged && typeof onChange === 'function') {\n const doc = vu.state.doc;\n const value = doc.toString();\n onChange(value, vu);\n }\n onStatistics && onStatistics(getStatistics(vu));\n });\n\n let getExtensions = [updateListener, defaultThemeOption];\n if (defaultIndentWithTab) {\n getExtensions.unshift(keymap.of([indentWithTab]));\n }\n if (defaultBasicSetup) {\n if (typeof defaultBasicSetup === 'boolean') {\n getExtensions.unshift(basicSetup());\n } else {\n getExtensions.unshift(basicSetup(defaultBasicSetup));\n }\n }\n\n if (placeholderStr) {\n getExtensions.unshift(placeholder(placeholderStr));\n }\n\n switch (theme) {\n case 'light':\n getExtensions.push(defaultLightThemeOption);\n break;\n case 'dark':\n getExtensions.push(oneDark);\n break;\n case 'none':\n break;\n default:\n getExtensions.push(theme);\n break;\n }\n\n if (editable === false) {\n getExtensions.push(EditorView.editable.of(false));\n }\n if (readOnly) {\n getExtensions.push(EditorState.readOnly.of(true));\n }\n\n if (onUpdate && typeof onUpdate === 'function') {\n getExtensions.push(EditorView.updateListener.of(onUpdate));\n }\n getExtensions = getExtensions.concat(extensions);\n\n useEffect(() => {\n if (container && !state) {\n const config = {\n doc: value,\n selection,\n extensions: getExtensions,\n };\n const stateCurrent = initialState\n ? EditorState.fromJSON(initialState.json, config, initialState.fields)\n : EditorState.create(config);\n setState(stateCurrent);\n if (!view) {\n const viewCurrent = new EditorView({\n state: stateCurrent,\n parent: container,\n root,\n });\n setView(viewCurrent);\n onCreateEditor && onCreateEditor(viewCurrent, stateCurrent);\n }\n }\n return () => {\n if (view) {\n setState(undefined);\n setView(undefined);\n }\n };\n }, [container, state]);\n\n useEffect(() => setContainer(props.container!), [props.container]);\n\n useEffect(\n () => () => {\n if (view) {\n view.destroy();\n setView(undefined);\n }\n },\n [view],\n );\n\n useEffect(() => {\n if (autoFocus && view) {\n view.focus();\n }\n }, [autoFocus, view]);\n\n useEffect(() => {\n if (view) {\n view.dispatch({ effects: StateEffect.reconfigure.of(getExtensions) });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n theme,\n extensions,\n height,\n minHeight,\n maxHeight,\n width,\n minWidth,\n maxWidth,\n placeholderStr,\n editable,\n readOnly,\n defaultIndentWithTab,\n defaultBasicSetup,\n onChange,\n onUpdate,\n ]);\n\n useEffect(() => {\n if (value === undefined) {\n return;\n }\n const currentValue = view ? view.state.doc.toString() : '';\n if (view && value !== currentValue) {\n view.dispatch({\n changes: { from: 0, to: currentValue.length, insert: value || '' },\n });\n }\n }, [value, view]);\n\n return { state, setState, view, setView, container, setContainer };\n}\n"
85
85
  ],
86
- "mappings": "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"
86
+ "mappings": ";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAOO,SAASA,aAAa,CAACC,KAAoB,EAAE;EAClD,IACEC,KAAK,GAsBHD,KAAK,CAtBPC,KAAK;IACLC,SAAS,GAqBPF,KAAK,CArBPE,SAAS;IACTC,QAAQ,GAoBNH,KAAK,CApBPG,QAAQ;IACRC,YAAY,GAmBVJ,KAAK,CAnBPI,YAAY;IACZC,cAAc,GAkBZL,KAAK,CAlBPK,cAAc;IACdC,QAAQ,GAiBNN,KAAK,CAjBPM,QAAQ;IAAA,oBAiBNN,KAAK,CAhBPO,UAAU;IAAVA,UAAU,kCAAG,EAAE;IACfC,SAAS,GAePR,KAAK,CAfPQ,SAAS;IAAA,eAePR,KAAK,CAdPS,KAAK;IAALA,KAAK,6BAAG,OAAO;IAAA,gBAcbT,KAAK,CAbPU,MAAM;IAANA,MAAM,8BAAG,EAAE;IAAA,mBAaTV,KAAK,CAZPW,SAAS;IAATA,SAAS,iCAAG,EAAE;IAAA,mBAYZX,KAAK,CAXPY,SAAS;IAATA,SAAS,iCAAG,EAAE;IAAA,qBAWZZ,KAAK,CAVPa,WAAW;IAAEC,cAAc,mCAAG,EAAE;IAAA,eAU9Bd,KAAK,CATPe,KAAK;IAALA,KAAK,6BAAG,EAAE;IAAA,kBASRf,KAAK,CARPgB,QAAQ;IAARA,QAAQ,gCAAG,EAAE;IAAA,kBAQXhB,KAAK,CAPPiB,QAAQ;IAARA,QAAQ,gCAAG,EAAE;IAAA,kBAOXjB,KAAK,CANPkB,QAAQ;IAARA,QAAQ,gCAAG,IAAI;IAAA,kBAMblB,KAAK,CALPmB,QAAQ;IAARA,QAAQ,gCAAG,KAAK;IAAA,uBAKdnB,KAAK,CAJPoB,aAAa;IAAEC,oBAAoB,qCAAG,IAAI;IAAA,oBAIxCrB,KAAK,CAHPsB,UAAU;IAAEC,iBAAiB,kCAAG,IAAI;IACpCC,IAAI,GAEFxB,KAAK,CAFPwB,IAAI;IACJC,YAAY,GACVzB,KAAK,CADPyB,YAAY;EAEd,gBAAkC,IAAAC,eAAQ,GAAkB;IAAA;IAArDC,SAAS;IAAEC,YAAY;EAC9B,iBAAwB,IAAAF,eAAQ,GAAc;IAAA;IAAvCG,IAAI;IAAEC,OAAO;EACpB,iBAA0B,IAAAJ,eAAQ,GAAe;IAAA;IAA1CK,KAAK;IAAEC,QAAQ;EACtB,IAAMC,uBAAuB,GAAGC,gBAAU,CAACzB,KAAK,CAC9C;IACE,GAAG,EAAE;MACH0B,eAAe,EAAE;IACnB;EACF,CAAC,EACD;IACEC,IAAI,EAAE;EACR,CAAC,CACF;EACD,IAAMC,kBAAkB,GAAGH,gBAAU,CAACzB,KAAK,CAAC;IAC1C,GAAG,EAAE;MACHC,MAAM,EAANA,MAAM;MACNC,SAAS,EAATA,SAAS;MACTC,SAAS,EAATA,SAAS;MACTG,KAAK,EAALA,KAAK;MACLC,QAAQ,EAARA,QAAQ;MACRC,QAAQ,EAARA;IACF;EACF,CAAC,CAAC;EACF,IAAMqB,cAAc,GAAGJ,gBAAU,CAACI,cAAc,CAACC,EAAE,CAAC,UAACC,EAAc,EAAK;IACtE,IAAIA,EAAE,CAACC,UAAU,IAAI,OAAOtC,QAAQ,KAAK,UAAU,EAAE;MACnD,IAAMuC,GAAG,GAAGF,EAAE,CAACT,KAAK,CAACW,GAAG;MACxB,IAAMzC,MAAK,GAAGyC,GAAG,CAACC,QAAQ,EAAE;MAC5BxC,QAAQ,CAACF,MAAK,EAAEuC,EAAE,CAAC;IACrB;IACApC,YAAY,IAAIA,YAAY,CAAC,IAAAwC,oBAAa,EAACJ,EAAE,CAAC,CAAC;EACjD,CAAC,CAAC;EAEF,IAAIK,aAAa,GAAG,CAACP,cAAc,EAAED,kBAAkB,CAAC;EACxD,IAAIhB,oBAAoB,EAAE;IACxBwB,aAAa,CAACC,OAAO,CAACC,YAAM,CAACR,EAAE,CAAC,CAACnB,uBAAa,CAAC,CAAC,CAAC;EACnD;EACA,IAAIG,iBAAiB,EAAE;IACrB,IAAI,OAAOA,iBAAiB,KAAK,SAAS,EAAE;MAC1CsB,aAAa,CAACC,OAAO,CAAC,IAAAxB,0CAAU,GAAE,CAAC;IACrC,CAAC,MAAM;MACLuB,aAAa,CAACC,OAAO,CAAC,IAAAxB,0CAAU,EAACC,iBAAiB,CAAC,CAAC;IACtD;EACF;EAEA,IAAIT,cAAc,EAAE;IAClB+B,aAAa,CAACC,OAAO,CAAC,IAAAjC,iBAAW,EAACC,cAAc,CAAC,CAAC;EACpD;EAEA,QAAQL,KAAK;IACX,KAAK,OAAO;MACVoC,aAAa,CAACG,IAAI,CAACf,uBAAuB,CAAC;MAC3C;IACF,KAAK,MAAM;MACTY,aAAa,CAACG,IAAI,CAACC,qBAAO,CAAC;MAC3B;IACF,KAAK,MAAM;MACT;IACF;MACEJ,aAAa,CAACG,IAAI,CAACvC,KAAK,CAAC;MACzB;EAAM;EAGV,IAAIS,QAAQ,KAAK,KAAK,EAAE;IACtB2B,aAAa,CAACG,IAAI,CAACd,gBAAU,CAAChB,QAAQ,CAACqB,EAAE,CAAC,KAAK,CAAC,CAAC;EACnD;EACA,IAAIpB,QAAQ,EAAE;IACZ0B,aAAa,CAACG,IAAI,CAACE,kBAAW,CAAC/B,QAAQ,CAACoB,EAAE,CAAC,IAAI,CAAC,CAAC;EACnD;EAEA,IAAIjC,QAAQ,IAAI,OAAOA,QAAQ,KAAK,UAAU,EAAE;IAC9CuC,aAAa,CAACG,IAAI,CAACd,gBAAU,CAACI,cAAc,CAACC,EAAE,CAACjC,QAAQ,CAAC,CAAC;EAC5D;EACAuC,aAAa,GAAGA,aAAa,CAACM,MAAM,CAAC5C,UAAU,CAAC;EAEhD,IAAA6C,gBAAS,EAAC,YAAM;IACd,IAAIzB,SAAS,IAAI,CAACI,KAAK,EAAE;MACvB,IAAMsB,MAAM,GAAG;QACbX,GAAG,EAAEzC,KAAK;QACVC,SAAS,EAATA,SAAS;QACTK,UAAU,EAAEsC;MACd,CAAC;MACD,IAAMS,YAAY,GAAG7B,YAAY,GAC7ByB,kBAAW,CAACK,QAAQ,CAAC9B,YAAY,CAAC+B,IAAI,EAAEH,MAAM,EAAE5B,YAAY,CAACgC,MAAM,CAAC,GACpEP,kBAAW,CAACQ,MAAM,CAACL,MAAM,CAAC;MAC9BrB,QAAQ,CAACsB,YAAY,CAAC;MACtB,IAAI,CAACzB,IAAI,EAAE;QACT,IAAM8B,WAAW,GAAG,IAAIzB,gBAAU,CAAC;UACjCH,KAAK,EAAEuB,YAAY;UACnBM,MAAM,EAAEjC,SAAS;UACjBH,IAAI,EAAJA;QACF,CAAC,CAAC;QACFM,OAAO,CAAC6B,WAAW,CAAC;QACpBtD,cAAc,IAAIA,cAAc,CAACsD,WAAW,EAAEL,YAAY,CAAC;MAC7D;IACF;IACA,OAAO,YAAM;MACX,IAAIzB,IAAI,EAAE;QACRG,QAAQ,CAAC6B,SAAS,CAAC;QACnB/B,OAAO,CAAC+B,SAAS,CAAC;MACpB;IACF,CAAC;EACH,CAAC,EAAE,CAAClC,SAAS,EAAEI,KAAK,CAAC,CAAC;EAEtB,IAAAqB,gBAAS,EAAC;IAAA,OAAMxB,YAAY,CAAC5B,KAAK,CAAC2B,SAAS,CAAE;EAAA,GAAE,CAAC3B,KAAK,CAAC2B,SAAS,CAAC,CAAC;EAElE,IAAAyB,gBAAS,EACP;IAAA,OAAM,YAAM;MACV,IAAIvB,IAAI,EAAE;QACRA,IAAI,CAACiC,OAAO,EAAE;QACdhC,OAAO,CAAC+B,SAAS,CAAC;MACpB;IACF,CAAC;EAAA,GACD,CAAChC,IAAI,CAAC,CACP;EAED,IAAAuB,gBAAS,EAAC,YAAM;IACd,IAAI5C,SAAS,IAAIqB,IAAI,EAAE;MACrBA,IAAI,CAACkC,KAAK,EAAE;IACd;EACF,CAAC,EAAE,CAACvD,SAAS,EAAEqB,IAAI,CAAC,CAAC;EAErB,IAAAuB,gBAAS,EAAC,YAAM;IACd,IAAIvB,IAAI,EAAE;MACRA,IAAI,CAACmC,QAAQ,CAAC;QAAEC,OAAO,EAAEC,kBAAW,CAACC,WAAW,CAAC5B,EAAE,CAACM,aAAa;MAAE,CAAC,CAAC;IACvE;IACA;EACF,CAAC,EAAE,CACDpC,KAAK,EACLF,UAAU,EACVG,MAAM,EACNC,SAAS,EACTC,SAAS,EACTG,KAAK,EACLC,QAAQ,EACRC,QAAQ,EACRH,cAAc,EACdI,QAAQ,EACRC,QAAQ,EACRE,oBAAoB,EACpBE,iBAAiB,EACjBpB,QAAQ,EACRG,QAAQ,CACT,CAAC;EAEF,IAAA8C,gBAAS,EAAC,YAAM;IACd,IAAInD,KAAK,KAAK4D,SAAS,EAAE;MACvB;IACF;IACA,IAAMO,YAAY,GAAGvC,IAAI,GAAGA,IAAI,CAACE,KAAK,CAACW,GAAG,CAACC,QAAQ,EAAE,GAAG,EAAE;IAC1D,IAAId,IAAI,IAAI5B,KAAK,KAAKmE,YAAY,EAAE;MAClCvC,IAAI,CAACmC,QAAQ,CAAC;QACZK,OAAO,EAAE;UAAEC,IAAI,EAAE,CAAC;UAAEC,EAAE,EAAEH,YAAY,CAACI,MAAM;UAAEC,MAAM,EAAExE,KAAK,IAAI;QAAG;MACnE,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACA,KAAK,EAAE4B,IAAI,CAAC,CAAC;EAEjB,OAAO;IAAEE,KAAK,EAALA,KAAK;IAAEC,QAAQ,EAARA,QAAQ;IAAEH,IAAI,EAAJA,IAAI;IAAEC,OAAO,EAAPA,OAAO;IAAEH,SAAS,EAATA,SAAS;IAAEC,YAAY,EAAZA;EAAa,CAAC;AACpE"
87
87
  }
package/dist/mdeditor.js CHANGED
@@ -261,9 +261,7 @@ function _iterableToArrayLimit(arr, i) {
261
261
  if (_x = (_i = _i.call(arr)).next, 0 === i) {
262
262
  if (Object(_i) !== _i) return;
263
263
  _n = !1;
264
- } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) {
265
- ;
266
- }
264
+ } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
267
265
  } catch (err) {
268
266
  _d = !0, _e = err;
269
267
  } finally {
@@ -279,9 +277,7 @@ function _iterableToArrayLimit(arr, i) {
279
277
  ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
280
278
  function _arrayLikeToArray(arr, len) {
281
279
  if (len == null || len > arr.length) len = arr.length;
282
- for (var i = 0, arr2 = new Array(len); i < len; i++) {
283
- arr2[i] = arr[i];
284
- }
280
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
285
281
  return arr2;
286
282
  }
287
283
  ;// CONCATENATED MODULE: ../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
@@ -3131,7 +3127,13 @@ up to that point if the tree isn't already available.
3131
3127
  function ensureSyntaxTree(state, upto, timeout = 50) {
3132
3128
  var _a;
3133
3129
  let parse = (_a = state.field(Language.state, false)) === null || _a === void 0 ? void 0 : _a.context;
3134
- return !parse ? null : parse.isDone(upto) || parse.work(timeout, upto) ? parse.tree : null;
3130
+ if (!parse)
3131
+ return null;
3132
+ let oldVieport = parse.viewport;
3133
+ parse.updateViewport({ from: 0, to: upto });
3134
+ let result = parse.isDone(upto) || parse.work(timeout, upto) ? parse.tree : null;
3135
+ parse.updateViewport(oldVieport);
3136
+ return result;
3135
3137
  }
3136
3138
  /**
3137
3139
  Queries whether there is a full syntax tree available up to the
@@ -4630,7 +4632,7 @@ A default highlight style (works well with light themes).
4630
4632
  */
4631
4633
  const defaultHighlightStyle = /*@__PURE__*/HighlightStyle.define([
4632
4634
  { tag: tags.meta,
4633
- color: "#7a757a" },
4635
+ color: "#404740" },
4634
4636
  { tag: tags.link,
4635
4637
  textDecoration: "underline" },
4636
4638
  { tag: tags.heading,
@@ -6147,7 +6149,7 @@ const selectMatchingBracket = ({ state, dispatch }) => toMatchingBracket(state,
6147
6149
  function extendSel(view, how) {
6148
6150
  let selection = updateSel(view.state.selection, range => {
6149
6151
  let head = how(range);
6150
- return state_.EditorSelection.range(range.anchor, head.head, head.goalColumn);
6152
+ return state_.EditorSelection.range(range.anchor, head.head, head.goalColumn, head.bidiLevel || undefined);
6151
6153
  });
6152
6154
  if (selection.eq(view.state.selection))
6153
6155
  return false;
@@ -10877,7 +10879,7 @@ var theme_one_dark_ = __webpack_require__(362);
10877
10879
  var getStatistics=function getStatistics(view){return{line:view.state.doc.lineAt(view.state.selection.main.from),lineCount:view.state.doc.lines,lineBreak:view.state.lineBreak,length:view.state.doc.length,readOnly:view.state.readOnly,tabSize:view.state.tabSize,selection:view.state.selection,selectionAsSingle:view.state.selection.asSingle().main,ranges:view.state.selection.ranges,selectionCode:view.state.sliceDoc(view.state.selection.main.from,view.state.selection.main.to),selections:view.state.selection.ranges.map(function(r){return view.state.sliceDoc(r.from,r.to);}),selectedText:view.state.selection.ranges.some(function(r){return!r.empty;})};};
10878
10880
  ;// CONCATENATED MODULE: ./src/useCodeMirror.ts
10879
10881
  function useCodeMirror(props){var value=props.value,selection=props.selection,onChange=props.onChange,onStatistics=props.onStatistics,onCreateEditor=props.onCreateEditor,onUpdate=props.onUpdate,_props$extensions=props.extensions,extensions=_props$extensions===void 0?[]:_props$extensions,autoFocus=props.autoFocus,_props$theme=props.theme,theme=_props$theme===void 0?'light':_props$theme,_props$height=props.height,height=_props$height===void 0?'':_props$height,_props$minHeight=props.minHeight,minHeight=_props$minHeight===void 0?'':_props$minHeight,_props$maxHeight=props.maxHeight,maxHeight=_props$maxHeight===void 0?'':_props$maxHeight,_props$placeholder=props.placeholder,placeholderStr=_props$placeholder===void 0?'':_props$placeholder,_props$width=props.width,width=_props$width===void 0?'':_props$width,_props$minWidth=props.minWidth,minWidth=_props$minWidth===void 0?'':_props$minWidth,_props$maxWidth=props.maxWidth,maxWidth=_props$maxWidth===void 0?'':_props$maxWidth,_props$editable=props.editable,editable=_props$editable===void 0?true:_props$editable,_props$readOnly=props.readOnly,readOnly=_props$readOnly===void 0?false:_props$readOnly,_props$indentWithTab=props.indentWithTab,defaultIndentWithTab=_props$indentWithTab===void 0?true:_props$indentWithTab,_props$basicSetup=props.basicSetup,defaultBasicSetup=_props$basicSetup===void 0?true:_props$basicSetup,root=props.root,initialState=props.initialState;var _useState=(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(),_useState2=_slicedToArray(_useState,2),container=_useState2[0],setContainer=_useState2[1];var _useState3=(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(),_useState4=_slicedToArray(_useState3,2),view=_useState4[0],setView=_useState4[1];var _useState5=(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(),_useState6=_slicedToArray(_useState5,2),state=_useState6[0],setState=_useState6[1];var defaultLightThemeOption=view_.EditorView.theme({'&':{backgroundColor:'#fff'}},{dark:false});var defaultThemeOption=view_.EditorView.theme({'&':{height:height,minHeight:minHeight,maxHeight:maxHeight,width:width,minWidth:minWidth,maxWidth:maxWidth}});var updateListener=view_.EditorView.updateListener.of(function(vu){if(vu.docChanged&&typeof onChange==='function'){var doc=vu.state.doc;var _value=doc.toString();onChange(_value,vu);}onStatistics&&onStatistics(getStatistics(vu));});var getExtensions=[updateListener,defaultThemeOption];if(defaultIndentWithTab){getExtensions.unshift(view_.keymap.of([indentWithTab]));}if(defaultBasicSetup){if(typeof defaultBasicSetup==='boolean'){getExtensions.unshift(basicSetup());}else{getExtensions.unshift(basicSetup(defaultBasicSetup));}}if(placeholderStr){getExtensions.unshift((0,view_.placeholder)(placeholderStr));}switch(theme){case'light':getExtensions.push(defaultLightThemeOption);break;case'dark':getExtensions.push(theme_one_dark_.oneDark);break;case'none':break;default:getExtensions.push(theme);break;}if(editable===false){getExtensions.push(view_.EditorView.editable.of(false));}if(readOnly){getExtensions.push(state_.EditorState.readOnly.of(true));}if(onUpdate&&typeof onUpdate==='function'){getExtensions.push(view_.EditorView.updateListener.of(onUpdate));}getExtensions=getExtensions.concat(extensions);(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function(){if(container&&!state){var config={doc:value,selection:selection,extensions:getExtensions};var stateCurrent=initialState?state_.EditorState.fromJSON(initialState.json,config,initialState.fields):state_.EditorState.create(config);setState(stateCurrent);if(!view){var viewCurrent=new view_.EditorView({state:stateCurrent,parent:container,root:root});setView(viewCurrent);onCreateEditor&&onCreateEditor(viewCurrent,stateCurrent);}}return function(){if(view){setState(undefined);setView(undefined);}};},[container,state]);(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function(){return setContainer(props.container);},[props.container]);(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function(){return function(){if(view){view.destroy();setView(undefined);}};},[view]);(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function(){if(autoFocus&&view){view.focus();}},[autoFocus,view]);(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function(){if(view){view.dispatch({effects:state_.StateEffect.reconfigure.of(getExtensions)});}// eslint-disable-next-line react-hooks/exhaustive-deps
10880
- },[theme,extensions,height,minHeight,maxHeight,width,minWidth,maxWidth,placeholderStr,editable,readOnly,defaultIndentWithTab,defaultBasicSetup,onChange,onUpdate]);(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function(){var currentValue=view?view.state.doc.toString():'';if(view&&value!==currentValue){view.dispatch({changes:{from:0,to:currentValue.length,insert:value||''}});}},[value,view]);return{state:state,setState:setState,view:view,setView:setView,container:container,setContainer:setContainer};}
10882
+ },[theme,extensions,height,minHeight,maxHeight,width,minWidth,maxWidth,placeholderStr,editable,readOnly,defaultIndentWithTab,defaultBasicSetup,onChange,onUpdate]);(0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function(){if(value===undefined){return;}var currentValue=view?view.state.doc.toString():'';if(view&&value!==currentValue){view.dispatch({changes:{from:0,to:currentValue.length,insert:value||''}});}},[value,view]);return{state:state,setState:setState,view:view,setView:setView,container:container,setContainer:setContainer};}
10881
10883
  // EXTERNAL MODULE: ../node_modules/react/jsx-runtime.js
10882
10884
  var jsx_runtime = __webpack_require__(605);
10883
10885
  ;// CONCATENATED MODULE: ./src/index.tsx
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see mdeditor.min.js.LICENSE.txt */
2
- !function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("react"),require("@codemirror/state"),require("@codemirror/theme-one-dark"),require("@codemirror/view")):"function"===typeof define&&define.amd?define(["react",,,],t):"object"===typeof exports?exports["@uiw/codemirror"]=t(require("react"),require("@codemirror/state"),require("@codemirror/theme-one-dark"),require("@codemirror/view")):e["@uiw/codemirror"]=t(e.React,e.CM["@codemirror/state"],e.CM["@codemirror/theme-one-dark"],e.CM["@codemirror/view"])}(self,((e,t,n,i)=>(()=>{"use strict";var r={298:(e,t,n)=>{var i=n(787),r=Symbol.for("react.element"),o=Symbol.for("react.fragment"),s=Object.prototype.hasOwnProperty,l=i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,a={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var i,o={},c=null,h=null;for(i in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(h=t.ref),t)s.call(t,i)&&!a.hasOwnProperty(i)&&(o[i]=t[i]);if(e&&e.defaultProps)for(i in t=e.defaultProps)void 0===o[i]&&(o[i]=t[i]);return{$$typeof:r,type:e,key:c,ref:h,props:o,_owner:l.current}}t.jsx=c},605:(e,t,n)=>{e.exports=n(298)},787:t=>{t.exports=e},242:e=>{e.exports=t},362:e=>{e.exports=n},105:e=>{e.exports=i}},o={};function s(e){var t=o[e];if(void 0!==t)return t.exports;var n=o[e]={exports:{}};return r[e](n,n.exports,s),n.exports}s.d=(e,t)=>{for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s.r=e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var l={};return(()=>{function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(t){var n=function(t,n){if("object"!==e(t)||null===t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var r=i.call(t,n||"default");if("object"!==e(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(t)}(t,"string");return"symbol"===e(n)?n:String(n)}function n(e,n,i){return(n=t(n))in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function r(e,t){if(null==e)return{};var n,i,r=function(e,t){if(null==e)return{};var n,i,r={},o=Object.keys(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}s.r(l),s.d(l,{basicSetup:()=>Fo,default:()=>Ho,getStatistics:()=>jo,minimalSetup:()=>Wo,useCodeMirror:()=>qo});var o=s(787);function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}function c(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var i,r,o,s,l=[],a=!0,c=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;a=!1}else for(;!(a=(i=o.call(n)).done)&&(l.push(i.value),l.length!==t);a=!0);}catch(h){c=!0,r=h}finally{try{if(!a&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"===typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var h=s(242),u=s(105);const f=1024;let d=0;class p{constructor(e,t){this.from=e,this.to=t}}class m{constructor(e={}){this.id=d++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return"function"!=typeof e&&(e=y.match(e)),t=>{let n=e(t);return void 0===n?null:[this,n]}}}m.closedBy=new m({deserialize:e=>e.split(" ")}),m.openedBy=new m({deserialize:e=>e.split(" ")}),m.group=new m({deserialize:e=>e.split(" ")}),m.contextHash=new m({perNode:!0}),m.lookAhead=new m({perNode:!0}),m.mounted=new m({perNode:!0});const g=Object.create(null);class y{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):g,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(null==e.name?8:0),i=new y(e.name||"",t,e.id,n);if(e.props)for(let r of e.props)if(Array.isArray(r)||(r=r(i)),r){if(r[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[r[0].id]=r[1]}return i}prop(e){return this.props[e.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(e){if("string"==typeof e){if(this.name==e)return!0;let t=this.prop(m.group);return!!t&&t.indexOf(e)>-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 e=>{for(let n=e.prop(m.group),i=-1;i<(n?n.length:0);i++){let r=t[i<0?e.name:n[i]];if(r)return r}}}}y.none=new y("",Object.create(null),0,8);const v=new WeakMap,b=new WeakMap;var w;!function(e){e[e.ExcludeBuffers=1]="ExcludeBuffers",e[e.IncludeAnonymous=2]="IncludeAnonymous",e[e.IgnoreMounts=4]="IgnoreMounts",e[e.IgnoreOverlays=8]="IgnoreOverlays"}(w||(w={}));class x{constructor(e,t,n,i,r){if(this.type=e,this.children=t,this.positions=n,this.length=i,this.props=null,r&&r.length){this.props=Object.create(null);for(let[e,t]of r)this.props["number"==typeof e?e:e.id]=t}}toString(){let e=this.prop(m.mounted);if(e&&!e.overlay)return e.tree.toString();let t="";for(let n of this.children){let e=n.toString();e&&(t&&(t+=","),t+=e)}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 T(this.topNode,e)}cursorAt(e,t=0,n=0){let i=v.get(this)||this.topNode,r=new T(i);return r.moveTo(e,t),v.set(this,r._tree),r}get topNode(){return new O(this,0,0,null)}resolve(e,t=0){let n=E(v.get(this)||this.topNode,e,t,!1);return v.set(this,n),n}resolveInner(e,t=0){let n=E(b.get(this)||this.topNode,e,t,!0);return b.set(this,n),n}iterate(e){let{enter:t,leave:n,from:i=0,to:r=this.length}=e;for(let o=this.cursor((e.mode||0)|w.IncludeAnonymous);;){let e=!1;if(o.from<=r&&o.to>=i&&(o.type.isAnonymous||!1!==t(o))){if(o.firstChild())continue;e=!0}for(;e&&n&&!o.type.isAnonymous&&n(o),!o.nextSibling();){if(!o.parent())return;e=!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:L(y.none,this.children,this.positions,0,this.children.length,0,this.length,((e,t,n)=>new x(this.type,e,t,n,this.propValues)),e.makeTree||((e,t,n)=>new x(y.none,e,t,n)))}static build(e){return function(e){var t;let{buffer:n,nodeSet:i,maxBufferLength:r=f,reused:o=[],minRepeatType:s=i.types.length}=e,l=Array.isArray(n)?new k(n,n.length):n,a=i.types,c=0,h=0;function u(e,t,n,f,m){let{id:b,start:w,end:x,size:k}=l,C=h;for(;k<0;){if(l.next(),-1==k){let t=o[b];return n.push(t),void f.push(w-e)}if(-3==k)return void(c=b);if(-4==k)return void(h=b);throw new RangeError(`Unrecognized record size: ${k}`)}let A,E,O=a[b],M=w-e;if(x-w<=r&&(E=y(l.pos-t,m))){let t=new Uint16Array(E.size-E.skip),n=l.pos-E.size,r=t.length;for(;l.pos>n;)r=v(E.start,t,r);A=new S(t,x-E.start,i),M=E.start-e}else{let e=l.pos-k;l.next();let t=[],n=[],i=b>=s?b:-1,o=0,a=x;for(;l.pos>e;)i>=0&&l.id==i&&l.size>=0?(l.end<=a-r&&(p(t,n,w,o,l.end,a,i,C),o=t.length,a=l.end),l.next()):u(w,e,t,n,i);if(i>=0&&o>0&&o<t.length&&p(t,n,w,o,w,a,i,C),t.reverse(),n.reverse(),i>-1&&o>0){let e=d(O);A=L(O,t,n,0,t.length,0,x-w,e,e)}else A=g(O,t,n,x-w,C-x)}n.push(A),f.push(M)}function d(e){return(t,n,i)=>{let r,o,s=0,l=t.length-1;if(l>=0&&(r=t[l])instanceof x){if(!l&&r.type==e&&r.length==i)return r;(o=r.prop(m.lookAhead))&&(s=n[l]+r.length+o)}return g(e,t,n,i,s)}}function p(e,t,n,r,o,s,l,a){let c=[],h=[];for(;e.length>r;)c.push(e.pop()),h.push(t.pop()+n-o);e.push(g(i.types[l],c,h,s-o,a-s)),t.push(o-n)}function g(e,t,n,i,r=0,o){if(c){let e=[m.contextHash,c];o=o?[e].concat(o):[e]}if(r>25){let e=[m.lookAhead,r];o=o?[e].concat(o):[e]}return new x(e,t,n,i,o)}function y(e,t){let n=l.fork(),i=0,o=0,a=0,c=n.end-r,h={size:0,start:0,skip:0};e:for(let r=n.pos-e;n.pos>r;){let e=n.size;if(n.id==t&&e>=0){h.size=i,h.start=o,h.skip=a,a+=4,i+=4,n.next();continue}let l=n.pos-e;if(e<0||l<r||n.start<c)break;let u=n.id>=s?4:0,f=n.start;for(n.next();n.pos>l;){if(n.size<0){if(-3!=n.size)break e;u+=4}else n.id>=s&&(u+=4);n.next()}o=f,i+=e,a+=u}return(t<0||i==e)&&(h.size=i,h.start=o,h.skip=a),h.size>4?h:void 0}function v(e,t,n){let{id:i,start:r,end:o,size:a}=l;if(l.next(),a>=0&&i<s){let s=n;if(a>4){let i=l.pos-(a-4);for(;l.pos>i;)n=v(e,t,n)}t[--n]=s,t[--n]=o-e,t[--n]=r-e,t[--n]=i}else-3==a?c=i:-4==a&&(h=i);return n}let b=[],w=[];for(;l.pos>0;)u(e.start||0,e.bufferStart||0,b,w,-1);let C=null!==(t=e.length)&&void 0!==t?t:b.length?w[0]+b[0].length:0;return new x(a[e.topID],b.reverse(),w.reverse(),C)}(e)}}x.empty=new x(y.none,[],[],0);class k{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 k(this.buffer,this.index)}}class S{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return y.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],r=i.name;if(/\W/.test(r)&&!i.isError&&(r=JSON.stringify(r)),n==(e+=4))return r;let o=[];for(;e<n;)o.push(this.childString(e)),e=this.buffer[e+3];return r+"("+o.join(",")+")"}findChild(e,t,n,i,r){let{buffer:o}=this,s=-1;for(let l=e;l!=t&&!(C(r,i,o[l+1],o[l+2])&&(s=l,n>0));l=o[l+3]);return s}slice(e,t,n){let i=this.buffer,r=new Uint16Array(t-e),o=0;for(let s=e,l=0;s<t;){r[l++]=i[s++],r[l++]=i[s++]-n;let t=r[l++]=i[s++]-n;r[l++]=i[s++]-e,o=Math.max(o,t)}return new S(r,o,this.set)}}function C(e,t,n,i){switch(e){case-2:return n<t;case-1:return i>=t&&n<t;case 0:return n<t&&i>t;case 1:return n<=t&&i>t;case 2:return i>t;case 4:return!0}}function A(e,t){let n=e.childBefore(t);for(;n;){let t=n.lastChild;if(!t||t.to!=n.to)break;t.type.isError&&t.from==t.to?(e=n,n=t.prevSibling):n=t}return e}function E(e,t,n,i){for(var r;e.from==e.to||(n<1?e.from>=t:e.from>t)||(n>-1?e.to<=t:e.to<t);){let t=!i&&e instanceof O&&e.index<0?null:e.parent;if(!t)return e;e=t}let o=i?0:w.IgnoreOverlays;if(i)for(let s=e,l=s.parent;l;s=l,l=s.parent)s instanceof O&&s.index<0&&(null===(r=l.enter(t,n,o))||void 0===r?void 0:r.from)!=s.from&&(e=l);for(;;){let i=e.enter(t,n,o);if(!i)return e;e=i}}class O{constructor(e,t,n,i){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,r=0){for(let o=this;;){for(let{children:s,positions:l}=o._tree,a=t>0?s.length:-1;e!=a;e+=t){let a=s[e],c=l[e]+o.from;if(C(i,n,c,c+a.length))if(a instanceof S){if(r&w.ExcludeBuffers)continue;let s=a.findChild(0,a.buffer.length,t,n-c,i);if(s>-1)return new I(new P(o,a,e,c),null,s)}else if(r&w.IncludeAnonymous||!a.type.isAnonymous||B(a)){let s;if(!(r&w.IgnoreMounts)&&a.props&&(s=a.prop(m.mounted))&&!s.overlay)return new O(s.tree,c,e,o);let l=new O(a,c,e,o);return r&w.IncludeAnonymous||!l.type.isAnonymous?l:l.nextChild(t<0?a.children.length-1:0,t,n,i)}}if(r&w.IncludeAnonymous||!o.type.isAnonymous)return null;if(e=o.index>=0?o.index+t:t<0?-1:o._parent._tree.children.length,o=o._parent,!o)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)}enter(e,t,n=0){let i;if(!(n&w.IgnoreOverlays)&&(i=this._tree.prop(m.mounted))&&i.overlay){let n=e-this.from;for(let{from:e,to:r}of i.overlay)if((t>0?e<=n:e<n)&&(t<0?r>=n:r>n))return new O(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}cursor(e=0){return new T(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return E(this,e,t,!1)}resolveInner(e,t=0){return E(this,e,t,!0)}enterUnfinishedNodesBefore(e){return A(this,e)}getChild(e,t=null,n=null){let i=M(this,e,t,n);return i.length?i[0]:null}getChildren(e,t=null,n=null){return M(this,e,t,n)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return D(this,e)}}function M(e,t,n,i){let r=e.cursor(),o=[];if(!r.firstChild())return o;if(null!=n)for(;!r.type.is(n);)if(!r.nextSibling())return o;for(;;){if(null!=i&&r.type.is(i))return o;if(r.type.is(t)&&o.push(r.node),!r.nextSibling())return null==i?o:[]}}function D(e,t,n=t.length-1){for(let i=e.parent;n>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(t[n]&&t[n]!=i.name)return!1;n--}}return!0}class P{constructor(e,t,n,i){this.parent=e,this.buffer=t,this.index=n,this.start=i}}class I{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){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,r=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.context.start,n);return r<0?null:new I(this.context,this,r)}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)}enter(e,t,n=0){if(n&w.ExcludeBuffers)return null;let{buffer:i}=this.context,r=i.findChild(this.index+4,i.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return r<0?null:new I(this.context,this,r)}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 I(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 I(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new T(this,e)}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,i=this.index+4,r=n.buffer[this.index+3];if(r>i){let o=n.buffer[this.index+1];e.push(n.slice(i,r,o)),t.push(0)}return new x(this.type,e,t,this.to-this.from)}resolve(e,t=0){return E(this,e,t,!1)}resolveInner(e,t=0){return E(this,e,t,!0)}enterUnfinishedNodesBefore(e){return A(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,n=null){let i=M(this,e,t,n);return i.length?i[0]:null}getChildren(e,t=null,n=null){return M(this,e,t,n)}get node(){return this}matchContext(e){return D(this,e)}}class T{get name(){return this.type.name}constructor(e,t=0){if(this.mode=t,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof O)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let t=e._parent;t;t=t._parent)this.stack.unshift(t.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)}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 O?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)))}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,r=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.buffer.start,n);return!(r<0)&&(this.stack.push(this.index),this.yieldBuf(r))}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&w.ExcludeBuffers)&&this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&w.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&w.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));let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let e=n<0?0:this.stack[n]+4;if(this.index!=e)return this.yieldBuf(t.findChild(e,this.index,-1,0,4))}else{let e=t.buffer[this.index+3];if(e<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(e)}return n<0&&this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode))}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 e=0;e<this.index;e++)if(i.buffer.buffer[e+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 i=t+e,r=e<0?-1:n._tree.children.length;i!=r;i+=e){let e=n._tree.children[i];if(this.mode&w.IncludeAnonymous||e instanceof S||!e.type.isAnonymous||B(e))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,r=this.stack.length;r>=0;){for(let o=e;o;o=o._parent)if(o.index==i){if(i==this.index)return o;t=o,n=r+1;break e}i=this.stack[--r]}for(let i=n;i<this.stack.length;i++)t=new I(this.buffer,t,this.stack[i]);return this.bufferNode=new I(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||!1!==e(this)){if(this.firstChild()){n++;continue}this.type.isAnonymous||(i=!0)}for(;i&&t&&t(this),i=this.type.isAnonymous,!this.nextSibling();){if(!n)return;this.parent(),n--,i=!0}}}matchContext(e){if(!this.buffer)return D(this.node,e);let{buffer:t}=this.buffer,{types:n}=t.set;for(let i=e.length-1,r=this.stack.length-1;i>=0;r--){if(r<0)return D(this.node,e,i);let o=n[t.buffer[this.stack[r]]];if(!o.isAnonymous){if(e[i]&&e[i]!=o.name)return!1;i--}}return!0}}function B(e){return e.children.some((e=>e instanceof S||!e.type.isAnonymous||B(e)))}const N=new WeakMap;function R(e,t){if(!e.isAnonymous||t instanceof S||t.type!=e)return 1;let n=N.get(t);if(null==n){n=1;for(let i of t.children){if(i.type!=e||!(i instanceof x)){n=1;break}n+=R(e,i)}N.set(t,n)}return n}function L(e,t,n,i,r,o,s,l,a){let c=0;for(let d=i;d<r;d++)c+=R(e,t[d]);let h=Math.ceil(1.5*c/8),u=[],f=[];return function t(n,i,r,s,l){for(let c=r;c<s;){let r=c,d=i[c],p=R(e,n[c]);for(c++;c<s;c++){let t=R(e,n[c]);if(p+t>=h)break;p+=t}if(c==r+1){if(p>h){let e=n[r];t(e.children,e.positions,0,e.children.length,i[r]+l);continue}u.push(n[r])}else{let t=i[c-1]+n[c-1].length-d;u.push(L(e,n,i,r,c,d,t,null,a))}f.push(d+l-o)}}(t,n,i,r,0),(l||a)(u,f,s)}class _{constructor(e,t,n,i,r=!1,o=!1){this.from=e,this.to=t,this.tree=n,this.offset=i,this.open=(r?1:0)|(o?2:0)}get openStart(){return(1&this.open)>0}get openEnd(){return(2&this.open)>0}static addTree(e,t=[],n=!1){let i=[new _(0,e.length,e,0,!1,n)];for(let r of t)r.to>e.length&&i.push(r);return i}static applyChanges(e,t,n=128){if(!t.length)return e;let i=[],r=1,o=e.length?e[0]:null;for(let s=0,l=0,a=0;;s++){let c=s<t.length?t[s]:null,h=c?c.fromA:1e9;if(h-l>=n)for(;o&&o.from<h;){let t=o;if(l>=t.from||h<=t.to||a){let e=Math.max(t.from,l)-a,n=Math.min(t.to,h)-a;t=e>=n?null:new _(e,n,t.tree,t.offset+a,s>0,!!c)}if(t&&i.push(t),o.to>h)break;o=r<e.length?e[r++]:null}if(!c)break;l=c.toA,a=c.toA-c.toB}return i}}class F{startParse(e,t,n){return"string"==typeof e&&(e=new W(e)),n=n?n.length?n.map((e=>new p(e.from,e.to))):[new p(0,0)]:[new p(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let i=this.startParse(e,t,n);for(;;){let e=i.advance();if(e)return e}}}class W{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)}}new m({perNode:!0});let V=0;class j{constructor(e,t,n){this.set=e,this.base=t,this.modified=n,this.id=V++}static define(e){if(null===e||void 0===e?void 0:e.base)throw new Error("Can not derive from a modified tag");let t=new j([],null,[]);if(t.set.push(t),e)for(let n of e.set)t.set.push(n);return t}static defineModifier(){let e=new z;return t=>t.modified.indexOf(e)>-1?t:z.get(t.base||t,t.modified.concat(e).sort(((e,t)=>e.id-t.id)))}}let q=0;class z{constructor(){this.instances=[],this.id=q++}static get(e,t){if(!t.length)return e;let n=t[0].instances.find((n=>{return n.base==e&&(i=t,r=n.modified,i.length==r.length&&i.every(((e,t)=>e==r[t])));var i,r}));if(n)return n;let i=[],r=new j(i,e,t);for(let s of t)s.instances.push(r);let o=function(e){let t=[[]];for(let n=0;n<e.length;n++)for(let i=0,r=t.length;i<r;i++)t.push(t[i].concat(e[n]));return t.sort(((e,t)=>t.length-e.length))}(t);for(let s of e.set)if(!s.modified.length)for(let e of o)i.push(z.get(s,e));return r}}function U(e){let t=Object.create(null);for(let n in e){let i=e[n];Array.isArray(i)||(i=[i]);for(let e of n.split(" "))if(e){let n=[],r=2,o=e;for(let t=0;;){if("..."==o&&t>0&&t+3==e.length){r=1;break}let i=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(o);if(!i)throw new RangeError("Invalid path: "+e);if(n.push("*"==i[0]?"":'"'==i[0][0]?JSON.parse(i[0]):i[0]),t+=i[0].length,t==e.length)break;let s=e[t++];if(t==e.length&&"!"==s){r=0;break}if("/"!=s)throw new RangeError("Invalid path: "+e);o=e.slice(t)}let s=n.length-1,l=n[s];if(!l)throw new RangeError("Invalid path: "+e);let a=new H(i,r,s>0?n.slice(0,s):null);t[l]=a.sort(t[l])}}return $.add(t)}const $=new m;class H{constructor(e,t,n,i){this.tags=e,this.mode=t,this.context=n,this.next=i}get opaque(){return 0==this.mode}get inherit(){return 1==this.mode}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}}function J(e,t){let n=Object.create(null);for(let o of e)if(Array.isArray(o.tag))for(let e of o.tag)n[e.id]=o.class;else n[o.tag.id]=o.class;let{scope:i,all:r=null}=t||{};return{style:e=>{let t=r;for(let i of e)for(let e of i.set){let i=n[e.id];if(i){t=t?t+" "+i:i;break}}return t},scope:i}}function G(e,t,n,i=0,r=e.length){let o=new K(i,Array.isArray(t)?t:[t],n);o.highlightRange(e.cursor(),i,r,"",o.highlighters),o.flush(r)}H.empty=new H([],2,null);class K{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,r){let{type:o,from:s,to:l}=e;if(s>=n||l<=t)return;o.isTop&&(r=this.highlighters.filter((e=>!e.scope||e.scope(o))));let a=i,c=function(e){let t=e.type.prop($);for(;t&&t.context&&!e.matchContext(t.context);)t=t.next;return t||null}(e)||H.empty,h=function(e,t){let n=null;for(let i of e){let e=i.style(t);e&&(n=n?n+" "+e:e)}return n}(r,c.tags);if(h&&(a&&(a+=" "),a+=h,1==c.mode&&(i+=(i?" ":"")+h)),this.startSpan(e.from,a),c.opaque)return;let u=e.tree&&e.tree.prop(m.mounted);if(u&&u.overlay){let o=e.node.enter(u.overlay[0].from+s,1),c=this.highlighters.filter((e=>!e.scope||e.scope(u.tree.type))),h=e.firstChild();for(let f=0,d=s;;f++){let p=f<u.overlay.length?u.overlay[f]:null,m=p?p.from+s:l,g=Math.max(t,d),y=Math.min(n,m);if(g<y&&h)for(;e.from<y&&(this.highlightRange(e,g,y,i,r),this.startSpan(Math.min(y,e.to),a),!(e.to>=m)&&e.nextSibling()););if(!p||m>n)break;d=p.to+s,d>t&&(this.highlightRange(o.cursor(),Math.max(t,p.from+s),Math.min(n,d),i,c),this.startSpan(d,a))}h&&e.parent()}else if(e.firstChild()){do{if(!(e.to<=t)){if(e.from>=n)break;this.highlightRange(e,t,n,i,r),this.startSpan(Math.min(n,e.to),a)}}while(e.nextSibling());e.parent()}}}const Q=j.define,Y=Q(),X=Q(),Z=Q(X),ee=Q(X),te=Q(),ne=Q(te),ie=Q(te),re=Q(),oe=Q(re),se=Q(),le=Q(),ae=Q(),ce=Q(ae),he=Q(),ue={comment:Y,lineComment:Q(Y),blockComment:Q(Y),docComment:Q(Y),name:X,variableName:Q(X),typeName:Z,tagName:Q(Z),propertyName:ee,attributeName:Q(ee),className:Q(X),labelName:Q(X),namespace:Q(X),macroName:Q(X),literal:te,string:ne,docString:Q(ne),character:Q(ne),attributeValue:Q(ne),number:ie,integer:Q(ie),float:Q(ie),bool:Q(te),regexp:Q(te),escape:Q(te),color:Q(te),url:Q(te),keyword:se,self:Q(se),null:Q(se),atom:Q(se),unit:Q(se),modifier:Q(se),operatorKeyword:Q(se),controlKeyword:Q(se),definitionKeyword:Q(se),moduleKeyword:Q(se),operator:le,derefOperator:Q(le),arithmeticOperator:Q(le),logicOperator:Q(le),bitwiseOperator:Q(le),compareOperator:Q(le),updateOperator:Q(le),definitionOperator:Q(le),typeOperator:Q(le),controlOperator:Q(le),punctuation:ae,separator:Q(ae),bracket:ce,angleBracket:Q(ce),squareBracket:Q(ce),paren:Q(ce),brace:Q(ce),content:re,heading:oe,heading1:Q(oe),heading2:Q(oe),heading3:Q(oe),heading4:Q(oe),heading5:Q(oe),heading6:Q(oe),contentSeparator:Q(re),list:Q(re),quote:Q(re),emphasis:Q(re),strong:Q(re),link:Q(re),monospace:Q(re),strikethrough:Q(re),inserted:Q(),deleted:Q(),changed:Q(),invalid:Q(),meta:he,documentMeta:Q(he),annotation:Q(he),processingInstruction:Q(he),definition:j.defineModifier(),constant:j.defineModifier(),function:j.defineModifier(),standard:j.defineModifier(),local:j.defineModifier(),special:j.defineModifier()},fe=(J([{tag:ue.link,class:"tok-link"},{tag:ue.heading,class:"tok-heading"},{tag:ue.emphasis,class:"tok-emphasis"},{tag:ue.strong,class:"tok-strong"},{tag:ue.keyword,class:"tok-keyword"},{tag:ue.atom,class:"tok-atom"},{tag:ue.bool,class:"tok-bool"},{tag:ue.url,class:"tok-url"},{tag:ue.labelName,class:"tok-labelName"},{tag:ue.inserted,class:"tok-inserted"},{tag:ue.deleted,class:"tok-deleted"},{tag:ue.literal,class:"tok-literal"},{tag:ue.string,class:"tok-string"},{tag:ue.number,class:"tok-number"},{tag:[ue.regexp,ue.escape,ue.special(ue.string)],class:"tok-string2"},{tag:ue.variableName,class:"tok-variableName"},{tag:ue.local(ue.variableName),class:"tok-variableName tok-local"},{tag:ue.definition(ue.variableName),class:"tok-variableName tok-definition"},{tag:ue.special(ue.variableName),class:"tok-variableName2"},{tag:ue.definition(ue.propertyName),class:"tok-propertyName tok-definition"},{tag:ue.typeName,class:"tok-typeName"},{tag:ue.namespace,class:"tok-namespace"},{tag:ue.className,class:"tok-className"},{tag:ue.macroName,class:"tok-macroName"},{tag:ue.propertyName,class:"tok-propertyName"},{tag:ue.operator,class:"tok-operator"},{tag:ue.comment,class:"tok-comment"},{tag:ue.meta,class:"tok-meta"},{tag:ue.invalid,class:"tok-invalid"},{tag:ue.punctuation,class:"tok-punctuation"}]),"undefined"==typeof Symbol?"__\u037c":Symbol.for("\u037c")),de="undefined"==typeof Symbol?"__styleSet"+Math.floor(1e8*Math.random()):Symbol("styleSet"),pe="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:{};class me{constructor(e,t){this.rules=[];let{finish:n}=t||{};function i(e){return/^@/.test(e)?[e]:e.split(/,\s*/)}function r(e,t,o,s){let l=[],a=/^@(\w+)\b/.exec(e[0]),c=a&&"keyframes"==a[1];if(a&&null==t)return o.push(e[0]+";");for(let n in t){let s=t[n];if(/&/.test(n))r(n.split(/,\s*/).map((t=>e.map((e=>t.replace(/&/,e))))).reduce(((e,t)=>e.concat(t))),s,o);else if(s&&"object"==typeof s){if(!a)throw new RangeError("The value of a property ("+n+") should be a primitive value.");r(i(n),s,l,c)}else null!=s&&l.push(n.replace(/_.*/,"").replace(/[A-Z]/g,(e=>"-"+e.toLowerCase()))+": "+s+";")}(l.length||c)&&o.push((!n||a||s?e:e.map(n)).join(", ")+" {"+l.join(" ")+"}")}for(let o in e)r(i(o),e[o],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let e=pe[fe]||1;return pe[fe]=e+1,"\u037c"+e.toString(36)}static mount(e,t){(e[de]||new ye(e)).mount(Array.isArray(t)?t:[t])}}let ge=null;class ye{constructor(e){if(!e.head&&e.adoptedStyleSheets&&"undefined"!=typeof CSSStyleSheet){if(ge)return e.adoptedStyleSheets=[ge.sheet].concat(e.adoptedStyleSheets),e[de]=ge;this.sheet=new CSSStyleSheet,e.adoptedStyleSheets=[this.sheet].concat(e.adoptedStyleSheets),ge=this}else{this.styleTag=(e.ownerDocument||e).createElement("style");let t=e.head||e;t.insertBefore(this.styleTag,t.firstChild)}this.modules=[],e[de]=this}mount(e){let t=this.sheet,n=0,i=0;for(let r=0;r<e.length;r++){let o=e[r],s=this.modules.indexOf(o);if(s<i&&s>-1&&(this.modules.splice(s,1),i--,s=-1),-1==s){if(this.modules.splice(i++,0,o),t)for(let e=0;e<o.rules.length;e++)t.insertRule(o.rules[e],n++)}else{for(;i<s;)n+=this.modules[i++].rules.length;n+=o.rules.length,i++}}if(!t){let e="";for(let t=0;t<this.modules.length;t++)e+=this.modules[t].getRules()+"\n";this.styleTag.textContent=e}}}var ve;const be=new m;class we{constructor(e,t,n=[],i=""){this.data=e,this.name=i,h.EditorState.prototype.hasOwnProperty("tree")||Object.defineProperty(h.EditorState.prototype,"tree",{get(){return ke(this)}}),this.parser=t,this.extension=[Ie.of(this),h.EditorState.languageData.of(((e,t,n)=>e.facet(xe(e,t,n))))].concat(n)}isActiveAt(e,t,n=-1){return xe(e,t,n)==this.data}findRegions(e){let t=e.facet(Ie);if((null===t||void 0===t?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let n=[],i=(e,t)=>{if(e.prop(be)==this.data)return void n.push({from:t,to:t+e.length});let r=e.prop(m.mounted);if(r){if(r.tree.prop(be)==this.data){if(r.overlay)for(let e of r.overlay)n.push({from:e.from+t,to:e.to+t});else n.push({from:t,to:t+e.length});return}if(r.overlay){let e=n.length;if(i(r.tree,r.overlay[0].from+t),n.length>e)return}}for(let n=0;n<e.children.length;n++){let r=e.children[n];r instanceof x&&i(r,e.positions[n]+t)}};return i(ke(e),0),n}get allowsNesting(){return!0}}function xe(e,t,n){let i=e.facet(Ie);if(!i)return null;let r=i.data;if(i.allowsNesting)for(let o=ke(e).topNode;o;o=o.enter(t,n,w.ExcludeBuffers))r=o.type.prop(be)||r;return r}we.setState=h.StateEffect.define();function ke(e){let t=e.field(we.state,!1);return t?t.tree:x.empty}class Se{constructor(e,t=e.length){this.doc=e,this.length=t,this.cursorPos=0,this.string="",this.cursor=e.iter()}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)}}let Ce=null;class Ae{constructor(e,t,n=[],i,r,o,s,l){this.parser=e,this.state=t,this.fragments=n,this.tree=i,this.treeLen=r,this.viewport=o,this.skipped=s,this.scheduleOn=l,this.parse=null,this.tempSkipped=[]}static create(e,t,n){return new Ae(e,t,[],x.empty,0,n,[],null)}startParse(){return this.parser.startParse(new Se(this.state.doc),this.fragments)}work(e,t){return null!=t&&t>=this.state.doc.length&&(t=void 0),this.tree!=x.empty&&this.isDone(null!==t&&void 0!==t?t:this.state.doc.length)?(this.takeTree(),!0):this.withContext((()=>{var n;if("number"==typeof e){let t=Date.now()+e;e=()=>Date.now()>t}for(this.parse||(this.parse=this.startParse()),null!=t&&(null==this.parse.stoppedAt||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(_.addTree(i,this.fragments,null!=this.parse.stoppedAt)),this.treeLen=null!==(n=this.parse.stoppedAt)&&void 0!==n?n:this.state.doc.length,this.tree=i,this.parse=null,!(this.treeLen<(null!==t&&void 0!==t?t:this.state.doc.length)))return!0;this.parse=this.startParse()}if(e())return!1}}))}takeTree(){let e,t;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&&((null==this.parse.stoppedAt||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(_.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=Ce;Ce=this;try{return e()}finally{Ce=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=Ee(e,t.from,t.to);return e}changes(e,t){let{fragments:n,tree:i,treeLen:r,viewport:o,skipped:s}=this;if(this.takeTree(),!e.empty){let t=[];if(e.iterChangedRanges(((e,n,i,r)=>t.push({fromA:e,toA:n,fromB:i,toB:r}))),n=_.applyChanges(n,t),i=x.empty,r=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){s=[];for(let t of this.skipped){let n=e.mapPos(t.from,1),i=e.mapPos(t.to,-1);n<i&&s.push({from:n,to:i})}}}return new Ae(this.parser,t,n,i,r,o,s,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:t,to:i}=this.skipped[n];t<e.to&&i>e.from&&(this.fragments=Ee(this.fragments,t,i),this.skipped.splice(n--,1))}return!(this.skipped.length>=t)&&(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 F{createParse(t,n,i){let r=i[0].from,o=i[i.length-1].to;return{parsedPos:r,advance(){let t=Ce;if(t){for(let e of i)t.tempSkipped.push(e);e&&(t.scheduleOn=t.scheduleOn?Promise.all([t.scheduleOn,e]):e)}return this.parsedPos=o,new x(y.none,[],[],o-r)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&0==t[0].from&&t[0].to>=e}static get(){return Ce}}function Ee(e,t,n){return _.applyChanges(e,[{fromA:t,toA:n,fromB:t,toB:n}])}class Oe{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 Oe(t)}static init(e){let t=Math.min(3e3,e.doc.length),n=Ae.create(e.facet(Ie).parser,e,{from:0,to:t});return n.work(20,t)||n.takeTree(),new Oe(n)}}we.state=h.StateField.define({create:Oe.init,update(e,t){for(let n of t.effects)if(n.is(we.setState))return n.value;return t.startState.facet(Ie)!=t.state.facet(Ie)?Oe.init(t.state):e.apply(t)}});let Me=e=>{let t=setTimeout((()=>e()),500);return()=>clearTimeout(t)};"undefined"!=typeof requestIdleCallback&&(Me=e=>{let t=-1,n=setTimeout((()=>{t=requestIdleCallback(e,{timeout:400})}),100);return()=>t<0?clearTimeout(n):cancelIdleCallback(t)});const De="undefined"!=typeof navigator&&(null===(ve=navigator.scheduling)||void 0===ve?void 0:ve.isInputPending)?()=>navigator.scheduling.isInputPending():null,Pe=u.ViewPlugin.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(we.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),e.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(we.state);t.tree==t.context.tree&&t.context.isDone(e.doc.length)||(this.working=Me(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,r=n.field(we.state);if(r.tree==r.context.tree&&r.context.isDone(i+1e5))return;let o=Date.now()+Math.min(this.chunkBudget,100,e&&!De?Math.max(25,e.timeRemaining()-5):1e9),s=r.context.treeLen<i&&n.doc.length>i+1e3,l=r.context.work((()=>De&&De()||Date.now()>o),i+(s?0:1e5));this.chunkBudget-=Date.now()-t,(l||this.chunkBudget<=0)&&(r.context.takeTree(),this.view.dispatch({effects:we.setState.of(new Oe(r.context))})),this.chunkBudget>0&&(!l||s)&&this.scheduleWork(),this.checkAsyncSchedule(r.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then((()=>this.scheduleWork())).catch((e=>(0,u.logException)(this.view.state,e))).then((()=>this.workScheduled--)),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Ie=h.Facet.define({combine:e=>e.length?e[0]:null,enables:e=>[we.state,Pe,u.EditorView.contentAttributes.compute([e],(t=>{let n=t.facet(e);return n&&n.name?{"data-language":n.name}:{}}))]});const Te=h.Facet.define(),Be=h.Facet.define({combine:e=>{if(!e.length)return" ";if(!/^(?: +|\t+)$/.test(e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(e[0]));return e[0]}});function Ne(e){let t=e.facet(Be);return 9==t.charCodeAt(0)?e.tabSize*t.length:t.length}function Re(e,t){let n="",i=e.tabSize;if(9==e.facet(Be).charCodeAt(0))for(;t>=i;)n+="\t",t-=i;for(let r=0;r<t;r++)n+=" ";return n}function Le(e,t){e instanceof h.EditorState&&(e=new _e(e));for(let i of e.state.facet(Te)){let n=i(e,t);if(void 0!==n)return n}let n=ke(e.state);return n?function(e,t,n){return Ve(t.resolveInner(n).enterUnfinishedNodesBefore(n),n,e)}(e,n,t):null}class _e{constructor(e,t={}){this.state=e,this.options=t,this.unit=Ne(e)}lineAt(e,t=1){let n=this.state.doc.lineAt(e),{simulateBreak:i,simulateDoubleBreak:r}=this.options;return null!=i&&i>=n.from&&i<=n.to?r&&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),r=this.countColumn(n,e-i),o=this.options.overrideIndentation?this.options.overrideIndentation(i):-1;return o>-1&&(r+=o-this.countColumn(n,n.search(/\S|$/))),r}countColumn(e,t=e.length){return(0,h.countColumn)(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:n,from:i}=this.lineAt(e,t),r=this.options.overrideIndentation;if(r){let e=r(i);if(e>-1)return e}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const Fe=new m;function We(e){let t=e.type.prop(Fe);if(t)return t;let n,i=e.firstChild;if(i&&(n=i.type.prop(m.closedBy))){let t=e.lastChild,i=t&&n.indexOf(t.name)>-1;return e=>Ue(e,!0,1,void 0,i&&!function(e){return e.pos==e.options.simulateBreak&&e.options.simulateDoubleBreak}(e)?t.from:void 0)}return null==e.parent?je:null}function Ve(e,t,n){for(;e;e=e.parent){let i=We(e);if(i)return i(qe.create(n,t,e))}return null}function je(){return 0}class qe extends _e{constructor(e,t,n){super(e.state,e.options),this.base=e,this.pos=t,this.node=n}static create(e,t,n){return new qe(e,t,n)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){let e=this.state.doc.lineAt(this.node.from);for(;;){let t=this.node.resolve(e.from);for(;t.parent&&t.parent.from==t.from;)t=t.parent;if(ze(t,this.node))break;e=this.state.doc.lineAt(t.from)}return this.lineIndent(e.from)}continue(){let e=this.node.parent;return e?Ve(e,this.pos,this.base):0}}function ze(e,t){for(let n=t;n;n=n.parent)if(e==n)return!0;return!1}function Ue(e,t,n,i,r){let o=e.textAfter,s=o.match(/^\s*/)[0].length,l=i&&o.slice(s,s+i.length)==i||r==e.pos+s,a=t?function(e){let t=e.node,n=t.childAfter(t.from),i=t.lastChild;if(!n)return null;let r=e.options.simulateBreak,o=e.state.doc.lineAt(n.from),s=null==r||r<=o.from?o.to:Math.min(o.to,r);for(let l=n.to;;){let e=t.childAfter(l);if(!e||e==i)return null;if(!e.type.isSkipped)return e.from<s?n:null;l=e.to}}(e):null;return a?l?e.column(a.from):e.column(a.to):e.baseIndent+(l?0:e.unit*n)}const $e=h.Facet.define(),He=new m;function Je(e){let t=e.lastChild;return t&&t.to==e.to&&t.type.isError}function Ge(e,t,n){for(let i of e.facet($e)){let r=i(e,t,n);if(r)return r}return function(e,t,n){let i=ke(e);if(i.length<n)return null;let r=null;for(let o=i.resolveInner(n,1);o;o=o.parent){if(o.to<=n||o.from>n)continue;if(r&&o.from<t)break;let s=o.type.prop(He);if(s&&(o.to<i.length-50||i.length==e.doc.length||!Je(o))){let i=s(o,e);i&&i.from<=n&&i.from>=t&&i.to>n&&(r=i)}}return r}(e,t,n)}function Ke(e,t){let n=t.mapPos(e.from,1),i=t.mapPos(e.to,-1);return n>=i?void 0:{from:n,to:i}}const Qe=h.StateEffect.define({map:Ke}),Ye=h.StateEffect.define({map:Ke});function Xe(e){let t=[];for(let{head:n}of e.state.selection.ranges)t.some((e=>e.from<=n&&e.to>=n))||t.push(e.lineBlockAt(n));return t}const Ze=h.StateField.define({create:()=>u.Decoration.none,update(e,t){e=e.map(t.changes);for(let n of t.effects)n.is(Qe)&&!tt(e,n.value.from,n.value.to)?e=e.update({add:[at.range(n.value.from,n.value.to)]}):n.is(Ye)&&(e=e.update({filter:(e,t)=>n.value.from!=e||n.value.to!=t,filterFrom:n.value.from,filterTo:n.value.to}));if(t.selection){let n=!1,{head:i}=t.selection.main;e.between(i,i,((e,t)=>{e<i&&t>i&&(n=!0)})),n&&(e=e.update({filterFrom:i,filterTo:i,filter:(e,t)=>t<=i||e>=i}))}return e},provide:e=>u.EditorView.decorations.from(e),toJSON(e,t){let n=[];return e.between(0,t.doc.length,((e,t)=>{n.push(e,t)})),n},fromJSON(e){if(!Array.isArray(e)||e.length%2)throw new RangeError("Invalid JSON for fold state");let t=[];for(let n=0;n<e.length;){let i=e[n++],r=e[n++];if("number"!=typeof i||"number"!=typeof r)throw new RangeError("Invalid JSON for fold state");t.push(at.range(i,r))}return u.Decoration.set(t,!0)}});function et(e,t,n){var i;let r=null;return null===(i=e.field(Ze,!1))||void 0===i||i.between(t,n,((e,t)=>{(!r||r.from>e)&&(r={from:e,to:t})})),r}function tt(e,t,n){let i=!1;return e.between(t,t,((e,r)=>{e==t&&r==n&&(i=!0)})),i}function nt(e,t){return e.field(Ze,!1)?t:t.concat(h.StateEffect.appendConfig.of(lt()))}function it(e,t,n=!0){let i=e.state.doc.lineAt(t.from).number,r=e.state.doc.lineAt(t.to).number;return u.EditorView.announce.of(`${e.state.phrase(n?"Folded lines":"Unfolded lines")} ${i} ${e.state.phrase("to")} ${r}.`)}const rt=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:e=>{for(let t of Xe(e)){let n=Ge(e.state,t.from,t.to);if(n)return e.dispatch({effects:nt(e.state,[Qe.of(n),it(e,n)])}),!0}return!1}},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:e=>{if(!e.state.field(Ze,!1))return!1;let t=[];for(let n of Xe(e)){let i=et(e.state,n.from,n.to);i&&t.push(Ye.of(i),it(e,i,!1))}return t.length&&e.dispatch({effects:t}),t.length>0}},{key:"Ctrl-Alt-[",run:e=>{let{state:t}=e,n=[];for(let i=0;i<t.doc.length;){let r=e.lineBlockAt(i),o=Ge(t,r.from,r.to);o&&n.push(Qe.of(o)),i=(o?e.lineBlockAt(o.to):r).to+1}return n.length&&e.dispatch({effects:nt(e.state,n)}),!!n.length}},{key:"Ctrl-Alt-]",run:e=>{let t=e.state.field(Ze,!1);if(!t||!t.size)return!1;let n=[];return t.between(0,e.state.doc.length,((e,t)=>{n.push(Ye.of({from:e,to:t}))})),e.dispatch({effects:n}),!0}}],ot={placeholderDOM:null,placeholderText:"\u2026"},st=h.Facet.define({combine:e=>(0,h.combineConfig)(e,ot)});function lt(e){let t=[Ze,ut];return e&&t.push(st.of(e)),t}const at=u.Decoration.replace({widget:new class extends u.WidgetType{toDOM(e){let{state:t}=e,n=t.facet(st),i=t=>{let n=e.lineBlockAt(e.posAtDOM(t.target)),i=et(e.state,n.from,n.to);i&&e.dispatch({effects:Ye.of(i)}),t.preventDefault()};if(n.placeholderDOM)return n.placeholderDOM(e,i);let r=document.createElement("span");return r.textContent=n.placeholderText,r.setAttribute("aria-label",t.phrase("folded code")),r.title=t.phrase("unfold"),r.className="cm-foldPlaceholder",r.onclick=i,r}}}),ct={openText:"\u2304",closedText:"\u203a",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class ht extends u.GutterMarker{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}}const ut=u.EditorView.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"}});class ft{constructor(e,t){let n;function i(e){let t=me.newName();return(n||(n=Object.create(null)))["."+t]=e,t}this.specs=e;const r="string"==typeof t.all?t.all:t.all?i(t.all):void 0,o=t.scope;this.scope=o instanceof we?e=>e.prop(be)==o.data:o?e=>e==o:void 0,this.style=J(e.map((e=>({tag:e.tag,class:e.class||i(Object.assign({},e,{tag:null}))}))),{all:r}).style,this.module=n?new me(n):null,this.themeType=t.themeType}static define(e,t){return new ft(e,t||{})}}const dt=h.Facet.define(),pt=h.Facet.define({combine:e=>e.length?[e[0]]:null});function mt(e){let t=e.facet(dt);return t.length?t:e.facet(pt)}function gt(e,t){let n,i=[vt];return e instanceof ft&&(e.module&&i.push(u.EditorView.styleModule.of(e.module)),n=e.themeType),(null===t||void 0===t?void 0:t.fallback)?i.push(pt.of(e)):n?i.push(dt.computeN([u.EditorView.darkTheme],(t=>t.facet(u.EditorView.darkTheme)==("dark"==n)?[e]:[]))):i.push(dt.of(e)),i}class yt{constructor(e){this.markCache=Object.create(null),this.tree=ke(e.state),this.decorations=this.buildDeco(e,mt(e.state))}update(e){let t=ke(e.state),n=mt(e.state),i=n!=mt(e.startState);t.length<e.view.viewport.to&&!i&&t.type==this.tree.type?this.decorations=this.decorations.map(e.changes):(t!=this.tree||e.viewportChanged||i)&&(this.tree=t,this.decorations=this.buildDeco(e.view,n))}buildDeco(e,t){if(!t||!this.tree.length)return u.Decoration.none;let n=new h.RangeSetBuilder;for(let{from:i,to:r}of e.visibleRanges)G(this.tree,t,((e,t,i)=>{n.add(e,t,this.markCache[i]||(this.markCache[i]=u.Decoration.mark({class:i})))}),i,r);return n.finish()}}const vt=h.Prec.high(u.ViewPlugin.fromClass(yt,{decorations:e=>e.decorations})),bt=ft.define([{tag:ue.meta,color:"#7a757a"},{tag:ue.link,textDecoration:"underline"},{tag:ue.heading,textDecoration:"underline",fontWeight:"bold"},{tag:ue.emphasis,fontStyle:"italic"},{tag:ue.strong,fontWeight:"bold"},{tag:ue.strikethrough,textDecoration:"line-through"},{tag:ue.keyword,color:"#708"},{tag:[ue.atom,ue.bool,ue.url,ue.contentSeparator,ue.labelName],color:"#219"},{tag:[ue.literal,ue.inserted],color:"#164"},{tag:[ue.string,ue.deleted],color:"#a11"},{tag:[ue.regexp,ue.escape,ue.special(ue.string)],color:"#e40"},{tag:ue.definition(ue.variableName),color:"#00f"},{tag:ue.local(ue.variableName),color:"#30a"},{tag:[ue.typeName,ue.namespace],color:"#085"},{tag:ue.className,color:"#167"},{tag:[ue.special(ue.variableName),ue.macroName],color:"#256"},{tag:ue.definition(ue.propertyName),color:"#00c"},{tag:ue.comment,color:"#940"},{tag:ue.invalid,color:"#f00"}]),wt=u.EditorView.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),xt="()[]{}",kt=h.Facet.define({combine:e=>(0,h.combineConfig)(e,{afterCursor:!0,brackets:xt,maxScanDistance:1e4,renderMatch:At})}),St=u.Decoration.mark({class:"cm-matchingBracket"}),Ct=u.Decoration.mark({class:"cm-nonmatchingBracket"});function At(e){let t=[],n=e.matched?St:Ct;return t.push(n.range(e.start.from,e.start.to)),e.end&&t.push(n.range(e.end.from,e.end.to)),t}const Et=h.StateField.define({create:()=>u.Decoration.none,update(e,t){if(!t.docChanged&&!t.selection)return e;let n=[],i=t.state.facet(kt);for(let r of t.state.selection.ranges){if(!r.empty)continue;let e=Dt(t.state,r.head,-1,i)||r.head>0&&Dt(t.state,r.head-1,1,i)||i.afterCursor&&(Dt(t.state,r.head,1,i)||r.head<t.state.doc.length&&Dt(t.state,r.head+1,-1,i));e&&(n=n.concat(i.renderMatch(e,t.state)))}return u.Decoration.set(n,!0)},provide:e=>u.EditorView.decorations.from(e)}),Ot=[Et,wt];function Mt(e,t,n){let i=e.prop(t<0?m.openedBy:m.closedBy);if(i)return i;if(1==e.name.length){let i=n.indexOf(e.name);if(i>-1&&i%2==(t<0?1:0))return[n[i+t]]}return null}function Dt(e,t,n,i={}){let r=i.maxScanDistance||1e4,o=i.brackets||xt,s=ke(e),l=s.resolveInner(t,n);for(let a=l;a;a=a.parent){let i=Mt(a.type,n,o);if(i&&a.from<a.to)return Pt(e,t,n,a,i,o)}return function(e,t,n,i,r,o,s){let l=n<0?e.sliceDoc(t-1,t):e.sliceDoc(t,t+1),a=s.indexOf(l);if(a<0||a%2==0!=n>0)return null;let c={from:n<0?t-1:t,to:n>0?t+1:t},h=e.doc.iterRange(t,n>0?e.doc.length:0),u=0;for(let f=0;!h.next().done&&f<=o;){let e=h.value;n<0&&(f+=e.length);let o=t+f*n;for(let t=n>0?0:e.length-1,l=n>0?e.length:-1;t!=l;t+=n){let l=s.indexOf(e[t]);if(!(l<0||i.resolveInner(o+t,1).type!=r))if(l%2==0==n>0)u++;else{if(1==u)return{start:c,end:{from:o+t,to:o+t+1},matched:l>>1==a>>1};u--}}n>0&&(f+=e.length)}return h.done?{start:c,matched:!1}:null}(e,t,n,s,l.type,r,o)}function Pt(e,t,n,i,r,o){let s=i.parent,l={from:i.from,to:i.to},a=0,c=null===s||void 0===s?void 0:s.cursor();if(c&&(n<0?c.childBefore(i.from):c.childAfter(i.to)))do{if(n<0?c.to<=i.from:c.from>=i.to){if(0==a&&r.indexOf(c.type.name)>-1&&c.from<c.to)return{start:l,end:{from:c.from,to:c.to},matched:!0};if(Mt(c.type,n,o))a++;else if(Mt(c.type,-n,o)){if(0==a)return{start:l,end:c.from==c.to?void 0:{from:c.from,to:c.to},matched:!1};a--}}}while(n<0?c.prevSibling():c.nextSibling());return{start:l,matched:!1}}const It=Object.create(null),Tt=[y.none],Bt=[],Nt=Object.create(null);for(let[s,l]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"]])Nt[s]=Lt(It,l);function Rt(e,t){Bt.indexOf(e)>-1||(Bt.push(e),console.warn(t))}function Lt(e,t){let n=null;for(let o of t.split(".")){let t=e[o]||ue[o];t?"function"==typeof t?n?n=t(n):Rt(o,`Modifier ${o} used at start of tag`):n?Rt(o,`Tag ${o} used as modifier`):n=t:Rt(o,`Unknown highlighting tag ${o}`)}if(!n)return 0;let i=t.replace(/ /g,"_"),r=y.define({id:Tt.length,name:i,props:[U({[i]:n})]});return Tt.push(r),r.id}function _t(e,t){return({state:n,dispatch:i})=>{if(n.readOnly)return!1;let r=e(t,n);return!!r&&(i(n.update(r)),!0)}}const Ft=_t(zt,0),Wt=_t(qt,0),Vt=_t(((e,t)=>qt(e,t,function(e){let t=[];for(let n of e.selection.ranges){let i=e.doc.lineAt(n.from),r=n.to<=i.to?i:e.doc.lineAt(n.to),o=t.length-1;o>=0&&t[o].to>i.from?t[o].to=r.to:t.push({from:i.from,to:r.to})}return t}(t))),0);function jt(e,t=e.selection.main.head){let n=e.languageDataAt("commentTokens",t);return n.length?n[0]:{}}function qt(e,t,n=t.selection.ranges){let i=n.map((e=>jt(t,e.from).block));if(!i.every((e=>e)))return null;let r=n.map(((e,n)=>function(e,{open:t,close:n},i,r){let o,s,l=e.sliceDoc(i-50,i),a=e.sliceDoc(r,r+50),c=/\s*$/.exec(l)[0].length,h=/^\s*/.exec(a)[0].length,u=l.length-c;if(l.slice(u-t.length,u)==t&&a.slice(h,h+n.length)==n)return{open:{pos:i-c,margin:c&&1},close:{pos:r+h,margin:h&&1}};r-i<=100?o=s=e.sliceDoc(i,r):(o=e.sliceDoc(i,i+50),s=e.sliceDoc(r-50,r));let f=/^\s*/.exec(o)[0].length,d=/\s*$/.exec(s)[0].length,p=s.length-d-n.length;return o.slice(f,f+t.length)==t&&s.slice(p,p+n.length)==n?{open:{pos:i+f+t.length,margin:/\s/.test(o.charAt(f+t.length))?1:0},close:{pos:r-d-n.length,margin:/\s/.test(s.charAt(p-1))?1:0}}:null}(t,i[n],e.from,e.to)));if(2!=e&&!r.every((e=>e)))return{changes:t.changes(n.map(((e,t)=>r[t]?[]:[{from:e.from,insert:i[t].open+" "},{from:e.to,insert:" "+i[t].close}])))};if(1!=e&&r.some((e=>e))){let e=[];for(let t,n=0;n<r.length;n++)if(t=r[n]){let r=i[n],{open:o,close:s}=t;e.push({from:o.pos-r.open.length,to:o.pos+o.margin},{from:s.pos-s.margin,to:s.pos+r.close.length})}return{changes:e}}return null}function zt(e,t,n=t.selection.ranges){let i=[],r=-1;for(let{from:o,to:s}of n){let e=i.length,n=1e9;for(let l=o;l<=s;){let e=t.doc.lineAt(l);if(e.from>r&&(o==s||s>e.from)){r=e.from;let o=jt(t,l).line;if(!o)continue;let s=/^\s*/.exec(e.text)[0].length,a=s==e.length,c=e.text.slice(s,s+o.length)==o?s:-1;s<e.text.length&&s<n&&(n=s),i.push({line:e,comment:c,token:o,indent:s,empty:a,single:!1})}l=e.to+1}if(n<1e9)for(let t=e;t<i.length;t++)i[t].indent<i[t].line.text.length&&(i[t].indent=n);i.length==e+1&&(i[e].single=!0)}if(2!=e&&i.some((e=>e.comment<0&&(!e.empty||e.single)))){let e=[];for(let{line:t,token:r,indent:o,empty:s,single:l}of i)!l&&s||e.push({from:t.from+o,insert:r+" "});let n=t.changes(e);return{changes:n,selection:t.selection.map(n,1)}}if(1!=e&&i.some((e=>e.comment>=0))){let e=[];for(let{line:t,comment:n,token:r}of i)if(n>=0){let i=t.from+n,o=i+r.length;" "==t.text[o-t.from]&&o++,e.push({from:i,to:o})}return{changes:e}}return null}const Ut=h.Annotation.define(),$t=h.Annotation.define(),Ht=h.Facet.define(),Jt=h.Facet.define({combine:e=>(0,h.combineConfig)(e,{minDepth:100,newGroupDelay:500},{minDepth:Math.max,newGroupDelay:Math.min})});const Gt=h.StateField.define({create:()=>un.empty,update(e,t){let n=t.state.facet(Jt),i=t.annotation(Ut);if(i){let r=t.docChanged?h.EditorSelection.single(function(e){let t=0;return e.iterChangedRanges(((e,n)=>t=n)),t}(t.changes)):void 0,o=tn.fromTransaction(t,r),s=i.side,l=0==s?e.undone:e.done;return l=o?nn(l,l.length,n.minDepth,o):sn(l,t.startState.selection),new un(0==s?i.rest:l,0==s?l:i.rest)}let r=t.annotation($t);if("full"!=r&&"before"!=r||(e=e.isolate()),!1===t.annotation(h.Transaction.addToHistory))return t.changes.empty?e:e.addMapping(t.changes.desc);let o=tn.fromTransaction(t),s=t.annotation(h.Transaction.time),l=t.annotation(h.Transaction.userEvent);return o?e=e.addChanges(o,s,l,n.newGroupDelay,n.minDepth):t.selection&&(e=e.addSelection(t.startState.selection,s,l,n.newGroupDelay)),"full"!=r&&"after"!=r||(e=e.isolate()),e},toJSON:e=>({done:e.done.map((e=>e.toJSON())),undone:e.undone.map((e=>e.toJSON()))}),fromJSON:e=>new un(e.done.map(tn.fromJSON),e.undone.map(tn.fromJSON))});function Kt(e={}){return[Gt,Jt.of(e),u.EditorView.domEventHandlers({beforeinput(e,t){let n="historyUndo"==e.inputType?Yt:"historyRedo"==e.inputType?Xt:null;return!!n&&(e.preventDefault(),n(t))}})]}function Qt(e,t){return function({state:n,dispatch:i}){if(!t&&n.readOnly)return!1;let r=n.field(Gt,!1);if(!r)return!1;let o=r.pop(e,n,t);return!!o&&(i(o),!0)}}const Yt=Qt(0,!1),Xt=Qt(1,!1),Zt=Qt(0,!0),en=Qt(1,!0);class tn{constructor(e,t,n,i,r){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=i,this.selectionsAfter=r}setSelAfter(e){return new tn(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:null===(e=this.changes)||void 0===e?void 0:e.toJSON(),mapped:null===(t=this.mapped)||void 0===t?void 0:t.toJSON(),startSelection:null===(n=this.startSelection)||void 0===n?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map((e=>e.toJSON()))}}static fromJSON(e){return new tn(e.changes&&h.ChangeSet.fromJSON(e.changes),[],e.mapped&&h.ChangeDesc.fromJSON(e.mapped),e.startSelection&&h.EditorSelection.fromJSON(e.startSelection),e.selectionsAfter.map(h.EditorSelection.fromJSON))}static fromTransaction(e,t){let n=on;for(let i of e.startState.facet(Ht)){let t=i(e);t.length&&(n=n.concat(t))}return!n.length&&e.changes.empty?null:new tn(e.changes.invert(e.startState.doc),n,void 0,t||e.startState.selection,on)}static selection(e){return new tn(void 0,on,void 0,void 0,e)}}function nn(e,t,n,i){let r=t+1>n+20?t-n-1:0,o=e.slice(r,t);return o.push(i),o}function rn(e,t){return e.length?t.length?e.concat(t):e:t}const on=[];function sn(e,t){if(e.length){let n=e[e.length-1],i=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-200));return i.length&&i[i.length-1].eq(t)?e:(i.push(t),nn(e,e.length-1,1e9,n.setSelAfter(i)))}return[tn.selection([t])]}function ln(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 an(e,t){if(!e.length)return e;let n=e.length,i=on;for(;n;){let r=cn(e[n-1],t,i);if(r.changes&&!r.changes.empty||r.effects.length){let t=e.slice(0,n);return t[n-1]=r,t}t=r.mapped,n--,i=r.selectionsAfter}return i.length?[tn.selection(i)]:on}function cn(e,t,n){let i=rn(e.selectionsAfter.length?e.selectionsAfter.map((e=>e.map(t))):on,n);if(!e.changes)return tn.selection(i);let r=e.changes.map(t),o=t.mapDesc(e.changes,!0),s=e.mapped?e.mapped.composeDesc(o):o;return new tn(r,h.StateEffect.mapEffects(e.effects,t),s,e.startSelection.map(o),i)}const hn=/^(input\.type|delete)($|\.)/;class un{constructor(e,t,n=0,i){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=i}isolate(){return this.prevTime?new un(this.done,this.undone):this}addChanges(e,t,n,i,r){let o=this.done,s=o[o.length-1];return o=s&&s.changes&&!s.changes.empty&&e.changes&&(!n||hn.test(n))&&(!s.selectionsAfter.length&&t-this.prevTime<i&&function(e,t){let n=[],i=!1;return e.iterChangedRanges(((e,t)=>n.push(e,t))),t.iterChangedRanges(((e,t,r,o)=>{for(let s=0;s<n.length;){let e=n[s++],t=n[s++];o>=e&&r<=t&&(i=!0)}})),i}(s.changes,e.changes)||"input.type.compose"==n)?nn(o,o.length-1,r,new tn(e.changes.compose(s.changes),rn(e.effects,s.effects),s.mapped,s.startSelection,on)):nn(o,o.length,r,e),new un(o,on,t,n)}addSelection(e,t,n,i){let r=this.done.length?this.done[this.done.length-1].selectionsAfter:on;return r.length>0&&t-this.prevTime<i&&n==this.prevUserEvent&&n&&/^select($|\.)/.test(n)&&(o=r[r.length-1],s=e,o.ranges.length==s.ranges.length&&0===o.ranges.filter(((e,t)=>e.empty!=s.ranges[t].empty)).length)?this:new un(sn(this.done,e),this.undone,t,n);var o,s}addMapping(e){return new un(an(this.done,e),an(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,n){let i=0==e?this.done:this.undone;if(0==i.length)return null;let r=i[i.length-1];if(n&&r.selectionsAfter.length)return t.update({selection:r.selectionsAfter[r.selectionsAfter.length-1],annotations:Ut.of({side:e,rest:ln(i)}),userEvent:0==e?"select.undo":"select.redo",scrollIntoView:!0});if(r.changes){let n=1==i.length?on:i.slice(0,i.length-1);return r.mapped&&(n=an(n,r.mapped)),t.update({changes:r.changes,selection:r.startSelection,effects:r.effects,annotations:Ut.of({side:e,rest:n}),filter:!1,userEvent:0==e?"undo":"redo",scrollIntoView:!0})}return null}}un.empty=new un(on,on);const fn=[{key:"Mod-z",run:Yt,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Xt,preventDefault:!0},{linux:"Ctrl-Shift-z",run:Xt,preventDefault:!0},{key:"Mod-u",run:Zt,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:en,preventDefault:!0}];function dn(e,t){return h.EditorSelection.create(e.ranges.map(t),e.mainIndex)}function pn(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function mn({state:e,dispatch:t},n){let i=dn(e.selection,n);return!i.eq(e.selection)&&(t(pn(e,i)),!0)}function gn(e,t){return h.EditorSelection.cursor(t?e.to:e.from)}function yn(e,t){return mn(e,(n=>n.empty?e.moveByChar(n,t):gn(n,t)))}function vn(e){return e.textDirectionAt(e.state.selection.main.head)==u.Direction.LTR}const bn=e=>yn(e,!vn(e)),wn=e=>yn(e,vn(e));function xn(e,t){return mn(e,(n=>n.empty?e.moveByGroup(n,t):gn(n,t)))}function kn(e,t,n){if(t.type.prop(n))return!0;let i=t.to-t.from;return i&&(i>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function Sn(e,t,n){let i,r,o=ke(e).resolveInner(t.head),s=n?m.closedBy:m.openedBy;for(let l=t.head;;){let t=n?o.childAfter(l):o.childBefore(l);if(!t)break;kn(e,t,s)?o=t:l=n?t.to:t.from}return r=o.type.prop(s)&&(i=n?Dt(e,o.from,1):Dt(e,o.to,-1))&&i.matched?n?i.end.to:i.end.from:n?o.to:o.from,h.EditorSelection.cursor(r,n?-1:1)}function Cn(e,t){return mn(e,(n=>{if(!n.empty)return gn(n,t);let i=e.moveVertically(n,t);return i.head!=n.head?i:e.moveToLineBoundary(n,t)}))}const An=e=>Cn(e,!1),En=e=>Cn(e,!0);function On(e){return Math.max(e.defaultLineHeight,Math.min(e.dom.clientHeight,innerHeight)-5)}function Mn(e,t){let{state:n}=e,i=dn(n.selection,(n=>n.empty?e.moveVertically(n,t,On(e)):gn(n,t)));if(i.eq(n.selection))return!1;let r,o=e.coordsAtPos(n.selection.main.head),s=e.scrollDOM.getBoundingClientRect();return o&&o.top>s.top&&o.bottom<s.bottom&&o.top-s.top<=e.scrollDOM.scrollHeight-e.scrollDOM.scrollTop-e.scrollDOM.clientHeight&&(r=u.EditorView.scrollIntoView(i.main.head,{y:"start",yMargin:o.top-s.top})),e.dispatch(pn(n,i),{effects:r}),!0}const Dn=e=>Mn(e,!1),Pn=e=>Mn(e,!0);function In(e,t,n){let i=e.lineBlockAt(t.head),r=e.moveToLineBoundary(t,n);if(r.head==t.head&&r.head!=(n?i.to:i.from)&&(r=e.moveToLineBoundary(t,n,!1)),!n&&r.head==i.from&&i.length){let n=/^\s*/.exec(e.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;n&&t.head!=i.from+n&&(r=h.EditorSelection.cursor(i.from+n))}return r}function Tn(e,t,n){let i=!1,r=dn(e.selection,(t=>{let r=Dt(e,t.head,-1)||Dt(e,t.head,1)||t.head>0&&Dt(e,t.head-1,1)||t.head<e.doc.length&&Dt(e,t.head+1,-1);if(!r||!r.end)return t;i=!0;let o=r.start.from==t.head?r.end.to:r.end.from;return n?h.EditorSelection.range(t.anchor,o):h.EditorSelection.cursor(o)}));return!!i&&(t(pn(e,r)),!0)}function Bn(e,t){let n=dn(e.state.selection,(e=>{let n=t(e);return h.EditorSelection.range(e.anchor,n.head,n.goalColumn)}));return!n.eq(e.state.selection)&&(e.dispatch(pn(e.state,n)),!0)}function Nn(e,t){return Bn(e,(n=>e.moveByChar(n,t)))}const Rn=e=>Nn(e,!vn(e)),Ln=e=>Nn(e,vn(e));function _n(e,t){return Bn(e,(n=>e.moveByGroup(n,t)))}function Fn(e,t){return Bn(e,(n=>e.moveVertically(n,t)))}const Wn=e=>Fn(e,!1),Vn=e=>Fn(e,!0);function jn(e,t){return Bn(e,(n=>e.moveVertically(n,t,On(e))))}const qn=e=>jn(e,!1),zn=e=>jn(e,!0),Un=({state:e,dispatch:t})=>(t(pn(e,{anchor:0})),!0),$n=({state:e,dispatch:t})=>(t(pn(e,{anchor:e.doc.length})),!0),Hn=({state:e,dispatch:t})=>(t(pn(e,{anchor:e.selection.main.anchor,head:0})),!0),Jn=({state:e,dispatch:t})=>(t(pn(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0);function Gn(e,t){if(e.state.readOnly)return!1;let n="delete.selection",{state:i}=e,r=i.changeByRange((i=>{let{from:r,to:o}=i;if(r==o){let i=t(r);i<r?(n="delete.backward",i=Kn(e,i,!1)):i>r&&(n="delete.forward",i=Kn(e,i,!0)),r=Math.min(r,i),o=Math.max(o,i)}else r=Kn(e,r,!1),o=Kn(e,o,!0);return r==o?{range:i}:{changes:{from:r,to:o},range:h.EditorSelection.cursor(r)}}));return!r.changes.empty&&(e.dispatch(i.update(r,{scrollIntoView:!0,userEvent:n,effects:"delete.selection"==n?u.EditorView.announce.of(i.phrase("Selection deleted")):void 0})),!0)}function Kn(e,t,n){if(e instanceof u.EditorView)for(let i of e.state.facet(u.EditorView.atomicRanges).map((t=>t(e))))i.between(t,t,((e,i)=>{e<t&&i>t&&(t=n?i:e)}));return t}const Qn=(e,t)=>Gn(e,(n=>{let i,r,{state:o}=e,s=o.doc.lineAt(n);if(!t&&n>s.from&&n<s.from+200&&!/[^ \t]/.test(i=s.text.slice(0,n-s.from))){if("\t"==i[i.length-1])return n-1;let e=(0,h.countColumn)(i,o.tabSize)%Ne(o)||Ne(o);for(let t=0;t<e&&" "==i[i.length-1-t];t++)n--;r=n}else r=(0,h.findClusterBreak)(s.text,n-s.from,t,t)+s.from,r==n&&s.number!=(t?o.doc.lines:1)&&(r+=t?1:-1);return r})),Yn=e=>Qn(e,!1),Xn=e=>Qn(e,!0),Zn=(e,t)=>Gn(e,(n=>{let i=n,{state:r}=e,o=r.doc.lineAt(i),s=r.charCategorizer(i);for(let e=null;;){if(i==(t?o.to:o.from)){i==n&&o.number!=(t?r.doc.lines:1)&&(i+=t?1:-1);break}let l=(0,h.findClusterBreak)(o.text,i-o.from,t)+o.from,a=o.text.slice(Math.min(i,l)-o.from,Math.max(i,l)-o.from),c=s(a);if(null!=e&&c!=e)break;" "==a&&i==n||(e=c),i=l}return i})),ei=e=>Zn(e,!1),ti=e=>Gn(e,(t=>{let n=e.lineBlockAt(t).to;return t<n?n:Math.min(e.state.doc.length,t+1)}));function ni(e){let t=[],n=-1;for(let i of e.selection.ranges){let r=e.doc.lineAt(i.from),o=e.doc.lineAt(i.to);if(i.empty||i.to!=o.from||(o=e.doc.lineAt(i.to-1)),n>=r.number){let e=t[t.length-1];e.to=o.to,e.ranges.push(i)}else t.push({from:r.from,to:o.to,ranges:[i]});n=o.number+1}return t}function ii(e,t,n){if(e.readOnly)return!1;let i=[],r=[];for(let o of ni(e)){if(n?o.to==e.doc.length:0==o.from)continue;let t=e.doc.lineAt(n?o.to+1:o.from-1),s=t.length+1;if(n){i.push({from:o.to,to:t.to},{from:o.from,insert:t.text+e.lineBreak});for(let t of o.ranges)r.push(h.EditorSelection.range(Math.min(e.doc.length,t.anchor+s),Math.min(e.doc.length,t.head+s)))}else{i.push({from:t.from,to:o.from},{from:o.to,insert:e.lineBreak+t.text});for(let e of o.ranges)r.push(h.EditorSelection.range(e.anchor-s,e.head-s))}}return!!i.length&&(t(e.update({changes:i,scrollIntoView:!0,selection:h.EditorSelection.create(r,e.selection.mainIndex),userEvent:"move.line"})),!0)}function ri(e,t,n){if(e.readOnly)return!1;let i=[];for(let r of ni(e))n?i.push({from:r.from,insert:e.doc.slice(r.from,r.to)+e.lineBreak}):i.push({from:r.to,insert:e.lineBreak+e.doc.slice(r.from,r.to)});return t(e.update({changes:i,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const oi=si(!1);function si(e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let i=t.changeByRange((n=>{let{from:i,to:r}=n,o=t.doc.lineAt(i),s=!e&&i==r&&function(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n,i=ke(e).resolveInner(t),r=i.childBefore(t),o=i.childAfter(t);return r&&o&&r.to<=t&&o.from>=t&&(n=r.type.prop(m.closedBy))&&n.indexOf(o.name)>-1&&e.doc.lineAt(r.to).from==e.doc.lineAt(o.from).from?{from:r.to,to:o.from}:null}(t,i);e&&(i=r=(r<=o.to?o:t.doc.lineAt(r)).to);let l=new _e(t,{simulateBreak:i,simulateDoubleBreak:!!s}),a=Le(l,i);for(null==a&&(a=/^\s*/.exec(t.doc.lineAt(i).text)[0].length);r<o.to&&/\s/.test(o.text[r-o.from]);)r++;s?({from:i,to:r}=s):i>o.from&&i<o.from+100&&!/\S/.test(o.text.slice(0,i))&&(i=o.from);let c=["",Re(t,a)];return s&&c.push(Re(t,l.lineIndent(o.from,-1))),{changes:{from:i,to:r,insert:h.Text.of(c)},range:h.EditorSelection.cursor(i+1+c[1].length)}}));return n(t.update(i,{scrollIntoView:!0,userEvent:"input"})),!0}}function li(e,t){let n=-1;return e.changeByRange((i=>{let r=[];for(let s=i.from;s<=i.to;){let o=e.doc.lineAt(s);o.number>n&&(i.empty||i.to>o.from)&&(t(o,r,i),n=o.number),s=o.to+1}let o=e.changes(r);return{changes:r,range:h.EditorSelection.range(o.mapPos(i.anchor,1),o.mapPos(i.head,1))}}))}const ai=({state:e,dispatch:t})=>!e.readOnly&&(t(e.update(li(e,((t,n)=>{n.push({from:t.from,insert:e.facet(Be)})})),{userEvent:"input.indent"})),!0),ci=({state:e,dispatch:t})=>!e.readOnly&&(t(e.update(li(e,((t,n)=>{let i=/^\s*/.exec(t.text)[0];if(!i)return;let r=(0,h.countColumn)(i,e.tabSize),o=0,s=Re(e,Math.max(0,r-Ne(e)));for(;o<i.length&&o<s.length&&i.charCodeAt(o)==s.charCodeAt(o);)o++;n.push({from:t.from+o,to:t.from+i.length,insert:s.slice(o)})})),{userEvent:"delete.dedent"})),!0),hi=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:e=>mn(e,(t=>Sn(e.state,t,!vn(e)))),shift:e=>Bn(e,(t=>Sn(e.state,t,!vn(e))))},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:e=>mn(e,(t=>Sn(e.state,t,vn(e)))),shift:e=>Bn(e,(t=>Sn(e.state,t,vn(e))))},{key:"Alt-ArrowUp",run:({state:e,dispatch:t})=>ii(e,t,!1)},{key:"Shift-Alt-ArrowUp",run:({state:e,dispatch:t})=>ri(e,t,!1)},{key:"Alt-ArrowDown",run:({state:e,dispatch:t})=>ii(e,t,!0)},{key:"Shift-Alt-ArrowDown",run:({state:e,dispatch:t})=>ri(e,t,!0)},{key:"Escape",run:({state:e,dispatch:t})=>{let n=e.selection,i=null;return n.ranges.length>1?i=h.EditorSelection.create([n.main]):n.main.empty||(i=h.EditorSelection.create([h.EditorSelection.cursor(n.main.head)])),!!i&&(t(pn(e,i)),!0)}},{key:"Mod-Enter",run:si(!0)},{key:"Alt-l",mac:"Ctrl-l",run:({state:e,dispatch:t})=>{let n=ni(e).map((({from:t,to:n})=>h.EditorSelection.range(t,Math.min(n+1,e.doc.length))));return t(e.update({selection:h.EditorSelection.create(n),userEvent:"select"})),!0}},{key:"Mod-i",run:({state:e,dispatch:t})=>{let n=dn(e.selection,(t=>{var n;let i=ke(e).resolveInner(t.head,1);for(;!(i.from<t.from&&i.to>=t.to||i.to>t.to&&i.from<=t.from)&&(null===(n=i.parent)||void 0===n?void 0:n.parent);)i=i.parent;return h.EditorSelection.range(i.to,i.from)}));return t(pn(e,n)),!0},preventDefault:!0},{key:"Mod-[",run:ci},{key:"Mod-]",run:ai},{key:"Mod-Alt-\\",run:({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),i=new _e(e,{overrideIndentation:e=>{let t=n[e];return null==t?-1:t}}),r=li(e,((t,r,o)=>{let s=Le(i,t.from);if(null==s)return;/\S/.test(t.text)||(s=0);let l=/^\s*/.exec(t.text)[0],a=Re(e,s);(l!=a||o.from<t.from+l.length)&&(n[t.from]=s,r.push({from:t.from,to:t.from+l.length,insert:a}))}));return r.changes.empty||t(e.update(r,{userEvent:"indent"})),!0}},{key:"Shift-Mod-k",run:e=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(ni(t).map((({from:e,to:n})=>(e>0?e--:n<t.doc.length&&n++,{from:e,to:n})))),i=dn(t.selection,(t=>e.moveVertically(t,!0))).map(n);return e.dispatch({changes:n,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0}},{key:"Shift-Mod-\\",run:({state:e,dispatch:t})=>Tn(e,t,!1)},{key:"Mod-/",run:e=>{let t=jt(e.state);return t.line?Ft(e):!!t.block&&Vt(e)}},{key:"Alt-A",run:Wt}].concat([{key:"ArrowLeft",run:bn,shift:Rn,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:e=>xn(e,!vn(e)),shift:e=>_n(e,!vn(e)),preventDefault:!0},{mac:"Cmd-ArrowLeft",run:e=>mn(e,(t=>In(e,t,!vn(e)))),shift:e=>Bn(e,(t=>In(e,t,!vn(e)))),preventDefault:!0},{key:"ArrowRight",run:wn,shift:Ln,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:e=>xn(e,vn(e)),shift:e=>_n(e,vn(e)),preventDefault:!0},{mac:"Cmd-ArrowRight",run:e=>mn(e,(t=>In(e,t,vn(e)))),shift:e=>Bn(e,(t=>In(e,t,vn(e)))),preventDefault:!0},{key:"ArrowUp",run:An,shift:Wn,preventDefault:!0},{mac:"Cmd-ArrowUp",run:Un,shift:Hn},{mac:"Ctrl-ArrowUp",run:Dn,shift:qn},{key:"ArrowDown",run:En,shift:Vn,preventDefault:!0},{mac:"Cmd-ArrowDown",run:$n,shift:Jn},{mac:"Ctrl-ArrowDown",run:Pn,shift:zn},{key:"PageUp",run:Dn,shift:qn},{key:"PageDown",run:Pn,shift:zn},{key:"Home",run:e=>mn(e,(t=>In(e,t,!1))),shift:e=>Bn(e,(t=>In(e,t,!1))),preventDefault:!0},{key:"Mod-Home",run:Un,shift:Hn},{key:"End",run:e=>mn(e,(t=>In(e,t,!0))),shift:e=>Bn(e,(t=>In(e,t,!0))),preventDefault:!0},{key:"Mod-End",run:$n,shift:Jn},{key:"Enter",run:oi},{key:"Mod-a",run:({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"})),!0)},{key:"Backspace",run:Yn,shift:Yn},{key:"Delete",run:Xn},{key:"Mod-Backspace",mac:"Alt-Backspace",run:ei},{key:"Mod-Delete",mac:"Alt-Delete",run:e=>Zn(e,!0)},{mac:"Mod-Backspace",run:e=>Gn(e,(t=>{let n=e.lineBlockAt(t).from;return t>n?n:Math.max(0,t-1)}))},{mac:"Mod-Delete",run:ti}].concat([{key:"Ctrl-b",run:bn,shift:Rn,preventDefault:!0},{key:"Ctrl-f",run:wn,shift:Ln},{key:"Ctrl-p",run:An,shift:Wn},{key:"Ctrl-n",run:En,shift:Vn},{key:"Ctrl-a",run:e=>mn(e,(t=>h.EditorSelection.cursor(e.lineBlockAt(t.head).from,1))),shift:e=>Bn(e,(t=>h.EditorSelection.cursor(e.lineBlockAt(t.head).from)))},{key:"Ctrl-e",run:e=>mn(e,(t=>h.EditorSelection.cursor(e.lineBlockAt(t.head).to,-1))),shift:e=>Bn(e,(t=>h.EditorSelection.cursor(e.lineBlockAt(t.head).to)))},{key:"Ctrl-d",run:Xn},{key:"Ctrl-h",run:Yn},{key:"Ctrl-k",run:ti},{key:"Ctrl-Alt-h",run:ei},{key:"Ctrl-o",run:({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange((e=>({changes:{from:e.from,to:e.to,insert:h.Text.of(["",""])},range:h.EditorSelection.cursor(e.from)})));return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0}},{key:"Ctrl-t",run:({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange((t=>{if(!t.empty||0==t.from||t.from==e.doc.length)return{range:t};let n=t.from,i=e.doc.lineAt(n),r=n==i.from?n-1:(0,h.findClusterBreak)(i.text,n-i.from,!1)+i.from,o=n==i.to?n+1:(0,h.findClusterBreak)(i.text,n-i.from,!0)+i.from;return{changes:{from:r,to:o,insert:e.doc.slice(n,o).append(e.doc.slice(r,n))},range:h.EditorSelection.cursor(o)}}));return!n.changes.empty&&(t(e.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)}},{key:"Ctrl-v",run:Pn}].map((e=>({mac:e.key,run:e.run,shift:e.shift}))))),ui={key:"Tab",run:ai,shift:ci};function fi(){var e=arguments[0];"string"==typeof e&&(e=document.createElement(e));var t=1,n=arguments[1];if(n&&"object"==typeof n&&null==n.nodeType&&!Array.isArray(n)){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var r=n[i];"string"==typeof r?e.setAttribute(i,r):null!=r&&(e[i]=r)}t++}for(;t<arguments.length;t++)di(e,arguments[t]);return e}function di(e,t){if("string"==typeof t)e.appendChild(document.createTextNode(t));else if(null==t);else if(null!=t.nodeType)e.appendChild(t);else{if(!Array.isArray(t))throw new RangeError("Unsupported child node: "+t);for(var n=0;n<t.length;n++)di(e,t[n])}}const pi="function"==typeof String.prototype.normalize?e=>e.normalize("NFKD"):e=>e;class mi{constructor(e,t,n=0,i=e.length,r,o){this.test=o,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(n,i),this.bufferStart=n,this.normalize=r?e=>r(pi(e)):pi,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return(0,h.codePointAt)(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=(0,h.fromCodePoint)(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=(0,h.codePointSize)(e);let i=this.normalize(t);for(let r=0,o=n;;r++){let e=i.charCodeAt(r),s=this.match(e,o);if(s)return this.value=s,this;if(r==i.length-1)break;o==n&&r<t.length&&t.charCodeAt(r)==e&&o++}}}match(e,t){let n=null;for(let i=0;i<this.matches.length;i+=2){let r=this.matches[i],o=!1;this.query.charCodeAt(r)==e&&(r==this.query.length-1?n={from:this.matches[i+1],to:t+1}:(this.matches[i]++,o=!0)),o||(this.matches.splice(i,2),i-=2)}return this.query.charCodeAt(0)==e&&(1==this.query.length?n={from:t,to:t+1}:this.matches.push(1,t)),n&&this.test&&!this.test(n.from,n.to,this.buffer,this.bufferPos)&&(n=null),n}}"undefined"!=typeof Symbol&&(mi.prototype[Symbol.iterator]=function(){return this});const gi={from:-1,to:-1,match:/.*/.exec("")},yi="gm"+(null==/x/.unicode?"":"u");class vi{constructor(e,t,n,i=0,r=e.length){if(this.text=e,this.to=r,this.curLine="",this.done=!1,this.value=gi,/\\[sWDnr]|\n|\r|\[\^/.test(t))return new xi(e,t,n,i,r);this.re=new RegExp(t,yi+((null===n||void 0===n?void 0:n.ignoreCase)?"i":"")),this.test=null===n||void 0===n?void 0:n.test,this.iter=e.iter();let o=e.lineAt(i);this.curLineStart=o.from,this.matchPos=ki(e,i),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let n=this.curLineStart+t.index,i=n+t[0].length;if(this.matchPos=ki(this.text,i+(n==i?1:0)),n==this.curLineStart+this.curLine.length&&this.nextLine(),(n<i||n>this.value.to)&&(!this.test||this.test(n,i,t)))return this.value={from:n,to:i,match:t},this;e=this.matchPos-this.curLineStart}else{if(!(this.curLineStart+this.curLine.length<this.to))return this.done=!0,this;this.nextLine(),e=0}}}}const bi=new WeakMap;class wi{constructor(e,t){this.from=e,this.text=t}get to(){return this.from+this.text.length}static get(e,t,n){let i=bi.get(e);if(!i||i.from>=n||i.to<=t){let i=new wi(t,e.sliceString(t,n));return bi.set(e,i),i}if(i.from==t&&i.to==n)return i;let{text:r,from:o}=i;return o>t&&(r=e.sliceString(t,o)+r,o=t),i.to<n&&(r+=e.sliceString(i.to,n)),bi.set(e,new wi(o,r)),new wi(t,r.slice(t-o,n-o))}}class xi{constructor(e,t,n,i,r){this.text=e,this.to=r,this.done=!1,this.value=gi,this.matchPos=ki(e,i),this.re=new RegExp(t,yi+((null===n||void 0===n?void 0:n.ignoreCase)?"i":"")),this.test=null===n||void 0===n?void 0:n.test,this.flat=wi.get(e,i,this.chunkEnd(i+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let e=this.flat.from+t.index,n=e+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(e,n,t)))return this.value={from:e,to:n,match:t},this.matchPos=ki(this.text,n+(e==n?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=wi.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+2*this.flat.text.length))}}}function ki(e,t){if(t>=e.length)return t;let n,i=e.lineAt(t);for(;t<i.to&&(n=i.text.charCodeAt(t-i.from))>=56320&&n<57344;)t++;return t}function Si(e){let t=fi("input",{class:"cm-textfield",name:"line"});function n(){let n=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(t.value);if(!n)return;let{state:i}=e,r=i.doc.lineAt(i.selection.main.head),[,o,s,l,a]=n,c=l?+l.slice(1):0,u=s?+s:r.number;if(s&&a){let e=u/100;o&&(e=e*("-"==o?-1:1)+r.number/i.doc.lines),u=Math.round(i.doc.lines*e)}else s&&o&&(u=u*("-"==o?-1:1)+r.number);let f=i.doc.line(Math.max(1,Math.min(i.doc.lines,u)));e.dispatch({effects:Ci.of(!1),selection:h.EditorSelection.cursor(f.from+Math.max(0,Math.min(c,f.length))),scrollIntoView:!0}),e.focus()}return{dom:fi("form",{class:"cm-gotoLine",onkeydown:t=>{27==t.keyCode?(t.preventDefault(),e.dispatch({effects:Ci.of(!1)}),e.focus()):13==t.keyCode&&(t.preventDefault(),n())},onsubmit:e=>{e.preventDefault(),n()}},fi("label",e.state.phrase("Go to line"),": ",t)," ",fi("button",{class:"cm-button",type:"submit"},e.state.phrase("go")))}}"undefined"!=typeof Symbol&&(vi.prototype[Symbol.iterator]=xi.prototype[Symbol.iterator]=function(){return this});const Ci=h.StateEffect.define(),Ai=h.StateField.define({create:()=>!0,update(e,t){for(let n of t.effects)n.is(Ci)&&(e=n.value);return e},provide:e=>u.showPanel.from(e,(e=>e?Si:null))}),Ei=u.EditorView.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),Oi={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},Mi=h.Facet.define({combine:e=>(0,h.combineConfig)(e,Oi,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})});const Di=u.Decoration.mark({class:"cm-selectionMatch"}),Pi=u.Decoration.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function Ii(e,t,n,i){return(0==n||e(t.sliceDoc(n-1,n))!=h.CharCategory.Word)&&(i==t.doc.length||e(t.sliceDoc(i,i+1))!=h.CharCategory.Word)}const Ti=u.ViewPlugin.fromClass(class{constructor(e){this.decorations=this.getDeco(e)}update(e){(e.selectionSet||e.docChanged||e.viewportChanged)&&(this.decorations=this.getDeco(e.view))}getDeco(e){let t=e.state.facet(Mi),{state:n}=e,i=n.selection;if(i.ranges.length>1)return u.Decoration.none;let r,o=i.main,s=null;if(o.empty){if(!t.highlightWordAroundCursor)return u.Decoration.none;let e=n.wordAt(o.head);if(!e)return u.Decoration.none;s=n.charCategorizer(o.head),r=n.sliceDoc(e.from,e.to)}else{let e=o.to-o.from;if(e<t.minSelectionLength||e>200)return u.Decoration.none;if(t.wholeWords){if(r=n.sliceDoc(o.from,o.to),s=n.charCategorizer(o.head),!Ii(s,n,o.from,o.to)||!function(e,t,n,i){return e(t.sliceDoc(n,n+1))==h.CharCategory.Word&&e(t.sliceDoc(i-1,i))==h.CharCategory.Word}(s,n,o.from,o.to))return u.Decoration.none}else if(r=n.sliceDoc(o.from,o.to).trim(),!r)return u.Decoration.none}let l=[];for(let a of e.visibleRanges){let e=new mi(n.doc,r,a.from,a.to);for(;!e.next().done;){let{from:i,to:r}=e.value;if((!s||Ii(s,n,i,r))&&(o.empty&&i<=o.from&&r>=o.to?l.push(Pi.range(i,r)):(i>=o.to||r<=o.from)&&l.push(Di.range(i,r)),l.length>t.maxMatches))return u.Decoration.none}}return u.Decoration.set(l)}},{decorations:e=>e.decorations}),Bi=u.EditorView.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}});const Ni=h.Facet.define({combine:e=>(0,h.combineConfig)(e,{top:!1,caseSensitive:!1,literal:!1,wholeWord:!1,createPanel:e=>new lr(e)})});class Ri{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||function(e){try{return new RegExp(e,yi),!0}catch(ve){return!1}}(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,((e,t)=>"n"==t?"\n":"r"==t?"\r":"t"==t?"\t":"\\"))}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new qi(this):new Fi(this)}getCursor(e,t=0,n){let i=e.doc?e:h.EditorState.create({doc:e});return null==n&&(n=i.doc.length),this.regexp?Wi(this,i,t,n):_i(this,i,t,n)}}class Li{constructor(e){this.spec=e}}function _i(e,t,n,i){return new mi(t.doc,e.unquoted,n,i,e.caseSensitive?void 0:e=>e.toLowerCase(),e.wholeWord?(r=t.doc,o=t.charCategorizer(t.selection.main.head),(e,t,n,i)=>((i>e||i+n.length<t)&&(i=Math.max(0,e-2),n=r.sliceString(i,Math.min(r.length,t+2))),(o(Vi(n,e-i))!=h.CharCategory.Word||o(ji(n,e-i))!=h.CharCategory.Word)&&(o(ji(n,t-i))!=h.CharCategory.Word||o(Vi(n,t-i))!=h.CharCategory.Word))):void 0);var r,o}class Fi extends Li{constructor(e){super(e)}nextMatch(e,t,n){let i=_i(this.spec,e,n,e.doc.length).nextOverlapping();return i.done&&(i=_i(this.spec,e,0,t).nextOverlapping()),i.done?null:i.value}prevMatchInRange(e,t,n){for(let i=n;;){let n=Math.max(t,i-1e4-this.spec.unquoted.length),r=_i(this.spec,e,n,i),o=null;for(;!r.nextOverlapping().done;)o=r.value;if(o)return o;if(n==t)return null;i-=1e4}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let n=_i(this.spec,e,0,e.doc.length),i=[];for(;!n.next().done;){if(i.length>=t)return null;i.push(n.value)}return i}highlight(e,t,n,i){let r=_i(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(n+this.spec.unquoted.length,e.doc.length));for(;!r.next().done;)i(r.value.from,r.value.to)}}function Wi(e,t,n,i){return new vi(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:e.wholeWord?(r=t.charCategorizer(t.selection.main.head),(e,t,n)=>!n[0].length||(r(Vi(n.input,n.index))!=h.CharCategory.Word||r(ji(n.input,n.index))!=h.CharCategory.Word)&&(r(ji(n.input,n.index+n[0].length))!=h.CharCategory.Word||r(Vi(n.input,n.index+n[0].length))!=h.CharCategory.Word)):void 0},n,i);var r}function Vi(e,t){return e.slice((0,h.findClusterBreak)(e,t,!1),t)}function ji(e,t){return e.slice(t,(0,h.findClusterBreak)(e,t))}class qi extends Li{nextMatch(e,t,n){let i=Wi(this.spec,e,n,e.doc.length).next();return i.done&&(i=Wi(this.spec,e,0,t).next()),i.done?null:i.value}prevMatchInRange(e,t,n){for(let i=1;;i++){let r=Math.max(t,n-1e4*i),o=Wi(this.spec,e,r,n),s=null;for(;!o.next().done;)s=o.value;if(s&&(r==t||s.from>r+10))return s;if(r==t)return null}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace.replace(/\$([$&\d+])/g,((t,n)=>"$"==n?"$":"&"==n?e.match[0]:"0"!=n&&+n<e.match.length?e.match[n]:t)))}matchAll(e,t){let n=Wi(this.spec,e,0,e.doc.length),i=[];for(;!n.next().done;){if(i.length>=t)return null;i.push(n.value)}return i}highlight(e,t,n,i){let r=Wi(this.spec,e,Math.max(0,t-250),Math.min(n+250,e.doc.length));for(;!r.next().done;)i(r.value.from,r.value.to)}}const zi=h.StateEffect.define(),Ui=h.StateEffect.define(),$i=h.StateField.define({create:e=>new Hi(ir(e).create(),null),update(e,t){for(let n of t.effects)n.is(zi)?e=new Hi(n.value.create(),e.panel):n.is(Ui)&&(e=new Hi(e.query,n.value?nr:null));return e},provide:e=>u.showPanel.from(e,(e=>e.panel))});class Hi{constructor(e,t){this.query=e,this.panel=t}}const Ji=u.Decoration.mark({class:"cm-searchMatch"}),Gi=u.Decoration.mark({class:"cm-searchMatch cm-searchMatch-selected"}),Ki=u.ViewPlugin.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field($i))}update(e){let t=e.state.field($i);(t!=e.startState.field($i)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return u.Decoration.none;let{view:n}=this,i=new h.RangeSetBuilder;for(let r=0,o=n.visibleRanges,s=o.length;r<s;r++){let{from:t,to:l}=o[r];for(;r<s-1&&l>o[r+1].from-500;)l=o[++r].to;e.highlight(n.state,t,l,((e,t)=>{let r=n.state.selection.ranges.some((n=>n.from==e&&n.to==t));i.add(e,t,r?Gi:Ji)}))}return i.finish()}},{decorations:e=>e.decorations});function Qi(e){return t=>{let n=t.state.field($i,!1);return n&&n.query.spec.valid?e(t,n):rr(t)}}const Yi=Qi(((e,{query:t})=>{let{to:n}=e.state.selection.main,i=t.nextMatch(e.state,n,n);return!!i&&(e.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:hr(e,i),userEvent:"select.search"}),!0)})),Xi=Qi(((e,{query:t})=>{let{state:n}=e,{from:i}=n.selection.main,r=t.prevMatch(n,i,i);return!!r&&(e.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:hr(e,r),userEvent:"select.search"}),!0)})),Zi=Qi(((e,{query:t})=>{let n=t.matchAll(e.state,1e3);return!(!n||!n.length)&&(e.dispatch({selection:h.EditorSelection.create(n.map((e=>h.EditorSelection.range(e.from,e.to)))),userEvent:"select.search.matches"}),!0)})),er=Qi(((e,{query:t})=>{let{state:n}=e,{from:i,to:r}=n.selection.main;if(n.readOnly)return!1;let o=t.nextMatch(n,i,i);if(!o)return!1;let s,l,a=[],c=[];if(o.from==i&&o.to==r&&(l=n.toText(t.getReplacement(o)),a.push({from:o.from,to:o.to,insert:l}),o=t.nextMatch(n,o.from,o.to),c.push(u.EditorView.announce.of(n.phrase("replaced match on line $",n.doc.lineAt(i).number)+"."))),o){let t=0==a.length||a[0].from>=o.to?0:o.to-o.from-l.length;s={anchor:o.from-t,head:o.to-t},c.push(hr(e,o))}return e.dispatch({changes:a,selection:s,scrollIntoView:!!s,effects:c,userEvent:"input.replace"}),!0})),tr=Qi(((e,{query:t})=>{if(e.state.readOnly)return!1;let n=t.matchAll(e.state,1e9).map((e=>{let{from:n,to:i}=e;return{from:n,to:i,insert:t.getReplacement(e)}}));if(!n.length)return!1;let i=e.state.phrase("replaced $ matches",n.length)+".";return e.dispatch({changes:n,effects:u.EditorView.announce.of(i),userEvent:"input.replace.all"}),!0}));function nr(e){return e.state.facet(Ni).createPanel(e)}function ir(e,t){var n,i,r,o;let s=e.selection.main,l=s.empty||s.to>s.from+100?"":e.sliceDoc(s.from,s.to);if(t&&!l)return t;let a=e.facet(Ni);return new Ri({search:(null!==(n=null===t||void 0===t?void 0:t.literal)&&void 0!==n?n:a.literal)?l:l.replace(/\n/g,"\\n"),caseSensitive:null!==(i=null===t||void 0===t?void 0:t.caseSensitive)&&void 0!==i?i:a.caseSensitive,literal:null!==(r=null===t||void 0===t?void 0:t.literal)&&void 0!==r?r:a.literal,wholeWord:null!==(o=null===t||void 0===t?void 0:t.wholeWord)&&void 0!==o?o:a.wholeWord})}const rr=e=>{let t=e.state.field($i,!1);if(t&&t.panel){let n=(0,u.getPanel)(e,nr);if(!n)return!1;let i=n.dom.querySelector("[main-field]");if(i&&i!=e.root.activeElement){let n=ir(e.state,t.query.spec);n.valid&&e.dispatch({effects:zi.of(n)}),i.focus(),i.select()}}else e.dispatch({effects:[Ui.of(!0),t?zi.of(ir(e.state,t.query.spec)):h.StateEffect.appendConfig.of(fr)]});return!0},or=e=>{let t=e.state.field($i,!1);if(!t||!t.panel)return!1;let n=(0,u.getPanel)(e,nr);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:Ui.of(!1)}),!0},sr=[{key:"Mod-f",run:rr,scope:"editor search-panel"},{key:"F3",run:Yi,shift:Xi,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:Yi,shift:Xi,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:or,scope:"editor search-panel"},{key:"Mod-Shift-l",run:({state:e,dispatch:t})=>{let n=e.selection;if(n.ranges.length>1||n.main.empty)return!1;let{from:i,to:r}=n.main,o=[],s=0;for(let l=new mi(e.doc,e.sliceDoc(i,r));!l.next().done;){if(o.length>1e3)return!1;l.value.from==i&&(s=o.length),o.push(h.EditorSelection.range(l.value.from,l.value.to))}return t(e.update({selection:h.EditorSelection.create(o,s),userEvent:"select.search.matches"})),!0}},{key:"Alt-g",run:e=>{let t=(0,u.getPanel)(e,Si);if(!t){let n=[Ci.of(!0)];null==e.state.field(Ai,!1)&&n.push(h.StateEffect.appendConfig.of([Ai,Ei])),e.dispatch({effects:n}),t=(0,u.getPanel)(e,Si)}return t&&t.dom.querySelector("input").focus(),!0}},{key:"Mod-d",run:({state:e,dispatch:t})=>{let{ranges:n}=e.selection;if(n.some((e=>e.from===e.to)))return(({state:e,dispatch:t})=>{let{selection:n}=e,i=h.EditorSelection.create(n.ranges.map((t=>e.wordAt(t.head)||h.EditorSelection.cursor(t.head))),n.mainIndex);return!i.eq(n)&&(t(e.update({selection:i})),!0)})({state:e,dispatch:t});let i=e.sliceDoc(n[0].from,n[0].to);if(e.selection.ranges.some((t=>e.sliceDoc(t.from,t.to)!=i)))return!1;let r=function(e,t){let{main:n,ranges:i}=e.selection,r=e.wordAt(n.head),o=r&&r.from==n.from&&r.to==n.to;for(let s=!1,l=new mi(e.doc,t,i[i.length-1].to);;){if(l.next(),!l.done){if(s&&i.some((e=>e.from==l.value.from)))continue;if(o){let t=e.wordAt(l.value.from);if(!t||t.from!=l.value.from||t.to!=l.value.to)continue}return l.value}if(s)return null;l=new mi(e.doc,t,0,Math.max(0,i[i.length-1].from-1)),s=!0}}(e,i);return!!r&&(t(e.update({selection:e.selection.addRange(h.EditorSelection.range(r.from,r.to),!1),effects:u.EditorView.scrollIntoView(r.to)})),!0)},preventDefault:!0}];class lr{constructor(e){this.view=e;let t=this.query=e.state.field($i).query.spec;function n(e,t,n){return fi("button",{class:"cm-button",name:e,onclick:t,type:"button"},n)}this.commit=this.commit.bind(this),this.searchField=fi("input",{value:t.search,placeholder:ar(e,"Find"),"aria-label":ar(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=fi("input",{value:t.replace,placeholder:ar(e,"Replace"),"aria-label":ar(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=fi("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=fi("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=fi("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit}),this.dom=fi("div",{onkeydown:e=>this.keydown(e),class:"cm-search"},[this.searchField,n("next",(()=>Yi(e)),[ar(e,"next")]),n("prev",(()=>Xi(e)),[ar(e,"previous")]),n("select",(()=>Zi(e)),[ar(e,"all")]),fi("label",null,[this.caseField,ar(e,"match case")]),fi("label",null,[this.reField,ar(e,"regexp")]),fi("label",null,[this.wordField,ar(e,"by word")]),...e.state.readOnly?[]:[fi("br"),this.replaceField,n("replace",(()=>er(e)),[ar(e,"replace")]),n("replaceAll",(()=>tr(e)),[ar(e,"replace all")])],fi("button",{name:"close",onclick:()=>or(e),"aria-label":ar(e,"close"),type:"button"},["\xd7"])])}commit(){let e=new Ri({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:zi.of(e)}))}keydown(e){(0,u.runScopeHandlers)(this.view,e,"search-panel")?e.preventDefault():13==e.keyCode&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?Xi:Yi)(this.view)):13==e.keyCode&&e.target==this.replaceField&&(e.preventDefault(),er(this.view))}update(e){for(let t of e.transactions)for(let e of t.effects)e.is(zi)&&!e.value.eq(this.query)&&this.setQuery(e.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(Ni).top}}function ar(e,t){return e.state.phrase(t)}const cr=/[\s\.,:;?!]/;function hr(e,{from:t,to:n}){let i=e.state.doc.lineAt(t),r=e.state.doc.lineAt(n).to,o=Math.max(i.from,t-30),s=Math.min(r,n+30),l=e.state.sliceDoc(o,s);if(o!=i.from)for(let a=0;a<30;a++)if(!cr.test(l[a+1])&&cr.test(l[a])){l=l.slice(a);break}if(s!=r)for(let a=l.length-1;a>l.length-30;a--)if(!cr.test(l[a-1])&&cr.test(l[a])){l=l.slice(0,a);break}return u.EditorView.announce.of(`${e.state.phrase("current match")}. ${l} ${e.state.phrase("on line")} ${i.number}.`)}const ur=u.EditorView.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),fr=[$i,h.Prec.lowest(Ki),ur];class dr{constructor(e,t,n){this.state=e,this.pos=t,this.explicit=n,this.abortListeners=[]}tokenBefore(e){let t=ke(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),i=t.text.slice(n-t.from,this.pos-t.from),r=i.search(vr(e,!1));return r<0?null:{from:n+r,to:this.pos,text:i.slice(r)}}get aborted(){return null==this.abortListeners}addEventListener(e,t){"abort"==e&&this.abortListeners&&this.abortListeners.push(t)}}function pr(e){let t=Object.keys(e).join(""),n=/\w/.test(t);return n&&(t=t.replace(/\w/g,"")),`[${n?"\\w":""}${t.replace(/[^\w\s]/g,"\\$&")}]`}function mr(e){let t=e.map((e=>"string"==typeof e?{label:e}:e)),[n,i]=t.every((e=>/^\w+$/.test(e.label)))?[/\w*$/,/\w+$/]:function(e){let t=Object.create(null),n=Object.create(null);for(let{label:r}of e){t[r[0]]=!0;for(let e=1;e<r.length;e++)n[r[e]]=!0}let i=pr(t)+pr(n)+"*$";return[new RegExp("^"+i),new RegExp(i)]}(t);return e=>{let r=e.matchBefore(i);return r||e.explicit?{from:r?r.from:e.pos,options:t,validFor:n}:null}}class gr{constructor(e,t,n){this.completion=e,this.source=t,this.match=n}}function yr(e){return e.selection.main.head}function vr(e,t){var n;let{source:i}=e,r=t&&"^"!=i[0],o="$"!=i[i.length-1];return r||o?new RegExp(`${r?"^":""}(?:${i})${o?"$":""}`,null!==(n=e.flags)&&void 0!==n?n:e.ignoreCase?"i":""):e}const br=h.Annotation.define();function wr(e,t){const n=t.completion.apply||t.completion.label;let i=t.source;var r,o,s,l;"string"==typeof n?e.dispatch(Object.assign(Object.assign({},(r=e.state,o=n,s=i.from,l=i.to,Object.assign(Object.assign({},r.changeByRange((e=>{if(e==r.selection.main)return{changes:{from:s,to:l,insert:o},range:h.EditorSelection.cursor(s+o.length)};let t=l-s;return!e.empty||t&&r.sliceDoc(e.from-t,e.from)!=r.sliceDoc(s,l)?{range:e}:{changes:{from:e.from-t,to:e.from,insert:o},range:h.EditorSelection.cursor(e.from-t+o.length)}}))),{userEvent:"input.complete"}))),{annotations:br.of(t.completion)})):n(e,t.completion,i.from,i.to)}const xr=new WeakMap;function kr(e){if(!Array.isArray(e))return e;let t=xr.get(e);return t||xr.set(e,t=mr(e)),t}class Sr{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[];for(let t=0;t<e.length;){let n=(0,h.codePointAt)(e,t),i=(0,h.codePointSize)(n);this.chars.push(n);let r=e.slice(t,t+i),o=r.toUpperCase();this.folded.push((0,h.codePointAt)(o==r?r.toLowerCase():o,0)),t+=i}this.astral=e.length!=this.chars.length}match(e){if(0==this.pattern.length)return[0];if(e.length<this.pattern.length)return null;let{chars:t,folded:n,any:i,precise:r,byWord:o}=this;if(1==t.length){let i=(0,h.codePointAt)(e,0);return i==t[0]?[0,0,(0,h.codePointSize)(i)]:i==n[0]?[-200,0,(0,h.codePointSize)(i)]:null}let s=e.indexOf(this.pattern);if(0==s)return[0,0,this.pattern.length];let l=t.length,a=0;if(s<0){for(let r=0,o=Math.min(e.length,200);r<o&&a<l;){let o=(0,h.codePointAt)(e,r);o!=t[a]&&o!=n[a]||(i[a++]=r),r+=(0,h.codePointSize)(o)}if(a<l)return null}let c=0,u=0,f=!1,d=0,p=-1,m=-1,g=/[a-z]/.test(e),y=!0;for(let v=0,b=Math.min(e.length,200),w=0;v<b&&u<l;){let i=(0,h.codePointAt)(e,v);s<0&&(c<l&&i==t[c]&&(r[c++]=v),d<l&&(i==t[d]||i==n[d]?(0==d&&(p=v),m=v+1,d++):d=0));let a,b=i<255?i>=48&&i<=57||i>=97&&i<=122?2:i>=65&&i<=90?1:0:(a=(0,h.fromCodePoint)(i))!=a.toLowerCase()?1:a!=a.toUpperCase()?2:0;(!v||1==b&&g||0==w&&0!=b)&&(t[u]==i||n[u]==i&&(f=!0)?o[u++]=v:o.length&&(y=!1)),w=b,v+=(0,h.codePointSize)(i)}return u==l&&0==o[0]&&y?this.result((f?-200:0)-100,o,e):d==l&&0==p?[-200-e.length,0,m]:s>-1?[-700-e.length,s,s+this.pattern.length]:d==l?[-900-e.length,p,m]:u==l?this.result((f?-200:0)-100-700+(y?0:-1100),o,e):2==t.length?null:this.result((i[0]?-700:0)-200-1100,i,e)}result(e,t,n){let i=[e-n.length],r=1;for(let o of t){let e=o+(this.astral?(0,h.codePointSize)((0,h.codePointAt)(n,o)):1);r>1&&i[r-1]==o?i[r-1]=e:(i[r++]=o,i[r++]=e)}return i}}const Cr=h.Facet.define({combine:e=>(0,h.combineConfig)(e,{activateOnTyping:!0,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],compareCompletions:(e,t)=>e.label.localeCompare(t.label),interactionDelay:75},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>n=>Ar(e(n),t(n)),optionClass:(e,t)=>n=>Ar(e(n),t(n)),addToOptions:(e,t)=>e.concat(t)})});function Ar(e,t){return e?t?e+" "+t:e:t}function Er(e,t,n){if(e<=n)return{from:0,to:e};if(t<0&&(t=0),t<=e>>1){let e=Math.floor(t/n);return{from:e*n,to:(e+1)*n}}let i=Math.floor((e-t)/n);return{from:e-(i+1)*n,to:e-i*n}}class Or{constructor(e,t){this.view=e,this.stateField=t,this.info=null,this.placeInfo={read:()=>this.measureInfo(),write:e=>this.positionInfo(e),key:this},this.space=null,this.currentClass="";let n=e.state.field(t),{options:i,selected:r}=n.open,o=e.state.facet(Cr);this.optionContent=function(e){let t=e.addToOptions.slice();return e.icons&&t.push({render(e){let t=document.createElement("div");return t.classList.add("cm-completionIcon"),e.type&&t.classList.add(...e.type.split(/\s+/g).map((e=>"cm-completionIcon-"+e))),t.setAttribute("aria-hidden","true"),t},position:20}),t.push({render(e,t,n){let i=document.createElement("span");i.className="cm-completionLabel";let{label:r}=e,o=0;for(let s=1;s<n.length;){let e=n[s++],t=n[s++];e>o&&i.appendChild(document.createTextNode(r.slice(o,e)));let l=i.appendChild(document.createElement("span"));l.appendChild(document.createTextNode(r.slice(e,t))),l.className="cm-completionMatchedText",o=t}return o<r.length&&i.appendChild(document.createTextNode(r.slice(o))),i},position:50},{render(e){if(!e.detail)return null;let t=document.createElement("span");return t.className="cm-completionDetail",t.textContent=e.detail,t},position:80}),t.sort(((e,t)=>e.position-t.position)).map((e=>e.render))}(o),this.optionClass=o.optionClass,this.tooltipClass=o.tooltipClass,this.range=Er(i.length,r,o.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",(t=>{for(let n,r=t.target;r&&r!=this.dom;r=r.parentNode)if("LI"==r.nodeName&&(n=/-(\d+)$/.exec(r.id))&&+n[1]<i.length)return wr(e,i[+n[1]]),void t.preventDefault()})),this.list=this.dom.appendChild(this.createListBox(i,n.id,this.range)),this.list.addEventListener("scroll",(()=>{this.info&&this.view.requestMeasure(this.placeInfo)}))}mount(){this.updateSel()}update(e){var t,n,i;let r=e.state.field(this.stateField),o=e.startState.field(this.stateField);this.updateTooltipClass(e.state),r!=o&&(this.updateSel(),(null===(t=r.open)||void 0===t?void 0:t.disabled)!=(null===(n=o.open)||void 0===n?void 0:n.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!(null===(i=r.open)||void 0===i?void 0:i.disabled)))}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let e of this.currentClass.split(" "))e&&this.dom.classList.remove(e);for(let e of t.split(" "))e&&this.dom.classList.add(e);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfo)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;if((t.selected>-1&&t.selected<this.range.from||t.selected>=this.range.to)&&(this.range=Er(t.options.length,t.selected,this.view.state.facet(Cr).maxRenderedOptions),this.list.remove(),this.list=this.dom.appendChild(this.createListBox(t.options,e.id,this.range)),this.list.addEventListener("scroll",(()=>{this.info&&this.view.requestMeasure(this.placeInfo)}))),this.updateSelectedOption(t.selected)){this.info&&(this.info.remove(),this.info=null);let{completion:n}=t.options[t.selected],{info:i}=n;if(!i)return;let r="string"===typeof i?document.createTextNode(i):i(n);if(!r)return;"then"in r?r.then((t=>{t&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(t)})).catch((e=>(0,u.logException)(this.view.state,e,"completion info"))):this.addInfoPane(r)}}addInfoPane(e){let t=this.info=document.createElement("div");t.className="cm-tooltip cm-completionInfo",t.appendChild(e),this.dom.appendChild(t),this.view.requestMeasure(this.placeInfo)}updateSelectedOption(e){let t=null;for(let n=this.list.firstChild,i=this.range.from;n;n=n.nextSibling,i++)i==e?n.hasAttribute("aria-selected")||(n.setAttribute("aria-selected","true"),t=n):n.hasAttribute("aria-selected")&&n.removeAttribute("aria-selected");return t&&function(e,t){let n=e.getBoundingClientRect(),i=t.getBoundingClientRect();i.top<n.top?e.scrollTop-=n.top-i.top:i.bottom>n.bottom&&(e.scrollTop+=i.bottom-n.bottom)}(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),n=this.info.getBoundingClientRect(),i=e.getBoundingClientRect(),r=this.space;if(!r){let e=this.dom.ownerDocument.defaultView||window;r={left:0,top:0,right:e.innerWidth,bottom:e.innerHeight}}if(i.top>Math.min(r.bottom,t.bottom)-10||i.bottom<Math.max(r.top,t.top)+10)return null;let o,s=this.view.textDirection==u.Direction.RTL,l=s,a=!1,c="",h="",f=t.left-r.left,d=r.right-t.right;if(l&&f<Math.min(n.width,d)?l=!1:!l&&d<Math.min(n.width,f)&&(l=!0),n.width<=(l?f:d))c=Math.max(r.top,Math.min(i.top,r.bottom-n.height))-t.top+"px",o=Math.min(400,l?f:d)+"px";else{a=!0,o=Math.min(400,(s?t.right:r.right-t.left)-30)+"px";let e=r.bottom-t.bottom;e>=n.height||e>t.top?c=i.bottom-t.top+"px":h=t.bottom-i.top+"px"}return{top:c,bottom:h,maxWidth:o,class:a?s?"left-narrow":"right-narrow":l?"left":"right"}}positionInfo(e){this.info&&(e?(this.info.style.top=e.top,this.info.style.bottom=e.bottom,this.info.style.maxWidth=e.maxWidth,this.info.className="cm-tooltip cm-completionInfo cm-completionInfo-"+e.class):this.info.style.top="-1e6px")}createListBox(e,t,n){const i=document.createElement("ul");i.id=t,i.setAttribute("role","listbox"),i.setAttribute("aria-expanded","true"),i.setAttribute("aria-label",this.view.state.phrase("Completions"));for(let r=n.from;r<n.to;r++){let{completion:n,match:o}=e[r];const s=i.appendChild(document.createElement("li"));s.id=t+"-"+r,s.setAttribute("role","option");let l=this.optionClass(n);l&&(s.className=l);for(let e of this.optionContent){let t=e(n,this.view.state,o);t&&s.appendChild(t)}}return n.from&&i.classList.add("cm-completionListIncompleteTop"),n.to<e.length&&i.classList.add("cm-completionListIncompleteBottom"),i}}function Mr(e){return 100*(e.boost||0)+(e.apply?10:0)+(e.info?5:0)+(e.type?1:0)}class Dr{constructor(e,t,n,i,r,o){this.options=e,this.attrs=t,this.tooltip=n,this.timestamp=i,this.selected=r,this.disabled=o}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new Dr(this.options,Tr(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,n,i,r){let o=function(e,t){let n=[],i=0;for(let l of e)if(l.hasResult())if(!1===l.result.filter){let e=l.result.getMatch;for(let t of l.result.options){let r=[1e9-i++];if(e)for(let n of e(t))r.push(n);n.push(new gr(t,l,r))}}else{let e,i=new Sr(t.sliceDoc(l.from,l.to));for(let t of l.result.options)(e=i.match(t.label))&&(null!=t.boost&&(e[0]+=t.boost),n.push(new gr(t,l,e)))}let r=[],o=null,s=t.facet(Cr).compareCompletions;for(let l of n.sort(((e,t)=>t.match[0]-e.match[0]||s(e.completion,t.completion))))!o||o.label!=l.completion.label||o.detail!=l.completion.detail||null!=o.type&&null!=l.completion.type&&o.type!=l.completion.type||o.apply!=l.completion.apply?r.push(l):Mr(l.completion)>Mr(o)&&(r[r.length-1]=l),o=l.completion;return r}(e,t);if(!o.length)return i&&e.some((e=>1==e.state))?new Dr(i.options,i.attrs,i.tooltip,i.timestamp,i.selected,!0):null;let s=t.facet(Cr).selectOnOpen?0:-1;if(i&&i.selected!=s&&-1!=i.selected){let e=i.options[i.selected].completion;for(let t=0;t<o.length;t++)if(o[t].completion==e){s=t;break}}return new Dr(o,Tr(n,s),{pos:e.reduce(((e,t)=>t.hasResult()?Math.min(e,t.from):e),1e8),create:(l=jr,e=>new Or(e,l)),above:r.aboveCursor},i?i.timestamp:Date.now(),s,!1);var l}map(e){return new Dr(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class Pr{constructor(e,t,n){this.active=e,this.id=t,this.open=n}static start(){return new Pr(Br,"cm-ac-"+Math.floor(2e6*Math.random()).toString(36),null)}update(e){let{state:t}=e,n=t.facet(Cr),i=(n.override||t.languageDataAt("autocomplete",yr(t)).map(kr)).map((t=>(this.active.find((e=>e.source==t))||new Rr(t,this.active.some((e=>0!=e.state))?1:0)).update(e,n)));i.length==this.active.length&&i.every(((e,t)=>e==this.active[t]))&&(i=this.active);let r=this.open;r&&e.docChanged&&(r=r.map(e.changes)),e.selection||i.some((t=>t.hasResult()&&e.changes.touchesRange(t.from,t.to)))||!function(e,t){if(e==t)return!0;for(let n=0,i=0;;){for(;n<e.length&&!e[n].hasResult;)n++;for(;i<t.length&&!t[i].hasResult;)i++;let r=n==e.length,o=i==t.length;if(r||o)return r==o;if(e[n++].result!=t[i++].result)return!1}}(i,this.active)?r=Dr.build(i,t,this.id,r,n):r&&r.disabled&&!i.some((e=>1==e.state))&&(r=null),!r&&i.every((e=>1!=e.state))&&i.some((e=>e.hasResult()))&&(i=i.map((e=>e.hasResult()?new Rr(e.source,0):e)));for(let o of e.effects)o.is(Vr)&&(r=r&&r.setSelected(o.value,this.id));return i==this.active&&r==this.open?this:new Pr(i,this.id,r)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:Ir}}const Ir={"aria-autocomplete":"list"};function Tr(e,t){let n={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":e};return t>-1&&(n["aria-activedescendant"]=e+"-"+t),n}const Br=[];function Nr(e){return e.isUserEvent("input.type")?"input":e.isUserEvent("delete.backward")?"delete":null}class Rr{constructor(e,t,n=-1){this.source=e,this.state=t,this.explicitPos=n}hasResult(){return!1}update(e,t){let n=Nr(e),i=this;n?i=i.handleUserEvent(e,n,t):e.docChanged?i=i.handleChange(e):e.selection&&0!=i.state&&(i=new Rr(i.source,0));for(let r of e.effects)if(r.is(_r))i=new Rr(i.source,1,r.value?yr(e.state):-1);else if(r.is(Fr))i=new Rr(i.source,0);else if(r.is(Wr))for(let e of r.value)e.source==i.source&&(i=e);return i}handleUserEvent(e,t,n){return"delete"!=t&&n.activateOnTyping?new Rr(this.source,1):this.map(e.changes)}handleChange(e){return e.changes.touchesRange(yr(e.startState))?new Rr(this.source,0):this.map(e.changes)}map(e){return e.empty||this.explicitPos<0?this:new Rr(this.source,this.state,e.mapPos(this.explicitPos))}}class Lr extends Rr{constructor(e,t,n,i,r){super(e,2,t),this.result=n,this.from=i,this.to=r}hasResult(){return!0}handleUserEvent(e,t,n){var i;let r=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),s=yr(e.state);if((this.explicitPos<0?s<=r:s<this.from)||s>o||"delete"==t&&yr(e.startState)==this.from)return new Rr(this.source,"input"==t&&n.activateOnTyping?1:0);let l,a=this.explicitPos<0?-1:e.changes.mapPos(this.explicitPos);return function(e,t,n,i){if(!e)return!1;let r=t.sliceDoc(n,i);return"function"==typeof e?e(r,n,i,t):vr(e,!0).test(r)}(this.result.validFor,e.state,r,o)?new Lr(this.source,a,this.result,r,o):this.result.update&&(l=this.result.update(this.result,r,o,new dr(e.state,s,a>=0)))?new Lr(this.source,a,l,l.from,null!==(i=l.to)&&void 0!==i?i:yr(e.state)):new Rr(this.source,1,a)}handleChange(e){return e.changes.touchesRange(this.from,this.to)?new Rr(this.source,0):this.map(e.changes)}map(e){return e.empty?this:new Lr(this.source,this.explicitPos<0?-1:e.mapPos(this.explicitPos),this.result,e.mapPos(this.from),e.mapPos(this.to,1))}}const _r=h.StateEffect.define(),Fr=h.StateEffect.define(),Wr=h.StateEffect.define({map:(e,t)=>e.map((e=>e.map(t)))}),Vr=h.StateEffect.define(),jr=h.StateField.define({create:()=>Pr.start(),update:(e,t)=>e.update(t),provide:e=>[u.showTooltip.from(e,(e=>e.tooltip)),u.EditorView.contentAttributes.from(e,(e=>e.attrs))]});function qr(e,t="option"){return n=>{let i=n.state.field(jr,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp<n.state.facet(Cr).interactionDelay)return!1;let r,o=1;"page"==t&&(r=(0,u.getTooltip)(n,i.open.tooltip))&&(o=Math.max(2,Math.floor(r.dom.offsetHeight/r.dom.querySelector("li").offsetHeight)-1));let{length:s}=i.open.options,l=i.open.selected>-1?i.open.selected+o*(e?1:-1):e?0:s-1;return l<0?l="page"==t?0:s-1:l>=s&&(l="page"==t?s-1:0),n.dispatch({effects:Vr.of(l)}),!0}}class zr{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}}const Ur=u.ViewPlugin.fromClass(class{constructor(e){this.view=e,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.composing=0;for(let t of e.state.field(jr).active)1==t.state&&this.startQuery(t)}update(e){let t=e.state.field(jr);if(!e.selectionSet&&!e.docChanged&&e.startState.field(jr)==t)return;let n=e.transactions.some((e=>(e.selection||e.docChanged)&&!Nr(e)));for(let r=0;r<this.running.length;r++){let t=this.running[r];if(n||t.updates.length+e.transactions.length>50&&Date.now()-t.time>1e3){for(let e of t.context.abortListeners)try{e()}catch(i){(0,u.logException)(this.view.state,i)}t.context.abortListeners=null,this.running.splice(r--,1)}else t.updates.push(...e.transactions)}if(this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),this.debounceUpdate=t.active.some((e=>1==e.state&&!this.running.some((t=>t.active.source==e.source))))?setTimeout((()=>this.startUpdate()),50):-1,0!=this.composing)for(let r of e.transactions)"input"==Nr(r)?this.composing=2:2==this.composing&&r.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1;let{state:e}=this.view,t=e.field(jr);for(let n of t.active)1!=n.state||this.running.some((e=>e.active.source==n.source))||this.startQuery(n)}startQuery(e){let{state:t}=this.view,n=yr(t),i=new dr(t,n,e.explicitPos==n),r=new zr(e,i);this.running.push(r),Promise.resolve(e.source(i)).then((e=>{r.context.aborted||(r.done=e||null,this.scheduleAccept())}),(e=>{this.view.dispatch({effects:Fr.of(null)}),(0,u.logException)(this.view.state,e)}))}scheduleAccept(){this.running.every((e=>void 0!==e.done))?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout((()=>this.accept()),50))}accept(){var e;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let t=[],n=this.view.state.facet(Cr);for(let i=0;i<this.running.length;i++){let r=this.running[i];if(void 0===r.done)continue;if(this.running.splice(i--,1),r.done){let i=new Lr(r.active.source,r.active.explicitPos,r.done,r.done.from,null!==(e=r.done.to)&&void 0!==e?e:yr(r.updates.length?r.updates[0].startState:this.view.state));for(let e of r.updates)i=i.update(e,n);if(i.hasResult()){t.push(i);continue}}let o=this.view.state.field(jr).active.find((e=>e.source==r.active.source));if(o&&1==o.state)if(null==r.done){let e=new Rr(r.active.source,0);for(let t of r.updates)e=e.update(t,n);1!=e.state&&t.push(e)}else this.startQuery(o)}t.length&&this.view.dispatch({effects:Wr.of(t)})}},{eventHandlers:{blur(){let e=this.view.state.field(jr,!1);e&&e.tooltip&&this.view.state.facet(Cr).closeOnBlur&&this.view.dispatch({effects:Fr.of(null)})},compositionstart(){this.composing=1},compositionend(){3==this.composing&&setTimeout((()=>this.view.dispatch({effects:_r.of(!1)})),20),this.composing=0}}}),$r=u.EditorView.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer",padding:"1px 3px",lineHeight:1.2}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xb7\xb7\xb7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25cb'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25cc'"}},".cm-completionIcon-variable":{"&:after":{content:"'\ud835\udc65'"}},".cm-completionIcon-constant":{"&:after":{content:"'\ud835\udc36'"}},".cm-completionIcon-type":{"&:after":{content:"'\ud835\udc61'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222a'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25a1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\ud83d\udd11\ufe0e'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25a2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});const Hr={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Jr=h.StateEffect.define({map(e,t){let n=t.mapPos(e,-1,h.MapMode.TrackAfter);return null==n?void 0:n}}),Gr=h.StateEffect.define({map:(e,t)=>t.mapPos(e)}),Kr=new class extends h.RangeValue{};Kr.startSide=1,Kr.endSide=-1;const Qr=h.StateField.define({create:()=>h.RangeSet.empty,update(e,t){if(t.selection){let n=t.state.doc.lineAt(t.selection.main.head).from,i=t.startState.doc.lineAt(t.startState.selection.main.head).from;n!=t.changes.mapPos(i,-1)&&(e=h.RangeSet.empty)}e=e.map(t.changes);for(let n of t.effects)n.is(Jr)?e=e.update({add:[Kr.range(n.value,n.value+1)]}):n.is(Gr)&&(e=e.update({filter:e=>e!=n.value}));return e}});const Yr="()[]{}<>";function Xr(e){for(let t=0;t<Yr.length;t+=2)if(Yr.charCodeAt(t)==e)return Yr.charAt(t+1);return(0,h.fromCodePoint)(e<128?e:e+1)}function Zr(e,t){return e.languageDataAt("closeBrackets",t)[0]||Hr}const eo="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),to=u.EditorView.inputHandler.of(((e,t,n,i)=>{if((eo?e.composing:e.compositionStarted)||e.state.readOnly)return!1;let r=e.state.selection.main;if(i.length>2||2==i.length&&1==(0,h.codePointSize)((0,h.codePointAt)(i,0))||t!=r.from||n!=r.to)return!1;let o=function(e,t){let n=Zr(e,e.selection.main.head),i=n.brackets||Hr.brackets;for(let r of i){let o=Xr((0,h.codePointAt)(r,0));if(t==r)return o==r?lo(e,r,i.indexOf(r+r+r)>-1,n):oo(e,r,o,n.before||Hr.before);if(t==o&&io(e,e.selection.main.from))return so(e,r,o)}return null}(e.state,i);return!!o&&(e.dispatch(o),!0)})),no=[{key:"Backspace",run:({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Zr(e,e.selection.main.head).brackets||Hr.brackets,i=null,r=e.changeByRange((t=>{if(t.empty){let i=function(e,t){let n=e.sliceString(t-2,t);return(0,h.codePointSize)((0,h.codePointAt)(n,0))==n.length?n:n.slice(1)}(e.doc,t.head);for(let r of n)if(r==i&&ro(e.doc,t.head)==Xr((0,h.codePointAt)(r,0)))return{changes:{from:t.head-r.length,to:t.head+r.length},range:h.EditorSelection.cursor(t.head-r.length)}}return{range:i=t}}));return i||t(e.update(r,{scrollIntoView:!0,userEvent:"delete.backward"})),!i}}];function io(e,t){let n=!1;return e.field(Qr).between(0,e.doc.length,(e=>{e==t&&(n=!0)})),n}function ro(e,t){let n=e.sliceString(t,t+2);return n.slice(0,(0,h.codePointSize)((0,h.codePointAt)(n,0)))}function oo(e,t,n,i){let r=null,o=e.changeByRange((o=>{if(!o.empty)return{changes:[{insert:t,from:o.from},{insert:n,from:o.to}],effects:Jr.of(o.to+t.length),range:h.EditorSelection.range(o.anchor+t.length,o.head+t.length)};let s=ro(e.doc,o.head);return!s||/\s/.test(s)||i.indexOf(s)>-1?{changes:{insert:t+n,from:o.head},effects:Jr.of(o.head+t.length),range:h.EditorSelection.cursor(o.head+t.length)}:{range:r=o}}));return r?null:e.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function so(e,t,n){let i=null,r=e.selection.ranges.map((t=>t.empty&&ro(e.doc,t.head)==n?h.EditorSelection.cursor(t.head+n.length):i=t));return i?null:e.update({selection:h.EditorSelection.create(r,e.selection.mainIndex),scrollIntoView:!0,effects:e.selection.ranges.map((({from:e})=>Gr.of(e)))})}function lo(e,t,n,i){let r=i.stringPrefixes||Hr.stringPrefixes,o=null,s=e.changeByRange((i=>{if(!i.empty)return{changes:[{insert:t,from:i.from},{insert:t,from:i.to}],effects:Jr.of(i.to+t.length),range:h.EditorSelection.range(i.anchor+t.length,i.head+t.length)};let s,l=i.head,a=ro(e.doc,l);if(a==t){if(ao(e,l))return{changes:{insert:t+t,from:l},effects:Jr.of(l+t.length),range:h.EditorSelection.cursor(l+t.length)};if(io(e,l)){let i=n&&e.sliceDoc(l,l+3*t.length)==t+t+t;return{range:h.EditorSelection.cursor(l+t.length*(i?3:1)),effects:Gr.of(l)}}}else{if(n&&e.sliceDoc(l-2*t.length,l)==t+t&&(s=co(e,l-2*t.length,r))>-1&&ao(e,s))return{changes:{insert:t+t+t+t,from:l},effects:Jr.of(l+t.length),range:h.EditorSelection.cursor(l+t.length)};if(e.charCategorizer(l)(a)!=h.CharCategory.Word&&co(e,l,r)>-1&&!function(e,t,n,i){let r=ke(e).resolveInner(t,-1),o=i.reduce(((e,t)=>Math.max(e,t.length)),0);for(let s=0;s<5;s++){let s=e.sliceDoc(r.from,Math.min(r.to,r.from+n.length+o)),l=s.indexOf(n);if(!l||l>-1&&i.indexOf(s.slice(0,l))>-1){let t=r.firstChild;for(;t&&t.from==r.from&&t.to-t.from>n.length+l;){if(e.sliceDoc(t.to-n.length,t.to)==n)return!1;t=t.firstChild}return!0}let a=r.to==t&&r.parent;if(!a)break;r=a}return!1}(e,l,t,r))return{changes:{insert:t+t,from:l},effects:Jr.of(l+t.length),range:h.EditorSelection.cursor(l+t.length)}}return{range:o=i}}));return o?null:e.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function ao(e,t){let n=ke(e).resolveInner(t+1);return n.parent&&n.from==t}function co(e,t,n){let i=e.charCategorizer(t);if(i(e.sliceDoc(t-1,t))!=h.CharCategory.Word)return t;for(let r of n){let n=t-r.length;if(e.sliceDoc(n,t)==r&&i(e.sliceDoc(n-1,n))!=h.CharCategory.Word)return n}return-1}const ho=[{key:"Ctrl-Space",run:e=>!!e.state.field(jr,!1)&&(e.dispatch({effects:_r.of(!0)}),!0)},{key:"Escape",run:e=>{let t=e.state.field(jr,!1);return!(!t||!t.active.some((e=>0!=e.state)))&&(e.dispatch({effects:Fr.of(null)}),!0)}},{key:"ArrowDown",run:qr(!0)},{key:"ArrowUp",run:qr(!1)},{key:"PageDown",run:qr(!0,"page")},{key:"PageUp",run:qr(!1,"page")},{key:"Enter",run:e=>{let t=e.state.field(jr,!1);return!(e.state.readOnly||!t||!t.open||t.open.selected<0||Date.now()-t.open.timestamp<e.state.facet(Cr).interactionDelay)&&(t.open.disabled||wr(e,t.open.options[t.open.selected]),!0)}}],uo=h.Prec.highest(u.keymap.computeN([Cr],(e=>e.facet(Cr).defaultKeymap?[ho]:[])));class fo{constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}}class po{constructor(e,t,n){this.diagnostics=e,this.panel=t,this.selected=n}static init(e,t,n){let i=e,r=n.facet(Mo).markerFilter;r&&(i=r(i));let o=u.Decoration.set(i.map((e=>e.from==e.to||e.from==e.to-1&&n.doc.lineAt(e.from).to==e.from?u.Decoration.widget({widget:new Io(e),diagnostic:e}).range(e.from):u.Decoration.mark({attributes:{class:"cm-lintRange cm-lintRange-"+e.severity},diagnostic:e}).range(e.from,e.to))),!0);return new po(o,t,mo(o))}}function mo(e,t=null,n=0){let i=null;return e.between(n,1e9,((e,n,{spec:r})=>{if(!t||r.diagnostic==t)return i=new fo(e,n,r.diagnostic),!1})),i}function go(e,t){return!(!e.effects.some((e=>e.is(vo)))&&!e.changes.touchesRange(t.pos))}function yo(e,t){return e.field(xo,!1)?t:t.concat(h.StateEffect.appendConfig.of([xo,u.EditorView.decorations.compute([xo],(e=>{let{selected:t,panel:n}=e.field(xo);return t&&n&&t.from!=t.to?u.Decoration.set([ko.range(t.from,t.to)]):u.Decoration.none})),(0,u.hoverTooltip)(So,{hideOn:go}),Lo]))}const vo=h.StateEffect.define(),bo=h.StateEffect.define(),wo=h.StateEffect.define(),xo=h.StateField.define({create:()=>new po(u.Decoration.none,null,null),update(e,t){if(t.docChanged){let n=e.diagnostics.map(t.changes),i=null;if(e.selected){let r=t.changes.mapPos(e.selected.from,1);i=mo(n,e.selected.diagnostic,r)||mo(n,null,r)}e=new po(n,e.panel,i)}for(let n of t.effects)n.is(vo)?e=po.init(n.value,e.panel,t.state):n.is(bo)?e=new po(e.diagnostics,n.value?Bo.open:null,e.selected):n.is(wo)&&(e=new po(e.diagnostics,e.panel,n.value));return e},provide:e=>[u.showPanel.from(e,(e=>e.panel)),u.EditorView.decorations.from(e,(e=>e.diagnostics))]});const ko=u.Decoration.mark({class:"cm-lintRange cm-lintRange-active"});function So(e,t,n){let{diagnostics:i}=e.state.field(xo),r=[],o=2e8,s=0;i.between(t-(n<0?1:0),t+(n>0?1:0),((e,i,{spec:l})=>{t>=e&&t<=i&&(e==i||(t>e||n>0)&&(t<i||n<0))&&(r.push(l.diagnostic),o=Math.min(e,o),s=Math.max(i,s))}));let l=e.state.facet(Mo).tooltipFilter;return l&&(r=l(r)),r.length?{pos:o,end:s,above:e.state.doc.lineAt(o).to<s,create:()=>({dom:Co(e,r)})}:null}function Co(e,t){return fi("ul",{class:"cm-tooltip-lint"},t.map((t=>Po(e,t,!1))))}const Ao=e=>{let t=e.state.field(xo,!1);return!(!t||!t.panel)&&(e.dispatch({effects:bo.of(!1)}),!0)},Eo=[{key:"Mod-Shift-m",run:e=>{let t=e.state.field(xo,!1);t&&t.panel||e.dispatch({effects:yo(e.state,[bo.of(!0)])});let n=(0,u.getPanel)(e,Bo.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},preventDefault:!0},{key:"F8",run:e=>{let t=e.state.field(xo,!1);if(!t)return!1;let n=e.state.selection.main,i=t.diagnostics.iter(n.to+1);return!(!i.value&&(i=t.diagnostics.iter(0),!i.value||i.from==n.from&&i.to==n.to))&&(e.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),!0)}}],Oo=u.ViewPlugin.fromClass(class{constructor(e){this.view=e,this.timeout=-1,this.set=!0;let{delay:t}=e.state.facet(Mo);this.lintTime=Date.now()+t,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,t)}run(){let e=Date.now();if(e<this.lintTime-10)setTimeout(this.run,this.lintTime-e);else{this.set=!1;let{state:e}=this.view,{sources:t}=e.facet(Mo);Promise.all(t.map((e=>Promise.resolve(e(this.view))))).then((t=>{let n=t.reduce(((e,t)=>e.concat(t)));this.view.state.doc==e.doc&&this.view.dispatch(function(e,t){return{effects:yo(e,[vo.of(t)])}}(this.view.state,n))}),(e=>{(0,u.logException)(this.view.state,e)}))}}update(e){let t=e.state.facet(Mo);(e.docChanged||t!=e.startState.facet(Mo))&&(this.lintTime=Date.now()+t.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,t.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}}),Mo=h.Facet.define({combine:e=>Object.assign({sources:e.map((e=>e.source))},(0,h.combineConfig)(e.map((e=>e.config)),{delay:750,markerFilter:null,tooltipFilter:null})),enables:Oo});function Do(e){let t=[];if(e)e:for(let{name:n}of e){for(let e=0;e<n.length;e++){let i=n[e];if(/[a-zA-Z]/.test(i)&&!t.some((e=>e.toLowerCase()==i.toLowerCase()))){t.push(i);continue e}}t.push("")}return t}function Po(e,t,n){var i;let r=n?Do(t.actions):[];return fi("li",{class:"cm-diagnostic cm-diagnostic-"+t.severity},fi("span",{class:"cm-diagnosticText"},t.renderMessage?t.renderMessage():t.message),null===(i=t.actions)||void 0===i?void 0:i.map(((n,i)=>{let o=i=>{i.preventDefault();let r=mo(e.state.field(xo).diagnostics,t);r&&n.apply(e,r.from,r.to)},{name:s}=n,l=r[i]?s.indexOf(r[i]):-1,a=l<0?s:[s.slice(0,l),fi("u",s.slice(l,l+1)),s.slice(l+1)];return fi("button",{type:"button",class:"cm-diagnosticAction",onclick:o,onmousedown:o,"aria-label":` Action: ${s}${l<0?"":` (access key "${r[i]})"`}.`},a)})),t.source&&fi("div",{class:"cm-diagnosticSource"},t.source))}class Io extends u.WidgetType{constructor(e){super(),this.diagnostic=e}eq(e){return e.diagnostic==this.diagnostic}toDOM(){return fi("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class To{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(4294967295*Math.random()).toString(16),this.dom=Po(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class Bo{constructor(e){this.view=e,this.items=[];this.list=fi("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:t=>{if(27==t.keyCode)Ao(this.view),this.view.focus();else if(38==t.keyCode||33==t.keyCode)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(40==t.keyCode||34==t.keyCode)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(36==t.keyCode)this.moveSelection(0);else if(35==t.keyCode)this.moveSelection(this.items.length-1);else if(13==t.keyCode)this.view.focus();else{if(!(t.keyCode>=65&&t.keyCode<=90&&this.selectedIndex>=0))return;{let{diagnostic:n}=this.items[this.selectedIndex],i=Do(n.actions);for(let r=0;r<i.length;r++)if(i[r].toUpperCase().charCodeAt(0)==t.keyCode){let t=mo(this.view.state.field(xo).diagnostics,n);t&&n.actions[r].apply(e,t.from,t.to)}}}t.preventDefault()},onclick:e=>{for(let t=0;t<this.items.length;t++)this.items[t].dom.contains(e.target)&&this.moveSelection(t)}}),this.dom=fi("div",{class:"cm-panel-lint"},this.list,fi("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>Ao(this.view)},"\xd7")),this.update()}get selectedIndex(){let e=this.view.state.field(xo).selected;if(!e)return-1;for(let t=0;t<this.items.length;t++)if(this.items[t].diagnostic==e.diagnostic)return t;return-1}update(){let{diagnostics:e,selected:t}=this.view.state.field(xo),n=0,i=!1,r=null;for(e.between(0,this.view.state.doc.length,((e,o,{spec:s})=>{let l,a=-1;for(let t=n;t<this.items.length;t++)if(this.items[t].diagnostic==s.diagnostic){a=t;break}a<0?(l=new To(this.view,s.diagnostic),this.items.splice(n,0,l),i=!0):(l=this.items[a],a>n&&(this.items.splice(n,a-n),i=!0)),t&&l.diagnostic==t.diagnostic?l.dom.hasAttribute("aria-selected")||(l.dom.setAttribute("aria-selected","true"),r=l):l.dom.hasAttribute("aria-selected")&&l.dom.removeAttribute("aria-selected"),n++}));n<this.items.length&&!(1==this.items.length&&this.items[0].diagnostic.from<0);)i=!0,this.items.pop();0==this.items.length&&(this.items.push(new To(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),i=!0),r?(this.list.setAttribute("aria-activedescendant",r.id),this.view.requestMeasure({key:this,read:()=>({sel:r.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:e,panel:t})=>{e.top<t.top?this.list.scrollTop-=t.top-e.top:e.bottom>t.bottom&&(this.list.scrollTop+=e.bottom-t.bottom)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),i&&this.sync()}sync(){let e=this.list.firstChild;function t(){let t=e;e=t.nextSibling,t.remove()}for(let n of this.items)if(n.dom.parentNode==this.list){for(;e!=n.dom;)t();e=n.dom.nextSibling}else this.list.insertBefore(n.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=mo(this.view.state.field(xo).diagnostics,this.items[e].diagnostic);t&&this.view.dispatch({selection:{anchor:t.from,head:t.to},scrollIntoView:!0,effects:wo.of(t)})}static open(e){return new Bo(e)}}function No(e,t='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${t}>${encodeURIComponent(e)}</svg>')`}function Ro(e){return No(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${e}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const Lo=u.EditorView.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Ro("#d11")},".cm-lintRange-warning":{backgroundImage:Ro("orange")},".cm-lintRange-info":{backgroundImage:Ro("#999")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});class _o extends u.GutterMarker{constructor(e){super(),this.diagnostics=e,this.severity=e.reduce(((e,t)=>{let n=t.severity;return"error"==n||"warning"==n&&"info"==e?n:e}),"info")}toDOM(e){let t=document.createElement("div");t.className="cm-lint-marker cm-lint-marker-"+this.severity;let n=this.diagnostics,i=e.state.facet(lintGutterConfig).tooltipFilter;return i&&i(n),n.length&&(t.onmouseover=()=>function(e,t,n){function i(){let i=e.elementAtHeight(t.getBoundingClientRect().top+5-e.documentTop);e.coordsAtPos(i.from)&&e.dispatch({effects:setLintGutterTooltip.of({pos:i.from,above:!1,create:()=>({dom:Co(e,n),getCoords:()=>t.getBoundingClientRect()})})}),t.onmouseout=t.onmousemove=null,function(e,t){let n=i=>{let r=t.getBoundingClientRect();if(!(i.clientX>r.left-10&&i.clientX<r.right+10&&i.clientY>r.top-10&&i.clientY<r.bottom+10)){for(let e=i.target;e;e.parentNode)if(1==e.nodeType&&e.classList.contains("cm-tooltip-lint"))return;window.removeEventListener("mousemove",n),e.state.field(lintGutterTooltip)&&e.dispatch({effects:setLintGutterTooltip.of(null)})}};window.addEventListener("mousemove",n)}(e,t)}let{hoverTime:r}=e.state.facet(lintGutterConfig),o=setTimeout(i,r);t.onmouseout=()=>{clearTimeout(o),t.onmouseout=t.onmousemove=null},t.onmousemove=()=>{clearTimeout(o),setTimeout(i,r)}}(e,t,n)),t}}var Fo=function(e){void 0===e&&(e={});var t=[];!1!==e.closeBracketsKeymap&&(t=t.concat(no)),!1!==e.defaultKeymap&&(t=t.concat(hi)),!1!==e.searchKeymap&&(t=t.concat(sr)),!1!==e.historyKeymap&&(t=t.concat(fn)),!1!==e.foldKeymap&&(t=t.concat(rt)),!1!==e.completionKeymap&&(t=t.concat(ho)),!1!==e.lintKeymap&&(t=t.concat(Eo));var n=[];return!1!==e.lineNumbers&&n.push((0,u.lineNumbers)()),!1!==e.highlightActiveLineGutter&&n.push((0,u.highlightActiveLineGutter)()),!1!==e.highlightSpecialChars&&n.push((0,u.highlightSpecialChars)()),!1!==e.history&&n.push(Kt()),!1!==e.foldGutter&&n.push(function(e={}){let t=Object.assign(Object.assign({},ct),e),n=new ht(t,!0),i=new ht(t,!1),r=u.ViewPlugin.fromClass(class{constructor(e){this.from=e.viewport.from,this.markers=this.buildMarkers(e)}update(e){(e.docChanged||e.viewportChanged||e.startState.facet(Ie)!=e.state.facet(Ie)||e.startState.field(Ze,!1)!=e.state.field(Ze,!1)||ke(e.startState)!=ke(e.state)||t.foldingChanged(e))&&(this.markers=this.buildMarkers(e.view))}buildMarkers(e){let t=new h.RangeSetBuilder;for(let r of e.viewportLineBlocks){let o=et(e.state,r.from,r.to)?i:Ge(e.state,r.from,r.to)?n:null;o&&t.add(r.from,r.from,o)}return t.finish()}}),{domEventHandlers:o}=t;return[r,(0,u.gutter)({class:"cm-foldGutter",markers(e){var t;return(null===(t=e.plugin(r))||void 0===t?void 0:t.markers)||h.RangeSet.empty},initialSpacer:()=>new ht(t,!1),domEventHandlers:Object.assign(Object.assign({},o),{click:(e,t,n)=>{if(o.click&&o.click(e,t,n))return!0;let i=et(e.state,t.from,t.to);if(i)return e.dispatch({effects:Ye.of(i)}),!0;let r=Ge(e.state,t.from,t.to);return!!r&&(e.dispatch({effects:Qe.of(r)}),!0)}})}),lt()]}()),!1!==e.drawSelection&&n.push((0,u.drawSelection)()),!1!==e.dropCursor&&n.push((0,u.dropCursor)()),!1!==e.allowMultipleSelections&&n.push(h.EditorState.allowMultipleSelections.of(!0)),!1!==e.indentOnInput&&n.push(h.EditorState.transactionFilter.of((e=>{if(!e.docChanged||!e.isUserEvent("input.type")&&!e.isUserEvent("input.complete"))return e;let t=e.startState.languageDataAt("indentOnInput",e.startState.selection.main.head);if(!t.length)return e;let n=e.newDoc,{head:i}=e.newSelection.main,r=n.lineAt(i);if(i>r.from+200)return e;let o=n.sliceString(r.from,i);if(!t.some((e=>e.test(o))))return e;let{state:s}=e,l=-1,a=[];for(let{head:c}of s.selection.ranges){let e=s.doc.lineAt(c);if(e.from==l)continue;l=e.from;let t=Le(s,e.from);if(null==t)continue;let n=/^\s*/.exec(e.text)[0],i=Re(s,t);n!=i&&a.push({from:e.from,to:e.from+n.length,insert:i})}return a.length?[e,{changes:a,sequential:!0}]:e}))),!1!==e.syntaxHighlighting&&n.push(gt(bt,{fallback:!0})),!1!==e.bracketMatching&&n.push(function(e={}){return[kt.of(e),Ot]}()),!1!==e.closeBrackets&&n.push([to,Qr]),!1!==e.autocompletion&&n.push(function(e={}){return[jr,Cr.of(e),Ur,uo,$r]}()),!1!==e.rectangularSelection&&n.push((0,u.rectangularSelection)()),!1!==e.crosshairCursor&&n.push((0,u.crosshairCursor)()),!1!==e.highlightActiveLine&&n.push((0,u.highlightActiveLine)()),!1!==e.highlightSelectionMatches&&n.push(function(e){let t=[Bi,Ti];return e&&t.push(Mi.of(e)),t}()),e.tabSize&&"number"===typeof e.tabSize&&n.push(Be.of(" ".repeat(e.tabSize))),n.concat([u.keymap.of(t.flat())]).filter(Boolean)},Wo=function(e){void 0===e&&(e={});var t=[];!1!==e.defaultKeymap&&(t=t.concat(hi)),!1!==e.historyKeymap&&(t=t.concat(fn));var n=[];return!1!==e.highlightSpecialChars&&n.push((0,u.highlightSpecialChars)()),!1!==e.history&&n.push(Kt()),!1!==e.drawSelection&&n.push((0,u.drawSelection)()),!1!==e.syntaxHighlighting&&n.push(gt(bt,{fallback:!0})),n.concat([u.keymap.of(t.flat())]).filter(Boolean)},Vo=s(362),jo=function(e){return{line:e.state.doc.lineAt(e.state.selection.main.from),lineCount:e.state.doc.lines,lineBreak:e.state.lineBreak,length:e.state.doc.length,readOnly:e.state.readOnly,tabSize:e.state.tabSize,selection:e.state.selection,selectionAsSingle:e.state.selection.asSingle().main,ranges:e.state.selection.ranges,selectionCode:e.state.sliceDoc(e.state.selection.main.from,e.state.selection.main.to),selections:e.state.selection.ranges.map((function(t){return e.state.sliceDoc(t.from,t.to)})),selectedText:e.state.selection.ranges.some((function(e){return!e.empty}))}};function qo(e){var t=e.value,n=e.selection,i=e.onChange,r=e.onStatistics,s=e.onCreateEditor,l=e.onUpdate,a=e.extensions,f=void 0===a?[]:a,d=e.autoFocus,p=e.theme,m=void 0===p?"light":p,g=e.height,y=void 0===g?"":g,v=e.minHeight,b=void 0===v?"":v,w=e.maxHeight,x=void 0===w?"":w,k=e.placeholder,S=void 0===k?"":k,C=e.width,A=void 0===C?"":C,E=e.minWidth,O=void 0===E?"":E,M=e.maxWidth,D=void 0===M?"":M,P=e.editable,I=void 0===P||P,T=e.readOnly,B=void 0!==T&&T,N=e.indentWithTab,R=void 0===N||N,L=e.basicSetup,_=void 0===L||L,F=e.root,W=e.initialState,V=c((0,o.useState)(),2),j=V[0],q=V[1],z=c((0,o.useState)(),2),U=z[0],$=z[1],H=c((0,o.useState)(),2),J=H[0],G=H[1],K=u.EditorView.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),Q=u.EditorView.theme({"&":{height:y,minHeight:b,maxHeight:x,width:A,minWidth:O,maxWidth:D}}),Y=[u.EditorView.updateListener.of((function(e){if(e.docChanged&&"function"===typeof i){var t=e.state.doc.toString();i(t,e)}r&&r(jo(e))})),Q];switch(R&&Y.unshift(u.keymap.of([ui])),_&&("boolean"===typeof _?Y.unshift(Fo()):Y.unshift(Fo(_))),S&&Y.unshift((0,u.placeholder)(S)),m){case"light":Y.push(K);break;case"dark":Y.push(Vo.oneDark);break;case"none":break;default:Y.push(m)}return!1===I&&Y.push(u.EditorView.editable.of(!1)),B&&Y.push(h.EditorState.readOnly.of(!0)),l&&"function"===typeof l&&Y.push(u.EditorView.updateListener.of(l)),Y=Y.concat(f),(0,o.useEffect)((function(){if(j&&!J){var e={doc:t,selection:n,extensions:Y},i=W?h.EditorState.fromJSON(W.json,e,W.fields):h.EditorState.create(e);if(G(i),!U){var r=new u.EditorView({state:i,parent:j,root:F});$(r),s&&s(r,i)}}return function(){U&&(G(void 0),$(void 0))}}),[j,J]),(0,o.useEffect)((function(){return q(e.container)}),[e.container]),(0,o.useEffect)((function(){return function(){U&&(U.destroy(),$(void 0))}}),[U]),(0,o.useEffect)((function(){d&&U&&U.focus()}),[d,U]),(0,o.useEffect)((function(){U&&U.dispatch({effects:h.StateEffect.reconfigure.of(Y)})}),[m,f,y,b,x,A,O,D,S,I,B,R,_,i,l]),(0,o.useEffect)((function(){var e=U?U.state.doc.toString():"";U&&t!==e&&U.dispatch({changes:{from:0,to:e.length,insert:t||""}})}),[t,U]),{state:J,setState:G,view:U,setView:$,container:j,setContainer:q}}var zo=s(605),Uo=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],$o=(0,o.forwardRef)((function(e,t){var s=e.className,l=e.value,a=void 0===l?"":l,c=e.selection,h=e.extensions,u=void 0===h?[]:h,f=e.onChange,d=e.onStatistics,p=e.onCreateEditor,m=e.onUpdate,g=e.autoFocus,y=e.theme,v=void 0===y?"light":y,b=e.height,w=e.minHeight,x=e.maxHeight,k=e.width,S=e.minWidth,C=e.maxWidth,A=e.basicSetup,E=e.placeholder,O=e.indentWithTab,M=e.editable,D=e.readOnly,P=e.root,I=e.initialState,T=r(e,Uo),B=(0,o.useRef)(null),N=qo({container:B.current,root:P,value:a,autoFocus:g,theme:v,height:b,minHeight:w,maxHeight:x,width:k,minWidth:S,maxWidth:C,basicSetup:A,placeholder:E,indentWithTab:O,editable:M,readOnly:D,selection:c,onChange:f,onStatistics:d,onCreateEditor:p,onUpdate:m,extensions:u,initialState:I}),R=N.state,L=N.view,_=N.container;N.setContainer;if((0,o.useImperativeHandle)(t,(function(){return{editor:B.current,state:R,view:L}}),[B,_,R,L]),"string"!==typeof a)throw new Error("value must be typeof string but got ".concat(typeof a));var F="string"===typeof v?"cm-theme-".concat(v):"cm-theme";return(0,zo.jsx)("div",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({ref:B,className:"".concat(F).concat(s?" ".concat(s):"")},T))}));$o.displayName="CodeMirror";const Ho=$o})(),l})()));
2
+ !function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("react"),require("@codemirror/state"),require("@codemirror/theme-one-dark"),require("@codemirror/view")):"function"===typeof define&&define.amd?define(["react",,,],t):"object"===typeof exports?exports["@uiw/codemirror"]=t(require("react"),require("@codemirror/state"),require("@codemirror/theme-one-dark"),require("@codemirror/view")):e["@uiw/codemirror"]=t(e.React,e.CM["@codemirror/state"],e.CM["@codemirror/theme-one-dark"],e.CM["@codemirror/view"])}(self,((e,t,n,i)=>(()=>{"use strict";var r={298:(e,t,n)=>{var i=n(787),r=Symbol.for("react.element"),o=Symbol.for("react.fragment"),s=Object.prototype.hasOwnProperty,l=i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,a={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var i,o={},c=null,h=null;for(i in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(h=t.ref),t)s.call(t,i)&&!a.hasOwnProperty(i)&&(o[i]=t[i]);if(e&&e.defaultProps)for(i in t=e.defaultProps)void 0===o[i]&&(o[i]=t[i]);return{$$typeof:r,type:e,key:c,ref:h,props:o,_owner:l.current}}t.jsx=c},605:(e,t,n)=>{e.exports=n(298)},787:t=>{t.exports=e},242:e=>{e.exports=t},362:e=>{e.exports=n},105:e=>{e.exports=i}},o={};function s(e){var t=o[e];if(void 0!==t)return t.exports;var n=o[e]={exports:{}};return r[e](n,n.exports,s),n.exports}s.d=(e,t)=>{for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s.r=e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var l={};return(()=>{function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(t){var n=function(t,n){if("object"!==e(t)||null===t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var r=i.call(t,n||"default");if("object"!==e(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(t)}(t,"string");return"symbol"===e(n)?n:String(n)}function n(e,n,i){return(n=t(n))in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function r(e,t){if(null==e)return{};var n,i,r=function(e,t){if(null==e)return{};var n,i,r={},o=Object.keys(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}s.r(l),s.d(l,{basicSetup:()=>Fo,default:()=>Ho,getStatistics:()=>jo,minimalSetup:()=>Wo,useCodeMirror:()=>qo});var o=s(787);function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}function c(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var i,r,o,s,l=[],a=!0,c=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;a=!1}else for(;!(a=(i=o.call(n)).done)&&(l.push(i.value),l.length!==t);a=!0);}catch(h){c=!0,r=h}finally{try{if(!a&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"===typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var h=s(242),u=s(105);const f=1024;let d=0;class p{constructor(e,t){this.from=e,this.to=t}}class m{constructor(e={}){this.id=d++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return"function"!=typeof e&&(e=y.match(e)),t=>{let n=e(t);return void 0===n?null:[this,n]}}}m.closedBy=new m({deserialize:e=>e.split(" ")}),m.openedBy=new m({deserialize:e=>e.split(" ")}),m.group=new m({deserialize:e=>e.split(" ")}),m.contextHash=new m({perNode:!0}),m.lookAhead=new m({perNode:!0}),m.mounted=new m({perNode:!0});const g=Object.create(null);class y{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):g,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(null==e.name?8:0),i=new y(e.name||"",t,e.id,n);if(e.props)for(let r of e.props)if(Array.isArray(r)||(r=r(i)),r){if(r[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[r[0].id]=r[1]}return i}prop(e){return this.props[e.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(e){if("string"==typeof e){if(this.name==e)return!0;let t=this.prop(m.group);return!!t&&t.indexOf(e)>-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 e=>{for(let n=e.prop(m.group),i=-1;i<(n?n.length:0);i++){let r=t[i<0?e.name:n[i]];if(r)return r}}}}y.none=new y("",Object.create(null),0,8);const v=new WeakMap,b=new WeakMap;var w;!function(e){e[e.ExcludeBuffers=1]="ExcludeBuffers",e[e.IncludeAnonymous=2]="IncludeAnonymous",e[e.IgnoreMounts=4]="IgnoreMounts",e[e.IgnoreOverlays=8]="IgnoreOverlays"}(w||(w={}));class x{constructor(e,t,n,i,r){if(this.type=e,this.children=t,this.positions=n,this.length=i,this.props=null,r&&r.length){this.props=Object.create(null);for(let[e,t]of r)this.props["number"==typeof e?e:e.id]=t}}toString(){let e=this.prop(m.mounted);if(e&&!e.overlay)return e.tree.toString();let t="";for(let n of this.children){let e=n.toString();e&&(t&&(t+=","),t+=e)}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 T(this.topNode,e)}cursorAt(e,t=0,n=0){let i=v.get(this)||this.topNode,r=new T(i);return r.moveTo(e,t),v.set(this,r._tree),r}get topNode(){return new O(this,0,0,null)}resolve(e,t=0){let n=E(v.get(this)||this.topNode,e,t,!1);return v.set(this,n),n}resolveInner(e,t=0){let n=E(b.get(this)||this.topNode,e,t,!0);return b.set(this,n),n}iterate(e){let{enter:t,leave:n,from:i=0,to:r=this.length}=e;for(let o=this.cursor((e.mode||0)|w.IncludeAnonymous);;){let e=!1;if(o.from<=r&&o.to>=i&&(o.type.isAnonymous||!1!==t(o))){if(o.firstChild())continue;e=!0}for(;e&&n&&!o.type.isAnonymous&&n(o),!o.nextSibling();){if(!o.parent())return;e=!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:L(y.none,this.children,this.positions,0,this.children.length,0,this.length,((e,t,n)=>new x(this.type,e,t,n,this.propValues)),e.makeTree||((e,t,n)=>new x(y.none,e,t,n)))}static build(e){return function(e){var t;let{buffer:n,nodeSet:i,maxBufferLength:r=f,reused:o=[],minRepeatType:s=i.types.length}=e,l=Array.isArray(n)?new k(n,n.length):n,a=i.types,c=0,h=0;function u(e,t,n,f,m){let{id:b,start:w,end:x,size:k}=l,C=h;for(;k<0;){if(l.next(),-1==k){let t=o[b];return n.push(t),void f.push(w-e)}if(-3==k)return void(c=b);if(-4==k)return void(h=b);throw new RangeError(`Unrecognized record size: ${k}`)}let A,E,O=a[b],M=w-e;if(x-w<=r&&(E=y(l.pos-t,m))){let t=new Uint16Array(E.size-E.skip),n=l.pos-E.size,r=t.length;for(;l.pos>n;)r=v(E.start,t,r);A=new S(t,x-E.start,i),M=E.start-e}else{let e=l.pos-k;l.next();let t=[],n=[],i=b>=s?b:-1,o=0,a=x;for(;l.pos>e;)i>=0&&l.id==i&&l.size>=0?(l.end<=a-r&&(p(t,n,w,o,l.end,a,i,C),o=t.length,a=l.end),l.next()):u(w,e,t,n,i);if(i>=0&&o>0&&o<t.length&&p(t,n,w,o,w,a,i,C),t.reverse(),n.reverse(),i>-1&&o>0){let e=d(O);A=L(O,t,n,0,t.length,0,x-w,e,e)}else A=g(O,t,n,x-w,C-x)}n.push(A),f.push(M)}function d(e){return(t,n,i)=>{let r,o,s=0,l=t.length-1;if(l>=0&&(r=t[l])instanceof x){if(!l&&r.type==e&&r.length==i)return r;(o=r.prop(m.lookAhead))&&(s=n[l]+r.length+o)}return g(e,t,n,i,s)}}function p(e,t,n,r,o,s,l,a){let c=[],h=[];for(;e.length>r;)c.push(e.pop()),h.push(t.pop()+n-o);e.push(g(i.types[l],c,h,s-o,a-s)),t.push(o-n)}function g(e,t,n,i,r=0,o){if(c){let e=[m.contextHash,c];o=o?[e].concat(o):[e]}if(r>25){let e=[m.lookAhead,r];o=o?[e].concat(o):[e]}return new x(e,t,n,i,o)}function y(e,t){let n=l.fork(),i=0,o=0,a=0,c=n.end-r,h={size:0,start:0,skip:0};e:for(let r=n.pos-e;n.pos>r;){let e=n.size;if(n.id==t&&e>=0){h.size=i,h.start=o,h.skip=a,a+=4,i+=4,n.next();continue}let l=n.pos-e;if(e<0||l<r||n.start<c)break;let u=n.id>=s?4:0,f=n.start;for(n.next();n.pos>l;){if(n.size<0){if(-3!=n.size)break e;u+=4}else n.id>=s&&(u+=4);n.next()}o=f,i+=e,a+=u}return(t<0||i==e)&&(h.size=i,h.start=o,h.skip=a),h.size>4?h:void 0}function v(e,t,n){let{id:i,start:r,end:o,size:a}=l;if(l.next(),a>=0&&i<s){let s=n;if(a>4){let i=l.pos-(a-4);for(;l.pos>i;)n=v(e,t,n)}t[--n]=s,t[--n]=o-e,t[--n]=r-e,t[--n]=i}else-3==a?c=i:-4==a&&(h=i);return n}let b=[],w=[];for(;l.pos>0;)u(e.start||0,e.bufferStart||0,b,w,-1);let C=null!==(t=e.length)&&void 0!==t?t:b.length?w[0]+b[0].length:0;return new x(a[e.topID],b.reverse(),w.reverse(),C)}(e)}}x.empty=new x(y.none,[],[],0);class k{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 k(this.buffer,this.index)}}class S{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return y.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],r=i.name;if(/\W/.test(r)&&!i.isError&&(r=JSON.stringify(r)),n==(e+=4))return r;let o=[];for(;e<n;)o.push(this.childString(e)),e=this.buffer[e+3];return r+"("+o.join(",")+")"}findChild(e,t,n,i,r){let{buffer:o}=this,s=-1;for(let l=e;l!=t&&!(C(r,i,o[l+1],o[l+2])&&(s=l,n>0));l=o[l+3]);return s}slice(e,t,n){let i=this.buffer,r=new Uint16Array(t-e),o=0;for(let s=e,l=0;s<t;){r[l++]=i[s++],r[l++]=i[s++]-n;let t=r[l++]=i[s++]-n;r[l++]=i[s++]-e,o=Math.max(o,t)}return new S(r,o,this.set)}}function C(e,t,n,i){switch(e){case-2:return n<t;case-1:return i>=t&&n<t;case 0:return n<t&&i>t;case 1:return n<=t&&i>t;case 2:return i>t;case 4:return!0}}function A(e,t){let n=e.childBefore(t);for(;n;){let t=n.lastChild;if(!t||t.to!=n.to)break;t.type.isError&&t.from==t.to?(e=n,n=t.prevSibling):n=t}return e}function E(e,t,n,i){for(var r;e.from==e.to||(n<1?e.from>=t:e.from>t)||(n>-1?e.to<=t:e.to<t);){let t=!i&&e instanceof O&&e.index<0?null:e.parent;if(!t)return e;e=t}let o=i?0:w.IgnoreOverlays;if(i)for(let s=e,l=s.parent;l;s=l,l=s.parent)s instanceof O&&s.index<0&&(null===(r=l.enter(t,n,o))||void 0===r?void 0:r.from)!=s.from&&(e=l);for(;;){let i=e.enter(t,n,o);if(!i)return e;e=i}}class O{constructor(e,t,n,i){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,r=0){for(let o=this;;){for(let{children:s,positions:l}=o._tree,a=t>0?s.length:-1;e!=a;e+=t){let a=s[e],c=l[e]+o.from;if(C(i,n,c,c+a.length))if(a instanceof S){if(r&w.ExcludeBuffers)continue;let s=a.findChild(0,a.buffer.length,t,n-c,i);if(s>-1)return new I(new P(o,a,e,c),null,s)}else if(r&w.IncludeAnonymous||!a.type.isAnonymous||B(a)){let s;if(!(r&w.IgnoreMounts)&&a.props&&(s=a.prop(m.mounted))&&!s.overlay)return new O(s.tree,c,e,o);let l=new O(a,c,e,o);return r&w.IncludeAnonymous||!l.type.isAnonymous?l:l.nextChild(t<0?a.children.length-1:0,t,n,i)}}if(r&w.IncludeAnonymous||!o.type.isAnonymous)return null;if(e=o.index>=0?o.index+t:t<0?-1:o._parent._tree.children.length,o=o._parent,!o)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)}enter(e,t,n=0){let i;if(!(n&w.IgnoreOverlays)&&(i=this._tree.prop(m.mounted))&&i.overlay){let n=e-this.from;for(let{from:e,to:r}of i.overlay)if((t>0?e<=n:e<n)&&(t<0?r>=n:r>n))return new O(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}cursor(e=0){return new T(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return E(this,e,t,!1)}resolveInner(e,t=0){return E(this,e,t,!0)}enterUnfinishedNodesBefore(e){return A(this,e)}getChild(e,t=null,n=null){let i=M(this,e,t,n);return i.length?i[0]:null}getChildren(e,t=null,n=null){return M(this,e,t,n)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return D(this,e)}}function M(e,t,n,i){let r=e.cursor(),o=[];if(!r.firstChild())return o;if(null!=n)for(;!r.type.is(n);)if(!r.nextSibling())return o;for(;;){if(null!=i&&r.type.is(i))return o;if(r.type.is(t)&&o.push(r.node),!r.nextSibling())return null==i?o:[]}}function D(e,t,n=t.length-1){for(let i=e.parent;n>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(t[n]&&t[n]!=i.name)return!1;n--}}return!0}class P{constructor(e,t,n,i){this.parent=e,this.buffer=t,this.index=n,this.start=i}}class I{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){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,r=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.context.start,n);return r<0?null:new I(this.context,this,r)}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)}enter(e,t,n=0){if(n&w.ExcludeBuffers)return null;let{buffer:i}=this.context,r=i.findChild(this.index+4,i.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return r<0?null:new I(this.context,this,r)}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 I(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 I(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new T(this,e)}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,i=this.index+4,r=n.buffer[this.index+3];if(r>i){let o=n.buffer[this.index+1];e.push(n.slice(i,r,o)),t.push(0)}return new x(this.type,e,t,this.to-this.from)}resolve(e,t=0){return E(this,e,t,!1)}resolveInner(e,t=0){return E(this,e,t,!0)}enterUnfinishedNodesBefore(e){return A(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,n=null){let i=M(this,e,t,n);return i.length?i[0]:null}getChildren(e,t=null,n=null){return M(this,e,t,n)}get node(){return this}matchContext(e){return D(this,e)}}class T{get name(){return this.type.name}constructor(e,t=0){if(this.mode=t,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof O)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let t=e._parent;t;t=t._parent)this.stack.unshift(t.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)}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 O?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)))}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,r=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.buffer.start,n);return!(r<0)&&(this.stack.push(this.index),this.yieldBuf(r))}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&w.ExcludeBuffers)&&this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&w.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&w.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));let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let e=n<0?0:this.stack[n]+4;if(this.index!=e)return this.yieldBuf(t.findChild(e,this.index,-1,0,4))}else{let e=t.buffer[this.index+3];if(e<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(e)}return n<0&&this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode))}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 e=0;e<this.index;e++)if(i.buffer.buffer[e+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 i=t+e,r=e<0?-1:n._tree.children.length;i!=r;i+=e){let e=n._tree.children[i];if(this.mode&w.IncludeAnonymous||e instanceof S||!e.type.isAnonymous||B(e))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,r=this.stack.length;r>=0;){for(let o=e;o;o=o._parent)if(o.index==i){if(i==this.index)return o;t=o,n=r+1;break e}i=this.stack[--r]}for(let i=n;i<this.stack.length;i++)t=new I(this.buffer,t,this.stack[i]);return this.bufferNode=new I(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||!1!==e(this)){if(this.firstChild()){n++;continue}this.type.isAnonymous||(i=!0)}for(;i&&t&&t(this),i=this.type.isAnonymous,!this.nextSibling();){if(!n)return;this.parent(),n--,i=!0}}}matchContext(e){if(!this.buffer)return D(this.node,e);let{buffer:t}=this.buffer,{types:n}=t.set;for(let i=e.length-1,r=this.stack.length-1;i>=0;r--){if(r<0)return D(this.node,e,i);let o=n[t.buffer[this.stack[r]]];if(!o.isAnonymous){if(e[i]&&e[i]!=o.name)return!1;i--}}return!0}}function B(e){return e.children.some((e=>e instanceof S||!e.type.isAnonymous||B(e)))}const N=new WeakMap;function R(e,t){if(!e.isAnonymous||t instanceof S||t.type!=e)return 1;let n=N.get(t);if(null==n){n=1;for(let i of t.children){if(i.type!=e||!(i instanceof x)){n=1;break}n+=R(e,i)}N.set(t,n)}return n}function L(e,t,n,i,r,o,s,l,a){let c=0;for(let d=i;d<r;d++)c+=R(e,t[d]);let h=Math.ceil(1.5*c/8),u=[],f=[];return function t(n,i,r,s,l){for(let c=r;c<s;){let r=c,d=i[c],p=R(e,n[c]);for(c++;c<s;c++){let t=R(e,n[c]);if(p+t>=h)break;p+=t}if(c==r+1){if(p>h){let e=n[r];t(e.children,e.positions,0,e.children.length,i[r]+l);continue}u.push(n[r])}else{let t=i[c-1]+n[c-1].length-d;u.push(L(e,n,i,r,c,d,t,null,a))}f.push(d+l-o)}}(t,n,i,r,0),(l||a)(u,f,s)}class _{constructor(e,t,n,i,r=!1,o=!1){this.from=e,this.to=t,this.tree=n,this.offset=i,this.open=(r?1:0)|(o?2:0)}get openStart(){return(1&this.open)>0}get openEnd(){return(2&this.open)>0}static addTree(e,t=[],n=!1){let i=[new _(0,e.length,e,0,!1,n)];for(let r of t)r.to>e.length&&i.push(r);return i}static applyChanges(e,t,n=128){if(!t.length)return e;let i=[],r=1,o=e.length?e[0]:null;for(let s=0,l=0,a=0;;s++){let c=s<t.length?t[s]:null,h=c?c.fromA:1e9;if(h-l>=n)for(;o&&o.from<h;){let t=o;if(l>=t.from||h<=t.to||a){let e=Math.max(t.from,l)-a,n=Math.min(t.to,h)-a;t=e>=n?null:new _(e,n,t.tree,t.offset+a,s>0,!!c)}if(t&&i.push(t),o.to>h)break;o=r<e.length?e[r++]:null}if(!c)break;l=c.toA,a=c.toA-c.toB}return i}}class F{startParse(e,t,n){return"string"==typeof e&&(e=new W(e)),n=n?n.length?n.map((e=>new p(e.from,e.to))):[new p(0,0)]:[new p(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let i=this.startParse(e,t,n);for(;;){let e=i.advance();if(e)return e}}}class W{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)}}new m({perNode:!0});let V=0;class j{constructor(e,t,n){this.set=e,this.base=t,this.modified=n,this.id=V++}static define(e){if(null===e||void 0===e?void 0:e.base)throw new Error("Can not derive from a modified tag");let t=new j([],null,[]);if(t.set.push(t),e)for(let n of e.set)t.set.push(n);return t}static defineModifier(){let e=new z;return t=>t.modified.indexOf(e)>-1?t:z.get(t.base||t,t.modified.concat(e).sort(((e,t)=>e.id-t.id)))}}let q=0;class z{constructor(){this.instances=[],this.id=q++}static get(e,t){if(!t.length)return e;let n=t[0].instances.find((n=>{return n.base==e&&(i=t,r=n.modified,i.length==r.length&&i.every(((e,t)=>e==r[t])));var i,r}));if(n)return n;let i=[],r=new j(i,e,t);for(let s of t)s.instances.push(r);let o=function(e){let t=[[]];for(let n=0;n<e.length;n++)for(let i=0,r=t.length;i<r;i++)t.push(t[i].concat(e[n]));return t.sort(((e,t)=>t.length-e.length))}(t);for(let s of e.set)if(!s.modified.length)for(let e of o)i.push(z.get(s,e));return r}}function U(e){let t=Object.create(null);for(let n in e){let i=e[n];Array.isArray(i)||(i=[i]);for(let e of n.split(" "))if(e){let n=[],r=2,o=e;for(let t=0;;){if("..."==o&&t>0&&t+3==e.length){r=1;break}let i=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(o);if(!i)throw new RangeError("Invalid path: "+e);if(n.push("*"==i[0]?"":'"'==i[0][0]?JSON.parse(i[0]):i[0]),t+=i[0].length,t==e.length)break;let s=e[t++];if(t==e.length&&"!"==s){r=0;break}if("/"!=s)throw new RangeError("Invalid path: "+e);o=e.slice(t)}let s=n.length-1,l=n[s];if(!l)throw new RangeError("Invalid path: "+e);let a=new H(i,r,s>0?n.slice(0,s):null);t[l]=a.sort(t[l])}}return $.add(t)}const $=new m;class H{constructor(e,t,n,i){this.tags=e,this.mode=t,this.context=n,this.next=i}get opaque(){return 0==this.mode}get inherit(){return 1==this.mode}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}}function J(e,t){let n=Object.create(null);for(let o of e)if(Array.isArray(o.tag))for(let e of o.tag)n[e.id]=o.class;else n[o.tag.id]=o.class;let{scope:i,all:r=null}=t||{};return{style:e=>{let t=r;for(let i of e)for(let e of i.set){let i=n[e.id];if(i){t=t?t+" "+i:i;break}}return t},scope:i}}function G(e,t,n,i=0,r=e.length){let o=new K(i,Array.isArray(t)?t:[t],n);o.highlightRange(e.cursor(),i,r,"",o.highlighters),o.flush(r)}H.empty=new H([],2,null);class K{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,r){let{type:o,from:s,to:l}=e;if(s>=n||l<=t)return;o.isTop&&(r=this.highlighters.filter((e=>!e.scope||e.scope(o))));let a=i,c=function(e){let t=e.type.prop($);for(;t&&t.context&&!e.matchContext(t.context);)t=t.next;return t||null}(e)||H.empty,h=function(e,t){let n=null;for(let i of e){let e=i.style(t);e&&(n=n?n+" "+e:e)}return n}(r,c.tags);if(h&&(a&&(a+=" "),a+=h,1==c.mode&&(i+=(i?" ":"")+h)),this.startSpan(e.from,a),c.opaque)return;let u=e.tree&&e.tree.prop(m.mounted);if(u&&u.overlay){let o=e.node.enter(u.overlay[0].from+s,1),c=this.highlighters.filter((e=>!e.scope||e.scope(u.tree.type))),h=e.firstChild();for(let f=0,d=s;;f++){let p=f<u.overlay.length?u.overlay[f]:null,m=p?p.from+s:l,g=Math.max(t,d),y=Math.min(n,m);if(g<y&&h)for(;e.from<y&&(this.highlightRange(e,g,y,i,r),this.startSpan(Math.min(y,e.to),a),!(e.to>=m)&&e.nextSibling()););if(!p||m>n)break;d=p.to+s,d>t&&(this.highlightRange(o.cursor(),Math.max(t,p.from+s),Math.min(n,d),i,c),this.startSpan(d,a))}h&&e.parent()}else if(e.firstChild()){do{if(!(e.to<=t)){if(e.from>=n)break;this.highlightRange(e,t,n,i,r),this.startSpan(Math.min(n,e.to),a)}}while(e.nextSibling());e.parent()}}}const Q=j.define,Y=Q(),X=Q(),Z=Q(X),ee=Q(X),te=Q(),ne=Q(te),ie=Q(te),re=Q(),oe=Q(re),se=Q(),le=Q(),ae=Q(),ce=Q(ae),he=Q(),ue={comment:Y,lineComment:Q(Y),blockComment:Q(Y),docComment:Q(Y),name:X,variableName:Q(X),typeName:Z,tagName:Q(Z),propertyName:ee,attributeName:Q(ee),className:Q(X),labelName:Q(X),namespace:Q(X),macroName:Q(X),literal:te,string:ne,docString:Q(ne),character:Q(ne),attributeValue:Q(ne),number:ie,integer:Q(ie),float:Q(ie),bool:Q(te),regexp:Q(te),escape:Q(te),color:Q(te),url:Q(te),keyword:se,self:Q(se),null:Q(se),atom:Q(se),unit:Q(se),modifier:Q(se),operatorKeyword:Q(se),controlKeyword:Q(se),definitionKeyword:Q(se),moduleKeyword:Q(se),operator:le,derefOperator:Q(le),arithmeticOperator:Q(le),logicOperator:Q(le),bitwiseOperator:Q(le),compareOperator:Q(le),updateOperator:Q(le),definitionOperator:Q(le),typeOperator:Q(le),controlOperator:Q(le),punctuation:ae,separator:Q(ae),bracket:ce,angleBracket:Q(ce),squareBracket:Q(ce),paren:Q(ce),brace:Q(ce),content:re,heading:oe,heading1:Q(oe),heading2:Q(oe),heading3:Q(oe),heading4:Q(oe),heading5:Q(oe),heading6:Q(oe),contentSeparator:Q(re),list:Q(re),quote:Q(re),emphasis:Q(re),strong:Q(re),link:Q(re),monospace:Q(re),strikethrough:Q(re),inserted:Q(),deleted:Q(),changed:Q(),invalid:Q(),meta:he,documentMeta:Q(he),annotation:Q(he),processingInstruction:Q(he),definition:j.defineModifier(),constant:j.defineModifier(),function:j.defineModifier(),standard:j.defineModifier(),local:j.defineModifier(),special:j.defineModifier()},fe=(J([{tag:ue.link,class:"tok-link"},{tag:ue.heading,class:"tok-heading"},{tag:ue.emphasis,class:"tok-emphasis"},{tag:ue.strong,class:"tok-strong"},{tag:ue.keyword,class:"tok-keyword"},{tag:ue.atom,class:"tok-atom"},{tag:ue.bool,class:"tok-bool"},{tag:ue.url,class:"tok-url"},{tag:ue.labelName,class:"tok-labelName"},{tag:ue.inserted,class:"tok-inserted"},{tag:ue.deleted,class:"tok-deleted"},{tag:ue.literal,class:"tok-literal"},{tag:ue.string,class:"tok-string"},{tag:ue.number,class:"tok-number"},{tag:[ue.regexp,ue.escape,ue.special(ue.string)],class:"tok-string2"},{tag:ue.variableName,class:"tok-variableName"},{tag:ue.local(ue.variableName),class:"tok-variableName tok-local"},{tag:ue.definition(ue.variableName),class:"tok-variableName tok-definition"},{tag:ue.special(ue.variableName),class:"tok-variableName2"},{tag:ue.definition(ue.propertyName),class:"tok-propertyName tok-definition"},{tag:ue.typeName,class:"tok-typeName"},{tag:ue.namespace,class:"tok-namespace"},{tag:ue.className,class:"tok-className"},{tag:ue.macroName,class:"tok-macroName"},{tag:ue.propertyName,class:"tok-propertyName"},{tag:ue.operator,class:"tok-operator"},{tag:ue.comment,class:"tok-comment"},{tag:ue.meta,class:"tok-meta"},{tag:ue.invalid,class:"tok-invalid"},{tag:ue.punctuation,class:"tok-punctuation"}]),"undefined"==typeof Symbol?"__\u037c":Symbol.for("\u037c")),de="undefined"==typeof Symbol?"__styleSet"+Math.floor(1e8*Math.random()):Symbol("styleSet"),pe="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:{};class me{constructor(e,t){this.rules=[];let{finish:n}=t||{};function i(e){return/^@/.test(e)?[e]:e.split(/,\s*/)}function r(e,t,o,s){let l=[],a=/^@(\w+)\b/.exec(e[0]),c=a&&"keyframes"==a[1];if(a&&null==t)return o.push(e[0]+";");for(let n in t){let s=t[n];if(/&/.test(n))r(n.split(/,\s*/).map((t=>e.map((e=>t.replace(/&/,e))))).reduce(((e,t)=>e.concat(t))),s,o);else if(s&&"object"==typeof s){if(!a)throw new RangeError("The value of a property ("+n+") should be a primitive value.");r(i(n),s,l,c)}else null!=s&&l.push(n.replace(/_.*/,"").replace(/[A-Z]/g,(e=>"-"+e.toLowerCase()))+": "+s+";")}(l.length||c)&&o.push((!n||a||s?e:e.map(n)).join(", ")+" {"+l.join(" ")+"}")}for(let o in e)r(i(o),e[o],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let e=pe[fe]||1;return pe[fe]=e+1,"\u037c"+e.toString(36)}static mount(e,t){(e[de]||new ye(e)).mount(Array.isArray(t)?t:[t])}}let ge=null;class ye{constructor(e){if(!e.head&&e.adoptedStyleSheets&&"undefined"!=typeof CSSStyleSheet){if(ge)return e.adoptedStyleSheets=[ge.sheet].concat(e.adoptedStyleSheets),e[de]=ge;this.sheet=new CSSStyleSheet,e.adoptedStyleSheets=[this.sheet].concat(e.adoptedStyleSheets),ge=this}else{this.styleTag=(e.ownerDocument||e).createElement("style");let t=e.head||e;t.insertBefore(this.styleTag,t.firstChild)}this.modules=[],e[de]=this}mount(e){let t=this.sheet,n=0,i=0;for(let r=0;r<e.length;r++){let o=e[r],s=this.modules.indexOf(o);if(s<i&&s>-1&&(this.modules.splice(s,1),i--,s=-1),-1==s){if(this.modules.splice(i++,0,o),t)for(let e=0;e<o.rules.length;e++)t.insertRule(o.rules[e],n++)}else{for(;i<s;)n+=this.modules[i++].rules.length;n+=o.rules.length,i++}}if(!t){let e="";for(let t=0;t<this.modules.length;t++)e+=this.modules[t].getRules()+"\n";this.styleTag.textContent=e}}}var ve;const be=new m;class we{constructor(e,t,n=[],i=""){this.data=e,this.name=i,h.EditorState.prototype.hasOwnProperty("tree")||Object.defineProperty(h.EditorState.prototype,"tree",{get(){return ke(this)}}),this.parser=t,this.extension=[Ie.of(this),h.EditorState.languageData.of(((e,t,n)=>e.facet(xe(e,t,n))))].concat(n)}isActiveAt(e,t,n=-1){return xe(e,t,n)==this.data}findRegions(e){let t=e.facet(Ie);if((null===t||void 0===t?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let n=[],i=(e,t)=>{if(e.prop(be)==this.data)return void n.push({from:t,to:t+e.length});let r=e.prop(m.mounted);if(r){if(r.tree.prop(be)==this.data){if(r.overlay)for(let e of r.overlay)n.push({from:e.from+t,to:e.to+t});else n.push({from:t,to:t+e.length});return}if(r.overlay){let e=n.length;if(i(r.tree,r.overlay[0].from+t),n.length>e)return}}for(let n=0;n<e.children.length;n++){let r=e.children[n];r instanceof x&&i(r,e.positions[n]+t)}};return i(ke(e),0),n}get allowsNesting(){return!0}}function xe(e,t,n){let i=e.facet(Ie);if(!i)return null;let r=i.data;if(i.allowsNesting)for(let o=ke(e).topNode;o;o=o.enter(t,n,w.ExcludeBuffers))r=o.type.prop(be)||r;return r}we.setState=h.StateEffect.define();function ke(e){let t=e.field(we.state,!1);return t?t.tree:x.empty}class Se{constructor(e,t=e.length){this.doc=e,this.length=t,this.cursorPos=0,this.string="",this.cursor=e.iter()}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)}}let Ce=null;class Ae{constructor(e,t,n=[],i,r,o,s,l){this.parser=e,this.state=t,this.fragments=n,this.tree=i,this.treeLen=r,this.viewport=o,this.skipped=s,this.scheduleOn=l,this.parse=null,this.tempSkipped=[]}static create(e,t,n){return new Ae(e,t,[],x.empty,0,n,[],null)}startParse(){return this.parser.startParse(new Se(this.state.doc),this.fragments)}work(e,t){return null!=t&&t>=this.state.doc.length&&(t=void 0),this.tree!=x.empty&&this.isDone(null!==t&&void 0!==t?t:this.state.doc.length)?(this.takeTree(),!0):this.withContext((()=>{var n;if("number"==typeof e){let t=Date.now()+e;e=()=>Date.now()>t}for(this.parse||(this.parse=this.startParse()),null!=t&&(null==this.parse.stoppedAt||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(_.addTree(i,this.fragments,null!=this.parse.stoppedAt)),this.treeLen=null!==(n=this.parse.stoppedAt)&&void 0!==n?n:this.state.doc.length,this.tree=i,this.parse=null,!(this.treeLen<(null!==t&&void 0!==t?t:this.state.doc.length)))return!0;this.parse=this.startParse()}if(e())return!1}}))}takeTree(){let e,t;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&&((null==this.parse.stoppedAt||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(_.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=Ce;Ce=this;try{return e()}finally{Ce=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=Ee(e,t.from,t.to);return e}changes(e,t){let{fragments:n,tree:i,treeLen:r,viewport:o,skipped:s}=this;if(this.takeTree(),!e.empty){let t=[];if(e.iterChangedRanges(((e,n,i,r)=>t.push({fromA:e,toA:n,fromB:i,toB:r}))),n=_.applyChanges(n,t),i=x.empty,r=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){s=[];for(let t of this.skipped){let n=e.mapPos(t.from,1),i=e.mapPos(t.to,-1);n<i&&s.push({from:n,to:i})}}}return new Ae(this.parser,t,n,i,r,o,s,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:t,to:i}=this.skipped[n];t<e.to&&i>e.from&&(this.fragments=Ee(this.fragments,t,i),this.skipped.splice(n--,1))}return!(this.skipped.length>=t)&&(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 F{createParse(t,n,i){let r=i[0].from,o=i[i.length-1].to;return{parsedPos:r,advance(){let t=Ce;if(t){for(let e of i)t.tempSkipped.push(e);e&&(t.scheduleOn=t.scheduleOn?Promise.all([t.scheduleOn,e]):e)}return this.parsedPos=o,new x(y.none,[],[],o-r)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&0==t[0].from&&t[0].to>=e}static get(){return Ce}}function Ee(e,t,n){return _.applyChanges(e,[{fromA:t,toA:n,fromB:t,toB:n}])}class Oe{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 Oe(t)}static init(e){let t=Math.min(3e3,e.doc.length),n=Ae.create(e.facet(Ie).parser,e,{from:0,to:t});return n.work(20,t)||n.takeTree(),new Oe(n)}}we.state=h.StateField.define({create:Oe.init,update(e,t){for(let n of t.effects)if(n.is(we.setState))return n.value;return t.startState.facet(Ie)!=t.state.facet(Ie)?Oe.init(t.state):e.apply(t)}});let Me=e=>{let t=setTimeout((()=>e()),500);return()=>clearTimeout(t)};"undefined"!=typeof requestIdleCallback&&(Me=e=>{let t=-1,n=setTimeout((()=>{t=requestIdleCallback(e,{timeout:400})}),100);return()=>t<0?clearTimeout(n):cancelIdleCallback(t)});const De="undefined"!=typeof navigator&&(null===(ve=navigator.scheduling)||void 0===ve?void 0:ve.isInputPending)?()=>navigator.scheduling.isInputPending():null,Pe=u.ViewPlugin.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(we.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),e.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(we.state);t.tree==t.context.tree&&t.context.isDone(e.doc.length)||(this.working=Me(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,r=n.field(we.state);if(r.tree==r.context.tree&&r.context.isDone(i+1e5))return;let o=Date.now()+Math.min(this.chunkBudget,100,e&&!De?Math.max(25,e.timeRemaining()-5):1e9),s=r.context.treeLen<i&&n.doc.length>i+1e3,l=r.context.work((()=>De&&De()||Date.now()>o),i+(s?0:1e5));this.chunkBudget-=Date.now()-t,(l||this.chunkBudget<=0)&&(r.context.takeTree(),this.view.dispatch({effects:we.setState.of(new Oe(r.context))})),this.chunkBudget>0&&(!l||s)&&this.scheduleWork(),this.checkAsyncSchedule(r.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then((()=>this.scheduleWork())).catch((e=>(0,u.logException)(this.view.state,e))).then((()=>this.workScheduled--)),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Ie=h.Facet.define({combine:e=>e.length?e[0]:null,enables:e=>[we.state,Pe,u.EditorView.contentAttributes.compute([e],(t=>{let n=t.facet(e);return n&&n.name?{"data-language":n.name}:{}}))]});const Te=h.Facet.define(),Be=h.Facet.define({combine:e=>{if(!e.length)return" ";if(!/^(?: +|\t+)$/.test(e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(e[0]));return e[0]}});function Ne(e){let t=e.facet(Be);return 9==t.charCodeAt(0)?e.tabSize*t.length:t.length}function Re(e,t){let n="",i=e.tabSize;if(9==e.facet(Be).charCodeAt(0))for(;t>=i;)n+="\t",t-=i;for(let r=0;r<t;r++)n+=" ";return n}function Le(e,t){e instanceof h.EditorState&&(e=new _e(e));for(let i of e.state.facet(Te)){let n=i(e,t);if(void 0!==n)return n}let n=ke(e.state);return n?function(e,t,n){return Ve(t.resolveInner(n).enterUnfinishedNodesBefore(n),n,e)}(e,n,t):null}class _e{constructor(e,t={}){this.state=e,this.options=t,this.unit=Ne(e)}lineAt(e,t=1){let n=this.state.doc.lineAt(e),{simulateBreak:i,simulateDoubleBreak:r}=this.options;return null!=i&&i>=n.from&&i<=n.to?r&&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),r=this.countColumn(n,e-i),o=this.options.overrideIndentation?this.options.overrideIndentation(i):-1;return o>-1&&(r+=o-this.countColumn(n,n.search(/\S|$/))),r}countColumn(e,t=e.length){return(0,h.countColumn)(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:n,from:i}=this.lineAt(e,t),r=this.options.overrideIndentation;if(r){let e=r(i);if(e>-1)return e}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const Fe=new m;function We(e){let t=e.type.prop(Fe);if(t)return t;let n,i=e.firstChild;if(i&&(n=i.type.prop(m.closedBy))){let t=e.lastChild,i=t&&n.indexOf(t.name)>-1;return e=>Ue(e,!0,1,void 0,i&&!function(e){return e.pos==e.options.simulateBreak&&e.options.simulateDoubleBreak}(e)?t.from:void 0)}return null==e.parent?je:null}function Ve(e,t,n){for(;e;e=e.parent){let i=We(e);if(i)return i(qe.create(n,t,e))}return null}function je(){return 0}class qe extends _e{constructor(e,t,n){super(e.state,e.options),this.base=e,this.pos=t,this.node=n}static create(e,t,n){return new qe(e,t,n)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){let e=this.state.doc.lineAt(this.node.from);for(;;){let t=this.node.resolve(e.from);for(;t.parent&&t.parent.from==t.from;)t=t.parent;if(ze(t,this.node))break;e=this.state.doc.lineAt(t.from)}return this.lineIndent(e.from)}continue(){let e=this.node.parent;return e?Ve(e,this.pos,this.base):0}}function ze(e,t){for(let n=t;n;n=n.parent)if(e==n)return!0;return!1}function Ue(e,t,n,i,r){let o=e.textAfter,s=o.match(/^\s*/)[0].length,l=i&&o.slice(s,s+i.length)==i||r==e.pos+s,a=t?function(e){let t=e.node,n=t.childAfter(t.from),i=t.lastChild;if(!n)return null;let r=e.options.simulateBreak,o=e.state.doc.lineAt(n.from),s=null==r||r<=o.from?o.to:Math.min(o.to,r);for(let l=n.to;;){let e=t.childAfter(l);if(!e||e==i)return null;if(!e.type.isSkipped)return e.from<s?n:null;l=e.to}}(e):null;return a?l?e.column(a.from):e.column(a.to):e.baseIndent+(l?0:e.unit*n)}const $e=h.Facet.define(),He=new m;function Je(e){let t=e.lastChild;return t&&t.to==e.to&&t.type.isError}function Ge(e,t,n){for(let i of e.facet($e)){let r=i(e,t,n);if(r)return r}return function(e,t,n){let i=ke(e);if(i.length<n)return null;let r=null;for(let o=i.resolveInner(n,1);o;o=o.parent){if(o.to<=n||o.from>n)continue;if(r&&o.from<t)break;let s=o.type.prop(He);if(s&&(o.to<i.length-50||i.length==e.doc.length||!Je(o))){let i=s(o,e);i&&i.from<=n&&i.from>=t&&i.to>n&&(r=i)}}return r}(e,t,n)}function Ke(e,t){let n=t.mapPos(e.from,1),i=t.mapPos(e.to,-1);return n>=i?void 0:{from:n,to:i}}const Qe=h.StateEffect.define({map:Ke}),Ye=h.StateEffect.define({map:Ke});function Xe(e){let t=[];for(let{head:n}of e.state.selection.ranges)t.some((e=>e.from<=n&&e.to>=n))||t.push(e.lineBlockAt(n));return t}const Ze=h.StateField.define({create:()=>u.Decoration.none,update(e,t){e=e.map(t.changes);for(let n of t.effects)n.is(Qe)&&!tt(e,n.value.from,n.value.to)?e=e.update({add:[at.range(n.value.from,n.value.to)]}):n.is(Ye)&&(e=e.update({filter:(e,t)=>n.value.from!=e||n.value.to!=t,filterFrom:n.value.from,filterTo:n.value.to}));if(t.selection){let n=!1,{head:i}=t.selection.main;e.between(i,i,((e,t)=>{e<i&&t>i&&(n=!0)})),n&&(e=e.update({filterFrom:i,filterTo:i,filter:(e,t)=>t<=i||e>=i}))}return e},provide:e=>u.EditorView.decorations.from(e),toJSON(e,t){let n=[];return e.between(0,t.doc.length,((e,t)=>{n.push(e,t)})),n},fromJSON(e){if(!Array.isArray(e)||e.length%2)throw new RangeError("Invalid JSON for fold state");let t=[];for(let n=0;n<e.length;){let i=e[n++],r=e[n++];if("number"!=typeof i||"number"!=typeof r)throw new RangeError("Invalid JSON for fold state");t.push(at.range(i,r))}return u.Decoration.set(t,!0)}});function et(e,t,n){var i;let r=null;return null===(i=e.field(Ze,!1))||void 0===i||i.between(t,n,((e,t)=>{(!r||r.from>e)&&(r={from:e,to:t})})),r}function tt(e,t,n){let i=!1;return e.between(t,t,((e,r)=>{e==t&&r==n&&(i=!0)})),i}function nt(e,t){return e.field(Ze,!1)?t:t.concat(h.StateEffect.appendConfig.of(lt()))}function it(e,t,n=!0){let i=e.state.doc.lineAt(t.from).number,r=e.state.doc.lineAt(t.to).number;return u.EditorView.announce.of(`${e.state.phrase(n?"Folded lines":"Unfolded lines")} ${i} ${e.state.phrase("to")} ${r}.`)}const rt=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:e=>{for(let t of Xe(e)){let n=Ge(e.state,t.from,t.to);if(n)return e.dispatch({effects:nt(e.state,[Qe.of(n),it(e,n)])}),!0}return!1}},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:e=>{if(!e.state.field(Ze,!1))return!1;let t=[];for(let n of Xe(e)){let i=et(e.state,n.from,n.to);i&&t.push(Ye.of(i),it(e,i,!1))}return t.length&&e.dispatch({effects:t}),t.length>0}},{key:"Ctrl-Alt-[",run:e=>{let{state:t}=e,n=[];for(let i=0;i<t.doc.length;){let r=e.lineBlockAt(i),o=Ge(t,r.from,r.to);o&&n.push(Qe.of(o)),i=(o?e.lineBlockAt(o.to):r).to+1}return n.length&&e.dispatch({effects:nt(e.state,n)}),!!n.length}},{key:"Ctrl-Alt-]",run:e=>{let t=e.state.field(Ze,!1);if(!t||!t.size)return!1;let n=[];return t.between(0,e.state.doc.length,((e,t)=>{n.push(Ye.of({from:e,to:t}))})),e.dispatch({effects:n}),!0}}],ot={placeholderDOM:null,placeholderText:"\u2026"},st=h.Facet.define({combine:e=>(0,h.combineConfig)(e,ot)});function lt(e){let t=[Ze,ut];return e&&t.push(st.of(e)),t}const at=u.Decoration.replace({widget:new class extends u.WidgetType{toDOM(e){let{state:t}=e,n=t.facet(st),i=t=>{let n=e.lineBlockAt(e.posAtDOM(t.target)),i=et(e.state,n.from,n.to);i&&e.dispatch({effects:Ye.of(i)}),t.preventDefault()};if(n.placeholderDOM)return n.placeholderDOM(e,i);let r=document.createElement("span");return r.textContent=n.placeholderText,r.setAttribute("aria-label",t.phrase("folded code")),r.title=t.phrase("unfold"),r.className="cm-foldPlaceholder",r.onclick=i,r}}}),ct={openText:"\u2304",closedText:"\u203a",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class ht extends u.GutterMarker{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}}const ut=u.EditorView.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"}});class ft{constructor(e,t){let n;function i(e){let t=me.newName();return(n||(n=Object.create(null)))["."+t]=e,t}this.specs=e;const r="string"==typeof t.all?t.all:t.all?i(t.all):void 0,o=t.scope;this.scope=o instanceof we?e=>e.prop(be)==o.data:o?e=>e==o:void 0,this.style=J(e.map((e=>({tag:e.tag,class:e.class||i(Object.assign({},e,{tag:null}))}))),{all:r}).style,this.module=n?new me(n):null,this.themeType=t.themeType}static define(e,t){return new ft(e,t||{})}}const dt=h.Facet.define(),pt=h.Facet.define({combine:e=>e.length?[e[0]]:null});function mt(e){let t=e.facet(dt);return t.length?t:e.facet(pt)}function gt(e,t){let n,i=[vt];return e instanceof ft&&(e.module&&i.push(u.EditorView.styleModule.of(e.module)),n=e.themeType),(null===t||void 0===t?void 0:t.fallback)?i.push(pt.of(e)):n?i.push(dt.computeN([u.EditorView.darkTheme],(t=>t.facet(u.EditorView.darkTheme)==("dark"==n)?[e]:[]))):i.push(dt.of(e)),i}class yt{constructor(e){this.markCache=Object.create(null),this.tree=ke(e.state),this.decorations=this.buildDeco(e,mt(e.state))}update(e){let t=ke(e.state),n=mt(e.state),i=n!=mt(e.startState);t.length<e.view.viewport.to&&!i&&t.type==this.tree.type?this.decorations=this.decorations.map(e.changes):(t!=this.tree||e.viewportChanged||i)&&(this.tree=t,this.decorations=this.buildDeco(e.view,n))}buildDeco(e,t){if(!t||!this.tree.length)return u.Decoration.none;let n=new h.RangeSetBuilder;for(let{from:i,to:r}of e.visibleRanges)G(this.tree,t,((e,t,i)=>{n.add(e,t,this.markCache[i]||(this.markCache[i]=u.Decoration.mark({class:i})))}),i,r);return n.finish()}}const vt=h.Prec.high(u.ViewPlugin.fromClass(yt,{decorations:e=>e.decorations})),bt=ft.define([{tag:ue.meta,color:"#404740"},{tag:ue.link,textDecoration:"underline"},{tag:ue.heading,textDecoration:"underline",fontWeight:"bold"},{tag:ue.emphasis,fontStyle:"italic"},{tag:ue.strong,fontWeight:"bold"},{tag:ue.strikethrough,textDecoration:"line-through"},{tag:ue.keyword,color:"#708"},{tag:[ue.atom,ue.bool,ue.url,ue.contentSeparator,ue.labelName],color:"#219"},{tag:[ue.literal,ue.inserted],color:"#164"},{tag:[ue.string,ue.deleted],color:"#a11"},{tag:[ue.regexp,ue.escape,ue.special(ue.string)],color:"#e40"},{tag:ue.definition(ue.variableName),color:"#00f"},{tag:ue.local(ue.variableName),color:"#30a"},{tag:[ue.typeName,ue.namespace],color:"#085"},{tag:ue.className,color:"#167"},{tag:[ue.special(ue.variableName),ue.macroName],color:"#256"},{tag:ue.definition(ue.propertyName),color:"#00c"},{tag:ue.comment,color:"#940"},{tag:ue.invalid,color:"#f00"}]),wt=u.EditorView.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),xt="()[]{}",kt=h.Facet.define({combine:e=>(0,h.combineConfig)(e,{afterCursor:!0,brackets:xt,maxScanDistance:1e4,renderMatch:At})}),St=u.Decoration.mark({class:"cm-matchingBracket"}),Ct=u.Decoration.mark({class:"cm-nonmatchingBracket"});function At(e){let t=[],n=e.matched?St:Ct;return t.push(n.range(e.start.from,e.start.to)),e.end&&t.push(n.range(e.end.from,e.end.to)),t}const Et=h.StateField.define({create:()=>u.Decoration.none,update(e,t){if(!t.docChanged&&!t.selection)return e;let n=[],i=t.state.facet(kt);for(let r of t.state.selection.ranges){if(!r.empty)continue;let e=Dt(t.state,r.head,-1,i)||r.head>0&&Dt(t.state,r.head-1,1,i)||i.afterCursor&&(Dt(t.state,r.head,1,i)||r.head<t.state.doc.length&&Dt(t.state,r.head+1,-1,i));e&&(n=n.concat(i.renderMatch(e,t.state)))}return u.Decoration.set(n,!0)},provide:e=>u.EditorView.decorations.from(e)}),Ot=[Et,wt];function Mt(e,t,n){let i=e.prop(t<0?m.openedBy:m.closedBy);if(i)return i;if(1==e.name.length){let i=n.indexOf(e.name);if(i>-1&&i%2==(t<0?1:0))return[n[i+t]]}return null}function Dt(e,t,n,i={}){let r=i.maxScanDistance||1e4,o=i.brackets||xt,s=ke(e),l=s.resolveInner(t,n);for(let a=l;a;a=a.parent){let i=Mt(a.type,n,o);if(i&&a.from<a.to)return Pt(e,t,n,a,i,o)}return function(e,t,n,i,r,o,s){let l=n<0?e.sliceDoc(t-1,t):e.sliceDoc(t,t+1),a=s.indexOf(l);if(a<0||a%2==0!=n>0)return null;let c={from:n<0?t-1:t,to:n>0?t+1:t},h=e.doc.iterRange(t,n>0?e.doc.length:0),u=0;for(let f=0;!h.next().done&&f<=o;){let e=h.value;n<0&&(f+=e.length);let o=t+f*n;for(let t=n>0?0:e.length-1,l=n>0?e.length:-1;t!=l;t+=n){let l=s.indexOf(e[t]);if(!(l<0||i.resolveInner(o+t,1).type!=r))if(l%2==0==n>0)u++;else{if(1==u)return{start:c,end:{from:o+t,to:o+t+1},matched:l>>1==a>>1};u--}}n>0&&(f+=e.length)}return h.done?{start:c,matched:!1}:null}(e,t,n,s,l.type,r,o)}function Pt(e,t,n,i,r,o){let s=i.parent,l={from:i.from,to:i.to},a=0,c=null===s||void 0===s?void 0:s.cursor();if(c&&(n<0?c.childBefore(i.from):c.childAfter(i.to)))do{if(n<0?c.to<=i.from:c.from>=i.to){if(0==a&&r.indexOf(c.type.name)>-1&&c.from<c.to)return{start:l,end:{from:c.from,to:c.to},matched:!0};if(Mt(c.type,n,o))a++;else if(Mt(c.type,-n,o)){if(0==a)return{start:l,end:c.from==c.to?void 0:{from:c.from,to:c.to},matched:!1};a--}}}while(n<0?c.prevSibling():c.nextSibling());return{start:l,matched:!1}}const It=Object.create(null),Tt=[y.none],Bt=[],Nt=Object.create(null);for(let[s,l]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"]])Nt[s]=Lt(It,l);function Rt(e,t){Bt.indexOf(e)>-1||(Bt.push(e),console.warn(t))}function Lt(e,t){let n=null;for(let o of t.split(".")){let t=e[o]||ue[o];t?"function"==typeof t?n?n=t(n):Rt(o,`Modifier ${o} used at start of tag`):n?Rt(o,`Tag ${o} used as modifier`):n=t:Rt(o,`Unknown highlighting tag ${o}`)}if(!n)return 0;let i=t.replace(/ /g,"_"),r=y.define({id:Tt.length,name:i,props:[U({[i]:n})]});return Tt.push(r),r.id}function _t(e,t){return({state:n,dispatch:i})=>{if(n.readOnly)return!1;let r=e(t,n);return!!r&&(i(n.update(r)),!0)}}const Ft=_t(zt,0),Wt=_t(qt,0),Vt=_t(((e,t)=>qt(e,t,function(e){let t=[];for(let n of e.selection.ranges){let i=e.doc.lineAt(n.from),r=n.to<=i.to?i:e.doc.lineAt(n.to),o=t.length-1;o>=0&&t[o].to>i.from?t[o].to=r.to:t.push({from:i.from,to:r.to})}return t}(t))),0);function jt(e,t=e.selection.main.head){let n=e.languageDataAt("commentTokens",t);return n.length?n[0]:{}}function qt(e,t,n=t.selection.ranges){let i=n.map((e=>jt(t,e.from).block));if(!i.every((e=>e)))return null;let r=n.map(((e,n)=>function(e,{open:t,close:n},i,r){let o,s,l=e.sliceDoc(i-50,i),a=e.sliceDoc(r,r+50),c=/\s*$/.exec(l)[0].length,h=/^\s*/.exec(a)[0].length,u=l.length-c;if(l.slice(u-t.length,u)==t&&a.slice(h,h+n.length)==n)return{open:{pos:i-c,margin:c&&1},close:{pos:r+h,margin:h&&1}};r-i<=100?o=s=e.sliceDoc(i,r):(o=e.sliceDoc(i,i+50),s=e.sliceDoc(r-50,r));let f=/^\s*/.exec(o)[0].length,d=/\s*$/.exec(s)[0].length,p=s.length-d-n.length;return o.slice(f,f+t.length)==t&&s.slice(p,p+n.length)==n?{open:{pos:i+f+t.length,margin:/\s/.test(o.charAt(f+t.length))?1:0},close:{pos:r-d-n.length,margin:/\s/.test(s.charAt(p-1))?1:0}}:null}(t,i[n],e.from,e.to)));if(2!=e&&!r.every((e=>e)))return{changes:t.changes(n.map(((e,t)=>r[t]?[]:[{from:e.from,insert:i[t].open+" "},{from:e.to,insert:" "+i[t].close}])))};if(1!=e&&r.some((e=>e))){let e=[];for(let t,n=0;n<r.length;n++)if(t=r[n]){let r=i[n],{open:o,close:s}=t;e.push({from:o.pos-r.open.length,to:o.pos+o.margin},{from:s.pos-s.margin,to:s.pos+r.close.length})}return{changes:e}}return null}function zt(e,t,n=t.selection.ranges){let i=[],r=-1;for(let{from:o,to:s}of n){let e=i.length,n=1e9;for(let l=o;l<=s;){let e=t.doc.lineAt(l);if(e.from>r&&(o==s||s>e.from)){r=e.from;let o=jt(t,l).line;if(!o)continue;let s=/^\s*/.exec(e.text)[0].length,a=s==e.length,c=e.text.slice(s,s+o.length)==o?s:-1;s<e.text.length&&s<n&&(n=s),i.push({line:e,comment:c,token:o,indent:s,empty:a,single:!1})}l=e.to+1}if(n<1e9)for(let t=e;t<i.length;t++)i[t].indent<i[t].line.text.length&&(i[t].indent=n);i.length==e+1&&(i[e].single=!0)}if(2!=e&&i.some((e=>e.comment<0&&(!e.empty||e.single)))){let e=[];for(let{line:t,token:r,indent:o,empty:s,single:l}of i)!l&&s||e.push({from:t.from+o,insert:r+" "});let n=t.changes(e);return{changes:n,selection:t.selection.map(n,1)}}if(1!=e&&i.some((e=>e.comment>=0))){let e=[];for(let{line:t,comment:n,token:r}of i)if(n>=0){let i=t.from+n,o=i+r.length;" "==t.text[o-t.from]&&o++,e.push({from:i,to:o})}return{changes:e}}return null}const Ut=h.Annotation.define(),$t=h.Annotation.define(),Ht=h.Facet.define(),Jt=h.Facet.define({combine:e=>(0,h.combineConfig)(e,{minDepth:100,newGroupDelay:500},{minDepth:Math.max,newGroupDelay:Math.min})});const Gt=h.StateField.define({create:()=>un.empty,update(e,t){let n=t.state.facet(Jt),i=t.annotation(Ut);if(i){let r=t.docChanged?h.EditorSelection.single(function(e){let t=0;return e.iterChangedRanges(((e,n)=>t=n)),t}(t.changes)):void 0,o=tn.fromTransaction(t,r),s=i.side,l=0==s?e.undone:e.done;return l=o?nn(l,l.length,n.minDepth,o):sn(l,t.startState.selection),new un(0==s?i.rest:l,0==s?l:i.rest)}let r=t.annotation($t);if("full"!=r&&"before"!=r||(e=e.isolate()),!1===t.annotation(h.Transaction.addToHistory))return t.changes.empty?e:e.addMapping(t.changes.desc);let o=tn.fromTransaction(t),s=t.annotation(h.Transaction.time),l=t.annotation(h.Transaction.userEvent);return o?e=e.addChanges(o,s,l,n.newGroupDelay,n.minDepth):t.selection&&(e=e.addSelection(t.startState.selection,s,l,n.newGroupDelay)),"full"!=r&&"after"!=r||(e=e.isolate()),e},toJSON:e=>({done:e.done.map((e=>e.toJSON())),undone:e.undone.map((e=>e.toJSON()))}),fromJSON:e=>new un(e.done.map(tn.fromJSON),e.undone.map(tn.fromJSON))});function Kt(e={}){return[Gt,Jt.of(e),u.EditorView.domEventHandlers({beforeinput(e,t){let n="historyUndo"==e.inputType?Yt:"historyRedo"==e.inputType?Xt:null;return!!n&&(e.preventDefault(),n(t))}})]}function Qt(e,t){return function({state:n,dispatch:i}){if(!t&&n.readOnly)return!1;let r=n.field(Gt,!1);if(!r)return!1;let o=r.pop(e,n,t);return!!o&&(i(o),!0)}}const Yt=Qt(0,!1),Xt=Qt(1,!1),Zt=Qt(0,!0),en=Qt(1,!0);class tn{constructor(e,t,n,i,r){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=i,this.selectionsAfter=r}setSelAfter(e){return new tn(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:null===(e=this.changes)||void 0===e?void 0:e.toJSON(),mapped:null===(t=this.mapped)||void 0===t?void 0:t.toJSON(),startSelection:null===(n=this.startSelection)||void 0===n?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map((e=>e.toJSON()))}}static fromJSON(e){return new tn(e.changes&&h.ChangeSet.fromJSON(e.changes),[],e.mapped&&h.ChangeDesc.fromJSON(e.mapped),e.startSelection&&h.EditorSelection.fromJSON(e.startSelection),e.selectionsAfter.map(h.EditorSelection.fromJSON))}static fromTransaction(e,t){let n=on;for(let i of e.startState.facet(Ht)){let t=i(e);t.length&&(n=n.concat(t))}return!n.length&&e.changes.empty?null:new tn(e.changes.invert(e.startState.doc),n,void 0,t||e.startState.selection,on)}static selection(e){return new tn(void 0,on,void 0,void 0,e)}}function nn(e,t,n,i){let r=t+1>n+20?t-n-1:0,o=e.slice(r,t);return o.push(i),o}function rn(e,t){return e.length?t.length?e.concat(t):e:t}const on=[];function sn(e,t){if(e.length){let n=e[e.length-1],i=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-200));return i.length&&i[i.length-1].eq(t)?e:(i.push(t),nn(e,e.length-1,1e9,n.setSelAfter(i)))}return[tn.selection([t])]}function ln(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 an(e,t){if(!e.length)return e;let n=e.length,i=on;for(;n;){let r=cn(e[n-1],t,i);if(r.changes&&!r.changes.empty||r.effects.length){let t=e.slice(0,n);return t[n-1]=r,t}t=r.mapped,n--,i=r.selectionsAfter}return i.length?[tn.selection(i)]:on}function cn(e,t,n){let i=rn(e.selectionsAfter.length?e.selectionsAfter.map((e=>e.map(t))):on,n);if(!e.changes)return tn.selection(i);let r=e.changes.map(t),o=t.mapDesc(e.changes,!0),s=e.mapped?e.mapped.composeDesc(o):o;return new tn(r,h.StateEffect.mapEffects(e.effects,t),s,e.startSelection.map(o),i)}const hn=/^(input\.type|delete)($|\.)/;class un{constructor(e,t,n=0,i){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=i}isolate(){return this.prevTime?new un(this.done,this.undone):this}addChanges(e,t,n,i,r){let o=this.done,s=o[o.length-1];return o=s&&s.changes&&!s.changes.empty&&e.changes&&(!n||hn.test(n))&&(!s.selectionsAfter.length&&t-this.prevTime<i&&function(e,t){let n=[],i=!1;return e.iterChangedRanges(((e,t)=>n.push(e,t))),t.iterChangedRanges(((e,t,r,o)=>{for(let s=0;s<n.length;){let e=n[s++],t=n[s++];o>=e&&r<=t&&(i=!0)}})),i}(s.changes,e.changes)||"input.type.compose"==n)?nn(o,o.length-1,r,new tn(e.changes.compose(s.changes),rn(e.effects,s.effects),s.mapped,s.startSelection,on)):nn(o,o.length,r,e),new un(o,on,t,n)}addSelection(e,t,n,i){let r=this.done.length?this.done[this.done.length-1].selectionsAfter:on;return r.length>0&&t-this.prevTime<i&&n==this.prevUserEvent&&n&&/^select($|\.)/.test(n)&&(o=r[r.length-1],s=e,o.ranges.length==s.ranges.length&&0===o.ranges.filter(((e,t)=>e.empty!=s.ranges[t].empty)).length)?this:new un(sn(this.done,e),this.undone,t,n);var o,s}addMapping(e){return new un(an(this.done,e),an(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,n){let i=0==e?this.done:this.undone;if(0==i.length)return null;let r=i[i.length-1];if(n&&r.selectionsAfter.length)return t.update({selection:r.selectionsAfter[r.selectionsAfter.length-1],annotations:Ut.of({side:e,rest:ln(i)}),userEvent:0==e?"select.undo":"select.redo",scrollIntoView:!0});if(r.changes){let n=1==i.length?on:i.slice(0,i.length-1);return r.mapped&&(n=an(n,r.mapped)),t.update({changes:r.changes,selection:r.startSelection,effects:r.effects,annotations:Ut.of({side:e,rest:n}),filter:!1,userEvent:0==e?"undo":"redo",scrollIntoView:!0})}return null}}un.empty=new un(on,on);const fn=[{key:"Mod-z",run:Yt,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Xt,preventDefault:!0},{linux:"Ctrl-Shift-z",run:Xt,preventDefault:!0},{key:"Mod-u",run:Zt,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:en,preventDefault:!0}];function dn(e,t){return h.EditorSelection.create(e.ranges.map(t),e.mainIndex)}function pn(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function mn({state:e,dispatch:t},n){let i=dn(e.selection,n);return!i.eq(e.selection)&&(t(pn(e,i)),!0)}function gn(e,t){return h.EditorSelection.cursor(t?e.to:e.from)}function yn(e,t){return mn(e,(n=>n.empty?e.moveByChar(n,t):gn(n,t)))}function vn(e){return e.textDirectionAt(e.state.selection.main.head)==u.Direction.LTR}const bn=e=>yn(e,!vn(e)),wn=e=>yn(e,vn(e));function xn(e,t){return mn(e,(n=>n.empty?e.moveByGroup(n,t):gn(n,t)))}function kn(e,t,n){if(t.type.prop(n))return!0;let i=t.to-t.from;return i&&(i>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function Sn(e,t,n){let i,r,o=ke(e).resolveInner(t.head),s=n?m.closedBy:m.openedBy;for(let l=t.head;;){let t=n?o.childAfter(l):o.childBefore(l);if(!t)break;kn(e,t,s)?o=t:l=n?t.to:t.from}return r=o.type.prop(s)&&(i=n?Dt(e,o.from,1):Dt(e,o.to,-1))&&i.matched?n?i.end.to:i.end.from:n?o.to:o.from,h.EditorSelection.cursor(r,n?-1:1)}function Cn(e,t){return mn(e,(n=>{if(!n.empty)return gn(n,t);let i=e.moveVertically(n,t);return i.head!=n.head?i:e.moveToLineBoundary(n,t)}))}const An=e=>Cn(e,!1),En=e=>Cn(e,!0);function On(e){return Math.max(e.defaultLineHeight,Math.min(e.dom.clientHeight,innerHeight)-5)}function Mn(e,t){let{state:n}=e,i=dn(n.selection,(n=>n.empty?e.moveVertically(n,t,On(e)):gn(n,t)));if(i.eq(n.selection))return!1;let r,o=e.coordsAtPos(n.selection.main.head),s=e.scrollDOM.getBoundingClientRect();return o&&o.top>s.top&&o.bottom<s.bottom&&o.top-s.top<=e.scrollDOM.scrollHeight-e.scrollDOM.scrollTop-e.scrollDOM.clientHeight&&(r=u.EditorView.scrollIntoView(i.main.head,{y:"start",yMargin:o.top-s.top})),e.dispatch(pn(n,i),{effects:r}),!0}const Dn=e=>Mn(e,!1),Pn=e=>Mn(e,!0);function In(e,t,n){let i=e.lineBlockAt(t.head),r=e.moveToLineBoundary(t,n);if(r.head==t.head&&r.head!=(n?i.to:i.from)&&(r=e.moveToLineBoundary(t,n,!1)),!n&&r.head==i.from&&i.length){let n=/^\s*/.exec(e.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;n&&t.head!=i.from+n&&(r=h.EditorSelection.cursor(i.from+n))}return r}function Tn(e,t,n){let i=!1,r=dn(e.selection,(t=>{let r=Dt(e,t.head,-1)||Dt(e,t.head,1)||t.head>0&&Dt(e,t.head-1,1)||t.head<e.doc.length&&Dt(e,t.head+1,-1);if(!r||!r.end)return t;i=!0;let o=r.start.from==t.head?r.end.to:r.end.from;return n?h.EditorSelection.range(t.anchor,o):h.EditorSelection.cursor(o)}));return!!i&&(t(pn(e,r)),!0)}function Bn(e,t){let n=dn(e.state.selection,(e=>{let n=t(e);return h.EditorSelection.range(e.anchor,n.head,n.goalColumn,n.bidiLevel||void 0)}));return!n.eq(e.state.selection)&&(e.dispatch(pn(e.state,n)),!0)}function Nn(e,t){return Bn(e,(n=>e.moveByChar(n,t)))}const Rn=e=>Nn(e,!vn(e)),Ln=e=>Nn(e,vn(e));function _n(e,t){return Bn(e,(n=>e.moveByGroup(n,t)))}function Fn(e,t){return Bn(e,(n=>e.moveVertically(n,t)))}const Wn=e=>Fn(e,!1),Vn=e=>Fn(e,!0);function jn(e,t){return Bn(e,(n=>e.moveVertically(n,t,On(e))))}const qn=e=>jn(e,!1),zn=e=>jn(e,!0),Un=({state:e,dispatch:t})=>(t(pn(e,{anchor:0})),!0),$n=({state:e,dispatch:t})=>(t(pn(e,{anchor:e.doc.length})),!0),Hn=({state:e,dispatch:t})=>(t(pn(e,{anchor:e.selection.main.anchor,head:0})),!0),Jn=({state:e,dispatch:t})=>(t(pn(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0);function Gn(e,t){if(e.state.readOnly)return!1;let n="delete.selection",{state:i}=e,r=i.changeByRange((i=>{let{from:r,to:o}=i;if(r==o){let i=t(r);i<r?(n="delete.backward",i=Kn(e,i,!1)):i>r&&(n="delete.forward",i=Kn(e,i,!0)),r=Math.min(r,i),o=Math.max(o,i)}else r=Kn(e,r,!1),o=Kn(e,o,!0);return r==o?{range:i}:{changes:{from:r,to:o},range:h.EditorSelection.cursor(r)}}));return!r.changes.empty&&(e.dispatch(i.update(r,{scrollIntoView:!0,userEvent:n,effects:"delete.selection"==n?u.EditorView.announce.of(i.phrase("Selection deleted")):void 0})),!0)}function Kn(e,t,n){if(e instanceof u.EditorView)for(let i of e.state.facet(u.EditorView.atomicRanges).map((t=>t(e))))i.between(t,t,((e,i)=>{e<t&&i>t&&(t=n?i:e)}));return t}const Qn=(e,t)=>Gn(e,(n=>{let i,r,{state:o}=e,s=o.doc.lineAt(n);if(!t&&n>s.from&&n<s.from+200&&!/[^ \t]/.test(i=s.text.slice(0,n-s.from))){if("\t"==i[i.length-1])return n-1;let e=(0,h.countColumn)(i,o.tabSize)%Ne(o)||Ne(o);for(let t=0;t<e&&" "==i[i.length-1-t];t++)n--;r=n}else r=(0,h.findClusterBreak)(s.text,n-s.from,t,t)+s.from,r==n&&s.number!=(t?o.doc.lines:1)&&(r+=t?1:-1);return r})),Yn=e=>Qn(e,!1),Xn=e=>Qn(e,!0),Zn=(e,t)=>Gn(e,(n=>{let i=n,{state:r}=e,o=r.doc.lineAt(i),s=r.charCategorizer(i);for(let e=null;;){if(i==(t?o.to:o.from)){i==n&&o.number!=(t?r.doc.lines:1)&&(i+=t?1:-1);break}let l=(0,h.findClusterBreak)(o.text,i-o.from,t)+o.from,a=o.text.slice(Math.min(i,l)-o.from,Math.max(i,l)-o.from),c=s(a);if(null!=e&&c!=e)break;" "==a&&i==n||(e=c),i=l}return i})),ei=e=>Zn(e,!1),ti=e=>Gn(e,(t=>{let n=e.lineBlockAt(t).to;return t<n?n:Math.min(e.state.doc.length,t+1)}));function ni(e){let t=[],n=-1;for(let i of e.selection.ranges){let r=e.doc.lineAt(i.from),o=e.doc.lineAt(i.to);if(i.empty||i.to!=o.from||(o=e.doc.lineAt(i.to-1)),n>=r.number){let e=t[t.length-1];e.to=o.to,e.ranges.push(i)}else t.push({from:r.from,to:o.to,ranges:[i]});n=o.number+1}return t}function ii(e,t,n){if(e.readOnly)return!1;let i=[],r=[];for(let o of ni(e)){if(n?o.to==e.doc.length:0==o.from)continue;let t=e.doc.lineAt(n?o.to+1:o.from-1),s=t.length+1;if(n){i.push({from:o.to,to:t.to},{from:o.from,insert:t.text+e.lineBreak});for(let t of o.ranges)r.push(h.EditorSelection.range(Math.min(e.doc.length,t.anchor+s),Math.min(e.doc.length,t.head+s)))}else{i.push({from:t.from,to:o.from},{from:o.to,insert:e.lineBreak+t.text});for(let e of o.ranges)r.push(h.EditorSelection.range(e.anchor-s,e.head-s))}}return!!i.length&&(t(e.update({changes:i,scrollIntoView:!0,selection:h.EditorSelection.create(r,e.selection.mainIndex),userEvent:"move.line"})),!0)}function ri(e,t,n){if(e.readOnly)return!1;let i=[];for(let r of ni(e))n?i.push({from:r.from,insert:e.doc.slice(r.from,r.to)+e.lineBreak}):i.push({from:r.to,insert:e.lineBreak+e.doc.slice(r.from,r.to)});return t(e.update({changes:i,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const oi=si(!1);function si(e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let i=t.changeByRange((n=>{let{from:i,to:r}=n,o=t.doc.lineAt(i),s=!e&&i==r&&function(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n,i=ke(e).resolveInner(t),r=i.childBefore(t),o=i.childAfter(t);return r&&o&&r.to<=t&&o.from>=t&&(n=r.type.prop(m.closedBy))&&n.indexOf(o.name)>-1&&e.doc.lineAt(r.to).from==e.doc.lineAt(o.from).from?{from:r.to,to:o.from}:null}(t,i);e&&(i=r=(r<=o.to?o:t.doc.lineAt(r)).to);let l=new _e(t,{simulateBreak:i,simulateDoubleBreak:!!s}),a=Le(l,i);for(null==a&&(a=/^\s*/.exec(t.doc.lineAt(i).text)[0].length);r<o.to&&/\s/.test(o.text[r-o.from]);)r++;s?({from:i,to:r}=s):i>o.from&&i<o.from+100&&!/\S/.test(o.text.slice(0,i))&&(i=o.from);let c=["",Re(t,a)];return s&&c.push(Re(t,l.lineIndent(o.from,-1))),{changes:{from:i,to:r,insert:h.Text.of(c)},range:h.EditorSelection.cursor(i+1+c[1].length)}}));return n(t.update(i,{scrollIntoView:!0,userEvent:"input"})),!0}}function li(e,t){let n=-1;return e.changeByRange((i=>{let r=[];for(let s=i.from;s<=i.to;){let o=e.doc.lineAt(s);o.number>n&&(i.empty||i.to>o.from)&&(t(o,r,i),n=o.number),s=o.to+1}let o=e.changes(r);return{changes:r,range:h.EditorSelection.range(o.mapPos(i.anchor,1),o.mapPos(i.head,1))}}))}const ai=({state:e,dispatch:t})=>!e.readOnly&&(t(e.update(li(e,((t,n)=>{n.push({from:t.from,insert:e.facet(Be)})})),{userEvent:"input.indent"})),!0),ci=({state:e,dispatch:t})=>!e.readOnly&&(t(e.update(li(e,((t,n)=>{let i=/^\s*/.exec(t.text)[0];if(!i)return;let r=(0,h.countColumn)(i,e.tabSize),o=0,s=Re(e,Math.max(0,r-Ne(e)));for(;o<i.length&&o<s.length&&i.charCodeAt(o)==s.charCodeAt(o);)o++;n.push({from:t.from+o,to:t.from+i.length,insert:s.slice(o)})})),{userEvent:"delete.dedent"})),!0),hi=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:e=>mn(e,(t=>Sn(e.state,t,!vn(e)))),shift:e=>Bn(e,(t=>Sn(e.state,t,!vn(e))))},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:e=>mn(e,(t=>Sn(e.state,t,vn(e)))),shift:e=>Bn(e,(t=>Sn(e.state,t,vn(e))))},{key:"Alt-ArrowUp",run:({state:e,dispatch:t})=>ii(e,t,!1)},{key:"Shift-Alt-ArrowUp",run:({state:e,dispatch:t})=>ri(e,t,!1)},{key:"Alt-ArrowDown",run:({state:e,dispatch:t})=>ii(e,t,!0)},{key:"Shift-Alt-ArrowDown",run:({state:e,dispatch:t})=>ri(e,t,!0)},{key:"Escape",run:({state:e,dispatch:t})=>{let n=e.selection,i=null;return n.ranges.length>1?i=h.EditorSelection.create([n.main]):n.main.empty||(i=h.EditorSelection.create([h.EditorSelection.cursor(n.main.head)])),!!i&&(t(pn(e,i)),!0)}},{key:"Mod-Enter",run:si(!0)},{key:"Alt-l",mac:"Ctrl-l",run:({state:e,dispatch:t})=>{let n=ni(e).map((({from:t,to:n})=>h.EditorSelection.range(t,Math.min(n+1,e.doc.length))));return t(e.update({selection:h.EditorSelection.create(n),userEvent:"select"})),!0}},{key:"Mod-i",run:({state:e,dispatch:t})=>{let n=dn(e.selection,(t=>{var n;let i=ke(e).resolveInner(t.head,1);for(;!(i.from<t.from&&i.to>=t.to||i.to>t.to&&i.from<=t.from)&&(null===(n=i.parent)||void 0===n?void 0:n.parent);)i=i.parent;return h.EditorSelection.range(i.to,i.from)}));return t(pn(e,n)),!0},preventDefault:!0},{key:"Mod-[",run:ci},{key:"Mod-]",run:ai},{key:"Mod-Alt-\\",run:({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),i=new _e(e,{overrideIndentation:e=>{let t=n[e];return null==t?-1:t}}),r=li(e,((t,r,o)=>{let s=Le(i,t.from);if(null==s)return;/\S/.test(t.text)||(s=0);let l=/^\s*/.exec(t.text)[0],a=Re(e,s);(l!=a||o.from<t.from+l.length)&&(n[t.from]=s,r.push({from:t.from,to:t.from+l.length,insert:a}))}));return r.changes.empty||t(e.update(r,{userEvent:"indent"})),!0}},{key:"Shift-Mod-k",run:e=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(ni(t).map((({from:e,to:n})=>(e>0?e--:n<t.doc.length&&n++,{from:e,to:n})))),i=dn(t.selection,(t=>e.moveVertically(t,!0))).map(n);return e.dispatch({changes:n,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0}},{key:"Shift-Mod-\\",run:({state:e,dispatch:t})=>Tn(e,t,!1)},{key:"Mod-/",run:e=>{let t=jt(e.state);return t.line?Ft(e):!!t.block&&Vt(e)}},{key:"Alt-A",run:Wt}].concat([{key:"ArrowLeft",run:bn,shift:Rn,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:e=>xn(e,!vn(e)),shift:e=>_n(e,!vn(e)),preventDefault:!0},{mac:"Cmd-ArrowLeft",run:e=>mn(e,(t=>In(e,t,!vn(e)))),shift:e=>Bn(e,(t=>In(e,t,!vn(e)))),preventDefault:!0},{key:"ArrowRight",run:wn,shift:Ln,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:e=>xn(e,vn(e)),shift:e=>_n(e,vn(e)),preventDefault:!0},{mac:"Cmd-ArrowRight",run:e=>mn(e,(t=>In(e,t,vn(e)))),shift:e=>Bn(e,(t=>In(e,t,vn(e)))),preventDefault:!0},{key:"ArrowUp",run:An,shift:Wn,preventDefault:!0},{mac:"Cmd-ArrowUp",run:Un,shift:Hn},{mac:"Ctrl-ArrowUp",run:Dn,shift:qn},{key:"ArrowDown",run:En,shift:Vn,preventDefault:!0},{mac:"Cmd-ArrowDown",run:$n,shift:Jn},{mac:"Ctrl-ArrowDown",run:Pn,shift:zn},{key:"PageUp",run:Dn,shift:qn},{key:"PageDown",run:Pn,shift:zn},{key:"Home",run:e=>mn(e,(t=>In(e,t,!1))),shift:e=>Bn(e,(t=>In(e,t,!1))),preventDefault:!0},{key:"Mod-Home",run:Un,shift:Hn},{key:"End",run:e=>mn(e,(t=>In(e,t,!0))),shift:e=>Bn(e,(t=>In(e,t,!0))),preventDefault:!0},{key:"Mod-End",run:$n,shift:Jn},{key:"Enter",run:oi},{key:"Mod-a",run:({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"})),!0)},{key:"Backspace",run:Yn,shift:Yn},{key:"Delete",run:Xn},{key:"Mod-Backspace",mac:"Alt-Backspace",run:ei},{key:"Mod-Delete",mac:"Alt-Delete",run:e=>Zn(e,!0)},{mac:"Mod-Backspace",run:e=>Gn(e,(t=>{let n=e.lineBlockAt(t).from;return t>n?n:Math.max(0,t-1)}))},{mac:"Mod-Delete",run:ti}].concat([{key:"Ctrl-b",run:bn,shift:Rn,preventDefault:!0},{key:"Ctrl-f",run:wn,shift:Ln},{key:"Ctrl-p",run:An,shift:Wn},{key:"Ctrl-n",run:En,shift:Vn},{key:"Ctrl-a",run:e=>mn(e,(t=>h.EditorSelection.cursor(e.lineBlockAt(t.head).from,1))),shift:e=>Bn(e,(t=>h.EditorSelection.cursor(e.lineBlockAt(t.head).from)))},{key:"Ctrl-e",run:e=>mn(e,(t=>h.EditorSelection.cursor(e.lineBlockAt(t.head).to,-1))),shift:e=>Bn(e,(t=>h.EditorSelection.cursor(e.lineBlockAt(t.head).to)))},{key:"Ctrl-d",run:Xn},{key:"Ctrl-h",run:Yn},{key:"Ctrl-k",run:ti},{key:"Ctrl-Alt-h",run:ei},{key:"Ctrl-o",run:({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange((e=>({changes:{from:e.from,to:e.to,insert:h.Text.of(["",""])},range:h.EditorSelection.cursor(e.from)})));return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0}},{key:"Ctrl-t",run:({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange((t=>{if(!t.empty||0==t.from||t.from==e.doc.length)return{range:t};let n=t.from,i=e.doc.lineAt(n),r=n==i.from?n-1:(0,h.findClusterBreak)(i.text,n-i.from,!1)+i.from,o=n==i.to?n+1:(0,h.findClusterBreak)(i.text,n-i.from,!0)+i.from;return{changes:{from:r,to:o,insert:e.doc.slice(n,o).append(e.doc.slice(r,n))},range:h.EditorSelection.cursor(o)}}));return!n.changes.empty&&(t(e.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)}},{key:"Ctrl-v",run:Pn}].map((e=>({mac:e.key,run:e.run,shift:e.shift}))))),ui={key:"Tab",run:ai,shift:ci};function fi(){var e=arguments[0];"string"==typeof e&&(e=document.createElement(e));var t=1,n=arguments[1];if(n&&"object"==typeof n&&null==n.nodeType&&!Array.isArray(n)){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var r=n[i];"string"==typeof r?e.setAttribute(i,r):null!=r&&(e[i]=r)}t++}for(;t<arguments.length;t++)di(e,arguments[t]);return e}function di(e,t){if("string"==typeof t)e.appendChild(document.createTextNode(t));else if(null==t);else if(null!=t.nodeType)e.appendChild(t);else{if(!Array.isArray(t))throw new RangeError("Unsupported child node: "+t);for(var n=0;n<t.length;n++)di(e,t[n])}}const pi="function"==typeof String.prototype.normalize?e=>e.normalize("NFKD"):e=>e;class mi{constructor(e,t,n=0,i=e.length,r,o){this.test=o,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(n,i),this.bufferStart=n,this.normalize=r?e=>r(pi(e)):pi,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return(0,h.codePointAt)(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=(0,h.fromCodePoint)(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=(0,h.codePointSize)(e);let i=this.normalize(t);for(let r=0,o=n;;r++){let e=i.charCodeAt(r),s=this.match(e,o);if(s)return this.value=s,this;if(r==i.length-1)break;o==n&&r<t.length&&t.charCodeAt(r)==e&&o++}}}match(e,t){let n=null;for(let i=0;i<this.matches.length;i+=2){let r=this.matches[i],o=!1;this.query.charCodeAt(r)==e&&(r==this.query.length-1?n={from:this.matches[i+1],to:t+1}:(this.matches[i]++,o=!0)),o||(this.matches.splice(i,2),i-=2)}return this.query.charCodeAt(0)==e&&(1==this.query.length?n={from:t,to:t+1}:this.matches.push(1,t)),n&&this.test&&!this.test(n.from,n.to,this.buffer,this.bufferPos)&&(n=null),n}}"undefined"!=typeof Symbol&&(mi.prototype[Symbol.iterator]=function(){return this});const gi={from:-1,to:-1,match:/.*/.exec("")},yi="gm"+(null==/x/.unicode?"":"u");class vi{constructor(e,t,n,i=0,r=e.length){if(this.text=e,this.to=r,this.curLine="",this.done=!1,this.value=gi,/\\[sWDnr]|\n|\r|\[\^/.test(t))return new xi(e,t,n,i,r);this.re=new RegExp(t,yi+((null===n||void 0===n?void 0:n.ignoreCase)?"i":"")),this.test=null===n||void 0===n?void 0:n.test,this.iter=e.iter();let o=e.lineAt(i);this.curLineStart=o.from,this.matchPos=ki(e,i),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let n=this.curLineStart+t.index,i=n+t[0].length;if(this.matchPos=ki(this.text,i+(n==i?1:0)),n==this.curLineStart+this.curLine.length&&this.nextLine(),(n<i||n>this.value.to)&&(!this.test||this.test(n,i,t)))return this.value={from:n,to:i,match:t},this;e=this.matchPos-this.curLineStart}else{if(!(this.curLineStart+this.curLine.length<this.to))return this.done=!0,this;this.nextLine(),e=0}}}}const bi=new WeakMap;class wi{constructor(e,t){this.from=e,this.text=t}get to(){return this.from+this.text.length}static get(e,t,n){let i=bi.get(e);if(!i||i.from>=n||i.to<=t){let i=new wi(t,e.sliceString(t,n));return bi.set(e,i),i}if(i.from==t&&i.to==n)return i;let{text:r,from:o}=i;return o>t&&(r=e.sliceString(t,o)+r,o=t),i.to<n&&(r+=e.sliceString(i.to,n)),bi.set(e,new wi(o,r)),new wi(t,r.slice(t-o,n-o))}}class xi{constructor(e,t,n,i,r){this.text=e,this.to=r,this.done=!1,this.value=gi,this.matchPos=ki(e,i),this.re=new RegExp(t,yi+((null===n||void 0===n?void 0:n.ignoreCase)?"i":"")),this.test=null===n||void 0===n?void 0:n.test,this.flat=wi.get(e,i,this.chunkEnd(i+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let e=this.flat.from+t.index,n=e+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(e,n,t)))return this.value={from:e,to:n,match:t},this.matchPos=ki(this.text,n+(e==n?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=wi.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+2*this.flat.text.length))}}}function ki(e,t){if(t>=e.length)return t;let n,i=e.lineAt(t);for(;t<i.to&&(n=i.text.charCodeAt(t-i.from))>=56320&&n<57344;)t++;return t}function Si(e){let t=fi("input",{class:"cm-textfield",name:"line"});function n(){let n=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(t.value);if(!n)return;let{state:i}=e,r=i.doc.lineAt(i.selection.main.head),[,o,s,l,a]=n,c=l?+l.slice(1):0,u=s?+s:r.number;if(s&&a){let e=u/100;o&&(e=e*("-"==o?-1:1)+r.number/i.doc.lines),u=Math.round(i.doc.lines*e)}else s&&o&&(u=u*("-"==o?-1:1)+r.number);let f=i.doc.line(Math.max(1,Math.min(i.doc.lines,u)));e.dispatch({effects:Ci.of(!1),selection:h.EditorSelection.cursor(f.from+Math.max(0,Math.min(c,f.length))),scrollIntoView:!0}),e.focus()}return{dom:fi("form",{class:"cm-gotoLine",onkeydown:t=>{27==t.keyCode?(t.preventDefault(),e.dispatch({effects:Ci.of(!1)}),e.focus()):13==t.keyCode&&(t.preventDefault(),n())},onsubmit:e=>{e.preventDefault(),n()}},fi("label",e.state.phrase("Go to line"),": ",t)," ",fi("button",{class:"cm-button",type:"submit"},e.state.phrase("go")))}}"undefined"!=typeof Symbol&&(vi.prototype[Symbol.iterator]=xi.prototype[Symbol.iterator]=function(){return this});const Ci=h.StateEffect.define(),Ai=h.StateField.define({create:()=>!0,update(e,t){for(let n of t.effects)n.is(Ci)&&(e=n.value);return e},provide:e=>u.showPanel.from(e,(e=>e?Si:null))}),Ei=u.EditorView.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),Oi={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},Mi=h.Facet.define({combine:e=>(0,h.combineConfig)(e,Oi,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})});const Di=u.Decoration.mark({class:"cm-selectionMatch"}),Pi=u.Decoration.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function Ii(e,t,n,i){return(0==n||e(t.sliceDoc(n-1,n))!=h.CharCategory.Word)&&(i==t.doc.length||e(t.sliceDoc(i,i+1))!=h.CharCategory.Word)}const Ti=u.ViewPlugin.fromClass(class{constructor(e){this.decorations=this.getDeco(e)}update(e){(e.selectionSet||e.docChanged||e.viewportChanged)&&(this.decorations=this.getDeco(e.view))}getDeco(e){let t=e.state.facet(Mi),{state:n}=e,i=n.selection;if(i.ranges.length>1)return u.Decoration.none;let r,o=i.main,s=null;if(o.empty){if(!t.highlightWordAroundCursor)return u.Decoration.none;let e=n.wordAt(o.head);if(!e)return u.Decoration.none;s=n.charCategorizer(o.head),r=n.sliceDoc(e.from,e.to)}else{let e=o.to-o.from;if(e<t.minSelectionLength||e>200)return u.Decoration.none;if(t.wholeWords){if(r=n.sliceDoc(o.from,o.to),s=n.charCategorizer(o.head),!Ii(s,n,o.from,o.to)||!function(e,t,n,i){return e(t.sliceDoc(n,n+1))==h.CharCategory.Word&&e(t.sliceDoc(i-1,i))==h.CharCategory.Word}(s,n,o.from,o.to))return u.Decoration.none}else if(r=n.sliceDoc(o.from,o.to).trim(),!r)return u.Decoration.none}let l=[];for(let a of e.visibleRanges){let e=new mi(n.doc,r,a.from,a.to);for(;!e.next().done;){let{from:i,to:r}=e.value;if((!s||Ii(s,n,i,r))&&(o.empty&&i<=o.from&&r>=o.to?l.push(Pi.range(i,r)):(i>=o.to||r<=o.from)&&l.push(Di.range(i,r)),l.length>t.maxMatches))return u.Decoration.none}}return u.Decoration.set(l)}},{decorations:e=>e.decorations}),Bi=u.EditorView.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}});const Ni=h.Facet.define({combine:e=>(0,h.combineConfig)(e,{top:!1,caseSensitive:!1,literal:!1,wholeWord:!1,createPanel:e=>new lr(e)})});class Ri{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||function(e){try{return new RegExp(e,yi),!0}catch(ve){return!1}}(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,((e,t)=>"n"==t?"\n":"r"==t?"\r":"t"==t?"\t":"\\"))}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new qi(this):new Fi(this)}getCursor(e,t=0,n){let i=e.doc?e:h.EditorState.create({doc:e});return null==n&&(n=i.doc.length),this.regexp?Wi(this,i,t,n):_i(this,i,t,n)}}class Li{constructor(e){this.spec=e}}function _i(e,t,n,i){return new mi(t.doc,e.unquoted,n,i,e.caseSensitive?void 0:e=>e.toLowerCase(),e.wholeWord?(r=t.doc,o=t.charCategorizer(t.selection.main.head),(e,t,n,i)=>((i>e||i+n.length<t)&&(i=Math.max(0,e-2),n=r.sliceString(i,Math.min(r.length,t+2))),(o(Vi(n,e-i))!=h.CharCategory.Word||o(ji(n,e-i))!=h.CharCategory.Word)&&(o(ji(n,t-i))!=h.CharCategory.Word||o(Vi(n,t-i))!=h.CharCategory.Word))):void 0);var r,o}class Fi extends Li{constructor(e){super(e)}nextMatch(e,t,n){let i=_i(this.spec,e,n,e.doc.length).nextOverlapping();return i.done&&(i=_i(this.spec,e,0,t).nextOverlapping()),i.done?null:i.value}prevMatchInRange(e,t,n){for(let i=n;;){let n=Math.max(t,i-1e4-this.spec.unquoted.length),r=_i(this.spec,e,n,i),o=null;for(;!r.nextOverlapping().done;)o=r.value;if(o)return o;if(n==t)return null;i-=1e4}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let n=_i(this.spec,e,0,e.doc.length),i=[];for(;!n.next().done;){if(i.length>=t)return null;i.push(n.value)}return i}highlight(e,t,n,i){let r=_i(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(n+this.spec.unquoted.length,e.doc.length));for(;!r.next().done;)i(r.value.from,r.value.to)}}function Wi(e,t,n,i){return new vi(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:e.wholeWord?(r=t.charCategorizer(t.selection.main.head),(e,t,n)=>!n[0].length||(r(Vi(n.input,n.index))!=h.CharCategory.Word||r(ji(n.input,n.index))!=h.CharCategory.Word)&&(r(ji(n.input,n.index+n[0].length))!=h.CharCategory.Word||r(Vi(n.input,n.index+n[0].length))!=h.CharCategory.Word)):void 0},n,i);var r}function Vi(e,t){return e.slice((0,h.findClusterBreak)(e,t,!1),t)}function ji(e,t){return e.slice(t,(0,h.findClusterBreak)(e,t))}class qi extends Li{nextMatch(e,t,n){let i=Wi(this.spec,e,n,e.doc.length).next();return i.done&&(i=Wi(this.spec,e,0,t).next()),i.done?null:i.value}prevMatchInRange(e,t,n){for(let i=1;;i++){let r=Math.max(t,n-1e4*i),o=Wi(this.spec,e,r,n),s=null;for(;!o.next().done;)s=o.value;if(s&&(r==t||s.from>r+10))return s;if(r==t)return null}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace.replace(/\$([$&\d+])/g,((t,n)=>"$"==n?"$":"&"==n?e.match[0]:"0"!=n&&+n<e.match.length?e.match[n]:t)))}matchAll(e,t){let n=Wi(this.spec,e,0,e.doc.length),i=[];for(;!n.next().done;){if(i.length>=t)return null;i.push(n.value)}return i}highlight(e,t,n,i){let r=Wi(this.spec,e,Math.max(0,t-250),Math.min(n+250,e.doc.length));for(;!r.next().done;)i(r.value.from,r.value.to)}}const zi=h.StateEffect.define(),Ui=h.StateEffect.define(),$i=h.StateField.define({create:e=>new Hi(ir(e).create(),null),update(e,t){for(let n of t.effects)n.is(zi)?e=new Hi(n.value.create(),e.panel):n.is(Ui)&&(e=new Hi(e.query,n.value?nr:null));return e},provide:e=>u.showPanel.from(e,(e=>e.panel))});class Hi{constructor(e,t){this.query=e,this.panel=t}}const Ji=u.Decoration.mark({class:"cm-searchMatch"}),Gi=u.Decoration.mark({class:"cm-searchMatch cm-searchMatch-selected"}),Ki=u.ViewPlugin.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field($i))}update(e){let t=e.state.field($i);(t!=e.startState.field($i)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return u.Decoration.none;let{view:n}=this,i=new h.RangeSetBuilder;for(let r=0,o=n.visibleRanges,s=o.length;r<s;r++){let{from:t,to:l}=o[r];for(;r<s-1&&l>o[r+1].from-500;)l=o[++r].to;e.highlight(n.state,t,l,((e,t)=>{let r=n.state.selection.ranges.some((n=>n.from==e&&n.to==t));i.add(e,t,r?Gi:Ji)}))}return i.finish()}},{decorations:e=>e.decorations});function Qi(e){return t=>{let n=t.state.field($i,!1);return n&&n.query.spec.valid?e(t,n):rr(t)}}const Yi=Qi(((e,{query:t})=>{let{to:n}=e.state.selection.main,i=t.nextMatch(e.state,n,n);return!!i&&(e.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:hr(e,i),userEvent:"select.search"}),!0)})),Xi=Qi(((e,{query:t})=>{let{state:n}=e,{from:i}=n.selection.main,r=t.prevMatch(n,i,i);return!!r&&(e.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:hr(e,r),userEvent:"select.search"}),!0)})),Zi=Qi(((e,{query:t})=>{let n=t.matchAll(e.state,1e3);return!(!n||!n.length)&&(e.dispatch({selection:h.EditorSelection.create(n.map((e=>h.EditorSelection.range(e.from,e.to)))),userEvent:"select.search.matches"}),!0)})),er=Qi(((e,{query:t})=>{let{state:n}=e,{from:i,to:r}=n.selection.main;if(n.readOnly)return!1;let o=t.nextMatch(n,i,i);if(!o)return!1;let s,l,a=[],c=[];if(o.from==i&&o.to==r&&(l=n.toText(t.getReplacement(o)),a.push({from:o.from,to:o.to,insert:l}),o=t.nextMatch(n,o.from,o.to),c.push(u.EditorView.announce.of(n.phrase("replaced match on line $",n.doc.lineAt(i).number)+"."))),o){let t=0==a.length||a[0].from>=o.to?0:o.to-o.from-l.length;s={anchor:o.from-t,head:o.to-t},c.push(hr(e,o))}return e.dispatch({changes:a,selection:s,scrollIntoView:!!s,effects:c,userEvent:"input.replace"}),!0})),tr=Qi(((e,{query:t})=>{if(e.state.readOnly)return!1;let n=t.matchAll(e.state,1e9).map((e=>{let{from:n,to:i}=e;return{from:n,to:i,insert:t.getReplacement(e)}}));if(!n.length)return!1;let i=e.state.phrase("replaced $ matches",n.length)+".";return e.dispatch({changes:n,effects:u.EditorView.announce.of(i),userEvent:"input.replace.all"}),!0}));function nr(e){return e.state.facet(Ni).createPanel(e)}function ir(e,t){var n,i,r,o;let s=e.selection.main,l=s.empty||s.to>s.from+100?"":e.sliceDoc(s.from,s.to);if(t&&!l)return t;let a=e.facet(Ni);return new Ri({search:(null!==(n=null===t||void 0===t?void 0:t.literal)&&void 0!==n?n:a.literal)?l:l.replace(/\n/g,"\\n"),caseSensitive:null!==(i=null===t||void 0===t?void 0:t.caseSensitive)&&void 0!==i?i:a.caseSensitive,literal:null!==(r=null===t||void 0===t?void 0:t.literal)&&void 0!==r?r:a.literal,wholeWord:null!==(o=null===t||void 0===t?void 0:t.wholeWord)&&void 0!==o?o:a.wholeWord})}const rr=e=>{let t=e.state.field($i,!1);if(t&&t.panel){let n=(0,u.getPanel)(e,nr);if(!n)return!1;let i=n.dom.querySelector("[main-field]");if(i&&i!=e.root.activeElement){let n=ir(e.state,t.query.spec);n.valid&&e.dispatch({effects:zi.of(n)}),i.focus(),i.select()}}else e.dispatch({effects:[Ui.of(!0),t?zi.of(ir(e.state,t.query.spec)):h.StateEffect.appendConfig.of(fr)]});return!0},or=e=>{let t=e.state.field($i,!1);if(!t||!t.panel)return!1;let n=(0,u.getPanel)(e,nr);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:Ui.of(!1)}),!0},sr=[{key:"Mod-f",run:rr,scope:"editor search-panel"},{key:"F3",run:Yi,shift:Xi,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:Yi,shift:Xi,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:or,scope:"editor search-panel"},{key:"Mod-Shift-l",run:({state:e,dispatch:t})=>{let n=e.selection;if(n.ranges.length>1||n.main.empty)return!1;let{from:i,to:r}=n.main,o=[],s=0;for(let l=new mi(e.doc,e.sliceDoc(i,r));!l.next().done;){if(o.length>1e3)return!1;l.value.from==i&&(s=o.length),o.push(h.EditorSelection.range(l.value.from,l.value.to))}return t(e.update({selection:h.EditorSelection.create(o,s),userEvent:"select.search.matches"})),!0}},{key:"Alt-g",run:e=>{let t=(0,u.getPanel)(e,Si);if(!t){let n=[Ci.of(!0)];null==e.state.field(Ai,!1)&&n.push(h.StateEffect.appendConfig.of([Ai,Ei])),e.dispatch({effects:n}),t=(0,u.getPanel)(e,Si)}return t&&t.dom.querySelector("input").focus(),!0}},{key:"Mod-d",run:({state:e,dispatch:t})=>{let{ranges:n}=e.selection;if(n.some((e=>e.from===e.to)))return(({state:e,dispatch:t})=>{let{selection:n}=e,i=h.EditorSelection.create(n.ranges.map((t=>e.wordAt(t.head)||h.EditorSelection.cursor(t.head))),n.mainIndex);return!i.eq(n)&&(t(e.update({selection:i})),!0)})({state:e,dispatch:t});let i=e.sliceDoc(n[0].from,n[0].to);if(e.selection.ranges.some((t=>e.sliceDoc(t.from,t.to)!=i)))return!1;let r=function(e,t){let{main:n,ranges:i}=e.selection,r=e.wordAt(n.head),o=r&&r.from==n.from&&r.to==n.to;for(let s=!1,l=new mi(e.doc,t,i[i.length-1].to);;){if(l.next(),!l.done){if(s&&i.some((e=>e.from==l.value.from)))continue;if(o){let t=e.wordAt(l.value.from);if(!t||t.from!=l.value.from||t.to!=l.value.to)continue}return l.value}if(s)return null;l=new mi(e.doc,t,0,Math.max(0,i[i.length-1].from-1)),s=!0}}(e,i);return!!r&&(t(e.update({selection:e.selection.addRange(h.EditorSelection.range(r.from,r.to),!1),effects:u.EditorView.scrollIntoView(r.to)})),!0)},preventDefault:!0}];class lr{constructor(e){this.view=e;let t=this.query=e.state.field($i).query.spec;function n(e,t,n){return fi("button",{class:"cm-button",name:e,onclick:t,type:"button"},n)}this.commit=this.commit.bind(this),this.searchField=fi("input",{value:t.search,placeholder:ar(e,"Find"),"aria-label":ar(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=fi("input",{value:t.replace,placeholder:ar(e,"Replace"),"aria-label":ar(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=fi("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=fi("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=fi("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit}),this.dom=fi("div",{onkeydown:e=>this.keydown(e),class:"cm-search"},[this.searchField,n("next",(()=>Yi(e)),[ar(e,"next")]),n("prev",(()=>Xi(e)),[ar(e,"previous")]),n("select",(()=>Zi(e)),[ar(e,"all")]),fi("label",null,[this.caseField,ar(e,"match case")]),fi("label",null,[this.reField,ar(e,"regexp")]),fi("label",null,[this.wordField,ar(e,"by word")]),...e.state.readOnly?[]:[fi("br"),this.replaceField,n("replace",(()=>er(e)),[ar(e,"replace")]),n("replaceAll",(()=>tr(e)),[ar(e,"replace all")])],fi("button",{name:"close",onclick:()=>or(e),"aria-label":ar(e,"close"),type:"button"},["\xd7"])])}commit(){let e=new Ri({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:zi.of(e)}))}keydown(e){(0,u.runScopeHandlers)(this.view,e,"search-panel")?e.preventDefault():13==e.keyCode&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?Xi:Yi)(this.view)):13==e.keyCode&&e.target==this.replaceField&&(e.preventDefault(),er(this.view))}update(e){for(let t of e.transactions)for(let e of t.effects)e.is(zi)&&!e.value.eq(this.query)&&this.setQuery(e.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(Ni).top}}function ar(e,t){return e.state.phrase(t)}const cr=/[\s\.,:;?!]/;function hr(e,{from:t,to:n}){let i=e.state.doc.lineAt(t),r=e.state.doc.lineAt(n).to,o=Math.max(i.from,t-30),s=Math.min(r,n+30),l=e.state.sliceDoc(o,s);if(o!=i.from)for(let a=0;a<30;a++)if(!cr.test(l[a+1])&&cr.test(l[a])){l=l.slice(a);break}if(s!=r)for(let a=l.length-1;a>l.length-30;a--)if(!cr.test(l[a-1])&&cr.test(l[a])){l=l.slice(0,a);break}return u.EditorView.announce.of(`${e.state.phrase("current match")}. ${l} ${e.state.phrase("on line")} ${i.number}.`)}const ur=u.EditorView.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),fr=[$i,h.Prec.lowest(Ki),ur];class dr{constructor(e,t,n){this.state=e,this.pos=t,this.explicit=n,this.abortListeners=[]}tokenBefore(e){let t=ke(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),i=t.text.slice(n-t.from,this.pos-t.from),r=i.search(vr(e,!1));return r<0?null:{from:n+r,to:this.pos,text:i.slice(r)}}get aborted(){return null==this.abortListeners}addEventListener(e,t){"abort"==e&&this.abortListeners&&this.abortListeners.push(t)}}function pr(e){let t=Object.keys(e).join(""),n=/\w/.test(t);return n&&(t=t.replace(/\w/g,"")),`[${n?"\\w":""}${t.replace(/[^\w\s]/g,"\\$&")}]`}function mr(e){let t=e.map((e=>"string"==typeof e?{label:e}:e)),[n,i]=t.every((e=>/^\w+$/.test(e.label)))?[/\w*$/,/\w+$/]:function(e){let t=Object.create(null),n=Object.create(null);for(let{label:r}of e){t[r[0]]=!0;for(let e=1;e<r.length;e++)n[r[e]]=!0}let i=pr(t)+pr(n)+"*$";return[new RegExp("^"+i),new RegExp(i)]}(t);return e=>{let r=e.matchBefore(i);return r||e.explicit?{from:r?r.from:e.pos,options:t,validFor:n}:null}}class gr{constructor(e,t,n){this.completion=e,this.source=t,this.match=n}}function yr(e){return e.selection.main.head}function vr(e,t){var n;let{source:i}=e,r=t&&"^"!=i[0],o="$"!=i[i.length-1];return r||o?new RegExp(`${r?"^":""}(?:${i})${o?"$":""}`,null!==(n=e.flags)&&void 0!==n?n:e.ignoreCase?"i":""):e}const br=h.Annotation.define();function wr(e,t){const n=t.completion.apply||t.completion.label;let i=t.source;var r,o,s,l;"string"==typeof n?e.dispatch(Object.assign(Object.assign({},(r=e.state,o=n,s=i.from,l=i.to,Object.assign(Object.assign({},r.changeByRange((e=>{if(e==r.selection.main)return{changes:{from:s,to:l,insert:o},range:h.EditorSelection.cursor(s+o.length)};let t=l-s;return!e.empty||t&&r.sliceDoc(e.from-t,e.from)!=r.sliceDoc(s,l)?{range:e}:{changes:{from:e.from-t,to:e.from,insert:o},range:h.EditorSelection.cursor(e.from-t+o.length)}}))),{userEvent:"input.complete"}))),{annotations:br.of(t.completion)})):n(e,t.completion,i.from,i.to)}const xr=new WeakMap;function kr(e){if(!Array.isArray(e))return e;let t=xr.get(e);return t||xr.set(e,t=mr(e)),t}class Sr{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[];for(let t=0;t<e.length;){let n=(0,h.codePointAt)(e,t),i=(0,h.codePointSize)(n);this.chars.push(n);let r=e.slice(t,t+i),o=r.toUpperCase();this.folded.push((0,h.codePointAt)(o==r?r.toLowerCase():o,0)),t+=i}this.astral=e.length!=this.chars.length}match(e){if(0==this.pattern.length)return[0];if(e.length<this.pattern.length)return null;let{chars:t,folded:n,any:i,precise:r,byWord:o}=this;if(1==t.length){let i=(0,h.codePointAt)(e,0);return i==t[0]?[0,0,(0,h.codePointSize)(i)]:i==n[0]?[-200,0,(0,h.codePointSize)(i)]:null}let s=e.indexOf(this.pattern);if(0==s)return[0,0,this.pattern.length];let l=t.length,a=0;if(s<0){for(let r=0,o=Math.min(e.length,200);r<o&&a<l;){let o=(0,h.codePointAt)(e,r);o!=t[a]&&o!=n[a]||(i[a++]=r),r+=(0,h.codePointSize)(o)}if(a<l)return null}let c=0,u=0,f=!1,d=0,p=-1,m=-1,g=/[a-z]/.test(e),y=!0;for(let v=0,b=Math.min(e.length,200),w=0;v<b&&u<l;){let i=(0,h.codePointAt)(e,v);s<0&&(c<l&&i==t[c]&&(r[c++]=v),d<l&&(i==t[d]||i==n[d]?(0==d&&(p=v),m=v+1,d++):d=0));let a,b=i<255?i>=48&&i<=57||i>=97&&i<=122?2:i>=65&&i<=90?1:0:(a=(0,h.fromCodePoint)(i))!=a.toLowerCase()?1:a!=a.toUpperCase()?2:0;(!v||1==b&&g||0==w&&0!=b)&&(t[u]==i||n[u]==i&&(f=!0)?o[u++]=v:o.length&&(y=!1)),w=b,v+=(0,h.codePointSize)(i)}return u==l&&0==o[0]&&y?this.result((f?-200:0)-100,o,e):d==l&&0==p?[-200-e.length,0,m]:s>-1?[-700-e.length,s,s+this.pattern.length]:d==l?[-900-e.length,p,m]:u==l?this.result((f?-200:0)-100-700+(y?0:-1100),o,e):2==t.length?null:this.result((i[0]?-700:0)-200-1100,i,e)}result(e,t,n){let i=[e-n.length],r=1;for(let o of t){let e=o+(this.astral?(0,h.codePointSize)((0,h.codePointAt)(n,o)):1);r>1&&i[r-1]==o?i[r-1]=e:(i[r++]=o,i[r++]=e)}return i}}const Cr=h.Facet.define({combine:e=>(0,h.combineConfig)(e,{activateOnTyping:!0,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],compareCompletions:(e,t)=>e.label.localeCompare(t.label),interactionDelay:75},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>n=>Ar(e(n),t(n)),optionClass:(e,t)=>n=>Ar(e(n),t(n)),addToOptions:(e,t)=>e.concat(t)})});function Ar(e,t){return e?t?e+" "+t:e:t}function Er(e,t,n){if(e<=n)return{from:0,to:e};if(t<0&&(t=0),t<=e>>1){let e=Math.floor(t/n);return{from:e*n,to:(e+1)*n}}let i=Math.floor((e-t)/n);return{from:e-(i+1)*n,to:e-i*n}}class Or{constructor(e,t){this.view=e,this.stateField=t,this.info=null,this.placeInfo={read:()=>this.measureInfo(),write:e=>this.positionInfo(e),key:this},this.space=null,this.currentClass="";let n=e.state.field(t),{options:i,selected:r}=n.open,o=e.state.facet(Cr);this.optionContent=function(e){let t=e.addToOptions.slice();return e.icons&&t.push({render(e){let t=document.createElement("div");return t.classList.add("cm-completionIcon"),e.type&&t.classList.add(...e.type.split(/\s+/g).map((e=>"cm-completionIcon-"+e))),t.setAttribute("aria-hidden","true"),t},position:20}),t.push({render(e,t,n){let i=document.createElement("span");i.className="cm-completionLabel";let{label:r}=e,o=0;for(let s=1;s<n.length;){let e=n[s++],t=n[s++];e>o&&i.appendChild(document.createTextNode(r.slice(o,e)));let l=i.appendChild(document.createElement("span"));l.appendChild(document.createTextNode(r.slice(e,t))),l.className="cm-completionMatchedText",o=t}return o<r.length&&i.appendChild(document.createTextNode(r.slice(o))),i},position:50},{render(e){if(!e.detail)return null;let t=document.createElement("span");return t.className="cm-completionDetail",t.textContent=e.detail,t},position:80}),t.sort(((e,t)=>e.position-t.position)).map((e=>e.render))}(o),this.optionClass=o.optionClass,this.tooltipClass=o.tooltipClass,this.range=Er(i.length,r,o.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",(t=>{for(let n,r=t.target;r&&r!=this.dom;r=r.parentNode)if("LI"==r.nodeName&&(n=/-(\d+)$/.exec(r.id))&&+n[1]<i.length)return wr(e,i[+n[1]]),void t.preventDefault()})),this.list=this.dom.appendChild(this.createListBox(i,n.id,this.range)),this.list.addEventListener("scroll",(()=>{this.info&&this.view.requestMeasure(this.placeInfo)}))}mount(){this.updateSel()}update(e){var t,n,i;let r=e.state.field(this.stateField),o=e.startState.field(this.stateField);this.updateTooltipClass(e.state),r!=o&&(this.updateSel(),(null===(t=r.open)||void 0===t?void 0:t.disabled)!=(null===(n=o.open)||void 0===n?void 0:n.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!(null===(i=r.open)||void 0===i?void 0:i.disabled)))}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let e of this.currentClass.split(" "))e&&this.dom.classList.remove(e);for(let e of t.split(" "))e&&this.dom.classList.add(e);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfo)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;if((t.selected>-1&&t.selected<this.range.from||t.selected>=this.range.to)&&(this.range=Er(t.options.length,t.selected,this.view.state.facet(Cr).maxRenderedOptions),this.list.remove(),this.list=this.dom.appendChild(this.createListBox(t.options,e.id,this.range)),this.list.addEventListener("scroll",(()=>{this.info&&this.view.requestMeasure(this.placeInfo)}))),this.updateSelectedOption(t.selected)){this.info&&(this.info.remove(),this.info=null);let{completion:n}=t.options[t.selected],{info:i}=n;if(!i)return;let r="string"===typeof i?document.createTextNode(i):i(n);if(!r)return;"then"in r?r.then((t=>{t&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(t)})).catch((e=>(0,u.logException)(this.view.state,e,"completion info"))):this.addInfoPane(r)}}addInfoPane(e){let t=this.info=document.createElement("div");t.className="cm-tooltip cm-completionInfo",t.appendChild(e),this.dom.appendChild(t),this.view.requestMeasure(this.placeInfo)}updateSelectedOption(e){let t=null;for(let n=this.list.firstChild,i=this.range.from;n;n=n.nextSibling,i++)i==e?n.hasAttribute("aria-selected")||(n.setAttribute("aria-selected","true"),t=n):n.hasAttribute("aria-selected")&&n.removeAttribute("aria-selected");return t&&function(e,t){let n=e.getBoundingClientRect(),i=t.getBoundingClientRect();i.top<n.top?e.scrollTop-=n.top-i.top:i.bottom>n.bottom&&(e.scrollTop+=i.bottom-n.bottom)}(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),n=this.info.getBoundingClientRect(),i=e.getBoundingClientRect(),r=this.space;if(!r){let e=this.dom.ownerDocument.defaultView||window;r={left:0,top:0,right:e.innerWidth,bottom:e.innerHeight}}if(i.top>Math.min(r.bottom,t.bottom)-10||i.bottom<Math.max(r.top,t.top)+10)return null;let o,s=this.view.textDirection==u.Direction.RTL,l=s,a=!1,c="",h="",f=t.left-r.left,d=r.right-t.right;if(l&&f<Math.min(n.width,d)?l=!1:!l&&d<Math.min(n.width,f)&&(l=!0),n.width<=(l?f:d))c=Math.max(r.top,Math.min(i.top,r.bottom-n.height))-t.top+"px",o=Math.min(400,l?f:d)+"px";else{a=!0,o=Math.min(400,(s?t.right:r.right-t.left)-30)+"px";let e=r.bottom-t.bottom;e>=n.height||e>t.top?c=i.bottom-t.top+"px":h=t.bottom-i.top+"px"}return{top:c,bottom:h,maxWidth:o,class:a?s?"left-narrow":"right-narrow":l?"left":"right"}}positionInfo(e){this.info&&(e?(this.info.style.top=e.top,this.info.style.bottom=e.bottom,this.info.style.maxWidth=e.maxWidth,this.info.className="cm-tooltip cm-completionInfo cm-completionInfo-"+e.class):this.info.style.top="-1e6px")}createListBox(e,t,n){const i=document.createElement("ul");i.id=t,i.setAttribute("role","listbox"),i.setAttribute("aria-expanded","true"),i.setAttribute("aria-label",this.view.state.phrase("Completions"));for(let r=n.from;r<n.to;r++){let{completion:n,match:o}=e[r];const s=i.appendChild(document.createElement("li"));s.id=t+"-"+r,s.setAttribute("role","option");let l=this.optionClass(n);l&&(s.className=l);for(let e of this.optionContent){let t=e(n,this.view.state,o);t&&s.appendChild(t)}}return n.from&&i.classList.add("cm-completionListIncompleteTop"),n.to<e.length&&i.classList.add("cm-completionListIncompleteBottom"),i}}function Mr(e){return 100*(e.boost||0)+(e.apply?10:0)+(e.info?5:0)+(e.type?1:0)}class Dr{constructor(e,t,n,i,r,o){this.options=e,this.attrs=t,this.tooltip=n,this.timestamp=i,this.selected=r,this.disabled=o}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new Dr(this.options,Tr(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,n,i,r){let o=function(e,t){let n=[],i=0;for(let l of e)if(l.hasResult())if(!1===l.result.filter){let e=l.result.getMatch;for(let t of l.result.options){let r=[1e9-i++];if(e)for(let n of e(t))r.push(n);n.push(new gr(t,l,r))}}else{let e,i=new Sr(t.sliceDoc(l.from,l.to));for(let t of l.result.options)(e=i.match(t.label))&&(null!=t.boost&&(e[0]+=t.boost),n.push(new gr(t,l,e)))}let r=[],o=null,s=t.facet(Cr).compareCompletions;for(let l of n.sort(((e,t)=>t.match[0]-e.match[0]||s(e.completion,t.completion))))!o||o.label!=l.completion.label||o.detail!=l.completion.detail||null!=o.type&&null!=l.completion.type&&o.type!=l.completion.type||o.apply!=l.completion.apply?r.push(l):Mr(l.completion)>Mr(o)&&(r[r.length-1]=l),o=l.completion;return r}(e,t);if(!o.length)return i&&e.some((e=>1==e.state))?new Dr(i.options,i.attrs,i.tooltip,i.timestamp,i.selected,!0):null;let s=t.facet(Cr).selectOnOpen?0:-1;if(i&&i.selected!=s&&-1!=i.selected){let e=i.options[i.selected].completion;for(let t=0;t<o.length;t++)if(o[t].completion==e){s=t;break}}return new Dr(o,Tr(n,s),{pos:e.reduce(((e,t)=>t.hasResult()?Math.min(e,t.from):e),1e8),create:(l=jr,e=>new Or(e,l)),above:r.aboveCursor},i?i.timestamp:Date.now(),s,!1);var l}map(e){return new Dr(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class Pr{constructor(e,t,n){this.active=e,this.id=t,this.open=n}static start(){return new Pr(Br,"cm-ac-"+Math.floor(2e6*Math.random()).toString(36),null)}update(e){let{state:t}=e,n=t.facet(Cr),i=(n.override||t.languageDataAt("autocomplete",yr(t)).map(kr)).map((t=>(this.active.find((e=>e.source==t))||new Rr(t,this.active.some((e=>0!=e.state))?1:0)).update(e,n)));i.length==this.active.length&&i.every(((e,t)=>e==this.active[t]))&&(i=this.active);let r=this.open;r&&e.docChanged&&(r=r.map(e.changes)),e.selection||i.some((t=>t.hasResult()&&e.changes.touchesRange(t.from,t.to)))||!function(e,t){if(e==t)return!0;for(let n=0,i=0;;){for(;n<e.length&&!e[n].hasResult;)n++;for(;i<t.length&&!t[i].hasResult;)i++;let r=n==e.length,o=i==t.length;if(r||o)return r==o;if(e[n++].result!=t[i++].result)return!1}}(i,this.active)?r=Dr.build(i,t,this.id,r,n):r&&r.disabled&&!i.some((e=>1==e.state))&&(r=null),!r&&i.every((e=>1!=e.state))&&i.some((e=>e.hasResult()))&&(i=i.map((e=>e.hasResult()?new Rr(e.source,0):e)));for(let o of e.effects)o.is(Vr)&&(r=r&&r.setSelected(o.value,this.id));return i==this.active&&r==this.open?this:new Pr(i,this.id,r)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:Ir}}const Ir={"aria-autocomplete":"list"};function Tr(e,t){let n={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":e};return t>-1&&(n["aria-activedescendant"]=e+"-"+t),n}const Br=[];function Nr(e){return e.isUserEvent("input.type")?"input":e.isUserEvent("delete.backward")?"delete":null}class Rr{constructor(e,t,n=-1){this.source=e,this.state=t,this.explicitPos=n}hasResult(){return!1}update(e,t){let n=Nr(e),i=this;n?i=i.handleUserEvent(e,n,t):e.docChanged?i=i.handleChange(e):e.selection&&0!=i.state&&(i=new Rr(i.source,0));for(let r of e.effects)if(r.is(_r))i=new Rr(i.source,1,r.value?yr(e.state):-1);else if(r.is(Fr))i=new Rr(i.source,0);else if(r.is(Wr))for(let e of r.value)e.source==i.source&&(i=e);return i}handleUserEvent(e,t,n){return"delete"!=t&&n.activateOnTyping?new Rr(this.source,1):this.map(e.changes)}handleChange(e){return e.changes.touchesRange(yr(e.startState))?new Rr(this.source,0):this.map(e.changes)}map(e){return e.empty||this.explicitPos<0?this:new Rr(this.source,this.state,e.mapPos(this.explicitPos))}}class Lr extends Rr{constructor(e,t,n,i,r){super(e,2,t),this.result=n,this.from=i,this.to=r}hasResult(){return!0}handleUserEvent(e,t,n){var i;let r=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),s=yr(e.state);if((this.explicitPos<0?s<=r:s<this.from)||s>o||"delete"==t&&yr(e.startState)==this.from)return new Rr(this.source,"input"==t&&n.activateOnTyping?1:0);let l,a=this.explicitPos<0?-1:e.changes.mapPos(this.explicitPos);return function(e,t,n,i){if(!e)return!1;let r=t.sliceDoc(n,i);return"function"==typeof e?e(r,n,i,t):vr(e,!0).test(r)}(this.result.validFor,e.state,r,o)?new Lr(this.source,a,this.result,r,o):this.result.update&&(l=this.result.update(this.result,r,o,new dr(e.state,s,a>=0)))?new Lr(this.source,a,l,l.from,null!==(i=l.to)&&void 0!==i?i:yr(e.state)):new Rr(this.source,1,a)}handleChange(e){return e.changes.touchesRange(this.from,this.to)?new Rr(this.source,0):this.map(e.changes)}map(e){return e.empty?this:new Lr(this.source,this.explicitPos<0?-1:e.mapPos(this.explicitPos),this.result,e.mapPos(this.from),e.mapPos(this.to,1))}}const _r=h.StateEffect.define(),Fr=h.StateEffect.define(),Wr=h.StateEffect.define({map:(e,t)=>e.map((e=>e.map(t)))}),Vr=h.StateEffect.define(),jr=h.StateField.define({create:()=>Pr.start(),update:(e,t)=>e.update(t),provide:e=>[u.showTooltip.from(e,(e=>e.tooltip)),u.EditorView.contentAttributes.from(e,(e=>e.attrs))]});function qr(e,t="option"){return n=>{let i=n.state.field(jr,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp<n.state.facet(Cr).interactionDelay)return!1;let r,o=1;"page"==t&&(r=(0,u.getTooltip)(n,i.open.tooltip))&&(o=Math.max(2,Math.floor(r.dom.offsetHeight/r.dom.querySelector("li").offsetHeight)-1));let{length:s}=i.open.options,l=i.open.selected>-1?i.open.selected+o*(e?1:-1):e?0:s-1;return l<0?l="page"==t?0:s-1:l>=s&&(l="page"==t?s-1:0),n.dispatch({effects:Vr.of(l)}),!0}}class zr{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}}const Ur=u.ViewPlugin.fromClass(class{constructor(e){this.view=e,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.composing=0;for(let t of e.state.field(jr).active)1==t.state&&this.startQuery(t)}update(e){let t=e.state.field(jr);if(!e.selectionSet&&!e.docChanged&&e.startState.field(jr)==t)return;let n=e.transactions.some((e=>(e.selection||e.docChanged)&&!Nr(e)));for(let r=0;r<this.running.length;r++){let t=this.running[r];if(n||t.updates.length+e.transactions.length>50&&Date.now()-t.time>1e3){for(let e of t.context.abortListeners)try{e()}catch(i){(0,u.logException)(this.view.state,i)}t.context.abortListeners=null,this.running.splice(r--,1)}else t.updates.push(...e.transactions)}if(this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),this.debounceUpdate=t.active.some((e=>1==e.state&&!this.running.some((t=>t.active.source==e.source))))?setTimeout((()=>this.startUpdate()),50):-1,0!=this.composing)for(let r of e.transactions)"input"==Nr(r)?this.composing=2:2==this.composing&&r.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1;let{state:e}=this.view,t=e.field(jr);for(let n of t.active)1!=n.state||this.running.some((e=>e.active.source==n.source))||this.startQuery(n)}startQuery(e){let{state:t}=this.view,n=yr(t),i=new dr(t,n,e.explicitPos==n),r=new zr(e,i);this.running.push(r),Promise.resolve(e.source(i)).then((e=>{r.context.aborted||(r.done=e||null,this.scheduleAccept())}),(e=>{this.view.dispatch({effects:Fr.of(null)}),(0,u.logException)(this.view.state,e)}))}scheduleAccept(){this.running.every((e=>void 0!==e.done))?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout((()=>this.accept()),50))}accept(){var e;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let t=[],n=this.view.state.facet(Cr);for(let i=0;i<this.running.length;i++){let r=this.running[i];if(void 0===r.done)continue;if(this.running.splice(i--,1),r.done){let i=new Lr(r.active.source,r.active.explicitPos,r.done,r.done.from,null!==(e=r.done.to)&&void 0!==e?e:yr(r.updates.length?r.updates[0].startState:this.view.state));for(let e of r.updates)i=i.update(e,n);if(i.hasResult()){t.push(i);continue}}let o=this.view.state.field(jr).active.find((e=>e.source==r.active.source));if(o&&1==o.state)if(null==r.done){let e=new Rr(r.active.source,0);for(let t of r.updates)e=e.update(t,n);1!=e.state&&t.push(e)}else this.startQuery(o)}t.length&&this.view.dispatch({effects:Wr.of(t)})}},{eventHandlers:{blur(){let e=this.view.state.field(jr,!1);e&&e.tooltip&&this.view.state.facet(Cr).closeOnBlur&&this.view.dispatch({effects:Fr.of(null)})},compositionstart(){this.composing=1},compositionend(){3==this.composing&&setTimeout((()=>this.view.dispatch({effects:_r.of(!1)})),20),this.composing=0}}}),$r=u.EditorView.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer",padding:"1px 3px",lineHeight:1.2}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xb7\xb7\xb7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25cb'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25cc'"}},".cm-completionIcon-variable":{"&:after":{content:"'\ud835\udc65'"}},".cm-completionIcon-constant":{"&:after":{content:"'\ud835\udc36'"}},".cm-completionIcon-type":{"&:after":{content:"'\ud835\udc61'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222a'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25a1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\ud83d\udd11\ufe0e'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25a2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});const Hr={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Jr=h.StateEffect.define({map(e,t){let n=t.mapPos(e,-1,h.MapMode.TrackAfter);return null==n?void 0:n}}),Gr=h.StateEffect.define({map:(e,t)=>t.mapPos(e)}),Kr=new class extends h.RangeValue{};Kr.startSide=1,Kr.endSide=-1;const Qr=h.StateField.define({create:()=>h.RangeSet.empty,update(e,t){if(t.selection){let n=t.state.doc.lineAt(t.selection.main.head).from,i=t.startState.doc.lineAt(t.startState.selection.main.head).from;n!=t.changes.mapPos(i,-1)&&(e=h.RangeSet.empty)}e=e.map(t.changes);for(let n of t.effects)n.is(Jr)?e=e.update({add:[Kr.range(n.value,n.value+1)]}):n.is(Gr)&&(e=e.update({filter:e=>e!=n.value}));return e}});const Yr="()[]{}<>";function Xr(e){for(let t=0;t<Yr.length;t+=2)if(Yr.charCodeAt(t)==e)return Yr.charAt(t+1);return(0,h.fromCodePoint)(e<128?e:e+1)}function Zr(e,t){return e.languageDataAt("closeBrackets",t)[0]||Hr}const eo="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),to=u.EditorView.inputHandler.of(((e,t,n,i)=>{if((eo?e.composing:e.compositionStarted)||e.state.readOnly)return!1;let r=e.state.selection.main;if(i.length>2||2==i.length&&1==(0,h.codePointSize)((0,h.codePointAt)(i,0))||t!=r.from||n!=r.to)return!1;let o=function(e,t){let n=Zr(e,e.selection.main.head),i=n.brackets||Hr.brackets;for(let r of i){let o=Xr((0,h.codePointAt)(r,0));if(t==r)return o==r?lo(e,r,i.indexOf(r+r+r)>-1,n):oo(e,r,o,n.before||Hr.before);if(t==o&&io(e,e.selection.main.from))return so(e,r,o)}return null}(e.state,i);return!!o&&(e.dispatch(o),!0)})),no=[{key:"Backspace",run:({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Zr(e,e.selection.main.head).brackets||Hr.brackets,i=null,r=e.changeByRange((t=>{if(t.empty){let i=function(e,t){let n=e.sliceString(t-2,t);return(0,h.codePointSize)((0,h.codePointAt)(n,0))==n.length?n:n.slice(1)}(e.doc,t.head);for(let r of n)if(r==i&&ro(e.doc,t.head)==Xr((0,h.codePointAt)(r,0)))return{changes:{from:t.head-r.length,to:t.head+r.length},range:h.EditorSelection.cursor(t.head-r.length)}}return{range:i=t}}));return i||t(e.update(r,{scrollIntoView:!0,userEvent:"delete.backward"})),!i}}];function io(e,t){let n=!1;return e.field(Qr).between(0,e.doc.length,(e=>{e==t&&(n=!0)})),n}function ro(e,t){let n=e.sliceString(t,t+2);return n.slice(0,(0,h.codePointSize)((0,h.codePointAt)(n,0)))}function oo(e,t,n,i){let r=null,o=e.changeByRange((o=>{if(!o.empty)return{changes:[{insert:t,from:o.from},{insert:n,from:o.to}],effects:Jr.of(o.to+t.length),range:h.EditorSelection.range(o.anchor+t.length,o.head+t.length)};let s=ro(e.doc,o.head);return!s||/\s/.test(s)||i.indexOf(s)>-1?{changes:{insert:t+n,from:o.head},effects:Jr.of(o.head+t.length),range:h.EditorSelection.cursor(o.head+t.length)}:{range:r=o}}));return r?null:e.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function so(e,t,n){let i=null,r=e.selection.ranges.map((t=>t.empty&&ro(e.doc,t.head)==n?h.EditorSelection.cursor(t.head+n.length):i=t));return i?null:e.update({selection:h.EditorSelection.create(r,e.selection.mainIndex),scrollIntoView:!0,effects:e.selection.ranges.map((({from:e})=>Gr.of(e)))})}function lo(e,t,n,i){let r=i.stringPrefixes||Hr.stringPrefixes,o=null,s=e.changeByRange((i=>{if(!i.empty)return{changes:[{insert:t,from:i.from},{insert:t,from:i.to}],effects:Jr.of(i.to+t.length),range:h.EditorSelection.range(i.anchor+t.length,i.head+t.length)};let s,l=i.head,a=ro(e.doc,l);if(a==t){if(ao(e,l))return{changes:{insert:t+t,from:l},effects:Jr.of(l+t.length),range:h.EditorSelection.cursor(l+t.length)};if(io(e,l)){let i=n&&e.sliceDoc(l,l+3*t.length)==t+t+t;return{range:h.EditorSelection.cursor(l+t.length*(i?3:1)),effects:Gr.of(l)}}}else{if(n&&e.sliceDoc(l-2*t.length,l)==t+t&&(s=co(e,l-2*t.length,r))>-1&&ao(e,s))return{changes:{insert:t+t+t+t,from:l},effects:Jr.of(l+t.length),range:h.EditorSelection.cursor(l+t.length)};if(e.charCategorizer(l)(a)!=h.CharCategory.Word&&co(e,l,r)>-1&&!function(e,t,n,i){let r=ke(e).resolveInner(t,-1),o=i.reduce(((e,t)=>Math.max(e,t.length)),0);for(let s=0;s<5;s++){let s=e.sliceDoc(r.from,Math.min(r.to,r.from+n.length+o)),l=s.indexOf(n);if(!l||l>-1&&i.indexOf(s.slice(0,l))>-1){let t=r.firstChild;for(;t&&t.from==r.from&&t.to-t.from>n.length+l;){if(e.sliceDoc(t.to-n.length,t.to)==n)return!1;t=t.firstChild}return!0}let a=r.to==t&&r.parent;if(!a)break;r=a}return!1}(e,l,t,r))return{changes:{insert:t+t,from:l},effects:Jr.of(l+t.length),range:h.EditorSelection.cursor(l+t.length)}}return{range:o=i}}));return o?null:e.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function ao(e,t){let n=ke(e).resolveInner(t+1);return n.parent&&n.from==t}function co(e,t,n){let i=e.charCategorizer(t);if(i(e.sliceDoc(t-1,t))!=h.CharCategory.Word)return t;for(let r of n){let n=t-r.length;if(e.sliceDoc(n,t)==r&&i(e.sliceDoc(n-1,n))!=h.CharCategory.Word)return n}return-1}const ho=[{key:"Ctrl-Space",run:e=>!!e.state.field(jr,!1)&&(e.dispatch({effects:_r.of(!0)}),!0)},{key:"Escape",run:e=>{let t=e.state.field(jr,!1);return!(!t||!t.active.some((e=>0!=e.state)))&&(e.dispatch({effects:Fr.of(null)}),!0)}},{key:"ArrowDown",run:qr(!0)},{key:"ArrowUp",run:qr(!1)},{key:"PageDown",run:qr(!0,"page")},{key:"PageUp",run:qr(!1,"page")},{key:"Enter",run:e=>{let t=e.state.field(jr,!1);return!(e.state.readOnly||!t||!t.open||t.open.selected<0||Date.now()-t.open.timestamp<e.state.facet(Cr).interactionDelay)&&(t.open.disabled||wr(e,t.open.options[t.open.selected]),!0)}}],uo=h.Prec.highest(u.keymap.computeN([Cr],(e=>e.facet(Cr).defaultKeymap?[ho]:[])));class fo{constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}}class po{constructor(e,t,n){this.diagnostics=e,this.panel=t,this.selected=n}static init(e,t,n){let i=e,r=n.facet(Mo).markerFilter;r&&(i=r(i));let o=u.Decoration.set(i.map((e=>e.from==e.to||e.from==e.to-1&&n.doc.lineAt(e.from).to==e.from?u.Decoration.widget({widget:new Io(e),diagnostic:e}).range(e.from):u.Decoration.mark({attributes:{class:"cm-lintRange cm-lintRange-"+e.severity},diagnostic:e}).range(e.from,e.to))),!0);return new po(o,t,mo(o))}}function mo(e,t=null,n=0){let i=null;return e.between(n,1e9,((e,n,{spec:r})=>{if(!t||r.diagnostic==t)return i=new fo(e,n,r.diagnostic),!1})),i}function go(e,t){return!(!e.effects.some((e=>e.is(vo)))&&!e.changes.touchesRange(t.pos))}function yo(e,t){return e.field(xo,!1)?t:t.concat(h.StateEffect.appendConfig.of([xo,u.EditorView.decorations.compute([xo],(e=>{let{selected:t,panel:n}=e.field(xo);return t&&n&&t.from!=t.to?u.Decoration.set([ko.range(t.from,t.to)]):u.Decoration.none})),(0,u.hoverTooltip)(So,{hideOn:go}),Lo]))}const vo=h.StateEffect.define(),bo=h.StateEffect.define(),wo=h.StateEffect.define(),xo=h.StateField.define({create:()=>new po(u.Decoration.none,null,null),update(e,t){if(t.docChanged){let n=e.diagnostics.map(t.changes),i=null;if(e.selected){let r=t.changes.mapPos(e.selected.from,1);i=mo(n,e.selected.diagnostic,r)||mo(n,null,r)}e=new po(n,e.panel,i)}for(let n of t.effects)n.is(vo)?e=po.init(n.value,e.panel,t.state):n.is(bo)?e=new po(e.diagnostics,n.value?Bo.open:null,e.selected):n.is(wo)&&(e=new po(e.diagnostics,e.panel,n.value));return e},provide:e=>[u.showPanel.from(e,(e=>e.panel)),u.EditorView.decorations.from(e,(e=>e.diagnostics))]});const ko=u.Decoration.mark({class:"cm-lintRange cm-lintRange-active"});function So(e,t,n){let{diagnostics:i}=e.state.field(xo),r=[],o=2e8,s=0;i.between(t-(n<0?1:0),t+(n>0?1:0),((e,i,{spec:l})=>{t>=e&&t<=i&&(e==i||(t>e||n>0)&&(t<i||n<0))&&(r.push(l.diagnostic),o=Math.min(e,o),s=Math.max(i,s))}));let l=e.state.facet(Mo).tooltipFilter;return l&&(r=l(r)),r.length?{pos:o,end:s,above:e.state.doc.lineAt(o).to<s,create:()=>({dom:Co(e,r)})}:null}function Co(e,t){return fi("ul",{class:"cm-tooltip-lint"},t.map((t=>Po(e,t,!1))))}const Ao=e=>{let t=e.state.field(xo,!1);return!(!t||!t.panel)&&(e.dispatch({effects:bo.of(!1)}),!0)},Eo=[{key:"Mod-Shift-m",run:e=>{let t=e.state.field(xo,!1);t&&t.panel||e.dispatch({effects:yo(e.state,[bo.of(!0)])});let n=(0,u.getPanel)(e,Bo.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},preventDefault:!0},{key:"F8",run:e=>{let t=e.state.field(xo,!1);if(!t)return!1;let n=e.state.selection.main,i=t.diagnostics.iter(n.to+1);return!(!i.value&&(i=t.diagnostics.iter(0),!i.value||i.from==n.from&&i.to==n.to))&&(e.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),!0)}}],Oo=u.ViewPlugin.fromClass(class{constructor(e){this.view=e,this.timeout=-1,this.set=!0;let{delay:t}=e.state.facet(Mo);this.lintTime=Date.now()+t,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,t)}run(){let e=Date.now();if(e<this.lintTime-10)setTimeout(this.run,this.lintTime-e);else{this.set=!1;let{state:e}=this.view,{sources:t}=e.facet(Mo);Promise.all(t.map((e=>Promise.resolve(e(this.view))))).then((t=>{let n=t.reduce(((e,t)=>e.concat(t)));this.view.state.doc==e.doc&&this.view.dispatch(function(e,t){return{effects:yo(e,[vo.of(t)])}}(this.view.state,n))}),(e=>{(0,u.logException)(this.view.state,e)}))}}update(e){let t=e.state.facet(Mo);(e.docChanged||t!=e.startState.facet(Mo))&&(this.lintTime=Date.now()+t.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,t.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}}),Mo=h.Facet.define({combine:e=>Object.assign({sources:e.map((e=>e.source))},(0,h.combineConfig)(e.map((e=>e.config)),{delay:750,markerFilter:null,tooltipFilter:null})),enables:Oo});function Do(e){let t=[];if(e)e:for(let{name:n}of e){for(let e=0;e<n.length;e++){let i=n[e];if(/[a-zA-Z]/.test(i)&&!t.some((e=>e.toLowerCase()==i.toLowerCase()))){t.push(i);continue e}}t.push("")}return t}function Po(e,t,n){var i;let r=n?Do(t.actions):[];return fi("li",{class:"cm-diagnostic cm-diagnostic-"+t.severity},fi("span",{class:"cm-diagnosticText"},t.renderMessage?t.renderMessage():t.message),null===(i=t.actions)||void 0===i?void 0:i.map(((n,i)=>{let o=i=>{i.preventDefault();let r=mo(e.state.field(xo).diagnostics,t);r&&n.apply(e,r.from,r.to)},{name:s}=n,l=r[i]?s.indexOf(r[i]):-1,a=l<0?s:[s.slice(0,l),fi("u",s.slice(l,l+1)),s.slice(l+1)];return fi("button",{type:"button",class:"cm-diagnosticAction",onclick:o,onmousedown:o,"aria-label":` Action: ${s}${l<0?"":` (access key "${r[i]})"`}.`},a)})),t.source&&fi("div",{class:"cm-diagnosticSource"},t.source))}class Io extends u.WidgetType{constructor(e){super(),this.diagnostic=e}eq(e){return e.diagnostic==this.diagnostic}toDOM(){return fi("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class To{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(4294967295*Math.random()).toString(16),this.dom=Po(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class Bo{constructor(e){this.view=e,this.items=[];this.list=fi("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:t=>{if(27==t.keyCode)Ao(this.view),this.view.focus();else if(38==t.keyCode||33==t.keyCode)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(40==t.keyCode||34==t.keyCode)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(36==t.keyCode)this.moveSelection(0);else if(35==t.keyCode)this.moveSelection(this.items.length-1);else if(13==t.keyCode)this.view.focus();else{if(!(t.keyCode>=65&&t.keyCode<=90&&this.selectedIndex>=0))return;{let{diagnostic:n}=this.items[this.selectedIndex],i=Do(n.actions);for(let r=0;r<i.length;r++)if(i[r].toUpperCase().charCodeAt(0)==t.keyCode){let t=mo(this.view.state.field(xo).diagnostics,n);t&&n.actions[r].apply(e,t.from,t.to)}}}t.preventDefault()},onclick:e=>{for(let t=0;t<this.items.length;t++)this.items[t].dom.contains(e.target)&&this.moveSelection(t)}}),this.dom=fi("div",{class:"cm-panel-lint"},this.list,fi("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>Ao(this.view)},"\xd7")),this.update()}get selectedIndex(){let e=this.view.state.field(xo).selected;if(!e)return-1;for(let t=0;t<this.items.length;t++)if(this.items[t].diagnostic==e.diagnostic)return t;return-1}update(){let{diagnostics:e,selected:t}=this.view.state.field(xo),n=0,i=!1,r=null;for(e.between(0,this.view.state.doc.length,((e,o,{spec:s})=>{let l,a=-1;for(let t=n;t<this.items.length;t++)if(this.items[t].diagnostic==s.diagnostic){a=t;break}a<0?(l=new To(this.view,s.diagnostic),this.items.splice(n,0,l),i=!0):(l=this.items[a],a>n&&(this.items.splice(n,a-n),i=!0)),t&&l.diagnostic==t.diagnostic?l.dom.hasAttribute("aria-selected")||(l.dom.setAttribute("aria-selected","true"),r=l):l.dom.hasAttribute("aria-selected")&&l.dom.removeAttribute("aria-selected"),n++}));n<this.items.length&&!(1==this.items.length&&this.items[0].diagnostic.from<0);)i=!0,this.items.pop();0==this.items.length&&(this.items.push(new To(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),i=!0),r?(this.list.setAttribute("aria-activedescendant",r.id),this.view.requestMeasure({key:this,read:()=>({sel:r.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:e,panel:t})=>{e.top<t.top?this.list.scrollTop-=t.top-e.top:e.bottom>t.bottom&&(this.list.scrollTop+=e.bottom-t.bottom)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),i&&this.sync()}sync(){let e=this.list.firstChild;function t(){let t=e;e=t.nextSibling,t.remove()}for(let n of this.items)if(n.dom.parentNode==this.list){for(;e!=n.dom;)t();e=n.dom.nextSibling}else this.list.insertBefore(n.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=mo(this.view.state.field(xo).diagnostics,this.items[e].diagnostic);t&&this.view.dispatch({selection:{anchor:t.from,head:t.to},scrollIntoView:!0,effects:wo.of(t)})}static open(e){return new Bo(e)}}function No(e,t='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${t}>${encodeURIComponent(e)}</svg>')`}function Ro(e){return No(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${e}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const Lo=u.EditorView.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Ro("#d11")},".cm-lintRange-warning":{backgroundImage:Ro("orange")},".cm-lintRange-info":{backgroundImage:Ro("#999")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});class _o extends u.GutterMarker{constructor(e){super(),this.diagnostics=e,this.severity=e.reduce(((e,t)=>{let n=t.severity;return"error"==n||"warning"==n&&"info"==e?n:e}),"info")}toDOM(e){let t=document.createElement("div");t.className="cm-lint-marker cm-lint-marker-"+this.severity;let n=this.diagnostics,i=e.state.facet(lintGutterConfig).tooltipFilter;return i&&i(n),n.length&&(t.onmouseover=()=>function(e,t,n){function i(){let i=e.elementAtHeight(t.getBoundingClientRect().top+5-e.documentTop);e.coordsAtPos(i.from)&&e.dispatch({effects:setLintGutterTooltip.of({pos:i.from,above:!1,create:()=>({dom:Co(e,n),getCoords:()=>t.getBoundingClientRect()})})}),t.onmouseout=t.onmousemove=null,function(e,t){let n=i=>{let r=t.getBoundingClientRect();if(!(i.clientX>r.left-10&&i.clientX<r.right+10&&i.clientY>r.top-10&&i.clientY<r.bottom+10)){for(let e=i.target;e;e.parentNode)if(1==e.nodeType&&e.classList.contains("cm-tooltip-lint"))return;window.removeEventListener("mousemove",n),e.state.field(lintGutterTooltip)&&e.dispatch({effects:setLintGutterTooltip.of(null)})}};window.addEventListener("mousemove",n)}(e,t)}let{hoverTime:r}=e.state.facet(lintGutterConfig),o=setTimeout(i,r);t.onmouseout=()=>{clearTimeout(o),t.onmouseout=t.onmousemove=null},t.onmousemove=()=>{clearTimeout(o),setTimeout(i,r)}}(e,t,n)),t}}var Fo=function(e){void 0===e&&(e={});var t=[];!1!==e.closeBracketsKeymap&&(t=t.concat(no)),!1!==e.defaultKeymap&&(t=t.concat(hi)),!1!==e.searchKeymap&&(t=t.concat(sr)),!1!==e.historyKeymap&&(t=t.concat(fn)),!1!==e.foldKeymap&&(t=t.concat(rt)),!1!==e.completionKeymap&&(t=t.concat(ho)),!1!==e.lintKeymap&&(t=t.concat(Eo));var n=[];return!1!==e.lineNumbers&&n.push((0,u.lineNumbers)()),!1!==e.highlightActiveLineGutter&&n.push((0,u.highlightActiveLineGutter)()),!1!==e.highlightSpecialChars&&n.push((0,u.highlightSpecialChars)()),!1!==e.history&&n.push(Kt()),!1!==e.foldGutter&&n.push(function(e={}){let t=Object.assign(Object.assign({},ct),e),n=new ht(t,!0),i=new ht(t,!1),r=u.ViewPlugin.fromClass(class{constructor(e){this.from=e.viewport.from,this.markers=this.buildMarkers(e)}update(e){(e.docChanged||e.viewportChanged||e.startState.facet(Ie)!=e.state.facet(Ie)||e.startState.field(Ze,!1)!=e.state.field(Ze,!1)||ke(e.startState)!=ke(e.state)||t.foldingChanged(e))&&(this.markers=this.buildMarkers(e.view))}buildMarkers(e){let t=new h.RangeSetBuilder;for(let r of e.viewportLineBlocks){let o=et(e.state,r.from,r.to)?i:Ge(e.state,r.from,r.to)?n:null;o&&t.add(r.from,r.from,o)}return t.finish()}}),{domEventHandlers:o}=t;return[r,(0,u.gutter)({class:"cm-foldGutter",markers(e){var t;return(null===(t=e.plugin(r))||void 0===t?void 0:t.markers)||h.RangeSet.empty},initialSpacer:()=>new ht(t,!1),domEventHandlers:Object.assign(Object.assign({},o),{click:(e,t,n)=>{if(o.click&&o.click(e,t,n))return!0;let i=et(e.state,t.from,t.to);if(i)return e.dispatch({effects:Ye.of(i)}),!0;let r=Ge(e.state,t.from,t.to);return!!r&&(e.dispatch({effects:Qe.of(r)}),!0)}})}),lt()]}()),!1!==e.drawSelection&&n.push((0,u.drawSelection)()),!1!==e.dropCursor&&n.push((0,u.dropCursor)()),!1!==e.allowMultipleSelections&&n.push(h.EditorState.allowMultipleSelections.of(!0)),!1!==e.indentOnInput&&n.push(h.EditorState.transactionFilter.of((e=>{if(!e.docChanged||!e.isUserEvent("input.type")&&!e.isUserEvent("input.complete"))return e;let t=e.startState.languageDataAt("indentOnInput",e.startState.selection.main.head);if(!t.length)return e;let n=e.newDoc,{head:i}=e.newSelection.main,r=n.lineAt(i);if(i>r.from+200)return e;let o=n.sliceString(r.from,i);if(!t.some((e=>e.test(o))))return e;let{state:s}=e,l=-1,a=[];for(let{head:c}of s.selection.ranges){let e=s.doc.lineAt(c);if(e.from==l)continue;l=e.from;let t=Le(s,e.from);if(null==t)continue;let n=/^\s*/.exec(e.text)[0],i=Re(s,t);n!=i&&a.push({from:e.from,to:e.from+n.length,insert:i})}return a.length?[e,{changes:a,sequential:!0}]:e}))),!1!==e.syntaxHighlighting&&n.push(gt(bt,{fallback:!0})),!1!==e.bracketMatching&&n.push(function(e={}){return[kt.of(e),Ot]}()),!1!==e.closeBrackets&&n.push([to,Qr]),!1!==e.autocompletion&&n.push(function(e={}){return[jr,Cr.of(e),Ur,uo,$r]}()),!1!==e.rectangularSelection&&n.push((0,u.rectangularSelection)()),!1!==e.crosshairCursor&&n.push((0,u.crosshairCursor)()),!1!==e.highlightActiveLine&&n.push((0,u.highlightActiveLine)()),!1!==e.highlightSelectionMatches&&n.push(function(e){let t=[Bi,Ti];return e&&t.push(Mi.of(e)),t}()),e.tabSize&&"number"===typeof e.tabSize&&n.push(Be.of(" ".repeat(e.tabSize))),n.concat([u.keymap.of(t.flat())]).filter(Boolean)},Wo=function(e){void 0===e&&(e={});var t=[];!1!==e.defaultKeymap&&(t=t.concat(hi)),!1!==e.historyKeymap&&(t=t.concat(fn));var n=[];return!1!==e.highlightSpecialChars&&n.push((0,u.highlightSpecialChars)()),!1!==e.history&&n.push(Kt()),!1!==e.drawSelection&&n.push((0,u.drawSelection)()),!1!==e.syntaxHighlighting&&n.push(gt(bt,{fallback:!0})),n.concat([u.keymap.of(t.flat())]).filter(Boolean)},Vo=s(362),jo=function(e){return{line:e.state.doc.lineAt(e.state.selection.main.from),lineCount:e.state.doc.lines,lineBreak:e.state.lineBreak,length:e.state.doc.length,readOnly:e.state.readOnly,tabSize:e.state.tabSize,selection:e.state.selection,selectionAsSingle:e.state.selection.asSingle().main,ranges:e.state.selection.ranges,selectionCode:e.state.sliceDoc(e.state.selection.main.from,e.state.selection.main.to),selections:e.state.selection.ranges.map((function(t){return e.state.sliceDoc(t.from,t.to)})),selectedText:e.state.selection.ranges.some((function(e){return!e.empty}))}};function qo(e){var t=e.value,n=e.selection,i=e.onChange,r=e.onStatistics,s=e.onCreateEditor,l=e.onUpdate,a=e.extensions,f=void 0===a?[]:a,d=e.autoFocus,p=e.theme,m=void 0===p?"light":p,g=e.height,y=void 0===g?"":g,v=e.minHeight,b=void 0===v?"":v,w=e.maxHeight,x=void 0===w?"":w,k=e.placeholder,S=void 0===k?"":k,C=e.width,A=void 0===C?"":C,E=e.minWidth,O=void 0===E?"":E,M=e.maxWidth,D=void 0===M?"":M,P=e.editable,I=void 0===P||P,T=e.readOnly,B=void 0!==T&&T,N=e.indentWithTab,R=void 0===N||N,L=e.basicSetup,_=void 0===L||L,F=e.root,W=e.initialState,V=c((0,o.useState)(),2),j=V[0],q=V[1],z=c((0,o.useState)(),2),U=z[0],$=z[1],H=c((0,o.useState)(),2),J=H[0],G=H[1],K=u.EditorView.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),Q=u.EditorView.theme({"&":{height:y,minHeight:b,maxHeight:x,width:A,minWidth:O,maxWidth:D}}),Y=[u.EditorView.updateListener.of((function(e){if(e.docChanged&&"function"===typeof i){var t=e.state.doc.toString();i(t,e)}r&&r(jo(e))})),Q];switch(R&&Y.unshift(u.keymap.of([ui])),_&&("boolean"===typeof _?Y.unshift(Fo()):Y.unshift(Fo(_))),S&&Y.unshift((0,u.placeholder)(S)),m){case"light":Y.push(K);break;case"dark":Y.push(Vo.oneDark);break;case"none":break;default:Y.push(m)}return!1===I&&Y.push(u.EditorView.editable.of(!1)),B&&Y.push(h.EditorState.readOnly.of(!0)),l&&"function"===typeof l&&Y.push(u.EditorView.updateListener.of(l)),Y=Y.concat(f),(0,o.useEffect)((function(){if(j&&!J){var e={doc:t,selection:n,extensions:Y},i=W?h.EditorState.fromJSON(W.json,e,W.fields):h.EditorState.create(e);if(G(i),!U){var r=new u.EditorView({state:i,parent:j,root:F});$(r),s&&s(r,i)}}return function(){U&&(G(void 0),$(void 0))}}),[j,J]),(0,o.useEffect)((function(){return q(e.container)}),[e.container]),(0,o.useEffect)((function(){return function(){U&&(U.destroy(),$(void 0))}}),[U]),(0,o.useEffect)((function(){d&&U&&U.focus()}),[d,U]),(0,o.useEffect)((function(){U&&U.dispatch({effects:h.StateEffect.reconfigure.of(Y)})}),[m,f,y,b,x,A,O,D,S,I,B,R,_,i,l]),(0,o.useEffect)((function(){if(void 0!==t){var e=U?U.state.doc.toString():"";U&&t!==e&&U.dispatch({changes:{from:0,to:e.length,insert:t||""}})}}),[t,U]),{state:J,setState:G,view:U,setView:$,container:j,setContainer:q}}var zo=s(605),Uo=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],$o=(0,o.forwardRef)((function(e,t){var s=e.className,l=e.value,a=void 0===l?"":l,c=e.selection,h=e.extensions,u=void 0===h?[]:h,f=e.onChange,d=e.onStatistics,p=e.onCreateEditor,m=e.onUpdate,g=e.autoFocus,y=e.theme,v=void 0===y?"light":y,b=e.height,w=e.minHeight,x=e.maxHeight,k=e.width,S=e.minWidth,C=e.maxWidth,A=e.basicSetup,E=e.placeholder,O=e.indentWithTab,M=e.editable,D=e.readOnly,P=e.root,I=e.initialState,T=r(e,Uo),B=(0,o.useRef)(null),N=qo({container:B.current,root:P,value:a,autoFocus:g,theme:v,height:b,minHeight:w,maxHeight:x,width:k,minWidth:S,maxWidth:C,basicSetup:A,placeholder:E,indentWithTab:O,editable:M,readOnly:D,selection:c,onChange:f,onStatistics:d,onCreateEditor:p,onUpdate:m,extensions:u,initialState:I}),R=N.state,L=N.view,_=N.container;N.setContainer;if((0,o.useImperativeHandle)(t,(function(){return{editor:B.current,state:R,view:L}}),[B,_,R,L]),"string"!==typeof a)throw new Error("value must be typeof string but got ".concat(typeof a));var F="string"===typeof v?"cm-theme-".concat(v):"cm-theme";return(0,zo.jsx)("div",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({ref:B,className:"".concat(F).concat(s?" ".concat(s):"")},T))}));$o.displayName="CodeMirror";const Ho=$o})(),l})()));
@@ -142,6 +142,9 @@ export function useCodeMirror(props) {
142
142
  // eslint-disable-next-line react-hooks/exhaustive-deps
143
143
  }, [theme, extensions, height, minHeight, maxHeight, width, minWidth, maxWidth, placeholderStr, editable, readOnly, defaultIndentWithTab, defaultBasicSetup, onChange, onUpdate]);
144
144
  useEffect(() => {
145
+ if (value === undefined) {
146
+ return;
147
+ }
145
148
  var currentValue = view ? view.state.doc.toString() : '';
146
149
  if (view && value !== currentValue) {
147
150
  view.dispatch({
@@ -81,7 +81,7 @@
81
81
  "../src/useCodeMirror.ts"
82
82
  ],
83
83
  "sourcesContent": [
84
- "import { useEffect, useState } from 'react';\nimport { EditorState, StateEffect } from '@codemirror/state';\nimport { indentWithTab } from '@codemirror/commands';\nimport { EditorView, keymap, ViewUpdate, placeholder } from '@codemirror/view';\nimport { basicSetup } from '@uiw/codemirror-extensions-basic-setup';\nimport { oneDark } from '@codemirror/theme-one-dark';\nimport { getStatistics } from './utils';\nimport { ReactCodeMirrorProps } from '.';\n\nexport interface UseCodeMirror extends ReactCodeMirrorProps {\n container?: HTMLDivElement | null;\n}\n\nexport function useCodeMirror(props: UseCodeMirror) {\n const {\n value,\n selection,\n onChange,\n onStatistics,\n onCreateEditor,\n onUpdate,\n extensions = [],\n autoFocus,\n theme = 'light',\n height = '',\n minHeight = '',\n maxHeight = '',\n placeholder: placeholderStr = '',\n width = '',\n minWidth = '',\n maxWidth = '',\n editable = true,\n readOnly = false,\n indentWithTab: defaultIndentWithTab = true,\n basicSetup: defaultBasicSetup = true,\n root,\n initialState,\n } = props;\n const [container, setContainer] = useState<HTMLDivElement>();\n const [view, setView] = useState<EditorView>();\n const [state, setState] = useState<EditorState>();\n const defaultLightThemeOption = EditorView.theme(\n {\n '&': {\n backgroundColor: '#fff',\n },\n },\n {\n dark: false,\n },\n );\n const defaultThemeOption = EditorView.theme({\n '&': {\n height,\n minHeight,\n maxHeight,\n width,\n minWidth,\n maxWidth,\n },\n });\n const updateListener = EditorView.updateListener.of((vu: ViewUpdate) => {\n if (vu.docChanged && typeof onChange === 'function') {\n const doc = vu.state.doc;\n const value = doc.toString();\n onChange(value, vu);\n }\n onStatistics && onStatistics(getStatistics(vu));\n });\n\n let getExtensions = [updateListener, defaultThemeOption];\n if (defaultIndentWithTab) {\n getExtensions.unshift(keymap.of([indentWithTab]));\n }\n if (defaultBasicSetup) {\n if (typeof defaultBasicSetup === 'boolean') {\n getExtensions.unshift(basicSetup());\n } else {\n getExtensions.unshift(basicSetup(defaultBasicSetup));\n }\n }\n\n if (placeholderStr) {\n getExtensions.unshift(placeholder(placeholderStr));\n }\n\n switch (theme) {\n case 'light':\n getExtensions.push(defaultLightThemeOption);\n break;\n case 'dark':\n getExtensions.push(oneDark);\n break;\n case 'none':\n break;\n default:\n getExtensions.push(theme);\n break;\n }\n\n if (editable === false) {\n getExtensions.push(EditorView.editable.of(false));\n }\n if (readOnly) {\n getExtensions.push(EditorState.readOnly.of(true));\n }\n\n if (onUpdate && typeof onUpdate === 'function') {\n getExtensions.push(EditorView.updateListener.of(onUpdate));\n }\n getExtensions = getExtensions.concat(extensions);\n\n useEffect(() => {\n if (container && !state) {\n const config = {\n doc: value,\n selection,\n extensions: getExtensions,\n };\n const stateCurrent = initialState\n ? EditorState.fromJSON(initialState.json, config, initialState.fields)\n : EditorState.create(config);\n setState(stateCurrent);\n if (!view) {\n const viewCurrent = new EditorView({\n state: stateCurrent,\n parent: container,\n root,\n });\n setView(viewCurrent);\n onCreateEditor && onCreateEditor(viewCurrent, stateCurrent);\n }\n }\n return () => {\n if (view) {\n setState(undefined);\n setView(undefined);\n }\n };\n }, [container, state]);\n\n useEffect(() => setContainer(props.container!), [props.container]);\n\n useEffect(\n () => () => {\n if (view) {\n view.destroy();\n setView(undefined);\n }\n },\n [view],\n );\n\n useEffect(() => {\n if (autoFocus && view) {\n view.focus();\n }\n }, [autoFocus, view]);\n\n useEffect(() => {\n if (view) {\n view.dispatch({ effects: StateEffect.reconfigure.of(getExtensions) });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n theme,\n extensions,\n height,\n minHeight,\n maxHeight,\n width,\n minWidth,\n maxWidth,\n placeholderStr,\n editable,\n readOnly,\n defaultIndentWithTab,\n defaultBasicSetup,\n onChange,\n onUpdate,\n ]);\n\n useEffect(() => {\n const currentValue = view ? view.state.doc.toString() : '';\n if (view && value !== currentValue) {\n view.dispatch({\n changes: { from: 0, to: currentValue.length, insert: value || '' },\n });\n }\n }, [value, view]);\n\n return { state, setState, view, setView, container, setContainer };\n}\n"
84
+ "import { useEffect, useState } from 'react';\nimport { EditorState, StateEffect } from '@codemirror/state';\nimport { indentWithTab } from '@codemirror/commands';\nimport { EditorView, keymap, ViewUpdate, placeholder } from '@codemirror/view';\nimport { basicSetup } from '@uiw/codemirror-extensions-basic-setup';\nimport { oneDark } from '@codemirror/theme-one-dark';\nimport { getStatistics } from './utils';\nimport { ReactCodeMirrorProps } from '.';\n\nexport interface UseCodeMirror extends ReactCodeMirrorProps {\n container?: HTMLDivElement | null;\n}\n\nexport function useCodeMirror(props: UseCodeMirror) {\n const {\n value,\n selection,\n onChange,\n onStatistics,\n onCreateEditor,\n onUpdate,\n extensions = [],\n autoFocus,\n theme = 'light',\n height = '',\n minHeight = '',\n maxHeight = '',\n placeholder: placeholderStr = '',\n width = '',\n minWidth = '',\n maxWidth = '',\n editable = true,\n readOnly = false,\n indentWithTab: defaultIndentWithTab = true,\n basicSetup: defaultBasicSetup = true,\n root,\n initialState,\n } = props;\n const [container, setContainer] = useState<HTMLDivElement>();\n const [view, setView] = useState<EditorView>();\n const [state, setState] = useState<EditorState>();\n const defaultLightThemeOption = EditorView.theme(\n {\n '&': {\n backgroundColor: '#fff',\n },\n },\n {\n dark: false,\n },\n );\n const defaultThemeOption = EditorView.theme({\n '&': {\n height,\n minHeight,\n maxHeight,\n width,\n minWidth,\n maxWidth,\n },\n });\n const updateListener = EditorView.updateListener.of((vu: ViewUpdate) => {\n if (vu.docChanged && typeof onChange === 'function') {\n const doc = vu.state.doc;\n const value = doc.toString();\n onChange(value, vu);\n }\n onStatistics && onStatistics(getStatistics(vu));\n });\n\n let getExtensions = [updateListener, defaultThemeOption];\n if (defaultIndentWithTab) {\n getExtensions.unshift(keymap.of([indentWithTab]));\n }\n if (defaultBasicSetup) {\n if (typeof defaultBasicSetup === 'boolean') {\n getExtensions.unshift(basicSetup());\n } else {\n getExtensions.unshift(basicSetup(defaultBasicSetup));\n }\n }\n\n if (placeholderStr) {\n getExtensions.unshift(placeholder(placeholderStr));\n }\n\n switch (theme) {\n case 'light':\n getExtensions.push(defaultLightThemeOption);\n break;\n case 'dark':\n getExtensions.push(oneDark);\n break;\n case 'none':\n break;\n default:\n getExtensions.push(theme);\n break;\n }\n\n if (editable === false) {\n getExtensions.push(EditorView.editable.of(false));\n }\n if (readOnly) {\n getExtensions.push(EditorState.readOnly.of(true));\n }\n\n if (onUpdate && typeof onUpdate === 'function') {\n getExtensions.push(EditorView.updateListener.of(onUpdate));\n }\n getExtensions = getExtensions.concat(extensions);\n\n useEffect(() => {\n if (container && !state) {\n const config = {\n doc: value,\n selection,\n extensions: getExtensions,\n };\n const stateCurrent = initialState\n ? EditorState.fromJSON(initialState.json, config, initialState.fields)\n : EditorState.create(config);\n setState(stateCurrent);\n if (!view) {\n const viewCurrent = new EditorView({\n state: stateCurrent,\n parent: container,\n root,\n });\n setView(viewCurrent);\n onCreateEditor && onCreateEditor(viewCurrent, stateCurrent);\n }\n }\n return () => {\n if (view) {\n setState(undefined);\n setView(undefined);\n }\n };\n }, [container, state]);\n\n useEffect(() => setContainer(props.container!), [props.container]);\n\n useEffect(\n () => () => {\n if (view) {\n view.destroy();\n setView(undefined);\n }\n },\n [view],\n );\n\n useEffect(() => {\n if (autoFocus && view) {\n view.focus();\n }\n }, [autoFocus, view]);\n\n useEffect(() => {\n if (view) {\n view.dispatch({ effects: StateEffect.reconfigure.of(getExtensions) });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n theme,\n extensions,\n height,\n minHeight,\n maxHeight,\n width,\n minWidth,\n maxWidth,\n placeholderStr,\n editable,\n readOnly,\n defaultIndentWithTab,\n defaultBasicSetup,\n onChange,\n onUpdate,\n ]);\n\n useEffect(() => {\n if (value === undefined) {\n return;\n }\n const currentValue = view ? view.state.doc.toString() : '';\n if (view && value !== currentValue) {\n view.dispatch({\n changes: { from: 0, to: currentValue.length, insert: value || '' },\n });\n }\n }, [value, view]);\n\n return { state, setState, view, setView, container, setContainer };\n}\n"
85
85
  ],
86
- "mappings": "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"
86
+ "mappings": "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"
87
87
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uiw/react-codemirror",
3
- "version": "4.19.4",
3
+ "version": "4.19.5",
4
4
  "description": "CodeMirror component for React.",
5
5
  "homepage": "https://uiwjs.github.io/react-codemirror",
6
6
  "author": "kenny wong <wowohoo@qq.com>",
@@ -40,7 +40,7 @@
40
40
  "@codemirror/commands": "^6.1.0",
41
41
  "@codemirror/state": "^6.1.1",
42
42
  "@codemirror/theme-one-dark": "^6.0.0",
43
- "@uiw/codemirror-extensions-basic-setup": "4.19.4",
43
+ "@uiw/codemirror-extensions-basic-setup": "4.19.5",
44
44
  "codemirror": "^6.0.0"
45
45
  },
46
46
  "keywords": [
@@ -181,6 +181,9 @@ export function useCodeMirror(props: UseCodeMirror) {
181
181
  ]);
182
182
 
183
183
  useEffect(() => {
184
+ if (value === undefined) {
185
+ return;
186
+ }
184
187
  const currentValue = view ? view.state.doc.toString() : '';
185
188
  if (view && value !== currentValue) {
186
189
  view.dispatch({