@actualwave/react-native-codeditor 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +790 -0
  3. package/app.plugin.js +133 -0
  4. package/lib/module/BlockingView.js +25 -0
  5. package/lib/module/CodeEditor.js +239 -0
  6. package/lib/module/EditorAPI.js +2 -0
  7. package/lib/module/WebViewAPI.js +133 -0
  8. package/lib/module/index.js +6 -0
  9. package/lib/module/package.json +1 -0
  10. package/lib/typescript/app.plugin.d.ts +3 -0
  11. package/lib/typescript/babel.config.d.ts +10 -0
  12. package/lib/typescript/package.json +1 -0
  13. package/lib/typescript/react-native.config.d.ts +2 -0
  14. package/lib/typescript/scripts/copy-assets.d.ts +2 -0
  15. package/lib/typescript/src/BlockingView.d.ts +3 -0
  16. package/lib/typescript/src/CodeEditor.d.ts +33 -0
  17. package/lib/typescript/src/EditorAPI.d.ts +66 -0
  18. package/lib/typescript/src/WebViewAPI.d.ts +46 -0
  19. package/lib/typescript/src/index.d.ts +7 -0
  20. package/package.json +106 -0
  21. package/react-native.config.js +3 -0
  22. package/src/assets/codemirror/@actualwave_codemirror-lang-sksl.js +15 -0
  23. package/src/assets/codemirror/@babel_runtime_helpers_interopRequireDefault.js +1 -0
  24. package/src/assets/codemirror/@babel_runtime_helpers_objectSpread2.js +1 -0
  25. package/src/assets/codemirror/@babel_runtime_helpers_toConsumableArray.js +1 -0
  26. package/src/assets/codemirror/@codemirror_autocomplete.js +206 -0
  27. package/src/assets/codemirror/@codemirror_collab.js +31 -0
  28. package/src/assets/codemirror/@codemirror_commands.js +411 -0
  29. package/src/assets/codemirror/@codemirror_lang-angular.js +7 -0
  30. package/src/assets/codemirror/@codemirror_lang-cpp.js +7 -0
  31. package/src/assets/codemirror/@codemirror_lang-css.js +14 -0
  32. package/src/assets/codemirror/@codemirror_lang-go.js +13 -0
  33. package/src/assets/codemirror/@codemirror_lang-html.js +20 -0
  34. package/src/assets/codemirror/@codemirror_lang-java.js +7 -0
  35. package/src/assets/codemirror/@codemirror_lang-javascript.js +54 -0
  36. package/src/assets/codemirror/@codemirror_lang-jinja.js +15 -0
  37. package/src/assets/codemirror/@codemirror_lang-json.js +10 -0
  38. package/src/assets/codemirror/@codemirror_lang-less.js +10 -0
  39. package/src/assets/codemirror/@codemirror_lang-lezer.js +7 -0
  40. package/src/assets/codemirror/@codemirror_lang-liquid.js +15 -0
  41. package/src/assets/codemirror/@codemirror_lang-markdown.js +55 -0
  42. package/src/assets/codemirror/@codemirror_lang-php.js +7 -0
  43. package/src/assets/codemirror/@codemirror_lang-python.js +19 -0
  44. package/src/assets/codemirror/@codemirror_lang-rust.js +7 -0
  45. package/src/assets/codemirror/@codemirror_lang-sass.js +10 -0
  46. package/src/assets/codemirror/@codemirror_lang-sql.js +52 -0
  47. package/src/assets/codemirror/@codemirror_lang-vue.js +6 -0
  48. package/src/assets/codemirror/@codemirror_lang-wast.js +2 -0
  49. package/src/assets/codemirror/@codemirror_lang-xml.js +13 -0
  50. package/src/assets/codemirror/@codemirror_lang-yaml.js +13 -0
  51. package/src/assets/codemirror/@codemirror_language-data.js +5 -0
  52. package/src/assets/codemirror/@codemirror_language.js +524 -0
  53. package/src/assets/codemirror/@codemirror_legacy-modes_mode_apl.js +1 -0
  54. package/src/assets/codemirror/@codemirror_legacy-modes_mode_asciiarmor.js +1 -0
  55. package/src/assets/codemirror/@codemirror_legacy-modes_mode_asn1.js +3 -0
  56. package/src/assets/codemirror/@codemirror_legacy-modes_mode_asterisk.js +9 -0
  57. package/src/assets/codemirror/@codemirror_legacy-modes_mode_brainfuck.js +13 -0
  58. package/src/assets/codemirror/@codemirror_legacy-modes_mode_clike.js +31 -0
  59. package/src/assets/codemirror/@codemirror_legacy-modes_mode_clojure.js +5 -0
  60. package/src/assets/codemirror/@codemirror_legacy-modes_mode_cmake.js +6 -0
  61. package/src/assets/codemirror/@codemirror_legacy-modes_mode_cobol.js +7 -0
  62. package/src/assets/codemirror/@codemirror_legacy-modes_mode_coffeescript.js +14 -0
  63. package/src/assets/codemirror/@codemirror_legacy-modes_mode_commonlisp.js +1 -0
  64. package/src/assets/codemirror/@codemirror_legacy-modes_mode_crystal.js +18 -0
  65. package/src/assets/codemirror/@codemirror_legacy-modes_mode_css.js +5 -0
  66. package/src/assets/codemirror/@codemirror_legacy-modes_mode_cypher.js +1 -0
  67. package/src/assets/codemirror/@codemirror_legacy-modes_mode_d.js +2 -0
  68. package/src/assets/codemirror/@codemirror_legacy-modes_mode_diff.js +1 -0
  69. package/src/assets/codemirror/@codemirror_legacy-modes_mode_dockerfile.js +9 -0
  70. package/src/assets/codemirror/@codemirror_legacy-modes_mode_dtd.js +3 -0
  71. package/src/assets/codemirror/@codemirror_legacy-modes_mode_dylan.js +35 -0
  72. package/src/assets/codemirror/@codemirror_legacy-modes_mode_ebnf.js +9 -0
  73. package/src/assets/codemirror/@codemirror_legacy-modes_mode_ecl.js +3 -0
  74. package/src/assets/codemirror/@codemirror_legacy-modes_mode_eiffel.js +1 -0
  75. package/src/assets/codemirror/@codemirror_legacy-modes_mode_elm.js +3 -0
  76. package/src/assets/codemirror/@codemirror_legacy-modes_mode_erlang.js +52 -0
  77. package/src/assets/codemirror/@codemirror_legacy-modes_mode_factor.js +14 -0
  78. package/src/assets/codemirror/@codemirror_legacy-modes_mode_fcl.js +2 -0
  79. package/src/assets/codemirror/@codemirror_legacy-modes_mode_forth.js +5 -0
  80. package/src/assets/codemirror/@codemirror_legacy-modes_mode_fortran.js +2 -0
  81. package/src/assets/codemirror/@codemirror_legacy-modes_mode_gas.js +13 -0
  82. package/src/assets/codemirror/@codemirror_legacy-modes_mode_gherkin.js +5 -0
  83. package/src/assets/codemirror/@codemirror_legacy-modes_mode_go.js +2 -0
  84. package/src/assets/codemirror/@codemirror_legacy-modes_mode_groovy.js +3 -0
  85. package/src/assets/codemirror/@codemirror_legacy-modes_mode_haskell.js +5 -0
  86. package/src/assets/codemirror/@codemirror_legacy-modes_mode_haxe.js +12 -0
  87. package/src/assets/codemirror/@codemirror_legacy-modes_mode_http.js +1 -0
  88. package/src/assets/codemirror/@codemirror_legacy-modes_mode_idl.js +7 -0
  89. package/src/assets/codemirror/@codemirror_legacy-modes_mode_javascript.js +23 -0
  90. package/src/assets/codemirror/@codemirror_legacy-modes_mode_jinja2.js +8 -0
  91. package/src/assets/codemirror/@codemirror_legacy-modes_mode_julia.js +17 -0
  92. package/src/assets/codemirror/@codemirror_legacy-modes_mode_livescript.js +1 -0
  93. package/src/assets/codemirror/@codemirror_legacy-modes_mode_lua.js +2 -0
  94. package/src/assets/codemirror/@codemirror_legacy-modes_mode_mathematica.js +26 -0
  95. package/src/assets/codemirror/@codemirror_legacy-modes_mode_mbox.js +11 -0
  96. package/src/assets/codemirror/@codemirror_legacy-modes_mode_mirc.js +1 -0
  97. package/src/assets/codemirror/@codemirror_legacy-modes_mode_mllike.js +8 -0
  98. package/src/assets/codemirror/@codemirror_legacy-modes_mode_modelica.js +12 -0
  99. package/src/assets/codemirror/@codemirror_legacy-modes_mode_mscgen.js +3 -0
  100. package/src/assets/codemirror/@codemirror_legacy-modes_mode_mumps.js +16 -0
  101. package/src/assets/codemirror/@codemirror_legacy-modes_mode_nginx.js +1 -0
  102. package/src/assets/codemirror/@codemirror_legacy-modes_mode_nsis.js +20 -0
  103. package/src/assets/codemirror/@codemirror_legacy-modes_mode_ntriples.js +1 -0
  104. package/src/assets/codemirror/@codemirror_legacy-modes_mode_octave.js +8 -0
  105. package/src/assets/codemirror/@codemirror_legacy-modes_mode_oz.js +17 -0
  106. package/src/assets/codemirror/@codemirror_legacy-modes_mode_pascal.js +2 -0
  107. package/src/assets/codemirror/@codemirror_legacy-modes_mode_pegjs.js +25 -0
  108. package/src/assets/codemirror/@codemirror_legacy-modes_mode_perl.js +247 -0
  109. package/src/assets/codemirror/@codemirror_legacy-modes_mode_pig.js +6 -0
  110. package/src/assets/codemirror/@codemirror_legacy-modes_mode_powershell.js +7 -0
  111. package/src/assets/codemirror/@codemirror_legacy-modes_mode_properties.js +5 -0
  112. package/src/assets/codemirror/@codemirror_legacy-modes_mode_protobuf.js +7 -0
  113. package/src/assets/codemirror/@codemirror_legacy-modes_mode_pug.js +24 -0
  114. package/src/assets/codemirror/@codemirror_legacy-modes_mode_puppet.js +42 -0
  115. package/src/assets/codemirror/@codemirror_legacy-modes_mode_python.js +15 -0
  116. package/src/assets/codemirror/@codemirror_legacy-modes_mode_q.js +2 -0
  117. package/src/assets/codemirror/@codemirror_legacy-modes_mode_r.js +1 -0
  118. package/src/assets/codemirror/@codemirror_legacy-modes_mode_rpm.js +9 -0
  119. package/src/assets/codemirror/@codemirror_legacy-modes_mode_ruby.js +4 -0
  120. package/src/assets/codemirror/@codemirror_legacy-modes_mode_rust.js +5 -0
  121. package/src/assets/codemirror/@codemirror_legacy-modes_mode_sas.js +23 -0
  122. package/src/assets/codemirror/@codemirror_legacy-modes_mode_sass.js +26 -0
  123. package/src/assets/codemirror/@codemirror_legacy-modes_mode_scheme.js +14 -0
  124. package/src/assets/codemirror/@codemirror_legacy-modes_mode_shell.js +1 -0
  125. package/src/assets/codemirror/@codemirror_legacy-modes_mode_sieve.js +7 -0
  126. package/src/assets/codemirror/@codemirror_legacy-modes_mode_simple-mode.js +1 -0
  127. package/src/assets/codemirror/@codemirror_legacy-modes_mode_smalltalk.js +1 -0
  128. package/src/assets/codemirror/@codemirror_legacy-modes_mode_solr.js +1 -0
  129. package/src/assets/codemirror/@codemirror_legacy-modes_mode_sparql.js +1 -0
  130. package/src/assets/codemirror/@codemirror_legacy-modes_mode_spreadsheet.js +6 -0
  131. package/src/assets/codemirror/@codemirror_legacy-modes_mode_sql.js +84 -0
  132. package/src/assets/codemirror/@codemirror_legacy-modes_mode_stex.js +11 -0
  133. package/src/assets/codemirror/@codemirror_legacy-modes_mode_stylus.js +45 -0
  134. package/src/assets/codemirror/@codemirror_legacy-modes_mode_swift.js +2 -0
  135. package/src/assets/codemirror/@codemirror_legacy-modes_mode_tcl.js +1 -0
  136. package/src/assets/codemirror/@codemirror_legacy-modes_mode_textile.js +2 -0
  137. package/src/assets/codemirror/@codemirror_legacy-modes_mode_tiddlywiki.js +33 -0
  138. package/src/assets/codemirror/@codemirror_legacy-modes_mode_tiki.js +20 -0
  139. package/src/assets/codemirror/@codemirror_legacy-modes_mode_toml.js +4 -0
  140. package/src/assets/codemirror/@codemirror_legacy-modes_mode_troff.js +1 -0
  141. package/src/assets/codemirror/@codemirror_legacy-modes_mode_ttcn-cfg.js +3 -0
  142. package/src/assets/codemirror/@codemirror_legacy-modes_mode_ttcn.js +3 -0
  143. package/src/assets/codemirror/@codemirror_legacy-modes_mode_turtle.js +1 -0
  144. package/src/assets/codemirror/@codemirror_legacy-modes_mode_vb.js +11 -0
  145. package/src/assets/codemirror/@codemirror_legacy-modes_mode_vbscript.js +26 -0
  146. package/src/assets/codemirror/@codemirror_legacy-modes_mode_velocity.js +15 -0
  147. package/src/assets/codemirror/@codemirror_legacy-modes_mode_verilog.js +67 -0
  148. package/src/assets/codemirror/@codemirror_legacy-modes_mode_vhdl.js +2 -0
  149. package/src/assets/codemirror/@codemirror_legacy-modes_mode_wast.js +7 -0
  150. package/src/assets/codemirror/@codemirror_legacy-modes_mode_webidl.js +25 -0
  151. package/src/assets/codemirror/@codemirror_legacy-modes_mode_xml.js +6 -0
  152. package/src/assets/codemirror/@codemirror_legacy-modes_mode_xquery.js +51 -0
  153. package/src/assets/codemirror/@codemirror_legacy-modes_mode_yacas.js +16 -0
  154. package/src/assets/codemirror/@codemirror_legacy-modes_mode_yaml.js +1 -0
  155. package/src/assets/codemirror/@codemirror_legacy-modes_mode_z80.js +1 -0
  156. package/src/assets/codemirror/@codemirror_lint.js +46 -0
  157. package/src/assets/codemirror/@codemirror_merge.js +167 -0
  158. package/src/assets/codemirror/@codemirror_search.js +121 -0
  159. package/src/assets/codemirror/@codemirror_state.js +793 -0
  160. package/src/assets/codemirror/@codemirror_theme-one-dark.js +12 -0
  161. package/src/assets/codemirror/@codemirror_view.js +1210 -0
  162. package/src/assets/codemirror/@lezer_common.js +407 -0
  163. package/src/assets/codemirror/@lezer_cpp.js +4 -0
  164. package/src/assets/codemirror/@lezer_css.js +4 -0
  165. package/src/assets/codemirror/@lezer_go.js +3 -0
  166. package/src/assets/codemirror/@lezer_highlight.js +380 -0
  167. package/src/assets/codemirror/@lezer_html.js +20 -0
  168. package/src/assets/codemirror/@lezer_java.js +2 -0
  169. package/src/assets/codemirror/@lezer_javascript.js +7 -0
  170. package/src/assets/codemirror/@lezer_json.js +2 -0
  171. package/src/assets/codemirror/@lezer_lezer.js +2 -0
  172. package/src/assets/codemirror/@lezer_lr.js +325 -0
  173. package/src/assets/codemirror/@lezer_markdown.js +286 -0
  174. package/src/assets/codemirror/@lezer_php.js +3 -0
  175. package/src/assets/codemirror/@lezer_python.js +5 -0
  176. package/src/assets/codemirror/@lezer_rust.js +3 -0
  177. package/src/assets/codemirror/@lezer_sass.js +5 -0
  178. package/src/assets/codemirror/@lezer_xml.js +3 -0
  179. package/src/assets/codemirror/@lezer_yaml.js +12 -0
  180. package/src/assets/codemirror/@marijn_find-cluster-break.js +10 -0
  181. package/src/assets/codemirror/@uiw_codemirror-theme-androidstudio.js +3 -0
  182. package/src/assets/codemirror/@uiw_codemirror-theme-andromeda.js +1 -0
  183. package/src/assets/codemirror/@uiw_codemirror-theme-atomone.js +6 -0
  184. package/src/assets/codemirror/@uiw_codemirror-theme-aura.js +1 -0
  185. package/src/assets/codemirror/@uiw_codemirror-theme-basic.js +1 -0
  186. package/src/assets/codemirror/@uiw_codemirror-theme-bbedit.js +1 -0
  187. package/src/assets/codemirror/@uiw_codemirror-theme-copilot.js +1 -0
  188. package/src/assets/codemirror/@uiw_codemirror-theme-darcula.js +6 -0
  189. package/src/assets/codemirror/@uiw_codemirror-theme-dracula.js +6 -0
  190. package/src/assets/codemirror/@uiw_codemirror-theme-duotone.js +5 -0
  191. package/src/assets/codemirror/@uiw_codemirror-theme-eclipse.js +1 -0
  192. package/src/assets/codemirror/@uiw_codemirror-theme-github.js +3 -0
  193. package/src/assets/codemirror/@uiw_codemirror-theme-material.js +1 -0
  194. package/src/assets/codemirror/@uiw_codemirror-theme-monokai.js +1 -0
  195. package/src/assets/codemirror/@uiw_codemirror-theme-nord.js +2 -0
  196. package/src/assets/codemirror/@uiw_codemirror-theme-okaidia.js +2 -0
  197. package/src/assets/codemirror/@uiw_codemirror-theme-solarized.js +1 -0
  198. package/src/assets/codemirror/@uiw_codemirror-theme-sublime.js +2 -0
  199. package/src/assets/codemirror/@uiw_codemirror-theme-tokyo-night.js +1 -0
  200. package/src/assets/codemirror/@uiw_codemirror-theme-vscode.js +5 -0
  201. package/src/assets/codemirror/@uiw_codemirror-theme-xcode.js +3 -0
  202. package/src/assets/codemirror/@uiw_codemirror-themes.js +1 -0
  203. package/src/assets/codemirror/_core.js +4494 -0
  204. package/src/assets/codemirror/codemirror.js +46 -0
  205. package/src/assets/codemirror/crelt.js +1 -0
  206. package/src/assets/codemirror/style-mod.js +36 -0
  207. package/src/assets/codemirror/w3c-keyname.js +8 -0
  208. package/src/assets/codemirror-editor.umd.js +415 -0
  209. package/src/assets/editor.html +377 -0
  210. package/src/assets/webview-interface.umd.js +2 -0
@@ -0,0 +1,13 @@
1
+ async function moduleInitFunction(requireAsyncModule,exports={}){const module={exports:exports};var hasRequiredDist,require$$0=await requireAsyncModule("@lezer/go"),require$$1=await requireAsyncModule("@codemirror/language"),require$$2=await requireAsyncModule("@codemirror/autocomplete"),require$$3=await requireAsyncModule("@lezer/common"),dist={},distExports=function requireDist(){function defIDs(type,spec){return(node,def)=>{outer:for(let cur=node.node.firstChild,depth=0,parent=null;;){for(;!cur;){if(!depth)break outer;depth--,cur=parent.nextSibling,parent=parent.parent}spec&&cur.name==spec||"SpecList"==cur.name?(depth++,parent=cur,cur=cur.firstChild):("DefName"==cur.name&&def(cur,type),cur=cur.nextSibling)}return!0}}function getScope(doc,node){function def(node,type){let name=doc.sliceString(node.from,node.to);completions.push({label:name,type})}let cached=cache.get(node);if(cached)return cached;let completions=[],top=!0;return node.cursor(common.IterMode.IncludeAnonymous).iterate(node=>{if(top)top=!1;else if(node.name){let gather=gatherCompletions[node.name];if(gather&&gather(node,def)||ScopeNodes.has(node.name))return!1}else if(8192<node.to-node.from){// Allow caching for bigger internal nodes
2
+ for(let c of getScope(doc,node.node))completions.push(c);return!1}}),cache.set(node,completions),completions}/**
3
+ Go support. Includes [snippet](https://codemirror.net/6/docs/ref/#lang-go.snippets) and local
4
+ variable completion.
5
+ */function go(){let completions=snippets.concat(keywords);return new language.LanguageSupport(goLanguage,[goLanguage.data.of({autocomplete:autocomplete.ifNotIn(dontComplete,autocomplete.completeFromList(completions))}),goLanguage.data.of({autocomplete:localCompletionSource})])}if(hasRequiredDist)return dist;hasRequiredDist=1;var go$1=require$$0,language=require$$1,autocomplete=require$$2,common=require$$3;/**
6
+ A collection of Go-related [snippets](https://codemirror.net/6/docs/ref/#autocomplete.snippet).
7
+ */const snippets=[autocomplete.snippetCompletion("func ${name}(${params}) ${type} {\n\t${}\n}",{label:"func",detail:"declaration",type:"keyword"}),autocomplete.snippetCompletion("func (${receiver}) ${name}(${params}) ${type} {\n\t${}\n}",{label:"func",detail:"method declaration",type:"keyword"}),autocomplete.snippetCompletion("var ${name} = ${value}",{label:"var",detail:"declaration",type:"keyword"}),autocomplete.snippetCompletion("type ${name} ${type}",{label:"type",detail:"declaration",type:"keyword"}),autocomplete.snippetCompletion("const ${name} = ${value}",{label:"const",detail:"declaration",type:"keyword"}),autocomplete.snippetCompletion("type ${name} = ${type}",{label:"type",detail:"alias declaration",type:"keyword"}),autocomplete.snippetCompletion("for ${init}; ${test}; ${update} {\n\t${}\n}",{label:"for",detail:"loop",type:"keyword"}),autocomplete.snippetCompletion("for ${i} := range ${value} {\n\t${}\n}",{label:"for",detail:"range",type:"keyword"}),autocomplete.snippetCompletion("select {\n\t${}\n}",{label:"select",detail:"statement",type:"keyword"}),autocomplete.snippetCompletion("case ${}:\n${}",{label:"case",type:"keyword"}),autocomplete.snippetCompletion("switch ${} {\n\t${}\n}",{label:"switch",detail:"statement",type:"keyword"}),autocomplete.snippetCompletion("switch ${}.(${type}) {\n\t${}\n}",{label:"switch",detail:"type statement",type:"keyword"}),autocomplete.snippetCompletion("if ${} {\n\t${}\n}",{label:"if",detail:"block",type:"keyword"}),autocomplete.snippetCompletion("if ${} {\n\t${}\n} else {\n\t${}\n}",{label:"if",detail:"/ else block",type:"keyword"}),autocomplete.snippetCompletion("import ${name} \"${module}\"\n${}",{label:"import",detail:"declaration",type:"keyword"})],cache=new common.NodeWeakMap,ScopeNodes=new Set(["SourceFile","Block","FunctionDecl","MethodDecl","FunctionLiteral","ForStatement","SwitchStatement","TypeSwitchStatement","IfStatement"]),gatherCompletions={FunctionDecl:defIDs("function"),VarDecl:defIDs("var","VarSpec"),ConstDecl:defIDs("constant","ConstSpec"),TypeDecl:defIDs("type","TypeSpec"),ImportDecl:defIDs("constant","ImportSpec"),Parameter:defIDs("var"),__proto__:null},Identifier=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,dontComplete=["String","LineComment","BlockComment","DefName","LabelName","FieldName",".","?."],localCompletionSource=context=>{let inner=language.syntaxTree(context.state).resolveInner(context.pos,-1);if(-1<dontComplete.indexOf(inner.name))return null;let isWord="VariableName"==inner.name||20>inner.to-inner.from&&Identifier.test(context.state.sliceDoc(inner.from,inner.to));if(!isWord&&!context.explicit)return null;let options=[];for(let pos=inner;pos;pos=pos.parent)ScopeNodes.has(pos.name)&&(options=options.concat(getScope(context.state.doc,pos)));return{options,from:isWord?inner.from:context.pos,validFor:Identifier}},goLanguage=language.LRLanguage.define({name:"go",parser:go$1.parser.configure({props:[language.indentNodeProp.add({IfStatement:language.continuedIndent({except:/^\s*({|else\b)/}),LabeledStatement:language.flatIndent,"SwitchBlock SelectBlock":context=>{let after=context.textAfter,closed=/^\s*\}/.test(after),isCase=/^\s*(case|default)\b/.test(after);return context.baseIndent+(closed||isCase?0:context.unit)},Block:language.delimitedIndent({closing:"}"}),BlockComment:()=>null,Statement:language.continuedIndent({except:/^{/})}),language.foldNodeProp.add({"Block SwitchBlock SelectBlock LiteralValue InterfaceType StructType SpecList":language.foldInside,BlockComment(tree){return{from:tree.from+2,to:tree.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'","\"","`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case\b|default\b|\})$/}});/**
8
+ Completion source that looks up locally defined names in Go code.
9
+ */ /**
10
+ A language provider based on the [Lezer Go
11
+ parser](https://github.com/lezer-parser/go), extended with
12
+ folding and indentation information.
13
+ */let kwCompletion=name=>({label:name,type:"keyword"});const keywords=["interface","struct","chan","map","package","go","return","break","continue","goto","fallthrough","else","defer","range","true","false","nil"].map(kwCompletion);return dist.go=go,dist.goLanguage=goLanguage,dist.localCompletionSource=localCompletionSource,dist.snippets=snippets,dist}(),index=/*@__PURE__*/function getDefaultExportFromCjs(x){return x}(distExports);return module.exports=index,module.exports}
@@ -0,0 +1,20 @@
1
+ async function moduleInitFunction(requireAsyncModule,exports={}){const module={exports:exports};var hasRequiredDist,require$$0=await requireAsyncModule("@lezer/html"),require$$1=await requireAsyncModule("@codemirror/lang-css"),require$$2=await requireAsyncModule("@codemirror/lang-javascript"),require$$3=await requireAsyncModule("@codemirror/view"),require$$4=await requireAsyncModule("@codemirror/state"),require$$5=await requireAsyncModule("@codemirror/language"),dist={},distExports=function requireDist(){function elementName(doc,tree,max=doc.length){if(!tree)return"";let tag=tree.firstChild,name=tag&&tag.getChild("TagName");return name?doc.sliceString(name.from,Math.min(name.to,max)):""}function findParentElement(tree,skip=!1){for(;tree;tree=tree.parent)if("Element"==tree.name)if(skip)skip=!1;else return tree;return null}function allowedChildren(doc,tree,schema){let parentInfo=schema.tags[elementName(doc,findParentElement(tree))];return(null===parentInfo||void 0===parentInfo?void 0:parentInfo.children)||schema.allTags}function openTags(doc,tree){let open=[];for(let tagName,parent=findParentElement(tree);parent&&!parent.type.isTop&&(tagName=elementName(doc,parent),!(tagName&&"CloseTag"==parent.lastChild.name));parent=findParentElement(parent.parent))tagName&&0>open.indexOf(tagName)&&("EndTag"==tree.name||tree.from>=parent.firstChild.to)&&open.push(tagName);return open}function completeTag(state,schema,tree,from,to){let end=/\s*>/.test(state.sliceDoc(to,to+5))?"":">",parent=findParentElement(tree,"StartTag"==tree.name||"TagName"==tree.name);return{from,to,options:allowedChildren(state.doc,parent,schema).map(tagName=>({label:tagName,type:"type"})).concat(openTags(state.doc,tree).map((tag,i)=>({label:"/"+tag,apply:"/"+tag+end,type:"type",boost:99-i}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function completeCloseTag(state,tree,from,to){let end=/\s*>/.test(state.sliceDoc(to,to+5))?"":">";return{from,to,options:openTags(state.doc,tree).map((tag,i)=>({label:tag,apply:tag+end,type:"type",boost:99-i})),validFor:identifier}}function completeStartTag(state,schema,tree,pos){let options=[],level=0;for(let tagName of allowedChildren(state.doc,tree,schema))options.push({label:"<"+tagName,type:"type"});for(let open of openTags(state.doc,tree))options.push({label:"</"+open+">",type:"type",boost:99-level++});return{from:pos,to:pos,options,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function completeAttrName(state,schema,tree,from,to){let elt=findParentElement(tree),info=elt?schema.tags[elementName(state.doc,elt)]:null,localAttrs=info&&info.attrs?Object.keys(info.attrs):[],names=info&&!1===info.globalAttrs?localAttrs:localAttrs.length?localAttrs.concat(schema.globalAttrNames):schema.globalAttrNames;return{from,to,options:names.map(attrName=>({label:attrName,type:"property"})),validFor:identifier}}function completeAttrValue(state,schema,tree,from,to){var _a;let token,nameNode=null===(_a=tree.parent)||void 0===_a?void 0:_a.getChild("AttributeName"),options=[];if(nameNode){let attrName=state.sliceDoc(nameNode.from,nameNode.to),attrs=schema.globalAttrs[attrName];if(!attrs){let elt=findParentElement(tree),info=elt?schema.tags[elementName(state.doc,elt)]:null;attrs=(null===info||void 0===info?void 0:info.attrs)&&info.attrs[attrName]}if(attrs){let base=state.sliceDoc(from,to).toLowerCase(),quoteStart="\"",quoteEnd="\"";/^['"]/.test(base)?(token="\""==base[0]?/^[^"]*$/:/^[^']*$/,quoteStart="",quoteEnd=state.sliceDoc(to,to+1)==base[0]?"":base[0],base=base.slice(1),from++):token=/^[^\s<>='"]*$/;for(let value of attrs)options.push({label:value,apply:quoteStart+value+quoteEnd,type:"constant"})}}return{from,to,options,validFor:token}}function htmlCompletionFor(schema,context){let{state,pos}=context,tree=language.syntaxTree(state).resolveInner(pos,-1),around=tree.resolve(pos);for(let before,last,scan=pos;around==tree&&(before=tree.childBefore(scan))&&(last=before.lastChild,last&&last.type.isError&&!(last.from<last.to));)around=tree=before,scan=last.from;return"TagName"==tree.name?tree.parent&&/CloseTag$/.test(tree.parent.name)?completeCloseTag(state,tree,tree.from,pos):completeTag(state,schema,tree,tree.from,pos):"StartTag"==tree.name||"IncompleteTag"==tree.name?completeTag(state,schema,tree,pos,pos):"StartCloseTag"==tree.name||"IncompleteCloseTag"==tree.name?completeCloseTag(state,tree,pos,pos):"OpenTag"==tree.name||"SelfClosingTag"==tree.name||"AttributeName"==tree.name?completeAttrName(state,schema,tree,"AttributeName"==tree.name?tree.from:pos,pos):"Is"==tree.name||"AttributeValue"==tree.name||"UnquotedAttributeValue"==tree.name?completeAttrValue(state,schema,tree,"Is"==tree.name?pos:tree.from,pos):context.explicit&&("Element"==around.name||"Text"==around.name||"Document"==around.name)?completeStartTag(state,schema,tree,pos):null}/**
2
+ HTML tag completion. Opens and closes tags and attributes in a
3
+ context-aware way.
4
+ */function htmlCompletionSource(context){return htmlCompletionFor(Schema.default,context)}/**
5
+ Create a completion source for HTML extended with additional tags
6
+ or attributes.
7
+ */function htmlCompletionSourceWith(config){let{extraTags,extraGlobalAttributes:extraAttrs}=config,schema=extraAttrs||extraTags?new Schema(extraTags,extraAttrs):Schema.default;return context=>htmlCompletionFor(schema,context)}/**
8
+ Language support for HTML, including
9
+ [`htmlCompletion`](https://codemirror.net/6/docs/ref/#lang-html.htmlCompletion) and JavaScript and
10
+ CSS support extensions.
11
+ */function html(config={}){let wrap,dialect="";!1===config.matchClosingTags&&(dialect="noMatch"),!0===config.selfClosingTags&&(dialect=(dialect?dialect+" ":"")+"selfClosing"),(config.nestedLanguages&&config.nestedLanguages.length||config.nestedAttributes&&config.nestedAttributes.length)&&(wrap=html$1.configureNesting((config.nestedLanguages||[]).concat(defaultNesting),(config.nestedAttributes||[]).concat(defaultAttrs)));let lang=wrap?htmlPlain.configure({wrap,dialect}):dialect?htmlLanguage.configure({dialect}):htmlLanguage;return new language.LanguageSupport(lang,[htmlLanguage.data.of({autocomplete:htmlCompletionSourceWith(config)}),!1===config.autoCloseTags?[]:autoCloseTags,langJavascript.javascript().support,langCss.css().support])}if(hasRequiredDist)return dist;hasRequiredDist=1;var html$1=require$$0,langCss=require$$1,langJavascript=require$$2,view=require$$3,state=require$$4,language=require$$5;const Targets=["_blank","_self","_top","_parent"],Charsets=["ascii","utf-8","utf-16","latin1","latin1"],Methods=["get","post","put","delete"],Encs=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],Bool=["true","false"],S={},Tags={a:{attrs:{href:null,ping:null,type:null,media:null,target:Targets,hreflang:null}},abbr:S,address:S,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:S,aside:S,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:S,base:{attrs:{href:null,target:Targets}},bdi:S,bdo:S,blockquote:{attrs:{cite:null}},body:S,br:S,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:Encs,formmethod:Methods,formnovalidate:["novalidate"],formtarget:Targets,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:S,center:S,cite:S,code:S,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:S,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:S,div:S,dl:S,dt:S,em:S,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:S,figure:S,footer:S,form:{attrs:{action:null,name:null,"accept-charset":Charsets,autocomplete:["on","off"],enctype:Encs,method:Methods,novalidate:["novalidate"],target:Targets}},h1:S,h2:S,h3:S,h4:S,h5:S,h6:S,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:S,hgroup:S,hr:S,html:{attrs:{manifest:null}},i:S,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:Encs,formmethod:Methods,formnovalidate:["novalidate"],formtarget:Targets,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:S,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:S,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:S,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:Charsets,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:S,noscript:S,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:S,param:{attrs:{name:null,value:null}},pre:S,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:S,rt:S,ruby:S,samp:S,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:Charsets}},section:S,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:S,source:{attrs:{src:null,type:null,media:null}},span:S,strong:S,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:S,summary:S,sup:S,table:S,tbody:S,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:S,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:S,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:S,time:{attrs:{datetime:null}},title:S,tr:S,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:S,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:S},GlobalAttrs={accesskey:null,class:null,contenteditable:Bool,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:Bool,autocorrect:Bool,autocapitalize:Bool,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:["alert","application","article","banner","button","cell","checkbox","complementary","contentinfo","dialog","document","feed","figure","form","grid","gridcell","heading","img","list","listbox","listitem","main","navigation","region","row","rowgroup","search","switch","tab","table","tabpanel","textbox","timer"],"aria-activedescendant":null,"aria-atomic":Bool,"aria-autocomplete":["inline","list","both","none"],"aria-busy":Bool,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":Bool,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":Bool,"aria-hidden":Bool,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":Bool,"aria-multiselectable":Bool,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":Bool,"aria-relevant":null,"aria-required":Bool,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},eventAttributes=["beforeunload","copy","cut","dragstart","dragover","dragleave","dragenter","dragend","drag","paste","focus","blur","change","click","load","mousedown","mouseenter","mouseleave","mouseup","keydown","keyup","resize","scroll","unload"].map(n=>"on"+n);// Empty tag spec
12
+ for(let a of eventAttributes)GlobalAttrs[a]=null;class Schema{constructor(extraTags,extraAttrs){this.tags={...Tags,...extraTags},this.globalAttrs={...GlobalAttrs,...extraAttrs},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}Schema.default=new Schema;const identifier=/^[:\-\.\w\u00b7-\uffff]*$/,jsonParser=langJavascript.javascriptLanguage.parser.configure({top:"SingleExpression"}),defaultNesting=[{tag:"script",attrs:attrs=>"text/typescript"==attrs.type||"ts"==attrs.lang,parser:langJavascript.typescriptLanguage.parser},{tag:"script",attrs:attrs=>"text/babel"==attrs.type||"text/jsx"==attrs.type,parser:langJavascript.jsxLanguage.parser},{tag:"script",attrs:attrs=>"text/typescript-jsx"==attrs.type,parser:langJavascript.tsxLanguage.parser},{tag:"script",attrs(attrs){return /^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(attrs.type)},parser:jsonParser},{tag:"script",attrs(attrs){return!attrs.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(attrs.type)},parser:langJavascript.javascriptLanguage.parser},{tag:"style",attrs(attrs){return(!attrs.lang||"css"==attrs.lang)&&(!attrs.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(attrs.type))},parser:langCss.cssLanguage.parser}],defaultAttrs=[{name:"style",parser:langCss.cssLanguage.parser.configure({top:"Styles"})}].concat(eventAttributes.map(name=>({name,parser:langJavascript.javascriptLanguage.parser}))),htmlPlain=language.LRLanguage.define({name:"html",parser:html$1.parser.configure({props:[language.indentNodeProp.add({Element(context){let after=/^(\s*)(<\/)?/.exec(context.textAfter);return context.node.to<=context.pos+after[0].length?context.continue():context.lineIndent(context.node.from)+(after[2]?0:context.unit)},"OpenTag CloseTag SelfClosingTag"(context){return context.column(context.node.from)+context.unit},Document(context){if(context.pos+/\s*/.exec(context.textAfter)[0].length<context.node.to)return context.continue();let close,endElt=null;for(let last,cur=context.node;;){if(last=cur.lastChild,!last||"Element"!=last.name||last.to!=cur.to)break;endElt=cur=last}return endElt&&!((close=endElt.lastChild)&&("CloseTag"==close.name||"SelfClosingTag"==close.name))?context.lineIndent(endElt.from)+context.unit:null}}),language.foldNodeProp.add({Element(node){let first=node.firstChild,last=node.lastChild;return first&&"OpenTag"==first.name?{from:first.to,to:"CloseTag"==last.name?last.from:node.to}:null}}),language.bracketMatchingHandle.add({"OpenTag CloseTag":node=>node.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),htmlLanguage=htmlPlain.configure({wrap:html$1.configureNesting(defaultNesting,defaultAttrs)}),selfClosers=new Set(["area","base","br","col","command","embed","frame","hr","img","input","keygen","link","meta","param","source","track","wbr","menuitem"]),autoCloseTags=view.EditorView.inputHandler.of((view,from,to,text,insertTransaction)=>{if(view.composing||view.state.readOnly||from!=to||">"!=text&&"/"!=text||!htmlLanguage.isActiveAt(view.state,from,-1))return!1;let base=insertTransaction(),{state:state$1}=base,closeTags=state$1.changeByRange(range=>{var _a,_b,_c;let name,didType=state$1.doc.sliceString(range.from-1,range.to)==text,{head}=range,after=language.syntaxTree(state$1).resolveInner(head,-1);if(didType&&">"==text&&"EndTag"==after.name){let tag=after.parent;if("CloseTag"!=(null===(_b=null===(_a=tag.parent)||void 0===_a?void 0:_a.lastChild)||void 0===_b?void 0:_b.name)&&(name=elementName(state$1.doc,tag.parent,head))&&!selfClosers.has(name)){let to=head+(">"===state$1.doc.sliceString(head,head+1)?1:0),insert=`</${name}>`;return{range,changes:{from:head,to,insert}}}}else if(didType&&"/"==text&&"IncompleteCloseTag"==after.name){let tag=after.parent;if(after.from==head-2&&"CloseTag"!=(null===(_c=tag.lastChild)||void 0===_c?void 0:_c.name)&&(name=elementName(state$1.doc,tag,head))&&!selfClosers.has(name)){let to=head+(">"===state$1.doc.sliceString(head,head+1)?1:0),insert=`${name}>`;return{range:state.EditorSelection.cursor(head+insert.length,-1),changes:{from:head,to,insert}}}}return{range}});return!closeTags.changes.empty&&(view.dispatch([base,state$1.update(closeTags,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});/**
13
+ A language provider based on the [Lezer HTML
14
+ parser](https://github.com/lezer-parser/html), extended with the
15
+ JavaScript and CSS parsers to parse the content of `<script>` and
16
+ `<style>` tags.
17
+ */ /**
18
+ Extension that will automatically insert close tags when a `>` or
19
+ `/` is typed.
20
+ */return dist.autoCloseTags=autoCloseTags,dist.html=html,dist.htmlCompletionSource=htmlCompletionSource,dist.htmlCompletionSourceWith=htmlCompletionSourceWith,dist.htmlLanguage=htmlLanguage,dist}(),index=/*@__PURE__*/function getDefaultExportFromCjs(x){return x}(distExports);return module.exports=index,module.exports}
@@ -0,0 +1,7 @@
1
+ async function moduleInitFunction(requireAsyncModule,exports={}){const module={exports:exports};var hasRequiredDist,require$$0=await requireAsyncModule("@lezer/java"),require$$1=await requireAsyncModule("@codemirror/language"),dist={},distExports=function requireDist(){/**
2
+ Java language support.
3
+ */function java(){return new language.LanguageSupport(javaLanguage)}if(hasRequiredDist)return dist;hasRequiredDist=1;var java$1=require$$0,language=require$$1;/**
4
+ A language provider based on the [Lezer Java
5
+ parser](https://github.com/lezer-parser/java), extended with
6
+ highlighting and indentation information.
7
+ */const javaLanguage=language.LRLanguage.define({name:"java",parser:java$1.parser.configure({props:[language.indentNodeProp.add({IfStatement:language.continuedIndent({except:/^\s*({|else\b)/}),TryStatement:language.continuedIndent({except:/^\s*({|catch|finally)\b/}),LabeledStatement:language.flatIndent,SwitchBlock:context=>{let after=context.textAfter,closed=/^\s*\}/.test(after),isCase=/^\s*(case|default)\b/.test(after);return context.baseIndent+(closed?0:isCase?1:2)*context.unit},Block:language.delimitedIndent({closing:"}"}),BlockComment:()=>null,Statement:language.continuedIndent({except:/^{/})}),language.foldNodeProp.add({"Block SwitchBlock ClassBody ElementValueArrayInitializer ModuleBody EnumBody ConstructorBody InterfaceBody ArrayInitializer":language.foldInside,BlockComment(tree){return{from:tree.from+2,to:tree.to-2}}})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\})$/}});return dist.java=java,dist.javaLanguage=javaLanguage,dist}(),index=/*@__PURE__*/function getDefaultExportFromCjs(x){return x}(distExports);return module.exports=index,module.exports}
@@ -0,0 +1,54 @@
1
+ async function moduleInitFunction(requireAsyncModule,exports={}){const module={exports:exports};var hasRequiredDist,require$$0=await requireAsyncModule("@lezer/javascript"),require$$1=await requireAsyncModule("@codemirror/language"),require$$2=await requireAsyncModule("@codemirror/state"),require$$3=await requireAsyncModule("@codemirror/view"),require$$4=await requireAsyncModule("@codemirror/autocomplete"),require$$5=await requireAsyncModule("@lezer/common"),dist={},distExports=function requireDist(){function defID(type){return(node,def)=>{let id=node.node.getChild("VariableDefinition");return id&&def(id,type),!0}}function getScope(doc,node){function def(node,type){let name=doc.sliceString(node.from,node.to);completions.push({label:name,type})}let cached=cache.get(node);if(cached)return cached;let completions=[],top=!0;return node.cursor(common.IterMode.IncludeAnonymous).iterate(node=>{if(top)top=!1;else if(node.name){let gather=gatherCompletions[node.name];if(gather&&gather(node,def)||ScopeNodes.has(node.name))return!1}else if(8192<node.to-node.from){// Allow caching for bigger internal nodes
2
+ for(let c of getScope(doc,node.node))completions.push(c);return!1}}),cache.set(node,completions),completions}/**
3
+ Completion source that looks up locally defined names in
4
+ JavaScript code.
5
+ */function localCompletionSource(context){let inner=language.syntaxTree(context.state).resolveInner(context.pos,-1);if(-1<dontComplete.indexOf(inner.name))return null;let isWord="VariableName"==inner.name||20>inner.to-inner.from&&Identifier.test(context.state.sliceDoc(inner.from,inner.to));if(!isWord&&!context.explicit)return null;let options=[];for(let pos=inner;pos;pos=pos.parent)ScopeNodes.has(pos.name)&&(options=options.concat(getScope(context.state.doc,pos)));return{options,from:isWord?inner.from:context.pos,validFor:Identifier}}function pathFor(read,member,name){var _a;for(let path=[];;){let prop,obj=member.firstChild;if("VariableName"==(null===obj||void 0===obj?void 0:obj.name))return path.push(read(obj)),{path:path.reverse(),name};if("MemberExpression"==(null===obj||void 0===obj?void 0:obj.name)&&"PropertyName"==(null===(_a=prop=obj.lastChild)||void 0===_a?void 0:_a.name))path.push(read(prop)),member=obj;else return null}}/**
6
+ Helper function for defining JavaScript completion sources. It
7
+ returns the completable name and object path for a completion
8
+ context, or null if no name/property completion should happen at
9
+ that position. For example, when completing after `a.b.c` it will
10
+ return `{path: ["a", "b"], name: "c"}`. When completing after `x`
11
+ it will return `{path: [], name: "x"}`. When not in a property or
12
+ name, it will return null if `context.explicit` is false, and
13
+ `{path: [], name: ""}` otherwise.
14
+ */function completionPath(context){let read=node=>context.state.doc.sliceString(node.from,node.to),inner=language.syntaxTree(context.state).resolveInner(context.pos,-1);return"PropertyName"==inner.name?pathFor(read,inner.parent,read(inner)):("."==inner.name||"?."==inner.name)&&"MemberExpression"==inner.parent.name?pathFor(read,inner.parent,""):-1<dontComplete.indexOf(inner.name)?null:"VariableName"==inner.name||20>inner.to-inner.from&&Identifier.test(read(inner))?{path:[],name:read(inner)}:"MemberExpression"==inner.name?pathFor(read,inner,""):context.explicit?{path:[],name:""}:null}function enumeratePropertyCompletions(obj,top){let originalObj=obj,options=[],seen=new Set;for(let depth=0;;depth++){for(let name of(Object.getOwnPropertyNames||Object.keys)(obj)){if(!/^[a-zA-Z_$\xaa-\uffdc][\w$\xaa-\uffdc]*$/.test(name)||seen.has(name))continue;seen.add(name);let value;try{value=originalObj[name]}catch(_){continue}options.push({label:name,type:"function"==typeof value?/^[A-Z]/.test(name)?"class":top?"function":"method":top?"variable":"property",boost:-depth})}let next=Object.getPrototypeOf(obj);if(!next)return options;obj=next}}/**
15
+ Defines a [completion source](https://codemirror.net/6/docs/ref/#autocomplete.CompletionSource) that
16
+ completes from the given scope object (for example `globalThis`).
17
+ Will enter properties of the object when completing properties on
18
+ a directly-named path.
19
+ */function scopeCompletionSource(scope){let cache=new Map;return context=>{let path=completionPath(context);if(!path)return null;let target=scope;for(let step of path.path)if(target=target[step],!target)return null;let options=cache.get(target);return options||cache.set(target,options=enumeratePropertyCompletions(target,!path.path.length)),{from:context.pos-path.name.length,options,validFor:Identifier}}}/**
20
+ A language provider based on the [Lezer JavaScript
21
+ parser](https://github.com/lezer-parser/javascript), extended with
22
+ highlighting and indentation information.
23
+ */ /**
24
+ JavaScript support. Includes [snippet](https://codemirror.net/6/docs/ref/#lang-javascript.snippets)
25
+ and local variable completion.
26
+ */function javascript(config={}){let lang=config.jsx?config.typescript?tsxLanguage:jsxLanguage:config.typescript?typescriptLanguage:javascriptLanguage,completions=config.typescript?typescriptSnippets.concat(typescriptKeywords):snippets.concat(keywords);return new language.LanguageSupport(lang,[javascriptLanguage.data.of({autocomplete:autocomplete.ifNotIn(dontComplete,autocomplete.completeFromList(completions))}),javascriptLanguage.data.of({autocomplete:localCompletionSource}),config.jsx?autoCloseTags:[]])}function findOpenTag(node){for(;;){if("JSXOpenTag"==node.name||"JSXSelfClosingTag"==node.name||"JSXFragmentTag"==node.name)return node;if("JSXEscape"==node.name||!node.parent)return null;node=node.parent}}function elementName(doc,tree,max=doc.length){for(let ch=null===tree||void 0===tree?void 0:tree.firstChild;ch;ch=ch.nextSibling)if("JSXIdentifier"==ch.name||"JSXBuiltin"==ch.name||"JSXNamespacedName"==ch.name||"JSXMemberExpression"==ch.name)return doc.sliceString(ch.from,Math.min(ch.to,max));return""}/**
27
+ Connects an [ESLint](https://eslint.org/) linter to CodeMirror's
28
+ [lint](https://codemirror.net/6/docs/ref/#lint) integration. `eslint` should be an instance of the
29
+ [`Linter`](https://eslint.org/docs/developer-guide/nodejs-api#linter)
30
+ class, and `config` an optional ESLint configuration. The return
31
+ value of this function can be passed to [`linter`](https://codemirror.net/6/docs/ref/#lint.linter)
32
+ to create a JavaScript linting extension.
33
+
34
+ Note that ESLint targets node, and is tricky to run in the
35
+ browser. The
36
+ [eslint-linter-browserify](https://github.com/UziTech/eslint-linter-browserify)
37
+ package may help with that (see
38
+ [example](https://github.com/UziTech/eslint-linter-browserify/blob/master/example/script.js)).
39
+ */function esLint(eslint,config){return config||(config={parserOptions:{ecmaVersion:2019,sourceType:"module"},env:{browser:!0,node:!0,es6:!0,es2015:!0,es2017:!0,es2020:!0},rules:{}},eslint.getRules().forEach((desc,name)=>{var _a;(null===(_a=desc.meta.docs)||void 0===_a?void 0:_a.recommended)&&(config.rules[name]=2)})),view=>{let{state}=view,found=[];for(let{from,to}of javascriptLanguage.findRegions(state)){let fromLine=state.doc.lineAt(from),offset={line:fromLine.number-1,col:from-fromLine.from,pos:from};for(let d of eslint.verify(state.sliceDoc(from,to),config))found.push(translateDiagnostic(d,state.doc,offset))}return found}}function mapPos(line,col,doc,offset){return doc.line(line+offset.line).from+col+(1==line?offset.col-1:-1)}function translateDiagnostic(input,doc,offset){let start=mapPos(input.line,input.column,doc,offset),result={from:start,to:null!=input.endLine&&1!=input.endColumn?mapPos(input.endLine,input.endColumn,doc,offset):start,message:input.message,source:input.ruleId?"eslint:"+input.ruleId:"eslint",severity:1==input.severity?"warning":"error"};if(input.fix){let{range,text}=input.fix,from=range[0]+offset.pos-start,to=range[1]+offset.pos-start;result.actions=[{name:"fix",apply(view,start){view.dispatch({changes:{from:start+from,to:start+to,insert:text},scrollIntoView:!0})}}]}return result}if(hasRequiredDist)return dist;hasRequiredDist=1;var javascript$1=require$$0,language=require$$1,state=require$$2,view=require$$3,autocomplete=require$$4,common=require$$5;/**
40
+ A collection of JavaScript-related
41
+ [snippets](https://codemirror.net/6/docs/ref/#autocomplete.snippet).
42
+ */const snippets=[autocomplete.snippetCompletion("function ${name}(${params}) {\n\t${}\n}",{label:"function",detail:"definition",type:"keyword"}),autocomplete.snippetCompletion("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n\t${}\n}",{label:"for",detail:"loop",type:"keyword"}),autocomplete.snippetCompletion("for (let ${name} of ${collection}) {\n\t${}\n}",{label:"for",detail:"of loop",type:"keyword"}),autocomplete.snippetCompletion("do {\n\t${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),autocomplete.snippetCompletion("while (${}) {\n\t${}\n}",{label:"while",detail:"loop",type:"keyword"}),autocomplete.snippetCompletion("try {\n\t${}\n} catch (${error}) {\n\t${}\n}",{label:"try",detail:"/ catch block",type:"keyword"}),autocomplete.snippetCompletion("if (${}) {\n\t${}\n}",{label:"if",detail:"block",type:"keyword"}),autocomplete.snippetCompletion("if (${}) {\n\t${}\n} else {\n\t${}\n}",{label:"if",detail:"/ else block",type:"keyword"}),autocomplete.snippetCompletion("class ${name} {\n\tconstructor(${params}) {\n\t\t${}\n\t}\n}",{label:"class",detail:"definition",type:"keyword"}),autocomplete.snippetCompletion("import {${names}} from \"${module}\"\n${}",{label:"import",detail:"named",type:"keyword"}),autocomplete.snippetCompletion("import ${name} from \"${module}\"\n${}",{label:"import",detail:"default",type:"keyword"})],typescriptSnippets=snippets.concat([autocomplete.snippetCompletion("interface ${name} {\n\t${}\n}",{label:"interface",detail:"definition",type:"keyword"}),autocomplete.snippetCompletion("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),autocomplete.snippetCompletion("enum ${name} {\n\t${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),cache=new common.NodeWeakMap,ScopeNodes=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]),functionContext=["FunctionDeclaration"],gatherCompletions={FunctionDeclaration:defID("function"),ClassDeclaration:defID("class"),ClassExpression:()=>!0,EnumDeclaration:defID("constant"),TypeAliasDeclaration:defID("type"),NamespaceDeclaration:defID("namespace"),VariableDefinition(node,def){node.matchContext(functionContext)||def(node,"variable")},TypeDefinition(node,def){def(node,"type")},__proto__:null},Identifier=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,dontComplete=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."],javascriptLanguage=language.LRLanguage.define({name:"javascript",parser:javascript$1.parser.configure({props:[language.indentNodeProp.add({IfStatement:language.continuedIndent({except:/^\s*({|else\b)/}),TryStatement:language.continuedIndent({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:language.flatIndent,SwitchBody:context=>{let after=context.textAfter,closed=/^\s*\}/.test(after),isCase=/^\s*(case|default)\b/.test(after);return context.baseIndent+(closed?0:isCase?1:2)*context.unit},Block:language.delimitedIndent({closing:"}"}),ArrowFunction:cx=>cx.baseIndent+cx.unit,"TemplateString BlockComment":()=>null,"Statement Property":language.continuedIndent({except:/^\s*{/}),JSXElement(context){let closed=/^\s*<\//.test(context.textAfter);return context.lineIndent(context.node.from)+(closed?0:context.unit)},JSXEscape(context){let closed=/\s*\}/.test(context.textAfter);return context.lineIndent(context.node.from)+(closed?0:context.unit)},"JSXOpenTag JSXSelfClosingTag"(context){return context.column(context.node.from)+context.unit}}),language.foldNodeProp.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":language.foldInside,BlockComment(tree){return{from:tree.from+2,to:tree.to-2}},JSXElement(tree){let open=tree.firstChild;if(!open||"JSXSelfClosingTag"==open.name)return null;let close=tree.lastChild;return{from:open.to,to:close.type.isError?tree.to:close.from}},"JSXSelfClosingTag JSXOpenTag"(tree){var _a;let name=null===(_a=tree.firstChild)||void 0===_a?void 0:_a.nextSibling,close=tree.lastChild;return!name||name.type.isError?null:{from:name.to,to:close.type.isError?tree.to:close.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'","\"","`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),jsxSublanguage={test:node=>/^JSX/.test(node.name),facet:language.defineLanguageFacet({commentTokens:{block:{open:"{/*",close:"*/}"}}})},typescriptLanguage=javascriptLanguage.configure({dialect:"ts"},"typescript"),jsxLanguage=javascriptLanguage.configure({dialect:"jsx",props:[language.sublanguageProp.add(n=>n.isTop?[jsxSublanguage]:void 0)]}),tsxLanguage=javascriptLanguage.configure({dialect:"jsx ts",props:[language.sublanguageProp.add(n=>n.isTop?[jsxSublanguage]:void 0)]},"typescript");/**
43
+ A collection of snippet completions for TypeScript. Includes the
44
+ JavaScript [snippets](https://codemirror.net/6/docs/ref/#lang-javascript.snippets).
45
+ */ /**
46
+ A language provider for TypeScript.
47
+ */ /**
48
+ Language provider for JSX.
49
+ */ /**
50
+ Language provider for JSX + TypeScript.
51
+ */let kwCompletion=name=>({label:name,type:"keyword"});const keywords=["break","case","const","continue","default","delete","export","extends","false","finally","in","instanceof","let","new","return","static","super","switch","this","throw","true","typeof","var","yield"].map(kwCompletion),typescriptKeywords=keywords.concat(["declare","implements","private","protected","public"].map(kwCompletion)),android="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),autoCloseTags=view.EditorView.inputHandler.of((view,from,to,text,defaultInsert)=>{if((android?view.composing:view.compositionStarted)||view.state.readOnly||from!=to||">"!=text&&"/"!=text||!javascriptLanguage.isActiveAt(view.state,from,-1))return!1;let base=defaultInsert(),{state:state$1}=base,closeTags=state$1.changeByRange(range=>{var _a;let name,{head}=range,around=language.syntaxTree(state$1).resolveInner(head-1,-1);if("JSXStartTag"==around.name&&(around=around.parent),state$1.doc.sliceString(head-1,head)!=text||"JSXAttributeValue"==around.name&&around.to>head);else{if(">"==text&&"JSXFragmentTag"==around.name)return{range,changes:{from:head,insert:`</>`}};if("/"==text&&"JSXStartCloseTag"==around.name){let empty=around.parent,base=empty.parent;if(base&&empty.from==head-2&&((name=elementName(state$1.doc,base.firstChild,head))||"JSXFragmentTag"==(null===(_a=base.firstChild)||void 0===_a?void 0:_a.name))){let insert=`${name}>`;return{range:state.EditorSelection.cursor(head+insert.length,-1),changes:{from:head,insert}}}}else if(">"==text){let openTag=findOpenTag(around);if(openTag&&"JSXOpenTag"==openTag.name&&!/^\/?>|^<\//.test(state$1.doc.sliceString(head,head+2))&&(name=elementName(state$1.doc,openTag,head)))return{range,changes:{from:head,insert:`</${name}>`}}}}return{range}});return!closeTags.changes.empty&&(view.dispatch([base,state$1.update(closeTags,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});/**
52
+ Extension that will automatically insert JSX close tags when a `>` or
53
+ `/` is typed.
54
+ */return dist.autoCloseTags=autoCloseTags,dist.completionPath=completionPath,dist.esLint=esLint,dist.javascript=javascript,dist.javascriptLanguage=javascriptLanguage,dist.jsxLanguage=jsxLanguage,dist.localCompletionSource=localCompletionSource,dist.scopeCompletionSource=scopeCompletionSource,dist.snippets=snippets,dist.tsxLanguage=tsxLanguage,dist.typescriptLanguage=typescriptLanguage,dist.typescriptSnippets=typescriptSnippets,dist}(),index=/*@__PURE__*/function getDefaultExportFromCjs(x){return x}(distExports);return module.exports=index,module.exports}
@@ -0,0 +1,15 @@
1
+ async function moduleInitFunction(requireAsyncModule,exports={}){const module={exports:exports};var hasRequiredDist,require$$0=await requireAsyncModule("@codemirror/language"),require$$1=await requireAsyncModule("@codemirror/lang-html"),require$$2=await requireAsyncModule("@lezer/highlight"),require$$3=await requireAsyncModule("@lezer/common"),require$$4=await requireAsyncModule("@lezer/lr"),require$$5=await requireAsyncModule("@codemirror/state"),require$$6=await requireAsyncModule("@codemirror/view"),dist={},distExports=function requireDist(){function wordChar(code){return 65<=code&&90>=code||97<=code&&122>=code}function rawTokenizer(endTag,text,tagStart){return new lr.ExternalTokenizer(input=>{let start=input.pos;for(;;){let{next}=input;if(123==next/* Ch.BraceL */&&37==input.peek(1)/* Ch.Percent */){let scan=2;for(;;scan++){let ch=input.peek(scan);if(32!=ch/* Ch.Space */&&10!=ch/* Ch.Newline */)break}let word="";for(;;scan++){let next=input.peek(scan);if(!wordChar(next))break;word+=String.fromCharCode(next)}if(word==endTag){if(input.pos>start)break;input.acceptToken(tagStart,2);break}}else if(0>next)break;if(input.advance(),10==next/* Ch.Newline */)break}input.pos>start&&input.acceptToken(text)})}function completions(words,type){return words.split(" ").map(label=>({label,type}))}function findContext(context){var _a;let{state,pos}=context,node=language.syntaxTree(state).resolveInner(pos,-1).enterUnfinishedNodesBefore(pos),before=(null===(_a=node.childBefore(pos))||void 0===_a?void 0:_a.name)||node.name;if("FilterName"==node.name)return{type:"filter",node};if(context.explicit&&("FilterOp"==before||"filter"==before))return{type:"filter"};if("TagName"==node.name)return{type:"tag",node};if(context.explicit&&"{%"==before)return{type:"tag"};if("PropertyName"==node.name&&"MemberExpression"==node.parent.name)return{type:"prop",node,target:node.parent};if("."==node.name&&"MemberExpression"==node.parent.name)return{type:"prop",target:node.parent};if("MemberExpression"==node.name&&"."==before)return{type:"prop",target:node};if("VariableName"==node.name)return{type:"expr",from:node.from};if("Comment"==node.name||"StringLiteral"==node.name||"NumberLiteral"==node.name)return null;let word=context.matchBefore(/[\w\u00c0-\uffff]+$/);return word?{type:"expr",from:word.from}:context.explicit?{type:"expr"}:null}function resolveProperties(state,node,context,properties){let path=[];for(;;){let obj=node.getChild("Expression");if(!obj)return[];if("VariableName"==obj.name){path.unshift(state.sliceDoc(obj.from,obj.to));break}else if("MemberExpression"==obj.name){let name=obj.getChild("PropertyName");name&&path.unshift(state.sliceDoc(name.from,name.to)),node=obj}else return[]}return properties(path,state,context)}/**
2
+ Returns a completion source for jinja templates. Optionally takes
3
+ a configuration that adds additional custom completions.
4
+ */function jinjaCompletionSource(config={}){let tags=config.tags?config.tags.concat(Tags):Tags,exprs=config.variables?config.variables.concat(Expressions):Expressions,{properties}=config;return context=>{var _a;let cx=findContext(context);if(!cx)return null;let options,from=null!==(_a=cx.from)&&void 0!==_a?_a:cx.node?cx.node.from:context.pos;return options="filter"==cx.type?Filters:"tag"==cx.type?tags:"expr"==cx.type?exprs:/* prop */properties?resolveProperties(context.state,cx.target,context,properties):[],options.length?{options,from,validFor:/^[\w\u00c0-\uffff]*$/}:null}}/**
5
+ This extension will, when the user types a `%` between two
6
+ matching braces, insert two percent signs instead and put the
7
+ cursor between them.
8
+ */function statementIndent(except){return context=>{let back=except.test(context.textAfter);return context.lineIndent(context.node.from)+(back?0:context.unit)}}function makeJinja(base){return tagLanguage.configure({wrap:common.parseMixed(node=>node.type.isTop?{parser:base.parser,overlay:n=>"Text"==n.name||"RawText"==n.name}:null)},"jinja")}/**
9
+ A language provider for Jinja templates.
10
+ */ /**
11
+ Jinja template support.
12
+ */function jinja(config={}){let base=config.base||baseHTML,lang=base.language==baseHTML.language?jinjaLanguage:makeJinja(base.language);return new language.LanguageSupport(lang,[base.support,lang.data.of({autocomplete:jinjaCompletionSource(config)}),base.language.data.of({closeBrackets:{brackets:["{"]}}),closePercentBrace])}if(hasRequiredDist)return dist;hasRequiredDist=1;var language=require$$0,langHtml=require$$1,highlight=require$$2,common=require$$3,lr=require$$4,state=require$$5,view=require$$6;// This file was generated by lezer-generator. You probably shouldn't edit it.
13
+ const interpolationStart=1,commentTagStart=2,tagStart=3,text=155,endrawTagStart=4,rawText=156,base=new lr.ExternalTokenizer(input=>{let start=input.pos;for(;;){let{next}=input;if(0>next)break;if(123==next/* Ch.BraceL */){let after=input.peek(1);if(123==after/* Ch.BraceL */){if(input.pos>start)break;return void input.acceptToken(interpolationStart,2)}if(35==after/* Ch.Hash */){if(input.pos>start)break;return void input.acceptToken(commentTagStart,2)}if(37==after/* Ch.Percent */){if(input.pos>start)break;for(let next,scan=2,size=2;;)if(next=input.peek(scan),32==next/* Ch.Space */||10==next/* Ch.Newline */)++scan;else if(35==next/* Ch.Hash */)for(++scan;;){let comment=input.peek(scan);if(0>comment||10==comment/* Ch.Newline */)break;scan++}else if(45==next/* Ch.Dash */&&2==size)size=++scan;else return void input.acceptToken(tagStart,size)}}if(input.advance(),10==next/* Ch.Newline */)break}input.pos>start&&input.acceptToken(text)}),raw=rawTokenizer("endraw",156,4),spec_identifier={__proto__:null,in:38,is:40,and:46,or:48,not:52,if:78,else:80,true:98,false:98,self:100,super:102,loop:104,recursive:136,scoped:160,required:162,as:256,import:260,ignore:268,missing:270,with:272,without:274,context:276},spec_TagName={__proto__:null,if:112,elif:118,else:122,endif:126,for:132,endfor:140,raw:146,endraw:152,block:158,endblock:166,macro:172,endmacro:182,call:188,endcall:192,filter:198,endfilter:202,set:208,endset:212,trans:218,pluralize:222,endtrans:226,with:232,endwith:236,autoescape:242,endautoescape:246,import:254,from:258,include:266},parser=lr.LRParser.deserialize({version:14,states:"!*dQVOPOOOOOP'#F`'#F`OeOTO'#CbOvQSO'#CdO!kOPO'#DcO!yOPO'#DnO#XOQO'#DuO#^OPO'#D{O#lOPO'#ESO#zOPO'#E[O$YOPO'#EaO$hOPO'#EfO$vOPO'#EkO%UOPO'#ErO%dOPO'#EwOOOP'#F|'#F|O%rQWO'#E|O&sO#tO'#F]OOOP'#Fq'#FqOOOP'#F_'#F_QVOPOOOOOP-E9^-E9^OOQO'#Ce'#CeO'sQSO,59OO'zQSO'#DWO(RQSO'#DXO(YQ`O'#DZOOQO'#Fr'#FrOvQSO'#CuO(aOPO'#CbOOOP'#Fd'#FdO!kOPO,59}OOOP,59},59}O(oOPO,59}O(}QWO'#E|OOOP,5:Y,5:YO)[OPO,5:YO!yOPO,5:YO)jQWO'#E|OOOQ'#Ff'#FfO)tOQO'#DxO)|OQO,5:aOOOP,5:g,5:gO#^OPO,5:gO*RQWO'#E|OOOP,5:n,5:nO#lOPO,5:nO*YQWO'#E|OOOP,5:v,5:vO#zOPO,5:vO*aQWO'#E|OOOP,5:{,5:{O$YOPO,5:{O*hQWO'#E|OOOP,5;Q,5;QO$hOPO,5;QO*oQWO'#E|OOOP,5;V,5;VO*vOPO,5;VO$vOPO,5;VO+UQWO'#E|OOOP,5;^,5;^O%UOPO,5;^O+`QWO'#E|OOOP,5;c,5;cO%dOPO,5;cO+gQWO'#E|O+nQSO,5;hOvQSO,5:OO+uQSO,5:ZO+zQSO,5:bO+uQSO,5:hO+uQSO,5:oO,PQSO,5:wO,XQpO,5:|O+uQSO,5;RO,^QSO,5;WO,fQSO,5;_OvQSO,5;dOvQSO,5;jOvQSO,5;jOvQSO,5;pOOOO'#Fk'#FkO,nO#tO,5;wOOOP-E9]-E9]O,vQ!bO,59QOvQSO,59TOvQSO,59UOvQSO,59UOvQSO,59UOvQSO,59UO,{QSO'#C}O,XQpO,59cOOQO,59q,59qOOOP1G.j1G.jOvQSO,59UO-SQSO,59UOvQSO,59UOvQSO,59UOvQSO,59nO-wQSO'#FxO.RQSO,59rO.WQSO,59tOOQO,59s,59sO.bQSO'#D[O.iQWO'#F{O.qQWO,59uO0WQSO,59aOOOP-E9b-E9bOOOP1G/i1G/iO(oOPO1G/iO(oOPO1G/iO)TQWO'#E|OvQSO,5:SO0nQSO,5:UO0sQSO,5:WOOOP1G/t1G/tO)[OPO1G/tO)mQWO'#E|O)[OPO1G/tO0xQSO,5:_OOOQ-E9d-E9dOOOP1G/{1G/{O0}QWO'#DyOOOP1G0R1G0RO1SQSO,5:lOOOP1G0Y1G0YO1[QSO,5:tOOOP1G0b1G0bO1aQSO,5:yOOOP1G0g1G0gO1fQSO,5;OOOOP1G0l1G0lO1kQSO,5;TOOOP1G0q1G0qO*vOPO1G0qO+XQWO'#E|O*vOPO1G0qOvQSO,5;YO1pQSO,5;[OOOP1G0x1G0xO1uQSO,5;aOOOP1G0}1G0}O1zQSO,5;fO2PQSO1G1SOOOP1G1S1G1SO2WQSO1G/jOOQO'#Dq'#DqO2_QSO1G/uOOOQ1G/|1G/|O2gQSO1G0SO2rQSO1G0ZO2zQSO'#EVO3SQSO1G0cO,SQSO1G0cO4fQSO'#FvOOQO'#Fv'#FvO5]QSO1G0hO5bQSO1G0mOOOP1G0r1G0rO5mQSO1G0rO5rQSO'#GOO5zQSO1G0yO6PQSO1G1OO6WQSO1G1UO6_QSO1G1UO6fQSO1G1[OOOO-E9i-E9iOOOP1G1c1G1cOOQO1G.l1G.lO6vQSO1G.oO8wQSO1G.pO:oQSO1G.pO:vQSO1G.pO<nQSO1G.pO<uQSO'#FwO>QQSO'#FrO>XQSO'#FwO>aQSO,59iOOQO1G.}1G.}O>fQSO1G.pO@aQSO1G.pOB_QSO1G.pOBfQSO1G.pOD^QSO1G/YOvQSO'#FbODeQSO,5<dOOQO1G/^1G/^ODmQSO1G/_OOQO1G/`1G/`ODuQSO,59vOvQSO'#FcOEjQWO,5<gOOQO1G/a1G/aPErQWO'#E|OOOP7+%T7+%TO(oOPO7+%TOEyQSO1G/nOOOP1G/p1G/pOOOP1G/r1G/rOOOP7+%`7+%`O)[OPO7+%`OOOP1G/y1G/yOFQQSO,5:eOOOP1G0W1G0WOFVQSO1G0WOOOP1G0`1G0`OOOP1G0e1G0eOOOP1G0j1G0jOOOP1G0o1G0oOOOP7+&]7+&]O*vOPO7+&]OF[QSO1G0tOOOP1G0v1G0vOOOP1G0{1G0{OOOP1G1Q1G1QOOOP7+&n7+&nOOOP7+%U7+%UO+uQSO'#FeOFcQSO7+%aOvQSO7+%aOOOP7+%n7+%nOFkQSO7+%nOFpQSO7+%nOOOP7+%u7+%uOFxQSO7+%uOF}QSO'#F}OGQQSO'#F}OGYQSO,5:qOOOP7+%}7+%}OG_QSO7+%}OGdQSO7+%}OOQO,59f,59fOOOP7+&S7+&SOGlQSO7+&oOOOP7+&X7+&XOvQSO7+&oOvQSO7+&^OGtQSO,5<jOvQSO,5<jOOOP7+&e7+&eOOOP7+&j7+&jO+uQSO7+&pOG|QSO7+&pOOOP7+&v7+&vOHRQSO7+&vOHWQSO7+&vOOQO7+$Z7+$ZOvQSO'#FaOH]QSO,5<cOvQSO,59jOOQO1G/T1G/TOOQO7+$[7+$[OvQSO7+$tOHeQSO,5;|OOQO-E9`-E9`OOQO7+$y7+$yOImQ`O1G/bOIwQSO'#D^OOQO,5;},5;}OOQO-E9a-E9aOOOP<<Ho<<HoOOOP7+%Y7+%YOOOP<<Hz<<HzOOOP1G0P1G0POOOP7+%r7+%rOOOP<<Iw<<IwOOOP7+&`7+&`OOQO,5<P,5<POOQO-E9c-E9cOvQSO<<H{OJOQSO<<H{OOOP<<IY<<IYOJYQSO<<IYOOOP<<Ia<<IaOvQSO,5:rO+uQSO'#FgOJ_QSO,5<iOOQO1G0]1G0]OOOP<<Ii<<IiOJgQSO<<IiOvQSO<<JZOJlQSO<<JZOJsQSO<<IxOvQSO1G2UOJ}QSO1G2UOKXQSO<<J[OK^QSO'#CeOOQO'#FT'#FTOKiQSO'#FTOKnQSO<<J[OKvQSO<<JbOK{QSO<<JbOLWQSO,5;{OLbQSO'#FrOOQO,5;{,5;{OOQO-E9_-E9_OLiQSO1G/UOM}QSO<<H`O! ]Q`O,59aODuQSO,59xO! sQSOAN>gOOOPAN>gAN>gO! }QSOAN>gOOOPAN>tAN>tO!!SQSO1G0^O!!^QSO,5<ROOQO,5<R,5<ROOQO-E9e-E9eOOOPAN?TAN?TO!!iQSOAN?uOOOPAN?uAN?uO+uQSO'#FhO!!pQSOAN?dOOOPAN?dAN?dO!!xQSO7+'pO+uQSO'#FiO!#SQSO7+'pOOOPAN?vAN?vO+uQSO,5;oOG|QSO'#FjO!#[QSOAN?vOOOPAN?|AN?|O!#dQSOAN?|OvQSO,59mO!$sQ`O1G.pO!%{Q`O1G.pO!&SQ`O1G.pO!'[Q`O1G.pO!'cQ`O'#FvO!'jQ`O1G.pO!(uQ`O1G.pO!*TQ`O1G.pO!*[Q`O1G.pO!+dQ`O1G/YO!+kQ`O1G/dOOOPG24RG24RO!+uQSOG24ROvQSO,5:sOOOPG25aG25aO!+zQSO,5<SOOQO-E9f-E9fOOOPG25OG25OO!,PQSO<<K[O!,XQSO,5<TOOQO-E9g-E9gOOQO1G1Z1G1ZOOQO,5<U,5<UOOQO-E9h-E9hOOOPG25bG25bO!,aQSOG25hO!,fQSO1G/XOOOPLD)mLD)mO!,pQSO1G0_OvQSO1G1nO!,zQSO1G1oOvQSO1G1oOOOPLD+SLD+SO!-wQ`O<<H`O!.[QSO7+'YOvQSO7+'ZO!.fQSO7+'ZO!.pQSO<<JuODuQSO'#CuODuQSO,59UODuQSO,59UODuQSO,59UODuQSO,59UO!.zQpO,59cODuQSO,59UO!/PQSO,59UODuQSO,59UODuQSO,59UODuQSO,59nO!/tQSO1G.pP!0RQSO1G/YODuQSO7+$tO!0YQ`O1G.pP!0gQ`O1G/YO-SQSO,59UPvQSO,59nO!0nQSO,59aP!3XQSO1G.pP!3`QSO1G.pP!5aQSO1G/YP!5hQSO<<H`O!/PQSO,59UPDuQSO,59nP!6_QSO1G/YP!7pQ`O1G/YO-SQSO'#CuO-SQSO,59UO-SQSO,59UO-SQSO,59UO-SQSO,59UO-SQSO,59UP-SQSO,59UP-SQSO,59UP-SQSO,59nO!7wQSO1G.pO!9xQSO1G.pO!:PQSO1G.pO!;UQSO1G.pP-SQSO7+$tO!<XQ`O,59aP!>SQ`O1G.pP!>ZQ`O1G.pP!>bQ`O1G/YP!?QQ`O<<H`O!/PQSO'#CuO!/PQSO,59UO!/PQSO,59UO!/PQSO,59UO!/PQSO,59UO!/PQSO,59UP!/PQSO,59UP!/PQSO,59UP!/PQSO,59nP!/PQSO7+$tP-SQSO,59nP!/PQSO,59nO!?zQ`O1G.pO!@RQ`O1G.pO!@fQ`O1G.pO!@yQ`O1G.p",stateData:"!Ac~O$dOS~OPROQaOR`O$aPO~O$aPOPUXQUXRUX$`UX~OekOfkOjlOpiO!RkO!SkO!TkO!UkO$gfO$ihO$njO~OPROQaORrO$aPO~OPROQaORvO$aPO~O$bwO~OPROQaOR|O$aPO~OPROQaOR!PO$aPO~OPROQaOR!SO$aPO~OPROQaOR!VO$aPO~OPROQaOR!YO$aPO~OPROQaOR!^O$aPO~OPROQaOR!aO$aPO~OPROQaOR!dO$aPO~O!X!eO!Y!fO!d!gO!k!hO!q!iO!x!jO#Q!kO#V!lO#[!mO#a!nO#h!oO#m!pO#s!qO#u!rO#y!sO~O$s!tO~OZ!wO_!yO`!zOa!{Ob!|Oc#ROd#SOg#TOh#UOl#OOp!}Ow#VO$i!xO~OV#QO~P&xO$h$lP~PvOo#ZO~PvO$m$oP~PvO$aPOPUXQUXRUX~OPROQaOR#dO$aPO~O!]#eO!_#fO!a#gO~P%rOPROQaOR#jO$aPO~O!_#fO!h#lO~P%rO$bwOS!lX~OS#oO~O!u#qO~P%rO!}#sO~P%rO#S#uO~P%rO#X#wO~P%rO#^#yO~P%rOPROQaOR#|O$aPO~O#c$OO#e$PO~P%rO#j$RO~P%rO#o$TO~P%rO!Z$VO~PvO$g$XO~O!Z$ZO~Op$^O$gfO~Om$aO~O!Z$eO$g$XO~O$g$XO!Z$rP~O$Q$nO$s!tO~O[$oO~Oo$kP~PvOekOfkOj)fOpiO!RkO!SkO!TkO!UkO$gfO$ihO$njO~Ot%PO$h$lX~P&xO$h%RO~Oo%TOt%PO~P&xO!P%UO~P&xOt%VO$m$oX~O$m%XO~OZ!wOp!}O$i!xOViagiahialiawiatia$hiaoia!Pia!Zia#tia#via#zia#|ia#}iaxia!fia~O_!yO`!zOa!{Ob!|Oc#ROd#SO~P.vO!Z%^O~O!Z%_O~O!Z%bO~O!n%cO~O!Z%dO$g$XO~O!Z%fO~O!Z%gO~O!Z%hO~O!Z%iO~O!Z%mO~O!Z%nO~O!Z%oO~O!Z%pO~P&xO!Z%qO~P&xOc%tOt%rO~O!Z%uO!r%wO!s%vO~Op$^O!Z%xO~O$g$XOo$qP~Op!}O!Z%}O~Op!}OZ$jX_$jX`$jXa$jXb$jXc$jXd$jXg$jXh$jXl$jXw$jX$i$jXt$jXe$jXf$jX$g$jXx$jX~O!Z$jXV$jX$h$jXo$jX!P$jX#t$jX#v$jX#z$jX#|$jX#}$jX!f$jX~P3[O!Z&RO~Os&UOt%rO!Z&TO~Os&VO~Os&XOt%rO~O!Z&YO~O!Z&ZO~P&xO#t&[O~P&xO#v&]O~P&xO!Z&^O#z&`O#|&_O#}&_O~P&xO$h&aO~P&xOZ!wOp!}O$i!xOV^i`^ia^ib^ic^id^ig^ih^il^iw^it^i$h^io^i!P^i!Z^i#t^i#v^i#z^i#|^i#}^ie^if^i$g^ix^i!f^i~O_^i~P6}OZ!wO_!yOp!}O$i!xOV^ia^ib^ic^id^ig^ih^il^iw^it^i$h^io^i!P^i!Z^i#t^i#v^i#z^i#|^i#}^ix^i!f^i~O`^i~P9OO`!zO~P9OOZ!wO_!yO`!zOa!{Op!}O$i!xOV^ic^id^ig^ih^il^iw^it^i$h^io^i!P^i!Z^i#t^i#v^i#z^i#|^i#}^ix^i!f^i~Ob^i~P:}Ot&bOo$kX~P&xOZ$fX_$fX`$fXa$fXb$fXc$fXd$fXg$fXh$fXl$fXo$fXp$fXt$fXw$fX$i$fX~Os&dO~P=POt&bOo$kX~Oo&eO~Ob!|O~P:}OZ!wO_)gO`)hOa)iOb)jOc)kOp!}O$i!xOV^id^ig^ih^il^iw^it^i$h^io^i!P^i!Z^i#t^i#v^i#z^i#|^i#}^ix^i!f^i~Oe&fOf&fO$gfO~P>mOZ!wO_!yO`!zOa!{Ob!|Oc#ROd#SOp!}O$i!xOV^ih^il^iw^it^i$h^io^i!P^i!Z^i#t^i#v^i#z^i#|^i#}^ix^i!f^i~Og^i~P@nOg#TO~P@nOZ!wO_!yO`!zOa!{Ob!|Oc#ROd#SOg#TOh#UOp!}O$i!xOVvilviwvitvi$hviovi!Pvi!Zvi#tvi#vvi#zvi#|vi#}vi!fvi~Ox&gO~PBmOt%PO$h$la~Oo&jOt%PO~OekOfkOj(yOpiO!RkO!SkO!TkO!UkO$gfO$ihO$njO~Ot%VO$m$oa~O!]#eO~P%rO!Z&pO~P&xO!Z&rO~O!Z&sO~O!Z&uO~P&xOc&xOt%rO~O!Z&zO~O!Z&zO!s&{O~O!Z&|O~Os&}Ot'OOo$qX~Oo'QO~O!Z'RO~Op!}O!Z'RO~Os'TOt%rO~Os'WOt%rO~O$g'ZO~O$O'_O~O#{'`O~Ot&bOo$ka~Ot$Ua$h$Uao$Ua~P&xOZ!wO_(zO`({Oa(|Ob(}Oc)POd)QOg)ROh)SOl)OOp!}Ow)TO$i!xO~Ot!Oi$m!Oi~PHrO!P'hO~P&xO!Z'jO!f'kO~P&xO!Z'lO~Ot'OOo$qa~O!Z'qO~O!Z'sO~P&xOt'tO!Z'vO~P&xOt'xO!Z$ri~P&xO!Z'zO~Ot!eX!Z!eX#tXX~O#t'{O~Ot'|O!Z'zO~O!Z(OO~O!Z(OO#|(PO#}(PO~Oo$Tat$Ta~P&xOs(QO~P=POoritri~P&xOZ!wOp!}O$i!xOVvylvywvytvy$hvyovy!Pvy!Zvy#tvy#vvy#zvy#|vy#}vyxvy!fvy~O_!yO`!zOa!{Ob!|Oc#ROd#SOg#TOh#UO~PLsOZ!wOp!}O$i!xOgiahialiatiawia$miaxia~O_(zO`({Oa(|Ob(}Oc)POd)QO~PNkO!Z(^O!f(_O~P&xO!Z(^O~Oo!zit!zi~P&xOs(`Oo$Zat$Za~O!Z(aO~P&xOt'tO!Z(dO~Ot'xO!Z$rq~P&xOt'xO!Z$rq~Ot'|O!Z(kO~O$O(lO~OZ!wOp!}O$i!xO`^ia^ib^ic^id^ig^ih^il^it^iw^i$m^ie^if^i$g^ix^i~O_^i~P!#iOZ!wO_(zOp!}O$i!xOa^ib^ic^id^ig^ih^il^it^iw^i$m^ix^i~O`^i~P!$zO`({O~P!$zOZ!wO_(zO`({Oa(|Op!}O$i!xOc^id^ig^ih^il^it^iw^i$m^ix^i~Ob^i~P!&ZO$m$jX~P3[Ob(}O~P!&ZOZ!wO_)zO`){Oa)|Ob)}Oc*OOp!}O$i!xOd^ig^ih^il^it^iw^i$m^ix^i~Oe&fOf&fO$gfO~P!'qOZ!wO_(zO`({Oa(|Ob(}Oc)POd)QOp!}O$i!xOh^il^it^iw^i$m^ix^i~Og^i~P!)SOg)RO~P!)SOZ!wO_(zO`({Oa(|Ob(}Oc)POd)QOg)ROh)SOp!}O$i!xOlvitviwvi$mvi~Ox)WO~P!*cOt!Qi$m!Qi~PHrO!Z(nO~Os(pO~Ot'xO!Z$ry~Os(rOt%rO~O!Z(sO~Oouitui~P&xOo!{it!{i~P&xOs(vOt%rO~OZ!wO_(zO`({Oa(|Ob(}Oc)POd)QOg)ROh)SOp!}O$i!xO~Olvytvywvy$mvyxvy~P!-SOt$[q!Z$[q~P&xOt$]q!Z$]q~P&xOt$]y!Z$]y~P&xOm(VO~OekOfkOj)yOpiO!RkO!SkO!TkO!UkO$gfO$ihO$njO~Oe^if^i$g^i~P>mOxvi~PBmOe^if^i$g^i~P!'qOxvi~P!*cO_)gO`)hOa)iOb)jOc)kOd)ZOeiafia$gia~P.vOZ!wO_)gO`)hOa)iOb)jOc)kOd)ZOp!}O$i!xOV^ie^if^ih^il^iw^i$g^it^i$h^io^i!P^i!Z^i#t^i#v^i#z^i#|^i#}^ix^i!f^i~Og^i~P!1_Og)lO~P!1_OZ!wO_)gO`)hOa)iOb)jOc)kOd)ZOg)lOh)mOp!}O$i!xOVvievifvilviwvi$gvitvi$hviovi!Pvi!Zvi#tvi#vvi#zvi#|vi#}vi!fvi~Ox)sO~P!3gO_)gO`)hOa)iOb)jOc)kOd)ZOg)lOh)mOevyfvy$gvy~PLsOxvi~P!3gOZ!wO_)zO`){Oa)|Ob)}Oc*OOd)bOg*POh*QOp!}O$i!xOevifvilvitviwvi$gvi$mvi~Oxvi~P!6fO_)gO~P6}OZ!wO_)gO`)hOp!}O$i!xOV^ib^ic^id^ie^if^ig^ih^il^iw^i$g^it^i$h^io^i!P^i!Z^i#t^i#v^i#z^i#|^i#}^ix^i!f^i~Oa^i~P!8OOa)iO~P!8OOZ!wOp!}O$i!xOc^id^ie^if^ig^ih^il^iw^i$g^it^ix^i~O_)gO`)hOa)iOb)jOV^i$h^io^i!P^i!Z^i#t^i#v^i#z^i#|^i#}^i!f^i~P!:WO_)zO`){Oa)|Ob)}Oc*OOd)bOeiafia$gia~PNkOZ!wO_)zO`){Oa)|Ob)}Oc*OOd)bOp!}O$i!xOe^if^ih^il^it^iw^i$g^i$m^ix^i~Og^i~P!<xOg*PO~P!<xOx*SO~P!6fOZ!wO_)zO`){Oa)|Ob)}Op!}O$i!xO~Oc*OOd)bOg*POh*QOevyfvylvytvywvy$gvy$mvyxvy~P!>iO_)zO~P!#iO_)zO`){Oa^ib^i$m^i~P!:WO_)zO`){Oa)|Ob^i$m^i~P!:WO_)zO`){Oa)|Ob)}O$m^i~P!:WOfaZa~",goto:"Cy$sPPPPPP$tP$t%j'sPP's'sPPPPPPPPPP'sP'sPP)jPP)o+nPP+q'sPP's's's's's+tP+wPPPP+z,pPPP-fP-jP-vP+z.UP.zP/zP+z0YP1O1RP+z1UPPP1zP+z2QP2v2|3P3SP+z3YP4OP+z4UP4zP+z5QP5vP+z5|P6rP6xP+z7WP7|P+z8SP8xP$t$t$tPPPP9O$tPPPPPP$tP9U:j;f;m;w;}<T<g<m<t<z=U=[PPPPP=b>YPPPCcCjCmPPCp$tCsCv!gbOSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%k$dkRhijl!e!f!p!q!r!s!x!y!z!{!|#R#S#T#U#V#e$O%P%U%V%t&U&V&X&d&g&x&}'T'W'h(Q(`(p(r(v(y(z({(|(})P)Q)R)S)T)W)Z)[)b)c)f)g)h)i)j)k)l)m)n)s)y)z){)|)}*O*P*Q*R*S*T*UQ$_!kQ$v!}Q&P$`S&f${(XS']&]'|R'b&b$ikRhijl!e!f!p!q!r!s!x!y!z!{!|!}#R#S#T#U#V#e$O%P%U%V%t&U&V&X&b&d&g&x&}'T'W'h(Q(`(p(r(v(y(z({(|(})P)Q)R)S)T)W)Z)[)b)c)f)g)h)i)j)k)l)m)n)s)y)z){)|)}*O*P*Q*R*S*T*UV$b!l#O)O$d#Pg#W#Y#[#_$U$W$i$j$k$l$p$q$r$s$t$u$z${$|$}%O%]%l&h&k&l&y'U'V'X'a'e'f'g'i'm'r'w(R(S(T(U(W(X(Y(Z([(](m(o(t(u(w(x)U)V)X)Y)])^)_)`)a)d)e)o)p)q)r)t)u)v)w)x*V*W*X*YQ&O$_S&Q$a(VR'S&PR$w!}R'c&bR#]jR&m%V!g_OSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%k!gSOSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kTnSoQqSQtTQ#boR#kuQpSS#aoqS%Z#b#cR&o%[!gTOSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kQ$Y!gQ$[!iQ$]!jQ$d!mQ$f!nQ$g!oQ%e#qQ%z$^Q&v%rQ'Y&[S'[&]'|Q'n'OQ(b'tQ(f'xR(h'{QsTS#htuS%`#i#kR&q%a!gUOSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kRyUR#ny!gVOSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kQzVR#p{!gWOSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kQ$`!kR%y$]R%{$^R'o'OQ}WR#r!O!gXOSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kQ!QXR#t!R!gYOSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kQ!TYR#v!U!gZOSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kQ!WZR#x!X!g[OSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kQ![[R#}!]Q!Z[S#z![!]S%j#{#}R&t%k!g]OSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kQ!_]R$Q!`!g^OSTVWXYZ[]^doqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kQ!b^R$S!cQ'^&]R(i'|QdOQuTQ{VQ!OWQ!RXQ!UYQ!XZQ!][Q!`]Q!c^p!vdu{!O!R!U!X!]!`!c#c#i#{%[%a%kQ#cqQ#itQ#{![Q%[#bQ%a#kR%k#}SQOdSeQm!cmSTVWXYZ[]^oqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kS&c$u$wR'd&cQ%Q#WQ%S#YT&i%Q%SQ%W#]R&n%WQoSR#`oQ%s$YQ&S$dQ&W$gW&w%s&S&W(qR(q(fQxUR#mxS'P%z%{R'p'PQ'u'VR(c'uQ'y'XQ(e'wT(g'y(eQ'}'^R(j'}Q!uaR$m!u!bcOTVWXYZ[]^dqtu{!O!R!U!X![!]!`!c#b#c#i#k#{#}%[%a%kTnSoQgRQ#WhQ#YiQ#[jQ#_lQ$U!eQ$W!fQ$i!pQ$j!qQ$k!rQ$l!sQ$p!xS$q!y)gQ$r!zQ$s!{Q$t!|Q$u!}Q$z#RQ${#SQ$|#TQ$}#UQ%O#VQ%]#eQ%l$OQ&h%PQ&k%UQ&l%VQ&y%tQ'U&UQ'V&VQ'X&XQ'a&bQ'e&dQ'f&gQ'g(yQ'i&xQ'm&}Q'r'TQ'w'WS(R(z)zQ(S({Q(T(|Q(U(}Q(W)PQ(X)QQ(Y)RQ(Z)SQ([)TQ(]'hQ(m(QQ(o(`Q(t)WQ(u(pQ(w(rQ(x(vQ)U)ZQ)V)[Q)X)bQ)Y)cQ)])fQ)^)lQ)_)mQ)`)nQ)a)sQ)d*TQ)e*UQ)o)hQ)p)iQ)q)jQ)r)kQ)t)yQ)u*PQ)v*QQ)w*RQ)x*SQ*V){Q*W)|Q*X)}R*Y*OQ$c!lT$y#O)OR$x!}R#XhR#^jR%|$^R$h!o",nodeNames:"\u26A0 {{ {# {% {% Template Text }} Interpolation VariableName MemberExpression . PropertyName SubscriptExpression BinaryExpression ConcatOp ArithOp ArithOp CompareOp in is StringLiteral NumberLiteral and or NotExpression not FilterExpression FilterOp FilterName FilterCall ) ( ArgumentList NamedArgument AssignOp , NamedArgument ConditionalExpression if else CallExpression ArrayExpression TupleExpression ParenthesizedExpression DictExpression Entry : Entry BooleanLiteral self super loop IfStatement Tag TagName if %} Tag elif Tag else EndTag endif ForStatement Tag for Definition recursive EndTag endfor RawStatement Tag raw RawText EndTag endraw BlockStatement Tag block scoped required EndTag endblock MacroStatement Tag macro ParamList OptionalParameter OptionalParameter EndTag endmacro CallStatement Tag call EndTag endcall FilterStatement Tag filter EndTag endfilter SetStatement Tag set EndTag endset TransStatement Tag trans Tag pluralize EndTag endtrans WithStatement Tag with EndTag endwith AutoescapeStatement Tag autoescape EndTag endautoescape Tag Tag Tag import as from import ImportItem Tag include ignore missing with without context Comment #}",maxTerm:173,nodeProps:[["closedBy",1,"}}",2,"#}",-2,3,4,"%}",32,")"],["openedBy",7,"{{",31,"(",57,"{%",140,"{#"],["group",-18,9,10,13,14,21,22,25,27,38,41,42,43,44,45,49,50,51,52,"Expression",-11,53,64,71,77,84,92,97,102,107,114,119,"Statement"]],skippedNodes:[0],repeatNodeCount:13,tokenData:".|~RqXY#YYZ#Y]^#Ypq#Yqr#krs#vuv&nwx&{xy)nyz)sz{)x{|*V|}+|}!O,R!O!P,g!P!Q,o!Q![+h![!],w!^!_,|!_!`-U!`!a,|!c!}-^!}#O.U#P#Q.Z#R#S-^#T#o-^#o#p.`#p#q.e#q#r.j#r#s.w%W;'S-^;'S;:j.O<%lO-^~#_S$d~XY#YYZ#Y]^#Ypq#Y~#nP!_!`#q~#vOb~~#yWOY#vZr#vrs$cs#O#v#O#P$h#P;'S#v;'S;=`%x<%lO#v~$hOe~~$kYOY#vYZ#vZr#vrs%Zs#O#v#O#P$h#P;'S#v;'S;=`&O;=`<%l#v<%lO#v~%`We~OY#vZr#vrs$cs#O#v#O#P$h#P;'S#v;'S;=`%x<%lO#v~%{P;=`<%l#v~&RXOY#vZr#vrs$cs#O#v#O#P$h#P;'S#v;'S;=`%x;=`<%l#v<%lO#v~&sP`~#q#r&v~&{O!Z~~'OWOY&{Zw&{wx$cx#O&{#O#P'h#P;'S&{;'S;=`(x<%lO&{~'kYOY&{YZ&{Zw&{wx(Zx#O&{#O#P'h#P;'S&{;'S;=`)O;=`<%l&{<%lO&{~(`We~OY&{Zw&{wx$cx#O&{#O#P'h#P;'S&{;'S;=`(x<%lO&{~({P;=`<%l&{~)RXOY&{Zw&{wx$cx#O&{#O#P'h#P;'S&{;'S;=`(x;=`<%l&{<%lO&{~)sOp~~)xOo~~)}P`~z{*Q~*VO`~~*[Qa~!O!P*b!Q![+h~*eP!Q![*h~*mSf~!Q![*h!g!h*y#R#S*h#X#Y*y~*|R{|+V}!O+V!Q![+]~+YP!Q![+]~+bQf~!Q![+]#R#S+]~+mTf~!O!P*b!Q![+h!g!h*y#R#S+h#X#Y*y~,ROt~~,WRa~uv,a!O!P*b!Q![+h~,dP#q#r&v~,lPZ~!Q![*h~,tP`~!P!Q*Q~,|O!P~~-RPb~!_!`#q~-ZPs~!_!`#q!`-iVm`[p!XS$gY!Q![-^!c!}-^#R#S-^#T#o-^%W;'S-^;'S;:j.O<%lO-^!`.RP;=`<%l-^~.ZO$i~~.`O$h~~.eO$n~~.jOl~^.oP$m[#q#r.rQ.wOVQ~.|O_~",tokenizers:[base,raw,1,2,3,4,5,new lr.LocalTokenGroup("b~RPstU~XP#q#r[~aO$Q~~",17,173)],topRules:{Template:[0,5]},specialized:[{term:161,get:value=>spec_identifier[value]||-1},{term:55,get:value=>spec_TagName[value]||-1}],tokenPrec:3602}),Filters=completions("abs attr batch capitalize center default dictsort escape filesizeformat first float forceescape format groupby indent int items join last length list lower map max min pprint random reject rejectattr replace reverse round safe select selectattr slice sort string striptags sum title tojson trim truncate unique upper urlencode urlize wordcount wordwrap xmlattr","function"),Functions=completions("boolean callable defined divisibleby eq escaped even filter float ge gt in integer iterable le lower lt mapping ne none number odd sameas sequence string test undefined upper range lipsum dict joiner namespace","function"),Globals=completions("loop super self true false varargs kwargs caller name arguments catch_kwargs catch_varargs caller","keyword"),Expressions=Functions.concat(Globals),Tags=completions("raw endraw filter endfilter trans pluralize endtrans with endwith autoescape endautoescape if elif else endif for endfor call endcall block endblock set endset macro endmacro import include break continue debug do extends","keyword"),closePercentBrace=view.EditorView.inputHandler.of((view,from,to,text)=>"%"==text&&from==to&&"{}"==view.state.doc.sliceString(from-1,to+1)&&(view.dispatch(view.state.changeByRange(range=>({changes:{from:range.from,to:range.to,insert:"%%"},range:state.EditorSelection.cursor(range.from+1)})),{scrollIntoView:!0,userEvent:"input.type"}),!0)),tagLanguage=language.LRLanguage.define({name:"jinja",parser:parser.configure({props:[highlight.styleTags({"TagName raw endraw filter endfilter as trans pluralize endtrans with endwith autoescape endautoescape":highlight.tags.keyword,"required scoped recursive with without context ignore missing":highlight.tags.modifier,self:highlight.tags.self,"loop super":highlight.tags.standard(highlight.tags.variableName),"if elif else endif for endfor call endcall":highlight.tags.controlKeyword,"block endblock set endset macro endmacro import from include":highlight.tags.definitionKeyword,"Comment/...":highlight.tags.blockComment,VariableName:highlight.tags.variableName,Definition:highlight.tags.definition(highlight.tags.variableName),PropertyName:highlight.tags.propertyName,FilterName:highlight.tags.special(highlight.tags.variableName),ArithOp:highlight.tags.arithmeticOperator,AssignOp:highlight.tags.definitionOperator,"not and or":highlight.tags.logicOperator,CompareOp:highlight.tags.compareOperator,"in is":highlight.tags.operatorKeyword,"FilterOp ConcatOp":highlight.tags.operator,StringLiteral:highlight.tags.string,NumberLiteral:highlight.tags.number,BooleanLiteral:highlight.tags.bool,"{% %} {# #} {{ }} { }":highlight.tags.brace,"( )":highlight.tags.paren,".":highlight.tags.derefOperator,": , .":highlight.tags.punctuation}),language.indentNodeProp.add({Tag:language.delimitedIndent({closing:"%}"}),"IfStatement ForStatement":statementIndent(/^\s*(\{%-?\s*)?(endif|endfor|else|elif)\b/),Statement:statementIndent(/^\s*(\{%-?\s*)?end\w/)}),language.foldNodeProp.add({"Statement Comment"(tree){let first=tree.firstChild,last=tree.lastChild;return first&&("Tag"==first.name||"{#"==first.name)?{from:first.to,to:"EndTag"==last.name||"#}"==last.name?last.from:tree.to}:null}})]}),languageData:{indentOnInput:/^\s*{%-?\s*(?:end|elif|else)$/}}),baseHTML=langHtml.html(),jinjaLanguage=makeJinja(baseHTML.language);// FIXME inline
14
+ // This file was generated by lezer-generator. You probably shouldn't edit it.
15
+ return dist.closePercentBrace=closePercentBrace,dist.jinja=jinja,dist.jinjaCompletionSource=jinjaCompletionSource,dist.jinjaLanguage=jinjaLanguage,dist}(),index=/*@__PURE__*/function getDefaultExportFromCjs(x){return x}(distExports);return module.exports=index,module.exports}
@@ -0,0 +1,10 @@
1
+ async function moduleInitFunction(requireAsyncModule,exports={}){const module={exports:exports};var hasRequiredDist,require$$0=await requireAsyncModule("@lezer/json"),require$$1=await requireAsyncModule("@codemirror/language"),dist={},distExports=function requireDist(){function getErrorPosition(error,doc){let m;return(m=error.message.match(/at position (\d+)/))?Math.min(+m[1],doc.length):(m=error.message.match(/at line (\d+) column (\d+)/))?Math.min(doc.line(+m[1]).from+ +m[2]-1,doc.length):0}/**
2
+ A language provider that provides JSON parsing.
3
+ */ /**
4
+ JSON language support.
5
+ */function json(){return new language.LanguageSupport(jsonLanguage)}if(hasRequiredDist)return dist;hasRequiredDist=1;var json$1=require$$0,language=require$$1;/**
6
+ Calls
7
+ [`JSON.parse`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse)
8
+ on the document and, if that throws an error, reports it as a
9
+ single diagnostic.
10
+ */const jsonParseLinter=()=>view=>{try{JSON.parse(view.state.doc.toString())}catch(e){if(!(e instanceof SyntaxError))throw e;const pos=getErrorPosition(e,view.state.doc);return[{from:pos,message:e.message,severity:"error",to:pos}]}return[]},jsonLanguage=language.LRLanguage.define({name:"json",parser:json$1.parser.configure({props:[language.indentNodeProp.add({Object:language.continuedIndent({except:/^\s*\}/}),Array:language.continuedIndent({except:/^\s*\]/})}),language.foldNodeProp.add({"Object Array":language.foldInside})]}),languageData:{closeBrackets:{brackets:["[","{","\""]},indentOnInput:/^\s*[\}\]]$/}});return dist.json=json,dist.jsonLanguage=jsonLanguage,dist.jsonParseLinter=jsonParseLinter,dist}(),index=/*@__PURE__*/function getDefaultExportFromCjs(x){return x}(distExports);return module.exports=index,module.exports}
@@ -0,0 +1,10 @@
1
+ async function moduleInitFunction(requireAsyncModule,exports={}){const module={exports:exports};var hasRequiredDist,require$$0=await requireAsyncModule("@codemirror/language"),require$$1=await requireAsyncModule("@codemirror/lang-css"),require$$2=await requireAsyncModule("@lezer/lr"),require$$3=await requireAsyncModule("@lezer/highlight"),dist={},distExports=function requireDist(){function isAlpha(ch){return 65<=ch&&90>=ch||97<=ch&&122>=ch||161<=ch}function isDigit(ch){return 48<=ch&&57>=ch}/**
2
+ Language support for Less.
3
+ */function less(){return new language.LanguageSupport(lessLanguage,lessLanguage.data.of({autocomplete:lessCompletionSource}))}if(hasRequiredDist)return dist;hasRequiredDist=1;var language=require$$0,langCss=require$$1,lr=require$$2,highlight=require$$3;// This file was generated by lezer-generator. You probably shouldn't edit it.
4
+ const descendantOp=110,Unit=1,openArgList=2,space=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],argList=new lr.ExternalTokenizer((input,stack)=>{if(40==input.next/* Ch.parenL */){let prev=input.peek(-1);(isAlpha(prev)||isDigit(prev)||95==prev/* Ch.underscore */||45==prev/* Ch.dash */)&&input.acceptToken(openArgList,1)}}),descendant=new lr.ExternalTokenizer(input=>{if(-1<space.indexOf(input.peek(-1))){let{next}=input;(isAlpha(next)||95==next/* Ch.underscore */||35==next/* Ch.hash */||46==next/* Ch.period */||91==next/* Ch.bracketL */||58==next/* Ch.colon */||45==next/* Ch.dash */)&&input.acceptToken(descendantOp)}}),unitToken=new lr.ExternalTokenizer(input=>{if(0>space.indexOf(input.peek(-1))){let{next}=input;if(37==next/* Ch.percent */&&(input.advance(),input.acceptToken(Unit)),isAlpha(next)){do input.advance();while(isAlpha(input.next));input.acceptToken(Unit)}}}),lessHighlighting=highlight.styleTags({"import charset namespace keyframes media supports when":highlight.tags.definitionKeyword,"from to selector":highlight.tags.keyword,NamespaceName:highlight.tags.namespace,KeyframeName:highlight.tags.labelName,TagName:highlight.tags.tagName,ClassName:highlight.tags.className,PseudoClassName:highlight.tags.constant(highlight.tags.className),IdName:highlight.tags.labelName,"FeatureName PropertyName PropertyVariable":highlight.tags.propertyName,AttributeName:highlight.tags.attributeName,NumberLiteral:highlight.tags.number,KeywordQuery:highlight.tags.keyword,UnaryQueryOp:highlight.tags.operatorKeyword,"CallTag ValueName":highlight.tags.atom,VariableName:highlight.tags.variableName,"AtKeyword Interpolation":highlight.tags.special(highlight.tags.variableName),Callee:highlight.tags.operatorKeyword,Unit:highlight.tags.unit,"UniversalSelector NestingSelector":highlight.tags.definitionOperator,MatchOp:highlight.tags.compareOperator,"ChildOp SiblingOp, LogicOp":highlight.tags.logicOperator,BinOp:highlight.tags.arithmeticOperator,Important:highlight.tags.modifier,"Comment LineComment":highlight.tags.blockComment,ColorLiteral:highlight.tags.color,"ParenthesizedContent StringLiteral":highlight.tags.string,Escape:highlight.tags.special(highlight.tags.string),": ...":highlight.tags.punctuation,"PseudoOp #":highlight.tags.derefOperator,"; ,":highlight.tags.separator,"( )":highlight.tags.paren,"[ ]":highlight.tags.squareBracket,"{ }":highlight.tags.brace}),spec_identifier={__proto__:null,lang:40,"nth-child":40,"nth-last-child":40,"nth-of-type":40,"nth-last-of-type":40,dir:40,"host-context":40,and:244,or:244,not:74,only:74,url:86,"url-prefix":86,domain:86,regexp:86,when:117,selector:142,from:172,to:174},spec_AtKeyword={__proto__:null,"@import":126,"@plugin":126,"@media":152,"@charset":156,"@namespace":160,"@keyframes":166,"@supports":178},parser=lr.LRParser.deserialize({version:14,states:"@^O!gQWOOO!nQaO'#CeOOQP'#Cd'#CdO$RQWO'#CgO$xQaO'#EaO%cQWO'#CiO%kQWO'#DZO%pQWO'#D^O%uQaO'#DfOOQP'#Es'#EsO'YQWO'#DlO'yQWO'#DyO(QQWO'#D{O(xQWO'#D}O)TQWO'#EQO'bQWO'#EWO)YQ`O'#FTO)]Q`O'#FTO)hQ`O'#FTO)vQWO'#EYOOQO'#Er'#ErOOQO'#FV'#FVOOQO'#Ec'#EcO){QWO'#EqO*WQWO'#EqQOQWOOOOQP'#Ch'#ChOOQP,59R,59RO$RQWO,59RO*bQWO'#EdO+PQWO,58|O+_QWO,59TO%kQWO,59uO%pQWO,59xO*bQWO,59{O*bQWO,59}OOQO'#De'#DeO*bQWO,5:OO,bQpO'#E}O,iQWO'#DkOOQO,58|,58|O(QQWO,58|O,pQWO,5:{OOQO,5:{,5:{OOQT'#Cl'#ClO-UQeO,59TO.cQ[O,59TOOQP'#D]'#D]OOQP,59u,59uOOQO'#D_'#D_O.hQpO,59xOOQO'#EZ'#EZO.pQ`O,5;oOOQO,5;o,5;oO/OQWO,5:WO/VQWO,5:WOOQS'#Dn'#DnO/rQWO'#DsO/yQ!fO'#FRO0eQWO'#DtOOQS'#FS'#FSO+YQWO,5:eO'bQWO'#DrOOQS'#Cu'#CuO(QQWO'#CwO0jQ!hO'#CyO2^Q!fO,5:gO2oQWO'#DWOOQS'#Ex'#ExO(QQWO'#DQOOQO'#EP'#EPO2tQWO,5:iO2yQWO,5:iOOQO'#ES'#ESO3RQWO,5:lO3WQ!fO,5:rO3iQ`O'#EkO.pQ`O,5;oOOQO,5:|,5:|O3zQWO,5:tOOQO,5:},5:}O4XQWO,5;]OOQO-E8a-E8aOOQP1G.m1G.mOOQP'#Ce'#CeO5RQaO,5;OOOQP'#Df'#DfOOQO-E8b-E8bOOQO1G.h1G.hO(QQWO1G.hO5fQWO1G.hO5nQeO1G.oO.cQ[O1G.oOOQP1G/a1G/aO6{QpO1G/dO7fQaO1G/gO8cQaO1G/iO9`QaO1G/jO:]Q!fO'#FOO:yQ!fO'#ExOOQO'#FO'#FOOOQO,5;i,5;iO<^QWO,5;iO<iQWO,5:VO<nQ!fO1G.hOOQO1G0g1G0gO=PQWO'#CnOOQP1G.o1G.oO=WQWO'#CqOOQP1G/d1G/dO(QQWO1G/dO=_Q`O1G1ZOOQO1G1Z1G1ZO=mQWO1G/rO=rQ!fO'#FQO>WQWO1G/rO>]Q!fO'#DnO>qQWO,5:ZO>vQ!fO,5:_OOQO'#DP'#DPO'bQWO,5:]O?XQWO'#DwOOQS,5:b,5:bO?`QWO,5:dO'bQWO'#EiO?gQWO,5;mO*bQWO,5:`OOQO1G0P1G0PO?uQ!fO,5:^O@aQ!fO,59cOOQS,59e,59eO(QQWO,59iOOQS,59n,59nO@rQWO,59pOOQO1G0R1G0RO@yQ#tO,59rOARQ!fO,59lOOQO1G0T1G0TOBrQWO1G0TOBwQWO'#ETOOQO1G0W1G0WOOQO1G0^1G0^OOQO,5;V,5;VOOQO-E8i-E8iOCVQ!fO1G0bOCvQWO1G0`O%kQWO'#E_O$RQWO'#E`OEZQWO'#E^OOQO1G0b1G0bPEkQWO'#EcO<nQ!fO7+$SOOQO7+$S7+$SO(QQWO7+$SOOQP7+$Z7+$ZOOQP7+%O7+%OO(QQWO7+%OOEpQ!fO'#EeOF}QWO,5;jO(QQWO,5;jOOQO,5;j,5;jO+gQpO'#EgOG[QWO1G1TOOQO1G1T1G1TOOQO1G/q1G/qOGgQaO'#EvOGnQWO,59YOGsQWO'#EwOG}QWO,59]OHSQ!fO7+%OOOQO7+&u7+&uOOQO7+%^7+%^O(QQWO'#EhOHeQWO,5;lOHmQWO7+%^O(QQWO1G/uOOQS1G/y1G/yOOQS1G/w1G/wOHrQWO,5:cOHwQ!fO1G0OOOQS1G0O1G0OOIYQ!fO,5;TOOQO-E8g-E8gOItQaO1G/zOOQS1G.}1G.}OOQS1G/T1G/TOI{Q!fO1G/[OOQS1G/[1G/[OJ^QWO1G/^OOQO7+%o7+%oOJcQYO'#CyO+YQWO'#EjOJkQWO,5:oOOQO,5:o,5:oOJyQ!fO'#ElO(QQWO'#ElOL^QWO7+%|OOQO7+%|7+%|OOQO7+%z7+%zOOQO,5:y,5:yOOQO,5:z,5:zOLqQaO,5:xOOQO,5:x,5:xOOQO<<Gn<<GnO<nQ!fO<<GnOMRQ!fO<<HjOOQO-E8c-E8cOMdQWO1G1UOOQO,5;R,5;ROOQO-E8e-E8eOOQO7+&o7+&oOMqQWO,5;bOOQP1G.t1G.tO(QQWO'#EfOMyQWO,5;cOOQT1G.w1G.wOOQP<<Hj<<HjONRQ!fO,5;SOOQO-E8f-E8fO/OQWO<<HxONgQWO7+%aOOQS1G/}1G/}OOQS7+%j7+%jOOQS7+%f7+%fOOQS7+$v7+$vOOQS7+$x7+$xOOQO,5;U,5;UOOQO-E8h-E8hOOQO1G0Z1G0ZONnQ!fO,5;WOOQO-E8j-E8jOOQO<<Ih<<IhOOQO1G0d1G0dOOQOAN=YAN=YOOQPAN>UAN>UO!!RQWO,5;QOOQO-E8d-E8dO!!]QWOAN>dOOQS<<H{<<H{OOQOG24OG24O",stateData:"!!n~O#dOSROSSOS~OVXOYXO^TO_TOfaOgbOoaOpWOyVO!OUO!aYO!nZO!p[O!r]O!u^O!{_O#hPO#iRO~O#a#eP~P]O^XX^!}X_XXcXXjXXp!}XyXX!OXX!UXX!ZXX![XX!^XX#PXX#aXX#bXX#iXX#oXX#pXX#p!}X#x!}X!]XX~O#hjO~O^oO_oOcmOyqO!OpO!UrO#bsO#ilO#otO#ptO~OjvO![yO!^wO#P{O!Z#TX#a#TX!]#TX~P$WOd!OO#h|O~O#h!PO~O#h!RO~O#h!TO#p!VO#x!VO^!YX^#wX_!YXc!YXj!YXy!YX!O!YX!U!YX!Z!YX![!YX!^!YX#P!YX#a!YX#b!YX#i!YX#o!YX#p!YX!]!YX~Oj!XOn!WO~Og!^Oj!ZOo!^Op!^Ou!`O!i!]O#h!YO~O!^#uP~P'bOf!fOg!fOh!fOj!bOl!fOn!fOo!fOp!fOu!gO{!eO#h!aO#m!cO~On!iO{!eO#h!hO~O#h!kO~Op!nO#p!VO#x!VO^#wX~OjvO#p!VO#x!VO^#wX~O^!qO~O!Z!rO#a#eX!]#eX~O#a#eX!]#eX~P]OVXOYXO^TO_TOp!xOyVO!OUO#h!vO#iRO~OcmOjvO![!{O!^wO~Od#OO#h|O~Of!fOg#VOh!fOj!bOl!fOn!fOo!fOp!fOu!gO{!eO#h!aO#m!cO#s#WO~Oa#XO~P+gO!]#eP~P]O![!{O!^wO#P#]O!Z#Ta#a#Ta!]#Ta~OQ#^O^]a_]ac]aj]ay]a!O]a!U]a!Z]a![]a!^]a#P]a#a]a#b]a#i]a#o]a#p]a!]]aa]a~OQ#`O~Ow#aO!S#bO~Op!nO#p#dO#x#dO^#wa~O!Z#uP~P'bOa#tP~P(QOg!^Oj!ZOo!^Op!^Ou!`O!i!]O~O#h#hO~P/^OQ#mOc#pOr#lOy#oO#n#kO!^#uX!Z#uXa#uX~Oj#rO~OP#vOQmXrmXymX!ZmX#nmX^mXamXcmXfmXgmXhmXjmXlmXnmXomXpmXumX{mX#hmX#mmX!^mX#PmX#amXwmX!]mX~OQ#`Or#wOy#yO!Z#zO#n#kO~Oj#{O~O!Z#}O~On$OO{!eO~O!^$PO~OQ#mOr#lOy#oO!^wO#n#kO~O#h!TO^#_Xp#_X#p#_X#x#_X~O!O$WO!^wO#i$XO~P(QO!Z!rO#a#ea!]#ea~O^oO_oOyqO!OpO!UrO#bsO#ilO#otO#ptO~Oc#Waj#Wa![#Wa!^#Waa#Wa~P4dO![$_O!^wO~OQ#^O^]i_]ic]ij]iy]i!O]i!U]i!Z]i![]i!^]i#P]i#a]i#b]i#i]i#o]i#p]i!]]ia]i~Ow$aO!S$bO~O^oO_oOyqO!OpO#ilO~Oc!Tij!Ti!U!Ti!Z!Ti![!Ti!^!Ti#P!Ti#a!Ti#b!Ti#o!Ti#p!Ti!]!Tia!Ti~P7TOc!Vij!Vi!U!Vi!Z!Vi![!Vi!^!Vi#P!Vi#a!Vi#b!Vi#o!Vi#p!Vi!]!Via!Vi~P7TOc!Wij!Wi!U!Wi!Z!Wi![!Wi!^!Wi#P!Wi#a!Wi#b!Wi#o!Wi#p!Wi!]!Wia!Wi~P7TOQ#`O^$eOr#wOy#yO#n#kOa#rXc#rX!Z#rX~P(QO#s$fOQ#lX^#lXa#lXc#lXf#lXg#lXh#lXj#lXl#lXn#lXo#lXp#lXr#lXu#lXy#lX{#lX!Z#lX#h#lX#m#lX#n#lX~Oa$iOc$gO!Z$gO~O!]$jO~OQ#`Or#wOy#yO!^wO#n#kO~Oa#jP~P*bOa#kP~P(QOp!nO#p$pO#x$pO^#wi~O!Z$qO~OQ#`Oc$rOr#wOy#yO#n#kOa#tX~Oa$tO~OQ!bX^!dXa!bXr!bXy!bX#n!bX~O^$uO~OQ#mOa$vOr#lOy#oO#n#kO~Oa#uP~P'bOw$zO~P(QOc#pO!^#ua!Z#uaa#ua~OQ#mOr#lOy#oO#n#kOc!fa!^!fa!Z!faa!fa~OQ#`Oa%OOr#wOy#yO#n#kO~Ow%RO~P(QOn%SO|%SO~OQ#`Or#wOy#yO#n#kO!Zta^taatactaftagtahtajtaltantaotaptauta{ta#hta#mta!^ta#Pta#atawta!]ta~O!Z%TO~O!]%XO!x%VO!y%VO#m%UO~OQ#`Oc%ZOr#wOy#yO#P%]O#n#kO!Z#Oi#a#Oi!]#Oi~P(QO!Z%^OV!|iY!|i^!|i_!|if!|ig!|io!|ip!|iy!|i!O!|i!a!|i!n!|i!p!|i!r!|i!u!|i!{!|i#a!|i#h!|i#i!|i!]!|i~OjvO!Z#QX#a#QX!]#QX~P*bO!Z!rO~OQ#`Or#wOy#yO#n#kOa#XXc#XXf#XXg#XXh#XXj#XXl#XXn#XXo#XXp#XXu#XX{#XX!Z#XX#h#XX#m#XX~Oa#rac#ra!Z#ra~P(QOa%jOc$gO!Z$gO~Oa#jX~P$WOa%lO~Oc%mOa#kX~P(QOa%oO~OQ#`Or#wOw%pOy#yO#n#kO~Oc$rOa#ta~On%sO~Oa%uO~OQ#`Or#wOw%vOy#yO#n#kO~OQ#mOr#lOy#oO#n#kOc#]a!^#]a!Z#]aa#]a~Oa%wO~P4dOQ#`Or#wOw%xOy#yO#n#kO~Oa%yO~OP#vO!^mX~O!]%|O!x%VO!y%VO#m%UO~OQ#`Or#wOy#yO#n#kOc#`Xf#`Xg#`Xh#`Xj#`Xl#`Xn#`Xo#`Xp#`Xu#`X{#`X!Z#`X#P#`X#a#`X#h#`X#m#`X!]#`X~Oc%ZO#P&PO!Z#Oq#a#Oq!]#Oq~P(QOjvO!Z#Qa#a#Qa!]#Qa~P4dOQ#`Or#wOw&SOy#yO#n#kO~Oa#ric#ri!Z#ri~P(QOcmOa#ja~Oc%mOa#ka~OQ#`Or#wOy#yO#n#kOa#[ac#[a~Oa&WO~P(QOQ#`Or#wOy#yO#n#kOc#`af#`ag#`ah#`aj#`al#`an#`ao#`ap#`au#`a{#`a!Z#`a#P#`a#a#`a#h#`a#m#`a!]#`a~Oa#Yac#Ya~P(QO!Z&XO~Of#dpg#m|#iRSRr~",goto:"0^#zPPPPPP#{P$Q$^P$Q$j$QPP$sP$yPP%PPPP%jP%jP&ZPPP%jP'O%jP%jP%jP'jPP$QP(a$Q(jP$QP$Q$Q(p$QPPPP(w#{P)f)f)q)f)f)f)fP)f)t)f#{P#{P#{P){#{P*O*RPP#{P#{*U*aP*f*i*i*a*a*l*s*}+e+k+q+w+},T,_PPPP,e,k,pPP-[-_-bPPPP.u/UP/[/_/k0QP0VVdOhweXOhmrsuw#^#r$YeQOhmrsuw#^#r$YQkRQ!ulR%`$XQ}TR!}oQ#_}R$`!}Q#_!Or#x!d#U#[#f#u#|$U$]$c$o$y%Q%Y%d%e%q%}R$`#O!]!f[vy!X!b!g!q!{#U#`#b#o#w#y$U$_$b$d$e$g$m$r$u%Z%[%g%m%t&T![!f[vy!X!b!g!q!{#U#`#b#o#w#y$U$_$b$d$e$g$m$r$u%Z%[%g%m%t&TT%V$P%WY#l![!m#j#t${s#w!d#U#[#f#u#|$U$]$c$o$y%Q%Y%d%e%q%}![!f[vy!X!b!g!q!{#U#`#b#o#w#y$U$_$b$d$e$g$m$r$u%Z%[%g%m%t&TQ!i]R$O!jQ!QUQ#PpR%_$WQ!SVR#QqZuS!w$k$}%aQxSS!znzQ#s!_Q$R!mQ$V!qS$^!|#[Q%c$]Q%z%VR&R%dc!^Z_!W!Z!`#l#m#p%sR#i!ZZ#n![!m#j#t${R!j]R!l^R$Q!lU`OhwQ!UWR$S!nVeOhwR$Z!qR$Y!qShOwR!thQnSS!yn%kR%k$kQ$d#UQ$m#`Y%f$d$m%g%t&TQ%g$eQ%t$uR&T%mQ%n$mR&U%nQ$h#YR%i$hQ$s#fR%r$sQ#q![R$|#qQ%W$PR%{%WQ!o`Q#c!UT$T!o#cQ%[$UR&O%[QiOR#ZwVfOhwUSOhwQ!wmQ#RrQ#SsQ#TuQ$k#^Q$}#rR%a$YR$l#^R$n#`Q!d[S#Uv$gQ#[yQ#f!XQ#u!bQ#|!gQ$U!qQ$]!{d$c#U#`$d$e$m$u%g%m%t&TQ$o#bQ$y#oQ%P#wQ%Q#yS%Y$U%[Q%d$_Q%e$bQ%q$rR%}%ZQzSQ!pbQ!|nQ%b$YR&Q%aQ#YvR%h$gR#g!XQ!_ZQ#e!WQ$x#mR&V%sW![Z!W#m%sQ!m_Q#j!ZQ#t!`Q$w#lR${#pVcOhwSgOwR!sh",nodeNames:"\u26A0 Unit ( Comment LineComment StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector ClassSelector ClassName PseudoClassSelector : :: PseudoClassName ) ArgList , PseudoClassName ArgList VariableName AtKeyword PropertyVariable ValueName ( ParenthesizedValue ColorLiteral NumberLiteral StringLiteral Escape Interpolation BinaryExpression BinOp LogicOp UnaryExpression UnaryQueryOp CallExpression ] SubscriptExpression [ CallLiteral CallTag ParenthesizedContent IdSelector # IdName AttributeSelector AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp InterpolatedSelector ; when } { Block ImportStatement import KeywordQuery FeatureQuery FeatureName BinaryQuery UnaryQuery ParenthesizedQuery SelectorQuery selector CallQuery ArgList SubscriptQuery MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList from to SupportsStatement supports DetachedRuleSet PropertyName Declaration Important Inclusion IdSelector ClassSelector Inclusion CallExpression",maxTerm:133,nodeProps:[["isolate",-3,3,4,30,""],["openedBy",17,"(",59,"{"],["closedBy",26,")",60,"}"]],propSources:[lessHighlighting],skippedNodes:[0,3,4],repeatNodeCount:10,tokenData:"!2q~R!ZOX$tX^%l^p$tpq%lqr)Ors-xst/ltu6Zuv$tvw8^wx:Uxy;syz<Uz{<Z{|<t|}BQ}!OBc!O!PDo!P!QFY!Q![Jw![!]Kr!]!^Ln!^!_MP!_!`M{!`!aNl!a!b$t!b!c! m!c!}!&R!}#O!'y#O#P$t#P#Q!([#Q#R!(m#R#T$t#T#o!&R#o#p!)S#p#q!(m#q#r!)e#r#s!)v#s#y$t#y#z%l#z$f$t$f$g%l$g#BY$t#BY#BZ%l#BZ$IS$t$IS$I_%l$I_$I|$t$I|$JO%l$JO$JT$t$JT$JU%l$JU$KV$t$KV$KW%l$KW&FU$t&FU&FV%l&FV;'S$t;'S;=`!2k<%lO$t`$wSOy%Tz;'S%T;'S;=`%f<%lO%T`%YS|`Oy%Tz;'S%T;'S;=`%f<%lO%T`%iP;=`<%l%T~%qh#d~OX%TX^']^p%Tpq']qy%Tz#y%T#y#z']#z$f%T$f$g']$g#BY%T#BY#BZ']#BZ$IS%T$IS$I_']$I_$I|%T$I|$JO']$JO$JT%T$JT$JU']$JU$KV%T$KV$KW']$KW&FU%T&FU&FV']&FV;'S%T;'S;=`%f<%lO%T~'dh#d~|`OX%TX^']^p%Tpq']qy%Tz#y%T#y#z']#z$f%T$f$g']$g#BY%T#BY#BZ']#BZ$IS%T$IS$I_']$I_$I|%T$I|$JO']$JO$JT%T$JT$JU']$JU$KV%T$KV$KW']$KW&FU%T&FU&FV']&FV;'S%T;'S;=`%f<%lO%Tk)RUOy%Tz#]%T#]#^)e#^;'S%T;'S;=`%f<%lO%Tk)jU|`Oy%Tz#a%T#a#b)|#b;'S%T;'S;=`%f<%lO%Tk*RU|`Oy%Tz#d%T#d#e*e#e;'S%T;'S;=`%f<%lO%Tk*jU|`Oy%Tz#c%T#c#d*|#d;'S%T;'S;=`%f<%lO%Tk+RU|`Oy%Tz#f%T#f#g+e#g;'S%T;'S;=`%f<%lO%Tk+jU|`Oy%Tz#h%T#h#i+|#i;'S%T;'S;=`%f<%lO%Tk,RU|`Oy%Tz#T%T#T#U,e#U;'S%T;'S;=`%f<%lO%Tk,jU|`Oy%Tz#b%T#b#c,|#c;'S%T;'S;=`%f<%lO%Tk-RU|`Oy%Tz#h%T#h#i-e#i;'S%T;'S;=`%f<%lO%Tk-lS#PZ|`Oy%Tz;'S%T;'S;=`%f<%lO%T~-{WOY-xZr-xrs.es#O-x#O#P.j#P;'S-x;'S;=`/f<%lO-x~.jOn~~.mRO;'S-x;'S;=`.v;=`O-x~.yXOY-xZr-xrs.es#O-x#O#P.j#P;'S-x;'S;=`/f;=`<%l-x<%lO-x~/iP;=`<%l-xo/qY!OROy%Tz!Q%T!Q![0a![!c%T!c!i0a!i#T%T#T#Z0a#Z;'S%T;'S;=`%f<%lO%Tm0fY|`Oy%Tz!Q%T!Q![1U![!c%T!c!i1U!i#T%T#T#Z1U#Z;'S%T;'S;=`%f<%lO%Tm1ZY|`Oy%Tz!Q%T!Q![1y![!c%T!c!i1y!i#T%T#T#Z1y#Z;'S%T;'S;=`%f<%lO%Tm2QYl]|`Oy%Tz!Q%T!Q![2p![!c%T!c!i2p!i#T%T#T#Z2p#Z;'S%T;'S;=`%f<%lO%Tm2wYl]|`Oy%Tz!Q%T!Q![3g![!c%T!c!i3g!i#T%T#T#Z3g#Z;'S%T;'S;=`%f<%lO%Tm3lY|`Oy%Tz!Q%T!Q![4[![!c%T!c!i4[!i#T%T#T#Z4[#Z;'S%T;'S;=`%f<%lO%Tm4cYl]|`Oy%Tz!Q%T!Q![5R![!c%T!c!i5R!i#T%T#T#Z5R#Z;'S%T;'S;=`%f<%lO%Tm5WY|`Oy%Tz!Q%T!Q![5v![!c%T!c!i5v!i#T%T#T#Z5v#Z;'S%T;'S;=`%f<%lO%Tm5}Sl]|`Oy%Tz;'S%T;'S;=`%f<%lO%Tm6^YOy%Tz!_%T!_!`6|!`!c%T!c!}7a!}#T%T#T#o7a#o;'S%T;'S;=`%f<%lO%Td7TS!SS|`Oy%Tz;'S%T;'S;=`%f<%lO%Tm7h[h]|`Oy%Tz}%T}!O7a!O!Q%T!Q![7a![!c%T!c!}7a!}#T%T#T#o7a#o;'S%T;'S;=`%f<%lO%Ta8c[YPOy%Tz}%T}!O9X!O!Q%T!Q![9X![!c%T!c!}9X!}#T%T#T#o9X#o;'S%T;'S;=`%f<%lO%Ta9`[YP|`Oy%Tz}%T}!O9X!O!Q%T!Q![9X![!c%T!c!}9X!}#T%T#T#o9X#o;'S%T;'S;=`%f<%lO%T~:XWOY:UZw:Uwx.ex#O:U#O#P:q#P;'S:U;'S;=`;m<%lO:U~:tRO;'S:U;'S;=`:};=`O:U~;QXOY:UZw:Uwx.ex#O:U#O#P:q#P;'S:U;'S;=`;m;=`<%l:U<%lO:U~;pP;=`<%l:Uo;xSj_Oy%Tz;'S%T;'S;=`%f<%lO%T~<ZOa~m<bUVPrWOy%Tz!_%T!_!`6|!`;'S%T;'S;=`%f<%lO%To<{Y#pQrWOy%Tz!O%T!O!P=k!P!Q%T!Q![@p![#R%T#R#SAm#S;'S%T;'S;=`%f<%lO%Tm=pU|`Oy%Tz!Q%T!Q![>S![;'S%T;'S;=`%f<%lO%Tm>ZY#m]|`Oy%Tz!Q%T!Q![>S![!g%T!g!h>y!h#X%T#X#Y>y#Y;'S%T;'S;=`%f<%lO%Tm?OY|`Oy%Tz{%T{|?n|}%T}!O?n!O!Q%T!Q![@V![;'S%T;'S;=`%f<%lO%Tm?sU|`Oy%Tz!Q%T!Q![@V![;'S%T;'S;=`%f<%lO%Tm@^U#m]|`Oy%Tz!Q%T!Q![@V![;'S%T;'S;=`%f<%lO%Tm@w[#m]|`Oy%Tz!O%T!O!P>S!P!Q%T!Q![@p![!g%T!g!h>y!h#X%T#X#Y>y#Y;'S%T;'S;=`%f<%lO%TbAtS#xQ|`Oy%Tz;'S%T;'S;=`%f<%lO%TkBVScZOy%Tz;'S%T;'S;=`%f<%lO%TmBhXrWOy%Tz}%T}!OCT!O!P=k!P!Q%T!Q![@p![;'S%T;'S;=`%f<%lO%TmCYW|`Oy%Tz!c%T!c!}Cr!}#T%T#T#oCr#o;'S%T;'S;=`%f<%lO%TmCy[f]|`Oy%Tz}%T}!OCr!O!Q%T!Q![Cr![!c%T!c!}Cr!}#T%T#T#oCr#o;'S%T;'S;=`%f<%lO%ToDtW#iROy%Tz!O%T!O!PE^!P!Q%T!Q![>S![;'S%T;'S;=`%f<%lO%TlEcU|`Oy%Tz!O%T!O!PEu!P;'S%T;'S;=`%f<%lO%TlE|S#s[|`Oy%Tz;'S%T;'S;=`%f<%lO%T~F_VrWOy%Tz{Ft{!P%T!P!QIl!Q;'S%T;'S;=`%f<%lO%T~FyU|`OyFtyzG]z{Hd{;'SFt;'S;=`If<%lOFt~G`TOzG]z{Go{;'SG];'S;=`H^<%lOG]~GrVOzG]z{Go{!PG]!P!QHX!Q;'SG];'S;=`H^<%lOG]~H^OR~~HaP;=`<%lG]~HiW|`OyFtyzG]z{Hd{!PFt!P!QIR!Q;'SFt;'S;=`If<%lOFt~IYS|`R~Oy%Tz;'S%T;'S;=`%f<%lO%T~IiP;=`<%lFt~IsV|`S~OYIlYZ%TZyIlyzJYz;'SIl;'S;=`Jq<%lOIl~J_SS~OYJYZ;'SJY;'S;=`Jk<%lOJY~JnP;=`<%lJY~JtP;=`<%lIlmJ|[#m]Oy%Tz!O%T!O!P>S!P!Q%T!Q![@p![!g%T!g!h>y!h#X%T#X#Y>y#Y;'S%T;'S;=`%f<%lO%TkKwU^ZOy%Tz![%T![!]LZ!];'S%T;'S;=`%f<%lO%TcLbS_R|`Oy%Tz;'S%T;'S;=`%f<%lO%TkLsS!ZZOy%Tz;'S%T;'S;=`%f<%lO%ThMUUrWOy%Tz!_%T!_!`Mh!`;'S%T;'S;=`%f<%lO%ThMoS|`rWOy%Tz;'S%T;'S;=`%f<%lO%TlNSW!SSrWOy%Tz!^%T!^!_Mh!_!`%T!`!aMh!a;'S%T;'S;=`%f<%lO%TjNsV!UQrWOy%Tz!_%T!_!`Mh!`!a! Y!a;'S%T;'S;=`%f<%lO%Tb! aS!UQ|`Oy%Tz;'S%T;'S;=`%f<%lO%To! rYg]Oy%Tz!b%T!b!c!!b!c!}!#R!}#T%T#T#o!#R#o#p!$O#p;'S%T;'S;=`%f<%lO%Tm!!iWg]|`Oy%Tz!c%T!c!}!#R!}#T%T#T#o!#R#o;'S%T;'S;=`%f<%lO%Tm!#Y[g]|`Oy%Tz}%T}!O!#R!O!Q%T!Q![!#R![!c%T!c!}!#R!}#T%T#T#o!#R#o;'S%T;'S;=`%f<%lO%To!$TW|`Oy%Tz!c%T!c!}!$m!}#T%T#T#o!$m#o;'S%T;'S;=`%f<%lO%To!$r^|`Oy%Tz}%T}!O!$m!O!Q%T!Q![!$m![!c%T!c!}!$m!}#T%T#T#o!$m#o#q%T#q#r!%n#r;'S%T;'S;=`%f<%lO%To!%uSp_|`Oy%Tz;'S%T;'S;=`%f<%lO%To!&W[#h_Oy%Tz}%T}!O!&|!O!Q%T!Q![!&|![!c%T!c!}!&|!}#T%T#T#o!&|#o;'S%T;'S;=`%f<%lO%To!'T[#h_|`Oy%Tz}%T}!O!&|!O!Q%T!Q![!&|![!c%T!c!}!&|!}#T%T#T#o!&|#o;'S%T;'S;=`%f<%lO%Tk!(OSyZOy%Tz;'S%T;'S;=`%f<%lO%Tm!(aSw]Oy%Tz;'S%T;'S;=`%f<%lO%Td!(pUOy%Tz!_%T!_!`6|!`;'S%T;'S;=`%f<%lO%Tk!)XS!^ZOy%Tz;'S%T;'S;=`%f<%lO%Tk!)jS!]ZOy%Tz;'S%T;'S;=`%f<%lO%To!){Y#oQOr%Trs!*ksw%Twx!.wxy%Tz!_%T!_!`6|!`;'S%T;'S;=`%f<%lO%Tm!*pZ|`OY!*kYZ%TZr!*krs!+csy!*kyz!+vz#O!*k#O#P!-j#P;'S!*k;'S;=`!.q<%lO!*km!+jSo]|`Oy%Tz;'S%T;'S;=`%f<%lO%T]!+yWOY!+vZr!+vrs!,cs#O!+v#O#P!,h#P;'S!+v;'S;=`!-d<%lO!+v]!,hOo]]!,kRO;'S!+v;'S;=`!,t;=`O!+v]!,wXOY!+vZr!+vrs!,cs#O!+v#O#P!,h#P;'S!+v;'S;=`!-d;=`<%l!+v<%lO!+v]!-gP;=`<%l!+vm!-oU|`Oy!*kyz!+vz;'S!*k;'S;=`!.R;=`<%l!+v<%lO!*km!.UXOY!+vZr!+vrs!,cs#O!+v#O#P!,h#P;'S!+v;'S;=`!-d;=`<%l!*k<%lO!+vm!.tP;=`<%l!*km!.|Z|`OY!.wYZ%TZw!.wwx!+cxy!.wyz!/oz#O!.w#O#P!1^#P;'S!.w;'S;=`!2e<%lO!.w]!/rWOY!/oZw!/owx!,cx#O!/o#O#P!0[#P;'S!/o;'S;=`!1W<%lO!/o]!0_RO;'S!/o;'S;=`!0h;=`O!/o]!0kXOY!/oZw!/owx!,cx#O!/o#O#P!0[#P;'S!/o;'S;=`!1W;=`<%l!/o<%lO!/o]!1ZP;=`<%l!/om!1cU|`Oy!.wyz!/oz;'S!.w;'S;=`!1u;=`<%l!/o<%lO!.wm!1xXOY!/oZw!/owx!,cx#O!/o#O#P!0[#P;'S!/o;'S;=`!1W;=`<%l!.w<%lO!/om!2hP;=`<%l!.w`!2nP;=`<%l$t",tokenizers:[descendant,unitToken,argList,0,1,2,3,4],topRules:{StyleSheet:[0,5]},specialized:[{term:116,get:value=>spec_identifier[value]||-1},{term:23,get:value=>spec_AtKeyword[value]||-1}],tokenPrec:2180}),lessLanguage=language.LRLanguage.define({name:"less",parser:parser.configure({props:[language.indentNodeProp.add({Declaration:language.continuedIndent()}),language.foldNodeProp.add({Block:language.foldInside})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*\}$/,wordChars:"@-"}}),lessCompletionSource=langCss.defineCSSCompletionSource(node=>"VariableName"==node.name||"AtKeyword"==node.name);// This file was generated by lezer-generator. You probably shouldn't edit it.
5
+ /**
6
+ A language provider for Less style sheets.
7
+ */ /**
8
+ Property, variable, @-variable, and value keyword completion
9
+ source.
10
+ */return dist.less=less,dist.lessCompletionSource=lessCompletionSource,dist.lessLanguage=lessLanguage,dist}(),index=/*@__PURE__*/function getDefaultExportFromCjs(x){return x}(distExports);return module.exports=index,module.exports}
@@ -0,0 +1,7 @@
1
+ async function moduleInitFunction(requireAsyncModule,exports={}){const module={exports:exports};var hasRequiredDist,require$$0=await requireAsyncModule("@lezer/lezer"),require$$1=await requireAsyncModule("@codemirror/language"),dist={},distExports=function requireDist(){/**
2
+ Language support for Lezer grammars.
3
+ */function lezer(){return new language.LanguageSupport(lezerLanguage)}if(hasRequiredDist)return dist;hasRequiredDist=1;var lezer$1=require$$0,language=require$$1;/**
4
+ A language provider based on the [Lezer Lezer
5
+ parser](https://github.com/lezer-parser/lezer-grammar), extended
6
+ with highlighting and indentation information.
7
+ */const lezerLanguage=language.LRLanguage.define({name:"lezer",parser:lezer$1.parser.configure({props:[language.foldNodeProp.add({"Body TokensBody SkipBody PrecedenceBody":language.foldInside})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*\}$/}});return dist.lezer=lezer,dist.lezerLanguage=lezerLanguage,dist}(),index=/*@__PURE__*/function getDefaultExportFromCjs(x){return x}(distExports);return module.exports=index,module.exports}
@@ -0,0 +1,15 @@
1
+ async function moduleInitFunction(requireAsyncModule,exports={}){const module={exports:exports};var hasRequiredDist,require$$0=await requireAsyncModule("@codemirror/language"),require$$1=await requireAsyncModule("@codemirror/lang-html"),require$$2=await requireAsyncModule("@lezer/highlight"),require$$3=await requireAsyncModule("@lezer/common"),require$$4=await requireAsyncModule("@lezer/lr"),require$$5=await requireAsyncModule("@codemirror/state"),require$$6=await requireAsyncModule("@codemirror/view"),dist={},distExports=function requireDist(){function wordChar(code){return 65<=code&&90>=code||97<=code&&122>=code}function rawTokenizer(endTag,text,tagStart){return new lr.ExternalTokenizer(input=>{let start=input.pos;for(;;){let{next}=input;if(123==next/* Ch.BraceL */&&37==input.peek(1)/* Ch.Percent */){let scan=2;for(;;scan++){let ch=input.peek(scan);if(32!=ch/* Ch.Space */&&10!=ch/* Ch.Newline */)break}let word="";for(;;scan++){let next=input.peek(scan);if(!wordChar(next))break;word+=String.fromCharCode(next)}if(word==endTag){if(input.pos>start)break;input.acceptToken(tagStart,2);break}}else if(0>next)break;if(input.advance(),10==next/* Ch.Newline */)break}input.pos>start&&input.acceptToken(text)})}function completions(words,type){return words.split(" ").map(label=>({label,type}))}function findContext(context){var _a;let{state,pos}=context,node=language.syntaxTree(state).resolveInner(pos,-1).enterUnfinishedNodesBefore(pos),before=(null===(_a=node.childBefore(pos))||void 0===_a?void 0:_a.name)||node.name;if("FilterName"==node.name)return{type:"filter",node};if(context.explicit&&"|"==before)return{type:"filter"};if("TagName"==node.name)return{type:"tag",node};if(context.explicit&&"{%"==before)return{type:"tag"};if("PropertyName"==node.name&&"MemberExpression"==node.parent.name)return{type:"property",node,target:node.parent};if("."==node.name&&"MemberExpression"==node.parent.name)return{type:"property",target:node.parent};if("MemberExpression"==node.name&&"."==before)return{type:"property",target:node};if("VariableName"==node.name)return{type:"expression",from:node.from};let word=context.matchBefore(/[\w\u00c0-\uffff]+$/);return word?{type:"expression",from:word.from}:context.explicit&&"CommentText"!=node.name&&"StringLiteral"!=node.name&&"NumberLiteral"!=node.name&&"InlineComment"!=node.name?{type:"expression"}:null}function resolveProperties(state,node,context,properties){let path=[];for(;;){let obj=node.getChild("Expression");if(!obj)return[];// These keywords use @extend, so the parser may produce either a keyword node or a VariableName
2
+ if("VariableName"==obj.name||"forloop"==obj.name||"tablerowloop"==obj.name){let text=state.sliceDoc(obj.from,obj.to);if("forloop"==text)return path.length?[]:forloop;if("tablerowloop"==text)return path.length?[]:tablerowloop;path.unshift(text);break}else if("MemberExpression"==obj.name){let name=obj.getChild("PropertyName");name&&path.unshift(state.sliceDoc(name.from,name.to)),node=obj}else if("SubscriptExpression"==obj.name){let expr=obj.getChildren("Expression")[1];path.unshift("StringLiteral"==(null===expr||void 0===expr?void 0:expr.name)?state.sliceDoc(expr.from+1,expr.to-1):"[]"),node=obj}else return[]}return properties?properties(path,state,context):[]}/**
3
+ Returns a completion source for liquid templates. Optionally takes
4
+ a configuration that adds additional custom completions.
5
+ */function liquidCompletionSource(config={}){let filters=config.filters?config.filters.concat(Filters):Filters,tags=config.tags?config.tags.concat(Tags):Tags,exprs=config.variables?config.variables.concat(Expressions):Expressions,{properties}=config;return context=>{var _a;let cx=findContext(context);if(!cx)return null;let options,from=null!==(_a=cx.from)&&void 0!==_a?_a:cx.node?cx.node.from:context.pos;return options="filter"==cx.type?filters:"tag"==cx.type?tags:"expression"==cx.type?exprs:/* property */resolveProperties(context.state,cx.target,context,properties),options.length?{options,from,validFor:/^[\w\u00c0-\uffff]*$/}:null}}/**
6
+ This extension will, when the user types a `%` between two
7
+ matching braces, insert two percent signs instead and put the
8
+ cursor between them.
9
+ */function directiveIndent(except){return context=>{let back=except.test(context.textAfter);return context.lineIndent(context.node.from)+(back?0:context.unit)}}function makeLiquid(base){return tagLanguage.configure({wrap:common.parseMixed(node=>node.type.isTop?{parser:base.parser,overlay:n=>"Text"==n.name||"RawText"==n.name}:null)},"liquid")}/**
10
+ A language provider for Liquid templates.
11
+ */ /**
12
+ Liquid template support.
13
+ */function liquid(config={}){let base=config.base||baseHTML,lang=base.language==baseHTML.language?liquidLanguage:makeLiquid(base.language);return new language.LanguageSupport(lang,[base.support,lang.data.of({autocomplete:liquidCompletionSource(config)}),base.language.data.of({closeBrackets:{brackets:["{"]}}),closePercentBrace])}if(hasRequiredDist)return dist;hasRequiredDist=1;var language=require$$0,langHtml=require$$1,highlight=require$$2,common=require$$3,lr=require$$4,state=require$$5,view=require$$6;// This file was generated by lezer-generator. You probably shouldn't edit it.
14
+ const interpolationStart=1,tagStart=2,endTagStart=3,text=180,endrawTagStart=4,rawText=181,endcommentTagStart=5,commentText=182,InlineComment=6,base=new lr.ExternalTokenizer(input=>{let start=input.pos;for(;;){let{next}=input;if(0>next)break;if(123==next/* Ch.BraceL */){let after=input.peek(1);if(123==after/* Ch.BraceL */){if(input.pos>start)break;return void input.acceptToken(interpolationStart,2)}if(37==after/* Ch.Percent */){if(input.pos>start)break;for(let next,scan=2,size=2;;)if(next=input.peek(scan),32==next/* Ch.Space */||10==next/* Ch.Newline */)++scan;else if(35==next/* Ch.Hash */)for(++scan;;){let comment=input.peek(scan);if(0>comment||10==comment/* Ch.Newline */)break;scan++}else if(45==next/* Ch.Dash */&&2==size)size=++scan;else{let end=101==next/* Ch.e */&&110==input.peek(scan+1)/* Ch.n */&&100==input.peek(scan+2)/* Ch.d */;return void input.acceptToken(end?endTagStart:tagStart,size)}}}if(input.advance(),10==next/* Ch.Newline */)break}input.pos>start&&input.acceptToken(text)}),comment=rawTokenizer("endcomment",182,5),raw=rawTokenizer("endraw",181,4),inlineComment=new lr.ExternalTokenizer(input=>{if(35==input.next/* Ch.Hash */){for(input.advance();;){if(10==input.next/* Ch.Newline */||0>input.next)break;if((37==input.next/* Ch.Percent */||125==input.next/* Ch.BraceR */)&&125==input.peek(1)/* Ch.BraceR */)break;input.advance()}input.acceptToken(InlineComment)}}),spec_identifier={__proto__:null,contains:34,or:38,and:38,true:52,false:52,empty:54,forloop:57,tablerowloop:59,continue:61,in:131,with:197,for:199,as:201,if:237,endif:241,unless:247,endunless:251,elsif:255,else:259,case:265,endcase:269,when:273,endfor:281,tablerow:287,endtablerow:291,break:295,cycle:301,echo:305,render:309,include:313,assign:317,capture:323,endcapture:327,increment:331,decrement:335},spec_TagName={__proto__:null,if:86,endif:90,elsif:94,else:98,unless:104,endunless:108,case:114,endcase:118,when:122,for:128,endfor:138,tablerow:144,endtablerow:148,break:152,continue:156,cycle:160,comment:166,endcomment:172,raw:178,endraw:184,echo:188,render:192,include:204,assign:208,capture:214,endcapture:218,increment:222,decrement:226,liquid:230},parser=lr.LRParser.deserialize({version:14,states:"KtQYOPOOOOOP'#F{'#F{OeOaO'#CdOsQhO'#CfO!bQxO'#DSO#{OPO'#DVO$ZOPO'#D`O$iOPO'#DeO$wOPO'#DlO%VOPO'#DtO%eOSO'#EPO%jOQO'#EVO%oOPO'#EiOOOP'#Ge'#GeOOOP'#G]'#G]OOOP'#Fz'#FzQYOPOOOOOP-E9y-E9yOOQW'#Cg'#CgO&cQ!jO,59QO&jQ!jO'#G^OsQhO'#CtOOQW'#Gb'#GbOOQW'#Gc'#GcOOQW'#Gd'#GdOOQW'#G^'#G^OOOP,59n,59nO)YQhO,59nOsQhO,59rOsQhO,59vO)dQhO,59xOsQhO,59{OsQhO,5:QOsQhO,5:UO!]QhO,5:XO!]QhO,5:aO)iQhO,5:eO)nQhO,5:gO)sQhO,5:iO)xQhO,5:lO)}QhO,5:rOsQhO,5:wOsQhO,5:yOsQhO,5;POsQhO,5;ROsQhO,5;UOsQhO,5;YOsQhO,5;[O+^QhO,5;^O+eOPO'#CdOOOP,59q,59qO#{OPO,59qO+sQxO'#DYOOOP,59z,59zO$ZOPO,59zO+xQxO'#DcOOOP,5:P,5:PO$iOPO,5:PO+}QxO'#DhOOOP,5:W,5:WO$wOPO,5:WO,SQxO'#DrOOOP,5:`,5:`O%VOPO,5:`O,XQxO'#DwOOOS'#GQ'#GQO,^OSO'#ESO,fOSO,5:kOOOQ'#GR'#GRO,kOQO'#EYO,sOQO,5:qOOOP,5;T,5;TO%oOPO,5;TO,xQxO'#ElOOOP-E9x-E9xO,}Q#|O,59SOsQhO,59VOsQhO,59WOsQhO,59WO-SQhO'#C}OOQW'#F|'#F|O-XQhO1G.lOOOP1G.l1G.lOsQhO,59WOsQhO,59[O-rQ!jO,59`O-yQ!jO1G/YO.QQhO1G/YOOOP1G/Y1G/YO.YQ!jO1G/^O.aQ!jO1G/bOOOP1G/d1G/dO.hQ!jO1G/gO.oQ!jO1G/lO.vQ!jO1G/pO/QQhO1G/sO/QQhO1G/{OOOP1G0P1G0POOOP1G0R1G0RO/VQhO1G0TOOOS1G0W1G0WOOOQ1G0^1G0^O/bQ!jO1G0cO/iQ!jO1G0eO/yQ!jO1G0kO0QQ!jO1G0mO0XQ!jO1G0pO0`Q!jO1G0tO0gQ!jO1G0vOOQW'#Gh'#GhOOQW'#Gk'#GkOsQhO'#EuO0nQhO'#EtOOQW'#Gm'#GmOsQhO'#EzO0uQhO'#EyOOQW'#Go'#GoOsQhO'#FOOOQW'#Gp'#GpOOQW'#FQ'#FQOOQW'#Gq'#GqOsQhO'#FTO0|QhO'#FSOOQW'#Gs'#GsOsQhO'#FXO!]QhO'#F[O1TQhO'#FZOOQW'#Gu'#GuO!]QhO'#F`O1[QhO'#F_OOQW'#Gw'#GwOOQW'#Fd'#FdOOQW'#Ff'#FfOOQW'#Gx'#GxO1cQhO'#FgOOQW'#Gy'#GyOsQhO'#FiOOQW'#Gz'#GzOsQhO'#FkOOQW'#G{'#G{OsQhO'#FmOOQW'#G|'#G|OsQhO'#FoOOQW'#G}'#G}OsQhO'#FrO1hQhO'#FqOOQW'#HP'#HPOsQhO'#FvOOQW'#HQ'#HQOsQhO'#FxOOQW'#Gj'#GjOOQW'#GT'#GTO1oQhO1G0xOOOP1G0x1G0xOOOP1G/]1G/]O1vQhO,59tOOOP1G/f1G/fO1{QhO,59}OOOP1G/k1G/kO2QQhO,5:SOOOP1G/r1G/rO2VQhO,5:^OOOP1G/z1G/zO2[QhO,5:cOOOS-E:O-E:OOOOP1G0V1G0VO2aQxO'#ETOOOQ-E:P-E:POOOP1G0]1G0]O2fQxO'#EZOOOP1G0o1G0oO2kQhO,5;WOOQW1G.n1G.nO2pQ!jO1G.qO5aQ!jO1G.rO5hQ!jO1G.rOOQW'#DP'#DPO7vQhO,59iOOQW-E9z-E9zOOOP7+$W7+$WO9pQ!jO1G.rO9wQ!jO1G.vOsQhO1G.zO<VQhO7+$tOOOP7+$t7+$tOOOP7+$x7+$xOOOP7+$|7+$|OOOP7+%R7+%ROOOP7+%W7+%WOsQhO'#F}O<_QhO7+%[OOOP7+%[7+%[OOQW'#Gf'#GfOsQhO7+%_OsQhO7+%gO<gQhO'#GPO<lQhO7+%oOOOP7+%o7+%oO<tQhO7+%oO<yQhO7+%}OOOP7+%}7+%}OOQW'#Gg'#GgO!]QhO'#EaOsQhO'#EaOOQW'#GS'#GSO=RQhO7+&POOOP7+&P7+&POOOP7+&V7+&VO=aQhO7+&XOOOP7+&X7+&XOOOP7+&[7+&[OOOP7+&`7+&`OOOP7+&b7+&bO=iQ!jO,5;aOOQW'#Gl'#GlOOQW'#Ew'#EwOOQW,5;`,5;`O0nQhO,5;`O>xQ!jO,5;fOOQW'#Gn'#GnOOQW'#E|'#E|OOQW,5;e,5;eO0uQhO,5;eO@XQ!jO,5;jOAzQ!jO,5;oOOQW'#Gr'#GrOOQW'#FV'#FVOOQW,5;n,5;nO0|QhO,5;nOCZQ!jO,5;sO/QQhO,5;vOOQW'#Gt'#GtOOQW'#F]'#F]OOQW,5;u,5;uO1TQhO,5;uO/QQhO,5;zOOQW'#Gv'#GvOOQW'#Fb'#FbOOQW,5;y,5;yO1[QhO,5;yOEPQhO,5<ROFvQ!jO,5<TOHiQ!jO,5<VOJbQ!jO,5<XOLTQ!jO,5<ZOMvQ!jO,5<^OOQW'#HO'#HOOOQW'#Ft'#FtOOQW,5<],5<]O1hQhO,5<]O! VQ!jO,5<bO!!xQ!jO,5<dOOQW-E:R-E:ROOOP7+&d7+&dOOOP1G/`1G/`OOOP1G/i1G/iOOOP1G/n1G/nOOOP1G/x1G/xOOOP1G/}1G/}O!$kQhO,5:oO!$pQhO,5:uOOOP1G0r1G0rOOQW7+$]7+$]OsQhO1G/TO!$uQ!jO7+$fOOOP<<H`<<H`O!$|Q!jO,5<iOOQW-E9{-E9{OOOP<<Hv<<HvO!&xQ!jO<<HyO!'SQ!jO<<IROOQW,5<k,5<kOOQW-E9}-E9}OOOP<<IZ<<IZO!'^QhO<<IZOOOP<<Ii<<IiO!'fQhO,5:{O!'kQ!jO,5:{OOQW-E:Q-E:QOOOP<<Ik<<IkOOOP<<Is<<IsOOQW1G0z1G0zOOQW1G1P1G1POOQW1G1Y1G1YO!)gQhO1G1_OsQhO1G1bOOQW1G1a1G1aOsQhO1G1fOOQW1G1e1G1eO!+ZQhO1G1mO!,}QhO1G1mO!-SQhO1G1oOOQW'#GU'#GUO!.vQhO1G1qO!0mQhO1G1uOOQW1G1w1G1wOOOP1G0Z1G0ZOOOP1G0a1G0aO!2aQ!jO7+$oOOQW<<HQ<<HQOOQW'#Dq'#DqO!4]QhO'#DpOOQW'#GO'#GOO!5vQhOAN>eOOOPAN>eAN>eO!6OQhOAN>mOOOPAN>mAN>mO!6WQhOAN>uOOOPAN>uAN>uOsQhO1G0gOOQW'#Gi'#GiO!]QhO1G0gO!6`Q!jO7+&|O!7rQ!jO7+'QO!9UQhO7+'XOOQW-E:S-E:SO!:xQhO<<HZOsQhO,5:[OOQW-E9|-E9|OOOPG24PG24POOOPG24XG24XOOOPG24aG24aO!<rQ!jO7+&ROOQW7+&R7+&RO!>kQhO<<JhO!?{QhO<<JlO!A]QhO<<JsO!CPQ!jO1G/v",stateData:"!Di~O%OOSUOS~OPROQSO$zPO~O$zPOPWXQWX$yWX~OgeOjiOkiOlfOmgOnhOoiOpiO%RbO~OwkOxjO{lO!PmO!RnO!UoO!ZpO!_qO!brO!jsO!ntO!puO!rvO!uwO!{xO#QyO#SzO#Y{O#[|O#_}O#c!OO#e!PO#g!QO~OPROQSOR!UO$zPO~OPROQSOR!XO$zPO~OPROQSOR![O$zPO~OPROQSOR!_O$zPO~OPROQSOR!bO$zPO~O$|!cO~O${!fO~OPROQSOR!kO$zPO~O]!mOa!uOb!oOc!pOr!qO%T!nO~OX!tO~P%}Oe!vOX%QX]%QXa%QXb%QXc%QXr%QX%T%QXi%QXx%QXu%QX#U%QX#V%QX%S%QXn%QX#j%QX#l%QX#o%QX#s%QX#u%QX#x%QX#|%QX$T%QX$X%QX$[%QX$^%QX$`%QX$b%QX$d%QX$g%QX$k%QX$m%QX#q%QX#z%QX$i%QXf%QX%R%QX#W%QX$Q%QX$V%QX~Or!qOx!zO~PsOx!}O~Ox#TO~Ox#UO~Oo#VO~Ox#WO~Ox#XO~OnhO#V#aO#j#bO#o#eO#s#hO#u#jO#x#lO#|#oO$T#sO$X#vO$[#yO$^#{O$`#}O$b$PO$d$RO$g$TO$k$WO$m$YO~Ox$_O~P*SO$zPOPWXQWXRWX~O}$aO~O!W$cO~O!]$eO~O!g$gO~O!l$iO~O$|!cOT!vX~OT$lO~O${!fOS!|X~OS$oO~O#a$qO~O^$rO~O%R$vO~OX$yOr!qO~O]!mOa!uOb!oOc!pO%T!nO~Oi$|O~P-aOx%OO~P%}Or!qOx%OO~Ox%PO~P-aOx%QO~P-aOx%RO~P-aOx%SO~P-aOu%TOx%VO~P-aO!c%WO~Ot%^Ou%ZOx%]O~Ox%`O~P%}Ou%bOx%fO#U%aO#V#aO~P-aOx%gO~P-aOx%iO~P%}Ox%jO~P-aOx%kO~P-aOx%lO~P-aO#l%nO~P*SO#q%sO~P*SO#z%yO~P*SO$Q&PO~P*SO$V&UO~P*SOo&YO~O$i&`O~P*SOx&gO~P*SOx&hO~Ox&iO~Ox&jO~Ox&kO~Ox&lO~O!x&mO~O#O&nO~Ox&oO~O%S&pO~P-aO]!mO%T!nOX`ia`ic`ir`ii`ix`iu`i#U`i#V`i%S`in`i#j`i#l`i#o`i#s`i#u`i#x`i#|`i$T`i$X`i$[`i$^`i$``i$b`i$d`i$g`i$k`i$m`i#q`i#z`i$i`if`i%R`i#W`i$Q`i$V`i~Ob`i~P2wOX`ir`ii`ix`iu`i#U`i#V`i%S`in`i#j`i#l`i#o`i#s`i#u`i#x`i#|`i$T`i$X`i$[`i$^`i$``i$b`i$d`i$g`i$k`i$m`i#q`i#z`i$i`if`i%R`i#W`i$Q`i$V`i~P-aOt&qOXqarqaxqanqa#Vqa#jqa#oqa#sqa#uqa#xqa#|qa$Tqa$Xqa$[qa$^qa$`qa$bqa$dqa$gqa$kqa$mqa#lqa#qqa#zqa$Qqa$Vqa$iqa~Ob!oO~P2wOXdirdiidixdiudi#Udi#Vdi%Sdindi#jdi#ldi#odi#sdi#udi#xdi#|di$Tdi$Xdi$[di$^di$`di$bdi$ddi$gdi$kdi$mdi#qdi#zdi$idifdi%Rdi#Wdi$Qdi$Vdi~P-aOr!qOx&sO~Ou%TOx&vO~Oo&yO~Ou%ZOx&{O~Oo&|O~Or!qOx&}O~Ou%bOx'RO#U%aO#V#aO~Or!qOx'SO~On#ia#V#ia#j#ia#l#ia#o#ia#s#ia#u#ia#x#ia#|#ia$T#ia$X#ia$[#ia$^#ia$`#ia$b#ia$d#ia$g#ia$k#ia$m#ia~P-aOn#na#V#na#j#na#o#na#q#na#s#na#u#na#x#na#|#na$T#na$X#na$[#na$^#na$`#na$b#na$d#na$g#na$k#na$m#na~P-aOn#rax#ra#V#ra#j#ra#o#ra#s#ra#u#ra#x#ra#|#ra$T#ra$X#ra$[#ra$^#ra$`#ra$b#ra$d#ra$g#ra$k#ra$m#ra#l#ra#q#ra#z#ra$Q#ra$V#ra$i#ra~P-aOn#wa#V#wa#j#wa#o#wa#s#wa#u#wa#x#wa#z#wa#|#wa$T#wa$X#wa$[#wa$^#wa$`#wa$b#wa$d#wa$g#wa$k#wa$m#wa~P-aOu%TOn#{ax#{a#V#{a#j#{a#o#{a#s#{a#u#{a#x#{a#|#{a$T#{a$X#{a$[#{a$^#{a$`#{a$b#{a$d#{a$g#{a$k#{a$m#{a#l#{a#q#{a#z#{a$Q#{a$V#{a$i#{a~P-aOt'^Ou%ZOn$Zax$Za#V$Za#j$Za#o$Za#s$Za#u$Za#x$Za#|$Za$T$Za$X$Za$[$Za$^$Za$`$Za$b$Za$d$Za$g$Za$k$Za$m$Za#l$Za#q$Za#z$Za$Q$Za$V$Za$i$Za~On$]ax$]a#V$]a#j$]a#o$]a#s$]a#u$]a#x$]a#|$]a$T$]a$X$]a$[$]a$^$]a$`$]a$b$]a$d$]a$g$]a$k$]a$m$]a#l$]a#q$]a#z$]a$Q$]a$V$]a$i$]a~P%}Ou%bO#U%aO#V#aOn$_ax$_a#j$_a#o$_a#s$_a#u$_a#x$_a#|$_a$T$_a$X$_a$[$_a$^$_a$`$_a$b$_a$d$_a$g$_a$k$_a$m$_a#l$_a#q$_a#z$_a$Q$_a$V$_a$i$_a~P-aOn$aax$aa#V$aa#j$aa#o$aa#s$aa#u$aa#x$aa#|$aa$T$aa$X$aa$[$aa$^$aa$`$aa$b$aa$d$aa$g$aa$k$aa$m$aa#l$aa#q$aa#z$aa$Q$aa$V$aa$i$aa~P-aOn$cax$ca#V$ca#j$ca#o$ca#s$ca#u$ca#x$ca#|$ca$T$ca$X$ca$[$ca$^$ca$`$ca$b$ca$d$ca$g$ca$k$ca$m$ca#l$ca#q$ca#z$ca$Q$ca$V$ca$i$ca~P%}On$fa#V$fa#j$fa#o$fa#s$fa#u$fa#x$fa#|$fa$T$fa$X$fa$[$fa$^$fa$`$fa$b$fa$d$fa$g$fa$i$fa$k$fa$m$fa~P-aOn$jax$ja#V$ja#j$ja#o$ja#s$ja#u$ja#x$ja#|$ja$T$ja$X$ja$[$ja$^$ja$`$ja$b$ja$d$ja$g$ja$k$ja$m$ja#l$ja#q$ja#z$ja$Q$ja$V$ja$i$ja~P-aOn$lax$la#V$la#j$la#o$la#s$la#u$la#x$la#|$la$T$la$X$la$[$la$^$la$`$la$b$la$d$la$g$la$k$la$m$la#l$la#q$la#z$la$Q$la$V$la$i$la~P-aOx'dO~Ox'eO~Of'gO~P-aOu$qax$qan$qa#V$qa#j$qa#o$qa#s$qa#u$qa#x$qa#|$qa$T$qa$X$qa$[$qa$^$qa$`$qa$b$qa$d$qa$g$qa$k$qa$m$qa#l$qa#q$qa#z$qa$Q$qa$V$qa$i$qaX$qar$qa~P-aOx'lO%R'hO~P-aOx'nO%R'hO~P-aOu%ZOx'pO~Ot'qO~O#W'rOu#Tax#Ta#U#Ta#V#Tan#Ta#j#Ta#o#Ta#s#Ta#u#Ta#x#Ta#|#Ta$T#Ta$X#Ta$[#Ta$^#Ta$`#Ta$b#Ta$d#Ta$g#Ta$k#Ta$m#Ta#l#Ta#q#Ta#z#Ta$Q#Ta$V#Ta$i#Ta~P-aOu%TOn#{ix#{i#V#{i#j#{i#o#{i#s#{i#u#{i#x#{i#|#{i$T#{i$X#{i$[#{i$^#{i$`#{i$b#{i$d#{i$g#{i$k#{i$m#{i#l#{i#q#{i#z#{i$Q#{i$V#{i$i#{i~Ou%ZOn$Zix$Zi#V$Zi#j$Zi#o$Zi#s$Zi#u$Zi#x$Zi#|$Zi$T$Zi$X$Zi$[$Zi$^$Zi$`$Zi$b$Zi$d$Zi$g$Zi$k$Zi$m$Zi#l$Zi#q$Zi#z$Zi$Q$Zi$V$Zi$i$Zi~Oo'vO~Or!qOn$]ix$]i#V$]i#j$]i#o$]i#s$]i#u$]i#x$]i#|$]i$T$]i$X$]i$[$]i$^$]i$`$]i$b$]i$d$]i$g$]i$k$]i$m$]i#l$]i#q$]i#z$]i$Q$]i$V$]i$i$]i~Ou%bO#U%aO#V#aOn$_ix$_i#j$_i#o$_i#s$_i#u$_i#x$_i#|$_i$T$_i$X$_i$[$_i$^$_i$`$_i$b$_i$d$_i$g$_i$k$_i$m$_i#l$_i#q$_i#z$_i$Q$_i$V$_i$i$_i~Or!qOn$cix$ci#V$ci#j$ci#o$ci#s$ci#u$ci#x$ci#|$ci$T$ci$X$ci$[$ci$^$ci$`$ci$b$ci$d$ci$g$ci$k$ci$m$ci#l$ci#q$ci#z$ci$Q$ci$V$ci$i$ci~Ou%TOXqqrqqxqqnqq#Vqq#jqq#oqq#sqq#uqq#xqq#|qq$Tqq$Xqq$[qq$^qq$`qq$bqq$dqq$gqq$kqq$mqq#lqq#qqq#zqq$Qqq$Vqq$iqq~P-aOt'yOx!dX%R!dXn!dX#V!dX#j!dX#o!dX#s!dX#u!dX#x!dX#|!dX$Q!dX$T!dX$X!dX$[!dX$^!dX$`!dX$b!dX$d!dX$g!dX$k!dX$m!dX$V!dX~Ox'{O%R'hO~Ox'|O%R'hO~Ou%ZOx'}O~O%R'hOn$Oq#V$Oq#j$Oq#o$Oq#s$Oq#u$Oq#x$Oq#|$Oq$Q$Oq$T$Oq$X$Oq$[$Oq$^$Oq$`$Oq$b$Oq$d$Oq$g$Oq$k$Oq$m$Oq~P-aO%R'hOn$Sq#V$Sq#j$Sq#o$Sq#s$Sq#u$Sq#x$Sq#|$Sq$T$Sq$V$Sq$X$Sq$[$Sq$^$Sq$`$Sq$b$Sq$d$Sq$g$Sq$k$Sq$m$Sq~P-aOu%ZOn$Zqx$Zq#V$Zq#j$Zq#o$Zq#s$Zq#u$Zq#x$Zq#|$Zq$T$Zq$X$Zq$[$Zq$^$Zq$`$Zq$b$Zq$d$Zq$g$Zq$k$Zq$m$Zq#l$Zq#q$Zq#z$Zq$Q$Zq$V$Zq$i$Zq~Ou%TOXqyrqyxqynqy#Vqy#jqy#oqy#sqy#uqy#xqy#|qy$Tqy$Xqy$[qy$^qy$`qy$bqy$dqy$gqy$kqy$mqy#lqy#qqy#zqy$Qqy$Vqy$iqy~Ou#Tqx#Tq#U#Tq#V#Tqn#Tq#j#Tq#o#Tq#s#Tq#u#Tq#x#Tq#|#Tq$T#Tq$X#Tq$[#Tq$^#Tq$`#Tq$b#Tq$d#Tq$g#Tq$k#Tq$m#Tq#l#Tq#q#Tq#z#Tq$Q#Tq$V#Tq$i#Tq~P-aO%R'hOn$Oy#V$Oy#j$Oy#o$Oy#s$Oy#u$Oy#x$Oy#|$Oy$Q$Oy$T$Oy$X$Oy$[$Oy$^$Oy$`$Oy$b$Oy$d$Oy$g$Oy$k$Oy$m$Oy~O%R'hOn$Sy#V$Sy#j$Sy#o$Sy#s$Sy#u$Sy#x$Sy#|$Sy$T$Sy$V$Sy$X$Sy$[$Sy$^$Sy$`$Sy$b$Sy$d$Sy$g$Sy$k$Sy$m$Sy~Ou%ZOn$Zyx$Zy#V$Zy#j$Zy#o$Zy#s$Zy#u$Zy#x$Zy#|$Zy$T$Zy$X$Zy$[$Zy$^$Zy$`$Zy$b$Zy$d$Zy$g$Zy$k$Zy$m$Zy#l$Zy#q$Zy#z$Zy$Q$Zy$V$Zy$i$Zy~Ox!di%R!din!di#V!di#j!di#o!di#s!di#u!di#x!di#|!di$Q!di$T!di$X!di$[!di$^!di$`!di$b!di$d!di$g!di$k!di$m!di$V!di~P-aO",goto:"@p%uPPPPPPPP%vP%v&W'hPP'h'hPPP'hPPP'hPPPPPPPP(fP(vPP(yPP(y)ZP)kP(yP(yP(y)qP*RP(y*XP*iP(yP(y*oPP+P+Z+eP(y+kP+{P(yP(yP(yP(y,RP,c,fP(y,iP,y,|P(yP(yP-PPPP(yP(yP(y-XP-iP(yP(yP(yP-o.PP.aP-o.gP.wP-oP-oP-o.}P/_P-oP-o/e/uP-o/{P0]P-oP-o-oP-oP-oP-oP-oP-o0cP0sP-oP-oP0y1i2P2o2}3a3s3y4P4V4uPPPPPP4{5]PPP'h'h8P%v9_9k9q:X:[:l:|;Q;b;f;v<W<h<l<|=Q=b=f=v>W>h>x?Y?j?z@O@`m^OTUVWX[`!T!W!Z!^!a!j!vdReklmopqyz{|}!O!P!n!o!p!u!v#c#f#i#m#p#|$O$Q$S$U$X$Z$|%T%X%Y%c&q'X'Z'q'yQ#RrQ#SsQ&O#qQ&T#tQ'O%bR(P's!wiReklmopqyz{|}!O!P!n!o!p!u!v#c#f#i#m#p#|$O$Q$S$U$X$Z$|%T%X%Y%c&q'X'Z'q'ym!rck!s!x!y#Y#]$}%_%h&Z&^'_'bR$w!qm]OTUVWX[`!T!W!Z!^!a!jmTOTUVWX[`!T!W!Z!^!a!jQ!STR$`!TmUOTUVWX[`!T!W!Z!^!a!jQ!VUR$b!WmVOTUVWX[`!T!W!Z!^!a!jQ!YVR$d!ZmWOTUVWX[`!T!W!Z!^!a!ja'j&w&x'k'm't'u(Q(Ra'i&w&x'k'm't'u(Q(RQ!]WR$f!^mXOTUVWX[`!T!W!Z!^!a!jQ!`XR$h!amYOTUVWX[`!T!W!Z!^!a!jR!eYR$k!emZOTUVWX[`!T!W!Z!^!a!jR!hZR$n!hS%d#Z%eT'`&['am[OTUVWX[`!T!W!Z!^!a!jQ!i[R$p!jm$[!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#d!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%p#dR'T%qm#g!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%u#gR'U%vm#n!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%{#nR'V%|m#r!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ&R#rR'Y&Sm#u!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ&W#uR'[&Xm$V!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ&b$VR'c&cQ`OQ!TTQ!WUQ!ZVQ!^WQ!aXQ!j[_!l`!T!W!Z!^!a!jSQO`SaQ!Ri!RTUVWX[!T!W!Z!^!a!jQ!scQ!yk^$x!s!y$}%_%h'_'bQ$}!xQ%_#YQ%h#]Q'_&ZR'b&^Q%U#QU&u%U'W'xQ'W%}R'x'fQ'k&wQ'm&xW'z'k'm(Q(RQ(Q'tR(R'uQ%[#VW&z%[']'o(SQ']&YQ'o&|R(S'vQ!dYR$j!dQ!gZR$m!gQ%e#ZR'Q%eQ$^!QQ%q#dQ%v#gQ%|#nQ&S#rQ&X#uQ&c$V_&f$^%q%v%|&S&X&cQ'a&[R'w'am_OTUVWX[`!T!W!Z!^!a!jQcRQ!weQ!xkQ!{lQ!|mQ#OoQ#PpQ#QqQ#YyQ#ZzQ#[{Q#]|Q#^}Q#_!OQ#`!PQ$s!nQ$t!oQ$u!pQ$z!uQ${!vQ%m#cQ%r#fQ%w#iQ%x#mQ%}#pQ&Z#|Q&[$OQ&]$QQ&^$SQ&_$UQ&d$XQ&e$ZQ&r$|Q&t%TQ&w%XQ&x%YQ'P%cQ'f&qQ't'XQ'u'ZQ(O'qR(T'y!viReklmopqyz{|}!O!P!n!o!p!u!v#c#f#i#m#p#|$O$Q$S$U$X$Z$|%T%X%Y%c&q'X'Z'q'ym#x!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%X#RQ%Y#SQ'X&OR'Z&TX%c#Z%e&['al#q!Q#d#g#n#r#u$V$^%q%v%|&S&X&cX%c#Z%e&['aR's'Pm$]!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#c!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT%o#d%qm#f!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT%t#g%vm#i!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#k!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#m!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT%z#n%|m#p!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT&Q#r&Sm#t!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT&V#u&Xm#w!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#z!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#|!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$O!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$Q!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$S!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$U!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT&a$V&cm$X!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$Z!Q#d#g#n#r#u$V$^%q%v%|&S&X&c",nodeNames:"\u26A0 {{ {% {% {% {% InlineComment Template Text }} Interpolation VariableName MemberExpression . PropertyName SubscriptExpression BinaryExpression contains CompareOp LogicOp AssignmentExpression AssignOp ) ( RangeExpression .. BooleanLiteral empty forloop tablerowloop continue StringLiteral NumberLiteral Filter | FilterName : , Tag TagName %} IfDirective Tag if EndTag endif Tag elsif Tag else UnlessDirective Tag unless EndTag endunless CaseDirective Tag case EndTag endcase Tag when ForDirective Tag for in Parameter ParameterName EndTag endfor TableDirective Tag tablerow EndTag endtablerow Tag break Tag continue Tag cycle Comment Tag comment CommentText EndTag endcomment RawDirective Tag raw RawText EndTag endraw Tag echo Tag render RenderParameter with for as Tag include Tag assign CaptureDirective Tag capture EndTag endcapture Tag increment Tag decrement Tag liquid IfDirective Tag if EndTag endif UnlessDirective Tag unless EndTag endunless Tag elsif Tag else CaseDirective Tag case EndTag endcase Tag when ForDirective Tag EndTag endfor TableDirective Tag tablerow EndTag endtablerow Tag break Tag Tag cycle Tag echo Tag render Tag include Tag assign CaptureDirective Tag capture EndTag endcapture Tag increment Tag decrement",maxTerm:220,nodeProps:[["closedBy",1,"}}",-4,2,3,4,5,"%}",23,")"],["openedBy",9,"{{",22,"(",40,"{%"],["group",-13,11,12,15,16,20,24,26,27,28,29,30,31,32,"Expression"]],skippedNodes:[0,6],repeatNodeCount:11,tokenData:")e~RmXY!|YZ!|]^!|pq!|qr#_rs#juv$[wx$gxy%Syz%X{|%^|}&x}!O&}!O!P'Z!Q![&g![!]'k!^!_'p!_!`'x!`!a'p!c!}(Q!}#O(y#P#Q)O#R#S(Q#T#o(Q#p#q)T#q#r)Y%W;'S(Q;'S;:j(s<%lO(Q~#RS%O~XY!|YZ!|]^!|pq!|~#bP!_!`#e~#jOb~~#mUOY#jZr#jrs$Ps;'S#j;'S;=`$U<%lO#j~$UOo~~$XP;=`<%l#j~$_P#q#r$b~$gOx~~$jUOY$gZw$gwx$Px;'S$g;'S;=`$|<%lO$g~%PP;=`<%l$g~%XOg~~%^Of~P%aQ!O!P%g!Q![&gP%jP!Q![%mP%rRpP!Q![%m!g!h%{#X#Y%{P&OR{|&X}!O&X!Q![&_P&[P!Q![&_P&dPpP!Q![&_P&lSpP!O!P%g!Q![&g!g!h%{#X#Y%{~&}Ou~~'QRuv$[!O!P%g!Q![&g~'`Q]S!O!P'f!Q![%m~'kOi~~'pOt~~'uPb~!_!`#e~'}Pe~!_!`#e_(ZW^WwQ%RT}!O(Q!Q![(Q!c!}(Q#R#S(Q#T#o(Q%W;'S(Q;'S;:j(s<%lO(Q_(vP;=`<%l(Q~)OO%T~~)TO%S~~)YOr~~)]P#q#r)`~)eOX~",tokenizers:[base,raw,comment,inlineComment,0,1,2,3],topRules:{Template:[0,7]},dynamicPrecedences:{190:1,191:1,192:1,194:1,195:1,196:1,197:1,199:1,200:1,201:1,202:1,203:1,204:1,205:1,206:1,207:1,208:1,209:1,210:1,211:1,212:1,213:1,214:1,215:1,216:1,217:1,218:1,219:1,220:1},specialized:[{term:187,get:value=>spec_identifier[value]||-1},{term:39,get:value=>spec_TagName[value]||-1}],tokenPrec:0}),Filters=completions("abs append at_least at_most capitalize ceil compact concat date default divided_by downcase escape escape_once first floor join last lstrip map minus modulo newline_to_br plus prepend remove remove_first replace replace_first reverse round rstrip size slice sort sort_natural split strip strip_html strip_newlines sum times truncate truncatewords uniq upcase url_decode url_encode where","function"),Tags=completions("cycle comment endcomment raw endraw echo increment decrement liquid if elsif else endif unless endunless case endcase for endfor tablerow endtablerow break continue assign capture endcapture render include","keyword"),Expressions=completions("empty forloop tablerowloop in with as","keyword"),forloop=completions("first index index0 last length rindex","property"),tablerowloop=completions("col col0 col_first col_last first index index0 last length rindex rindex0 row","property"),closePercentBrace=view.EditorView.inputHandler.of((view,from,to,text)=>"%"==text&&from==to&&"{}"==view.state.doc.sliceString(from-1,to+1)&&(view.dispatch(view.state.changeByRange(range=>({changes:{from:range.from,to:range.to,insert:"%%"},range:state.EditorSelection.cursor(range.from+1)})),{scrollIntoView:!0,userEvent:"input.type"}),!0)),tagLanguage=language.LRLanguage.define({name:"liquid",parser:parser.configure({props:[highlight.styleTags({"cycle comment endcomment raw endraw echo increment decrement liquid in with as":highlight.tags.keyword,"empty forloop tablerowloop":highlight.tags.atom,"if elsif else endif unless endunless case endcase for endfor tablerow endtablerow break continue":highlight.tags.controlKeyword,"assign capture endcapture":highlight.tags.definitionKeyword,contains:highlight.tags.operatorKeyword,"render include":highlight.tags.moduleKeyword,VariableName:highlight.tags.variableName,TagName:highlight.tags.tagName,FilterName:highlight.tags.function(highlight.tags.variableName),PropertyName:highlight.tags.propertyName,CompareOp:highlight.tags.compareOperator,AssignOp:highlight.tags.definitionOperator,LogicOp:highlight.tags.logicOperator,NumberLiteral:highlight.tags.number,StringLiteral:highlight.tags.string,BooleanLiteral:highlight.tags.bool,InlineComment:highlight.tags.lineComment,CommentText:highlight.tags.blockComment,"{% %} {{ }}":highlight.tags.brace,"[ ]":highlight.tags.bracket,"( )":highlight.tags.paren,".":highlight.tags.derefOperator,", .. : |":highlight.tags.punctuation}),language.indentNodeProp.add({Tag:language.delimitedIndent({closing:"%}"}),"UnlessDirective ForDirective TablerowDirective CaptureDirective":directiveIndent(/^\s*(\{%-?\s*)?end\w/),IfDirective:directiveIndent(/^\s*(\{%-?\s*)?(endif|else|elsif)\b/),CaseDirective:directiveIndent(/^\s*(\{%-?\s*)?(endcase|when)\b/)}),language.foldNodeProp.add({"UnlessDirective ForDirective TablerowDirective CaptureDirective IfDirective CaseDirective RawDirective Comment"(tree){let first=tree.firstChild,last=tree.lastChild;return first&&"Tag"==first.name?{from:first.to,to:"EndTag"==last.name?last.from:tree.to}:null}})]}),languageData:{commentTokens:{line:"#"},indentOnInput:/^\s*{%-?\s*(?:end|elsif|else|when|)$/}}),baseHTML=langHtml.html(),liquidLanguage=makeLiquid(baseHTML.language);// This file was generated by lezer-generator. You probably shouldn't edit it.
15
+ return dist.closePercentBrace=closePercentBrace,dist.liquid=liquid,dist.liquidCompletionSource=liquidCompletionSource,dist.liquidLanguage=liquidLanguage,dist}(),index=/*@__PURE__*/function getDefaultExportFromCjs(x){return x}(distExports);return module.exports=index,module.exports}
@@ -0,0 +1,55 @@
1
+ async function moduleInitFunction(requireAsyncModule,exports={}){const module={exports:exports};var hasRequiredDist,require$$0=await requireAsyncModule("@codemirror/state"),require$$1=await requireAsyncModule("@codemirror/view"),require$$2=await requireAsyncModule("@codemirror/language"),require$$3=await requireAsyncModule("@codemirror/autocomplete"),require$$4=await requireAsyncModule("@lezer/markdown"),require$$5=await requireAsyncModule("@codemirror/lang-html"),require$$6=await requireAsyncModule("@lezer/common"),dist={},distExports=function requireDist(){function isHeading(type){let match=/^(?:ATX|Setext)Heading(\d)$/.exec(type.name);return match?+match[1]:void 0}function isList(type){return"OrderedList"==type.name||"BulletList"==type.name}function findSectionEnd(headerNode,level){let last=headerNode;for(;;){let heading,next=last.nextSibling;if(!next||null!=(heading=isHeading(next.type))&&heading<=level)break;last=next}return last.to}function mkLang(parser){return new language.Language(data,parser,[],"markdown")}/**
2
+ Language support for strict CommonMark.
3
+ */function getCodeParser(languages,defaultLanguage){return info=>{if(info&&languages){let found=null;// Strip anything after whitespace
4
+ if(info=/\S*/.exec(info)[0],found="function"==typeof languages?languages(info):language.LanguageDescription.matchLanguageName(languages,info,!0),found instanceof language.LanguageDescription)return found.support?found.support.language.parser:language.ParseContext.getSkippingParser(found.load());if(found)return found.parser}return defaultLanguage?defaultLanguage.parser:null}}function getContext(node,doc){let nodes=[],context=[];for(let cur=node;cur;cur=cur.parent){if("FencedCode"==cur.name)return context;("ListItem"==cur.name||"Blockquote"==cur.name)&&nodes.push(cur)}for(let i=nodes.length-1;0<=i;i--){let match,node=nodes[i],line=doc.lineAt(node.from),startPos=node.from-line.from;if("Blockquote"==node.name&&(match=/^ *>( ?)/.exec(line.text.slice(startPos))))context.push(new Context(node,startPos,startPos+match[0].length,"",match[1],">",null));else if("ListItem"==node.name&&"OrderedList"==node.parent.name&&(match=/^( *)\d+([.)])( *)/.exec(line.text.slice(startPos)))){let after=match[3],len=match[0].length;4<=after.length&&(after=after.slice(0,after.length-4),len-=4),context.push(new Context(node.parent,startPos,startPos+len,match[1],after,match[2],node))}else if("ListItem"==node.name&&"BulletList"==node.parent.name&&(match=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(line.text.slice(startPos)))){let after=match[4],len=match[0].length;4<after.length&&(after=after.slice(0,after.length-4),len-=4);let type=match[2];match[3]&&(type+=match[3].replace(/[xX]/," ")),context.push(new Context(node.parent,startPos,startPos+len,match[1],after,type,node))}}return context}function itemNumber(item,doc){return /^(\s*)(\d+)(?=[.)])/.exec(doc.sliceString(item.from,item.from+10))}function renumberList(after,doc,changes,offset=0){for(let prev=-1,node=after;;){if("ListItem"==node.name){let m=itemNumber(node,doc),number=+m[2];if(0<=prev){if(number!=prev+1)return;changes.push({from:node.from+m[1].length,to:node.from+m[0].length,insert:prev+2+offset+""})}prev=number}let next=node.nextSibling;if(!next)break;node=next}}function normalizeIndent(content,state$1){let blank=/^[ \t]*/.exec(content)[0].length;if(!blank||"\t"!=state$1.facet(language.indentUnit))return content;let col=state.countColumn(content,4,blank),space="";for(let i=col;0<i;)4<=i?(space+="\t",i-=4):(space+=" ",i--);return space+content.slice(blank)}/**
5
+ Returns a command like
6
+ [`insertNewlineContinueMarkup`](https://codemirror.net/6/docs/ref/#lang-markdown.insertNewlineContinueMarkup),
7
+ allowing further configuration.
8
+ */function isMark(node){return"QuoteMark"==node.name||"ListMark"==node.name}function nonTightList(node,doc){if("OrderedList"!=node.name&&"BulletList"!=node.name)return!1;let first=node.firstChild,second=node.getChild("ListItem","ListItem");if(!second)return!1;let line1=doc.lineAt(first.to),line2=doc.lineAt(second.from),empty=/^[\s>]*$/.test(line1.text);return line1.number+(empty?0:1)<line2.number}function blankLine(context,state$1,line){let insert="";for(let i=0,e=context.length-2;i<=e;i++)insert+=context[i].blank(i<e?state.countColumn(line.text,4,context[i+1].from)-insert.length:null,i<e);return normalizeIndent(insert,state$1)}function contextNodeForDelete(tree,pos){let node=tree.resolveInner(pos,-1),scan=pos;isMark(node)&&(scan=node.from,node=node.parent);for(let prev;prev=node.childBefore(scan);)if(isMark(prev))scan=prev.from;else if("OrderedList"==prev.name||"BulletList"==prev.name)node=prev.lastChild,scan=node.to;else break;return node}/**
9
+ This command will, when invoked in a Markdown context with the
10
+ cursor directly after list or blockquote markup, delete one level
11
+ of markup. When the markup is for a list, it will be replaced by
12
+ spaces on the first invocation (a further invocation will delete
13
+ the spaces), to make it easy to continue a list.
14
+
15
+ When not after Markdown block markup, this command will return
16
+ false, so it is intended to be bound alongside other deletion
17
+ commands, with a higher precedence than the more generic commands.
18
+ */ /**
19
+ Markdown language support.
20
+ */function markdown(config={}){let{codeLanguages,defaultCodeLanguage,addKeymap=!0,base:{parser}=commonmarkLanguage,completeHTMLTags=!0,pasteURLAsLink:pasteURL=!0,htmlTagLanguage=htmlNoMatch}=config;if(!(parser instanceof markdown$1.MarkdownParser))throw new RangeError("Base parser provided to `markdown` should be a Markdown parser");let defaultCode,extensions=config.extensions?[config.extensions]:[],support=[htmlTagLanguage.support,headerIndent];pasteURL&&support.push(pasteURLAsLink),defaultCodeLanguage instanceof language.LanguageSupport?(support.push(defaultCodeLanguage.support),defaultCode=defaultCodeLanguage.language):defaultCodeLanguage&&(defaultCode=defaultCodeLanguage);let codeParser=codeLanguages||defaultCode?getCodeParser(codeLanguages,defaultCode):void 0;extensions.push(markdown$1.parseCode({codeParser,htmlParser:htmlTagLanguage.language.parser})),addKeymap&&support.push(state.Prec.high(view.keymap.of(markdownKeymap)));let lang=mkLang(parser.configure(extensions));return completeHTMLTags&&support.push(lang.data.of({autocomplete:htmlTagCompletion})),new language.LanguageSupport(lang,support)}function htmlTagCompletion(context){let{state,pos}=context,m=/<[:\-\.\w\u00b7-\uffff]*$/.exec(state.sliceDoc(pos-25,pos));if(!m)return null;for(let tree=language.syntaxTree(state).resolveInner(pos,-1);tree&&!tree.type.isTop;){if("CodeBlock"==tree.name||"FencedCode"==tree.name||"ProcessingInstructionBlock"==tree.name||"CommentBlock"==tree.name||"Link"==tree.name||"Image"==tree.name)return null;tree=tree.parent}return{from:pos-m[0].length,to:pos,options:htmlTagCompletions(),validFor:/^<[:\-\.\w\u00b7-\uffff]*$/}}function htmlTagCompletions(){if(_tagCompletions)return _tagCompletions;let result=langHtml.htmlCompletionSource(new autocomplete.CompletionContext(state.EditorState.create({extensions:htmlNoMatch}),0,!0));return _tagCompletions=result?result.options:[]}if(hasRequiredDist)return dist;hasRequiredDist=1;var state=require$$0,view=require$$1,language=require$$2,autocomplete=require$$3,markdown$1=require$$4,langHtml=require$$5,common=require$$6;const data=language.defineLanguageFacet({commentTokens:{block:{open:"<!--",close:"-->"}}}),headingProp=new common.NodeProp,commonmark=markdown$1.parser.configure({props:[language.foldNodeProp.add(type=>!type.is("Block")||type.is("Document")||null!=isHeading(type)||isList(type)?void 0:(tree,state)=>({from:state.doc.lineAt(tree.from).to,to:tree.to})),headingProp.add(isHeading),language.indentNodeProp.add({Document:()=>null}),language.languageDataProp.add({Document:data})]}),headerIndent=language.foldService.of((state,start,end)=>{for(let heading,node=language.syntaxTree(state).resolveInner(end,-1);node&&!(node.from<start);node=node.parent){if(heading=node.type.prop(headingProp),null==heading)continue;let upto=findSectionEnd(node,heading);if(upto>end)return{from:end,to:upto}}return null}),commonmarkLanguage=mkLang(commonmark),extended=commonmark.configure([markdown$1.GFM,markdown$1.Subscript,markdown$1.Superscript,markdown$1.Emoji,{props:[language.foldNodeProp.add({Table:(tree,state)=>({from:state.doc.lineAt(tree.from).to,to:tree.to})})]}]),markdownLanguage=mkLang(extended);/**
21
+ Language support for [GFM](https://github.github.com/gfm/) plus
22
+ subscript, superscript, and emoji syntax.
23
+ */class Context{constructor(node,from,to,spaceBefore,spaceAfter,type,item){this.node=node,this.from=from,this.to=to,this.spaceBefore=spaceBefore,this.spaceAfter=spaceAfter,this.type=type,this.item=item}blank(maxWidth,trailing=!0){let result=this.spaceBefore+("Blockquote"==this.node.name?">":"");if(null!=maxWidth){for(;result.length<maxWidth;)result+=" ";return result}for(let i=this.to-this.from-result.length-this.spaceAfter.length;0<i;i--)result+=" ";return result+(trailing?this.spaceAfter:"")}marker(doc,add){let number="OrderedList"==this.node.name?+itemNumber(this.item,doc)[2]+add+"":"";return this.spaceBefore+number+this.type+this.spaceAfter}}const insertNewlineContinueMarkupCommand=(config={})=>({state:state$1,dispatch})=>{let tree=language.syntaxTree(state$1),{doc}=state$1,dont=null,changes=state$1.changeByRange(range=>{if(!range.empty||!markdownLanguage.isActiveAt(state$1,range.from,-1)&&!markdownLanguage.isActiveAt(state$1,range.from,1))return dont={range};let pos=range.from,line=doc.lineAt(pos),context=getContext(tree.resolveInner(pos,-1),doc);for(;context.length&&context[context.length-1].from>pos-line.from;)context.pop();if(!context.length)return dont={range};let inner=context[context.length-1];if(inner.to-inner.spaceAfter.length>pos-line.from)return dont={range};let emptyLine=pos>=inner.to-inner.spaceAfter.length&&!/\S/.test(line.text.slice(inner.to));// Empty line in list
24
+ if(inner.item&&emptyLine){let first=inner.node.firstChild,second=inner.node.getChild("ListItem","ListItem");// Not second item or blank line before: delete a level of markup
25
+ if(first.to>=pos||second&&second.to<pos||0<line.from&&!/[^\s>]/.test(doc.lineAt(line.from-1).text)||!1===config.nonTightLists){let delTo,next=1<context.length?context[context.length-2]:null,insert="";next&&next.item?(delTo=line.from+next.from,insert=next.marker(doc,1)):delTo=line.from+(next?next.to:0);let changes=[{from:delTo,to:pos,insert}];return"OrderedList"==inner.node.name&&renumberList(inner.item,doc,changes,-2),next&&"OrderedList"==next.node.name&&renumberList(next.item,doc,changes),{range:state.EditorSelection.cursor(delTo+insert.length),changes}}else{// Move second item down, making tight two-item list non-tight
26
+ let insert=blankLine(context,state$1,line);return{range:state.EditorSelection.cursor(pos+insert.length+1),changes:{from:line.from,insert:insert+state$1.lineBreak}}}}if("Blockquote"==inner.node.name&&emptyLine&&line.from){let prevLine=doc.lineAt(line.from-1),quoted=/>\s*$/.exec(prevLine.text);// Two aligned empty quoted lines in a row
27
+ if(quoted&&quoted.index==inner.from){let changes=state$1.changes([{from:prevLine.from+quoted.index,to:prevLine.to},{from:line.from+inner.from,to:line.to}]);return{range:range.map(changes),changes}}}let changes=[];"OrderedList"==inner.node.name&&renumberList(inner.item,doc,changes);let continued=inner.item&&inner.item.from<line.from,insert="";// If not dedented
28
+ if(!continued||/^[\s\d.)\-+*>]*/.exec(line.text)[0].length>=inner.to)for(let i=0,e=context.length-1;i<=e;i++)insert+=i!=e||continued?context[i].blank(i<e?state.countColumn(line.text,4,context[i+1].from)-insert.length:null):context[i].marker(doc,1);let from=pos;for(;from>line.from&&/\s/.test(line.text.charAt(from-line.from-1));)from--;return insert=normalizeIndent(insert,state$1),nonTightList(inner.node,state$1.doc)&&(insert=blankLine(context,state$1,line)+state$1.lineBreak+insert),changes.push({from,to:pos,insert:state$1.lineBreak+insert}),{range:state.EditorSelection.cursor(from+insert.length+1),changes}});return!dont&&(dispatch(state$1.update(changes,{scrollIntoView:!0,userEvent:"input"})),!0)},insertNewlineContinueMarkup=insertNewlineContinueMarkupCommand(),deleteMarkupBackward=({state:state$1,dispatch})=>{let tree=language.syntaxTree(state$1),dont=null,changes=state$1.changeByRange(range=>{let pos=range.from,{doc}=state$1;if(range.empty&&markdownLanguage.isActiveAt(state$1,range.from)){let line=doc.lineAt(pos),context=getContext(contextNodeForDelete(tree,pos),doc);if(context.length){let inner=context[context.length-1],spaceEnd=inner.to-inner.spaceAfter.length+(inner.spaceAfter?1:0);// Delete extra trailing space after markup
29
+ if(pos-line.from>spaceEnd&&!/\S/.test(line.text.slice(spaceEnd,pos-line.from)))return{range:state.EditorSelection.cursor(line.from+spaceEnd),changes:{from:line.from+spaceEnd,to:pos}};if(pos-line.from==spaceEnd&&(// Only apply this if we're on the line that has the
30
+ // construct's syntax, or there's only indentation in the
31
+ // target range
32
+ !inner.item||line.from<=inner.item.from||!/\S/.test(line.text.slice(0,inner.to)))){let start=line.from+inner.from;// Replace a list item marker with blank space
33
+ if(inner.item&&inner.node.from<inner.item.from&&/\S/.test(line.text.slice(inner.from,inner.to))){let insert=inner.blank(state.countColumn(line.text,4,inner.to)-state.countColumn(line.text,4,inner.from));return start==line.from&&(insert=normalizeIndent(insert,state$1)),{range:state.EditorSelection.cursor(start+insert.length),changes:{from:start,to:line.from+inner.to,insert}}}// Delete one level of indentation
34
+ if(start<pos)return{range:state.EditorSelection.cursor(start),changes:{from:start,to:pos}}}}}return dont={range}});return!dont&&(dispatch(state$1.update(changes,{scrollIntoView:!0,userEvent:"delete"})),!0)},markdownKeymap=[{key:"Enter",run:insertNewlineContinueMarkup},{key:"Backspace",run:deleteMarkupBackward}],htmlNoMatch=langHtml.html({matchClosingTags:!1});/**
35
+ This command, when invoked in Markdown context with cursor
36
+ selection(s), will create a new line with the markup for
37
+ blockquotes and lists that were active on the old line. If the
38
+ cursor was directly after the end of the markup for the old line,
39
+ trailing whitespace and list markers are removed from that line.
40
+
41
+ The command does nothing in non-Markdown context, so it should
42
+ not be used as the only binding for Enter (even in a Markdown
43
+ document, HTML and code regions might use a different language).
44
+ */ /**
45
+ A small keymap with Markdown-specific bindings. Binds Enter to
46
+ [`insertNewlineContinueMarkup`](https://codemirror.net/6/docs/ref/#lang-markdown.insertNewlineContinueMarkup)
47
+ and Backspace to
48
+ [`deleteMarkupBackward`](https://codemirror.net/6/docs/ref/#lang-markdown.deleteMarkupBackward).
49
+ */let _tagCompletions=null;const nonPlainText=/code|horizontalrule|html|link|comment|processing|escape|entity|image|mark|url/i,pasteURLAsLink=view.EditorView.domEventHandlers({paste:(event,view)=>{var _a;let{main}=view.state.selection;if(main.empty)return!1;let link=null===(_a=event.clipboardData)||void 0===_a?void 0:_a.getData("text/plain");if(!link||!/^(https?:\/\/|mailto:|xmpp:|www\.)/.test(link))return!1;if(/^www\./.test(link)&&(link="https://"+link),!markdownLanguage.isActiveAt(view.state,main.from,1))return!1;let tree=language.syntaxTree(view.state),crossesNode=!1;// Verify that no nodes are started/ended between the selection
50
+ // points, and we're not inside any non-plain-text construct.
51
+ return(tree.iterate({from:main.from,to:main.to,enter:node=>{(node.from>main.from||nonPlainText.test(node.name))&&(crossesNode=!0)},leave:node=>{node.to<main.to&&(crossesNode=!0)}}),!crossesNode)&&(view.dispatch({changes:[{from:main.from,insert:"["},{from:main.to,insert:`](${link})`}],userEvent:"input.paste",scrollIntoView:!0}),!0)}});/**
52
+ An extension that intercepts pastes when the pasted content looks
53
+ like a URL and the selection is non-empty and selects regular
54
+ text, making the selection a link with the pasted URL as target.
55
+ */return dist.commonmarkLanguage=commonmarkLanguage,dist.deleteMarkupBackward=deleteMarkupBackward,dist.insertNewlineContinueMarkup=insertNewlineContinueMarkup,dist.insertNewlineContinueMarkupCommand=insertNewlineContinueMarkupCommand,dist.markdown=markdown,dist.markdownKeymap=markdownKeymap,dist.markdownLanguage=markdownLanguage,dist.pasteURLAsLink=pasteURLAsLink,dist}(),index=/*@__PURE__*/function getDefaultExportFromCjs(x){return x}(distExports);return module.exports=index,module.exports}
@@ -0,0 +1,7 @@
1
+ async function moduleInitFunction(requireAsyncModule,exports={}){const module={exports:exports};var hasRequiredDist,require$$0=await requireAsyncModule("@lezer/php"),require$$1=await requireAsyncModule("@lezer/common"),require$$2=await requireAsyncModule("@codemirror/lang-html"),require$$3=await requireAsyncModule("@codemirror/language"),dist={},distExports=function requireDist(){/**
2
+ PHP language support.
3
+ */function php(config={}){let base,support=[];if(null===config.baseLanguage);else if(config.baseLanguage)base=config.baseLanguage;else{let htmlSupport=langHtml.html({matchClosingTags:!1});support.push(htmlSupport.support),base=htmlSupport.language}return new language.LanguageSupport(phpLanguage.configure({wrap:base&&common.parseMixed(node=>node.type.isTop?{parser:base.parser,overlay:node=>"Text"==node.name}:null),top:config.plain?"Program":"Template"}),support)}if(hasRequiredDist)return dist;hasRequiredDist=1;var php$1=require$$0,common=require$$1,langHtml=require$$2,language=require$$3;/**
4
+ A language provider based on the [Lezer PHP
5
+ parser](https://github.com/lezer-parser/php), extended with
6
+ highlighting and indentation information.
7
+ */const phpLanguage=language.LRLanguage.define({name:"php",parser:php$1.parser.configure({props:[language.indentNodeProp.add({IfStatement:language.continuedIndent({except:/^\s*({|else\b|elseif\b|endif\b)/}),TryStatement:language.continuedIndent({except:/^\s*({|catch\b|finally\b)/}),SwitchBody:context=>{let after=context.textAfter,closed=/^\s*\}/.test(after),isCase=/^\s*(case|default)\b/.test(after);return context.baseIndent+(closed?0:isCase?1:2)*context.unit},ColonBlock:cx=>cx.baseIndent+cx.unit,"Block EnumBody DeclarationList":language.delimitedIndent({closing:"}"}),ArrowFunction:cx=>cx.baseIndent+cx.unit,"String BlockComment":()=>null,Statement:language.continuedIndent({except:/^({|end(for|foreach|switch|while)\b)/})}),language.foldNodeProp.add({"Block EnumBody DeclarationList SwitchBody ArrayExpression ValueList":language.foldInside,ColonBlock(tree){return{from:tree.from+1,to:tree.to}},BlockComment(tree){return{from:tree.from+2,to:tree.to-2}}})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*(?:case |default:|end(?:if|for(?:each)?|switch|while)|else(?:if)?|\{|\})$/,wordChars:"$",closeBrackets:{stringPrefixes:["b","B"]}}});return dist.php=php,dist.phpLanguage=phpLanguage,dist}(),index=/*@__PURE__*/function getDefaultExportFromCjs(x){return x}(distExports);return module.exports=index,module.exports}
@@ -0,0 +1,19 @@
1
+ async function moduleInitFunction(requireAsyncModule,exports={}){const module={exports:exports};var hasRequiredDist,require$$0=await requireAsyncModule("@lezer/python"),require$$1=await requireAsyncModule("@codemirror/language"),require$$2=await requireAsyncModule("@lezer/common"),require$$3=await requireAsyncModule("@codemirror/autocomplete"),dist={},distExports=function requireDist(){function defID(type){return(node,def,outer)=>{if(outer)return!1;let id=node.node.getChild("VariableName");return id&&def(id,type),!0}}function getScope(doc,node){function def(node,type){let name=doc.sliceString(node.from,node.to);completions.push({label:name,type})}let cached=cache.get(node);if(cached)return cached;let completions=[],top=!0;return node.cursor(common.IterMode.IncludeAnonymous).iterate(node=>{if(node.name){let gather=gatherCompletions[node.name];if(gather&&gather(node,def,top)||!top&&ScopeNodes.has(node.name))return!1;top=!1}else if(8192<node.to-node.from){// Allow caching for bigger internal nodes
2
+ for(let c of getScope(doc,node.node))completions.push(c);return!1}}),cache.set(node,completions),completions}/**
3
+ Completion source that looks up locally defined names in
4
+ Python code.
5
+ */function localCompletionSource(context){let inner=language.syntaxTree(context.state).resolveInner(context.pos,-1);if(-1<dontComplete.indexOf(inner.name))return null;let isWord="VariableName"==inner.name||20>inner.to-inner.from&&Identifier.test(context.state.sliceDoc(inner.from,inner.to));if(!isWord&&!context.explicit)return null;let options=[];for(let pos=inner;pos;pos=pos.parent)ScopeNodes.has(pos.name)&&(options=options.concat(getScope(context.state.doc,pos)));return{options,from:isWord?inner.from:context.pos,validFor:Identifier}}function innerBody(context){let{node,pos}=context,lineIndent=context.lineIndent(pos,-1),found=null;for(;;){let before=node.childBefore(pos);if(!before)break;else if("Comment"==before.name)pos=before.from;else if("Body"==before.name||"MatchBody"==before.name)context.baseIndentFor(before)+context.unit<=lineIndent&&(found=before),node=before;else if("MatchClause"==before.name)node=before;else if(before.type.is("Statement"))node=before;else break}return found}function indentBody(context,node){let base=context.baseIndentFor(node),line=context.lineAt(context.pos,-1),to=line.from+line.text.length;// Don't consider blank, deindented lines at the end of the
6
+ // block part of the block
7
+ return /^\s*($|#)/.test(line.text)&&context.node.to<to+100&&!/\S/.test(context.state.sliceDoc(to,context.node.to))&&context.lineIndent(context.pos,-1)<=base?null:/^\s*(else:|elif |except |finally:|case\s+[^=:]+:)/.test(context.textAfter)&&context.lineIndent(context.pos,-1)>base?null:base+context.unit;// A normally deindenting keyword that appears at a higher
8
+ // indentation than the block should probably be handled by the next
9
+ // level
10
+ }/**
11
+ A language provider based on the [Lezer Python
12
+ parser](https://github.com/lezer-parser/python), extended with
13
+ highlighting and indentation information.
14
+ */ /**
15
+ Python language support.
16
+ */function python(){return new language.LanguageSupport(pythonLanguage,[pythonLanguage.data.of({autocomplete:localCompletionSource}),pythonLanguage.data.of({autocomplete:globalCompletion})])}if(hasRequiredDist)return dist;hasRequiredDist=1;var python$1=require$$0,language=require$$1,common=require$$2,autocomplete=require$$3;const cache=new common.NodeWeakMap,ScopeNodes=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]),gatherCompletions={FunctionDefinition:defID("function"),ClassDefinition:defID("class"),ForStatement(node,def,outer){if(outer)for(let child=node.node.firstChild;child;child=child.nextSibling)if("VariableName"==child.name)def(child,"variable");else if("in"==child.name)break},ImportStatement(_node,def){var _a,_b;let{node}=_node,isFrom="from"==(null===(_a=node.firstChild)||void 0===_a?void 0:_a.name);for(let ch=node.getChild("import");ch;ch=ch.nextSibling)"VariableName"==ch.name&&"as"!=(null===(_b=ch.nextSibling)||void 0===_b?void 0:_b.name)&&def(ch,isFrom?"variable":"namespace")},AssignStatement(node,def){for(let child=node.node.firstChild;child;child=child.nextSibling)if("VariableName"==child.name)def(child,"variable");else if(":"==child.name||"AssignOp"==child.name)break},ParamList(node,def){for(let prev=null,child=node.node.firstChild;child;child=child.nextSibling)"VariableName"!=child.name||prev&&/\*|AssignOp/.test(prev.name)||def(child,"variable"),prev=child},CapturePattern:defID("variable"),AsPattern:defID("variable"),__proto__:null},Identifier=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,dontComplete=["String","FormatString","Comment","PropertyName"],globals=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(n=>({label:n,type:"constant"})).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map(n=>({label:n,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(n=>({label:n,type:"class"}))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map(n=>({label:n,type:"function"}))),snippets=[autocomplete.snippetCompletion("def ${name}(${params}):\n\t${}",{label:"def",detail:"function",type:"keyword"}),autocomplete.snippetCompletion("for ${name} in ${collection}:\n\t${}",{label:"for",detail:"loop",type:"keyword"}),autocomplete.snippetCompletion("while ${}:\n\t${}",{label:"while",detail:"loop",type:"keyword"}),autocomplete.snippetCompletion("try:\n\t${}\nexcept ${error}:\n\t${}",{label:"try",detail:"/ except block",type:"keyword"}),autocomplete.snippetCompletion("if ${}:\n\t\n",{label:"if",detail:"block",type:"keyword"}),autocomplete.snippetCompletion("if ${}:\n\t${}\nelse:\n\t${}",{label:"if",detail:"/ else block",type:"keyword"}),autocomplete.snippetCompletion("class ${name}:\n\tdef __init__(self, ${params}):\n\t\t\t${}",{label:"class",detail:"definition",type:"keyword"}),autocomplete.snippetCompletion("import ${module}",{label:"import",detail:"statement",type:"keyword"}),autocomplete.snippetCompletion("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],globalCompletion=autocomplete.ifNotIn(dontComplete,autocomplete.completeFromList(globals.concat(snippets))),pythonLanguage=language.LRLanguage.define({name:"python",parser:python$1.parser.configure({props:[language.indentNodeProp.add({Body:context=>{var _a;let body=/^\s*(#|$)/.test(context.textAfter)&&innerBody(context)||context.node;return null!==(_a=indentBody(context,body))&&void 0!==_a?_a:context.continue()},MatchBody:context=>{var _a;let inner=innerBody(context);return null!==(_a=indentBody(context,inner||context.node))&&void 0!==_a?_a:context.continue()},IfStatement:cx=>/^\s*(else:|elif )/.test(cx.textAfter)?cx.baseIndent:cx.continue(),"ForStatement WhileStatement":cx=>/^\s*else:/.test(cx.textAfter)?cx.baseIndent:cx.continue(),TryStatement:cx=>/^\s*(except[ :]|finally:|else:)/.test(cx.textAfter)?cx.baseIndent:cx.continue(),MatchStatement:cx=>/^\s*case /.test(cx.textAfter)?cx.baseIndent+cx.unit:cx.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":language.delimitedIndent({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":language.delimitedIndent({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":language.delimitedIndent({closing:"]"}),MemberExpression:cx=>cx.baseIndent+cx.unit,"String FormatString":()=>null,Script:context=>{var _a;let inner=innerBody(context);return null!==(_a=inner&&indentBody(context,inner))&&void 0!==_a?_a:context.continue()}}),language.foldNodeProp.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":language.foldInside,Body:(node,state)=>({from:node.from+1,to:node.to-(node.to==state.doc.length?0:1)}),"String FormatString":(node,state)=>({from:state.doc.lineAt(node.from).to,to:node.to})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'","\"","'''","\"\"\""],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},// Indent logic logic are triggered upon below input patterns
17
+ indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:|case\s+[^:]*:?)$/}});/**
18
+ Autocompletion for built-in Python globals and keywords.
19
+ */return dist.globalCompletion=globalCompletion,dist.localCompletionSource=localCompletionSource,dist.python=python,dist.pythonLanguage=pythonLanguage,dist}(),index=/*@__PURE__*/function getDefaultExportFromCjs(x){return x}(distExports);return module.exports=index,module.exports}