@kerebron/legacy-compat 0.6.3 → 0.6.4

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 (222) hide show
  1. package/dist/__vite-browser-external-D37bwR0X.cjs +234 -0
  2. package/dist/__vite-browser-external-D37bwR0X.cjs.map +1 -0
  3. package/dist/apl-M-DNMvvR.cjs +2 -0
  4. package/dist/apl-M-DNMvvR.cjs.map +1 -0
  5. package/dist/asciiarmor-BMx3XVjX.cjs +2 -0
  6. package/dist/asciiarmor-BMx3XVjX.cjs.map +1 -0
  7. package/dist/asn1-OOsVM4yU.cjs +2 -0
  8. package/dist/asn1-OOsVM4yU.cjs.map +1 -0
  9. package/dist/asterisk-B1QUaW1C.cjs +2 -0
  10. package/dist/asterisk-B1QUaW1C.cjs.map +1 -0
  11. package/dist/brainfuck-BjUlYKdF.cjs +2 -0
  12. package/dist/brainfuck-BjUlYKdF.cjs.map +1 -0
  13. package/dist/clike-DLHgOXgk.cjs +2 -0
  14. package/dist/clike-DLHgOXgk.cjs.map +1 -0
  15. package/dist/clojure-Ap_IXD2I.cjs +2 -0
  16. package/dist/clojure-Ap_IXD2I.cjs.map +1 -0
  17. package/dist/cmake-C4D5_VmS.cjs +2 -0
  18. package/dist/cmake-C4D5_VmS.cjs.map +1 -0
  19. package/dist/cobol-Du-cT2hr.cjs +2 -0
  20. package/dist/cobol-Du-cT2hr.cjs.map +1 -0
  21. package/dist/coffeescript-DDFAj2ea.cjs +2 -0
  22. package/dist/coffeescript-DDFAj2ea.cjs.map +1 -0
  23. package/dist/commonlisp-CXBBRCTx.cjs +2 -0
  24. package/dist/commonlisp-CXBBRCTx.cjs.map +1 -0
  25. package/dist/crystal-DAFWRDbh.cjs +2 -0
  26. package/dist/crystal-DAFWRDbh.cjs.map +1 -0
  27. package/dist/cypher-BN0-oCze.cjs +2 -0
  28. package/dist/cypher-BN0-oCze.cjs.map +1 -0
  29. package/dist/d-BHsqGcfm.cjs +2 -0
  30. package/dist/d-BHsqGcfm.cjs.map +1 -0
  31. package/dist/diff-CemTHKfk.cjs +2 -0
  32. package/dist/diff-CemTHKfk.cjs.map +1 -0
  33. package/dist/dockerfile-BBTH3voH.cjs +2 -0
  34. package/dist/dockerfile-BBTH3voH.cjs.map +1 -0
  35. package/dist/dtd-ChoVQPwv.cjs +2 -0
  36. package/dist/dtd-ChoVQPwv.cjs.map +1 -0
  37. package/dist/dylan-apTQIgUA.cjs +2 -0
  38. package/dist/dylan-apTQIgUA.cjs.map +1 -0
  39. package/dist/ebnf-LYmLy17h.cjs +2 -0
  40. package/dist/ebnf-LYmLy17h.cjs.map +1 -0
  41. package/dist/ecl-C7WNQq7-.cjs +2 -0
  42. package/dist/ecl-C7WNQq7-.cjs.map +1 -0
  43. package/dist/eiffel-BJThA8RG.cjs +2 -0
  44. package/dist/eiffel-BJThA8RG.cjs.map +1 -0
  45. package/dist/elm-CcXP9T36.cjs +2 -0
  46. package/dist/elm-CcXP9T36.cjs.map +1 -0
  47. package/dist/erlang-B6mpcObI.cjs +2 -0
  48. package/dist/erlang-B6mpcObI.cjs.map +1 -0
  49. package/dist/factor-B-tsx9yW.cjs +2 -0
  50. package/dist/factor-B-tsx9yW.cjs.map +1 -0
  51. package/dist/fcl-BzAKklXo.cjs +2 -0
  52. package/dist/fcl-BzAKklXo.cjs.map +1 -0
  53. package/dist/forth-CPAzyZ_n.cjs +2 -0
  54. package/dist/forth-CPAzyZ_n.cjs.map +1 -0
  55. package/dist/fortran-DHiTlGV1.cjs +2 -0
  56. package/dist/fortran-DHiTlGV1.cjs.map +1 -0
  57. package/dist/gas-BiPtGF2E.cjs +2 -0
  58. package/dist/gas-BiPtGF2E.cjs.map +1 -0
  59. package/dist/gherkin-Djo7Y51D.cjs +2 -0
  60. package/dist/gherkin-Djo7Y51D.cjs.map +1 -0
  61. package/dist/go-BgtlNyKc.cjs +2 -0
  62. package/dist/go-BgtlNyKc.cjs.map +1 -0
  63. package/dist/groovy-BMVITiCm.cjs +2 -0
  64. package/dist/groovy-BMVITiCm.cjs.map +1 -0
  65. package/dist/haskell-C46lNFBv.cjs +2 -0
  66. package/dist/haskell-C46lNFBv.cjs.map +1 -0
  67. package/dist/haxe-G9XvbXZx.cjs +2 -0
  68. package/dist/haxe-G9XvbXZx.cjs.map +1 -0
  69. package/dist/http-BkLifcnL.cjs +2 -0
  70. package/dist/http-BkLifcnL.cjs.map +1 -0
  71. package/dist/idl-FmHDmsE-.cjs +2 -0
  72. package/dist/idl-FmHDmsE-.cjs.map +1 -0
  73. package/dist/index-BM1M1odH.cjs +2 -0
  74. package/dist/index-BM1M1odH.cjs.map +1 -0
  75. package/dist/index-BSk5Azep.cjs +2 -0
  76. package/dist/index-BSk5Azep.cjs.map +1 -0
  77. package/dist/index-BbDn6ZIh.cjs +2 -0
  78. package/dist/index-BbDn6ZIh.cjs.map +1 -0
  79. package/dist/index-BdZNqjwb.cjs +2 -0
  80. package/dist/index-BdZNqjwb.cjs.map +1 -0
  81. package/dist/index-BxzrOAhL.cjs +4 -0
  82. package/dist/index-BxzrOAhL.cjs.map +1 -0
  83. package/dist/index-C4Wna00B.cjs +2 -0
  84. package/dist/index-C4Wna00B.cjs.map +1 -0
  85. package/dist/index-C9W9M3MS.cjs +14 -0
  86. package/dist/index-C9W9M3MS.cjs.map +1 -0
  87. package/dist/index-CGBef3o0.cjs +2 -0
  88. package/dist/index-CGBef3o0.cjs.map +1 -0
  89. package/dist/index-CLO3D828.cjs +7 -0
  90. package/dist/index-CLO3D828.cjs.map +1 -0
  91. package/dist/index-Ci0l84XA.cjs +2 -0
  92. package/dist/index-Ci0l84XA.cjs.map +1 -0
  93. package/dist/index-Cn7327bN.cjs +2 -0
  94. package/dist/index-Cn7327bN.cjs.map +1 -0
  95. package/dist/index-CyBPZa0P.cjs +2 -0
  96. package/dist/index-CyBPZa0P.cjs.map +1 -0
  97. package/dist/index-Dgahr09W.cjs +2 -0
  98. package/dist/index-Dgahr09W.cjs.map +1 -0
  99. package/dist/index-DrcgAFmA.cjs +2 -0
  100. package/dist/index-DrcgAFmA.cjs.map +1 -0
  101. package/dist/index-Q_Zb1k3Q.cjs +3 -0
  102. package/dist/index-Q_Zb1k3Q.cjs.map +1 -0
  103. package/dist/jinja2-wbVbDTNi.cjs +2 -0
  104. package/dist/jinja2-wbVbDTNi.cjs.map +1 -0
  105. package/dist/julia-DA67Qw9E.cjs +2 -0
  106. package/dist/julia-DA67Qw9E.cjs.map +1 -0
  107. package/dist/kerebron.cjs +2 -0
  108. package/dist/kerebron.js +1 -1
  109. package/dist/kerebron3.cjs.map +1 -0
  110. package/dist/kerebron3.js.map +1 -0
  111. package/dist/livescript-Bg3URadp.cjs +2 -0
  112. package/dist/livescript-Bg3URadp.cjs.map +1 -0
  113. package/dist/lua-CIsxjGwi.cjs +2 -0
  114. package/dist/lua-CIsxjGwi.cjs.map +1 -0
  115. package/dist/mathematica-BG089QIc.cjs +2 -0
  116. package/dist/mathematica-BG089QIc.cjs.map +1 -0
  117. package/dist/mbox-CySolFFZ.cjs +2 -0
  118. package/dist/mbox-CySolFFZ.cjs.map +1 -0
  119. package/dist/mirc-BfqEffzk.cjs +2 -0
  120. package/dist/mirc-BfqEffzk.cjs.map +1 -0
  121. package/dist/mllike-CBK_zjnT.cjs +2 -0
  122. package/dist/mllike-CBK_zjnT.cjs.map +1 -0
  123. package/dist/modelica-B6Zhcb-M.cjs +2 -0
  124. package/dist/modelica-B6Zhcb-M.cjs.map +1 -0
  125. package/dist/mscgen-B_Dg_s1G.cjs +2 -0
  126. package/dist/mscgen-B_Dg_s1G.cjs.map +1 -0
  127. package/dist/mumps-wfyQdxSu.cjs +2 -0
  128. package/dist/mumps-wfyQdxSu.cjs.map +1 -0
  129. package/dist/nginx-CwqyBUfA.cjs +2 -0
  130. package/dist/nginx-CwqyBUfA.cjs.map +1 -0
  131. package/dist/nsis-DPj2fUaP.cjs +2 -0
  132. package/dist/nsis-DPj2fUaP.cjs.map +1 -0
  133. package/dist/ntriples-DgwJmozm.cjs +2 -0
  134. package/dist/ntriples-DgwJmozm.cjs.map +1 -0
  135. package/dist/octave-1pkKrgAA.cjs +2 -0
  136. package/dist/octave-1pkKrgAA.cjs.map +1 -0
  137. package/dist/odt_parser.internal-C8Sm3VVG.cjs +3 -0
  138. package/dist/odt_parser.internal-C8Sm3VVG.cjs.map +1 -0
  139. package/dist/oz-BXOZCt0U.cjs +2 -0
  140. package/dist/oz-BXOZCt0U.cjs.map +1 -0
  141. package/dist/pascal-DtY2LEkJ.cjs +2 -0
  142. package/dist/pascal-DtY2LEkJ.cjs.map +1 -0
  143. package/dist/perl-CVDWbEju.cjs +2 -0
  144. package/dist/perl-CVDWbEju.cjs.map +1 -0
  145. package/dist/pig-DMByOrnr.cjs +2 -0
  146. package/dist/pig-DMByOrnr.cjs.map +1 -0
  147. package/dist/powershell-BaoYaFvj.cjs +2 -0
  148. package/dist/powershell-BaoYaFvj.cjs.map +1 -0
  149. package/dist/properties-DXHJZ3WE.cjs +2 -0
  150. package/dist/properties-DXHJZ3WE.cjs.map +1 -0
  151. package/dist/protobuf-BKhXdfH6.cjs +2 -0
  152. package/dist/protobuf-BKhXdfH6.cjs.map +1 -0
  153. package/dist/puppet-8mAyuMbW.cjs +2 -0
  154. package/dist/puppet-8mAyuMbW.cjs.map +1 -0
  155. package/dist/q-BPQ45Nxu.cjs +2 -0
  156. package/dist/q-BPQ45Nxu.cjs.map +1 -0
  157. package/dist/r-r2_EZsON.cjs +2 -0
  158. package/dist/r-r2_EZsON.cjs.map +1 -0
  159. package/dist/rpm-C6UDHByS.cjs +2 -0
  160. package/dist/rpm-C6UDHByS.cjs.map +1 -0
  161. package/dist/ruby-Cn1sFkZF.cjs +2 -0
  162. package/dist/ruby-Cn1sFkZF.cjs.map +1 -0
  163. package/dist/sas-DAGcJy94.cjs +2 -0
  164. package/dist/sas-DAGcJy94.cjs.map +1 -0
  165. package/dist/scheme-B0ZrbojV.cjs +2 -0
  166. package/dist/scheme-B0ZrbojV.cjs.map +1 -0
  167. package/dist/shell-BMYo43V6.cjs +2 -0
  168. package/dist/shell-BMYo43V6.cjs.map +1 -0
  169. package/dist/simple-mode-BIKNPBes.cjs +2 -0
  170. package/dist/simple-mode-BIKNPBes.cjs.map +1 -0
  171. package/dist/smalltalk-CSslY-3i.cjs +2 -0
  172. package/dist/smalltalk-CSslY-3i.cjs.map +1 -0
  173. package/dist/solr-A1kSnAwJ.cjs +2 -0
  174. package/dist/solr-A1kSnAwJ.cjs.map +1 -0
  175. package/dist/sparql-DnHMBLLY.cjs +2 -0
  176. package/dist/sparql-DnHMBLLY.cjs.map +1 -0
  177. package/dist/spreadsheet-B7_BK8hB.cjs +2 -0
  178. package/dist/spreadsheet-B7_BK8hB.cjs.map +1 -0
  179. package/dist/stex-B4wyjEnp.cjs +2 -0
  180. package/dist/stex-B4wyjEnp.cjs.map +1 -0
  181. package/dist/stylus-B3vYZZY8.cjs +2 -0
  182. package/dist/stylus-B3vYZZY8.cjs.map +1 -0
  183. package/dist/swift-DGw6Cgu8.cjs +2 -0
  184. package/dist/swift-DGw6Cgu8.cjs.map +1 -0
  185. package/dist/tcl-ByLXbQFo.cjs +2 -0
  186. package/dist/tcl-ByLXbQFo.cjs.map +1 -0
  187. package/dist/textile-iryw-lTw.cjs +2 -0
  188. package/dist/textile-iryw-lTw.cjs.map +1 -0
  189. package/dist/tiddlywiki-D8IJz1k7.cjs +2 -0
  190. package/dist/tiddlywiki-D8IJz1k7.cjs.map +1 -0
  191. package/dist/tiki-C5p5KSQK.cjs +2 -0
  192. package/dist/tiki-C5p5KSQK.cjs.map +1 -0
  193. package/dist/toml-3ZsH_4Qa.cjs +2 -0
  194. package/dist/toml-3ZsH_4Qa.cjs.map +1 -0
  195. package/dist/troff-D-3QCOYN.cjs +2 -0
  196. package/dist/troff-D-3QCOYN.cjs.map +1 -0
  197. package/dist/ttcn-C2MXAqcM.cjs +2 -0
  198. package/dist/ttcn-C2MXAqcM.cjs.map +1 -0
  199. package/dist/turtle-DSJNatSv.cjs +2 -0
  200. package/dist/turtle-DSJNatSv.cjs.map +1 -0
  201. package/dist/vb-qzHzzvyB.cjs +2 -0
  202. package/dist/vb-qzHzzvyB.cjs.map +1 -0
  203. package/dist/vbscript-CWm8v9tE.cjs +2 -0
  204. package/dist/vbscript-CWm8v9tE.cjs.map +1 -0
  205. package/dist/velocity-D3_yAIp3.cjs +2 -0
  206. package/dist/velocity-D3_yAIp3.cjs.map +1 -0
  207. package/dist/verilog-BOhLNmQo.cjs +2 -0
  208. package/dist/verilog-BOhLNmQo.cjs.map +1 -0
  209. package/dist/vhdl-CMFbi8Im.cjs +2 -0
  210. package/dist/vhdl-CMFbi8Im.cjs.map +1 -0
  211. package/dist/webidl-CWb_flNk.cjs +2 -0
  212. package/dist/webidl-CWb_flNk.cjs.map +1 -0
  213. package/dist/xquery-mbJFEpkV.cjs +2 -0
  214. package/dist/xquery-mbJFEpkV.cjs.map +1 -0
  215. package/dist/yacas-urx_N5C8.cjs +2 -0
  216. package/dist/yacas-urx_N5C8.cjs.map +1 -0
  217. package/dist/yaml-CSixJMdf.cjs +2 -0
  218. package/dist/yaml-CSixJMdf.cjs.map +1 -0
  219. package/dist/z80-CsG3CM6M.cjs +2 -0
  220. package/dist/z80-CsG3CM6M.cjs.map +1 -0
  221. package/package.json +12 -4
  222. package/dist/kerebron.js.map +0 -1
@@ -0,0 +1,234 @@
1
+ "use strict";var _documentCurrentScript=typeof document<"u"?document.currentScript:null;function OrderedMap(r){this.content=r}OrderedMap.prototype={constructor:OrderedMap,find:function(r){for(var e=0;e<this.content.length;e+=2)if(this.content[e]===r)return e;return-1},get:function(r){var e=this.find(r);return e==-1?void 0:this.content[e+1]},update:function(r,e,n){var A=n&&n!=r?this.remove(n):this,o=A.find(r),s=A.content.slice();return o==-1?s.push(n||r,e):(s[o+1]=e,n&&(s[o]=n)),new OrderedMap(s)},remove:function(r){var e=this.find(r);if(e==-1)return this;var n=this.content.slice();return n.splice(e,2),new OrderedMap(n)},addToStart:function(r,e){return new OrderedMap([r,e].concat(this.remove(r).content))},addToEnd:function(r,e){var n=this.remove(r).content.slice();return n.push(r,e),new OrderedMap(n)},addBefore:function(r,e,n){var A=this.remove(e),o=A.content.slice(),s=A.find(r);return o.splice(s==-1?o.length:s,0,e,n),new OrderedMap(o)},forEach:function(r){for(var e=0;e<this.content.length;e+=2)r(this.content[e],this.content[e+1])},prepend:function(r){return r=OrderedMap.from(r),r.size?new OrderedMap(r.content.concat(this.subtract(r).content)):this},append:function(r){return r=OrderedMap.from(r),r.size?new OrderedMap(this.subtract(r).content.concat(r.content)):this},subtract:function(r){var e=this;r=OrderedMap.from(r);for(var n=0;n<r.content.length;n+=2)e=e.remove(r.content[n]);return e},toObject:function(){var r={};return this.forEach(function(e,n){r[e]=n}),r},get size(){return this.content.length>>1}};OrderedMap.from=function(r){if(r instanceof OrderedMap)return r;var e=[];if(r)for(var n in r)e.push(n,r[n]);return new OrderedMap(e)};function findDiffStart(r,e,n){for(let A=0;;A++){if(A==r.childCount||A==e.childCount)return r.childCount==e.childCount?null:n;let o=r.child(A),s=e.child(A);if(o==s){n+=o.nodeSize;continue}if(!o.sameMarkup(s))return n;if(o.isText&&o.text!=s.text){for(let a=0;o.text[a]==s.text[a];a++)n++;return n}if(o.content.size||s.content.size){let a=findDiffStart(o.content,s.content,n+1);if(a!=null)return a}n+=o.nodeSize}}function findDiffEnd(r,e,n,A){for(let o=r.childCount,s=e.childCount;;){if(o==0||s==0)return o==s?null:{a:n,b:A};let a=r.child(--o),l=e.child(--s),c=a.nodeSize;if(a==l){n-=c,A-=c;continue}if(!a.sameMarkup(l))return{a:n,b:A};if(a.isText&&a.text!=l.text){let g=0,h=Math.min(a.text.length,l.text.length);for(;g<h&&a.text[a.text.length-g-1]==l.text[l.text.length-g-1];)g++,n--,A--;return{a:n,b:A}}if(a.content.size||l.content.size){let g=findDiffEnd(a.content,l.content,n-1,A-1);if(g)return g}n-=c,A-=c}}class Fragment{constructor(e,n){if(this.content=e,this.size=n||0,n==null)for(let A=0;A<e.length;A++)this.size+=e[A].nodeSize}nodesBetween(e,n,A,o=0,s){for(let a=0,l=0;l<n;a++){let c=this.content[a],g=l+c.nodeSize;if(g>e&&A(c,o+l,s||null,a)!==!1&&c.content.size){let h=l+1;c.nodesBetween(Math.max(0,e-h),Math.min(c.content.size,n-h),A,o+h)}l=g}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,n,A,o){let s="",a=!0;return this.nodesBetween(e,n,(l,c)=>{let g=l.isText?l.text.slice(Math.max(e,c)-c,n-c):l.isLeaf?o?typeof o=="function"?o(l):o:l.type.spec.leafText?l.type.spec.leafText(l):"":"";l.isBlock&&(l.isLeaf&&g||l.isTextblock)&&A&&(a?a=!1:s+=A),s+=g},0),s}append(e){if(!e.size)return this;if(!this.size)return e;let n=this.lastChild,A=e.firstChild,o=this.content.slice(),s=0;for(n.isText&&n.sameMarkup(A)&&(o[o.length-1]=n.withText(n.text+A.text),s=1);s<e.content.length;s++)o.push(e.content[s]);return new Fragment(o,this.size+e.size)}cut(e,n=this.size){if(e==0&&n==this.size)return this;let A=[],o=0;if(n>e)for(let s=0,a=0;a<n;s++){let l=this.content[s],c=a+l.nodeSize;c>e&&((a<e||c>n)&&(l.isText?l=l.cut(Math.max(0,e-a),Math.min(l.text.length,n-a)):l=l.cut(Math.max(0,e-a-1),Math.min(l.content.size,n-a-1))),A.push(l),o+=l.nodeSize),a=c}return new Fragment(A,o)}cutByIndex(e,n){return e==n?Fragment.empty:e==0&&n==this.content.length?this:new Fragment(this.content.slice(e,n))}replaceChild(e,n){let A=this.content[e];if(A==n)return this;let o=this.content.slice(),s=this.size+n.nodeSize-A.nodeSize;return o[e]=n,new Fragment(o,s)}addToStart(e){return new Fragment([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new Fragment(this.content.concat(e),this.size+e.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let n=0;n<this.content.length;n++)if(!this.content[n].eq(e.content[n]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let n=this.content[e];if(!n)throw new RangeError("Index "+e+" out of range for "+this);return n}maybeChild(e){return this.content[e]||null}forEach(e){for(let n=0,A=0;n<this.content.length;n++){let o=this.content[n];e(o,A,n),A+=o.nodeSize}}findDiffStart(e,n=0){return findDiffStart(this,e,n)}findDiffEnd(e,n=this.size,A=e.size){return findDiffEnd(this,e,n,A)}findIndex(e){if(e==0)return retIndex(0,e);if(e==this.size)return retIndex(this.content.length,e);if(e>this.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let n=0,A=0;;n++){let o=this.child(n),s=A+o.nodeSize;if(s>=e)return s==e?retIndex(n+1,s):retIndex(n,A);A=s}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(e,n){if(!n)return Fragment.empty;if(!Array.isArray(n))throw new RangeError("Invalid input for Fragment.fromJSON");return new Fragment(n.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return Fragment.empty;let n,A=0;for(let o=0;o<e.length;o++){let s=e[o];A+=s.nodeSize,o&&s.isText&&e[o-1].sameMarkup(s)?(n||(n=e.slice(0,o)),n[n.length-1]=s.withText(n[n.length-1].text+s.text)):n&&n.push(s)}return new Fragment(n||e,A)}static from(e){if(!e)return Fragment.empty;if(e instanceof Fragment)return e;if(Array.isArray(e))return this.fromArray(e);if(e.attrs)return new Fragment([e],e.nodeSize);throw new RangeError("Can not convert "+e+" to a Fragment"+(e.nodesBetween?" (looks like multiple versions of prosemirror-model were loaded)":""))}}Fragment.empty=new Fragment([],0);const found={index:0,offset:0};function retIndex(r,e){return found.index=r,found.offset=e,found}function compareDeep(r,e){if(r===e)return!0;if(!(r&&typeof r=="object")||!(e&&typeof e=="object"))return!1;let n=Array.isArray(r);if(Array.isArray(e)!=n)return!1;if(n){if(r.length!=e.length)return!1;for(let A=0;A<r.length;A++)if(!compareDeep(r[A],e[A]))return!1}else{for(let A in r)if(!(A in e)||!compareDeep(r[A],e[A]))return!1;for(let A in e)if(!(A in r))return!1}return!0}let Mark$1=class st{constructor(e,n){this.type=e,this.attrs=n}addToSet(e){let n,A=!1;for(let o=0;o<e.length;o++){let s=e[o];if(this.eq(s))return e;if(this.type.excludes(s.type))n||(n=e.slice(0,o));else{if(s.type.excludes(this.type))return e;!A&&s.type.rank>this.type.rank&&(n||(n=e.slice(0,o)),n.push(this),A=!0),n&&n.push(s)}}return n||(n=e.slice()),A||n.push(this),n}removeFromSet(e){for(let n=0;n<e.length;n++)if(this.eq(e[n]))return e.slice(0,n).concat(e.slice(n+1));return e}isInSet(e){for(let n=0;n<e.length;n++)if(this.eq(e[n]))return!0;return!1}eq(e){return this==e||this.type==e.type&&compareDeep(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let n in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,n){if(!n)throw new RangeError("Invalid input for Mark.fromJSON");let A=e.marks[n.type];if(!A)throw new RangeError(`There is no mark type ${n.type} in this schema`);let o=A.create(n.attrs);return A.checkAttrs(o.attrs),o}static sameSet(e,n){if(e==n)return!0;if(e.length!=n.length)return!1;for(let A=0;A<e.length;A++)if(!e[A].eq(n[A]))return!1;return!0}static setFrom(e){if(!e||Array.isArray(e)&&e.length==0)return st.none;if(e instanceof st)return[e];let n=e.slice();return n.sort((A,o)=>A.type.rank-o.type.rank),n}};Mark$1.none=[];class ReplaceError extends Error{}class Slice{constructor(e,n,A){this.content=e,this.openStart=n,this.openEnd=A}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(e,n){let A=insertInto(this.content,e+this.openStart,n);return A&&new Slice(A,this.openStart,this.openEnd)}removeBetween(e,n){return new Slice(removeRange(this.content,e+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(e,n){if(!n)return Slice.empty;let A=n.openStart||0,o=n.openEnd||0;if(typeof A!="number"||typeof o!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new Slice(Fragment.fromJSON(e,n.content),A,o)}static maxOpen(e,n=!0){let A=0,o=0;for(let s=e.firstChild;s&&!s.isLeaf&&(n||!s.type.spec.isolating);s=s.firstChild)A++;for(let s=e.lastChild;s&&!s.isLeaf&&(n||!s.type.spec.isolating);s=s.lastChild)o++;return new Slice(e,A,o)}}Slice.empty=new Slice(Fragment.empty,0,0);function removeRange(r,e,n){let{index:A,offset:o}=r.findIndex(e),s=r.maybeChild(A),{index:a,offset:l}=r.findIndex(n);if(o==e||s.isText){if(l!=n&&!r.child(a).isText)throw new RangeError("Removing non-flat range");return r.cut(0,e).append(r.cut(n))}if(A!=a)throw new RangeError("Removing non-flat range");return r.replaceChild(A,s.copy(removeRange(s.content,e-o-1,n-o-1)))}function insertInto(r,e,n,A){let{index:o,offset:s}=r.findIndex(e),a=r.maybeChild(o);if(s==e||a.isText)return A&&!A.canReplace(o,o,n)?null:r.cut(0,e).append(n).append(r.cut(e));let l=insertInto(a.content,e-s-1,n,a);return l&&r.replaceChild(o,a.copy(l))}function replace$1(r,e,n){if(n.openStart>r.depth)throw new ReplaceError("Inserted content deeper than insertion position");if(r.depth-n.openStart!=e.depth-n.openEnd)throw new ReplaceError("Inconsistent open depths");return replaceOuter(r,e,n,0)}function replaceOuter(r,e,n,A){let o=r.index(A),s=r.node(A);if(o==e.index(A)&&A<r.depth-n.openStart){let a=replaceOuter(r,e,n,A+1);return s.copy(s.content.replaceChild(o,a))}else if(n.content.size)if(!n.openStart&&!n.openEnd&&r.depth==A&&e.depth==A){let a=r.parent,l=a.content;return close(a,l.cut(0,r.parentOffset).append(n.content).append(l.cut(e.parentOffset)))}else{let{start:a,end:l}=prepareSliceForReplace(n,r);return close(s,replaceThreeWay(r,a,l,e,A))}else return close(s,replaceTwoWay(r,e,A))}function checkJoin(r,e){if(!e.type.compatibleContent(r.type))throw new ReplaceError("Cannot join "+e.type.name+" onto "+r.type.name)}function joinable$1(r,e,n){let A=r.node(n);return checkJoin(A,e.node(n)),A}function addNode(r,e){let n=e.length-1;n>=0&&r.isText&&r.sameMarkup(e[n])?e[n]=r.withText(e[n].text+r.text):e.push(r)}function addRange$1(r,e,n,A){let o=(e||r).node(n),s=0,a=e?e.index(n):o.childCount;r&&(s=r.index(n),r.depth>n?s++:r.textOffset&&(addNode(r.nodeAfter,A),s++));for(let l=s;l<a;l++)addNode(o.child(l),A);e&&e.depth==n&&e.textOffset&&addNode(e.nodeBefore,A)}function close(r,e){return r.type.checkContent(e),r.copy(e)}function replaceThreeWay(r,e,n,A,o){let s=r.depth>o&&joinable$1(r,e,o+1),a=A.depth>o&&joinable$1(n,A,o+1),l=[];return addRange$1(null,r,o,l),s&&a&&e.index(o)==n.index(o)?(checkJoin(s,a),addNode(close(s,replaceThreeWay(r,e,n,A,o+1)),l)):(s&&addNode(close(s,replaceTwoWay(r,e,o+1)),l),addRange$1(e,n,o,l),a&&addNode(close(a,replaceTwoWay(n,A,o+1)),l)),addRange$1(A,null,o,l),new Fragment(l)}function replaceTwoWay(r,e,n){let A=[];if(addRange$1(null,r,n,A),r.depth>n){let o=joinable$1(r,e,n+1);addNode(close(o,replaceTwoWay(r,e,n+1)),A)}return addRange$1(e,null,n,A),new Fragment(A)}function prepareSliceForReplace(r,e){let n=e.depth-r.openStart,o=e.node(n).copy(r.content);for(let s=n-1;s>=0;s--)o=e.node(s).copy(Fragment.from(o));return{start:o.resolveNoCache(r.openStart+n),end:o.resolveNoCache(o.content.size-r.openEnd-n)}}class ResolvedPos{constructor(e,n,A){this.pos=e,this.path=n,this.parentOffset=A,this.depth=n.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position before the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position after the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,n=this.index(this.depth);if(n==e.childCount)return null;let A=this.pos-this.path[this.path.length-1],o=e.child(n);return A?e.child(n).cut(A):o}get nodeBefore(){let e=this.index(this.depth),n=this.pos-this.path[this.path.length-1];return n?this.parent.child(e).cut(0,n):e==0?null:this.parent.child(e-1)}posAtIndex(e,n){n=this.resolveDepth(n);let A=this.path[n*3],o=n==0?0:this.path[n*3-1]+1;for(let s=0;s<e;s++)o+=A.child(s).nodeSize;return o}marks(){let e=this.parent,n=this.index();if(e.content.size==0)return Mark$1.none;if(this.textOffset)return e.child(n).marks;let A=e.maybeChild(n-1),o=e.maybeChild(n);if(!A){let l=A;A=o,o=l}let s=A.marks;for(var a=0;a<s.length;a++)s[a].type.spec.inclusive===!1&&(!o||!s[a].isInSet(o.marks))&&(s=s[a--].removeFromSet(s));return s}marksAcross(e){let n=this.parent.maybeChild(this.index());if(!n||!n.isInline)return null;let A=n.marks,o=e.parent.maybeChild(e.index());for(var s=0;s<A.length;s++)A[s].type.spec.inclusive===!1&&(!o||!A[s].isInSet(o.marks))&&(A=A[s--].removeFromSet(A));return A}sharedDepth(e){for(let n=this.depth;n>0;n--)if(this.start(n)<=e&&this.end(n)>=e)return n;return 0}blockRange(e=this,n){if(e.pos<this.pos)return e.blockRange(this);for(let A=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);A>=0;A--)if(e.pos<=this.end(A)&&(!n||n(this.node(A))))return new NodeRange(this,e,A);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e="";for(let n=1;n<=this.depth;n++)e+=(e?"/":"")+this.node(n).type.name+"_"+this.index(n-1);return e+":"+this.parentOffset}static resolve(e,n){if(!(n>=0&&n<=e.content.size))throw new RangeError("Position "+n+" out of range");let A=[],o=0,s=n;for(let a=e;;){let{index:l,offset:c}=a.content.findIndex(s),g=s-c;if(A.push(a,l,o+c),!g||(a=a.child(l),a.isText))break;s=g-1,o+=c+1}return new ResolvedPos(n,A,s)}static resolveCached(e,n){let A=resolveCache.get(e);if(A)for(let s=0;s<A.elts.length;s++){let a=A.elts[s];if(a.pos==n)return a}else resolveCache.set(e,A=new ResolveCache);let o=A.elts[A.i]=ResolvedPos.resolve(e,n);return A.i=(A.i+1)%resolveCacheSize,o}}class ResolveCache{constructor(){this.elts=[],this.i=0}}const resolveCacheSize=12,resolveCache=new WeakMap;class NodeRange{constructor(e,n,A){this.$from=e,this.$to=n,this.depth=A}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}}const emptyAttrs=Object.create(null);let Node$2=class at{constructor(e,n,A,o=Mark$1.none){this.type=e,this.attrs=n,this.marks=o,this.content=A||Fragment.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,n,A,o=0){this.content.nodesBetween(e,n,A,o,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,"")}textBetween(e,n,A,o){return this.content.textBetween(e,n,A,o)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,n,A){return this.type==e&&compareDeep(this.attrs,n||e.defaultAttrs||emptyAttrs)&&Mark$1.sameSet(this.marks,A||Mark$1.none)}copy(e=null){return e==this.content?this:new at(this.type,this.attrs,e,this.marks)}mark(e){return e==this.marks?this:new at(this.type,this.attrs,this.content,e)}cut(e,n=this.content.size){return e==0&&n==this.content.size?this:this.copy(this.content.cut(e,n))}slice(e,n=this.content.size,A=!1){if(e==n)return Slice.empty;let o=this.resolve(e),s=this.resolve(n),a=A?0:o.sharedDepth(n),l=o.start(a),g=o.node(a).content.cut(o.pos-l,s.pos-l);return new Slice(g,o.depth-a,s.depth-a)}replace(e,n,A){return replace$1(this.resolve(e),this.resolve(n),A)}nodeAt(e){for(let n=this;;){let{index:A,offset:o}=n.content.findIndex(e);if(n=n.maybeChild(A),!n)return null;if(o==e||n.isText)return n;e-=o+1}}childAfter(e){let{index:n,offset:A}=this.content.findIndex(e);return{node:this.content.maybeChild(n),index:n,offset:A}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:n,offset:A}=this.content.findIndex(e);if(A<e)return{node:this.content.child(n),index:n,offset:A};let o=this.content.child(n-1);return{node:o,index:n-1,offset:A-o.nodeSize}}resolve(e){return ResolvedPos.resolveCached(this,e)}resolveNoCache(e){return ResolvedPos.resolve(this,e)}rangeHasMark(e,n,A){let o=!1;return n>e&&this.nodesBetween(e,n,s=>(A.isInSet(s.marks)&&(o=!0),!o)),o}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+="("+this.content.toStringInner()+")"),wrapMarks$1(this.marks,e)}contentMatchAt(e){let n=this.type.contentMatch.matchFragment(this.content,0,e);if(!n)throw new Error("Called contentMatchAt on a node with invalid content");return n}canReplace(e,n,A=Fragment.empty,o=0,s=A.childCount){let a=this.contentMatchAt(e).matchFragment(A,o,s),l=a&&a.matchFragment(this.content,n);if(!l||!l.validEnd)return!1;for(let c=o;c<s;c++)if(!this.type.allowsMarks(A.child(c).marks))return!1;return!0}canReplaceWith(e,n,A,o){if(o&&!this.type.allowsMarks(o))return!1;let s=this.contentMatchAt(e).matchType(A),a=s&&s.matchFragment(this.content,n);return a?a.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),this.type.checkAttrs(this.attrs);let e=Mark$1.none;for(let n=0;n<this.marks.length;n++){let A=this.marks[n];A.type.checkAttrs(A.attrs),e=A.addToSet(e)}if(!Mark$1.sameSet(e,this.marks))throw new RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(n=>n.type.name)}`);this.content.forEach(n=>n.check())}toJSON(){let e={type:this.type.name};for(let n in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(n=>n.toJSON())),e}static fromJSON(e,n){if(!n)throw new RangeError("Invalid input for Node.fromJSON");let A;if(n.marks){if(!Array.isArray(n.marks))throw new RangeError("Invalid mark data for Node.fromJSON");A=n.marks.map(e.markFromJSON)}if(n.type=="text"){if(typeof n.text!="string")throw new RangeError("Invalid text node in JSON");return e.text(n.text,A)}let o=Fragment.fromJSON(e,n.content),s=e.nodeType(n.type).create(n.attrs,o,A);return s.type.checkAttrs(s.attrs),s}};Node$2.prototype.text=void 0;let TextNode$1=class lt extends Node$2{constructor(e,n,A,o){if(super(e,n,null,o),!A)throw new RangeError("Empty text nodes are not allowed");this.text=A}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):wrapMarks$1(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,n){return this.text.slice(e,n)}get nodeSize(){return this.text.length}mark(e){return e==this.marks?this:new lt(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new lt(this.type,this.attrs,e,this.marks)}cut(e=0,n=this.text.length){return e==0&&n==this.text.length?this:this.withText(this.text.slice(e,n))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function wrapMarks$1(r,e){for(let n=r.length-1;n>=0;n--)e=r[n].type.name+"("+e+")";return e}class ContentMatch{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,n){let A=new TokenStream(e,n);if(A.next==null)return ContentMatch.empty;let o=parseExpr(A);A.next&&A.err("Unexpected trailing text");let s=dfa(nfa(o));return checkForDeadEnds(s,A),s}matchType(e){for(let n=0;n<this.next.length;n++)if(this.next[n].type==e)return this.next[n].next;return null}matchFragment(e,n=0,A=e.childCount){let o=this;for(let s=n;o&&s<A;s++)o=o.matchType(e.child(s).type);return o}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:n}=this.next[e];if(!(n.isText||n.hasRequiredAttrs()))return n}return null}compatible(e){for(let n=0;n<this.next.length;n++)for(let A=0;A<e.next.length;A++)if(this.next[n].type==e.next[A].type)return!0;return!1}fillBefore(e,n=!1,A=0){let o=[this];function s(a,l){let c=a.matchFragment(e,A);if(c&&(!n||c.validEnd))return Fragment.from(l.map(g=>g.createAndFill()));for(let g=0;g<a.next.length;g++){let{type:h,next:d}=a.next[g];if(!(h.isText||h.hasRequiredAttrs())&&o.indexOf(d)==-1){o.push(d);let u=s(d,l.concat(h));if(u)return u}}return null}return s(this,[])}findWrapping(e){for(let A=0;A<this.wrapCache.length;A+=2)if(this.wrapCache[A]==e)return this.wrapCache[A+1];let n=this.computeWrapping(e);return this.wrapCache.push(e,n),n}computeWrapping(e){let n=Object.create(null),A=[{match:this,type:null,via:null}];for(;A.length;){let o=A.shift(),s=o.match;if(s.matchType(e)){let a=[];for(let l=o;l.type;l=l.via)a.push(l.type);return a.reverse()}for(let a=0;a<s.next.length;a++){let{type:l,next:c}=s.next[a];!l.isLeaf&&!l.hasRequiredAttrs()&&!(l.name in n)&&(!o.type||c.validEnd)&&(A.push({match:l.contentMatch,type:l,via:o}),n[l.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw new RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function n(A){e.push(A);for(let o=0;o<A.next.length;o++)e.indexOf(A.next[o].next)==-1&&n(A.next[o].next)}return n(this),e.map((A,o)=>{let s=o+(A.validEnd?"*":" ")+" ";for(let a=0;a<A.next.length;a++)s+=(a?", ":"")+A.next[a].type.name+"->"+e.indexOf(A.next[a].next);return s}).join(`
2
+ `)}}ContentMatch.empty=new ContentMatch(!0);class TokenStream{constructor(e,n){this.string=e,this.nodeTypes=n,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==""&&this.tokens.pop(),this.tokens[0]==""&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw new SyntaxError(e+" (in content expression '"+this.string+"')")}}function parseExpr(r){let e=[];do e.push(parseExprSeq(r));while(r.eat("|"));return e.length==1?e[0]:{type:"choice",exprs:e}}function parseExprSeq(r){let e=[];do e.push(parseExprSubscript(r));while(r.next&&r.next!=")"&&r.next!="|");return e.length==1?e[0]:{type:"seq",exprs:e}}function parseExprSubscript(r){let e=parseExprAtom(r);for(;;)if(r.eat("+"))e={type:"plus",expr:e};else if(r.eat("*"))e={type:"star",expr:e};else if(r.eat("?"))e={type:"opt",expr:e};else if(r.eat("{"))e=parseExprRange(r,e);else break;return e}function parseNum(r){/\D/.test(r.next)&&r.err("Expected number, got '"+r.next+"'");let e=Number(r.next);return r.pos++,e}function parseExprRange(r,e){let n=parseNum(r),A=n;return r.eat(",")&&(r.next!="}"?A=parseNum(r):A=-1),r.eat("}")||r.err("Unclosed braced range"),{type:"range",min:n,max:A,expr:e}}function resolveName(r,e){let n=r.nodeTypes,A=n[e];if(A)return[A];let o=[];for(let s in n){let a=n[s];a.isInGroup(e)&&o.push(a)}return o.length==0&&r.err("No node type or group '"+e+"' found"),o}function parseExprAtom(r){if(r.eat("(")){let e=parseExpr(r);return r.eat(")")||r.err("Missing closing paren"),e}else if(/\W/.test(r.next))r.err("Unexpected token '"+r.next+"'");else{let e=resolveName(r,r.next).map(n=>(r.inline==null?r.inline=n.isInline:r.inline!=n.isInline&&r.err("Mixing inline and block content"),{type:"name",value:n}));return r.pos++,e.length==1?e[0]:{type:"choice",exprs:e}}}function nfa(r){let e=[[]];return o(s(r,0),n()),e;function n(){return e.push([])-1}function A(a,l,c){let g={term:c,to:l};return e[a].push(g),g}function o(a,l){a.forEach(c=>c.to=l)}function s(a,l){if(a.type=="choice")return a.exprs.reduce((c,g)=>c.concat(s(g,l)),[]);if(a.type=="seq")for(let c=0;;c++){let g=s(a.exprs[c],l);if(c==a.exprs.length-1)return g;o(g,l=n())}else if(a.type=="star"){let c=n();return A(l,c),o(s(a.expr,c),c),[A(c)]}else if(a.type=="plus"){let c=n();return o(s(a.expr,l),c),o(s(a.expr,c),c),[A(c)]}else{if(a.type=="opt")return[A(l)].concat(s(a.expr,l));if(a.type=="range"){let c=l;for(let g=0;g<a.min;g++){let h=n();o(s(a.expr,c),h),c=h}if(a.max==-1)o(s(a.expr,c),c);else for(let g=a.min;g<a.max;g++){let h=n();A(c,h),o(s(a.expr,c),h),c=h}return[A(c)]}else{if(a.type=="name")return[A(l,void 0,a.value)];throw new Error("Unknown expr type")}}}}function cmp(r,e){return e-r}function nullFrom(r,e){let n=[];return A(e),n.sort(cmp);function A(o){let s=r[o];if(s.length==1&&!s[0].term)return A(s[0].to);n.push(o);for(let a=0;a<s.length;a++){let{term:l,to:c}=s[a];!l&&n.indexOf(c)==-1&&A(c)}}}function dfa(r){let e=Object.create(null);return n(nullFrom(r,0));function n(A){let o=[];A.forEach(a=>{r[a].forEach(({term:l,to:c})=>{if(!l)return;let g;for(let h=0;h<o.length;h++)o[h][0]==l&&(g=o[h][1]);nullFrom(r,c).forEach(h=>{g||o.push([l,g=[]]),g.indexOf(h)==-1&&g.push(h)})})});let s=e[A.join(",")]=new ContentMatch(A.indexOf(r.length-1)>-1);for(let a=0;a<o.length;a++){let l=o[a][1].sort(cmp);s.next.push({type:o[a][0],next:e[l.join(",")]||n(l)})}return s}}function checkForDeadEnds(r,e){for(let n=0,A=[r];n<A.length;n++){let o=A[n],s=!o.validEnd,a=[];for(let l=0;l<o.next.length;l++){let{type:c,next:g}=o.next[l];a.push(c.name),s&&!(c.isText||c.hasRequiredAttrs())&&(s=!1),A.indexOf(g)==-1&&A.push(g)}s&&e.err("Only non-generatable nodes ("+a.join(", ")+") in a required position (see https://prosemirror.net/docs/guide/#generatable)")}}function defaultAttrs(r){let e=Object.create(null);for(let n in r){let A=r[n];if(!A.hasDefault)return null;e[n]=A.default}return e}function computeAttrs(r,e){let n=Object.create(null);for(let A in r){let o=e&&e[A];if(o===void 0){let s=r[A];if(s.hasDefault)o=s.default;else throw new RangeError("No value supplied for attribute "+A)}n[A]=o}return n}function checkAttrs(r,e,n,A){for(let o in e)if(!(o in r))throw new RangeError(`Unsupported attribute ${o} for ${n} of type ${o}`);for(let o in r){let s=r[o];s.validate&&s.validate(e[o])}}function initAttrs(r,e){let n=Object.create(null);if(e)for(let A in e)n[A]=new Attribute(r,A,e[A]);return n}let NodeType$2=class ut{constructor(e,n,A){this.name=e,this.schema=n,this.spec=A,this.markSet=null,this.groups=A.group?A.group.split(" "):[],this.attrs=initAttrs(e,A.attrs),this.defaultAttrs=defaultAttrs(this.attrs),this.contentMatch=null,this.inlineContent=null,this.isBlock=!(A.inline||e=="text"),this.isText=e=="text"}get isInline(){return!this.isBlock}get isTextblock(){return this.isBlock&&this.inlineContent}get isLeaf(){return this.contentMatch==ContentMatch.empty}get isAtom(){return this.isLeaf||!!this.spec.atom}isInGroup(e){return this.groups.indexOf(e)>-1}get whitespace(){return this.spec.whitespace||(this.spec.code?"pre":"normal")}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:computeAttrs(this.attrs,e)}create(e=null,n,A){if(this.isText)throw new Error("NodeType.create can't construct text nodes");return new Node$2(this,this.computeAttrs(e),Fragment.from(n),Mark$1.setFrom(A))}createChecked(e=null,n,A){return n=Fragment.from(n),this.checkContent(n),new Node$2(this,this.computeAttrs(e),n,Mark$1.setFrom(A))}createAndFill(e=null,n,A){if(e=this.computeAttrs(e),n=Fragment.from(n),n.size){let a=this.contentMatch.fillBefore(n);if(!a)return null;n=a.append(n)}let o=this.contentMatch.matchFragment(n),s=o&&o.fillBefore(Fragment.empty,!0);return s?new Node$2(this,e,n.append(s),Mark$1.setFrom(A)):null}validContent(e){let n=this.contentMatch.matchFragment(e);if(!n||!n.validEnd)return!1;for(let A=0;A<e.childCount;A++)if(!this.allowsMarks(e.child(A).marks))return!1;return!0}checkContent(e){if(!this.validContent(e))throw new RangeError(`Invalid content for node ${this.name}: ${e.toString().slice(0,50)}`)}checkAttrs(e){checkAttrs(this.attrs,e,"node",this.name)}allowsMarkType(e){return this.markSet==null||this.markSet.indexOf(e)>-1}allowsMarks(e){if(this.markSet==null)return!0;for(let n=0;n<e.length;n++)if(!this.allowsMarkType(e[n].type))return!1;return!0}allowedMarks(e){if(this.markSet==null)return e;let n;for(let A=0;A<e.length;A++)this.allowsMarkType(e[A].type)?n&&n.push(e[A]):n||(n=e.slice(0,A));return n?n.length?n:Mark$1.none:e}static compile(e,n){let A=Object.create(null);e.forEach((s,a)=>A[s]=new ut(s,n,a));let o=n.spec.topNode||"doc";if(!A[o])throw new RangeError("Schema is missing its top node type ('"+o+"')");if(!A.text)throw new RangeError("Every schema needs a 'text' type");for(let s in A.text.attrs)throw new RangeError("The text node type should not have attributes");return A}};function validateType(r,e,n){let A=n.split("|");return o=>{let s=o===null?"null":typeof o;if(A.indexOf(s)<0)throw new RangeError(`Expected value of type ${A} for attribute ${e} on type ${r}, got ${s}`)}}class Attribute{constructor(e,n,A){this.hasDefault=Object.prototype.hasOwnProperty.call(A,"default"),this.default=A.default,this.validate=typeof A.validate=="string"?validateType(e,n,A.validate):A.validate}get isRequired(){return!this.hasDefault}}class MarkType{constructor(e,n,A,o){this.name=e,this.rank=n,this.schema=A,this.spec=o,this.attrs=initAttrs(e,o.attrs),this.excluded=null;let s=defaultAttrs(this.attrs);this.instance=s?new Mark$1(this,s):null}create(e=null){return!e&&this.instance?this.instance:new Mark$1(this,computeAttrs(this.attrs,e))}static compile(e,n){let A=Object.create(null),o=0;return e.forEach((s,a)=>A[s]=new MarkType(s,o++,n,a)),A}removeFromSet(e){for(var n=0;n<e.length;n++)e[n].type==this&&(e=e.slice(0,n).concat(e.slice(n+1)),n--);return e}isInSet(e){for(let n=0;n<e.length;n++)if(e[n].type==this)return e[n]}checkAttrs(e){checkAttrs(this.attrs,e,"mark",this.name)}excludes(e){return this.excluded.indexOf(e)>-1}}class Schema{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let n=this.spec={};for(let o in e)n[o]=e[o];n.nodes=OrderedMap.from(e.nodes),n.marks=OrderedMap.from(e.marks||{}),this.nodes=NodeType$2.compile(this.spec.nodes,this),this.marks=MarkType.compile(this.spec.marks,this);let A=Object.create(null);for(let o in this.nodes){if(o in this.marks)throw new RangeError(o+" can not be both a node and a mark");let s=this.nodes[o],a=s.spec.content||"",l=s.spec.marks;if(s.contentMatch=A[a]||(A[a]=ContentMatch.parse(a,this.nodes)),s.inlineContent=s.contentMatch.inlineContent,s.spec.linebreakReplacement){if(this.linebreakReplacement)throw new RangeError("Multiple linebreak nodes defined");if(!s.isInline||!s.isLeaf)throw new RangeError("Linebreak replacement nodes must be inline leaf nodes");this.linebreakReplacement=s}s.markSet=l=="_"?null:l?gatherMarks(this,l.split(" ")):l==""||!s.inlineContent?[]:null}for(let o in this.marks){let s=this.marks[o],a=s.spec.excludes;s.excluded=a==null?[s]:a==""?[]:gatherMarks(this,a.split(" "))}this.nodeFromJSON=o=>Node$2.fromJSON(this,o),this.markFromJSON=o=>Mark$1.fromJSON(this,o),this.topNodeType=this.nodes[this.spec.topNode||"doc"],this.cached.wrappings=Object.create(null)}node(e,n=null,A,o){if(typeof e=="string")e=this.nodeType(e);else if(e instanceof NodeType$2){if(e.schema!=this)throw new RangeError("Node type from different schema used ("+e.name+")")}else throw new RangeError("Invalid node type: "+e);return e.createChecked(n,A,o)}text(e,n){let A=this.nodes.text;return new TextNode$1(A,A.defaultAttrs,e,Mark$1.setFrom(n))}mark(e,n){return typeof e=="string"&&(e=this.marks[e]),e.create(n)}nodeType(e){let n=this.nodes[e];if(!n)throw new RangeError("Unknown node type: "+e);return n}}function gatherMarks(r,e){let n=[];for(let A=0;A<e.length;A++){let o=e[A],s=r.marks[o],a=s;if(s)n.push(s);else for(let l in r.marks){let c=r.marks[l];(o=="_"||c.spec.group&&c.spec.group.split(" ").indexOf(o)>-1)&&n.push(a=c)}if(!a)throw new SyntaxError("Unknown mark type: '"+e[A]+"'")}return n}function isTagRule(r){return r.tag!=null}function isStyleRule(r){return r.style!=null}let DOMParser$1=class ct{constructor(e,n){this.schema=e,this.rules=n,this.tags=[],this.styles=[];let A=this.matchedStyles=[];n.forEach(o=>{if(isTagRule(o))this.tags.push(o);else if(isStyleRule(o)){let s=/[^=]*/.exec(o.style)[0];A.indexOf(s)<0&&A.push(s),this.styles.push(o)}}),this.normalizeLists=!this.tags.some(o=>{if(!/^(ul|ol)\b/.test(o.tag)||!o.node)return!1;let s=e.nodes[o.node];return s.contentMatch.matchType(s)})}parse(e,n={}){let A=new ParseContext$1(this,n,!1);return A.addAll(e,Mark$1.none,n.from,n.to),A.finish()}parseSlice(e,n={}){let A=new ParseContext$1(this,n,!0);return A.addAll(e,Mark$1.none,n.from,n.to),Slice.maxOpen(A.finish())}matchTag(e,n,A){for(let o=A?this.tags.indexOf(A)+1:0;o<this.tags.length;o++){let s=this.tags[o];if(matches(e,s.tag)&&(s.namespace===void 0||e.namespaceURI==s.namespace)&&(!s.context||n.matchesContext(s.context))){if(s.getAttrs){let a=s.getAttrs(e);if(a===!1)continue;s.attrs=a||void 0}return s}}}matchStyle(e,n,A,o){for(let s=o?this.styles.indexOf(o)+1:0;s<this.styles.length;s++){let a=this.styles[s],l=a.style;if(!(l.indexOf(e)!=0||a.context&&!A.matchesContext(a.context)||l.length>e.length&&(l.charCodeAt(e.length)!=61||l.slice(e.length+1)!=n))){if(a.getAttrs){let c=a.getAttrs(n);if(c===!1)continue;a.attrs=c||void 0}return a}}}static schemaRules(e){let n=[];function A(o){let s=o.priority==null?50:o.priority,a=0;for(;a<n.length;a++){let l=n[a];if((l.priority==null?50:l.priority)<s)break}n.splice(a,0,o)}for(let o in e.marks){let s=e.marks[o].spec.parseDOM;s&&s.forEach(a=>{A(a=copy(a)),a.mark||a.ignore||a.clearMark||(a.mark=o)})}for(let o in e.nodes){let s=e.nodes[o].spec.parseDOM;s&&s.forEach(a=>{A(a=copy(a)),a.node||a.ignore||a.mark||(a.node=o)})}return n}static fromSchema(e){return e.cached.domParser||(e.cached.domParser=new ct(e,ct.schemaRules(e)))}};const blockTags={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},ignoreTags={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},listTags={ol:!0,ul:!0},OPT_PRESERVE_WS=1,OPT_PRESERVE_WS_FULL=2,OPT_OPEN_LEFT=4;function wsOptionsFor(r,e,n){return e!=null?(e?OPT_PRESERVE_WS:0)|(e==="full"?OPT_PRESERVE_WS_FULL:0):r&&r.whitespace=="pre"?OPT_PRESERVE_WS|OPT_PRESERVE_WS_FULL:n&~OPT_OPEN_LEFT}class NodeContext{constructor(e,n,A,o,s,a){this.type=e,this.attrs=n,this.marks=A,this.solid=o,this.options=a,this.content=[],this.activeMarks=Mark$1.none,this.match=s||(a&OPT_OPEN_LEFT?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let n=this.type.contentMatch.fillBefore(Fragment.from(e));if(n)this.match=this.type.contentMatch.matchFragment(n);else{let A=this.type.contentMatch,o;return(o=A.findWrapping(e.type))?(this.match=A,o):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&OPT_PRESERVE_WS)){let A=this.content[this.content.length-1],o;if(A&&A.isText&&(o=/[ \t\r\n\u000c]+$/.exec(A.text))){let s=A;A.text.length==o[0].length?this.content.pop():this.content[this.content.length-1]=s.withText(s.text.slice(0,s.text.length-o[0].length))}}let n=Fragment.from(this.content);return!e&&this.match&&(n=n.append(this.match.fillBefore(Fragment.empty,!0))),this.type?this.type.create(this.attrs,n,this.marks):n}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!blockTags.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}}let ParseContext$1=class{constructor(e,n,A){this.parser=e,this.options=n,this.isOpen=A,this.open=0,this.localPreserveWS=!1;let o=n.topNode,s,a=wsOptionsFor(null,n.preserveWhitespace,0)|(A?OPT_OPEN_LEFT:0);o?s=new NodeContext(o.type,o.attrs,Mark$1.none,!0,n.topMatch||o.type.contentMatch,a):A?s=new NodeContext(null,null,Mark$1.none,!0,null,a):s=new NodeContext(e.schema.topNodeType,null,Mark$1.none,!0,null,a),this.nodes=[s],this.find=n.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,n){e.nodeType==3?this.addTextNode(e,n):e.nodeType==1&&this.addElement(e,n)}addTextNode(e,n){let A=e.nodeValue,o=this.top,s=o.options&OPT_PRESERVE_WS_FULL?"full":this.localPreserveWS||(o.options&OPT_PRESERVE_WS)>0;if(s==="full"||o.inlineContext(e)||/[^ \t\r\n\u000c]/.test(A)){if(s)s!=="full"?A=A.replace(/\r?\n|\r/g," "):A=A.replace(/\r\n?/g,`
3
+ `);else if(A=A.replace(/[ \t\r\n\u000c]+/g," "),/^[ \t\r\n\u000c]/.test(A)&&this.open==this.nodes.length-1){let a=o.content[o.content.length-1],l=e.previousSibling;(!a||l&&l.nodeName=="BR"||a.isText&&/[ \t\r\n\u000c]$/.test(a.text))&&(A=A.slice(1))}A&&this.insertNode(this.parser.schema.text(A),n,!/\S/.test(A)),this.findInText(e)}else this.findInside(e)}addElement(e,n,A){let o=this.localPreserveWS,s=this.top;(e.tagName=="PRE"||/pre/.test(e.style&&e.style.whiteSpace))&&(this.localPreserveWS=!0);let a=e.nodeName.toLowerCase(),l;listTags.hasOwnProperty(a)&&this.parser.normalizeLists&&normalizeList(e);let c=this.options.ruleFromNode&&this.options.ruleFromNode(e)||(l=this.parser.matchTag(e,this,A));e:if(c?c.ignore:ignoreTags.hasOwnProperty(a))this.findInside(e),this.ignoreFallback(e,n);else if(!c||c.skip||c.closeParent){c&&c.closeParent?this.open=Math.max(0,this.open-1):c&&c.skip.nodeType&&(e=c.skip);let g,h=this.needsBlock;if(blockTags.hasOwnProperty(a))s.content.length&&s.content[0].isInline&&this.open&&(this.open--,s=this.top),g=!0,s.type||(this.needsBlock=!0);else if(!e.firstChild){this.leafFallback(e,n);break e}let d=c&&c.skip?n:this.readStyles(e,n);d&&this.addAll(e,d),g&&this.sync(s),this.needsBlock=h}else{let g=this.readStyles(e,n);g&&this.addElementByRule(e,c,g,c.consuming===!1?l:void 0)}this.localPreserveWS=o}leafFallback(e,n){e.nodeName=="BR"&&this.top.type&&this.top.type.inlineContent&&this.addTextNode(e.ownerDocument.createTextNode(`
4
+ `),n)}ignoreFallback(e,n){e.nodeName=="BR"&&(!this.top.type||!this.top.type.inlineContent)&&this.findPlace(this.parser.schema.text("-"),n,!0)}readStyles(e,n){let A=e.style;if(A&&A.length)for(let o=0;o<this.parser.matchedStyles.length;o++){let s=this.parser.matchedStyles[o],a=A.getPropertyValue(s);if(a)for(let l=void 0;;){let c=this.parser.matchStyle(s,a,this,l);if(!c)break;if(c.ignore)return null;if(c.clearMark?n=n.filter(g=>!c.clearMark(g)):n=n.concat(this.parser.schema.marks[c.mark].create(c.attrs)),c.consuming===!1)l=c;else break}}return n}addElementByRule(e,n,A,o){let s,a;if(n.node)if(a=this.parser.schema.nodes[n.node],a.isLeaf)this.insertNode(a.create(n.attrs),A,e.nodeName=="BR")||this.leafFallback(e,A);else{let c=this.enter(a,n.attrs||null,A,n.preserveWhitespace);c&&(s=!0,A=c)}else{let c=this.parser.schema.marks[n.mark];A=A.concat(c.create(n.attrs))}let l=this.top;if(a&&a.isLeaf)this.findInside(e);else if(o)this.addElement(e,A,o);else if(n.getContent)this.findInside(e),n.getContent(e,this.parser.schema).forEach(c=>this.insertNode(c,A,!1));else{let c=e;typeof n.contentElement=="string"?c=e.querySelector(n.contentElement):typeof n.contentElement=="function"?c=n.contentElement(e):n.contentElement&&(c=n.contentElement),this.findAround(e,c,!0),this.addAll(c,A),this.findAround(e,c,!1)}s&&this.sync(l)&&this.open--}addAll(e,n,A,o){let s=A||0;for(let a=A?e.childNodes[A]:e.firstChild,l=o==null?null:e.childNodes[o];a!=l;a=a.nextSibling,++s)this.findAtPoint(e,s),this.addDOM(a,n);this.findAtPoint(e,s)}findPlace(e,n,A){let o,s;for(let a=this.open,l=0;a>=0;a--){let c=this.nodes[a],g=c.findWrapping(e);if(g&&(!o||o.length>g.length+l)&&(o=g,s=c,!g.length))break;if(c.solid){if(A)break;l+=2}}if(!o)return null;this.sync(s);for(let a=0;a<o.length;a++)n=this.enterInner(o[a],null,n,!1);return n}insertNode(e,n,A){if(e.isInline&&this.needsBlock&&!this.top.type){let s=this.textblockFromContext();s&&(n=this.enterInner(s,null,n))}let o=this.findPlace(e,n,A);if(o){this.closeExtra();let s=this.top;s.match&&(s.match=s.match.matchType(e.type));let a=Mark$1.none;for(let l of o.concat(e.marks))(s.type?s.type.allowsMarkType(l.type):markMayApply(l.type,e.type))&&(a=l.addToSet(a));return s.content.push(e.mark(a)),!0}return!1}enter(e,n,A,o){let s=this.findPlace(e.create(n),A,!1);return s&&(s=this.enterInner(e,n,A,!0,o)),s}enterInner(e,n,A,o=!1,s){this.closeExtra();let a=this.top;a.match=a.match&&a.match.matchType(e);let l=wsOptionsFor(e,s,a.options);a.options&OPT_OPEN_LEFT&&a.content.length==0&&(l|=OPT_OPEN_LEFT);let c=Mark$1.none;return A=A.filter(g=>(a.type?a.type.allowsMarkType(g.type):markMayApply(g.type,e))?(c=g.addToSet(c),!1):!0),this.nodes.push(new NodeContext(e,n,c,o,null,l)),this.open++,A}closeExtra(e=!1){let n=this.nodes.length-1;if(n>this.open){for(;n>this.open;n--)this.nodes[n-1].content.push(this.nodes[n].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(e){for(let n=this.open;n>=0;n--){if(this.nodes[n]==e)return this.open=n,!0;this.localPreserveWS&&(this.nodes[n].options|=OPT_PRESERVE_WS)}return!1}get currentPos(){this.closeExtra();let e=0;for(let n=this.open;n>=0;n--){let A=this.nodes[n].content;for(let o=A.length-1;o>=0;o--)e+=A[o].nodeSize;n&&e++}return e}findAtPoint(e,n){if(this.find)for(let A=0;A<this.find.length;A++)this.find[A].node==e&&this.find[A].offset==n&&(this.find[A].pos=this.currentPos)}findInside(e){if(this.find)for(let n=0;n<this.find.length;n++)this.find[n].pos==null&&e.nodeType==1&&e.contains(this.find[n].node)&&(this.find[n].pos=this.currentPos)}findAround(e,n,A){if(e!=n&&this.find)for(let o=0;o<this.find.length;o++)this.find[o].pos==null&&e.nodeType==1&&e.contains(this.find[o].node)&&n.compareDocumentPosition(this.find[o].node)&(A?2:4)&&(this.find[o].pos=this.currentPos)}findInText(e){if(this.find)for(let n=0;n<this.find.length;n++)this.find[n].node==e&&(this.find[n].pos=this.currentPos-(e.nodeValue.length-this.find[n].offset))}matchesContext(e){if(e.indexOf("|")>-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let n=e.split("/"),A=this.options.context,o=!this.isOpen&&(!A||A.parent.type==this.nodes[0].type),s=-(A?A.depth+1:0)+(o?0:1),a=(l,c)=>{for(;l>=0;l--){let g=n[l];if(g==""){if(l==n.length-1||l==0)continue;for(;c>=s;c--)if(a(l-1,c))return!0;return!1}else{let h=c>0||c==0&&o?this.nodes[c].type:A&&c>=s?A.node(c-s).type:null;if(!h||h.name!=g&&!h.isInGroup(g))return!1;c--}}return!0};return a(n.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let n=e.depth;n>=0;n--){let A=e.node(n).contentMatchAt(e.indexAfter(n)).defaultType;if(A&&A.isTextblock&&A.defaultAttrs)return A}for(let n in this.parser.schema.nodes){let A=this.parser.schema.nodes[n];if(A.isTextblock&&A.defaultAttrs)return A}}};function normalizeList(r){for(let e=r.firstChild,n=null;e;e=e.nextSibling){let A=e.nodeType==1?e.nodeName.toLowerCase():null;A&&listTags.hasOwnProperty(A)&&n?(n.appendChild(e),e=n):A=="li"?n=e:A&&(n=null)}}function matches(r,e){return(r.matches||r.msMatchesSelector||r.webkitMatchesSelector||r.mozMatchesSelector).call(r,e)}function copy(r){let e={};for(let n in r)e[n]=r[n];return e}function markMayApply(r,e){let n=e.schema.nodes;for(let A in n){let o=n[A];if(!o.allowsMarkType(r))continue;let s=[],a=l=>{s.push(l);for(let c=0;c<l.edgeCount;c++){let{type:g,next:h}=l.edge(c);if(g==e||s.indexOf(h)<0&&a(h))return!0}};if(a(o.contentMatch))return!0}}class DOMSerializer{constructor(e,n){this.nodes=e,this.marks=n}serializeFragment(e,n={},A){A||(A=doc$3(n).createDocumentFragment());let o=A,s=[];return e.forEach(a=>{if(s.length||a.marks.length){let l=0,c=0;for(;l<s.length&&c<a.marks.length;){let g=a.marks[c];if(!this.marks[g.type.name]){c++;continue}if(!g.eq(s[l][0])||g.type.spec.spanning===!1)break;l++,c++}for(;l<s.length;)o=s.pop()[1];for(;c<a.marks.length;){let g=a.marks[c++],h=this.serializeMark(g,a.isInline,n);h&&(s.push([g,o]),o.appendChild(h.dom),o=h.contentDOM||h.dom)}}o.appendChild(this.serializeNodeInner(a,n))}),A}serializeNodeInner(e,n){let{dom:A,contentDOM:o}=renderSpec(doc$3(n),this.nodes[e.type.name](e),null,e.attrs);if(o){if(e.isLeaf)throw new RangeError("Content hole not allowed in a leaf node spec");this.serializeFragment(e.content,n,o)}return A}serializeNode(e,n={}){let A=this.serializeNodeInner(e,n);for(let o=e.marks.length-1;o>=0;o--){let s=this.serializeMark(e.marks[o],e.isInline,n);s&&((s.contentDOM||s.dom).appendChild(A),A=s.dom)}return A}serializeMark(e,n,A={}){let o=this.marks[e.type.name];return o&&renderSpec(doc$3(A),o(e,n),null,e.attrs)}static renderSpec(e,n,A=null,o){return renderSpec(e,n,A,o)}static fromSchema(e){return e.cached.domSerializer||(e.cached.domSerializer=new DOMSerializer(this.nodesFromSchema(e),this.marksFromSchema(e)))}static nodesFromSchema(e){let n=gatherToDOM(e.nodes);return n.text||(n.text=A=>A.text),n}static marksFromSchema(e){return gatherToDOM(e.marks)}}function gatherToDOM(r){let e={};for(let n in r){let A=r[n].spec.toDOM;A&&(e[n]=A)}return e}function doc$3(r){return r.document||window.document}const suspiciousAttributeCache=new WeakMap;function suspiciousAttributes(r){let e=suspiciousAttributeCache.get(r);return e===void 0&&suspiciousAttributeCache.set(r,e=suspiciousAttributesInner(r)),e}function suspiciousAttributesInner(r){let e=null;function n(A){if(A&&typeof A=="object")if(Array.isArray(A))if(typeof A[0]=="string")e||(e=[]),e.push(A);else for(let o=0;o<A.length;o++)n(A[o]);else for(let o in A)n(A[o])}return n(r),e}function renderSpec(r,e,n,A){if(typeof e=="string")return{dom:r.createTextNode(e)};if(e.nodeType!=null)return{dom:e};if(e.dom&&e.dom.nodeType!=null)return e;let o=e[0],s;if(typeof o!="string")throw new RangeError("Invalid array passed to renderSpec");if(A&&(s=suspiciousAttributes(A))&&s.indexOf(e)>-1)throw new RangeError("Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.");let a=o.indexOf(" ");a>0&&(n=o.slice(0,a),o=o.slice(a+1));let l,c=n?r.createElementNS(n,o):r.createElement(o),g=e[1],h=1;if(g&&typeof g=="object"&&g.nodeType==null&&!Array.isArray(g)){h=2;for(let d in g)if(g[d]!=null){let u=d.indexOf(" ");u>0?c.setAttributeNS(d.slice(0,u),d.slice(u+1),g[d]):d=="style"&&c.style?c.style.cssText=g[d]:c.setAttribute(d,g[d])}}for(let d=h;d<e.length;d++){let u=e[d];if(u===0){if(d<e.length-1||d>h)throw new RangeError("Content hole must be the only child of its parent node");return{dom:c,contentDOM:c}}else{let{dom:f,contentDOM:I}=renderSpec(r,u,n,A);if(c.appendChild(f),I){if(l)throw new RangeError("Multiple content holes");l=I}}}return{dom:c,contentDOM:l}}const lower16=65535,factor16=Math.pow(2,16);function makeRecover(r,e){return r+e*factor16}function recoverIndex(r){return r&lower16}function recoverOffset(r){return(r-(r&lower16))/factor16}const DEL_BEFORE=1,DEL_AFTER=2,DEL_ACROSS=4,DEL_SIDE=8;class MapResult{constructor(e,n,A){this.pos=e,this.delInfo=n,this.recover=A}get deleted(){return(this.delInfo&DEL_SIDE)>0}get deletedBefore(){return(this.delInfo&(DEL_BEFORE|DEL_ACROSS))>0}get deletedAfter(){return(this.delInfo&(DEL_AFTER|DEL_ACROSS))>0}get deletedAcross(){return(this.delInfo&DEL_ACROSS)>0}}class StepMap{constructor(e,n=!1){if(this.ranges=e,this.inverted=n,!e.length&&StepMap.empty)return StepMap.empty}recover(e){let n=0,A=recoverIndex(e);if(!this.inverted)for(let o=0;o<A;o++)n+=this.ranges[o*3+2]-this.ranges[o*3+1];return this.ranges[A*3]+n+recoverOffset(e)}mapResult(e,n=1){return this._map(e,n,!1)}map(e,n=1){return this._map(e,n,!0)}_map(e,n,A){let o=0,s=this.inverted?2:1,a=this.inverted?1:2;for(let l=0;l<this.ranges.length;l+=3){let c=this.ranges[l]-(this.inverted?o:0);if(c>e)break;let g=this.ranges[l+s],h=this.ranges[l+a],d=c+g;if(e<=d){let u=g?e==c?-1:e==d?1:n:n,f=c+o+(u<0?0:h);if(A)return f;let I=e==(n<0?c:d)?null:makeRecover(l/3,e-c),p=e==c?DEL_AFTER:e==d?DEL_BEFORE:DEL_ACROSS;return(n<0?e!=c:e!=d)&&(p|=DEL_SIDE),new MapResult(f,p,I)}o+=h-g}return A?e+o:new MapResult(e+o,0,null)}touches(e,n){let A=0,o=recoverIndex(n),s=this.inverted?2:1,a=this.inverted?1:2;for(let l=0;l<this.ranges.length;l+=3){let c=this.ranges[l]-(this.inverted?A:0);if(c>e)break;let g=this.ranges[l+s],h=c+g;if(e<=h&&l==o*3)return!0;A+=this.ranges[l+a]-g}return!1}forEach(e){let n=this.inverted?2:1,A=this.inverted?1:2;for(let o=0,s=0;o<this.ranges.length;o+=3){let a=this.ranges[o],l=a-(this.inverted?s:0),c=a+(this.inverted?0:s),g=this.ranges[o+n],h=this.ranges[o+A];e(l,l+g,c,c+h),s+=h-g}}invert(){return new StepMap(this.ranges,!this.inverted)}toString(){return(this.inverted?"-":"")+JSON.stringify(this.ranges)}static offset(e){return e==0?StepMap.empty:new StepMap(e<0?[0,-e,0]:[0,0,e])}}StepMap.empty=new StepMap([]);class Mapping{constructor(e,n,A=0,o=e?e.length:0){this.mirror=n,this.from=A,this.to=o,this._maps=e||[],this.ownData=!(e||n)}get maps(){return this._maps}slice(e=0,n=this.maps.length){return new Mapping(this._maps,this.mirror,e,n)}appendMap(e,n){this.ownData||(this._maps=this._maps.slice(),this.mirror=this.mirror&&this.mirror.slice(),this.ownData=!0),this.to=this._maps.push(e),n!=null&&this.setMirror(this._maps.length-1,n)}appendMapping(e){for(let n=0,A=this._maps.length;n<e._maps.length;n++){let o=e.getMirror(n);this.appendMap(e._maps[n],o!=null&&o<n?A+o:void 0)}}getMirror(e){if(this.mirror){for(let n=0;n<this.mirror.length;n++)if(this.mirror[n]==e)return this.mirror[n+(n%2?-1:1)]}}setMirror(e,n){this.mirror||(this.mirror=[]),this.mirror.push(e,n)}appendMappingInverted(e){for(let n=e.maps.length-1,A=this._maps.length+e._maps.length;n>=0;n--){let o=e.getMirror(n);this.appendMap(e._maps[n].invert(),o!=null&&o>n?A-o-1:void 0)}}invert(){let e=new Mapping;return e.appendMappingInverted(this),e}map(e,n=1){if(this.mirror)return this._map(e,n,!0);for(let A=this.from;A<this.to;A++)e=this._maps[A].map(e,n);return e}mapResult(e,n=1){return this._map(e,n,!1)}_map(e,n,A){let o=0;for(let s=this.from;s<this.to;s++){let a=this._maps[s],l=a.mapResult(e,n);if(l.recover!=null){let c=this.getMirror(s);if(c!=null&&c>s&&c<this.to){s=c,e=this._maps[c].recover(l.recover);continue}}o|=l.delInfo,e=l.pos}return A?e:new MapResult(e,o,null)}}const stepsByID=Object.create(null);class Step{getMap(){return StepMap.empty}merge(e){return null}static fromJSON(e,n){if(!n||!n.stepType)throw new RangeError("Invalid input for Step.fromJSON");let A=stepsByID[n.stepType];if(!A)throw new RangeError(`No step type ${n.stepType} defined`);return A.fromJSON(e,n)}static jsonID(e,n){if(e in stepsByID)throw new RangeError("Duplicate use of step JSON ID "+e);return stepsByID[e]=n,n.prototype.jsonID=e,n}}class StepResult{constructor(e,n){this.doc=e,this.failed=n}static ok(e){return new StepResult(e,null)}static fail(e){return new StepResult(null,e)}static fromReplace(e,n,A,o){try{return StepResult.ok(e.replace(n,A,o))}catch(s){if(s instanceof ReplaceError)return StepResult.fail(s.message);throw s}}}function mapFragment(r,e,n){let A=[];for(let o=0;o<r.childCount;o++){let s=r.child(o);s.content.size&&(s=s.copy(mapFragment(s.content,e,s))),s.isInline&&(s=e(s,n,o)),A.push(s)}return Fragment.fromArray(A)}class AddMarkStep extends Step{constructor(e,n,A){super(),this.from=e,this.to=n,this.mark=A}apply(e){let n=e.slice(this.from,this.to),A=e.resolve(this.from),o=A.node(A.sharedDepth(this.to)),s=new Slice(mapFragment(n.content,(a,l)=>!a.isAtom||!l.type.allowsMarkType(this.mark.type)?a:a.mark(this.mark.addToSet(a.marks)),o),n.openStart,n.openEnd);return StepResult.fromReplace(e,this.from,this.to,s)}invert(){return new RemoveMarkStep(this.from,this.to,this.mark)}map(e){let n=e.mapResult(this.from,1),A=e.mapResult(this.to,-1);return n.deleted&&A.deleted||n.pos>=A.pos?null:new AddMarkStep(n.pos,A.pos,this.mark)}merge(e){return e instanceof AddMarkStep&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new AddMarkStep(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,n){if(typeof n.from!="number"||typeof n.to!="number")throw new RangeError("Invalid input for AddMarkStep.fromJSON");return new AddMarkStep(n.from,n.to,e.markFromJSON(n.mark))}}Step.jsonID("addMark",AddMarkStep);class RemoveMarkStep extends Step{constructor(e,n,A){super(),this.from=e,this.to=n,this.mark=A}apply(e){let n=e.slice(this.from,this.to),A=new Slice(mapFragment(n.content,o=>o.mark(this.mark.removeFromSet(o.marks)),e),n.openStart,n.openEnd);return StepResult.fromReplace(e,this.from,this.to,A)}invert(){return new AddMarkStep(this.from,this.to,this.mark)}map(e){let n=e.mapResult(this.from,1),A=e.mapResult(this.to,-1);return n.deleted&&A.deleted||n.pos>=A.pos?null:new RemoveMarkStep(n.pos,A.pos,this.mark)}merge(e){return e instanceof RemoveMarkStep&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new RemoveMarkStep(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,n){if(typeof n.from!="number"||typeof n.to!="number")throw new RangeError("Invalid input for RemoveMarkStep.fromJSON");return new RemoveMarkStep(n.from,n.to,e.markFromJSON(n.mark))}}Step.jsonID("removeMark",RemoveMarkStep);class AddNodeMarkStep extends Step{constructor(e,n){super(),this.pos=e,this.mark=n}apply(e){let n=e.nodeAt(this.pos);if(!n)return StepResult.fail("No node at mark step's position");let A=n.type.create(n.attrs,null,this.mark.addToSet(n.marks));return StepResult.fromReplace(e,this.pos,this.pos+1,new Slice(Fragment.from(A),0,n.isLeaf?0:1))}invert(e){let n=e.nodeAt(this.pos);if(n){let A=this.mark.addToSet(n.marks);if(A.length==n.marks.length){for(let o=0;o<n.marks.length;o++)if(!n.marks[o].isInSet(A))return new AddNodeMarkStep(this.pos,n.marks[o]);return new AddNodeMarkStep(this.pos,this.mark)}}return new RemoveNodeMarkStep(this.pos,this.mark)}map(e){let n=e.mapResult(this.pos,1);return n.deletedAfter?null:new AddNodeMarkStep(n.pos,this.mark)}toJSON(){return{stepType:"addNodeMark",pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(e,n){if(typeof n.pos!="number")throw new RangeError("Invalid input for AddNodeMarkStep.fromJSON");return new AddNodeMarkStep(n.pos,e.markFromJSON(n.mark))}}Step.jsonID("addNodeMark",AddNodeMarkStep);class RemoveNodeMarkStep extends Step{constructor(e,n){super(),this.pos=e,this.mark=n}apply(e){let n=e.nodeAt(this.pos);if(!n)return StepResult.fail("No node at mark step's position");let A=n.type.create(n.attrs,null,this.mark.removeFromSet(n.marks));return StepResult.fromReplace(e,this.pos,this.pos+1,new Slice(Fragment.from(A),0,n.isLeaf?0:1))}invert(e){let n=e.nodeAt(this.pos);return!n||!this.mark.isInSet(n.marks)?this:new AddNodeMarkStep(this.pos,this.mark)}map(e){let n=e.mapResult(this.pos,1);return n.deletedAfter?null:new RemoveNodeMarkStep(n.pos,this.mark)}toJSON(){return{stepType:"removeNodeMark",pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(e,n){if(typeof n.pos!="number")throw new RangeError("Invalid input for RemoveNodeMarkStep.fromJSON");return new RemoveNodeMarkStep(n.pos,e.markFromJSON(n.mark))}}Step.jsonID("removeNodeMark",RemoveNodeMarkStep);class ReplaceStep extends Step{constructor(e,n,A,o=!1){super(),this.from=e,this.to=n,this.slice=A,this.structure=o}apply(e){return this.structure&&contentBetween(e,this.from,this.to)?StepResult.fail("Structure replace would overwrite content"):StepResult.fromReplace(e,this.from,this.to,this.slice)}getMap(){return new StepMap([this.from,this.to-this.from,this.slice.size])}invert(e){return new ReplaceStep(this.from,this.from+this.slice.size,e.slice(this.from,this.to))}map(e){let n=e.mapResult(this.from,1),A=e.mapResult(this.to,-1);return n.deletedAcross&&A.deletedAcross?null:new ReplaceStep(n.pos,Math.max(n.pos,A.pos),this.slice,this.structure)}merge(e){if(!(e instanceof ReplaceStep)||e.structure||this.structure)return null;if(this.from+this.slice.size==e.from&&!this.slice.openEnd&&!e.slice.openStart){let n=this.slice.size+e.slice.size==0?Slice.empty:new Slice(this.slice.content.append(e.slice.content),this.slice.openStart,e.slice.openEnd);return new ReplaceStep(this.from,this.to+(e.to-e.from),n,this.structure)}else if(e.to==this.from&&!this.slice.openStart&&!e.slice.openEnd){let n=this.slice.size+e.slice.size==0?Slice.empty:new Slice(e.slice.content.append(this.slice.content),e.slice.openStart,this.slice.openEnd);return new ReplaceStep(e.from,this.to,n,this.structure)}else return null}toJSON(){let e={stepType:"replace",from:this.from,to:this.to};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,n){if(typeof n.from!="number"||typeof n.to!="number")throw new RangeError("Invalid input for ReplaceStep.fromJSON");return new ReplaceStep(n.from,n.to,Slice.fromJSON(e,n.slice),!!n.structure)}}Step.jsonID("replace",ReplaceStep);class ReplaceAroundStep extends Step{constructor(e,n,A,o,s,a,l=!1){super(),this.from=e,this.to=n,this.gapFrom=A,this.gapTo=o,this.slice=s,this.insert=a,this.structure=l}apply(e){if(this.structure&&(contentBetween(e,this.from,this.gapFrom)||contentBetween(e,this.gapTo,this.to)))return StepResult.fail("Structure gap-replace would overwrite content");let n=e.slice(this.gapFrom,this.gapTo);if(n.openStart||n.openEnd)return StepResult.fail("Gap is not a flat range");let A=this.slice.insertAt(this.insert,n.content);return A?StepResult.fromReplace(e,this.from,this.to,A):StepResult.fail("Content does not fit in gap")}getMap(){return new StepMap([this.from,this.gapFrom-this.from,this.insert,this.gapTo,this.to-this.gapTo,this.slice.size-this.insert])}invert(e){let n=this.gapTo-this.gapFrom;return new ReplaceAroundStep(this.from,this.from+this.slice.size+n,this.from+this.insert,this.from+this.insert+n,e.slice(this.from,this.to).removeBetween(this.gapFrom-this.from,this.gapTo-this.from),this.gapFrom-this.from,this.structure)}map(e){let n=e.mapResult(this.from,1),A=e.mapResult(this.to,-1),o=this.from==this.gapFrom?n.pos:e.map(this.gapFrom,-1),s=this.to==this.gapTo?A.pos:e.map(this.gapTo,1);return n.deletedAcross&&A.deletedAcross||o<n.pos||s>A.pos?null:new ReplaceAroundStep(n.pos,A.pos,o,s,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:"replaceAround",from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,n){if(typeof n.from!="number"||typeof n.to!="number"||typeof n.gapFrom!="number"||typeof n.gapTo!="number"||typeof n.insert!="number")throw new RangeError("Invalid input for ReplaceAroundStep.fromJSON");return new ReplaceAroundStep(n.from,n.to,n.gapFrom,n.gapTo,Slice.fromJSON(e,n.slice),n.insert,!!n.structure)}}Step.jsonID("replaceAround",ReplaceAroundStep);function contentBetween(r,e,n){let A=r.resolve(e),o=n-e,s=A.depth;for(;o>0&&s>0&&A.indexAfter(s)==A.node(s).childCount;)s--,o--;if(o>0){let a=A.node(s).maybeChild(A.indexAfter(s));for(;o>0;){if(!a||a.isLeaf)return!0;a=a.firstChild,o--}}return!1}function addMark(r,e,n,A){let o=[],s=[],a,l;r.doc.nodesBetween(e,n,(c,g,h)=>{if(!c.isInline)return;let d=c.marks;if(!A.isInSet(d)&&h.type.allowsMarkType(A.type)){let u=Math.max(g,e),f=Math.min(g+c.nodeSize,n),I=A.addToSet(d);for(let p=0;p<d.length;p++)d[p].isInSet(I)||(a&&a.to==u&&a.mark.eq(d[p])?a.to=f:o.push(a=new RemoveMarkStep(u,f,d[p])));l&&l.to==u?l.to=f:s.push(l=new AddMarkStep(u,f,A))}}),o.forEach(c=>r.step(c)),s.forEach(c=>r.step(c))}function removeMark(r,e,n,A){let o=[],s=0;r.doc.nodesBetween(e,n,(a,l)=>{if(!a.isInline)return;s++;let c=null;if(A instanceof MarkType){let g=a.marks,h;for(;h=A.isInSet(g);)(c||(c=[])).push(h),g=h.removeFromSet(g)}else A?A.isInSet(a.marks)&&(c=[A]):c=a.marks;if(c&&c.length){let g=Math.min(l+a.nodeSize,n);for(let h=0;h<c.length;h++){let d=c[h],u;for(let f=0;f<o.length;f++){let I=o[f];I.step==s-1&&d.eq(o[f].style)&&(u=I)}u?(u.to=g,u.step=s):o.push({style:d,from:Math.max(l,e),to:g,step:s})}}}),o.forEach(a=>r.step(new RemoveMarkStep(a.from,a.to,a.style)))}function clearIncompatible(r,e,n,A=n.contentMatch,o=!0){let s=r.doc.nodeAt(e),a=[],l=e+1;for(let c=0;c<s.childCount;c++){let g=s.child(c),h=l+g.nodeSize,d=A.matchType(g.type);if(!d)a.push(new ReplaceStep(l,h,Slice.empty));else{A=d;for(let u=0;u<g.marks.length;u++)n.allowsMarkType(g.marks[u].type)||r.step(new RemoveMarkStep(l,h,g.marks[u]));if(o&&g.isText&&n.whitespace!="pre"){let u,f=/\r?\n|\r/g,I;for(;u=f.exec(g.text);)I||(I=new Slice(Fragment.from(n.schema.text(" ",n.allowedMarks(g.marks))),0,0)),a.push(new ReplaceStep(l+u.index,l+u.index+u[0].length,I))}}l=h}if(!A.validEnd){let c=A.fillBefore(Fragment.empty,!0);r.replace(l,l,new Slice(c,0,0))}for(let c=a.length-1;c>=0;c--)r.step(a[c])}function canCut(r,e,n){return(e==0||r.canReplace(e,r.childCount))&&(n==r.childCount||r.canReplace(0,n))}function liftTarget(r){let n=r.parent.content.cutByIndex(r.startIndex,r.endIndex);for(let A=r.depth;;--A){let o=r.$from.node(A),s=r.$from.index(A),a=r.$to.indexAfter(A);if(A<r.depth&&o.canReplace(s,a,n))return A;if(A==0||o.type.spec.isolating||!canCut(o,s,a))break}return null}function lift$1(r,e,n){let{$from:A,$to:o,depth:s}=e,a=A.before(s+1),l=o.after(s+1),c=a,g=l,h=Fragment.empty,d=0;for(let I=s,p=!1;I>n;I--)p||A.index(I)>0?(p=!0,h=Fragment.from(A.node(I).copy(h)),d++):c--;let u=Fragment.empty,f=0;for(let I=s,p=!1;I>n;I--)p||o.after(I+1)<o.end(I)?(p=!0,u=Fragment.from(o.node(I).copy(u)),f++):g++;r.step(new ReplaceAroundStep(c,g,a,l,new Slice(h.append(u),d,f),h.size-d,!0))}function findWrapping(r,e,n=null,A=r){let o=findWrappingOutside(r,e),s=o&&findWrappingInside(A,e);return s?o.map(withAttrs).concat({type:e,attrs:n}).concat(s.map(withAttrs)):null}function withAttrs(r){return{type:r,attrs:null}}function findWrappingOutside(r,e){let{parent:n,startIndex:A,endIndex:o}=r,s=n.contentMatchAt(A).findWrapping(e);if(!s)return null;let a=s.length?s[0]:e;return n.canReplaceWith(A,o,a)?s:null}function findWrappingInside(r,e){let{parent:n,startIndex:A,endIndex:o}=r,s=n.child(A),a=e.contentMatch.findWrapping(s.type);if(!a)return null;let c=(a.length?a[a.length-1]:e).contentMatch;for(let g=A;c&&g<o;g++)c=c.matchType(n.child(g).type);return!c||!c.validEnd?null:a}function wrap(r,e,n){let A=Fragment.empty;for(let a=n.length-1;a>=0;a--){if(A.size){let l=n[a].type.contentMatch.matchFragment(A);if(!l||!l.validEnd)throw new RangeError("Wrapper type given to Transform.wrap does not form valid content of its parent wrapper")}A=Fragment.from(n[a].type.create(n[a].attrs,A))}let o=e.start,s=e.end;r.step(new ReplaceAroundStep(o,s,o,s,new Slice(A,0,0),n.length,!0))}function setBlockType$1(r,e,n,A,o){if(!A.isTextblock)throw new RangeError("Type given to setBlockType should be a textblock");let s=r.steps.length;r.doc.nodesBetween(e,n,(a,l)=>{let c=typeof o=="function"?o(a):o;if(a.isTextblock&&!a.hasMarkup(A,c)&&canChangeType(r.doc,r.mapping.slice(s).map(l),A)){let g=null;if(A.schema.linebreakReplacement){let f=A.whitespace=="pre",I=!!A.contentMatch.matchType(A.schema.linebreakReplacement);f&&!I?g=!1:!f&&I&&(g=!0)}g===!1&&replaceLinebreaks(r,a,l,s),clearIncompatible(r,r.mapping.slice(s).map(l,1),A,void 0,g===null);let h=r.mapping.slice(s),d=h.map(l,1),u=h.map(l+a.nodeSize,1);return r.step(new ReplaceAroundStep(d,u,d+1,u-1,new Slice(Fragment.from(A.create(c,null,a.marks)),0,0),1,!0)),g===!0&&replaceNewlines(r,a,l,s),!1}})}function replaceNewlines(r,e,n,A){e.forEach((o,s)=>{if(o.isText){let a,l=/\r?\n|\r/g;for(;a=l.exec(o.text);){let c=r.mapping.slice(A).map(n+1+s+a.index);r.replaceWith(c,c+1,e.type.schema.linebreakReplacement.create())}}})}function replaceLinebreaks(r,e,n,A){e.forEach((o,s)=>{if(o.type==o.type.schema.linebreakReplacement){let a=r.mapping.slice(A).map(n+1+s);r.replaceWith(a,a+1,e.type.schema.text(`
5
+ `))}})}function canChangeType(r,e,n){let A=r.resolve(e),o=A.index();return A.parent.canReplaceWith(o,o+1,n)}function setNodeMarkup(r,e,n,A,o){let s=r.doc.nodeAt(e);if(!s)throw new RangeError("No node at given position");n||(n=s.type);let a=n.create(A,null,o||s.marks);if(s.isLeaf)return r.replaceWith(e,e+s.nodeSize,a);if(!n.validContent(s.content))throw new RangeError("Invalid content for node type "+n.name);r.step(new ReplaceAroundStep(e,e+s.nodeSize,e+1,e+s.nodeSize-1,new Slice(Fragment.from(a),0,0),1,!0))}function canSplit(r,e,n=1,A){let o=r.resolve(e),s=o.depth-n,a=A&&A[A.length-1]||o.parent;if(s<0||o.parent.type.spec.isolating||!o.parent.canReplace(o.index(),o.parent.childCount)||!a.type.validContent(o.parent.content.cutByIndex(o.index(),o.parent.childCount)))return!1;for(let g=o.depth-1,h=n-2;g>s;g--,h--){let d=o.node(g),u=o.index(g);if(d.type.spec.isolating)return!1;let f=d.content.cutByIndex(u,d.childCount),I=A&&A[h+1];I&&(f=f.replaceChild(0,I.type.create(I.attrs)));let p=A&&A[h]||d;if(!d.canReplace(u+1,d.childCount)||!p.type.validContent(f))return!1}let l=o.indexAfter(s),c=A&&A[0];return o.node(s).canReplaceWith(l,l,c?c.type:o.node(s+1).type)}function split(r,e,n=1,A){let o=r.doc.resolve(e),s=Fragment.empty,a=Fragment.empty;for(let l=o.depth,c=o.depth-n,g=n-1;l>c;l--,g--){s=Fragment.from(o.node(l).copy(s));let h=A&&A[g];a=Fragment.from(h?h.type.create(h.attrs,a):o.node(l).copy(a))}r.step(new ReplaceStep(e,e,new Slice(s.append(a),n,n),!0))}function canJoin(r,e){let n=r.resolve(e),A=n.index();return joinable(n.nodeBefore,n.nodeAfter)&&n.parent.canReplace(A,A+1)}function canAppendWithSubstitutedLinebreaks(r,e){e.content.size||r.type.compatibleContent(e.type);let n=r.contentMatchAt(r.childCount),{linebreakReplacement:A}=r.type.schema;for(let o=0;o<e.childCount;o++){let s=e.child(o),a=s.type==A?r.type.schema.nodes.text:s.type;if(n=n.matchType(a),!n||!r.type.allowsMarks(s.marks))return!1}return n.validEnd}function joinable(r,e){return!!(r&&e&&!r.isLeaf&&canAppendWithSubstitutedLinebreaks(r,e))}function joinPoint(r,e,n=-1){let A=r.resolve(e);for(let o=A.depth;;o--){let s,a,l=A.index(o);if(o==A.depth?(s=A.nodeBefore,a=A.nodeAfter):n>0?(s=A.node(o+1),l++,a=A.node(o).maybeChild(l)):(s=A.node(o).maybeChild(l-1),a=A.node(o+1)),s&&!s.isTextblock&&joinable(s,a)&&A.node(o).canReplace(l,l+1))return e;if(o==0)break;e=n<0?A.before(o):A.after(o)}}function join(r,e,n){let A=null,{linebreakReplacement:o}=r.doc.type.schema,s=r.doc.resolve(e-n),a=s.node().type;if(o&&a.inlineContent){let h=a.whitespace=="pre",d=!!a.contentMatch.matchType(o);h&&!d?A=!1:!h&&d&&(A=!0)}let l=r.steps.length;if(A===!1){let h=r.doc.resolve(e+n);replaceLinebreaks(r,h.node(),h.before(),l)}a.inlineContent&&clearIncompatible(r,e+n-1,a,s.node().contentMatchAt(s.index()),A==null);let c=r.mapping.slice(l),g=c.map(e-n);if(r.step(new ReplaceStep(g,c.map(e+n,-1),Slice.empty,!0)),A===!0){let h=r.doc.resolve(g);replaceNewlines(r,h.node(),h.before(),r.steps.length)}return r}function insertPoint(r,e,n){let A=r.resolve(e);if(A.parent.canReplaceWith(A.index(),A.index(),n))return e;if(A.parentOffset==0)for(let o=A.depth-1;o>=0;o--){let s=A.index(o);if(A.node(o).canReplaceWith(s,s,n))return A.before(o+1);if(s>0)return null}if(A.parentOffset==A.parent.content.size)for(let o=A.depth-1;o>=0;o--){let s=A.indexAfter(o);if(A.node(o).canReplaceWith(s,s,n))return A.after(o+1);if(s<A.node(o).childCount)return null}return null}function dropPoint(r,e,n){let A=r.resolve(e);if(!n.content.size)return e;let o=n.content;for(let s=0;s<n.openStart;s++)o=o.firstChild.content;for(let s=1;s<=(n.openStart==0&&n.size?2:1);s++)for(let a=A.depth;a>=0;a--){let l=a==A.depth?0:A.pos<=(A.start(a+1)+A.end(a+1))/2?-1:1,c=A.index(a)+(l>0?1:0),g=A.node(a),h=!1;if(s==1)h=g.canReplace(c,c,o);else{let d=g.contentMatchAt(c).findWrapping(o.firstChild.type);h=d&&g.canReplaceWith(c,c,d[0])}if(h)return l==0?A.pos:l<0?A.before(a+1):A.after(a+1)}return null}function replaceStep(r,e,n=e,A=Slice.empty){if(e==n&&!A.size)return null;let o=r.resolve(e),s=r.resolve(n);return fitsTrivially(o,s,A)?new ReplaceStep(e,n,A):new Fitter(o,s,A).fit()}function fitsTrivially(r,e,n){return!n.openStart&&!n.openEnd&&r.start()==e.start()&&r.parent.canReplace(r.index(),e.index(),n.content)}class Fitter{constructor(e,n,A){this.$from=e,this.$to=n,this.unplaced=A,this.frontier=[],this.placed=Fragment.empty;for(let o=0;o<=e.depth;o++){let s=e.node(o);this.frontier.push({type:s.type,match:s.contentMatchAt(e.indexAfter(o))})}for(let o=e.depth;o>0;o--)this.placed=Fragment.from(e.node(o).copy(this.placed))}get depth(){return this.frontier.length-1}fit(){for(;this.unplaced.size;){let g=this.findFittable();g?this.placeNodes(g):this.openMore()||this.dropNode()}let e=this.mustMoveInline(),n=this.placed.size-this.depth-this.$from.depth,A=this.$from,o=this.close(e<0?this.$to:A.doc.resolve(e));if(!o)return null;let s=this.placed,a=A.depth,l=o.depth;for(;a&&l&&s.childCount==1;)s=s.firstChild.content,a--,l--;let c=new Slice(s,a,l);return e>-1?new ReplaceAroundStep(A.pos,e,this.$to.pos,this.$to.end(),c,n):c.size||A.pos!=this.$to.pos?new ReplaceStep(A.pos,o.pos,c):null}findFittable(){let e=this.unplaced.openStart;for(let n=this.unplaced.content,A=0,o=this.unplaced.openEnd;A<e;A++){let s=n.firstChild;if(n.childCount>1&&(o=0),s.type.spec.isolating&&o<=A){e=A;break}n=s.content}for(let n=1;n<=2;n++)for(let A=n==1?e:this.unplaced.openStart;A>=0;A--){let o,s=null;A?(s=contentAt(this.unplaced.content,A-1).firstChild,o=s.content):o=this.unplaced.content;let a=o.firstChild;for(let l=this.depth;l>=0;l--){let{type:c,match:g}=this.frontier[l],h,d=null;if(n==1&&(a?g.matchType(a.type)||(d=g.fillBefore(Fragment.from(a),!1)):s&&c.compatibleContent(s.type)))return{sliceDepth:A,frontierDepth:l,parent:s,inject:d};if(n==2&&a&&(h=g.findWrapping(a.type)))return{sliceDepth:A,frontierDepth:l,parent:s,wrap:h};if(s&&g.matchType(s.type))break}}}openMore(){let{content:e,openStart:n,openEnd:A}=this.unplaced,o=contentAt(e,n);return!o.childCount||o.firstChild.isLeaf?!1:(this.unplaced=new Slice(e,n+1,Math.max(A,o.size+n>=e.size-A?n+1:0)),!0)}dropNode(){let{content:e,openStart:n,openEnd:A}=this.unplaced,o=contentAt(e,n);if(o.childCount<=1&&n>0){let s=e.size-n<=n+o.size;this.unplaced=new Slice(dropFromFragment(e,n-1,1),n-1,s?n-1:A)}else this.unplaced=new Slice(dropFromFragment(e,n,1),n,A)}placeNodes({sliceDepth:e,frontierDepth:n,parent:A,inject:o,wrap:s}){for(;this.depth>n;)this.closeFrontierNode();if(s)for(let p=0;p<s.length;p++)this.openFrontierNode(s[p]);let a=this.unplaced,l=A?A.content:a.content,c=a.openStart-e,g=0,h=[],{match:d,type:u}=this.frontier[n];if(o){for(let p=0;p<o.childCount;p++)h.push(o.child(p));d=d.matchFragment(o)}let f=l.size+e-(a.content.size-a.openEnd);for(;g<l.childCount;){let p=l.child(g),m=d.matchType(p.type);if(!m)break;g++,(g>1||c==0||p.content.size)&&(d=m,h.push(closeNodeStart(p.mark(u.allowedMarks(p.marks)),g==1?c:0,g==l.childCount?f:-1)))}let I=g==l.childCount;I||(f=-1),this.placed=addToFragment(this.placed,n,Fragment.from(h)),this.frontier[n].match=d,I&&f<0&&A&&A.type==this.frontier[this.depth].type&&this.frontier.length>1&&this.closeFrontierNode();for(let p=0,m=l;p<f;p++){let E=m.lastChild;this.frontier.push({type:E.type,match:E.contentMatchAt(E.childCount)}),m=E.content}this.unplaced=I?e==0?Slice.empty:new Slice(dropFromFragment(a.content,e-1,1),e-1,f<0?a.openEnd:e-1):new Slice(dropFromFragment(a.content,e,g),a.openStart,a.openEnd)}mustMoveInline(){if(!this.$to.parent.isTextblock)return-1;let e=this.frontier[this.depth],n;if(!e.type.isTextblock||!contentAfterFits(this.$to,this.$to.depth,e.type,e.match,!1)||this.$to.depth==this.depth&&(n=this.findCloseLevel(this.$to))&&n.depth==this.depth)return-1;let{depth:A}=this.$to,o=this.$to.after(A);for(;A>1&&o==this.$to.end(--A);)++o;return o}findCloseLevel(e){e:for(let n=Math.min(this.depth,e.depth);n>=0;n--){let{match:A,type:o}=this.frontier[n],s=n<e.depth&&e.end(n+1)==e.pos+(e.depth-(n+1)),a=contentAfterFits(e,n,o,A,s);if(a){for(let l=n-1;l>=0;l--){let{match:c,type:g}=this.frontier[l],h=contentAfterFits(e,l,g,c,!0);if(!h||h.childCount)continue e}return{depth:n,fit:a,move:s?e.doc.resolve(e.after(n+1)):e}}}}close(e){let n=this.findCloseLevel(e);if(!n)return null;for(;this.depth>n.depth;)this.closeFrontierNode();n.fit.childCount&&(this.placed=addToFragment(this.placed,n.depth,n.fit)),e=n.move;for(let A=n.depth+1;A<=e.depth;A++){let o=e.node(A),s=o.type.contentMatch.fillBefore(o.content,!0,e.index(A));this.openFrontierNode(o.type,o.attrs,s)}return e}openFrontierNode(e,n=null,A){let o=this.frontier[this.depth];o.match=o.match.matchType(e),this.placed=addToFragment(this.placed,this.depth,Fragment.from(e.create(n,A))),this.frontier.push({type:e,match:e.contentMatch})}closeFrontierNode(){let n=this.frontier.pop().match.fillBefore(Fragment.empty,!0);n.childCount&&(this.placed=addToFragment(this.placed,this.frontier.length,n))}}function dropFromFragment(r,e,n){return e==0?r.cutByIndex(n,r.childCount):r.replaceChild(0,r.firstChild.copy(dropFromFragment(r.firstChild.content,e-1,n)))}function addToFragment(r,e,n){return e==0?r.append(n):r.replaceChild(r.childCount-1,r.lastChild.copy(addToFragment(r.lastChild.content,e-1,n)))}function contentAt(r,e){for(let n=0;n<e;n++)r=r.firstChild.content;return r}function closeNodeStart(r,e,n){if(e<=0)return r;let A=r.content;return e>1&&(A=A.replaceChild(0,closeNodeStart(A.firstChild,e-1,A.childCount==1?n-1:0))),e>0&&(A=r.type.contentMatch.fillBefore(A).append(A),n<=0&&(A=A.append(r.type.contentMatch.matchFragment(A).fillBefore(Fragment.empty,!0)))),r.copy(A)}function contentAfterFits(r,e,n,A,o){let s=r.node(e),a=o?r.indexAfter(e):r.index(e);if(a==s.childCount&&!n.compatibleContent(s.type))return null;let l=A.fillBefore(s.content,!0,a);return l&&!invalidMarks(n,s.content,a)?l:null}function invalidMarks(r,e,n){for(let A=n;A<e.childCount;A++)if(!r.allowsMarks(e.child(A).marks))return!0;return!1}function definesContent(r){return r.spec.defining||r.spec.definingForContent}function replaceRange$1(r,e,n,A){if(!A.size)return r.deleteRange(e,n);let o=r.doc.resolve(e),s=r.doc.resolve(n);if(fitsTrivially(o,s,A))return r.step(new ReplaceStep(e,n,A));let a=coveredDepths(o,r.doc.resolve(n));a[a.length-1]==0&&a.pop();let l=-(o.depth+1);a.unshift(l);for(let u=o.depth,f=o.pos-1;u>0;u--,f--){let I=o.node(u).type.spec;if(I.defining||I.definingAsContext||I.isolating)break;a.indexOf(u)>-1?l=u:o.before(u)==f&&a.splice(1,0,-u)}let c=a.indexOf(l),g=[],h=A.openStart;for(let u=A.content,f=0;;f++){let I=u.firstChild;if(g.push(I),f==A.openStart)break;u=I.content}for(let u=h-1;u>=0;u--){let f=g[u],I=definesContent(f.type);if(I&&!f.sameMarkup(o.node(Math.abs(l)-1)))h=u;else if(I||!f.type.isTextblock)break}for(let u=A.openStart;u>=0;u--){let f=(u+h+1)%(A.openStart+1),I=g[f];if(I)for(let p=0;p<a.length;p++){let m=a[(p+c)%a.length],E=!0;m<0&&(E=!1,m=-m);let B=o.node(m-1),Q=o.index(m-1);if(B.canReplaceWith(Q,Q,I.type,I.marks))return r.replace(o.before(m),E?s.after(m):n,new Slice(closeFragment(A.content,0,A.openStart,f),f,A.openEnd))}}let d=r.steps.length;for(let u=a.length-1;u>=0&&(r.replace(e,n,A),!(r.steps.length>d));u--){let f=a[u];f<0||(e=o.before(f),n=s.after(f))}}function closeFragment(r,e,n,A,o){if(e<n){let s=r.firstChild;r=r.replaceChild(0,s.copy(closeFragment(s.content,e+1,n,A,s)))}if(e>A){let s=o.contentMatchAt(0),a=s.fillBefore(r).append(r);r=a.append(s.matchFragment(a).fillBefore(Fragment.empty,!0))}return r}function replaceRangeWith(r,e,n,A){if(!A.isInline&&e==n&&r.doc.resolve(e).parent.content.size){let o=insertPoint(r.doc,e,A.type);o!=null&&(e=n=o)}r.replaceRange(e,n,new Slice(Fragment.from(A),0,0))}function deleteRange(r,e,n){let A=r.doc.resolve(e),o=r.doc.resolve(n),s=coveredDepths(A,o);for(let a=0;a<s.length;a++){let l=s[a],c=a==s.length-1;if(c&&l==0||A.node(l).type.contentMatch.validEnd)return r.delete(A.start(l),o.end(l));if(l>0&&(c||A.node(l-1).canReplace(A.index(l-1),o.indexAfter(l-1))))return r.delete(A.before(l),o.after(l))}for(let a=1;a<=A.depth&&a<=o.depth;a++)if(e-A.start(a)==A.depth-a&&n>A.end(a)&&o.end(a)-n!=o.depth-a&&A.start(a-1)==o.start(a-1)&&A.node(a-1).canReplace(A.index(a-1),o.index(a-1)))return r.delete(A.before(a),n);r.delete(e,n)}function coveredDepths(r,e){let n=[],A=Math.min(r.depth,e.depth);for(let o=A;o>=0;o--){let s=r.start(o);if(s<r.pos-(r.depth-o)||e.end(o)>e.pos+(e.depth-o)||r.node(o).type.spec.isolating||e.node(o).type.spec.isolating)break;(s==e.start(o)||o==r.depth&&o==e.depth&&r.parent.inlineContent&&e.parent.inlineContent&&o&&e.start(o-1)==s-1)&&n.push(o)}return n}class AttrStep extends Step{constructor(e,n,A){super(),this.pos=e,this.attr=n,this.value=A}apply(e){let n=e.nodeAt(this.pos);if(!n)return StepResult.fail("No node at attribute step's position");let A=Object.create(null);for(let s in n.attrs)A[s]=n.attrs[s];A[this.attr]=this.value;let o=n.type.create(A,null,n.marks);return StepResult.fromReplace(e,this.pos,this.pos+1,new Slice(Fragment.from(o),0,n.isLeaf?0:1))}getMap(){return StepMap.empty}invert(e){return new AttrStep(this.pos,this.attr,e.nodeAt(this.pos).attrs[this.attr])}map(e){let n=e.mapResult(this.pos,1);return n.deletedAfter?null:new AttrStep(n.pos,this.attr,this.value)}toJSON(){return{stepType:"attr",pos:this.pos,attr:this.attr,value:this.value}}static fromJSON(e,n){if(typeof n.pos!="number"||typeof n.attr!="string")throw new RangeError("Invalid input for AttrStep.fromJSON");return new AttrStep(n.pos,n.attr,n.value)}}Step.jsonID("attr",AttrStep);class DocAttrStep extends Step{constructor(e,n){super(),this.attr=e,this.value=n}apply(e){let n=Object.create(null);for(let o in e.attrs)n[o]=e.attrs[o];n[this.attr]=this.value;let A=e.type.create(n,e.content,e.marks);return StepResult.ok(A)}getMap(){return StepMap.empty}invert(e){return new DocAttrStep(this.attr,e.attrs[this.attr])}map(e){return this}toJSON(){return{stepType:"docAttr",attr:this.attr,value:this.value}}static fromJSON(e,n){if(typeof n.attr!="string")throw new RangeError("Invalid input for DocAttrStep.fromJSON");return new DocAttrStep(n.attr,n.value)}}Step.jsonID("docAttr",DocAttrStep);let TransformError=class extends Error{};TransformError=function r(e){let n=Error.call(this,e);return n.__proto__=r.prototype,n};TransformError.prototype=Object.create(Error.prototype);TransformError.prototype.constructor=TransformError;TransformError.prototype.name="TransformError";class Transform{constructor(e){this.doc=e,this.steps=[],this.docs=[],this.mapping=new Mapping}get before(){return this.docs.length?this.docs[0]:this.doc}step(e){let n=this.maybeStep(e);if(n.failed)throw new TransformError(n.failed);return this}maybeStep(e){let n=e.apply(this.doc);return n.failed||this.addStep(e,n.doc),n}get docChanged(){return this.steps.length>0}addStep(e,n){this.docs.push(this.doc),this.steps.push(e),this.mapping.appendMap(e.getMap()),this.doc=n}replace(e,n=e,A=Slice.empty){let o=replaceStep(this.doc,e,n,A);return o&&this.step(o),this}replaceWith(e,n,A){return this.replace(e,n,new Slice(Fragment.from(A),0,0))}delete(e,n){return this.replace(e,n,Slice.empty)}insert(e,n){return this.replaceWith(e,e,n)}replaceRange(e,n,A){return replaceRange$1(this,e,n,A),this}replaceRangeWith(e,n,A){return replaceRangeWith(this,e,n,A),this}deleteRange(e,n){return deleteRange(this,e,n),this}lift(e,n){return lift$1(this,e,n),this}join(e,n=1){return join(this,e,n),this}wrap(e,n){return wrap(this,e,n),this}setBlockType(e,n=e,A,o=null){return setBlockType$1(this,e,n,A,o),this}setNodeMarkup(e,n,A=null,o){return setNodeMarkup(this,e,n,A,o),this}setNodeAttribute(e,n,A){return this.step(new AttrStep(e,n,A)),this}setDocAttribute(e,n){return this.step(new DocAttrStep(e,n)),this}addNodeMark(e,n){return this.step(new AddNodeMarkStep(e,n)),this}removeNodeMark(e,n){let A=this.doc.nodeAt(e);if(!A)throw new RangeError("No node at position "+e);if(n instanceof Mark$1)n.isInSet(A.marks)&&this.step(new RemoveNodeMarkStep(e,n));else{let o=A.marks,s,a=[];for(;s=n.isInSet(o);)a.push(new RemoveNodeMarkStep(e,s)),o=s.removeFromSet(o);for(let l=a.length-1;l>=0;l--)this.step(a[l])}return this}split(e,n=1,A){return split(this,e,n,A),this}addMark(e,n,A){return addMark(this,e,n,A),this}removeMark(e,n,A){return removeMark(this,e,n,A),this}clearIncompatible(e,n,A){return clearIncompatible(this,e,n,A),this}}const classesById=Object.create(null);class Selection{constructor(e,n,A){this.$anchor=e,this.$head=n,this.ranges=A||[new SelectionRange$2(e.min(n),e.max(n))]}get anchor(){return this.$anchor.pos}get head(){return this.$head.pos}get from(){return this.$from.pos}get to(){return this.$to.pos}get $from(){return this.ranges[0].$from}get $to(){return this.ranges[0].$to}get empty(){let e=this.ranges;for(let n=0;n<e.length;n++)if(e[n].$from.pos!=e[n].$to.pos)return!1;return!0}content(){return this.$from.doc.slice(this.from,this.to,!0)}replace(e,n=Slice.empty){let A=n.content.lastChild,o=null;for(let l=0;l<n.openEnd;l++)o=A,A=A.lastChild;let s=e.steps.length,a=this.ranges;for(let l=0;l<a.length;l++){let{$from:c,$to:g}=a[l],h=e.mapping.slice(s);e.replaceRange(h.map(c.pos),h.map(g.pos),l?Slice.empty:n),l==0&&selectionToInsertionEnd(e,s,(A?A.isInline:o&&o.isTextblock)?-1:1)}}replaceWith(e,n){let A=e.steps.length,o=this.ranges;for(let s=0;s<o.length;s++){let{$from:a,$to:l}=o[s],c=e.mapping.slice(A),g=c.map(a.pos),h=c.map(l.pos);s?e.deleteRange(g,h):(e.replaceRangeWith(g,h,n),selectionToInsertionEnd(e,A,n.isInline?-1:1))}}static findFrom(e,n,A=!1){let o=e.parent.inlineContent?new TextSelection(e):findSelectionIn(e.node(0),e.parent,e.pos,e.index(),n,A);if(o)return o;for(let s=e.depth-1;s>=0;s--){let a=n<0?findSelectionIn(e.node(0),e.node(s),e.before(s+1),e.index(s),n,A):findSelectionIn(e.node(0),e.node(s),e.after(s+1),e.index(s)+1,n,A);if(a)return a}return null}static near(e,n=1){return this.findFrom(e,n)||this.findFrom(e,-n)||new AllSelection(e.node(0))}static atStart(e){return findSelectionIn(e,e,0,0,1)||new AllSelection(e)}static atEnd(e){return findSelectionIn(e,e,e.content.size,e.childCount,-1)||new AllSelection(e)}static fromJSON(e,n){if(!n||!n.type)throw new RangeError("Invalid input for Selection.fromJSON");let A=classesById[n.type];if(!A)throw new RangeError(`No selection type ${n.type} defined`);return A.fromJSON(e,n)}static jsonID(e,n){if(e in classesById)throw new RangeError("Duplicate use of selection JSON ID "+e);return classesById[e]=n,n.prototype.jsonID=e,n}getBookmark(){return TextSelection.between(this.$anchor,this.$head).getBookmark()}}Selection.prototype.visible=!0;let SelectionRange$2=class{constructor(e,n){this.$from=e,this.$to=n}},warnedAboutTextSelection=!1;function checkTextSelection(r){!warnedAboutTextSelection&&!r.parent.inlineContent&&(warnedAboutTextSelection=!0,console.warn("TextSelection endpoint not pointing into a node with inline content ("+r.parent.type.name+")"))}class TextSelection extends Selection{constructor(e,n=e){checkTextSelection(e),checkTextSelection(n),super(e,n)}get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}map(e,n){let A=e.resolve(n.map(this.head));if(!A.parent.inlineContent)return Selection.near(A);let o=e.resolve(n.map(this.anchor));return new TextSelection(o.parent.inlineContent?o:A,A)}replace(e,n=Slice.empty){if(super.replace(e,n),n==Slice.empty){let A=this.$from.marksAcross(this.$to);A&&e.ensureMarks(A)}}eq(e){return e instanceof TextSelection&&e.anchor==this.anchor&&e.head==this.head}getBookmark(){return new TextBookmark(this.anchor,this.head)}toJSON(){return{type:"text",anchor:this.anchor,head:this.head}}static fromJSON(e,n){if(typeof n.anchor!="number"||typeof n.head!="number")throw new RangeError("Invalid input for TextSelection.fromJSON");return new TextSelection(e.resolve(n.anchor),e.resolve(n.head))}static create(e,n,A=n){let o=e.resolve(n);return new this(o,A==n?o:e.resolve(A))}static between(e,n,A){let o=e.pos-n.pos;if((!A||o)&&(A=o>=0?1:-1),!n.parent.inlineContent){let s=Selection.findFrom(n,A,!0)||Selection.findFrom(n,-A,!0);if(s)n=s.$head;else return Selection.near(n,A)}return e.parent.inlineContent||(o==0?e=n:(e=(Selection.findFrom(e,-A,!0)||Selection.findFrom(e,A,!0)).$anchor,e.pos<n.pos!=o<0&&(e=n))),new TextSelection(e,n)}}Selection.jsonID("text",TextSelection);class TextBookmark{constructor(e,n){this.anchor=e,this.head=n}map(e){return new TextBookmark(e.map(this.anchor),e.map(this.head))}resolve(e){return TextSelection.between(e.resolve(this.anchor),e.resolve(this.head))}}class NodeSelection extends Selection{constructor(e){let n=e.nodeAfter,A=e.node(0).resolve(e.pos+n.nodeSize);super(e,A),this.node=n}map(e,n){let{deleted:A,pos:o}=n.mapResult(this.anchor),s=e.resolve(o);return A?Selection.near(s):new NodeSelection(s)}content(){return new Slice(Fragment.from(this.node),0,0)}eq(e){return e instanceof NodeSelection&&e.anchor==this.anchor}toJSON(){return{type:"node",anchor:this.anchor}}getBookmark(){return new NodeBookmark$1(this.anchor)}static fromJSON(e,n){if(typeof n.anchor!="number")throw new RangeError("Invalid input for NodeSelection.fromJSON");return new NodeSelection(e.resolve(n.anchor))}static create(e,n){return new NodeSelection(e.resolve(n))}static isSelectable(e){return!e.isText&&e.type.spec.selectable!==!1}}NodeSelection.prototype.visible=!1;Selection.jsonID("node",NodeSelection);let NodeBookmark$1=class ft{constructor(e){this.anchor=e}map(e){let{deleted:n,pos:A}=e.mapResult(this.anchor);return n?new TextBookmark(A,A):new ft(A)}resolve(e){let n=e.resolve(this.anchor),A=n.nodeAfter;return A&&NodeSelection.isSelectable(A)?new NodeSelection(n):Selection.near(n)}};class AllSelection extends Selection{constructor(e){super(e.resolve(0),e.resolve(e.content.size))}replace(e,n=Slice.empty){if(n==Slice.empty){e.delete(0,e.doc.content.size);let A=Selection.atStart(e.doc);A.eq(e.selection)||e.setSelection(A)}else super.replace(e,n)}toJSON(){return{type:"all"}}static fromJSON(e){return new AllSelection(e)}map(e){return new AllSelection(e)}eq(e){return e instanceof AllSelection}getBookmark(){return AllBookmark}}Selection.jsonID("all",AllSelection);const AllBookmark={map(){return this},resolve(r){return new AllSelection(r)}};function findSelectionIn(r,e,n,A,o,s=!1){if(e.inlineContent)return TextSelection.create(r,n);for(let a=A-(o>0?0:1);o>0?a<e.childCount:a>=0;a+=o){let l=e.child(a);if(l.isAtom){if(!s&&NodeSelection.isSelectable(l))return NodeSelection.create(r,n-(o<0?l.nodeSize:0))}else{let c=findSelectionIn(r,l,n+o,o<0?l.childCount:0,o,s);if(c)return c}n+=l.nodeSize*o}return null}function selectionToInsertionEnd(r,e,n){let A=r.steps.length-1;if(A<e)return;let o=r.steps[A];if(!(o instanceof ReplaceStep||o instanceof ReplaceAroundStep))return;let s=r.mapping.maps[A],a;s.forEach((l,c,g,h)=>{a==null&&(a=h)}),r.setSelection(Selection.near(r.doc.resolve(a),n))}const UPDATED_SEL=1,UPDATED_MARKS=2,UPDATED_SCROLL=4;let Transaction$1=class extends Transform{constructor(e){super(e.doc),this.curSelectionFor=0,this.updated=0,this.meta=Object.create(null),this.time=Date.now(),this.curSelection=e.selection,this.storedMarks=e.storedMarks}get selection(){return this.curSelectionFor<this.steps.length&&(this.curSelection=this.curSelection.map(this.doc,this.mapping.slice(this.curSelectionFor)),this.curSelectionFor=this.steps.length),this.curSelection}setSelection(e){if(e.$from.doc!=this.doc)throw new RangeError("Selection passed to setSelection must point at the current document");return this.curSelection=e,this.curSelectionFor=this.steps.length,this.updated=(this.updated|UPDATED_SEL)&~UPDATED_MARKS,this.storedMarks=null,this}get selectionSet(){return(this.updated&UPDATED_SEL)>0}setStoredMarks(e){return this.storedMarks=e,this.updated|=UPDATED_MARKS,this}ensureMarks(e){return Mark$1.sameSet(this.storedMarks||this.selection.$from.marks(),e)||this.setStoredMarks(e),this}addStoredMark(e){return this.ensureMarks(e.addToSet(this.storedMarks||this.selection.$head.marks()))}removeStoredMark(e){return this.ensureMarks(e.removeFromSet(this.storedMarks||this.selection.$head.marks()))}get storedMarksSet(){return(this.updated&UPDATED_MARKS)>0}addStep(e,n){super.addStep(e,n),this.updated=this.updated&~UPDATED_MARKS,this.storedMarks=null}setTime(e){return this.time=e,this}replaceSelection(e){return this.selection.replace(this,e),this}replaceSelectionWith(e,n=!0){let A=this.selection;return n&&(e=e.mark(this.storedMarks||(A.empty?A.$from.marks():A.$from.marksAcross(A.$to)||Mark$1.none))),A.replaceWith(this,e),this}deleteSelection(){return this.selection.replace(this),this}insertText(e,n,A){let o=this.doc.type.schema;if(n==null)return e?this.replaceSelectionWith(o.text(e),!0):this.deleteSelection();{if(A==null&&(A=n),A=A??n,!e)return this.deleteRange(n,A);let s=this.storedMarks;if(!s){let a=this.doc.resolve(n);s=A==n?a.marks():a.marksAcross(this.doc.resolve(A))}return this.replaceRangeWith(n,A,o.text(e,s)),this.selection.empty||this.setSelection(Selection.near(this.selection.$to)),this}}setMeta(e,n){return this.meta[typeof e=="string"?e:e.key]=n,this}getMeta(e){return this.meta[typeof e=="string"?e:e.key]}get isGeneric(){for(let e in this.meta)return!1;return!0}scrollIntoView(){return this.updated|=UPDATED_SCROLL,this}get scrolledIntoView(){return(this.updated&UPDATED_SCROLL)>0}};function bind(r,e){return!e||!r?r:r.bind(e)}class FieldDesc{constructor(e,n,A){this.name=e,this.init=bind(n.init,A),this.apply=bind(n.apply,A)}}const baseFields=[new FieldDesc("doc",{init(r){return r.doc||r.schema.topNodeType.createAndFill()},apply(r){return r.doc}}),new FieldDesc("selection",{init(r,e){return r.selection||Selection.atStart(e.doc)},apply(r){return r.selection}}),new FieldDesc("storedMarks",{init(r){return r.storedMarks||null},apply(r,e,n,A){return A.selection.$cursor?r.storedMarks:null}}),new FieldDesc("scrollToSelection",{init(){return 0},apply(r,e){return r.scrolledIntoView?e+1:e}})];let Configuration$1=class{constructor(e,n){this.schema=e,this.plugins=[],this.pluginsByKey=Object.create(null),this.fields=baseFields.slice(),n&&n.forEach(A=>{if(this.pluginsByKey[A.key])throw new RangeError("Adding different instances of a keyed plugin ("+A.key+")");this.plugins.push(A),this.pluginsByKey[A.key]=A,A.spec.state&&this.fields.push(new FieldDesc(A.key,A.spec.state,A))})}},EditorState$1=class Ue{constructor(e){this.config=e}get schema(){return this.config.schema}get plugins(){return this.config.plugins}apply(e){return this.applyTransaction(e).state}filterTransaction(e,n=-1){for(let A=0;A<this.config.plugins.length;A++)if(A!=n){let o=this.config.plugins[A];if(o.spec.filterTransaction&&!o.spec.filterTransaction.call(o,e,this))return!1}return!0}applyTransaction(e){if(!this.filterTransaction(e))return{state:this,transactions:[]};let n=[e],A=this.applyInner(e),o=null;for(;;){let s=!1;for(let a=0;a<this.config.plugins.length;a++){let l=this.config.plugins[a];if(l.spec.appendTransaction){let c=o?o[a].n:0,g=o?o[a].state:this,h=c<n.length&&l.spec.appendTransaction.call(l,c?n.slice(c):n,g,A);if(h&&A.filterTransaction(h,a)){if(h.setMeta("appendedTransaction",e),!o){o=[];for(let d=0;d<this.config.plugins.length;d++)o.push(d<a?{state:A,n:n.length}:{state:this,n:0})}n.push(h),A=A.applyInner(h),s=!0}o&&(o[a]={state:A,n:n.length})}}if(!s)return{state:A,transactions:n}}}applyInner(e){if(!e.before.eq(this.doc))throw new RangeError("Applying a mismatched transaction");let n=new Ue(this.config),A=this.config.fields;for(let o=0;o<A.length;o++){let s=A[o];n[s.name]=s.apply(e,this[s.name],this,n)}return n}get tr(){return new Transaction$1(this)}static create(e){let n=new Configuration$1(e.doc?e.doc.type.schema:e.schema,e.plugins),A=new Ue(n);for(let o=0;o<n.fields.length;o++)A[n.fields[o].name]=n.fields[o].init(e,A);return A}reconfigure(e){let n=new Configuration$1(this.schema,e.plugins),A=n.fields,o=new Ue(n);for(let s=0;s<A.length;s++){let a=A[s].name;o[a]=this.hasOwnProperty(a)?this[a]:A[s].init(e,o)}return o}toJSON(e){let n={doc:this.doc.toJSON(),selection:this.selection.toJSON()};if(this.storedMarks&&(n.storedMarks=this.storedMarks.map(A=>A.toJSON())),e&&typeof e=="object")for(let A in e){if(A=="doc"||A=="selection")throw new RangeError("The JSON fields `doc` and `selection` are reserved");let o=e[A],s=o.spec.state;s&&s.toJSON&&(n[A]=s.toJSON.call(o,this[o.key]))}return n}static fromJSON(e,n,A){if(!n)throw new RangeError("Invalid input for EditorState.fromJSON");if(!e.schema)throw new RangeError("Required config field 'schema' missing");let o=new Configuration$1(e.schema,e.plugins),s=new Ue(o);return o.fields.forEach(a=>{if(a.name=="doc")s.doc=Node$2.fromJSON(e.schema,n.doc);else if(a.name=="selection")s.selection=Selection.fromJSON(s.doc,n.selection);else if(a.name=="storedMarks")n.storedMarks&&(s.storedMarks=n.storedMarks.map(e.schema.markFromJSON));else{if(A)for(let l in A){let c=A[l],g=c.spec.state;if(c.key==a.name&&g&&g.fromJSON&&Object.prototype.hasOwnProperty.call(n,l)){s[a.name]=g.fromJSON.call(c,e,n[l],s);return}}s[a.name]=a.init(e,s)}}),s}};function bindProps(r,e,n){for(let A in r){let o=r[A];o instanceof Function?o=o.bind(e):A=="handleDOMEvents"&&(o=bindProps(o,e,{})),n[A]=o}return n}class Plugin{constructor(e){this.spec=e,this.props={},e.props&&bindProps(e.props,this,this.props),this.key=e.key?e.key.key:createKey("plugin")}getState(e){return e[this.key]}}const keys=Object.create(null);function createKey(r){return r in keys?r+"$"+ ++keys[r]:(keys[r]=0,r+"$")}class PluginKey{constructor(e="key"){this.key=createKey(e)}get(e){return e.config.pluginsByKey[this.key]}getState(e){return e[this.key]}}const domIndex$1=function(r){for(var e=0;;e++)if(r=r.previousSibling,!r)return e},parentNode=function(r){let e=r.assignedSlot||r.parentNode;return e&&e.nodeType==11?e.host:e};let reusedRange=null;const textRange$1=function(r,e,n){let A=reusedRange||(reusedRange=document.createRange());return A.setEnd(r,n??r.nodeValue.length),A.setStart(r,e||0),A},clearReusedRange=function(){reusedRange=null},isEquivalentPosition$1=function(r,e,n,A){return n&&(scanFor$1(r,e,n,A,-1)||scanFor$1(r,e,n,A,1))},atomElements=/^(img|br|input|textarea|hr)$/i;function scanFor$1(r,e,n,A,o){for(var s;;){if(r==n&&e==A)return!0;if(e==(o<0?0:nodeSize$1(r))){let a=r.parentNode;if(!a||a.nodeType!=1||hasBlockDesc(r)||atomElements.test(r.nodeName)||r.contentEditable=="false")return!1;e=domIndex$1(r)+(o<0?0:1),r=a}else if(r.nodeType==1){let a=r.childNodes[e+(o<0?-1:0)];if(a.nodeType==1&&a.contentEditable=="false")if(!((s=a.pmViewDesc)===null||s===void 0)&&s.ignoreForSelection)e+=o;else return!1;else r=a,e=o<0?nodeSize$1(r):0}else return!1}}function nodeSize$1(r){return r.nodeType==3?r.nodeValue.length:r.childNodes.length}function textNodeBefore$1(r,e){for(;;){if(r.nodeType==3&&e)return r;if(r.nodeType==1&&e>0){if(r.contentEditable=="false")return null;r=r.childNodes[e-1],e=nodeSize$1(r)}else if(r.parentNode&&!hasBlockDesc(r))e=domIndex$1(r),r=r.parentNode;else return null}}function textNodeAfter$1(r,e){for(;;){if(r.nodeType==3&&e<r.nodeValue.length)return r;if(r.nodeType==1&&e<r.childNodes.length){if(r.contentEditable=="false")return null;r=r.childNodes[e],e=0}else if(r.parentNode&&!hasBlockDesc(r))e=domIndex$1(r)+1,r=r.parentNode;else return null}}function isOnEdge(r,e,n){for(let A=e==0,o=e==nodeSize$1(r);A||o;){if(r==n)return!0;let s=domIndex$1(r);if(r=r.parentNode,!r)return!1;A=A&&s==0,o=o&&s==nodeSize$1(r)}}function hasBlockDesc(r){let e;for(let n=r;n&&!(e=n.pmViewDesc);n=n.parentNode);return e&&e.node&&e.node.isBlock&&(e.dom==r||e.contentDOM==r)}const selectionCollapsed=function(r){return r.focusNode&&isEquivalentPosition$1(r.focusNode,r.focusOffset,r.anchorNode,r.anchorOffset)};function keyEvent(r,e){let n=document.createEvent("Event");return n.initEvent("keydown",!0,!0),n.keyCode=r,n.key=n.code=e,n}function deepActiveElement(r){let e=r.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function caretFromPoint(r,e,n){if(r.caretPositionFromPoint)try{let A=r.caretPositionFromPoint(e,n);if(A)return{node:A.offsetNode,offset:Math.min(nodeSize$1(A.offsetNode),A.offset)}}catch{}if(r.caretRangeFromPoint){let A=r.caretRangeFromPoint(e,n);if(A)return{node:A.startContainer,offset:Math.min(nodeSize$1(A.startContainer),A.startOffset)}}}const nav$1=typeof navigator<"u"?navigator:null,doc$2=typeof document<"u"?document:null,agent=nav$1&&nav$1.userAgent||"",ie_edge$1=/Edge\/(\d+)/.exec(agent),ie_upto10$1=/MSIE \d/.exec(agent),ie_11up$1=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(agent),ie$3=!!(ie_upto10$1||ie_11up$1||ie_edge$1),ie_version=ie_upto10$1?document.documentMode:ie_11up$1?+ie_11up$1[1]:ie_edge$1?+ie_edge$1[1]:0,gecko$1=!ie$3&&/gecko\/(\d+)/i.test(agent);gecko$1&&+(/Firefox\/(\d+)/.exec(agent)||[0,0])[1];const _chrome=!ie$3&&/Chrome\/(\d+)/.exec(agent),chrome$1=!!_chrome,chrome_version=_chrome?+_chrome[1]:0,safari$1=!ie$3&&!!nav$1&&/Apple Computer/.test(nav$1.vendor),ios$1=safari$1&&(/Mobile\/\w+/.test(agent)||!!nav$1&&nav$1.maxTouchPoints>2),mac$4=ios$1||(nav$1?/Mac/.test(nav$1.platform):!1),windows$2=nav$1?/Win/.test(nav$1.platform):!1,android$1=/Android \d/.test(agent),webkit$1=!!doc$2&&"webkitFontSmoothing"in doc$2.documentElement.style,webkit_version=webkit$1?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0;function windowRect$1(r){let e=r.defaultView&&r.defaultView.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:r.documentElement.clientWidth,top:0,bottom:r.documentElement.clientHeight}}function getSide(r,e){return typeof r=="number"?r:r[e]}function clientRect(r){let e=r.getBoundingClientRect(),n=e.width/r.offsetWidth||1,A=e.height/r.offsetHeight||1;return{left:e.left,right:e.left+r.clientWidth*n,top:e.top,bottom:e.top+r.clientHeight*A}}function scrollRectIntoView$1(r,e,n){let A=r.someProp("scrollThreshold")||0,o=r.someProp("scrollMargin")||5,s=r.dom.ownerDocument;for(let a=n||r.dom;a;){if(a.nodeType!=1){a=parentNode(a);continue}let l=a,c=l==s.body,g=c?windowRect$1(s):clientRect(l),h=0,d=0;if(e.top<g.top+getSide(A,"top")?d=-(g.top-e.top+getSide(o,"top")):e.bottom>g.bottom-getSide(A,"bottom")&&(d=e.bottom-e.top>g.bottom-g.top?e.top+getSide(o,"top")-g.top:e.bottom-g.bottom+getSide(o,"bottom")),e.left<g.left+getSide(A,"left")?h=-(g.left-e.left+getSide(o,"left")):e.right>g.right-getSide(A,"right")&&(h=e.right-g.right+getSide(o,"right")),h||d)if(c)s.defaultView.scrollBy(h,d);else{let f=l.scrollLeft,I=l.scrollTop;d&&(l.scrollTop+=d),h&&(l.scrollLeft+=h);let p=l.scrollLeft-f,m=l.scrollTop-I;e={left:e.left-p,top:e.top-m,right:e.right-p,bottom:e.bottom-m}}let u=c?"fixed":getComputedStyle(a).position;if(/^(fixed|sticky)$/.test(u))break;a=u=="absolute"?a.offsetParent:parentNode(a)}}function storeScrollPos(r){let e=r.dom.getBoundingClientRect(),n=Math.max(0,e.top),A,o;for(let s=(e.left+e.right)/2,a=n+1;a<Math.min(innerHeight,e.bottom);a+=5){let l=r.root.elementFromPoint(s,a);if(!l||l==r.dom||!r.dom.contains(l))continue;let c=l.getBoundingClientRect();if(c.top>=n-20){A=l,o=c.top;break}}return{refDOM:A,refTop:o,stack:scrollStack(r.dom)}}function scrollStack(r){let e=[],n=r.ownerDocument;for(let A=r;A&&(e.push({dom:A,top:A.scrollTop,left:A.scrollLeft}),r!=n);A=parentNode(A));return e}function resetScrollPos({refDOM:r,refTop:e,stack:n}){let A=r?r.getBoundingClientRect().top:0;restoreScrollStack(n,A==0?0:A-e)}function restoreScrollStack(r,e){for(let n=0;n<r.length;n++){let{dom:A,top:o,left:s}=r[n];A.scrollTop!=o+e&&(A.scrollTop=o+e),A.scrollLeft!=s&&(A.scrollLeft=s)}}let preventScrollSupported$1=null;function focusPreventScroll$1(r){if(r.setActive)return r.setActive();if(preventScrollSupported$1)return r.focus(preventScrollSupported$1);let e=scrollStack(r);r.focus(preventScrollSupported$1==null?{get preventScroll(){return preventScrollSupported$1={preventScroll:!0},!0}}:void 0),preventScrollSupported$1||(preventScrollSupported$1=!1,restoreScrollStack(e,0))}function findOffsetInNode(r,e){let n,A=2e8,o,s=0,a=e.top,l=e.top,c,g;for(let h=r.firstChild,d=0;h;h=h.nextSibling,d++){let u;if(h.nodeType==1)u=h.getClientRects();else if(h.nodeType==3)u=textRange$1(h).getClientRects();else continue;for(let f=0;f<u.length;f++){let I=u[f];if(I.top<=a&&I.bottom>=l){a=Math.max(I.bottom,a),l=Math.min(I.top,l);let p=I.left>e.left?I.left-e.left:I.right<e.left?e.left-I.right:0;if(p<A){n=h,A=p,o=p&&n.nodeType==3?{left:I.right<e.left?I.right:I.left,top:e.top}:e,h.nodeType==1&&p&&(s=d+(e.left>=(I.left+I.right)/2?1:0));continue}}else I.top>e.top&&!c&&I.left<=e.left&&I.right>=e.left&&(c=h,g={left:Math.max(I.left,Math.min(I.right,e.left)),top:I.top});!n&&(e.left>=I.right&&e.top>=I.top||e.left>=I.left&&e.top>=I.bottom)&&(s=d+1)}}return!n&&c&&(n=c,o=g,A=0),n&&n.nodeType==3?findOffsetInText(n,o):!n||A&&n.nodeType==1?{node:r,offset:s}:findOffsetInNode(n,o)}function findOffsetInText(r,e){let n=r.nodeValue.length,A=document.createRange();for(let o=0;o<n;o++){A.setEnd(r,o+1),A.setStart(r,o);let s=singleRect(A,1);if(s.top!=s.bottom&&inRect(e,s))return{node:r,offset:o+(e.left>=(s.left+s.right)/2?1:0)}}return{node:r,offset:0}}function inRect(r,e){return r.left>=e.left-1&&r.left<=e.right+1&&r.top>=e.top-1&&r.top<=e.bottom+1}function targetKludge(r,e){let n=r.parentNode;return n&&/^li$/i.test(n.nodeName)&&e.left<r.getBoundingClientRect().left?n:r}function posFromElement(r,e,n){let{node:A,offset:o}=findOffsetInNode(e,n),s=-1;if(A.nodeType==1&&!A.firstChild){let a=A.getBoundingClientRect();s=a.left!=a.right&&n.left>(a.left+a.right)/2?1:-1}return r.docView.posFromDOM(A,o,s)}function posFromCaret(r,e,n,A){let o=-1;for(let s=e,a=!1;s!=r.dom;){let l=r.docView.nearestDesc(s,!0),c;if(!l)return null;if(l.dom.nodeType==1&&(l.node.isBlock&&l.parent||!l.contentDOM)&&((c=l.dom.getBoundingClientRect()).width||c.height)&&(l.node.isBlock&&l.parent&&(!a&&c.left>A.left||c.top>A.top?o=l.posBefore:(!a&&c.right<A.left||c.bottom<A.top)&&(o=l.posAfter),a=!0),!l.contentDOM&&o<0&&!l.node.isText))return(l.node.isBlock?A.top<(c.top+c.bottom)/2:A.left<(c.left+c.right)/2)?l.posBefore:l.posAfter;s=l.dom.parentNode}return o>-1?o:r.docView.posFromDOM(e,n,-1)}function elementFromPoint(r,e,n){let A=r.childNodes.length;if(A&&n.top<n.bottom)for(let o=Math.max(0,Math.min(A-1,Math.floor(A*(e.top-n.top)/(n.bottom-n.top))-2)),s=o;;){let a=r.childNodes[s];if(a.nodeType==1){let l=a.getClientRects();for(let c=0;c<l.length;c++){let g=l[c];if(inRect(e,g))return elementFromPoint(a,e,g)}}if((s=(s+1)%A)==o)break}return r}function posAtCoords$1(r,e){let n=r.dom.ownerDocument,A,o=0,s=caretFromPoint(n,e.left,e.top);s&&({node:A,offset:o}=s);let a=(r.root.elementFromPoint?r.root:n).elementFromPoint(e.left,e.top),l;if(!a||!r.dom.contains(a.nodeType!=1?a.parentNode:a)){let g=r.dom.getBoundingClientRect();if(!inRect(e,g)||(a=elementFromPoint(r.dom,e,g),!a))return null}if(safari$1)for(let g=a;A&&g;g=parentNode(g))g.draggable&&(A=void 0);if(a=targetKludge(a,e),A){if(gecko$1&&A.nodeType==1&&(o=Math.min(o,A.childNodes.length),o<A.childNodes.length)){let h=A.childNodes[o],d;h.nodeName=="IMG"&&(d=h.getBoundingClientRect()).right<=e.left&&d.bottom>e.top&&o++}let g;webkit$1&&o&&A.nodeType==1&&(g=A.childNodes[o-1]).nodeType==1&&g.contentEditable=="false"&&g.getBoundingClientRect().top>=e.top&&o--,A==r.dom&&o==A.childNodes.length-1&&A.lastChild.nodeType==1&&e.top>A.lastChild.getBoundingClientRect().bottom?l=r.state.doc.content.size:(o==0||A.nodeType!=1||A.childNodes[o-1].nodeName!="BR")&&(l=posFromCaret(r,A,o,e))}l==null&&(l=posFromElement(r,a,e));let c=r.docView.nearestDesc(a,!0);return{pos:l,inside:c?c.posAtStart-c.border:-1}}function nonZero(r){return r.top<r.bottom||r.left<r.right}function singleRect(r,e){let n=r.getClientRects();if(n.length){let A=n[e<0?0:n.length-1];if(nonZero(A))return A}return Array.prototype.find.call(n,nonZero)||r.getBoundingClientRect()}const BIDI=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/;function coordsAtPos(r,e,n){let{node:A,offset:o,atom:s}=r.docView.domFromPos(e,n<0?-1:1),a=webkit$1||gecko$1;if(A.nodeType==3)if(a&&(BIDI.test(A.nodeValue)||(n<0?!o:o==A.nodeValue.length))){let c=singleRect(textRange$1(A,o,o),n);if(gecko$1&&o&&/\s/.test(A.nodeValue[o-1])&&o<A.nodeValue.length){let g=singleRect(textRange$1(A,o-1,o-1),-1);if(g.top==c.top){let h=singleRect(textRange$1(A,o,o+1),-1);if(h.top!=c.top)return flattenV(h,h.left<g.left)}}return c}else{let c=o,g=o,h=n<0?1:-1;return n<0&&!o?(g++,h=-1):n>=0&&o==A.nodeValue.length?(c--,h=1):n<0?c--:g++,flattenV(singleRect(textRange$1(A,c,g),h),h<0)}if(!r.state.doc.resolve(e-(s||0)).parent.inlineContent){if(s==null&&o&&(n<0||o==nodeSize$1(A))){let c=A.childNodes[o-1];if(c.nodeType==1)return flattenH(c.getBoundingClientRect(),!1)}if(s==null&&o<nodeSize$1(A)){let c=A.childNodes[o];if(c.nodeType==1)return flattenH(c.getBoundingClientRect(),!0)}return flattenH(A.getBoundingClientRect(),n>=0)}if(s==null&&o&&(n<0||o==nodeSize$1(A))){let c=A.childNodes[o-1],g=c.nodeType==3?textRange$1(c,nodeSize$1(c)-(a?0:1)):c.nodeType==1&&(c.nodeName!="BR"||!c.nextSibling)?c:null;if(g)return flattenV(singleRect(g,1),!1)}if(s==null&&o<nodeSize$1(A)){let c=A.childNodes[o];for(;c.pmViewDesc&&c.pmViewDesc.ignoreForCoords;)c=c.nextSibling;let g=c?c.nodeType==3?textRange$1(c,0,a?0:1):c.nodeType==1?c:null:null;if(g)return flattenV(singleRect(g,-1),!0)}return flattenV(singleRect(A.nodeType==3?textRange$1(A):A,-n),n>=0)}function flattenV(r,e){if(r.width==0)return r;let n=e?r.left:r.right;return{top:r.top,bottom:r.bottom,left:n,right:n}}function flattenH(r,e){if(r.height==0)return r;let n=e?r.top:r.bottom;return{top:n,bottom:n,left:r.left,right:r.right}}function withFlushedState(r,e,n){let A=r.state,o=r.root.activeElement;A!=e&&r.updateState(e),o!=r.dom&&r.focus();try{return n()}finally{A!=e&&r.updateState(A),o!=r.dom&&o&&o.focus()}}function endOfTextblockVertical(r,e,n){let A=e.selection,o=n=="up"?A.$from:A.$to;return withFlushedState(r,e,()=>{let{node:s}=r.docView.domFromPos(o.pos,n=="up"?-1:1);for(;;){let l=r.docView.nearestDesc(s,!0);if(!l)break;if(l.node.isBlock){s=l.contentDOM||l.dom;break}s=l.dom.parentNode}let a=coordsAtPos(r,o.pos,1);for(let l=s.firstChild;l;l=l.nextSibling){let c;if(l.nodeType==1)c=l.getClientRects();else if(l.nodeType==3)c=textRange$1(l,0,l.nodeValue.length).getClientRects();else continue;for(let g=0;g<c.length;g++){let h=c[g];if(h.bottom>h.top+1&&(n=="up"?a.top-h.top>(h.bottom-a.top)*2:h.bottom-a.bottom>(a.bottom-h.top)*2))return!1}}return!0})}const maybeRTL=/[\u0590-\u08ac]/;function endOfTextblockHorizontal(r,e,n){let{$head:A}=e.selection;if(!A.parent.isTextblock)return!1;let o=A.parentOffset,s=!o,a=o==A.parent.content.size,l=r.domSelection();return l?!maybeRTL.test(A.parent.textContent)||!l.modify?n=="left"||n=="backward"?s:a:withFlushedState(r,e,()=>{let{focusNode:c,focusOffset:g,anchorNode:h,anchorOffset:d}=r.domSelectionRange(),u=l.caretBidiLevel;l.modify("move",n,"character");let f=A.depth?r.docView.domAfterPos(A.before()):r.dom,{focusNode:I,focusOffset:p}=r.domSelectionRange(),m=I&&!f.contains(I.nodeType==1?I:I.parentNode)||c==I&&g==p;try{l.collapse(h,d),c&&(c!=h||g!=d)&&l.extend&&l.extend(c,g)}catch{}return u!=null&&(l.caretBidiLevel=u),m}):A.pos==A.start()||A.pos==A.end()}let cachedState=null,cachedDir=null,cachedResult=!1;function endOfTextblock(r,e,n){return cachedState==e&&cachedDir==n?cachedResult:(cachedState=e,cachedDir=n,cachedResult=n=="up"||n=="down"?endOfTextblockVertical(r,e,n):endOfTextblockHorizontal(r,e,n))}const NOT_DIRTY=0,CHILD_DIRTY=1,CONTENT_DIRTY=2,NODE_DIRTY=3;class ViewDesc{constructor(e,n,A,o){this.parent=e,this.children=n,this.dom=A,this.contentDOM=o,this.dirty=NOT_DIRTY,A.pmViewDesc=this}matchesWidget(e){return!1}matchesMark(e){return!1}matchesNode(e,n,A){return!1}matchesHack(e){return!1}parseRule(){return null}stopEvent(e){return!1}get size(){let e=0;for(let n=0;n<this.children.length;n++)e+=this.children[n].size;return e}get border(){return 0}destroy(){this.parent=void 0,this.dom.pmViewDesc==this&&(this.dom.pmViewDesc=void 0);for(let e=0;e<this.children.length;e++)this.children[e].destroy()}posBeforeChild(e){for(let n=0,A=this.posAtStart;;n++){let o=this.children[n];if(o==e)return A;A+=o.size}}get posBefore(){return this.parent.posBeforeChild(this)}get posAtStart(){return this.parent?this.parent.posBeforeChild(this)+this.border:0}get posAfter(){return this.posBefore+this.size}get posAtEnd(){return this.posAtStart+this.size-2*this.border}localPosFromDOM(e,n,A){if(this.contentDOM&&this.contentDOM.contains(e.nodeType==1?e:e.parentNode))if(A<0){let s,a;if(e==this.contentDOM)s=e.childNodes[n-1];else{for(;e.parentNode!=this.contentDOM;)e=e.parentNode;s=e.previousSibling}for(;s&&!((a=s.pmViewDesc)&&a.parent==this);)s=s.previousSibling;return s?this.posBeforeChild(a)+a.size:this.posAtStart}else{let s,a;if(e==this.contentDOM)s=e.childNodes[n];else{for(;e.parentNode!=this.contentDOM;)e=e.parentNode;s=e.nextSibling}for(;s&&!((a=s.pmViewDesc)&&a.parent==this);)s=s.nextSibling;return s?this.posBeforeChild(a):this.posAtEnd}let o;if(e==this.dom&&this.contentDOM)o=n>domIndex$1(this.contentDOM);else if(this.contentDOM&&this.contentDOM!=this.dom&&this.dom.contains(this.contentDOM))o=e.compareDocumentPosition(this.contentDOM)&2;else if(this.dom.firstChild){if(n==0)for(let s=e;;s=s.parentNode){if(s==this.dom){o=!1;break}if(s.previousSibling)break}if(o==null&&n==e.childNodes.length)for(let s=e;;s=s.parentNode){if(s==this.dom){o=!0;break}if(s.nextSibling)break}}return o??A>0?this.posAtEnd:this.posAtStart}nearestDesc(e,n=!1){for(let A=!0,o=e;o;o=o.parentNode){let s=this.getDesc(o),a;if(s&&(!n||s.node))if(A&&(a=s.nodeDOM)&&!(a.nodeType==1?a.contains(e.nodeType==1?e:e.parentNode):a==e))A=!1;else return s}}getDesc(e){let n=e.pmViewDesc;for(let A=n;A;A=A.parent)if(A==this)return n}posFromDOM(e,n,A){for(let o=e;o;o=o.parentNode){let s=this.getDesc(o);if(s)return s.localPosFromDOM(e,n,A)}return-1}descAt(e){for(let n=0,A=0;n<this.children.length;n++){let o=this.children[n],s=A+o.size;if(A==e&&s!=A){for(;!o.border&&o.children.length;)for(let a=0;a<o.children.length;a++){let l=o.children[a];if(l.size){o=l;break}}return o}if(e<s)return o.descAt(e-A-o.border);A=s}}domFromPos(e,n){if(!this.contentDOM)return{node:this.dom,offset:0,atom:e+1};let A=0,o=0;for(let s=0;A<this.children.length;A++){let a=this.children[A],l=s+a.size;if(l>e||a instanceof TrailingHackViewDesc){o=e-s;break}s=l}if(o)return this.children[A].domFromPos(o-this.children[A].border,n);for(let s;A&&!(s=this.children[A-1]).size&&s instanceof WidgetViewDesc&&s.side>=0;A--);if(n<=0){let s,a=!0;for(;s=A?this.children[A-1]:null,!(!s||s.dom.parentNode==this.contentDOM);A--,a=!1);return s&&n&&a&&!s.border&&!s.domAtom?s.domFromPos(s.size,n):{node:this.contentDOM,offset:s?domIndex$1(s.dom)+1:0}}else{let s,a=!0;for(;s=A<this.children.length?this.children[A]:null,!(!s||s.dom.parentNode==this.contentDOM);A++,a=!1);return s&&a&&!s.border&&!s.domAtom?s.domFromPos(0,n):{node:this.contentDOM,offset:s?domIndex$1(s.dom):this.contentDOM.childNodes.length}}}parseRange(e,n,A=0){if(this.children.length==0)return{node:this.contentDOM,from:e,to:n,fromOffset:0,toOffset:this.contentDOM.childNodes.length};let o=-1,s=-1;for(let a=A,l=0;;l++){let c=this.children[l],g=a+c.size;if(o==-1&&e<=g){let h=a+c.border;if(e>=h&&n<=g-c.border&&c.node&&c.contentDOM&&this.contentDOM.contains(c.contentDOM))return c.parseRange(e,n,h);e=a;for(let d=l;d>0;d--){let u=this.children[d-1];if(u.size&&u.dom.parentNode==this.contentDOM&&!u.emptyChildAt(1)){o=domIndex$1(u.dom)+1;break}e-=u.size}o==-1&&(o=0)}if(o>-1&&(g>n||l==this.children.length-1)){n=g;for(let h=l+1;h<this.children.length;h++){let d=this.children[h];if(d.size&&d.dom.parentNode==this.contentDOM&&!d.emptyChildAt(-1)){s=domIndex$1(d.dom);break}n+=d.size}s==-1&&(s=this.contentDOM.childNodes.length);break}a=g}return{node:this.contentDOM,from:e,to:n,fromOffset:o,toOffset:s}}emptyChildAt(e){if(this.border||!this.contentDOM||!this.children.length)return!1;let n=this.children[e<0?0:this.children.length-1];return n.size==0||n.emptyChildAt(e)}domAfterPos(e){let{node:n,offset:A}=this.domFromPos(e,0);if(n.nodeType!=1||A==n.childNodes.length)throw new RangeError("No node after pos "+e);return n.childNodes[A]}setSelection(e,n,A,o=!1){let s=Math.min(e,n),a=Math.max(e,n);for(let f=0,I=0;f<this.children.length;f++){let p=this.children[f],m=I+p.size;if(s>I&&a<m)return p.setSelection(e-I-p.border,n-I-p.border,A,o);I=m}let l=this.domFromPos(e,e?-1:1),c=n==e?l:this.domFromPos(n,n?-1:1),g=A.root.getSelection(),h=A.domSelectionRange(),d=!1;if((gecko$1||safari$1)&&e==n){let{node:f,offset:I}=l;if(f.nodeType==3){if(d=!!(I&&f.nodeValue[I-1]==`
6
+ `),d&&I==f.nodeValue.length)for(let p=f,m;p;p=p.parentNode){if(m=p.nextSibling){m.nodeName=="BR"&&(l=c={node:m.parentNode,offset:domIndex$1(m)+1});break}let E=p.pmViewDesc;if(E&&E.node&&E.node.isBlock)break}}else{let p=f.childNodes[I-1];d=p&&(p.nodeName=="BR"||p.contentEditable=="false")}}if(gecko$1&&h.focusNode&&h.focusNode!=c.node&&h.focusNode.nodeType==1){let f=h.focusNode.childNodes[h.focusOffset];f&&f.contentEditable=="false"&&(o=!0)}if(!(o||d&&safari$1)&&isEquivalentPosition$1(l.node,l.offset,h.anchorNode,h.anchorOffset)&&isEquivalentPosition$1(c.node,c.offset,h.focusNode,h.focusOffset))return;let u=!1;if((g.extend||e==n)&&!d){g.collapse(l.node,l.offset);try{e!=n&&g.extend(c.node,c.offset),u=!0}catch{}}if(!u){if(e>n){let I=l;l=c,c=I}let f=document.createRange();f.setEnd(c.node,c.offset),f.setStart(l.node,l.offset),g.removeAllRanges(),g.addRange(f)}}ignoreMutation(e){return!this.contentDOM&&e.type!="selection"}get contentLost(){return this.contentDOM&&this.contentDOM!=this.dom&&!this.dom.contains(this.contentDOM)}markDirty(e,n){for(let A=0,o=0;o<this.children.length;o++){let s=this.children[o],a=A+s.size;if(A==a?e<=a&&n>=A:e<a&&n>A){let l=A+s.border,c=a-s.border;if(e>=l&&n<=c){this.dirty=e==A||n==a?CONTENT_DIRTY:CHILD_DIRTY,e==l&&n==c&&(s.contentLost||s.dom.parentNode!=this.contentDOM)?s.dirty=NODE_DIRTY:s.markDirty(e-l,n-l);return}else s.dirty=s.dom==s.contentDOM&&s.dom.parentNode==this.contentDOM&&!s.children.length?CONTENT_DIRTY:NODE_DIRTY}A=a}this.dirty=CONTENT_DIRTY}markParentsDirty(){let e=1;for(let n=this.parent;n;n=n.parent,e++){let A=e==1?CONTENT_DIRTY:CHILD_DIRTY;n.dirty<A&&(n.dirty=A)}}get domAtom(){return!1}get ignoreForCoords(){return!1}get ignoreForSelection(){return!1}isText(e){return!1}}class WidgetViewDesc extends ViewDesc{constructor(e,n,A,o){let s,a=n.type.toDOM;if(typeof a=="function"&&(a=a(A,()=>{if(!s)return o;if(s.parent)return s.parent.posBeforeChild(s)})),!n.type.spec.raw){if(a.nodeType!=1){let l=document.createElement("span");l.appendChild(a),a=l}a.contentEditable="false",a.classList.add("ProseMirror-widget")}super(e,[],a,null),this.widget=n,this.widget=n,s=this}matchesWidget(e){return this.dirty==NOT_DIRTY&&e.type.eq(this.widget.type)}parseRule(){return{ignore:!0}}stopEvent(e){let n=this.widget.spec.stopEvent;return n?n(e):!1}ignoreMutation(e){return e.type!="selection"||this.widget.spec.ignoreSelection}destroy(){this.widget.type.destroy(this.dom),super.destroy()}get domAtom(){return!0}get ignoreForSelection(){return!!this.widget.type.spec.relaxedSide}get side(){return this.widget.type.side}}class CompositionViewDesc extends ViewDesc{constructor(e,n,A,o){super(e,[],n,null),this.textDOM=A,this.text=o}get size(){return this.text.length}localPosFromDOM(e,n){return e!=this.textDOM?this.posAtStart+(n?this.size:0):this.posAtStart+n}domFromPos(e){return{node:this.textDOM,offset:e}}ignoreMutation(e){return e.type==="characterData"&&e.target.nodeValue==e.oldValue}}class MarkViewDesc extends ViewDesc{constructor(e,n,A,o,s){super(e,[],A,o),this.mark=n,this.spec=s}static create(e,n,A,o){let s=o.nodeViews[n.type.name],a=s&&s(n,o,A);return(!a||!a.dom)&&(a=DOMSerializer.renderSpec(document,n.type.spec.toDOM(n,A),null,n.attrs)),new MarkViewDesc(e,n,a.dom,a.contentDOM||a.dom,a)}parseRule(){return this.dirty&NODE_DIRTY||this.mark.type.spec.reparseInView?null:{mark:this.mark.type.name,attrs:this.mark.attrs,contentElement:this.contentDOM}}matchesMark(e){return this.dirty!=NODE_DIRTY&&this.mark.eq(e)}markDirty(e,n){if(super.markDirty(e,n),this.dirty!=NOT_DIRTY){let A=this.parent;for(;!A.node;)A=A.parent;A.dirty<this.dirty&&(A.dirty=this.dirty),this.dirty=NOT_DIRTY}}slice(e,n,A){let o=MarkViewDesc.create(this.parent,this.mark,!0,A),s=this.children,a=this.size;n<a&&(s=replaceNodes(s,n,a,A)),e>0&&(s=replaceNodes(s,0,e,A));for(let l=0;l<s.length;l++)s[l].parent=o;return o.children=s,o}ignoreMutation(e){return this.spec.ignoreMutation?this.spec.ignoreMutation(e):super.ignoreMutation(e)}destroy(){this.spec.destroy&&this.spec.destroy(),super.destroy()}}class NodeViewDesc extends ViewDesc{constructor(e,n,A,o,s,a,l,c,g){super(e,[],s,a),this.node=n,this.outerDeco=A,this.innerDeco=o,this.nodeDOM=l}static create(e,n,A,o,s,a){let l=s.nodeViews[n.type.name],c,g=l&&l(n,s,()=>{if(!c)return a;if(c.parent)return c.parent.posBeforeChild(c)},A,o),h=g&&g.dom,d=g&&g.contentDOM;if(n.isText){if(!h)h=document.createTextNode(n.text);else if(h.nodeType!=3)throw new RangeError("Text must be rendered as a DOM text node")}else h||({dom:h,contentDOM:d}=DOMSerializer.renderSpec(document,n.type.spec.toDOM(n),null,n.attrs));!d&&!n.isText&&h.nodeName!="BR"&&(h.hasAttribute("contenteditable")||(h.contentEditable="false"),n.type.spec.draggable&&(h.draggable=!0));let u=h;return h=applyOuterDeco(h,A,n),g?c=new CustomNodeViewDesc(e,n,A,o,h,d||null,u,g,s,a+1):n.isText?new TextViewDesc(e,n,A,o,h,u,s):new NodeViewDesc(e,n,A,o,h,d||null,u,s,a+1)}parseRule(){if(this.node.type.spec.reparseInView)return null;let e={node:this.node.type.name,attrs:this.node.attrs};if(this.node.type.whitespace=="pre"&&(e.preserveWhitespace="full"),!this.contentDOM)e.getContent=()=>this.node.content;else if(!this.contentLost)e.contentElement=this.contentDOM;else{for(let n=this.children.length-1;n>=0;n--){let A=this.children[n];if(this.dom.contains(A.dom.parentNode)){e.contentElement=A.dom.parentNode;break}}e.contentElement||(e.getContent=()=>Fragment.empty)}return e}matchesNode(e,n,A){return this.dirty==NOT_DIRTY&&e.eq(this.node)&&sameOuterDeco(n,this.outerDeco)&&A.eq(this.innerDeco)}get size(){return this.node.nodeSize}get border(){return this.node.isLeaf?0:1}updateChildren(e,n){let A=this.node.inlineContent,o=n,s=e.composing?this.localCompositionInfo(e,n):null,a=s&&s.pos>-1?s:null,l=s&&s.pos<0,c=new ViewTreeUpdater(this,a&&a.node,e);iterDeco(this.node,this.innerDeco,(g,h,d)=>{g.spec.marks?c.syncToMarks(g.spec.marks,A,e):g.type.side>=0&&!d&&c.syncToMarks(h==this.node.childCount?Mark$1.none:this.node.child(h).marks,A,e),c.placeWidget(g,e,o)},(g,h,d,u)=>{c.syncToMarks(g.marks,A,e);let f;c.findNodeMatch(g,h,d,u)||l&&e.state.selection.from>o&&e.state.selection.to<o+g.nodeSize&&(f=c.findIndexWithChild(s.node))>-1&&c.updateNodeAt(g,h,d,f,e)||c.updateNextNode(g,h,d,e,u,o)||c.addNode(g,h,d,e,o),o+=g.nodeSize}),c.syncToMarks([],A,e),this.node.isTextblock&&c.addTextblockHacks(),c.destroyRest(),(c.changed||this.dirty==CONTENT_DIRTY)&&(a&&this.protectLocalComposition(e,a),renderDescs(this.contentDOM,this.children,e),ios$1&&iosHacks(this.dom))}localCompositionInfo(e,n){let{from:A,to:o}=e.state.selection;if(!(e.state.selection instanceof TextSelection)||A<n||o>n+this.node.content.size)return null;let s=e.input.compositionNode;if(!s||!this.dom.contains(s.parentNode))return null;if(this.node.inlineContent){let a=s.nodeValue,l=findTextInFragment(this.node.content,a,A-n,o-n);return l<0?null:{node:s,pos:l,text:a}}else return{node:s,pos:-1,text:""}}protectLocalComposition(e,{node:n,pos:A,text:o}){if(this.getDesc(n))return;let s=n;for(;s.parentNode!=this.contentDOM;s=s.parentNode){for(;s.previousSibling;)s.parentNode.removeChild(s.previousSibling);for(;s.nextSibling;)s.parentNode.removeChild(s.nextSibling);s.pmViewDesc&&(s.pmViewDesc=void 0)}let a=new CompositionViewDesc(this,s,n,o);e.input.compositionNodes.push(a),this.children=replaceNodes(this.children,A,A+o.length,e,a)}update(e,n,A,o){return this.dirty==NODE_DIRTY||!e.sameMarkup(this.node)?!1:(this.updateInner(e,n,A,o),!0)}updateInner(e,n,A,o){this.updateOuterDeco(n),this.node=e,this.innerDeco=A,this.contentDOM&&this.updateChildren(o,this.posAtStart),this.dirty=NOT_DIRTY}updateOuterDeco(e){if(sameOuterDeco(e,this.outerDeco))return;let n=this.nodeDOM.nodeType!=1,A=this.dom;this.dom=patchOuterDeco(this.dom,this.nodeDOM,computeOuterDeco(this.outerDeco,this.node,n),computeOuterDeco(e,this.node,n)),this.dom!=A&&(A.pmViewDesc=void 0,this.dom.pmViewDesc=this),this.outerDeco=e}selectNode(){this.nodeDOM.nodeType==1&&this.nodeDOM.classList.add("ProseMirror-selectednode"),(this.contentDOM||!this.node.type.spec.draggable)&&(this.dom.draggable=!0)}deselectNode(){this.nodeDOM.nodeType==1&&(this.nodeDOM.classList.remove("ProseMirror-selectednode"),(this.contentDOM||!this.node.type.spec.draggable)&&this.dom.removeAttribute("draggable"))}get domAtom(){return this.node.isAtom}}function docViewDesc(r,e,n,A,o){applyOuterDeco(A,e,r);let s=new NodeViewDesc(void 0,r,e,n,A,A,A,o,0);return s.contentDOM&&s.updateChildren(o,0),s}class TextViewDesc extends NodeViewDesc{constructor(e,n,A,o,s,a,l){super(e,n,A,o,s,null,a,l,0)}parseRule(){let e=this.nodeDOM.parentNode;for(;e&&e!=this.dom&&!e.pmIsDeco;)e=e.parentNode;return{skip:e||!0}}update(e,n,A,o){return this.dirty==NODE_DIRTY||this.dirty!=NOT_DIRTY&&!this.inParent()||!e.sameMarkup(this.node)?!1:(this.updateOuterDeco(n),(this.dirty!=NOT_DIRTY||e.text!=this.node.text)&&e.text!=this.nodeDOM.nodeValue&&(this.nodeDOM.nodeValue=e.text,o.trackWrites==this.nodeDOM&&(o.trackWrites=null)),this.node=e,this.dirty=NOT_DIRTY,!0)}inParent(){let e=this.parent.contentDOM;for(let n=this.nodeDOM;n;n=n.parentNode)if(n==e)return!0;return!1}domFromPos(e){return{node:this.nodeDOM,offset:e}}localPosFromDOM(e,n,A){return e==this.nodeDOM?this.posAtStart+Math.min(n,this.node.text.length):super.localPosFromDOM(e,n,A)}ignoreMutation(e){return e.type!="characterData"&&e.type!="selection"}slice(e,n,A){let o=this.node.cut(e,n),s=document.createTextNode(o.text);return new TextViewDesc(this.parent,o,this.outerDeco,this.innerDeco,s,s,A)}markDirty(e,n){super.markDirty(e,n),this.dom!=this.nodeDOM&&(e==0||n==this.nodeDOM.nodeValue.length)&&(this.dirty=NODE_DIRTY)}get domAtom(){return!1}isText(e){return this.node.text==e}}class TrailingHackViewDesc extends ViewDesc{parseRule(){return{ignore:!0}}matchesHack(e){return this.dirty==NOT_DIRTY&&this.dom.nodeName==e}get domAtom(){return!0}get ignoreForCoords(){return this.dom.nodeName=="IMG"}}class CustomNodeViewDesc extends NodeViewDesc{constructor(e,n,A,o,s,a,l,c,g,h){super(e,n,A,o,s,a,l,g,h),this.spec=c}update(e,n,A,o){if(this.dirty==NODE_DIRTY)return!1;if(this.spec.update&&(this.node.type==e.type||this.spec.multiType)){let s=this.spec.update(e,n,A);return s&&this.updateInner(e,n,A,o),s}else return!this.contentDOM&&!e.isLeaf?!1:super.update(e,n,A,o)}selectNode(){this.spec.selectNode?this.spec.selectNode():super.selectNode()}deselectNode(){this.spec.deselectNode?this.spec.deselectNode():super.deselectNode()}setSelection(e,n,A,o){this.spec.setSelection?this.spec.setSelection(e,n,A.root):super.setSelection(e,n,A,o)}destroy(){this.spec.destroy&&this.spec.destroy(),super.destroy()}stopEvent(e){return this.spec.stopEvent?this.spec.stopEvent(e):!1}ignoreMutation(e){return this.spec.ignoreMutation?this.spec.ignoreMutation(e):super.ignoreMutation(e)}}function renderDescs(r,e,n){let A=r.firstChild,o=!1;for(let s=0;s<e.length;s++){let a=e[s],l=a.dom;if(l.parentNode==r){for(;l!=A;)A=rm(A),o=!0;A=A.nextSibling}else o=!0,r.insertBefore(l,A);if(a instanceof MarkViewDesc){let c=A?A.previousSibling:r.lastChild;renderDescs(a.contentDOM,a.children,n),A=c?c.nextSibling:r.firstChild}}for(;A;)A=rm(A),o=!0;o&&n.trackWrites==r&&(n.trackWrites=null)}const OuterDecoLevel=function(r){r&&(this.nodeName=r)};OuterDecoLevel.prototype=Object.create(null);const noDeco=[new OuterDecoLevel];function computeOuterDeco(r,e,n){if(r.length==0)return noDeco;let A=n?noDeco[0]:new OuterDecoLevel,o=[A];for(let s=0;s<r.length;s++){let a=r[s].type.attrs;if(a){a.nodeName&&o.push(A=new OuterDecoLevel(a.nodeName));for(let l in a){let c=a[l];c!=null&&(n&&o.length==1&&o.push(A=new OuterDecoLevel(e.isInline?"span":"div")),l=="class"?A.class=(A.class?A.class+" ":"")+c:l=="style"?A.style=(A.style?A.style+";":"")+c:l!="nodeName"&&(A[l]=c))}}}return o}function patchOuterDeco(r,e,n,A){if(n==noDeco&&A==noDeco)return e;let o=e;for(let s=0;s<A.length;s++){let a=A[s],l=n[s];if(s){let c;l&&l.nodeName==a.nodeName&&o!=r&&(c=o.parentNode)&&c.nodeName.toLowerCase()==a.nodeName||(c=document.createElement(a.nodeName),c.pmIsDeco=!0,c.appendChild(o),l=noDeco[0]),o=c}patchAttributes(o,l||noDeco[0],a)}return o}function patchAttributes(r,e,n){for(let A in e)A!="class"&&A!="style"&&A!="nodeName"&&!(A in n)&&r.removeAttribute(A);for(let A in n)A!="class"&&A!="style"&&A!="nodeName"&&n[A]!=e[A]&&r.setAttribute(A,n[A]);if(e.class!=n.class){let A=e.class?e.class.split(" ").filter(Boolean):[],o=n.class?n.class.split(" ").filter(Boolean):[];for(let s=0;s<A.length;s++)o.indexOf(A[s])==-1&&r.classList.remove(A[s]);for(let s=0;s<o.length;s++)A.indexOf(o[s])==-1&&r.classList.add(o[s]);r.classList.length==0&&r.removeAttribute("class")}if(e.style!=n.style){if(e.style){let A=/\s*([\w\-\xa1-\uffff]+)\s*:(?:"(?:\\.|[^"])*"|'(?:\\.|[^'])*'|\(.*?\)|[^;])*/g,o;for(;o=A.exec(e.style);)r.style.removeProperty(o[1])}n.style&&(r.style.cssText+=n.style)}}function applyOuterDeco(r,e,n){return patchOuterDeco(r,r,noDeco,computeOuterDeco(e,n,r.nodeType!=1))}function sameOuterDeco(r,e){if(r.length!=e.length)return!1;for(let n=0;n<r.length;n++)if(!r[n].type.eq(e[n].type))return!1;return!0}function rm(r){let e=r.nextSibling;return r.parentNode.removeChild(r),e}class ViewTreeUpdater{constructor(e,n,A){this.lock=n,this.view=A,this.index=0,this.stack=[],this.changed=!1,this.top=e,this.preMatch=preMatch(e.node.content,e)}destroyBetween(e,n){if(e!=n){for(let A=e;A<n;A++)this.top.children[A].destroy();this.top.children.splice(e,n-e),this.changed=!0}}destroyRest(){this.destroyBetween(this.index,this.top.children.length)}syncToMarks(e,n,A){let o=0,s=this.stack.length>>1,a=Math.min(s,e.length);for(;o<a&&(o==s-1?this.top:this.stack[o+1<<1]).matchesMark(e[o])&&e[o].type.spec.spanning!==!1;)o++;for(;o<s;)this.destroyRest(),this.top.dirty=NOT_DIRTY,this.index=this.stack.pop(),this.top=this.stack.pop(),s--;for(;s<e.length;){this.stack.push(this.top,this.index+1);let l=-1;for(let c=this.index;c<Math.min(this.index+3,this.top.children.length);c++){let g=this.top.children[c];if(g.matchesMark(e[s])&&!this.isLocked(g.dom)){l=c;break}}if(l>-1)l>this.index&&(this.changed=!0,this.destroyBetween(this.index,l)),this.top=this.top.children[this.index];else{let c=MarkViewDesc.create(this.top,e[s],n,A);this.top.children.splice(this.index,0,c),this.top=c,this.changed=!0}this.index=0,s++}}findNodeMatch(e,n,A,o){let s=-1,a;if(o>=this.preMatch.index&&(a=this.preMatch.matches[o-this.preMatch.index]).parent==this.top&&a.matchesNode(e,n,A))s=this.top.children.indexOf(a,this.index);else for(let l=this.index,c=Math.min(this.top.children.length,l+5);l<c;l++){let g=this.top.children[l];if(g.matchesNode(e,n,A)&&!this.preMatch.matched.has(g)){s=l;break}}return s<0?!1:(this.destroyBetween(this.index,s),this.index++,!0)}updateNodeAt(e,n,A,o,s){let a=this.top.children[o];return a.dirty==NODE_DIRTY&&a.dom==a.contentDOM&&(a.dirty=CONTENT_DIRTY),a.update(e,n,A,s)?(this.destroyBetween(this.index,o),this.index++,!0):!1}findIndexWithChild(e){for(;;){let n=e.parentNode;if(!n)return-1;if(n==this.top.contentDOM){let A=e.pmViewDesc;if(A){for(let o=this.index;o<this.top.children.length;o++)if(this.top.children[o]==A)return o}return-1}e=n}}updateNextNode(e,n,A,o,s,a){for(let l=this.index;l<this.top.children.length;l++){let c=this.top.children[l];if(c instanceof NodeViewDesc){let g=this.preMatch.matched.get(c);if(g!=null&&g!=s)return!1;let h=c.dom,d,u=this.isLocked(h)&&!(e.isText&&c.node&&c.node.isText&&c.nodeDOM.nodeValue==e.text&&c.dirty!=NODE_DIRTY&&sameOuterDeco(n,c.outerDeco));if(!u&&c.update(e,n,A,o))return this.destroyBetween(this.index,l),c.dom!=h&&(this.changed=!0),this.index++,!0;if(!u&&(d=this.recreateWrapper(c,e,n,A,o,a)))return this.destroyBetween(this.index,l),this.top.children[this.index]=d,d.contentDOM&&(d.dirty=CONTENT_DIRTY,d.updateChildren(o,a+1),d.dirty=NOT_DIRTY),this.changed=!0,this.index++,!0;break}}return!1}recreateWrapper(e,n,A,o,s,a){if(e.dirty||n.isAtom||!e.children.length||!e.node.content.eq(n.content)||!sameOuterDeco(A,e.outerDeco)||!o.eq(e.innerDeco))return null;let l=NodeViewDesc.create(this.top,n,A,o,s,a);if(l.contentDOM){l.children=e.children,e.children=[];for(let c of l.children)c.parent=l}return e.destroy(),l}addNode(e,n,A,o,s){let a=NodeViewDesc.create(this.top,e,n,A,o,s);a.contentDOM&&a.updateChildren(o,s+1),this.top.children.splice(this.index++,0,a),this.changed=!0}placeWidget(e,n,A){let o=this.index<this.top.children.length?this.top.children[this.index]:null;if(o&&o.matchesWidget(e)&&(e==o.widget||!o.widget.type.toDOM.parentNode))this.index++;else{let s=new WidgetViewDesc(this.top,e,n,A);this.top.children.splice(this.index++,0,s),this.changed=!0}}addTextblockHacks(){let e=this.top.children[this.index-1],n=this.top;for(;e instanceof MarkViewDesc;)n=e,e=n.children[n.children.length-1];(!e||!(e instanceof TextViewDesc)||/\n$/.test(e.node.text)||this.view.requiresGeckoHackNode&&/\s$/.test(e.node.text))&&((safari$1||chrome$1)&&e&&e.dom.contentEditable=="false"&&this.addHackNode("IMG",n),this.addHackNode("BR",this.top))}addHackNode(e,n){if(n==this.top&&this.index<n.children.length&&n.children[this.index].matchesHack(e))this.index++;else{let A=document.createElement(e);e=="IMG"&&(A.className="ProseMirror-separator",A.alt=""),e=="BR"&&(A.className="ProseMirror-trailingBreak");let o=new TrailingHackViewDesc(this.top,[],A,null);n!=this.top?n.children.push(o):n.children.splice(this.index++,0,o),this.changed=!0}}isLocked(e){return this.lock&&(e==this.lock||e.nodeType==1&&e.contains(this.lock.parentNode))}}function preMatch(r,e){let n=e,A=n.children.length,o=r.childCount,s=new Map,a=[];e:for(;o>0;){let l;for(;;)if(A){let g=n.children[A-1];if(g instanceof MarkViewDesc)n=g,A=g.children.length;else{l=g,A--;break}}else{if(n==e)break e;A=n.parent.children.indexOf(n),n=n.parent}let c=l.node;if(c){if(c!=r.child(o-1))break;--o,s.set(l,o),a.push(l)}}return{index:o,matched:s,matches:a.reverse()}}function compareSide(r,e){return r.type.side-e.type.side}function iterDeco(r,e,n,A){let o=e.locals(r),s=0;if(o.length==0){for(let g=0;g<r.childCount;g++){let h=r.child(g);A(h,o,e.forChild(s,h),g),s+=h.nodeSize}return}let a=0,l=[],c=null;for(let g=0;;){let h,d;for(;a<o.length&&o[a].to==s;){let m=o[a++];m.widget&&(h?(d||(d=[h])).push(m):h=m)}if(h)if(d){d.sort(compareSide);for(let m=0;m<d.length;m++)n(d[m],g,!!c)}else n(h,g,!!c);let u,f;if(c)f=-1,u=c,c=null;else if(g<r.childCount)f=g,u=r.child(g++);else break;for(let m=0;m<l.length;m++)l[m].to<=s&&l.splice(m--,1);for(;a<o.length&&o[a].from<=s&&o[a].to>s;)l.push(o[a++]);let I=s+u.nodeSize;if(u.isText){let m=I;a<o.length&&o[a].from<m&&(m=o[a].from);for(let E=0;E<l.length;E++)l[E].to<m&&(m=l[E].to);m<I&&(c=u.cut(m-s),u=u.cut(0,m-s),I=m,f=-1)}else for(;a<o.length&&o[a].to<I;)a++;let p=u.isInline&&!u.isLeaf?l.filter(m=>!m.inline):l.slice();A(u,p,e.forChild(s,u),f),s=I}}function iosHacks(r){if(r.nodeName=="UL"||r.nodeName=="OL"){let e=r.style.cssText;r.style.cssText=e+"; list-style: square !important",window.getComputedStyle(r).listStyle,r.style.cssText=e}}function findTextInFragment(r,e,n,A){for(let o=0,s=0;o<r.childCount&&s<=A;){let a=r.child(o++),l=s;if(s+=a.nodeSize,!a.isText)continue;let c=a.text;for(;o<r.childCount;){let g=r.child(o++);if(s+=g.nodeSize,!g.isText)break;c+=g.text}if(s>=n){if(s>=A&&c.slice(A-e.length-l,A-l)==e)return A-e.length;let g=l<A?c.lastIndexOf(e,A-l-1):-1;if(g>=0&&g+e.length+l>=n)return l+g;if(n==A&&c.length>=A+e.length-l&&c.slice(A-l,A-l+e.length)==e)return A}}return-1}function replaceNodes(r,e,n,A,o){let s=[];for(let a=0,l=0;a<r.length;a++){let c=r[a],g=l,h=l+=c.size;g>=n||h<=e?s.push(c):(g<e&&s.push(c.slice(0,e-g,A)),o&&(s.push(o),o=void 0),h>n&&s.push(c.slice(n-g,c.size,A)))}return s}function selectionFromDOM(r,e=null){let n=r.domSelectionRange(),A=r.state.doc;if(!n.focusNode)return null;let o=r.docView.nearestDesc(n.focusNode),s=o&&o.size==0,a=r.docView.posFromDOM(n.focusNode,n.focusOffset,1);if(a<0)return null;let l=A.resolve(a),c,g;if(selectionCollapsed(n)){for(c=a;o&&!o.node;)o=o.parent;let d=o.node;if(o&&d.isAtom&&NodeSelection.isSelectable(d)&&o.parent&&!(d.isInline&&isOnEdge(n.focusNode,n.focusOffset,o.dom))){let u=o.posBefore;g=new NodeSelection(a==u?l:A.resolve(u))}}else{if(n instanceof r.dom.ownerDocument.defaultView.Selection&&n.rangeCount>1){let d=a,u=a;for(let f=0;f<n.rangeCount;f++){let I=n.getRangeAt(f);d=Math.min(d,r.docView.posFromDOM(I.startContainer,I.startOffset,1)),u=Math.max(u,r.docView.posFromDOM(I.endContainer,I.endOffset,-1))}if(d<0)return null;[c,a]=u==r.state.selection.anchor?[u,d]:[d,u],l=A.resolve(a)}else c=r.docView.posFromDOM(n.anchorNode,n.anchorOffset,1);if(c<0)return null}let h=A.resolve(c);if(!g){let d=e=="pointer"||r.state.selection.head<l.pos&&!s?1:-1;g=selectionBetween(r,h,l,d)}return g}function editorOwnsSelection(r){return r.editable?r.hasFocus():hasSelection$1(r)&&document.activeElement&&document.activeElement.contains(r.dom)}function selectionToDOM(r,e=!1){let n=r.state.selection;if(syncNodeSelection(r,n),!!editorOwnsSelection(r)){if(!e&&r.input.mouseDown&&r.input.mouseDown.allowDefault&&chrome$1){let A=r.domSelectionRange(),o=r.domObserver.currentSelection;if(A.anchorNode&&o.anchorNode&&isEquivalentPosition$1(A.anchorNode,A.anchorOffset,o.anchorNode,o.anchorOffset)){r.input.mouseDown.delayedSelectionSync=!0,r.domObserver.setCurSelection();return}}if(r.domObserver.disconnectSelection(),r.cursorWrapper)selectCursorWrapper(r);else{let{anchor:A,head:o}=n,s,a;brokenSelectBetweenUneditable&&!(n instanceof TextSelection)&&(n.$from.parent.inlineContent||(s=temporarilyEditableNear(r,n.from)),!n.empty&&!n.$from.parent.inlineContent&&(a=temporarilyEditableNear(r,n.to))),r.docView.setSelection(A,o,r,e),brokenSelectBetweenUneditable&&(s&&resetEditable(s),a&&resetEditable(a)),n.visible?r.dom.classList.remove("ProseMirror-hideselection"):(r.dom.classList.add("ProseMirror-hideselection"),"onselectionchange"in document&&removeClassOnSelectionChange(r))}r.domObserver.setCurSelection(),r.domObserver.connectSelection()}}const brokenSelectBetweenUneditable=safari$1||chrome$1&&chrome_version<63;function temporarilyEditableNear(r,e){let{node:n,offset:A}=r.docView.domFromPos(e,0),o=A<n.childNodes.length?n.childNodes[A]:null,s=A?n.childNodes[A-1]:null;if(safari$1&&o&&o.contentEditable=="false")return setEditable(o);if((!o||o.contentEditable=="false")&&(!s||s.contentEditable=="false")){if(o)return setEditable(o);if(s)return setEditable(s)}}function setEditable(r){return r.contentEditable="true",safari$1&&r.draggable&&(r.draggable=!1,r.wasDraggable=!0),r}function resetEditable(r){r.contentEditable="false",r.wasDraggable&&(r.draggable=!0,r.wasDraggable=null)}function removeClassOnSelectionChange(r){let e=r.dom.ownerDocument;e.removeEventListener("selectionchange",r.input.hideSelectionGuard);let n=r.domSelectionRange(),A=n.anchorNode,o=n.anchorOffset;e.addEventListener("selectionchange",r.input.hideSelectionGuard=()=>{(n.anchorNode!=A||n.anchorOffset!=o)&&(e.removeEventListener("selectionchange",r.input.hideSelectionGuard),setTimeout(()=>{(!editorOwnsSelection(r)||r.state.selection.visible)&&r.dom.classList.remove("ProseMirror-hideselection")},20))})}function selectCursorWrapper(r){let e=r.domSelection(),n=document.createRange();if(!e)return;let A=r.cursorWrapper.dom,o=A.nodeName=="IMG";o?n.setStart(A.parentNode,domIndex$1(A)+1):n.setStart(A,0),n.collapse(!0),e.removeAllRanges(),e.addRange(n),!o&&!r.state.selection.visible&&ie$3&&ie_version<=11&&(A.disabled=!0,A.disabled=!1)}function syncNodeSelection(r,e){if(e instanceof NodeSelection){let n=r.docView.descAt(e.from);n!=r.lastSelectedViewDesc&&(clearNodeSelection(r),n&&n.selectNode(),r.lastSelectedViewDesc=n)}else clearNodeSelection(r)}function clearNodeSelection(r){r.lastSelectedViewDesc&&(r.lastSelectedViewDesc.parent&&r.lastSelectedViewDesc.deselectNode(),r.lastSelectedViewDesc=void 0)}function selectionBetween(r,e,n,A){return r.someProp("createSelectionBetween",o=>o(r,e,n))||TextSelection.between(e,n,A)}function hasFocusAndSelection(r){return r.editable&&!r.hasFocus()?!1:hasSelection$1(r)}function hasSelection$1(r){let e=r.domSelectionRange();if(!e.anchorNode)return!1;try{return r.dom.contains(e.anchorNode.nodeType==3?e.anchorNode.parentNode:e.anchorNode)&&(r.editable||r.dom.contains(e.focusNode.nodeType==3?e.focusNode.parentNode:e.focusNode))}catch{return!1}}function anchorInRightPlace(r){let e=r.docView.domFromPos(r.state.selection.anchor,0),n=r.domSelectionRange();return isEquivalentPosition$1(e.node,e.offset,n.anchorNode,n.anchorOffset)}function moveSelectionBlock(r,e){let{$anchor:n,$head:A}=r.selection,o=e>0?n.max(A):n.min(A),s=o.parent.inlineContent?o.depth?r.doc.resolve(e>0?o.after():o.before()):null:o;return s&&Selection.findFrom(s,e)}function apply(r,e){return r.dispatch(r.state.tr.setSelection(e).scrollIntoView()),!0}function selectHorizontally(r,e,n){let A=r.state.selection;if(A instanceof TextSelection)if(n.indexOf("s")>-1){let{$head:o}=A,s=o.textOffset?null:e<0?o.nodeBefore:o.nodeAfter;if(!s||s.isText||!s.isLeaf)return!1;let a=r.state.doc.resolve(o.pos+s.nodeSize*(e<0?-1:1));return apply(r,new TextSelection(A.$anchor,a))}else if(A.empty){if(r.endOfTextblock(e>0?"forward":"backward")){let o=moveSelectionBlock(r.state,e);return o&&o instanceof NodeSelection?apply(r,o):!1}else if(!(mac$4&&n.indexOf("m")>-1)){let o=A.$head,s=o.textOffset?null:e<0?o.nodeBefore:o.nodeAfter,a;if(!s||s.isText)return!1;let l=e<0?o.pos-s.nodeSize:o.pos;return s.isAtom||(a=r.docView.descAt(l))&&!a.contentDOM?NodeSelection.isSelectable(s)?apply(r,new NodeSelection(e<0?r.state.doc.resolve(o.pos-s.nodeSize):o)):webkit$1?apply(r,new TextSelection(r.state.doc.resolve(e<0?l:l+s.nodeSize))):!1:!1}}else return!1;else{if(A instanceof NodeSelection&&A.node.isInline)return apply(r,new TextSelection(e>0?A.$to:A.$from));{let o=moveSelectionBlock(r.state,e);return o?apply(r,o):!1}}}function nodeLen(r){return r.nodeType==3?r.nodeValue.length:r.childNodes.length}function isIgnorable(r,e){let n=r.pmViewDesc;return n&&n.size==0&&(e<0||r.nextSibling||r.nodeName!="BR")}function skipIgnoredNodes(r,e){return e<0?skipIgnoredNodesBefore(r):skipIgnoredNodesAfter(r)}function skipIgnoredNodesBefore(r){let e=r.domSelectionRange(),n=e.focusNode,A=e.focusOffset;if(!n)return;let o,s,a=!1;for(gecko$1&&n.nodeType==1&&A<nodeLen(n)&&isIgnorable(n.childNodes[A],-1)&&(a=!0);;)if(A>0){if(n.nodeType!=1)break;{let l=n.childNodes[A-1];if(isIgnorable(l,-1))o=n,s=--A;else if(l.nodeType==3)n=l,A=n.nodeValue.length;else break}}else{if(isBlockNode(n))break;{let l=n.previousSibling;for(;l&&isIgnorable(l,-1);)o=n.parentNode,s=domIndex$1(l),l=l.previousSibling;if(l)n=l,A=nodeLen(n);else{if(n=n.parentNode,n==r.dom)break;A=0}}}a?setSelFocus(r,n,A):o&&setSelFocus(r,o,s)}function skipIgnoredNodesAfter(r){let e=r.domSelectionRange(),n=e.focusNode,A=e.focusOffset;if(!n)return;let o=nodeLen(n),s,a;for(;;)if(A<o){if(n.nodeType!=1)break;let l=n.childNodes[A];if(isIgnorable(l,1))s=n,a=++A;else break}else{if(isBlockNode(n))break;{let l=n.nextSibling;for(;l&&isIgnorable(l,1);)s=l.parentNode,a=domIndex$1(l)+1,l=l.nextSibling;if(l)n=l,A=0,o=nodeLen(n);else{if(n=n.parentNode,n==r.dom)break;A=o=0}}}s&&setSelFocus(r,s,a)}function isBlockNode(r){let e=r.pmViewDesc;return e&&e.node&&e.node.isBlock}function textNodeAfter$2(r,e){for(;r&&e==r.childNodes.length&&!hasBlockDesc(r);)e=domIndex$1(r)+1,r=r.parentNode;for(;r&&e<r.childNodes.length;){let n=r.childNodes[e];if(n.nodeType==3)return n;if(n.nodeType==1&&n.contentEditable=="false")break;r=n,e=0}}function textNodeBefore$2(r,e){for(;r&&!e&&!hasBlockDesc(r);)e=domIndex$1(r),r=r.parentNode;for(;r&&e;){let n=r.childNodes[e-1];if(n.nodeType==3)return n;if(n.nodeType==1&&n.contentEditable=="false")break;r=n,e=r.childNodes.length}}function setSelFocus(r,e,n){if(e.nodeType!=3){let s,a;(a=textNodeAfter$2(e,n))?(e=a,n=0):(s=textNodeBefore$2(e,n))&&(e=s,n=s.nodeValue.length)}let A=r.domSelection();if(!A)return;if(selectionCollapsed(A)){let s=document.createRange();s.setEnd(e,n),s.setStart(e,n),A.removeAllRanges(),A.addRange(s)}else A.extend&&A.extend(e,n);r.domObserver.setCurSelection();let{state:o}=r;setTimeout(()=>{r.state==o&&selectionToDOM(r)},50)}function findDirection(r,e){let n=r.state.doc.resolve(e);if(!(chrome$1||windows$2)&&n.parent.inlineContent){let o=r.coordsAtPos(e);if(e>n.start()){let s=r.coordsAtPos(e-1),a=(s.top+s.bottom)/2;if(a>o.top&&a<o.bottom&&Math.abs(s.left-o.left)>1)return s.left<o.left?"ltr":"rtl"}if(e<n.end()){let s=r.coordsAtPos(e+1),a=(s.top+s.bottom)/2;if(a>o.top&&a<o.bottom&&Math.abs(s.left-o.left)>1)return s.left>o.left?"ltr":"rtl"}}return getComputedStyle(r.dom).direction=="rtl"?"rtl":"ltr"}function selectVertically(r,e,n){let A=r.state.selection;if(A instanceof TextSelection&&!A.empty||n.indexOf("s")>-1||mac$4&&n.indexOf("m")>-1)return!1;let{$from:o,$to:s}=A;if(!o.parent.inlineContent||r.endOfTextblock(e<0?"up":"down")){let a=moveSelectionBlock(r.state,e);if(a&&a instanceof NodeSelection)return apply(r,a)}if(!o.parent.inlineContent){let a=e<0?o:s,l=A instanceof AllSelection?Selection.near(a,e):Selection.findFrom(a,e);return l?apply(r,l):!1}return!1}function stopNativeHorizontalDelete(r,e){if(!(r.state.selection instanceof TextSelection))return!0;let{$head:n,$anchor:A,empty:o}=r.state.selection;if(!n.sameParent(A))return!0;if(!o)return!1;if(r.endOfTextblock(e>0?"forward":"backward"))return!0;let s=!n.textOffset&&(e<0?n.nodeBefore:n.nodeAfter);if(s&&!s.isText){let a=r.state.tr;return e<0?a.delete(n.pos-s.nodeSize,n.pos):a.delete(n.pos,n.pos+s.nodeSize),r.dispatch(a),!0}return!1}function switchEditable(r,e,n){r.domObserver.stop(),e.contentEditable=n,r.domObserver.start()}function safariDownArrowBug(r){if(!safari$1||r.state.selection.$head.parentOffset>0)return!1;let{focusNode:e,focusOffset:n}=r.domSelectionRange();if(e&&e.nodeType==1&&n==0&&e.firstChild&&e.firstChild.contentEditable=="false"){let A=e.firstChild;switchEditable(r,A,"true"),setTimeout(()=>switchEditable(r,A,"false"),20)}return!1}function getMods(r){let e="";return r.ctrlKey&&(e+="c"),r.metaKey&&(e+="m"),r.altKey&&(e+="a"),r.shiftKey&&(e+="s"),e}function captureKeyDown(r,e){let n=e.keyCode,A=getMods(e);if(n==8||mac$4&&n==72&&A=="c")return stopNativeHorizontalDelete(r,-1)||skipIgnoredNodes(r,-1);if(n==46&&!e.shiftKey||mac$4&&n==68&&A=="c")return stopNativeHorizontalDelete(r,1)||skipIgnoredNodes(r,1);if(n==13||n==27)return!0;if(n==37||mac$4&&n==66&&A=="c"){let o=n==37?findDirection(r,r.state.selection.from)=="ltr"?-1:1:-1;return selectHorizontally(r,o,A)||skipIgnoredNodes(r,o)}else if(n==39||mac$4&&n==70&&A=="c"){let o=n==39?findDirection(r,r.state.selection.from)=="ltr"?1:-1:1;return selectHorizontally(r,o,A)||skipIgnoredNodes(r,o)}else{if(n==38||mac$4&&n==80&&A=="c")return selectVertically(r,-1,A)||skipIgnoredNodes(r,-1);if(n==40||mac$4&&n==78&&A=="c")return safariDownArrowBug(r)||selectVertically(r,1,A)||skipIgnoredNodes(r,1);if(A==(mac$4?"m":"c")&&(n==66||n==73||n==89||n==90))return!0}return!1}function serializeForClipboard(r,e){r.someProp("transformCopied",f=>{e=f(e,r)});let n=[],{content:A,openStart:o,openEnd:s}=e;for(;o>1&&s>1&&A.childCount==1&&A.firstChild.childCount==1;){o--,s--;let f=A.firstChild;n.push(f.type.name,f.attrs!=f.type.defaultAttrs?f.attrs:null),A=f.content}let a=r.someProp("clipboardSerializer")||DOMSerializer.fromSchema(r.state.schema),l=detachedDoc(),c=l.createElement("div");c.appendChild(a.serializeFragment(A,{document:l}));let g=c.firstChild,h,d=0;for(;g&&g.nodeType==1&&(h=wrapMap[g.nodeName.toLowerCase()]);){for(let f=h.length-1;f>=0;f--){let I=l.createElement(h[f]);for(;c.firstChild;)I.appendChild(c.firstChild);c.appendChild(I),d++}g=c.firstChild}g&&g.nodeType==1&&g.setAttribute("data-pm-slice",`${o} ${s}${d?` -${d}`:""} ${JSON.stringify(n)}`);let u=r.someProp("clipboardTextSerializer",f=>f(e,r))||e.content.textBetween(0,e.content.size,`
7
+
8
+ `);return{dom:c,text:u,slice:e}}function parseFromClipboard(r,e,n,A,o){let s=o.parent.type.spec.code,a,l;if(!n&&!e)return null;let c=e&&(A||s||!n);if(c){if(r.someProp("transformPastedText",u=>{e=u(e,s||A,r)}),s)return e?new Slice(Fragment.from(r.state.schema.text(e.replace(/\r\n?/g,`
9
+ `))),0,0):Slice.empty;let d=r.someProp("clipboardTextParser",u=>u(e,o,A,r));if(d)l=d;else{let u=o.marks(),{schema:f}=r.state,I=DOMSerializer.fromSchema(f);a=document.createElement("div"),e.split(/(?:\r\n?|\n)+/).forEach(p=>{let m=a.appendChild(document.createElement("p"));p&&m.appendChild(I.serializeNode(f.text(p,u)))})}}else r.someProp("transformPastedHTML",d=>{n=d(n,r)}),a=readHTML(n),webkit$1&&restoreReplacedSpaces(a);let g=a&&a.querySelector("[data-pm-slice]"),h=g&&/^(\d+) (\d+)(?: -(\d+))? (.*)/.exec(g.getAttribute("data-pm-slice")||"");if(h&&h[3])for(let d=+h[3];d>0;d--){let u=a.firstChild;for(;u&&u.nodeType!=1;)u=u.nextSibling;if(!u)break;a=u}if(l||(l=(r.someProp("clipboardParser")||r.someProp("domParser")||DOMParser$1.fromSchema(r.state.schema)).parseSlice(a,{preserveWhitespace:!!(c||h),context:o,ruleFromNode(u){return u.nodeName=="BR"&&!u.nextSibling&&u.parentNode&&!inlineParents.test(u.parentNode.nodeName)?{ignore:!0}:null}})),h)l=addContext(closeSlice$1(l,+h[1],+h[2]),h[4]);else if(l=Slice.maxOpen(normalizeSiblings$1(l.content,o),!0),l.openStart||l.openEnd){let d=0,u=0;for(let f=l.content.firstChild;d<l.openStart&&!f.type.spec.isolating;d++,f=f.firstChild);for(let f=l.content.lastChild;u<l.openEnd&&!f.type.spec.isolating;u++,f=f.lastChild);l=closeSlice$1(l,d,u)}return r.someProp("transformPasted",d=>{l=d(l,r)}),l}const inlineParents=/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;function normalizeSiblings$1(r,e){if(r.childCount<2)return r;for(let n=e.depth;n>=0;n--){let o=e.node(n).contentMatchAt(e.index(n)),s,a=[];if(r.forEach(l=>{if(!a)return;let c=o.findWrapping(l.type),g;if(!c)return a=null;if(g=a.length&&s.length&&addToSibling$1(c,s,l,a[a.length-1],0))a[a.length-1]=g;else{a.length&&(a[a.length-1]=closeRight$1(a[a.length-1],s.length));let h=withWrappers$1(l,c);a.push(h),o=o.matchType(h.type),s=c}}),a)return Fragment.from(a)}return r}function withWrappers$1(r,e,n=0){for(let A=e.length-1;A>=n;A--)r=e[A].create(null,Fragment.from(r));return r}function addToSibling$1(r,e,n,A,o){if(o<r.length&&o<e.length&&r[o]==e[o]){let s=addToSibling$1(r,e,n,A.lastChild,o+1);if(s)return A.copy(A.content.replaceChild(A.childCount-1,s));if(A.contentMatchAt(A.childCount).matchType(o==r.length-1?n.type:r[o+1]))return A.copy(A.content.append(Fragment.from(withWrappers$1(n,r,o+1))))}}function closeRight$1(r,e){if(e==0)return r;let n=r.content.replaceChild(r.childCount-1,closeRight$1(r.lastChild,e-1)),A=r.contentMatchAt(r.childCount).fillBefore(Fragment.empty,!0);return r.copy(n.append(A))}function closeRange$1(r,e,n,A,o,s){let a=e<0?r.firstChild:r.lastChild,l=a.content;return r.childCount>1&&(s=0),o<A-1&&(l=closeRange$1(l,e,n,A,o+1,s)),o>=n&&(l=e<0?a.contentMatchAt(0).fillBefore(l,s<=o).append(l):l.append(a.contentMatchAt(a.childCount).fillBefore(Fragment.empty,!0))),r.replaceChild(e<0?0:r.childCount-1,a.copy(l))}function closeSlice$1(r,e,n){return e<r.openStart&&(r=new Slice(closeRange$1(r.content,-1,e,r.openStart,0,r.openEnd),e,r.openEnd)),n<r.openEnd&&(r=new Slice(closeRange$1(r.content,1,n,r.openEnd,0,0),r.openStart,n)),r}const wrapMap={thead:["table"],tbody:["table"],tfoot:["table"],caption:["table"],colgroup:["table"],col:["table","colgroup"],tr:["table","tbody"],td:["table","tbody","tr"],th:["table","tbody","tr"]};let _detachedDoc=null;function detachedDoc(){return _detachedDoc||(_detachedDoc=document.implementation.createHTMLDocument("title"))}let _policy=null;function maybeWrapTrusted(r){let e=window.trustedTypes;return e?(_policy||(_policy=e.defaultPolicy||e.createPolicy("ProseMirrorClipboard",{createHTML:n=>n})),_policy.createHTML(r)):r}function readHTML(r){let e=/^(\s*<meta [^>]*>)*/.exec(r);e&&(r=r.slice(e[0].length));let n=detachedDoc().createElement("div"),A=/<([a-z][^>\s]+)/i.exec(r),o;if((o=A&&wrapMap[A[1].toLowerCase()])&&(r=o.map(s=>"<"+s+">").join("")+r+o.map(s=>"</"+s+">").reverse().join("")),n.innerHTML=maybeWrapTrusted(r),o)for(let s=0;s<o.length;s++)n=n.querySelector(o[s])||n;return n}function restoreReplacedSpaces(r){let e=r.querySelectorAll(chrome$1?"span:not([class]):not([style])":"span.Apple-converted-space");for(let n=0;n<e.length;n++){let A=e[n];A.childNodes.length==1&&A.textContent==" "&&A.parentNode&&A.parentNode.replaceChild(r.ownerDocument.createTextNode(" "),A)}}function addContext(r,e){if(!r.size)return r;let n=r.content.firstChild.type.schema,A;try{A=JSON.parse(e)}catch{return r}let{content:o,openStart:s,openEnd:a}=r;for(let l=A.length-2;l>=0;l-=2){let c=n.nodes[A[l]];if(!c||c.hasRequiredAttrs())break;o=Fragment.from(c.create(A[l+1],o)),s++,a++}return new Slice(o,s,a)}const handlers$1={},editHandlers={},passiveHandlers={touchstart:!0,touchmove:!0};let InputState$1=class{constructor(){this.shiftKey=!1,this.mouseDown=null,this.lastKeyCode=null,this.lastKeyCodeTime=0,this.lastClick={time:0,x:0,y:0,type:"",button:0},this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastIOSEnter=0,this.lastIOSEnterFallbackTimeout=-1,this.lastFocus=0,this.lastTouch=0,this.lastChromeDelete=0,this.composing=!1,this.compositionNode=null,this.composingTimeout=-1,this.compositionNodes=[],this.compositionEndedAt=-2e8,this.compositionID=1,this.compositionPendingChanges=0,this.domChangeCount=0,this.eventHandlers=Object.create(null),this.hideSelectionGuard=null}};function initInput(r){for(let e in handlers$1){let n=handlers$1[e];r.dom.addEventListener(e,r.input.eventHandlers[e]=A=>{eventBelongsToView(r,A)&&!runCustomHandler(r,A)&&(r.editable||!(A.type in editHandlers))&&n(r,A)},passiveHandlers[e]?{passive:!0}:void 0)}safari$1&&r.dom.addEventListener("input",()=>null),ensureListeners(r)}function setSelectionOrigin(r,e){r.input.lastSelectionOrigin=e,r.input.lastSelectionTime=Date.now()}function destroyInput(r){r.domObserver.stop();for(let e in r.input.eventHandlers)r.dom.removeEventListener(e,r.input.eventHandlers[e]);clearTimeout(r.input.composingTimeout),clearTimeout(r.input.lastIOSEnterFallbackTimeout)}function ensureListeners(r){r.someProp("handleDOMEvents",e=>{for(let n in e)r.input.eventHandlers[n]||r.dom.addEventListener(n,r.input.eventHandlers[n]=A=>runCustomHandler(r,A))})}function runCustomHandler(r,e){return r.someProp("handleDOMEvents",n=>{let A=n[e.type];return A?A(r,e)||e.defaultPrevented:!1})}function eventBelongsToView(r,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let n=e.target;n!=r.dom;n=n.parentNode)if(!n||n.nodeType==11||n.pmViewDesc&&n.pmViewDesc.stopEvent(e))return!1;return!0}function dispatchEvent(r,e){!runCustomHandler(r,e)&&handlers$1[e.type]&&(r.editable||!(e.type in editHandlers))&&handlers$1[e.type](r,e)}editHandlers.keydown=(r,e)=>{let n=e;if(r.input.shiftKey=n.keyCode==16||n.shiftKey,!inOrNearComposition(r,n)&&(r.input.lastKeyCode=n.keyCode,r.input.lastKeyCodeTime=Date.now(),!(android$1&&chrome$1&&n.keyCode==13)))if(n.keyCode!=229&&r.domObserver.forceFlush(),ios$1&&n.keyCode==13&&!n.ctrlKey&&!n.altKey&&!n.metaKey){let A=Date.now();r.input.lastIOSEnter=A,r.input.lastIOSEnterFallbackTimeout=setTimeout(()=>{r.input.lastIOSEnter==A&&(r.someProp("handleKeyDown",o=>o(r,keyEvent(13,"Enter"))),r.input.lastIOSEnter=0)},200)}else r.someProp("handleKeyDown",A=>A(r,n))||captureKeyDown(r,n)?n.preventDefault():setSelectionOrigin(r,"key")};editHandlers.keyup=(r,e)=>{e.keyCode==16&&(r.input.shiftKey=!1)};editHandlers.keypress=(r,e)=>{let n=e;if(inOrNearComposition(r,n)||!n.charCode||n.ctrlKey&&!n.altKey||mac$4&&n.metaKey)return;if(r.someProp("handleKeyPress",o=>o(r,n))){n.preventDefault();return}let A=r.state.selection;if(!(A instanceof TextSelection)||!A.$from.sameParent(A.$to)){let o=String.fromCharCode(n.charCode),s=()=>r.state.tr.insertText(o).scrollIntoView();!/[\r\n]/.test(o)&&!r.someProp("handleTextInput",a=>a(r,A.$from.pos,A.$to.pos,o,s))&&r.dispatch(s()),n.preventDefault()}};function eventCoords(r){return{left:r.clientX,top:r.clientY}}function isNear(r,e){let n=e.x-r.clientX,A=e.y-r.clientY;return n*n+A*A<100}function runHandlerOnContext(r,e,n,A,o){if(A==-1)return!1;let s=r.state.doc.resolve(A);for(let a=s.depth+1;a>0;a--)if(r.someProp(e,l=>a>s.depth?l(r,n,s.nodeAfter,s.before(a),o,!0):l(r,n,s.node(a),s.before(a),o,!1)))return!0;return!1}function updateSelection(r,e,n){if(r.focused||r.focus(),r.state.selection.eq(e))return;let A=r.state.tr.setSelection(e);A.setMeta("pointer",!0),r.dispatch(A)}function selectClickedLeaf(r,e){if(e==-1)return!1;let n=r.state.doc.resolve(e),A=n.nodeAfter;return A&&A.isAtom&&NodeSelection.isSelectable(A)?(updateSelection(r,new NodeSelection(n)),!0):!1}function selectClickedNode(r,e){if(e==-1)return!1;let n=r.state.selection,A,o;n instanceof NodeSelection&&(A=n.node);let s=r.state.doc.resolve(e);for(let a=s.depth+1;a>0;a--){let l=a>s.depth?s.nodeAfter:s.node(a);if(NodeSelection.isSelectable(l)){A&&n.$from.depth>0&&a>=n.$from.depth&&s.before(n.$from.depth+1)==n.$from.pos?o=s.before(n.$from.depth):o=s.before(a);break}}return o!=null?(updateSelection(r,NodeSelection.create(r.state.doc,o)),!0):!1}function handleSingleClick(r,e,n,A,o){return runHandlerOnContext(r,"handleClickOn",e,n,A)||r.someProp("handleClick",s=>s(r,e,A))||(o?selectClickedNode(r,n):selectClickedLeaf(r,n))}function handleDoubleClick(r,e,n,A){return runHandlerOnContext(r,"handleDoubleClickOn",e,n,A)||r.someProp("handleDoubleClick",o=>o(r,e,A))}function handleTripleClick$1(r,e,n,A){return runHandlerOnContext(r,"handleTripleClickOn",e,n,A)||r.someProp("handleTripleClick",o=>o(r,e,A))||defaultTripleClick(r,n,A)}function defaultTripleClick(r,e,n){if(n.button!=0)return!1;let A=r.state.doc;if(e==-1)return A.inlineContent?(updateSelection(r,TextSelection.create(A,0,A.content.size)),!0):!1;let o=A.resolve(e);for(let s=o.depth+1;s>0;s--){let a=s>o.depth?o.nodeAfter:o.node(s),l=o.before(s);if(a.inlineContent)updateSelection(r,TextSelection.create(A,l+1,l+1+a.content.size));else if(NodeSelection.isSelectable(a))updateSelection(r,NodeSelection.create(A,l));else continue;return!0}}function forceDOMFlush(r){return endComposition(r)}const selectNodeModifier=mac$4?"metaKey":"ctrlKey";handlers$1.mousedown=(r,e)=>{let n=e;r.input.shiftKey=n.shiftKey;let A=forceDOMFlush(r),o=Date.now(),s="singleClick";o-r.input.lastClick.time<500&&isNear(n,r.input.lastClick)&&!n[selectNodeModifier]&&r.input.lastClick.button==n.button&&(r.input.lastClick.type=="singleClick"?s="doubleClick":r.input.lastClick.type=="doubleClick"&&(s="tripleClick")),r.input.lastClick={time:o,x:n.clientX,y:n.clientY,type:s,button:n.button};let a=r.posAtCoords(eventCoords(n));a&&(s=="singleClick"?(r.input.mouseDown&&r.input.mouseDown.done(),r.input.mouseDown=new MouseDown(r,a,n,!!A)):(s=="doubleClick"?handleDoubleClick:handleTripleClick$1)(r,a.pos,a.inside,n)?n.preventDefault():setSelectionOrigin(r,"pointer"))};class MouseDown{constructor(e,n,A,o){this.view=e,this.pos=n,this.event=A,this.flushed=o,this.delayedSelectionSync=!1,this.mightDrag=null,this.startDoc=e.state.doc,this.selectNode=!!A[selectNodeModifier],this.allowDefault=A.shiftKey;let s,a;if(n.inside>-1)s=e.state.doc.nodeAt(n.inside),a=n.inside;else{let h=e.state.doc.resolve(n.pos);s=h.parent,a=h.depth?h.before():0}const l=o?null:A.target,c=l?e.docView.nearestDesc(l,!0):null;this.target=c&&c.dom.nodeType==1?c.dom:null;let{selection:g}=e.state;(A.button==0&&s.type.spec.draggable&&s.type.spec.selectable!==!1||g instanceof NodeSelection&&g.from<=a&&g.to>a)&&(this.mightDrag={node:s,pos:a,addAttr:!!(this.target&&!this.target.draggable),setUneditable:!!(this.target&&gecko$1&&!this.target.hasAttribute("contentEditable"))}),this.target&&this.mightDrag&&(this.mightDrag.addAttr||this.mightDrag.setUneditable)&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&(this.target.draggable=!0),this.mightDrag.setUneditable&&setTimeout(()=>{this.view.input.mouseDown==this&&this.target.setAttribute("contentEditable","false")},20),this.view.domObserver.start()),e.root.addEventListener("mouseup",this.up=this.up.bind(this)),e.root.addEventListener("mousemove",this.move=this.move.bind(this)),setSelectionOrigin(e,"pointer")}done(){this.view.root.removeEventListener("mouseup",this.up),this.view.root.removeEventListener("mousemove",this.move),this.mightDrag&&this.target&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&this.target.removeAttribute("draggable"),this.mightDrag.setUneditable&&this.target.removeAttribute("contentEditable"),this.view.domObserver.start()),this.delayedSelectionSync&&setTimeout(()=>selectionToDOM(this.view)),this.view.input.mouseDown=null}up(e){if(this.done(),!this.view.dom.contains(e.target))return;let n=this.pos;this.view.state.doc!=this.startDoc&&(n=this.view.posAtCoords(eventCoords(e))),this.updateAllowDefault(e),this.allowDefault||!n?setSelectionOrigin(this.view,"pointer"):handleSingleClick(this.view,n.pos,n.inside,e,this.selectNode)?e.preventDefault():e.button==0&&(this.flushed||safari$1&&this.mightDrag&&!this.mightDrag.node.isAtom||chrome$1&&!this.view.state.selection.visible&&Math.min(Math.abs(n.pos-this.view.state.selection.from),Math.abs(n.pos-this.view.state.selection.to))<=2)?(updateSelection(this.view,Selection.near(this.view.state.doc.resolve(n.pos))),e.preventDefault()):setSelectionOrigin(this.view,"pointer")}move(e){this.updateAllowDefault(e),setSelectionOrigin(this.view,"pointer"),e.buttons==0&&this.done()}updateAllowDefault(e){!this.allowDefault&&(Math.abs(this.event.x-e.clientX)>4||Math.abs(this.event.y-e.clientY)>4)&&(this.allowDefault=!0)}}handlers$1.touchstart=r=>{r.input.lastTouch=Date.now(),forceDOMFlush(r),setSelectionOrigin(r,"pointer")};handlers$1.touchmove=r=>{r.input.lastTouch=Date.now(),setSelectionOrigin(r,"pointer")};handlers$1.contextmenu=r=>forceDOMFlush(r);function inOrNearComposition(r,e){return r.composing?!0:safari$1&&Math.abs(e.timeStamp-r.input.compositionEndedAt)<500?(r.input.compositionEndedAt=-2e8,!0):!1}const timeoutComposition=android$1?5e3:-1;editHandlers.compositionstart=editHandlers.compositionupdate=r=>{if(!r.composing){r.domObserver.flush();let{state:e}=r,n=e.selection.$to;if(e.selection instanceof TextSelection&&(e.storedMarks||!n.textOffset&&n.parentOffset&&n.nodeBefore.marks.some(A=>A.type.spec.inclusive===!1)))r.markCursor=r.state.storedMarks||n.marks(),endComposition(r,!0),r.markCursor=null;else if(endComposition(r,!e.selection.empty),gecko$1&&e.selection.empty&&n.parentOffset&&!n.textOffset&&n.nodeBefore.marks.length){let A=r.domSelectionRange();for(let o=A.focusNode,s=A.focusOffset;o&&o.nodeType==1&&s!=0;){let a=s<0?o.lastChild:o.childNodes[s-1];if(!a)break;if(a.nodeType==3){let l=r.domSelection();l&&l.collapse(a,a.nodeValue.length);break}else o=a,s=-1}}r.input.composing=!0}scheduleComposeEnd(r,timeoutComposition)};editHandlers.compositionend=(r,e)=>{r.composing&&(r.input.composing=!1,r.input.compositionEndedAt=e.timeStamp,r.input.compositionPendingChanges=r.domObserver.pendingRecords().length?r.input.compositionID:0,r.input.compositionNode=null,r.input.compositionPendingChanges&&Promise.resolve().then(()=>r.domObserver.flush()),r.input.compositionID++,scheduleComposeEnd(r,20))};function scheduleComposeEnd(r,e){clearTimeout(r.input.composingTimeout),e>-1&&(r.input.composingTimeout=setTimeout(()=>endComposition(r),e))}function clearComposition(r){for(r.composing&&(r.input.composing=!1,r.input.compositionEndedAt=timestampFromCustomEvent());r.input.compositionNodes.length>0;)r.input.compositionNodes.pop().markParentsDirty()}function findCompositionNode$1(r){let e=r.domSelectionRange();if(!e.focusNode)return null;let n=textNodeBefore$1(e.focusNode,e.focusOffset),A=textNodeAfter$1(e.focusNode,e.focusOffset);if(n&&A&&n!=A){let o=A.pmViewDesc,s=r.domObserver.lastChangedTextNode;if(n==s||A==s)return s;if(!o||!o.isText(A.nodeValue))return A;if(r.input.compositionNode==A){let a=n.pmViewDesc;if(!(!a||!a.isText(n.nodeValue)))return A}}return n||A}function timestampFromCustomEvent(){let r=document.createEvent("Event");return r.initEvent("event",!0,!0),r.timeStamp}function endComposition(r,e=!1){if(!(android$1&&r.domObserver.flushingSoon>=0)){if(r.domObserver.forceFlush(),clearComposition(r),e||r.docView&&r.docView.dirty){let n=selectionFromDOM(r),A=r.state.selection;return n&&!n.eq(A)?r.dispatch(r.state.tr.setSelection(n)):(r.markCursor||e)&&!A.$from.node(A.$from.sharedDepth(A.to)).inlineContent?r.dispatch(r.state.tr.deleteSelection()):r.updateState(r.state),!0}return!1}}function captureCopy$1(r,e){if(!r.dom.parentNode)return;let n=r.dom.parentNode.appendChild(document.createElement("div"));n.appendChild(e),n.style.cssText="position: fixed; left: -10000px; top: 10px";let A=getSelection(),o=document.createRange();o.selectNodeContents(e),r.dom.blur(),A.removeAllRanges(),A.addRange(o),setTimeout(()=>{n.parentNode&&n.parentNode.removeChild(n),r.focus()},50)}const brokenClipboardAPI$1=ie$3&&ie_version<15||ios$1&&webkit_version<604;handlers$1.copy=editHandlers.cut=(r,e)=>{let n=e,A=r.state.selection,o=n.type=="cut";if(A.empty)return;let s=brokenClipboardAPI$1?null:n.clipboardData,a=A.content(),{dom:l,text:c}=serializeForClipboard(r,a);s?(n.preventDefault(),s.clearData(),s.setData("text/html",l.innerHTML),s.setData("text/plain",c)):captureCopy$1(r,l),o&&r.dispatch(r.state.tr.deleteSelection().scrollIntoView().setMeta("uiEvent","cut"))};function sliceSingleNode$1(r){return r.openStart==0&&r.openEnd==0&&r.content.childCount==1?r.content.firstChild:null}function capturePaste$1(r,e){if(!r.dom.parentNode)return;let n=r.input.shiftKey||r.state.selection.$from.parent.type.spec.code,A=r.dom.parentNode.appendChild(document.createElement(n?"textarea":"div"));n||(A.contentEditable="true"),A.style.cssText="position: fixed; left: -10000px; top: 10px",A.focus();let o=r.input.shiftKey&&r.input.lastKeyCode!=45;setTimeout(()=>{r.focus(),A.parentNode&&A.parentNode.removeChild(A),n?doPaste$1(r,A.value,null,o,e):doPaste$1(r,A.textContent,A.innerHTML,o,e)},50)}function doPaste$1(r,e,n,A,o){let s=parseFromClipboard(r,e,n,A,r.state.selection.$from);if(r.someProp("handlePaste",c=>c(r,o,s||Slice.empty)))return!0;if(!s)return!1;let a=sliceSingleNode$1(s),l=a?r.state.tr.replaceSelectionWith(a,A):r.state.tr.replaceSelection(s);return r.dispatch(l.scrollIntoView().setMeta("paste",!0).setMeta("uiEvent","paste")),!0}function getText$1(r){let e=r.getData("text/plain")||r.getData("Text");if(e)return e;let n=r.getData("text/uri-list");return n?n.replace(/\r?\n/g," "):""}editHandlers.paste=(r,e)=>{let n=e;if(r.composing&&!android$1)return;let A=brokenClipboardAPI$1?null:n.clipboardData,o=r.input.shiftKey&&r.input.lastKeyCode!=45;A&&doPaste$1(r,getText$1(A),A.getData("text/html"),o,n)?n.preventDefault():capturePaste$1(r,n)};class Dragging{constructor(e,n,A){this.slice=e,this.move=n,this.node=A}}const dragCopyModifier=mac$4?"altKey":"ctrlKey";function dragMoves(r,e){let n=r.someProp("dragCopies",A=>!A(e));return n??!e[dragCopyModifier]}handlers$1.dragstart=(r,e)=>{let n=e,A=r.input.mouseDown;if(A&&A.done(),!n.dataTransfer)return;let o=r.state.selection,s=o.empty?null:r.posAtCoords(eventCoords(n)),a;if(!(s&&s.pos>=o.from&&s.pos<=(o instanceof NodeSelection?o.to-1:o.to))){if(A&&A.mightDrag)a=NodeSelection.create(r.state.doc,A.mightDrag.pos);else if(n.target&&n.target.nodeType==1){let d=r.docView.nearestDesc(n.target,!0);d&&d.node.type.spec.draggable&&d!=r.docView&&(a=NodeSelection.create(r.state.doc,d.posBefore))}}let l=(a||r.state.selection).content(),{dom:c,text:g,slice:h}=serializeForClipboard(r,l);(!n.dataTransfer.files.length||!chrome$1||chrome_version>120)&&n.dataTransfer.clearData(),n.dataTransfer.setData(brokenClipboardAPI$1?"Text":"text/html",c.innerHTML),n.dataTransfer.effectAllowed="copyMove",brokenClipboardAPI$1||n.dataTransfer.setData("text/plain",g),r.dragging=new Dragging(h,dragMoves(r,n),a)};handlers$1.dragend=r=>{let e=r.dragging;window.setTimeout(()=>{r.dragging==e&&(r.dragging=null)},50)};editHandlers.dragover=editHandlers.dragenter=(r,e)=>e.preventDefault();editHandlers.drop=(r,e)=>{let n=e,A=r.dragging;if(r.dragging=null,!n.dataTransfer)return;let o=r.posAtCoords(eventCoords(n));if(!o)return;let s=r.state.doc.resolve(o.pos),a=A&&A.slice;a?r.someProp("transformPasted",I=>{a=I(a,r)}):a=parseFromClipboard(r,getText$1(n.dataTransfer),brokenClipboardAPI$1?null:n.dataTransfer.getData("text/html"),!1,s);let l=!!(A&&dragMoves(r,n));if(r.someProp("handleDrop",I=>I(r,n,a||Slice.empty,l))){n.preventDefault();return}if(!a)return;n.preventDefault();let c=a?dropPoint(r.state.doc,s.pos,a):s.pos;c==null&&(c=s.pos);let g=r.state.tr;if(l){let{node:I}=A;I?I.replace(g):g.deleteSelection()}let h=g.mapping.map(c),d=a.openStart==0&&a.openEnd==0&&a.content.childCount==1,u=g.doc;if(d?g.replaceRangeWith(h,h,a.content.firstChild):g.replaceRange(h,h,a),g.doc.eq(u))return;let f=g.doc.resolve(h);if(d&&NodeSelection.isSelectable(a.content.firstChild)&&f.nodeAfter&&f.nodeAfter.sameMarkup(a.content.firstChild))g.setSelection(new NodeSelection(f));else{let I=g.mapping.map(c);g.mapping.maps[g.mapping.maps.length-1].forEach((p,m,E,B)=>I=B),g.setSelection(selectionBetween(r,f,g.doc.resolve(I)))}r.focus(),r.dispatch(g.setMeta("uiEvent","drop"))};handlers$1.focus=r=>{r.input.lastFocus=Date.now(),r.focused||(r.domObserver.stop(),r.dom.classList.add("ProseMirror-focused"),r.domObserver.start(),r.focused=!0,setTimeout(()=>{r.docView&&r.hasFocus()&&!r.domObserver.currentSelection.eq(r.domSelectionRange())&&selectionToDOM(r)},20))};handlers$1.blur=(r,e)=>{let n=e;r.focused&&(r.domObserver.stop(),r.dom.classList.remove("ProseMirror-focused"),r.domObserver.start(),n.relatedTarget&&r.dom.contains(n.relatedTarget)&&r.domObserver.currentSelection.clear(),r.focused=!1)};handlers$1.beforeinput=(r,e)=>{if(chrome$1&&android$1&&e.inputType=="deleteContentBackward"){r.domObserver.flushSoon();let{domChangeCount:A}=r.input;setTimeout(()=>{if(r.input.domChangeCount!=A||(r.dom.blur(),r.focus(),r.someProp("handleKeyDown",s=>s(r,keyEvent(8,"Backspace")))))return;let{$cursor:o}=r.state.selection;o&&o.pos>0&&r.dispatch(r.state.tr.delete(o.pos-1,o.pos).scrollIntoView())},50)}};for(let r in editHandlers)handlers$1[r]=editHandlers[r];function compareObjs(r,e){if(r==e)return!0;for(let n in r)if(r[n]!==e[n])return!1;for(let n in e)if(!(n in r))return!1;return!0}let WidgetType$1=class It{constructor(e,n){this.toDOM=e,this.spec=n||noSpec,this.side=this.spec.side||0}map(e,n,A,o){let{pos:s,deleted:a}=e.mapResult(n.from+o,this.side<0?-1:1);return a?null:new Decoration$1(s-A,s-A,this)}valid(){return!0}eq(e){return this==e||e instanceof It&&(this.spec.key&&this.spec.key==e.spec.key||this.toDOM==e.toDOM&&compareObjs(this.spec,e.spec))}destroy(e){this.spec.destroy&&this.spec.destroy(e)}};class InlineType{constructor(e,n){this.attrs=e,this.spec=n||noSpec}map(e,n,A,o){let s=e.map(n.from+o,this.spec.inclusiveStart?-1:1)-A,a=e.map(n.to+o,this.spec.inclusiveEnd?1:-1)-A;return s>=a?null:new Decoration$1(s,a,this)}valid(e,n){return n.from<n.to}eq(e){return this==e||e instanceof InlineType&&compareObjs(this.attrs,e.attrs)&&compareObjs(this.spec,e.spec)}static is(e){return e.type instanceof InlineType}destroy(){}}let NodeType$1=class Ct{constructor(e,n){this.attrs=e,this.spec=n||noSpec}map(e,n,A,o){let s=e.mapResult(n.from+o,1);if(s.deleted)return null;let a=e.mapResult(n.to+o,-1);return a.deleted||a.pos<=s.pos?null:new Decoration$1(s.pos-A,a.pos-A,this)}valid(e,n){let{index:A,offset:o}=e.content.findIndex(n.from),s;return o==n.from&&!(s=e.child(A)).isText&&o+s.nodeSize==n.to}eq(e){return this==e||e instanceof Ct&&compareObjs(this.attrs,e.attrs)&&compareObjs(this.spec,e.spec)}destroy(){}},Decoration$1=class Oe{constructor(e,n,A){this.from=e,this.to=n,this.type=A}copy(e,n){return new Oe(e,n,this.type)}eq(e,n=0){return this.type.eq(e.type)&&this.from+n==e.from&&this.to+n==e.to}map(e,n,A){return this.type.map(e,this,n,A)}static widget(e,n,A){return new Oe(e,e,new WidgetType$1(n,A))}static inline(e,n,A,o){return new Oe(e,n,new InlineType(A,o))}static node(e,n,A,o){return new Oe(e,n,new NodeType$1(A,o))}get spec(){return this.type.spec}get inline(){return this.type instanceof InlineType}get widget(){return this.type instanceof WidgetType$1}};const none$2=[],noSpec={};class DecorationSet{constructor(e,n){this.local=e.length?e:none$2,this.children=n.length?n:none$2}static create(e,n){return n.length?buildTree$1(n,e,0,noSpec):empty$1}find(e,n,A){let o=[];return this.findInner(e??0,n??1e9,o,0,A),o}findInner(e,n,A,o,s){for(let a=0;a<this.local.length;a++){let l=this.local[a];l.from<=n&&l.to>=e&&(!s||s(l.spec))&&A.push(l.copy(l.from+o,l.to+o))}for(let a=0;a<this.children.length;a+=3)if(this.children[a]<n&&this.children[a+1]>e){let l=this.children[a]+1;this.children[a+2].findInner(e-l,n-l,A,o+l,s)}}map(e,n,A){return this==empty$1||e.maps.length==0?this:this.mapInner(e,n,0,0,A||noSpec)}mapInner(e,n,A,o,s){let a;for(let l=0;l<this.local.length;l++){let c=this.local[l].map(e,A,o);c&&c.type.valid(n,c)?(a||(a=[])).push(c):s.onRemove&&s.onRemove(this.local[l].spec)}return this.children.length?mapChildren(this.children,a||[],e,n,A,o,s):a?new DecorationSet(a.sort(byPos),none$2):empty$1}add(e,n){return n.length?this==empty$1?DecorationSet.create(e,n):this.addInner(e,n,0):this}addInner(e,n,A){let o,s=0;e.forEach((l,c)=>{let g=c+A,h;if(h=takeSpansForNode(n,l,g)){for(o||(o=this.children.slice());s<o.length&&o[s]<c;)s+=3;o[s]==c?o[s+2]=o[s+2].addInner(l,h,g+1):o.splice(s,0,c,c+l.nodeSize,buildTree$1(h,l,g+1,noSpec)),s+=3}});let a=moveSpans(s?withoutNulls(n):n,-A);for(let l=0;l<a.length;l++)a[l].type.valid(e,a[l])||a.splice(l--,1);return new DecorationSet(a.length?this.local.concat(a).sort(byPos):this.local,o||this.children)}remove(e){return e.length==0||this==empty$1?this:this.removeInner(e,0)}removeInner(e,n){let A=this.children,o=this.local;for(let s=0;s<A.length;s+=3){let a,l=A[s]+n,c=A[s+1]+n;for(let h=0,d;h<e.length;h++)(d=e[h])&&d.from>l&&d.to<c&&(e[h]=null,(a||(a=[])).push(d));if(!a)continue;A==this.children&&(A=this.children.slice());let g=A[s+2].removeInner(a,l+1);g!=empty$1?A[s+2]=g:(A.splice(s,3),s-=3)}if(o.length){for(let s=0,a;s<e.length;s++)if(a=e[s])for(let l=0;l<o.length;l++)o[l].eq(a,n)&&(o==this.local&&(o=this.local.slice()),o.splice(l--,1))}return A==this.children&&o==this.local?this:o.length||A.length?new DecorationSet(o,A):empty$1}forChild(e,n){if(this==empty$1)return this;if(n.isLeaf)return DecorationSet.empty;let A,o;for(let l=0;l<this.children.length;l+=3)if(this.children[l]>=e){this.children[l]==e&&(A=this.children[l+2]);break}let s=e+1,a=s+n.content.size;for(let l=0;l<this.local.length;l++){let c=this.local[l];if(c.from<a&&c.to>s&&c.type instanceof InlineType){let g=Math.max(s,c.from)-s,h=Math.min(a,c.to)-s;g<h&&(o||(o=[])).push(c.copy(g,h))}}if(o){let l=new DecorationSet(o.sort(byPos),none$2);return A?new DecorationGroup([l,A]):l}return A||empty$1}eq(e){if(this==e)return!0;if(!(e instanceof DecorationSet)||this.local.length!=e.local.length||this.children.length!=e.children.length)return!1;for(let n=0;n<this.local.length;n++)if(!this.local[n].eq(e.local[n]))return!1;for(let n=0;n<this.children.length;n+=3)if(this.children[n]!=e.children[n]||this.children[n+1]!=e.children[n+1]||!this.children[n+2].eq(e.children[n+2]))return!1;return!0}locals(e){return removeOverlap(this.localsInner(e))}localsInner(e){if(this==empty$1)return none$2;if(e.inlineContent||!this.local.some(InlineType.is))return this.local;let n=[];for(let A=0;A<this.local.length;A++)this.local[A].type instanceof InlineType||n.push(this.local[A]);return n}forEachSet(e){e(this)}}DecorationSet.empty=new DecorationSet([],[]);DecorationSet.removeOverlap=removeOverlap;const empty$1=DecorationSet.empty;class DecorationGroup{constructor(e){this.members=e}map(e,n){const A=this.members.map(o=>o.map(e,n,noSpec));return DecorationGroup.from(A)}forChild(e,n){if(n.isLeaf)return DecorationSet.empty;let A=[];for(let o=0;o<this.members.length;o++){let s=this.members[o].forChild(e,n);s!=empty$1&&(s instanceof DecorationGroup?A=A.concat(s.members):A.push(s))}return DecorationGroup.from(A)}eq(e){if(!(e instanceof DecorationGroup)||e.members.length!=this.members.length)return!1;for(let n=0;n<this.members.length;n++)if(!this.members[n].eq(e.members[n]))return!1;return!0}locals(e){let n,A=!0;for(let o=0;o<this.members.length;o++){let s=this.members[o].localsInner(e);if(s.length)if(!n)n=s;else{A&&(n=n.slice(),A=!1);for(let a=0;a<s.length;a++)n.push(s[a])}}return n?removeOverlap(A?n:n.sort(byPos)):none$2}static from(e){switch(e.length){case 0:return empty$1;case 1:return e[0];default:return new DecorationGroup(e.every(n=>n instanceof DecorationSet)?e:e.reduce((n,A)=>n.concat(A instanceof DecorationSet?A:A.members),[]))}}forEachSet(e){for(let n=0;n<this.members.length;n++)this.members[n].forEachSet(e)}}function mapChildren(r,e,n,A,o,s,a){let l=r.slice();for(let g=0,h=s;g<n.maps.length;g++){let d=0;n.maps[g].forEach((u,f,I,p)=>{let m=p-I-(f-u);for(let E=0;E<l.length;E+=3){let B=l[E+1];if(B<0||u>B+h-d)continue;let Q=l[E]+h-d;f>=Q?l[E+1]=u<=Q?-2:-1:u>=h&&m&&(l[E]+=m,l[E+1]+=m)}d+=m}),h=n.maps[g].map(h,-1)}let c=!1;for(let g=0;g<l.length;g+=3)if(l[g+1]<0){if(l[g+1]==-2){c=!0,l[g+1]=-1;continue}let h=n.map(r[g]+s),d=h-o;if(d<0||d>=A.content.size){c=!0;continue}let u=n.map(r[g+1]+s,-1),f=u-o,{index:I,offset:p}=A.content.findIndex(d),m=A.maybeChild(I);if(m&&p==d&&p+m.nodeSize==f){let E=l[g+2].mapInner(n,m,h+1,r[g]+s+1,a);E!=empty$1?(l[g]=d,l[g+1]=f,l[g+2]=E):(l[g+1]=-2,c=!0)}else c=!0}if(c){let g=mapAndGatherRemainingDecorations(l,r,e,n,o,s,a),h=buildTree$1(g,A,0,a);e=h.local;for(let d=0;d<l.length;d+=3)l[d+1]<0&&(l.splice(d,3),d-=3);for(let d=0,u=0;d<h.children.length;d+=3){let f=h.children[d];for(;u<l.length&&l[u]<f;)u+=3;l.splice(u,0,h.children[d],h.children[d+1],h.children[d+2])}}return new DecorationSet(e.sort(byPos),l)}function moveSpans(r,e){if(!e||!r.length)return r;let n=[];for(let A=0;A<r.length;A++){let o=r[A];n.push(new Decoration$1(o.from+e,o.to+e,o.type))}return n}function mapAndGatherRemainingDecorations(r,e,n,A,o,s,a){function l(c,g){for(let h=0;h<c.local.length;h++){let d=c.local[h].map(A,o,g);d?n.push(d):a.onRemove&&a.onRemove(c.local[h].spec)}for(let h=0;h<c.children.length;h+=3)l(c.children[h+2],c.children[h]+g+1)}for(let c=0;c<r.length;c+=3)r[c+1]==-1&&l(r[c+2],e[c]+s+1);return n}function takeSpansForNode(r,e,n){if(e.isLeaf)return null;let A=n+e.nodeSize,o=null;for(let s=0,a;s<r.length;s++)(a=r[s])&&a.from>n&&a.to<A&&((o||(o=[])).push(a),r[s]=null);return o}function withoutNulls(r){let e=[];for(let n=0;n<r.length;n++)r[n]!=null&&e.push(r[n]);return e}function buildTree$1(r,e,n,A){let o=[],s=!1;e.forEach((l,c)=>{let g=takeSpansForNode(r,l,c+n);if(g){s=!0;let h=buildTree$1(g,l,n+c+1,A);h!=empty$1&&o.push(c,c+l.nodeSize,h)}});let a=moveSpans(s?withoutNulls(r):r,-n).sort(byPos);for(let l=0;l<a.length;l++)a[l].type.valid(e,a[l])||(A.onRemove&&A.onRemove(a[l].spec),a.splice(l--,1));return a.length||o.length?new DecorationSet(a,o):empty$1}function byPos(r,e){return r.from-e.from||r.to-e.to}function removeOverlap(r){let e=r;for(let n=0;n<e.length-1;n++){let A=e[n];if(A.from!=A.to)for(let o=n+1;o<e.length;o++){let s=e[o];if(s.from==A.from){s.to!=A.to&&(e==r&&(e=r.slice()),e[o]=s.copy(s.from,A.to),insertAhead(e,o+1,s.copy(A.to,s.to)));continue}else{s.from<A.to&&(e==r&&(e=r.slice()),e[n]=A.copy(A.from,s.from),insertAhead(e,o,A.copy(s.from,A.to)));break}}}return e}function insertAhead(r,e,n){for(;e<r.length&&byPos(n,r[e])>0;)e++;r.splice(e,0,n)}function viewDecorations(r){let e=[];return r.someProp("decorations",n=>{let A=n(r.state);A&&A!=empty$1&&e.push(A)}),r.cursorWrapper&&e.push(DecorationSet.create(r.state.doc,[r.cursorWrapper.deco])),DecorationGroup.from(e)}const observeOptions$1={childList:!0,characterData:!0,characterDataOldValue:!0,attributes:!0,attributeOldValue:!0,subtree:!0},useCharData$1=ie$3&&ie_version<=11;class SelectionState{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}set(e){this.anchorNode=e.anchorNode,this.anchorOffset=e.anchorOffset,this.focusNode=e.focusNode,this.focusOffset=e.focusOffset}clear(){this.anchorNode=this.focusNode=null}eq(e){return e.anchorNode==this.anchorNode&&e.anchorOffset==this.anchorOffset&&e.focusNode==this.focusNode&&e.focusOffset==this.focusOffset}}let DOMObserver$1=class{constructor(e,n){this.view=e,this.handleDOMChange=n,this.queue=[],this.flushingSoon=-1,this.observer=null,this.currentSelection=new SelectionState,this.onCharData=null,this.suppressingSelectionUpdates=!1,this.lastChangedTextNode=null,this.observer=window.MutationObserver&&new window.MutationObserver(A=>{for(let o=0;o<A.length;o++)this.queue.push(A[o]);ie$3&&ie_version<=11&&A.some(o=>o.type=="childList"&&o.removedNodes.length||o.type=="characterData"&&o.oldValue.length>o.target.nodeValue.length)?this.flushSoon():this.flush()}),useCharData$1&&(this.onCharData=A=>{this.queue.push({target:A.target,type:"characterData",oldValue:A.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this)}flushSoon(){this.flushingSoon<0&&(this.flushingSoon=window.setTimeout(()=>{this.flushingSoon=-1,this.flush()},20))}forceFlush(){this.flushingSoon>-1&&(window.clearTimeout(this.flushingSoon),this.flushingSoon=-1,this.flush())}start(){this.observer&&(this.observer.takeRecords(),this.observer.observe(this.view.dom,observeOptions$1)),this.onCharData&&this.view.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.connectSelection()}stop(){if(this.observer){let e=this.observer.takeRecords();if(e.length){for(let n=0;n<e.length;n++)this.queue.push(e[n]);window.setTimeout(()=>this.flush(),20)}this.observer.disconnect()}this.onCharData&&this.view.dom.removeEventListener("DOMCharacterDataModified",this.onCharData),this.disconnectSelection()}connectSelection(){this.view.dom.ownerDocument.addEventListener("selectionchange",this.onSelectionChange)}disconnectSelection(){this.view.dom.ownerDocument.removeEventListener("selectionchange",this.onSelectionChange)}suppressSelectionUpdates(){this.suppressingSelectionUpdates=!0,setTimeout(()=>this.suppressingSelectionUpdates=!1,50)}onSelectionChange(){if(hasFocusAndSelection(this.view)){if(this.suppressingSelectionUpdates)return selectionToDOM(this.view);if(ie$3&&ie_version<=11&&!this.view.state.selection.empty){let e=this.view.domSelectionRange();if(e.focusNode&&isEquivalentPosition$1(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset))return this.flushSoon()}this.flush()}}setCurSelection(){this.currentSelection.set(this.view.domSelectionRange())}ignoreSelectionChange(e){if(!e.focusNode)return!0;let n=new Set,A;for(let s=e.focusNode;s;s=parentNode(s))n.add(s);for(let s=e.anchorNode;s;s=parentNode(s))if(n.has(s)){A=s;break}let o=A&&this.view.docView.nearestDesc(A);if(o&&o.ignoreMutation({type:"selection",target:A.nodeType==3?A.parentNode:A}))return this.setCurSelection(),!0}pendingRecords(){if(this.observer)for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}flush(){let{view:e}=this;if(!e.docView||this.flushingSoon>-1)return;let n=this.pendingRecords();n.length&&(this.queue=[]);let A=e.domSelectionRange(),o=!this.suppressingSelectionUpdates&&!this.currentSelection.eq(A)&&hasFocusAndSelection(e)&&!this.ignoreSelectionChange(A),s=-1,a=-1,l=!1,c=[];if(e.editable)for(let h=0;h<n.length;h++){let d=this.registerMutation(n[h],c);d&&(s=s<0?d.from:Math.min(d.from,s),a=a<0?d.to:Math.max(d.to,a),d.typeOver&&(l=!0))}if(gecko$1&&c.length){let h=c.filter(d=>d.nodeName=="BR");if(h.length==2){let[d,u]=h;d.parentNode&&d.parentNode.parentNode==u.parentNode?u.remove():d.remove()}else{let{focusNode:d}=this.currentSelection;for(let u of h){let f=u.parentNode;f&&f.nodeName=="LI"&&(!d||blockParent(e,d)!=f)&&u.remove()}}}let g=null;s<0&&o&&e.input.lastFocus>Date.now()-200&&Math.max(e.input.lastTouch,e.input.lastClick.time)<Date.now()-300&&selectionCollapsed(A)&&(g=selectionFromDOM(e))&&g.eq(Selection.near(e.state.doc.resolve(0),1))?(e.input.lastFocus=0,selectionToDOM(e),this.currentSelection.set(A),e.scrollToSelection()):(s>-1||o)&&(s>-1&&(e.docView.markDirty(s,a),checkCSS(e)),this.handleDOMChange(s,a,l,c),e.docView&&e.docView.dirty?e.updateState(e.state):this.currentSelection.eq(A)||selectionToDOM(e),this.currentSelection.set(A))}registerMutation(e,n){if(n.indexOf(e.target)>-1)return null;let A=this.view.docView.nearestDesc(e.target);if(e.type=="attributes"&&(A==this.view.docView||e.attributeName=="contenteditable"||e.attributeName=="style"&&!e.oldValue&&!e.target.getAttribute("style"))||!A||A.ignoreMutation(e))return null;if(e.type=="childList"){for(let h=0;h<e.addedNodes.length;h++){let d=e.addedNodes[h];n.push(d),d.nodeType==3&&(this.lastChangedTextNode=d)}if(A.contentDOM&&A.contentDOM!=A.dom&&!A.contentDOM.contains(e.target))return{from:A.posBefore,to:A.posAfter};let o=e.previousSibling,s=e.nextSibling;if(ie$3&&ie_version<=11&&e.addedNodes.length)for(let h=0;h<e.addedNodes.length;h++){let{previousSibling:d,nextSibling:u}=e.addedNodes[h];(!d||Array.prototype.indexOf.call(e.addedNodes,d)<0)&&(o=d),(!u||Array.prototype.indexOf.call(e.addedNodes,u)<0)&&(s=u)}let a=o&&o.parentNode==e.target?domIndex$1(o)+1:0,l=A.localPosFromDOM(e.target,a,-1),c=s&&s.parentNode==e.target?domIndex$1(s):e.target.childNodes.length,g=A.localPosFromDOM(e.target,c,1);return{from:l,to:g}}else return e.type=="attributes"?{from:A.posAtStart-A.border,to:A.posAtEnd+A.border}:(this.lastChangedTextNode=e.target,{from:A.posAtStart,to:A.posAtEnd,typeOver:e.target.nodeValue==e.oldValue})}},cssChecked=new WeakMap,cssCheckWarned=!1;function checkCSS(r){if(!cssChecked.has(r)&&(cssChecked.set(r,null),["normal","nowrap","pre-line"].indexOf(getComputedStyle(r.dom).whiteSpace)!==-1)){if(r.requiresGeckoHackNode=gecko$1,cssCheckWarned)return;console.warn("ProseMirror expects the CSS white-space property to be set, preferably to 'pre-wrap'. It is recommended to load style/prosemirror.css from the prosemirror-view package."),cssCheckWarned=!0}}function rangeToSelectionRange(r,e){let n=e.startContainer,A=e.startOffset,o=e.endContainer,s=e.endOffset,a=r.domAtPos(r.state.selection.anchor);return isEquivalentPosition$1(a.node,a.offset,o,s)&&([n,A,o,s]=[o,s,n,A]),{anchorNode:n,anchorOffset:A,focusNode:o,focusOffset:s}}function safariShadowSelectionRange(r,e){if(e.getComposedRanges){let o=e.getComposedRanges(r.root)[0];if(o)return rangeToSelectionRange(r,o)}let n;function A(o){o.preventDefault(),o.stopImmediatePropagation(),n=o.getTargetRanges()[0]}return r.dom.addEventListener("beforeinput",A,!0),document.execCommand("indent"),r.dom.removeEventListener("beforeinput",A,!0),n?rangeToSelectionRange(r,n):null}function blockParent(r,e){for(let n=e.parentNode;n&&n!=r.dom;n=n.parentNode){let A=r.docView.nearestDesc(n,!0);if(A&&A.node.isBlock)return n}return null}function parseBetween(r,e,n){let{node:A,fromOffset:o,toOffset:s,from:a,to:l}=r.docView.parseRange(e,n),c=r.domSelectionRange(),g,h=c.anchorNode;if(h&&r.dom.contains(h.nodeType==1?h:h.parentNode)&&(g=[{node:h,offset:c.anchorOffset}],selectionCollapsed(c)||g.push({node:c.focusNode,offset:c.focusOffset})),chrome$1&&r.input.lastKeyCode===8)for(let m=s;m>o;m--){let E=A.childNodes[m-1],B=E.pmViewDesc;if(E.nodeName=="BR"&&!B){s=m;break}if(!B||B.size)break}let d=r.state.doc,u=r.someProp("domParser")||DOMParser$1.fromSchema(r.state.schema),f=d.resolve(a),I=null,p=u.parse(A,{topNode:f.parent,topMatch:f.parent.contentMatchAt(f.index()),topOpen:!0,from:o,to:s,preserveWhitespace:f.parent.type.whitespace=="pre"?"full":!0,findPositions:g,ruleFromNode,context:f});if(g&&g[0].pos!=null){let m=g[0].pos,E=g[1]&&g[1].pos;E==null&&(E=m),I={anchor:m+a,head:E+a}}return{doc:p,sel:I,from:a,to:l}}function ruleFromNode(r){let e=r.pmViewDesc;if(e)return e.parseRule();if(r.nodeName=="BR"&&r.parentNode){if(safari$1&&/^(ul|ol)$/i.test(r.parentNode.nodeName)){let n=document.createElement("div");return n.appendChild(document.createElement("li")),{skip:n}}else if(r.parentNode.lastChild==r||safari$1&&/^(tr|table)$/i.test(r.parentNode.nodeName))return{ignore:!0}}else if(r.nodeName=="IMG"&&r.getAttribute("mark-placeholder"))return{ignore:!0};return null}const isInline=/^(a|abbr|acronym|b|bd[io]|big|br|button|cite|code|data(list)?|del|dfn|em|i|ins|kbd|label|map|mark|meter|output|q|ruby|s|samp|small|span|strong|su[bp]|time|u|tt|var)$/i;function readDOMChange(r,e,n,A,o){let s=r.input.compositionPendingChanges||(r.composing?r.input.compositionID:0);if(r.input.compositionPendingChanges=0,e<0){let _=r.input.lastSelectionTime>Date.now()-50?r.input.lastSelectionOrigin:null,M=selectionFromDOM(r,_);if(M&&!r.state.selection.eq(M)){if(chrome$1&&android$1&&r.input.lastKeyCode===13&&Date.now()-100<r.input.lastKeyCodeTime&&r.someProp("handleKeyDown",F=>F(r,keyEvent(13,"Enter"))))return;let v=r.state.tr.setSelection(M);_=="pointer"?v.setMeta("pointer",!0):_=="key"&&v.scrollIntoView(),s&&v.setMeta("composition",s),r.dispatch(v)}return}let a=r.state.doc.resolve(e),l=a.sharedDepth(n);e=a.before(l+1),n=r.state.doc.resolve(n).after(l+1);let c=r.state.selection,g=parseBetween(r,e,n),h=r.state.doc,d=h.slice(g.from,g.to),u,f;r.input.lastKeyCode===8&&Date.now()-100<r.input.lastKeyCodeTime?(u=r.state.selection.to,f="end"):(u=r.state.selection.from,f="start"),r.input.lastKeyCode=null;let I=findDiff$1(d.content,g.doc.content,g.from,u,f);if(I&&r.input.domChangeCount++,(ios$1&&r.input.lastIOSEnter>Date.now()-225||android$1)&&o.some(_=>_.nodeType==1&&!isInline.test(_.nodeName))&&(!I||I.endA>=I.endB)&&r.someProp("handleKeyDown",_=>_(r,keyEvent(13,"Enter")))){r.input.lastIOSEnter=0;return}if(!I)if(A&&c instanceof TextSelection&&!c.empty&&c.$head.sameParent(c.$anchor)&&!r.composing&&!(g.sel&&g.sel.anchor!=g.sel.head))I={start:c.from,endA:c.to,endB:c.to};else{if(g.sel){let _=resolveSelection(r,r.state.doc,g.sel);if(_&&!_.eq(r.state.selection)){let M=r.state.tr.setSelection(_);s&&M.setMeta("composition",s),r.dispatch(M)}}return}r.state.selection.from<r.state.selection.to&&I.start==I.endB&&r.state.selection instanceof TextSelection&&(I.start>r.state.selection.from&&I.start<=r.state.selection.from+2&&r.state.selection.from>=g.from?I.start=r.state.selection.from:I.endA<r.state.selection.to&&I.endA>=r.state.selection.to-2&&r.state.selection.to<=g.to&&(I.endB+=r.state.selection.to-I.endA,I.endA=r.state.selection.to)),ie$3&&ie_version<=11&&I.endB==I.start+1&&I.endA==I.start&&I.start>g.from&&g.doc.textBetween(I.start-g.from-1,I.start-g.from+1)=="  "&&(I.start--,I.endA--,I.endB--);let p=g.doc.resolveNoCache(I.start-g.from),m=g.doc.resolveNoCache(I.endB-g.from),E=h.resolve(I.start),B=p.sameParent(m)&&p.parent.inlineContent&&E.end()>=I.endA,Q;if((ios$1&&r.input.lastIOSEnter>Date.now()-225&&(!B||o.some(_=>_.nodeName=="DIV"||_.nodeName=="P"))||!B&&p.pos<g.doc.content.size&&(!p.sameParent(m)||!p.parent.inlineContent)&&!/\S/.test(g.doc.textBetween(p.pos,m.pos,"",""))&&(Q=Selection.findFrom(g.doc.resolve(p.pos+1),1,!0))&&Q.head>p.pos)&&r.someProp("handleKeyDown",_=>_(r,keyEvent(13,"Enter")))){r.input.lastIOSEnter=0;return}if(r.state.selection.anchor>I.start&&looksLikeBackspace(h,I.start,I.endA,p,m)&&r.someProp("handleKeyDown",_=>_(r,keyEvent(8,"Backspace")))){android$1&&chrome$1&&r.domObserver.suppressSelectionUpdates();return}chrome$1&&I.endB==I.start&&(r.input.lastChromeDelete=Date.now()),android$1&&!B&&p.start()!=m.start()&&m.parentOffset==0&&p.depth==m.depth&&g.sel&&g.sel.anchor==g.sel.head&&g.sel.head==I.endA&&(I.endB-=2,m=g.doc.resolveNoCache(I.endB-g.from),setTimeout(()=>{r.someProp("handleKeyDown",function(_){return _(r,keyEvent(13,"Enter"))})},20));let w=I.start,y=I.endA,S=_=>{let M=_||r.state.tr.replace(w,y,g.doc.slice(I.start-g.from,I.endB-g.from));if(g.sel){let v=resolveSelection(r,M.doc,g.sel);v&&!(chrome$1&&r.composing&&v.empty&&(I.start!=I.endB||r.input.lastChromeDelete<Date.now()-100)&&(v.head==w||v.head==M.mapping.map(y)-1)||ie$3&&v.empty&&v.head==w)&&M.setSelection(v)}return s&&M.setMeta("composition",s),M.scrollIntoView()},D;if(B){if(p.pos==m.pos){ie$3&&ie_version<=11&&p.parentOffset==0&&(r.domObserver.suppressSelectionUpdates(),setTimeout(()=>selectionToDOM(r),20));let _=S(r.state.tr.delete(w,y)),M=h.resolve(I.start).marksAcross(h.resolve(I.endA));M&&_.ensureMarks(M),r.dispatch(_)}else if(I.endA==I.endB&&(D=isMarkChange(p.parent.content.cut(p.parentOffset,m.parentOffset),E.parent.content.cut(E.parentOffset,I.endA-E.start())))){let _=S(r.state.tr);D.type=="add"?_.addMark(w,y,D.mark):_.removeMark(w,y,D.mark),r.dispatch(_)}else if(p.parent.child(p.index()).isText&&p.index()==m.index()-(m.textOffset?0:1)){let _=p.parent.textBetween(p.parentOffset,m.parentOffset),M=()=>S(r.state.tr.insertText(_,w,y));r.someProp("handleTextInput",v=>v(r,w,y,_,M))||r.dispatch(M())}}else r.dispatch(S())}function resolveSelection(r,e,n){return Math.max(n.anchor,n.head)>e.content.size?null:selectionBetween(r,e.resolve(n.anchor),e.resolve(n.head))}function isMarkChange(r,e){let n=r.firstChild.marks,A=e.firstChild.marks,o=n,s=A,a,l,c;for(let h=0;h<A.length;h++)o=A[h].removeFromSet(o);for(let h=0;h<n.length;h++)s=n[h].removeFromSet(s);if(o.length==1&&s.length==0)l=o[0],a="add",c=h=>h.mark(l.addToSet(h.marks));else if(o.length==0&&s.length==1)l=s[0],a="remove",c=h=>h.mark(l.removeFromSet(h.marks));else return null;let g=[];for(let h=0;h<e.childCount;h++)g.push(c(e.child(h)));if(Fragment.from(g).eq(r))return{mark:l,type:a}}function looksLikeBackspace(r,e,n,A,o){if(n-e<=o.pos-A.pos||skipClosingAndOpening(A,!0,!1)<o.pos)return!1;let s=r.resolve(e);if(!A.parent.isTextblock){let l=s.nodeAfter;return l!=null&&n==e+l.nodeSize}if(s.parentOffset<s.parent.content.size||!s.parent.isTextblock)return!1;let a=r.resolve(skipClosingAndOpening(s,!0,!0));return!a.parent.isTextblock||a.pos>n||skipClosingAndOpening(a,!0,!1)<n?!1:A.parent.content.cut(A.parentOffset).eq(a.parent.content)}function skipClosingAndOpening(r,e,n){let A=r.depth,o=e?r.end():r.pos;for(;A>0&&(e||r.indexAfter(A)==r.node(A).childCount);)A--,o++,e=!1;if(n){let s=r.node(A).maybeChild(r.indexAfter(A));for(;s&&!s.isLeaf;)s=s.firstChild,o++}return o}function findDiff$1(r,e,n,A,o){let s=r.findDiffStart(e,n);if(s==null)return null;let{a,b:l}=r.findDiffEnd(e,n+r.size,n+e.size);if(o=="end"){let c=Math.max(0,s-Math.min(a,l));A-=a+c-s}if(a<s&&r.size<e.size){let c=A<=s&&A>=a?s-A:0;s-=c,s&&s<e.size&&isSurrogatePair(e.textBetween(s-1,s+1))&&(s+=c?1:-1),l=s+(l-a),a=s}else if(l<s){let c=A<=s&&A>=l?s-A:0;s-=c,s&&s<r.size&&isSurrogatePair(r.textBetween(s-1,s+1))&&(s+=c?1:-1),a=s+(a-l),l=s}return{start:s,endA:a,endB:l}}function isSurrogatePair(r){if(r.length!=2)return!1;let e=r.charCodeAt(0),n=r.charCodeAt(1);return e>=56320&&e<=57343&&n>=55296&&n<=56319}let EditorView$1=class{constructor(e,n){this._root=null,this.focused=!1,this.trackWrites=null,this.mounted=!1,this.markCursor=null,this.cursorWrapper=null,this.lastSelectedViewDesc=void 0,this.input=new InputState$1,this.prevDirectPlugins=[],this.pluginViews=[],this.requiresGeckoHackNode=!1,this.dragging=null,this._props=n,this.state=n.state,this.directPlugins=n.plugins||[],this.directPlugins.forEach(checkStateComponent$1),this.dispatch=this.dispatch.bind(this),this.dom=e&&e.mount||document.createElement("div"),e&&(e.appendChild?e.appendChild(this.dom):typeof e=="function"?e(this.dom):e.mount&&(this.mounted=!0)),this.editable=getEditable$1(this),updateCursorWrapper(this),this.nodeViews=buildNodeViews$1(this),this.docView=docViewDesc(this.state.doc,computeDocDeco(this),viewDecorations(this),this.dom,this),this.domObserver=new DOMObserver$1(this,(A,o,s,a)=>readDOMChange(this,A,o,s,a)),this.domObserver.start(),initInput(this),this.updatePluginViews()}get composing(){return this.input.composing}get props(){if(this._props.state!=this.state){let e=this._props;this._props={};for(let n in e)this._props[n]=e[n];this._props.state=this.state}return this._props}update(e){e.handleDOMEvents!=this._props.handleDOMEvents&&ensureListeners(this);let n=this._props;this._props=e,e.plugins&&(e.plugins.forEach(checkStateComponent$1),this.directPlugins=e.plugins),this.updateStateInner(e.state,n)}setProps(e){let n={};for(let A in this._props)n[A]=this._props[A];n.state=this.state;for(let A in e)n[A]=e[A];this.update(n)}updateState(e){this.updateStateInner(e,this._props)}updateStateInner(e,n){var A;let o=this.state,s=!1,a=!1;e.storedMarks&&this.composing&&(clearComposition(this),a=!0),this.state=e;let l=o.plugins!=e.plugins||this._props.plugins!=n.plugins;if(l||this._props.plugins!=n.plugins||this._props.nodeViews!=n.nodeViews){let f=buildNodeViews$1(this);changedNodeViews$1(f,this.nodeViews)&&(this.nodeViews=f,s=!0)}(l||n.handleDOMEvents!=this._props.handleDOMEvents)&&ensureListeners(this),this.editable=getEditable$1(this),updateCursorWrapper(this);let c=viewDecorations(this),g=computeDocDeco(this),h=o.plugins!=e.plugins&&!o.doc.eq(e.doc)?"reset":e.scrollToSelection>o.scrollToSelection?"to selection":"preserve",d=s||!this.docView.matchesNode(e.doc,g,c);(d||!e.selection.eq(o.selection))&&(a=!0);let u=h=="preserve"&&a&&this.dom.style.overflowAnchor==null&&storeScrollPos(this);if(a){this.domObserver.stop();let f=d&&(ie$3||chrome$1)&&!this.composing&&!o.selection.empty&&!e.selection.empty&&selectionContextChanged(o.selection,e.selection);if(d){let I=chrome$1?this.trackWrites=this.domSelectionRange().focusNode:null;this.composing&&(this.input.compositionNode=findCompositionNode$1(this)),(s||!this.docView.update(e.doc,g,c,this))&&(this.docView.updateOuterDeco(g),this.docView.destroy(),this.docView=docViewDesc(e.doc,g,c,this.dom,this)),I&&!this.trackWrites&&(f=!0)}f||!(this.input.mouseDown&&this.domObserver.currentSelection.eq(this.domSelectionRange())&&anchorInRightPlace(this))?selectionToDOM(this,f):(syncNodeSelection(this,e.selection),this.domObserver.setCurSelection()),this.domObserver.start()}this.updatePluginViews(o),!((A=this.dragging)===null||A===void 0)&&A.node&&!o.doc.eq(e.doc)&&this.updateDraggedNode(this.dragging,o),h=="reset"?this.dom.scrollTop=0:h=="to selection"?this.scrollToSelection():u&&resetScrollPos(u)}scrollToSelection(){let e=this.domSelectionRange().focusNode;if(!(!e||!this.dom.contains(e.nodeType==1?e:e.parentNode))){if(!this.someProp("handleScrollToSelection",n=>n(this)))if(this.state.selection instanceof NodeSelection){let n=this.docView.domAfterPos(this.state.selection.from);n.nodeType==1&&scrollRectIntoView$1(this,n.getBoundingClientRect(),e)}else scrollRectIntoView$1(this,this.coordsAtPos(this.state.selection.head,1),e)}}destroyPluginViews(){let e;for(;e=this.pluginViews.pop();)e.destroy&&e.destroy()}updatePluginViews(e){if(!e||e.plugins!=this.state.plugins||this.directPlugins!=this.prevDirectPlugins){this.prevDirectPlugins=this.directPlugins,this.destroyPluginViews();for(let n=0;n<this.directPlugins.length;n++){let A=this.directPlugins[n];A.spec.view&&this.pluginViews.push(A.spec.view(this))}for(let n=0;n<this.state.plugins.length;n++){let A=this.state.plugins[n];A.spec.view&&this.pluginViews.push(A.spec.view(this))}}else for(let n=0;n<this.pluginViews.length;n++){let A=this.pluginViews[n];A.update&&A.update(this,e)}}updateDraggedNode(e,n){let A=e.node,o=-1;if(this.state.doc.nodeAt(A.from)==A.node)o=A.from;else{let s=A.from+(this.state.doc.content.size-n.doc.content.size);(s>0&&this.state.doc.nodeAt(s))==A.node&&(o=s)}this.dragging=new Dragging(e.slice,e.move,o<0?void 0:NodeSelection.create(this.state.doc,o))}someProp(e,n){let A=this._props&&this._props[e],o;if(A!=null&&(o=n?n(A):A))return o;for(let a=0;a<this.directPlugins.length;a++){let l=this.directPlugins[a].props[e];if(l!=null&&(o=n?n(l):l))return o}let s=this.state.plugins;if(s)for(let a=0;a<s.length;a++){let l=s[a].props[e];if(l!=null&&(o=n?n(l):l))return o}}hasFocus(){if(ie$3){let e=this.root.activeElement;if(e==this.dom)return!0;if(!e||!this.dom.contains(e))return!1;for(;e&&this.dom!=e&&this.dom.contains(e);){if(e.contentEditable=="false")return!1;e=e.parentElement}return!0}return this.root.activeElement==this.dom}focus(){this.domObserver.stop(),this.editable&&focusPreventScroll$1(this.dom),selectionToDOM(this),this.domObserver.start()}get root(){let e=this._root;if(e==null){for(let n=this.dom.parentNode;n;n=n.parentNode)if(n.nodeType==9||n.nodeType==11&&n.host)return n.getSelection||(Object.getPrototypeOf(n).getSelection=()=>n.ownerDocument.getSelection()),this._root=n}return e||document}updateRoot(){this._root=null}posAtCoords(e){return posAtCoords$1(this,e)}coordsAtPos(e,n=1){return coordsAtPos(this,e,n)}domAtPos(e,n=0){return this.docView.domFromPos(e,n)}nodeDOM(e){let n=this.docView.descAt(e);return n?n.nodeDOM:null}posAtDOM(e,n,A=-1){let o=this.docView.posFromDOM(e,n,A);if(o==null)throw new RangeError("DOM position not inside the editor");return o}endOfTextblock(e,n){return endOfTextblock(this,n||this.state,e)}pasteHTML(e,n){return doPaste$1(this,"",e,!1,n||new ClipboardEvent("paste"))}pasteText(e,n){return doPaste$1(this,e,null,!0,n||new ClipboardEvent("paste"))}serializeForClipboard(e){return serializeForClipboard(this,e)}destroy(){this.docView&&(destroyInput(this),this.destroyPluginViews(),this.mounted?(this.docView.update(this.state.doc,[],viewDecorations(this),this),this.dom.textContent=""):this.dom.parentNode&&this.dom.parentNode.removeChild(this.dom),this.docView.destroy(),this.docView=null,clearReusedRange())}get isDestroyed(){return this.docView==null}dispatchEvent(e){return dispatchEvent(this,e)}domSelectionRange(){let e=this.domSelection();return e?safari$1&&this.root.nodeType===11&&deepActiveElement(this.dom.ownerDocument)==this.dom&&safariShadowSelectionRange(this,e)||e:{focusNode:null,focusOffset:0,anchorNode:null,anchorOffset:0}}domSelection(){return this.root.getSelection()}};EditorView$1.prototype.dispatch=function(r){let e=this._props.dispatchTransaction;e?e.call(this,r):this.updateState(this.state.apply(r))};function computeDocDeco(r){let e=Object.create(null);return e.class="ProseMirror",e.contenteditable=String(r.editable),r.someProp("attributes",n=>{if(typeof n=="function"&&(n=n(r.state)),n)for(let A in n)A=="class"?e.class+=" "+n[A]:A=="style"?e.style=(e.style?e.style+";":"")+n[A]:!e[A]&&A!="contenteditable"&&A!="nodeName"&&(e[A]=String(n[A]))}),e.translate||(e.translate="no"),[Decoration$1.node(0,r.state.doc.content.size,e)]}function updateCursorWrapper(r){if(r.markCursor){let e=document.createElement("img");e.className="ProseMirror-separator",e.setAttribute("mark-placeholder","true"),e.setAttribute("alt",""),r.cursorWrapper={dom:e,deco:Decoration$1.widget(r.state.selection.from,e,{raw:!0,marks:r.markCursor})}}else r.cursorWrapper=null}function getEditable$1(r){return!r.someProp("editable",e=>e(r.state)===!1)}function selectionContextChanged(r,e){let n=Math.min(r.$anchor.sharedDepth(r.head),e.$anchor.sharedDepth(e.head));return r.$anchor.start(n)!=e.$anchor.start(n)}function buildNodeViews$1(r){let e=Object.create(null);function n(A){for(let o in A)Object.prototype.hasOwnProperty.call(e,o)||(e[o]=A[o])}return r.someProp("nodeViews",n),r.someProp("markViews",n),e}function changedNodeViews$1(r,e){let n=0,A=0;for(let o in r){if(r[o]!=e[o])return!0;n++}for(let o in e)A++;return n!=A}function checkStateComponent$1(r){if(r.spec.state||r.spec.filterTransaction||r.spec.appendTransaction)throw new RangeError("Plugins passed directly to the view must not have a state component")}const MAX_MATCH=500;class InputRule{constructor(e,n,A={}){this.regex=e,this.regex=e,this.handler=typeof n=="string"?stringHandler(n):n,this.undoable=A.undoable!==!1,this.inCode=A.inCode||!1}}function stringHandler(r){return function(e,n,A,o,s){e||(e=n.tr);let a=r;if(A[1]){const l=A[0].lastIndexOf(A[1]);a+=A[0].slice(l+A[1].length),o+=l;const c=o-s;c>0&&(a=A[0].slice(l-c,l)+a,o=s)}return e.insertText(a,o,s)}}class InputRulesPlugin extends Plugin{constructor(e){super({key:new PluginKey("input-rules"),state:{init(){return null},apply(n,A){const o=n.getMeta(this);return o||(n.selectionSet||n.docChanged?null:A)}},props:{handleTextInput(n,A,o,s){const a=runInputRulesRange(A,o,s),l=c=>{n.dispatch(c)};return a(n.state,l,n)},handleDOMEvents:{compositionend:n=>{setTimeout(()=>{const{$cursor:A}=n.state.selection;if(A){const o=runInputRulesRange(A.pos,A.pos,""),s=a=>{n.dispatch(a)};return o(n.state,s,n)}})}}},rules:e,isInputRules:!0})}}const runInputRulesTexts=()=>{const r=(e,n,A)=>{const s=e.plugins.find(g=>g.spec.isInputRules);if(!s)return!1;const a=s.spec.rules;if(A?.composing)return!1;let l=e.doc,c=e.tr;for(let g=0;g<a.length;g++){const h=a[g],d=[];if(l.descendants((u,f)=>{u.isText&&d.push({pos:f,node:u})}),d.length===0)return!1;for(let u=d.length-1;u>=0;u--){const{pos:f,node:I}=d[u];if(!I.isText||!I.text)continue;let p=I.text;if(I.type.spec.code){if(!h.inCode)continue}else if(h.inCode==="only")continue;const m=h.regex.exec(p);if(!m)continue;const E=m.index,B=f+E,Q=f+E+m[0].length;let w=h.handler(c,e,m,B,Q);w&&(c=w,l=c.doc,h.undoable&&c.setMeta(s,{transform:c,from:B,to:Q,text:p}))}}return n&&n(c),c.docChanged};return r.displayName="runInputRulesTexts",r},runInputRulesRange=(r,e,n)=>{const A=(o,s,a)=>{const c=o.plugins.find(f=>f.spec.isInputRules);if(!c)return!1;const g=c.spec.rules;if(a?.composing)return!1;const h=o.doc.resolve(r),d=h.parent.textBetween(Math.max(0,h.parentOffset-MAX_MATCH),h.parentOffset,null,"")+n;let u=o.tr;for(let f=0;f<g.length;f++){const I=g[f];if(h.parent.type.spec.code){if(!I.inCode)continue}else if(I.inCode==="only")continue;const p=I.regex.exec(d);if(!p)continue;const m=I.handler(u,o,p,u.mapping.map(r-(p[0].length-n.length)),u.mapping.map(e));if(m){u=m,I.undoable&&u.setMeta(c,{transform:u,from:r,to:e,text:n});break}}return u.docChanged?(s?.(u),!0):!1};return A.displayName="runInputRulesRange",A},undoInputRuleCommand=(r,e)=>{const A=r.plugins.find(s=>s.spec.isInputRules);if(!A)return!1;const o=A.getState(r);if(!o)return!1;if(e){const s=r.tr,a=o.transform;for(let l=a.steps.length-1;l>=0;l--)s.step(a.steps[l].invert(a.docs[l]));if(o.text){const l=s.doc.resolve(o.from).marks();s.replaceWith(o.from,o.to,r.schema.text(o.text,l))}else s.delete(o.from,o.to);e(s)}return!0},base$1={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},shift$1={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},mac$3=typeof navigator<"u"&&/Mac/.test(navigator.platform),ie$2=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(let r=0;r<10;r++)base$1[48+r]=base$1[96+r]=String(r);for(let r=1;r<=24;r++)base$1[r+111]="F"+r;for(let r=65;r<=90;r++)base$1[r]=String.fromCharCode(r+32),shift$1[r]=String.fromCharCode(r);for(const r in base$1)Object.prototype.hasOwnProperty.call(shift$1,r)||(shift$1[r]=base$1[r]);function keyName$1(r){let n=!(mac$3&&r.metaKey&&r.shiftKey&&!r.ctrlKey&&!r.altKey||ie$2&&r.shiftKey&&r.key&&r.key.length==1||r.key=="Unidentified")&&r.key||(r.shiftKey?shift$1:base$1)[r.keyCode]||r.key||"Unidentified";return n=="Esc"&&(n="Escape"),n=="Del"&&(n="Delete"),n=="Left"&&(n="ArrowLeft"),n=="Up"&&(n="ArrowUp"),n=="Right"&&(n="ArrowRight"),n=="Down"&&(n="ArrowDown"),n}const mac$2=typeof navigator<"u"&&/Mac|iP(hone|[oa]d)/.test(navigator?.platform),windows$1=typeof navigator<"u"&&/Win/.test(navigator?.platform);function normalizeKeyName$1(r){let e=r.split(/-(?!$)/),n=e[e.length-1];n=="Space"&&(n=" ");let A,o,s,a;for(let l=0;l<e.length-1;l++){let c=e[l];if(/^(cmd|meta|m)$/i.test(c))a=!0;else if(/^a(lt)?$/i.test(c))A=!0;else if(/^(c|ctrl|control)$/i.test(c))o=!0;else if(/^s(hift)?$/i.test(c))s=!0;else if(/^mod$/i.test(c))mac$2?a=!0:o=!0;else throw new Error("Unrecognized modifier name: "+c)}return A&&(n="Alt-"+n),o&&(n="Ctrl-"+n),a&&(n="Meta-"+n),s&&(n="Shift-"+n),n}function normalize(r){let e=Object.create(null);for(let n in r)e[normalizeKeyName$1(n)]=r[n];return e}function modifiers$1(r,e,n=!0){return e.altKey&&(r="Alt-"+r),e.ctrlKey&&(r="Ctrl-"+r),e.metaKey&&(r="Meta-"+r),n&&e.shiftKey&&(r="Shift-"+r),r}class KeymapPlugin extends Plugin{constructor(e){super({key:new PluginKey("keymap"),props:{handleKeyDown:keydownHandler(e)}})}}function keydownHandler(r){let e=normalize(r);return function(n,A){let o=keyName$1(A),s,a=e[modifiers$1(o,A)];if(a&&a(n.state,n.dispatch,n))return!0;if(o.length==1&&o!=" "){if(A.shiftKey){let l=e[modifiers$1(o,A,!1)];if(l&&l(n.state,n.dispatch,n))return!0}if((A.altKey||A.metaKey||A.ctrlKey)&&!(windows$1&&A.ctrlKey&&A.altKey)&&(s=base$1[A.keyCode])&&s!=o){let l=e[modifiers$1(s,A)];if(l&&l(n.state,n.dispatch,n))return!0}}return!1}}function firstCommand$1(...r){const e=function(n,A,o){for(let s=0;s<r.length;s++)if(r[s](n,A,o))return r[s].displayName!=="first"&&console.debug("firstCommand: ",r[s].displayName||r[s]),!0;return!1};return e.displayName="first",e}function getHtmlAttributes(r,e){const n={};if(r.attributes)for(const[A,o]of Object.entries(r.attributes))typeof e.attrs[A]<"u"?n[A]=e.attrs[A]:o.toDom?n[A]=o.toDom(e):n[A]=o.default;return n}function setHtmlAttributes(r,e){const n={};if(r.attributes)for(const[A,o]of Object.entries(r.attributes))o.fromDom?n[A]=o.fromDom(e):n[A]=o.default;return n}function addAttributesToSchema(r,e){if(e.attributes){r.attrs||(r.attrs={});for(const[n,A]of Object.entries(e.attributes))r.attrs[n]=A,A.toDom||(A.toDom=o=>o.attrs[n])}}class TrackSelecionPlugin extends Plugin{constructor(e){super({key:new PluginKey("track-selection"),view(n){return{update(A,o){const s=A.state,a=o.selection,l=s.selection;if(!a.eq(l)){const c=new CustomEvent("selection",{detail:{selection:l}});e.dispatchEvent(c)}}}}})}}function splitExtensions(r){const e=Array.from(r).filter(o=>o.type==="extension"),n=Array.from(r).filter(o=>o.type==="node"),A=Array.from(r).filter(o=>o.type==="mark");return{baseExtensions:e,nodeExtensions:n,markExtensions:A}}class ExtensionManager{constructor(e,n=!1){this.editorKits=e,this.debug=n,this.extensions=new Set,this.plugins=[],this.nodeViews={},this.converters={};const A=e.reduce((o,s)=>o.concat(s.getExtensions()),[]);this.setupExtensions(new Set(A))}getExtension(e){const{baseExtensions:n}=splitExtensions(this.extensions);for(const A of n)if(A.name===e)return A}initPlugins(e,n){const A=[],o=new Map,s=(l,c)=>{for(const g in l){if(!l[g])continue;const h=e.commandFactories[l[g]];if(!h){console.warn(`No command constructor: ${l[g]}`);continue}const d=h(),u=o.get(g);u?o.set(g,firstCommand$1(d,u)):o.set(g,d)}};let a={};for(const l of this.extensions){if(l.setEditor(e),l.type==="node"){const c=n.nodes[l.name];A.push(...l.getInputRules(c)),this.plugins.push(...l.getProseMirrorPlugins()),e.mergeCommandFactories(l.getCommandFactories(e,c),l.name),s(l.getKeyboardShortcuts(e),l.name),a={...a,...l.getConverters(e,n)};const g=l.getNodeView(e);g&&(this.nodeViews[l.name]=g)}if(l.type==="mark"){const c=n.marks[l.name];A.push(...l.getInputRules(c)),e.mergeCommandFactories(l.getCommandFactories(e,c),l.name),s(l.getKeyboardShortcuts(e),l.name)}l.type==="extension"&&(this.plugins.push(...l.getProseMirrorPlugins()),e.mergeCommandFactories(l.getCommandFactories(e),l.name),s(l.getKeyboardShortcuts(e),l.name),a={...a,...l.getConverters(e,n)})}if(this.debug)for(const l in o){const c=o.get(l);if(!c)continue;const g=(h,d,u)=>(console.debug(`Key: ${l}`),!0);o.set(l,firstCommand$1(g,c))}this.converters=a,this.plugins.push(new InputRulesPlugin(A)),this.plugins.push(new KeymapPlugin(Object.fromEntries(o))),this.plugins.push(new TrackSelecionPlugin(e))}setupExtensions(e){const n=new Map,A=l=>{for(const c of l){if("name"in c){const g=n.get(c.name);if(g&&"type"in g&&c.type!==g.type)throw new Error(`Duplicate mark/node: ${c.name}`);n.set(c.name,c)}if("requires"in c){const g=Array.from(c.requires).filter(h=>typeof h!="string");A(new Set(g))}}};A(e);const o=new Set,s=l=>{this.debug&&console.info(`Initialize ${l.type} ${l.name}`),this.extensions.add(l)};function a(l){if(!("name"in l&&o.has(l.name))){if("requires"in l){const g=(l.requires||[]).map(h=>typeof h=="string"?h:"name"in h?h.name:"");for(const h of g)if(!o.has(h)){const d=n.get(h);if(!d)throw new Error(`Required extension for (${"name"in l?l.name:l}) not found: ${h}`);a(d)}}"name"in l&&(s(l),o.add(l.name),n.delete(l.name))}}for(const l of n.values())a(l);if(n.size>0)throw new Error("Not all extensions initialized: "+Array.from(n.keys()).join(", "))}getSchemaByResolvedExtensions(){const{nodeExtensions:e,markExtensions:n,baseExtensions:A}=splitExtensions(this.extensions),o={};let s="";for(const c of e){if(o[c.name]=c.getNodeSpec(),o[c.name].EMPTY_DOC){if(s)throw new Error(`Multiple topNodes: ${c.name}, ${s}`);s=c.name}addAttributesToSchema(o[c.name],c)}const a={};for(const c of n)a[c.name]=c.getMarkSpec(),addAttributesToSchema(a[c.name],c);const l={topNode:s||"doc",nodes:o,marks:a};for(const c of A)"setupSpec"in A&&c.setupSpec(l);return new Schema(l)}created(e,n){const{baseExtensions:A}=splitExtensions(this.extensions);for(const o of A)if(Array.isArray(o.conflicts)){for(const s of o.conflicts)if(this.getExtension(s))throw new Error(`Extension conflict: ${o.name} vs ${s}`)}this.initPlugins(e,n);for(const o of this.extensions)o.created()}}function createChainableState(r,e){let{selection:n}=r,{doc:A}=r,{storedMarks:o}=r;return{...e,apply:e.apply.bind(e),applyTransaction:e.applyTransaction.bind(e),plugins:e.plugins,schema:e.schema,reconfigure:e.reconfigure.bind(e),toJSON:e.toJSON.bind(e),get storedMarks(){return o},get selection(){return n},get doc(){return A},get tr(){return n=r.selection,A=r.doc,o=r.storedMarks,r}}}const wrapInList=(r,e=null)=>function(n,A,o){let{$from:s,$to:a}=n.selection,l=s.blockRange(a);if(!l)return!1;const c=n.tr;return wrapRangeInList(c,l,r,e)(n,A)?(A&&A(c.scrollIntoView()),!0):!1},wrapRangeInList=(r,e,n,A=null)=>()=>{let s=!1,a=e,l=e.$from.doc;if(e.depth>=2&&e.$from.node(e.depth-1).type.compatibleContent(n)&&e.startIndex==0){if(e.$from.index(e.depth-1)==0)return!1;let g=l.resolve(e.start-2);a=new NodeRange(g,g,e.depth),e.endIndex<e.parent.childCount&&(e=new NodeRange(e.$from,l.resolve(e.$to.end(e.depth)),e.depth)),s=!0}let c=findWrapping(a,n,A,e);return c?(r&&doWrapInList(r,e,c,s,n),!0):!1};function doWrapInList(r,e,n,A,o){let s=Fragment.empty;for(let h=n.length-1;h>=0;h--)s=Fragment.from(n[h].type.create(n[h].attrs,s));r.step(new ReplaceAroundStep(e.start-(A?2:0),e.end,e.start,e.end,new Slice(s,0,0),n.length,!0));let a=0;for(let h=0;h<n.length;h++)n[h].type==o&&(a=h+1);let l=n.length-a,c=e.start+n.length-(A?2:0),g=e.parent;for(let h=e.startIndex,d=e.endIndex,u=!0;h<d;h++,u=!1)!u&&canSplit(r.doc,c,l)&&(r.split(c,l),c+=2*l),c+=g.child(h).nodeSize;return r}const deleteSelection=()=>(r,e)=>r.selection.empty?!1:(e&&e(r.tr.deleteSelection().scrollIntoView()),!0);function atBlockStart(r,e){let{$cursor:n}=r.selection;return!n||(e?!e.endOfTextblock("backward",r):n.parentOffset>0)?null:n}const joinBackward=()=>(r,e,n)=>{let A=atBlockStart(r,n);if(!A)return!1;let o=findCutBefore(A);if(!o){let a=A.blockRange(),l=a&&liftTarget(a);return l==null?!1:(e&&e(r.tr.lift(a,l).scrollIntoView()),!0)}let s=o.nodeBefore;if(deleteBarrier(r,o,e,-1))return!0;if(A.parent.content.size==0&&(textblockAt(s,"end")||NodeSelection.isSelectable(s)))for(let a=A.depth;;a--){let l=replaceStep(r.doc,A.before(a),A.after(a),Slice.empty);if(l&&l.slice.size<l.to-l.from){if(e){let c=r.tr.step(l);c.setSelection(textblockAt(s,"end")?Selection.findFrom(c.doc.resolve(c.mapping.map(o.pos,-1)),-1):NodeSelection.create(c.doc,o.pos-s.nodeSize)),e(c.scrollIntoView())}return!0}if(a==1||A.node(a-1).childCount>1)break}return s.isAtom&&o.depth==A.depth-1?(e&&e(r.tr.delete(o.pos-s.nodeSize,o.pos).scrollIntoView()),!0):!1},joinTextblockBackward=()=>(r,e,n)=>{let A=atBlockStart(r,n);if(!A)return!1;let o=findCutBefore(A);return o?joinTextblocksAround(r,o,e):!1},joinTextblockForward=()=>(r,e,n)=>{let A=atBlockEnd(r,n);if(!A)return!1;let o=findCutAfter(A);return o?joinTextblocksAround(r,o,e):!1};function joinTextblocksAround(r,e,n){let A=e.nodeBefore,o=A,s=e.pos-1;for(;!o.isTextblock;s--){if(o.type.spec.isolating)return!1;let h=o.lastChild;if(!h)return!1;o=h}let a=e.nodeAfter,l=a,c=e.pos+1;for(;!l.isTextblock;c++){if(l.type.spec.isolating)return!1;let h=l.firstChild;if(!h)return!1;l=h}let g=replaceStep(r.doc,s,c,Slice.empty);if(!g||g.from!=s||g instanceof ReplaceStep&&g.slice.size>=c-s)return!1;if(n){let h=r.tr.step(g);h.setSelection(TextSelection.create(h.doc,s)),n(h.scrollIntoView())}return!0}function textblockAt(r,e,n=!1){for(let A=r;A;A=e=="start"?A.firstChild:A.lastChild){if(A.isTextblock)return!0;if(n&&A.childCount!=1)return!1}return!1}const selectNodeBackward=()=>(r,e,n)=>{let{$head:A,empty:o}=r.selection,s=A;if(!o)return!1;if(A.parent.isTextblock){if(n?!n.endOfTextblock("backward",r):A.parentOffset>0)return!1;s=findCutBefore(A)}let a=s&&s.nodeBefore;return!a||!NodeSelection.isSelectable(a)?!1:(e&&e(r.tr.setSelection(NodeSelection.create(r.doc,s.pos-a.nodeSize)).scrollIntoView()),!0)};function findCutBefore(r){if(!r.parent.type.spec.isolating)for(let e=r.depth-1;e>=0;e--){if(r.index(e)>0)return r.doc.resolve(r.before(e+1));if(r.node(e).type.spec.isolating)break}return null}function atBlockEnd(r,e){let{$cursor:n}=r.selection;return!n||(e?!e.endOfTextblock("forward",r):n.parentOffset<n.parent.content.size)?null:n}const joinForward=()=>(r,e,n)=>{let A=atBlockEnd(r,n);if(!A)return!1;let o=findCutAfter(A);if(!o)return!1;let s=o.nodeAfter;if(deleteBarrier(r,o,e,1))return!0;if(A.parent.content.size==0&&(textblockAt(s,"start")||NodeSelection.isSelectable(s))){let a=replaceStep(r.doc,A.before(),A.after(),Slice.empty);if(a&&a.slice.size<a.to-a.from){if(e){let l=r.tr.step(a);l.setSelection(textblockAt(s,"start")?Selection.findFrom(l.doc.resolve(l.mapping.map(o.pos)),1):NodeSelection.create(l.doc,l.mapping.map(o.pos))),e(l.scrollIntoView())}return!0}}return s.isAtom&&o.depth==A.depth-1?(e&&e(r.tr.delete(o.pos,o.pos+s.nodeSize).scrollIntoView()),!0):!1},selectNodeForward=()=>(r,e,n)=>{let{$head:A,empty:o}=r.selection,s=A;if(!o)return!1;if(A.parent.isTextblock){if(n?!n.endOfTextblock("forward",r):A.parentOffset<A.parent.content.size)return!1;s=findCutAfter(A)}let a=s&&s.nodeAfter;return!a||!NodeSelection.isSelectable(a)?!1:(e&&e(r.tr.setSelection(NodeSelection.create(r.doc,s.pos)).scrollIntoView()),!0)};function findCutAfter(r){if(!r.parent.type.spec.isolating)for(let e=r.depth-1;e>=0;e--){let n=r.node(e);if(r.index(e)+1<n.childCount)return r.doc.resolve(r.after(e+1));if(n.type.spec.isolating)break}return null}const joinUp=()=>(r,e)=>{let n=r.selection,A=n instanceof NodeSelection,o;if(A){if(n.node.isTextblock||!canJoin(r.doc,n.from))return!1;o=n.from}else if(o=joinPoint(r.doc,n.from,-1),o==null)return!1;if(e){let s=r.tr.join(o);A&&s.setSelection(NodeSelection.create(s.doc,o-r.doc.resolve(o).nodeBefore.nodeSize)),e(s.scrollIntoView())}return!0},joinDown=()=>(r,e)=>{let n=r.selection,A;if(n instanceof NodeSelection){if(n.node.isTextblock||!canJoin(r.doc,n.to))return!1;A=n.to}else if(A=joinPoint(r.doc,n.to,1),A==null)return!1;return e&&e(r.tr.join(A).scrollIntoView()),!0},lift=()=>(r,e)=>{let{$from:n,$to:A}=r.selection,o=n.blockRange(A),s=o&&liftTarget(o);return s==null?!1:(e&&e(r.tr.lift(o,s).scrollIntoView()),!0)},newlineInCode=()=>{const r=(e,n)=>{let{$head:A,$anchor:o}=e.selection;return!A.parent.type.spec.code||!A.sameParent(o)?!1:(n&&n(e.tr.insertText(`
10
+ `).scrollIntoView()),!0)};return r.displayName="newlineInCode()",r};function defaultBlockAt(r){console.log("defaultBlockAt",r);for(let e=0;e<r.edgeCount;e++){let{type:n}=r.edge(e);if(n.isTextblock&&!n.hasRequiredAttrs())return n}return null}const exitCode=()=>(r,e)=>{let{$head:n,$anchor:A}=r.selection;if(!n.parent.type.spec.code||!n.sameParent(A))return!1;let o=n.node(-1),s=n.indexAfter(-1),a=defaultBlockAt(o.contentMatchAt(s));if(!a||!o.canReplaceWith(s,s,a))return!1;if(e){let l=n.after(),c=r.tr.replaceWith(l,l,a.createAndFill());c.setSelection(Selection.near(c.doc.resolve(l),1)),e(c.scrollIntoView())}return!0},createParagraphNear=()=>{const r=(e,n)=>{let A=e.selection,{$from:o,$to:s}=A;if(A instanceof AllSelection||o.parent.inlineContent||s.parent.inlineContent)return!1;let a=defaultBlockAt(s.parent.contentMatchAt(s.indexAfter()));if(!a||!a.isTextblock)return!1;if(n){let l=(!o.parentOffset&&s.index()<s.parent.childCount?o:s).pos,c=e.tr.insert(l,a.createAndFill());c.setSelection(TextSelection.create(c.doc,l+1)),n(c.scrollIntoView())}return!0};return r.displayName="createParagraphNear()",r},liftEmptyBlock=()=>{const r=(e,n)=>{let{$cursor:A}=e.selection;if(!A||A.parent.content.size)return!1;if(A.depth>1&&A.after()!=A.end(-1)){let a=A.before();if(canSplit(e.doc,a))return n&&n(e.tr.split(a).scrollIntoView()),!0}let o=A.blockRange(),s=o&&liftTarget(o);return s==null?!1:(n&&n(e.tr.lift(o,s).scrollIntoView()),!0)};return r.displayName="liftEmptyBlock()",r},splitBlockAs=r=>{const e=(n,A)=>{let{$from:o,$to:s}=n.selection;if(n.selection instanceof NodeSelection&&n.selection.node.isBlock)return!o.parentOffset||!canSplit(n.doc,o.pos)?!1:(A&&A(n.tr.split(o.pos).scrollIntoView()),!0);if(!o.depth)return!1;let a=[],l,c,g=!1,h=!1;for(let I=o.depth;;I--)if(o.node(I).isBlock){g=o.end(I)==o.pos+(o.depth-I),h=o.start(I)==o.pos-(o.depth-I),c=defaultBlockAt(o.node(I-1).contentMatchAt(o.indexAfter(I-1)));let m=r&&r(s.parent,g,o);a.unshift(m||(g&&c?{type:c}:null)),l=I;break}else{if(I==1)return!1;a.unshift(null)}let d=n.tr;(n.selection instanceof TextSelection||n.selection instanceof AllSelection)&&d.deleteSelection();let u=d.mapping.map(o.pos),f=canSplit(d.doc,u,a.length,a);if(f||(a[0]=c?{type:c}:null,f=canSplit(d.doc,u,a.length,a)),d.split(u,a.length,a),!g&&h&&o.node(l).type!=c){let I=d.mapping.map(o.before(l)),p=d.doc.resolve(I);c&&o.node(l-1).canReplaceWith(p.index(),p.index()+1,c)&&d.setNodeMarkup(d.mapping.map(o.before(l)),c)}return A&&A(d.scrollIntoView()),!0};return e.displayName="splitBlockAs()",e},splitBlock=()=>splitBlockAs(),splitBlockKeepMarks=()=>(r,e)=>splitBlockAs()(r,e&&(n=>{let A=r.storedMarks||r.selection.$to.parentOffset&&r.selection.$from.marks();A&&n.ensureMarks(A),e(n)})),selectParentNode=()=>(r,e)=>{let{$from:n,to:A}=r.selection,o,s=n.sharedDepth(A);return s==0?!1:(o=n.before(s),e&&e(r.tr.setSelection(NodeSelection.create(r.doc,o))),!0)},selectAll$2=()=>(r,e)=>(e&&e(r.tr.setSelection(new AllSelection(r.doc))),!0);function joinMaybeClear(r,e,n){let A=e.nodeBefore,o=e.nodeAfter,s=e.index();return!A||!o||!A.type.compatibleContent(o.type)?!1:!A.content.size&&e.parent.canReplace(s-1,s)?(n&&n(r.tr.delete(e.pos-A.nodeSize,e.pos).scrollIntoView()),!0):!e.parent.canReplace(s,s+1)||!(o.isTextblock||canJoin(r.doc,e.pos))?!1:(n&&n(r.tr.join(e.pos).scrollIntoView()),!0)}function deleteBarrier(r,e,n,A){let o=e.nodeBefore,s=e.nodeAfter,a,l,c=o.type.spec.isolating||s.type.spec.isolating;if(!c&&joinMaybeClear(r,e,n))return!0;let g=!c&&e.parent.canReplace(e.index(),e.index()+1);if(g&&(a=(l=o.contentMatchAt(o.childCount)).findWrapping(s.type))&&l.matchType(a[0]||s.type).validEnd){if(n){let f=e.pos+s.nodeSize,I=Fragment.empty;for(let E=a.length-1;E>=0;E--)I=Fragment.from(a[E].create(null,I));I=Fragment.from(o.copy(I));let p=r.tr.step(new ReplaceAroundStep(e.pos-1,f,e.pos,f,new Slice(I,1,0),a.length,!0)),m=p.doc.resolve(f+2*a.length);m.nodeAfter&&m.nodeAfter.type==o.type&&canJoin(p.doc,m.pos)&&p.join(m.pos),n(p.scrollIntoView())}return!0}let h=s.type.spec.isolating||A>0&&c?null:Selection.findFrom(e,1),d=h&&h.$from.blockRange(h.$to),u=d&&liftTarget(d);if(u!=null&&u>=e.depth)return n&&n(r.tr.lift(d,u).scrollIntoView()),!0;if(g&&textblockAt(s,"start",!0)&&textblockAt(o,"end")){let f=o,I=[];for(;I.push(f),!f.isTextblock;)f=f.lastChild;let p=s,m=1;for(;!p.isTextblock;p=p.firstChild)m++;if(f.canReplace(f.childCount,f.childCount,p.content)){if(n){let E=Fragment.empty;for(let Q=I.length-1;Q>=0;Q--)E=Fragment.from(I[Q].copy(E));let B=r.tr.step(new ReplaceAroundStep(e.pos-I.length,e.pos+s.nodeSize,e.pos+m,e.pos+s.nodeSize-m,new Slice(E,I.length,0),0,!0));n(B.scrollIntoView())}return!0}}return!1}function selectTextblockSide(r){return function(e,n){let A=e.selection,o=r<0?A.$from:A.$to,s=o.depth;for(;o.node(s).isInline;){if(!s)return!1;s--}return o.node(s).isTextblock?(n&&n(e.tr.setSelection(TextSelection.create(e.doc,r<0?o.start(s):o.end(s)))),!0):!1}}const wrapIn=(r,e=null)=>function(n,A){let{$from:o,$to:s}=n.selection,a=o.blockRange(s),l=a&&findWrapping(a,r,e);return l?(A&&A(n.tr.wrap(a,l).scrollIntoView()),!0):!1},setBlockType=(r,e=null)=>function(n,A){let o=!1;for(let s=0;s<n.selection.ranges.length&&!o;s++){let{$from:{pos:a},$to:{pos:l}}=n.selection.ranges[s];n.doc.nodesBetween(a,l,(c,g)=>{if(o)return!1;if(!(!c.isTextblock||c.hasMarkup(r,e)))if(c.type==r)o=!0;else{let h=n.doc.resolve(g),d=h.index();o=h.parent.canReplaceWith(d,d+1,r)}})}if(!o)return!1;if(A){let s=n.tr;for(let a=0;a<n.selection.ranges.length;a++){let{$from:{pos:l},$to:{pos:c}}=n.selection.ranges[a];s.setBlockType(l,c,r,e)}A(s.scrollIntoView())}return!0};function markApplies(r,e,n,A){for(let o=0;o<e.length;o++){let{$from:s,$to:a}=e[o],l=s.depth==0?r.inlineContent&&r.type.allowsMarkType(n):!1;if(r.nodesBetween(s.pos,a.pos,(c,g)=>{if(l||!A&&c.isAtom&&c.isInline&&g>=s.pos&&g+c.nodeSize<=a.pos)return!1;l=c.inlineContent&&c.type.allowsMarkType(n)}),l)return!0}return!1}function removeInlineAtoms(r){let e=[];for(let n=0;n<r.length;n++){let{$from:A,$to:o}=r[n];A.doc.nodesBetween(A.pos,o.pos,(s,a)=>{if(s.isAtom&&s.content.size&&s.isInline&&a>=A.pos&&a+s.nodeSize<=o.pos)return a+1>A.pos&&e.push(new SelectionRange$2(A,A.doc.resolve(a+1))),A=A.doc.resolve(a+1+s.content.size),!1}),A.pos<o.pos&&e.push(new SelectionRange$2(A,o))}return e}function toggleMark(r,e=null,n){let A=(n&&n.removeWhenPresent)!==!1,o=(n&&n.enterInlineAtoms)!==!1,s=!(n&&n.includeWhitespace);return function(a,l){let{empty:c,$cursor:g,ranges:h}=a.selection;if(c&&!g||!markApplies(a.doc,h,r,o))return!1;if(l)if(g)r.isInSet(a.storedMarks||g.marks())?l(a.tr.removeStoredMark(r)):l(a.tr.addStoredMark(r.create(e)));else{let d,u=a.tr;o||(h=removeInlineAtoms(h)),A?d=!h.some(f=>a.doc.rangeHasMark(f.$from.pos,f.$to.pos,r)):d=!h.every(f=>{let I=!1;return u.doc.nodesBetween(f.$from.pos,f.$to.pos,(p,m,E)=>{if(I)return!1;I=!r.isInSet(p.marks)&&!!E&&E.type.allowsMarkType(r)&&!(p.isText&&/^\s*$/.test(p.textBetween(Math.max(0,f.$from.pos-m),Math.min(p.nodeSize,f.$to.pos-m))))}),!I});for(let f=0;f<h.length;f++){let{$from:I,$to:p}=h[f];if(!d)u.removeMark(I.pos,p.pos,r);else{let m=I.pos,E=p.pos,B=I.nodeAfter,Q=p.nodeBefore,w=s&&B&&B.isText?/^\s*/.exec(B.text)[0].length:0,y=s&&Q&&Q.isText?/\s*$/.exec(Q.text)[0].length:0;m+w<E&&(m+=w,E-=y),u.addMark(m,E,r.create(e))}}l(u.scrollIntoView())}return!0}}const undoInputRule=()=>undoInputRuleCommand,baseCommandFactories={wrapInList,wrapRangeInList,deleteSelection,joinBackward,joinTextblockBackward,joinTextblockForward,joinForward,joinUp,joinDown,lift,newlineInCode,exitCode,createParagraphNear,liftEmptyBlock,splitBlockAs,splitBlock,splitBlockKeepMarks,selectAll:selectAll$2,selectParentNode,selectNodeBackward,selectNodeForward,selectTextblockStart:()=>selectTextblockSide(-1),selectTextblockEnd:()=>selectTextblockSide(1),wrapIn,setBlockType,toggleMark,undoInputRule,runInputRulesRange,runInputRulesTexts};function firstCommand(...r){const e=function(n,A,o){for(let s=0;s<r.length;s++)if(r[s](n,A,o))return r[s].displayName!=="first"&&console.debug("firstCommand: ",r[s].displayName||r[s]),!0;return!1};return e.displayName="first",e}const backspace=firstCommand(baseCommandFactories.undoInputRule(),baseCommandFactories.deleteSelection(),baseCommandFactories.joinBackward(),baseCommandFactories.selectNodeBackward()),del=firstCommand(baseCommandFactories.deleteSelection(),baseCommandFactories.joinForward(),baseCommandFactories.selectNodeForward()),enter=firstCommand(baseCommandFactories.newlineInCode(),baseCommandFactories.createParagraphNear(),baseCommandFactories.liftEmptyBlock(),baseCommandFactories.splitBlock()),keyCommandFactories={backspace:()=>backspace,del:()=>del,enter:()=>enter},replaceRangeText=(r,e)=>(n,A)=>{const o=n.tr,s=o.mapping.map(r.from),a=o.mapping.map(r.to),l=Fragment.from(n.schema.text(e)),c=new Slice(l,0,0);return o.replace(s,a,c),A&&A(o),!0},replaceRangeSlice=(r,e)=>(n,A)=>{const o=n.tr,s=o.mapping.map(r.from),a=o.mapping.map(r.to);return o.replace(s,a,e),A&&A(o),!0};function getTopMostBlockStartForOffset(r,e){const{doc:n}=r,A=n.resolve(e),o=A.before(A.depth);return A.depth===1?o:A.start(1)}function getTopMostBlockEndForOffset(r,e){const{doc:n}=r;return n.resolve(e).end(1)}function getAdjacentTopBlock(r,e){const{doc:n}=r;if(e<0||e>n.content.size)throw new RangeError("Offset is outside the document");const A=n.resolve(e);return A.pos===A.start(A.depth)?getTopMostBlockStartForOffset(r,e):getTopMostBlockEndForOffset(r,e)}const insertBlockBefore=(r,e)=>(n,A)=>{const o=n.tr,s=getTopMostBlockStartForOffset(n,o.mapping.map(r));return o.insert(s,e),A&&A(o),!0},insertBlockAfter=(r,e)=>(n,A)=>{const o=n.tr,s=getTopMostBlockEndForOffset(n,o.mapping.map(r));return o.insert(s,e),A&&A(o),!0},insertBlockSmart=(r,e)=>(n,A)=>{const o=n.tr,s=getAdjacentTopBlock(n,o.mapping.map(r));return o.insert(s,e),A&&A(o),!0},replaceCommandFactories={replaceRangeText,replaceRangeSlice,insertBlockBefore,insertBlockAfter,insertBlockSmart};class CommandManager{constructor(e){this.editor=e,this.commandFactories={},this.run={},this.debug=!0,this.mergeCommandFactories(baseCommandFactories,"baseCommand"),this.mergeCommandFactories(keyCommandFactories,"key"),this.mergeCommandFactories(replaceCommandFactories,"replace")}mergeCommandFactories(e,n){for(const A in e){const o=e[A];o&&this.overwriteCommandFactory(n,A,o)}}overwriteCommandFactory(e,n,A){if(this.debug){const o=(...s)=>{const a=A(...s);return(c,g,h)=>(g&&console.debug(`Command: ${e}.${n}`),a(c,g,h))};this.commandFactories[n]=o}else this.commandFactories[n]=A;this.run[n]=(...o)=>{const s=this.commandFactories[n],a=s(...o),l=this.editor.state,c=this.editor.view;return c instanceof EditorView$1?a(l,c.dispatch,c):a(l,c.dispatch)}}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(e,n=!0){const{commandFactories:A,editor:o}=this,s=this.editor.state,{view:a}=o,l=[],c=!!e,g=e||s.tr,h=createChainableState(g,s),d=()=>{},u={...Object.fromEntries(Object.entries(A).map(([f,I])=>[f,(...m)=>{const B=I(...m)(h,n?d:void 0);return l.push(B),u}])),run:()=>(!c&&n&&!g.getMeta("preventDispatch")&&a.dispatch(g),l.every(f=>f===!0)),chain:()=>this.createChain(g,n)};return u}createCan(e){return this.createChain(e,!1)}}class SmartOutput{constructor(){this._rowPos=0,this._colPos=0,this._pos=0,this.chunks=[],this.metas=[]}log(e,n){if(e.length===0)return;this.chunks.push(e),this.metas.push({pos:this._pos,colPos:this._colPos,rowPos:this._rowPos,item:n});const A=e.split(`
11
+ `);A.length===1?this._colPos+=A[A.length-1].length:(this._rowPos+=A.length-1,this._colPos=A[A.length-1].length),this._pos+=e.length}getMetas(){return this.metas}get chunkPos(){return this.chunks.length}rollback(e){this.chunks.splice(e),this.metas.splice(e)}get rowPos(){return this._rowPos}get colPos(){return this._colPos}get pos(){return this._pos}backspace(e){const n=[],A=[];for(;e>0&&this.chunks[0].length>0;){const o=this.metas.pop();let s=this.chunks.pop();if(!s||!o)break;const a=s.length;s=s.substring(0,Math.max(0,s.length-e)),n.unshift(o),A.unshift(s),e-=a-s.length}this.chunks.push(...A),this.metas.push(...n)}endsWith(e){return this.chunks.join("").endsWith(e)}toString(){return this.chunks.join("")}getSourceMap(e){const n=[];let A=-1,o=-1,s=0,a=0,l=0,c=0;for(const h of this.metas){for(;h.rowPos>=n.length;)n.push([]);if(A!=h.rowPos||o!=h.colPos){const d=n[h.rowPos];A!=h.rowPos&&(c=0);const u=e(h.rowPos,h.colPos,h.pos,h.item);u&&(d.push([h.colPos-c,u.sourceNo-s,u.sourceRowPos-a,u.sourceColPos-l]),c=h.colPos,s=u.sourceNo,a=u.sourceRowPos,l=u.sourceColPos)}A=h.rowPos,o=h.colPos}const g=n.map(h=>h.map(d=>encode(d)).join(",")).join(";");return{version:3,file:"",sourceRoot:"",sources:[],sourcesContent:[],names:[],mappings:g}}}const integer_to_char={};"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".split("").forEach(function(r,e){integer_to_char[e]=r});function encode(r){if(typeof r=="number")return encode_integer(r);let e="";for(let n=0;n<r.length;n+=1)e+=encode_integer(r[n]);return e}function encode_integer(r){let e="";r<0?r=-r<<1|1:r<<=1;do{let n=r&31;r>>>=5,r>0&&(n|=32),e+=integer_to_char[n]}while(r>0);return e}function trimText(r,e=20){return r=r.replaceAll(`
12
+ `,"\\n"),r.length<=e?r:r.slice(0,e)+"..."}function nodeToTreeStringOutput(r,e,n=0,A=0){let o="";for(let a=0;a<n;a++)o+=" ";if(Array.isArray(e)){for(const a of e)r.log(o,{node:a,pos:A}),nodeToTreeStringOutput(r,a,n+1,A);return}let s="";if("type"in e){s+=` - [${e.type.name}] `,s+=`pos: ${A}, `,s+=`nodeSize: ${e.nodeSize}, `,s+=`epos: ${A+e.nodeSize}, `,e.content&&(s+=`fragment.size: ${e.content.size}, `),r.log(o+s+`
13
+ `,{node:e,pos:A});let a="";if(e.marks)for(const l of e.marks)a+=`(${l.type.name}), `;a&&r.log(o+" "+a+`
14
+ `,{node:e,pos:A}),e.text&&r.log(o+' "'+trimText(e.text)+`"
15
+ `,{node:e,pos:A})}return e.forEach((a,l)=>{nodeToTreeStringOutput(r,a,n+1,A+l+1)}),r}function nodeToTreeString(r){const e=new SmartOutput;return nodeToTreeStringOutput(e,r),e.toString()}class DummyEditorView{constructor(e){this.prevDirectPlugins=[],this.pluginViews=[],this._props=e,this.state=e.state,this.directPlugins=e.plugins||[],this.directPlugins.forEach(checkStateComponent),this.dispatch=this.dispatch.bind(this),this.editable=getEditable(this),this.nodeViews=buildNodeViews(this),this.updatePluginViews()}get composing(){return!1}get dom(){return{addEventListener(){},removeEventListener(){}}}get props(){if(this._props.state!=this.state){let e=this._props;this._props={};for(let n in e)this._props[n]=e[n];this._props.state=this.state}return this._props}update(e){let n=this._props;this._props=e,e.plugins&&(e.plugins.forEach(checkStateComponent),this.directPlugins=e.plugins),this.updateStateInner(e.state,n)}setProps(e){let n={};for(let A in this._props)n[A]=this._props[A];n.state=this.state;for(let A in e)n[A]=e[A];this.update(n)}updateState(e){this.updateStateInner(e,this._props)}updateStateInner(e,n){let A=this.state,o=!1;if(e.storedMarks&&this.composing,this.state=e,A.plugins!=e.plugins||this._props.plugins!=n.plugins||this._props.plugins!=n.plugins||this._props.nodeViews!=n.nodeViews){let l=buildNodeViews(this);changedNodeViews(l,this.nodeViews)&&(this.nodeViews=l,o=!0)}this.editable=getEditable(this),o||e.selection.eq(A.selection),this.updatePluginViews(A)}scrollToSelection(){}destroyPluginViews(){let e=this.pluginViews.pop();for(;e;)e.destroy&&e.destroy(),e=this.pluginViews.pop()}updatePluginViews(e){if(!e||e.plugins!=this.state.plugins||this.directPlugins!=this.prevDirectPlugins){this.prevDirectPlugins=this.directPlugins,this.destroyPluginViews();for(let n=0;n<this.directPlugins.length;n++){let A=this.directPlugins[n];A.spec.view&&this.pluginViews.push(A.spec.view(this))}for(let n=0;n<this.state.plugins.length;n++){let A=this.state.plugins[n];A.spec.view&&this.pluginViews.push(A.spec.view(this))}}else for(let n=0;n<this.pluginViews.length;n++){let A=this.pluginViews[n];A.update&&A.update(this,e)}}someProp(e,n){let A=this._props&&this._props[e],o;if(A!=null&&(o=n?n(A):A))return o;for(let a=0;a<this.directPlugins.length;a++){let l=this.directPlugins[a].props[e];if(l!=null&&(o=n?n(l):l))return o}let s=this.state.plugins;if(s)for(let a=0;a<s.length;a++){let l=s[a].props[e];if(l!=null&&(o=n?n(l):l))return o}}hasFocus(){return!1}focus(){}destroy(){this.destroyPluginViews()}get isDestroyed(){return!1}dispatchEvent(e){}}DummyEditorView.prototype.dispatch=function(r){let e=this.props.dispatchTransaction;e?e.call(this,r):this.updateState(this.state.apply(r))};function getEditable(r){return!r.someProp("editable",e=>e(r.state)===!1)}function buildNodeViews(r){let e=Object.create(null);function n(A){for(let o in A)Object.prototype.hasOwnProperty.call(e,o)||(e[o]=A[o])}return r.someProp("nodeViews",n),r.someProp("markViews",n),e}function changedNodeViews(r,e){let n=0,A=0;for(let o in r){if(r[o]!=e[o])return!0;n++}for(let o in e)A++;return n!=A}function checkStateComponent(r){if(r.spec.state||r.spec.filterTransaction||r.spec.appendTransaction)throw new RangeError("Plugins passed directly to the view must not have a state component")}function createNodeFromObject(r,e,n){try{const A=e.nodeFromJSON(r);return n?.errorOnInvalidContent&&A.check(),A}catch(A){if(n?.errorOnInvalidContent)throw new Error("Invalid JSON content: "+A.message,{cause:A});return console.warn("Invalid content.","Passed value:",r,"Error:",A),e.topNodeType.createAndFill(null,[])}}function defaultUi(r){return{showMessage(e){globalThis.alert(e)},showError(e){globalThis.alert(e.message),console.error(e)},focus(){},select({anchor:e,scrollIntoView:n,userEvent:A}){}}}function ensureDocSchema(r,e){if(r.type.schema===e)return r;const n=r.toJSON();return Node$2.fromJSON(e,n)}class CoreEditor extends EventTarget{constructor(e,n,A){super(),this.schema=n,this.extensionManager=A,this.ui=defaultUi(),this.config={...e},this.hooks={...this.config.hooks},this.commandManager=new CommandManager(this)}static create(e){const n=new ExtensionManager(e.editorKits,e.debug),A=n.getSchemaByResolvedExtensions(),o=new CoreEditor(e,A,n);n.created(o,A);const s=e.content?e.content:A.topNodeType.spec.EMPTY_DOC;return o.createView(s),o.setupPlugins(),o}clone(e){const n=new ExtensionManager(this.extensionManager.editorKits,(e||this.config).debug),A=new CoreEditor({...e},this.schema,n);n.created(A,this.schema);const o=this.getJSON();return A.createView(o),A.setupPlugins(),A}getExtension(e){return this.extensionManager.getExtension(e)}get run(){return this.commandManager.run}get commandFactories(){return this.commandManager.commandFactories}chain(){return this.commandManager.createChain()}can(){return this.commandManager.createCan()}link(e){if(e===this)throw new Error("You cannot chain editor to itself");this.unlink(),this.state=EditorState$1.create({doc:e.getDocument()});const{commandFactories:n}=this.commandManager,A=[],o={...Object.fromEntries(Object.entries(n).map(([s,a])=>[s,(...c)=>{const g=a(...c);return A.push(g),o}])),run:()=>{this.linkSource=e,this.linkListener=()=>{let s=e.state;const a=c=>{s=s.apply(c)};for(const c of A)if(!c(s,a))return;this.state=s.reconfigure({plugins:this.extensionManager.plugins}),this.view&&this.view.updateState(this.state);const l=new CustomEvent("changed",{detail:{editor:this}});this.dispatchEvent(l)},e.addEventListener("changed",this.linkListener)}};return o}unlink(){this.linkListener&&this.linkSource&&(this.linkSource.removeEventListener("changed",this.linkListener),this.linkListener=void 0,this.linkSource=void 0)}createView(e){const n=createNodeFromObject(e,this.schema);if(this.state=EditorState$1.create({doc:n}),this.config.element){const o=new EditorView$1(this.config.element,{state:this.state,attributes:{class:"kb-editor"},dispatchTransaction:a=>this.dispatchTransaction(a),editable:()=>!this.config.readOnly});if(this.view=o,this.config.element.parentNode){const a=new MutationObserver(l=>{for(const c of l)for(const g of c.removedNodes)if(g.contains(o.dom)){a.disconnect(),o.destroy();return}})}}else this.view=new DummyEditorView({state:this.state,dispatchTransaction:o=>this.dispatchTransaction(o)});const A=new CustomEvent("doc:loaded",{detail:{editor:this,doc:n}});this.dispatchEvent(A)}dispatchTransaction(e){if(this.state=this.state.apply(e),this.view){this.view.updateState(this.state);const n=new CustomEvent("transaction",{detail:{editor:this,transaction:e}});this.dispatchEvent(n)}if(e.docChanged){const n=new CustomEvent("changed",{detail:{editor:this}});this.dispatchEvent(n)}}setupPlugins(){this.state=this.state.reconfigure({plugins:this.extensionManager.plugins}),this.view&&(this.view.updateState(this.state),this.view.setProps({nodeViews:this.extensionManager.nodeViews}))}clearDocument(){const e={type:this.schema.topNodeType.name,content:this.schema.topNodeType.spec.EMPTY_DOC.content};this.setDocument(e)}setDocument(e){let n=createNodeFromObject(e,this.schema,{errorOnInvalidContent:!0});n=ensureDocSchema(n,this.schema),this.state=EditorState$1.create({doc:n,plugins:this.state.plugins,storedMarks:this.state.storedMarks}),this.view&&this.view.updateState(this.state);const A=new CustomEvent("doc:loaded",{detail:{editor:this,doc:n}});this.dispatchEvent(A)}getDocument(){return this.state.doc}loadDocumentText(e,n){return this.loadDocument(e,new TextEncoder().encode(n))}async loadDocument(e,n){const A=this.extensionManager.converters[e];if(!A)throw new Error("Converter not found for: "+e);const o=await A.toDoc(n);let s=EditorState$1.create({doc:o,plugins:this.state.plugins,storedMarks:this.state.storedMarks});const a=g=>{s=s.apply(g)};runInputRulesTexts()(s,a),this.state=s,this.view&&(this.view.updateState(this.state),this.view.dispatch(this.view.state.tr));const c=new CustomEvent("doc:loaded",{detail:{editor:this,doc:this.state.doc}});this.dispatchEvent(c)}async saveDocument(e){const n=this.extensionManager.converters[e];if(!n)throw new Error("Converter not found for: "+e);const A=this.state.doc.toJSON(),o=Node$2.fromJSON(this.state.schema,A);return await n.fromDoc(o)}getJSON(){return this.state.doc.toJSON()}debug(e){e||(e=this.state.doc),console.debug(nodeToTreeString(e))}destroy(){const e=new CustomEvent("beforeDestroy",{detail:{}});if(this.dispatchEvent(e),this.config.element){const n=this.config.element,A=n.cloneNode(!0);n.replaceWith(A)}this.view.destroy()}mergeCommandFactories(e,n){this.commandManager.mergeCommandFactories(e,n)}}class Extension{constructor(e={}){this.config=e,this.type="extension"}setEditor(e){this.editor=e}getEditor(){return this.editor}created(){}getInputRules(){return[]}getProseMirrorPlugins(){return[]}getCommandFactories(e){return{}}getKeyboardShortcuts(e){return{}}getConverters(e,n){return{}}setupSpec(e){}}class Mark{constructor(e={}){this.config=e,this.type="mark",this.name="node",this.attributes={}}setEditor(e){this.editor=e}created(){}getMarkSpec(){throw new Error("MarkSpec not defined: "+this.name)}getInputRules(e){return[]}getCommandFactories(e,n){return{}}getKeyboardShortcuts(e){return{}}}let Node$1=class{constructor(e={}){this.config=e,this.type="node",this.name="node",this.attributes={}}setEditor(e){this.editor=e}created(){}getNodeSpec(){throw new Error("NodeSpec not defined: "+this.name)}getInputRules(e){return[]}getProseMirrorPlugins(){return[]}getCommandFactories(e,n){return{}}getKeyboardShortcuts(e){return{}}getNodeView(e){}getConverters(e,n){return{}}};const NESTING_OPENING$1=1,NESTING_SELF_CLOSING$1=0,NESTING_CLOSING$1=-1;let rangeFrom=[],rangeTo=[];(()=>{let r="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,n=0;e<r.length;e++)(e%2?rangeTo:rangeFrom).push(n=n+r[e])})();function isExtendingChar(r){if(r<768)return!1;for(let e=0,n=rangeFrom.length;;){let A=e+n>>1;if(r<rangeFrom[A])n=A;else if(r>=rangeTo[A])e=A+1;else return!0;if(e==n)return!1}}function isRegionalIndicator(r){return r>=127462&&r<=127487}const ZWJ=8205;function findClusterBreak$1(r,e,n=!0,A=!0){return(n?nextClusterBreak:prevClusterBreak)(r,e,A)}function nextClusterBreak(r,e,n){if(e==r.length)return e;e&&surrogateLow$1(r.charCodeAt(e))&&surrogateHigh$1(r.charCodeAt(e-1))&&e--;let A=codePointAt$1(r,e);for(e+=codePointSize$1(A);e<r.length;){let o=codePointAt$1(r,e);if(A==ZWJ||o==ZWJ||n&&isExtendingChar(o))e+=codePointSize$1(o),A=o;else if(isRegionalIndicator(o)){let s=0,a=e-2;for(;a>=0&&isRegionalIndicator(codePointAt$1(r,a));)s++,a-=2;if(s%2==0)break;e+=2}else break}return e}function prevClusterBreak(r,e,n){for(;e>0;){let A=nextClusterBreak(r,e-2,n);if(A<e)return A;e--}return 0}function codePointAt$1(r,e){let n=r.charCodeAt(e);if(!surrogateHigh$1(n)||e+1==r.length)return n;let A=r.charCodeAt(e+1);return surrogateLow$1(A)?(n-55296<<10)+(A-56320)+65536:n}function surrogateLow$1(r){return r>=56320&&r<57344}function surrogateHigh$1(r){return r>=55296&&r<56320}function codePointSize$1(r){return r<65536?1:2}class Text{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,n,A){[e,n]=clip(this,e,n);let o=[];return this.decompose(0,e,o,2),A.length&&A.decompose(0,A.length,o,3),this.decompose(n,this.length,o,1),TextNode.from(o,this.length-(n-e)+A.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,n=this.length){[e,n]=clip(this,e,n);let A=[];return this.decompose(e,n,A,0),TextNode.from(A,n-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let n=this.scanIdentical(e,1),A=this.length-this.scanIdentical(e,-1),o=new RawTextCursor(this),s=new RawTextCursor(e);for(let a=n,l=n;;){if(o.next(a),s.next(a),a=0,o.lineBreak!=s.lineBreak||o.done!=s.done||o.value!=s.value)return!1;if(l+=o.value.length,o.done||l>=A)return!0}}iter(e=1){return new RawTextCursor(this,e)}iterRange(e,n=this.length){return new PartialTextCursor(this,e,n)}iterLines(e,n){let A;if(e==null)A=this.iter();else{n==null&&(n=this.lines+1);let o=this.line(e).from;A=this.iterRange(o,Math.max(o,n==this.lines+1?this.length:n<=1?0:this.line(n-1).to))}return new LineCursor(A)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?Text.empty:e.length<=32?new TextLeaf(e):TextNode.from(TextLeaf.split(e,[]))}}class TextLeaf extends Text{constructor(e,n=textLength(e)){super(),this.text=e,this.length=n}get lines(){return this.text.length}get children(){return null}lineInner(e,n,A,o){for(let s=0;;s++){let a=this.text[s],l=o+a.length;if((n?A:l)>=e)return new Line(o,l,A,a);o=l+1,A++}}decompose(e,n,A,o){let s=e<=0&&n>=this.length?this:new TextLeaf(sliceText(this.text,e,n),Math.min(n,this.length)-Math.max(0,e));if(o&1){let a=A.pop(),l=appendText(s.text,a.text.slice(),0,s.length);if(l.length<=32)A.push(new TextLeaf(l,a.length+s.length));else{let c=l.length>>1;A.push(new TextLeaf(l.slice(0,c)),new TextLeaf(l.slice(c)))}}else A.push(s)}replace(e,n,A){if(!(A instanceof TextLeaf))return super.replace(e,n,A);[e,n]=clip(this,e,n);let o=appendText(this.text,appendText(A.text,sliceText(this.text,0,e)),n),s=this.length+A.length-(n-e);return o.length<=32?new TextLeaf(o,s):TextNode.from(TextLeaf.split(o,[]),s)}sliceString(e,n=this.length,A=`
16
+ `){[e,n]=clip(this,e,n);let o="";for(let s=0,a=0;s<=n&&a<this.text.length;a++){let l=this.text[a],c=s+l.length;s>e&&a&&(o+=A),e<c&&n>s&&(o+=l.slice(Math.max(0,e-s),n-s)),s=c+1}return o}flatten(e){for(let n of this.text)e.push(n)}scanIdentical(){return 0}static split(e,n){let A=[],o=-1;for(let s of e)A.push(s),o+=s.length+1,A.length==32&&(n.push(new TextLeaf(A,o)),A=[],o=-1);return o>-1&&n.push(new TextLeaf(A,o)),n}}class TextNode extends Text{constructor(e,n){super(),this.children=e,this.length=n,this.lines=0;for(let A of e)this.lines+=A.lines}lineInner(e,n,A,o){for(let s=0;;s++){let a=this.children[s],l=o+a.length,c=A+a.lines-1;if((n?c:l)>=e)return a.lineInner(e,n,A,o);o=l+1,A=c+1}}decompose(e,n,A,o){for(let s=0,a=0;a<=n&&s<this.children.length;s++){let l=this.children[s],c=a+l.length;if(e<=c&&n>=a){let g=o&((a<=e?1:0)|(c>=n?2:0));a>=e&&c<=n&&!g?A.push(l):l.decompose(e-a,n-a,A,g)}a=c+1}}replace(e,n,A){if([e,n]=clip(this,e,n),A.lines<this.lines)for(let o=0,s=0;o<this.children.length;o++){let a=this.children[o],l=s+a.length;if(e>=s&&n<=l){let c=a.replace(e-s,n-s,A),g=this.lines-a.lines+c.lines;if(c.lines<g>>4&&c.lines>g>>6){let h=this.children.slice();return h[o]=c,new TextNode(h,this.length-(n-e)+A.length)}return super.replace(s,l,c)}s=l+1}return super.replace(e,n,A)}sliceString(e,n=this.length,A=`
17
+ `){[e,n]=clip(this,e,n);let o="";for(let s=0,a=0;s<this.children.length&&a<=n;s++){let l=this.children[s],c=a+l.length;a>e&&s&&(o+=A),e<c&&n>a&&(o+=l.sliceString(e-a,n-a,A)),a=c+1}return o}flatten(e){for(let n of this.children)n.flatten(e)}scanIdentical(e,n){if(!(e instanceof TextNode))return 0;let A=0,[o,s,a,l]=n>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;o+=n,s+=n){if(o==a||s==l)return A;let c=this.children[o],g=e.children[s];if(c!=g)return A+c.scanIdentical(g,n);A+=c.length+1}}static from(e,n=e.reduce((A,o)=>A+o.length+1,-1)){let A=0;for(let f of e)A+=f.lines;if(A<32){let f=[];for(let I of e)I.flatten(f);return new TextLeaf(f,n)}let o=Math.max(32,A>>5),s=o<<1,a=o>>1,l=[],c=0,g=-1,h=[];function d(f){let I;if(f.lines>s&&f instanceof TextNode)for(let p of f.children)d(p);else f.lines>a&&(c>a||!c)?(u(),l.push(f)):f instanceof TextLeaf&&c&&(I=h[h.length-1])instanceof TextLeaf&&f.lines+I.lines<=32?(c+=f.lines,g+=f.length+1,h[h.length-1]=new TextLeaf(I.text.concat(f.text),I.length+1+f.length)):(c+f.lines>o&&u(),c+=f.lines,g+=f.length+1,h.push(f))}function u(){c!=0&&(l.push(h.length==1?h[0]:TextNode.from(h,g)),g=-1,c=h.length=0)}for(let f of e)d(f);return u(),l.length==1?l[0]:new TextNode(l,n)}}Text.empty=new TextLeaf([""],0);function textLength(r){let e=-1;for(let n of r)e+=n.length+1;return e}function appendText(r,e,n=0,A=1e9){for(let o=0,s=0,a=!0;s<r.length&&o<=A;s++){let l=r[s],c=o+l.length;c>=n&&(c>A&&(l=l.slice(0,A-o)),o<n&&(l=l.slice(n-o)),a?(e[e.length-1]+=l,a=!1):e.push(l)),o=c+1}return e}function sliceText(r,e,n){return appendText(r,[""],e,n)}class RawTextCursor{constructor(e,n=1){this.dir=n,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[n>0?1:(e instanceof TextLeaf?e.text.length:e.children.length)<<1]}nextInner(e,n){for(this.done=this.lineBreak=!1;;){let A=this.nodes.length-1,o=this.nodes[A],s=this.offsets[A],a=s>>1,l=o instanceof TextLeaf?o.text.length:o.children.length;if(a==(n>0?l:0)){if(A==0)return this.done=!0,this.value="",this;n>0&&this.offsets[A-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(n>0?0:1)){if(this.offsets[A]+=n,e==0)return this.lineBreak=!0,this.value=`
18
+ `,this;e--}else if(o instanceof TextLeaf){let c=o.text[a+(n<0?-1:0)];if(this.offsets[A]+=n,c.length>Math.max(0,e))return this.value=e==0?c:n>0?c.slice(e):c.slice(0,c.length-e),this;e-=c.length}else{let c=o.children[a+(n<0?-1:0)];e>c.length?(e-=c.length,this.offsets[A]+=n):(n<0&&this.offsets[A]--,this.nodes.push(c),this.offsets.push(n>0?1:(c instanceof TextLeaf?c.text.length:c.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class PartialTextCursor{constructor(e,n,A){this.value="",this.done=!1,this.cursor=new RawTextCursor(e,n>A?-1:1),this.pos=n>A?e.length:0,this.from=Math.min(n,A),this.to=Math.max(n,A)}nextInner(e,n){if(n<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,n<0?this.pos-this.to:this.from-this.pos);let A=n<0?this.pos-this.from:this.to-this.pos;e>A&&(e=A),A-=e;let{value:o}=this.cursor.next(e);return this.pos+=(o.length+e)*n,this.value=o.length<=A?o:n<0?o.slice(o.length-A):o.slice(0,A),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class LineCursor{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:n,lineBreak:A,value:o}=this.inner.next(e);return n&&this.afterBreak?(this.value="",this.afterBreak=!1):n?(this.done=!0,this.value=""):A?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=o,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(Text.prototype[Symbol.iterator]=function(){return this.iter()},RawTextCursor.prototype[Symbol.iterator]=PartialTextCursor.prototype[Symbol.iterator]=LineCursor.prototype[Symbol.iterator]=function(){return this});class Line{constructor(e,n,A,o){this.from=e,this.to=n,this.number=A,this.text=o}get length(){return this.to-this.from}}function clip(r,e,n){return e=Math.max(0,Math.min(r.length,e)),[e,Math.max(e,Math.min(r.length,n))]}function findClusterBreak(r,e,n=!0,A=!0){return findClusterBreak$1(r,e,n,A)}function surrogateLow(r){return r>=56320&&r<57344}function surrogateHigh(r){return r>=55296&&r<56320}function codePointAt(r,e){let n=r.charCodeAt(e);if(!surrogateHigh(n)||e+1==r.length)return n;let A=r.charCodeAt(e+1);return surrogateLow(A)?(n-55296<<10)+(A-56320)+65536:n}function fromCodePoint(r){return r<=65535?String.fromCharCode(r):(r-=65536,String.fromCharCode((r>>10)+55296,(r&1023)+56320))}function codePointSize(r){return r<65536?1:2}const DefaultSplit=/\r\n?|\n/;var MapMode=(function(r){return r[r.Simple=0]="Simple",r[r.TrackDel=1]="TrackDel",r[r.TrackBefore=2]="TrackBefore",r[r.TrackAfter=3]="TrackAfter",r})(MapMode||(MapMode={}));class ChangeDesc{constructor(e){this.sections=e}get length(){let e=0;for(let n=0;n<this.sections.length;n+=2)e+=this.sections[n];return e}get newLength(){let e=0;for(let n=0;n<this.sections.length;n+=2){let A=this.sections[n+1];e+=A<0?this.sections[n]:A}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let n=0,A=0,o=0;n<this.sections.length;){let s=this.sections[n++],a=this.sections[n++];a<0?(e(A,o,s),o+=s):o+=a,A+=s}}iterChangedRanges(e,n=!1){iterChanges(this,e,n)}get invertedDesc(){let e=[];for(let n=0;n<this.sections.length;){let A=this.sections[n++],o=this.sections[n++];o<0?e.push(A,o):e.push(o,A)}return new ChangeDesc(e)}composeDesc(e){return this.empty?e:e.empty?this:composeSets(this,e)}mapDesc(e,n=!1){return e.empty?this:mapSet(this,e,n)}mapPos(e,n=-1,A=MapMode.Simple){let o=0,s=0;for(let a=0;a<this.sections.length;){let l=this.sections[a++],c=this.sections[a++],g=o+l;if(c<0){if(g>e)return s+(e-o);s+=l}else{if(A!=MapMode.Simple&&g>=e&&(A==MapMode.TrackDel&&o<e&&g>e||A==MapMode.TrackBefore&&o<e||A==MapMode.TrackAfter&&g>e))return null;if(g>e||g==e&&n<0&&!l)return e==o||n<0?s:s+c;s+=c}o=g}if(e>o)throw new RangeError(`Position ${e} is out of range for changeset of length ${o}`);return s}touchesRange(e,n=e){for(let A=0,o=0;A<this.sections.length&&o<=n;){let s=this.sections[A++],a=this.sections[A++],l=o+s;if(a>=0&&o<=n&&l>=e)return o<e&&l>n?"cover":!0;o=l}return!1}toString(){let e="";for(let n=0;n<this.sections.length;){let A=this.sections[n++],o=this.sections[n++];e+=(e?" ":"")+A+(o>=0?":"+o:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(n=>typeof n!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new ChangeDesc(e)}static create(e){return new ChangeDesc(e)}}class ChangeSet extends ChangeDesc{constructor(e,n){super(e),this.inserted=n}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return iterChanges(this,(n,A,o,s,a)=>e=e.replace(o,o+(A-n),a),!1),e}mapDesc(e,n=!1){return mapSet(this,e,n,!0)}invert(e){let n=this.sections.slice(),A=[];for(let o=0,s=0;o<n.length;o+=2){let a=n[o],l=n[o+1];if(l>=0){n[o]=l,n[o+1]=a;let c=o>>1;for(;A.length<c;)A.push(Text.empty);A.push(a?e.slice(s,s+a):Text.empty)}s+=a}return new ChangeSet(n,A)}compose(e){return this.empty?e:e.empty?this:composeSets(this,e,!0)}map(e,n=!1){return e.empty?this:mapSet(this,e,n,!0)}iterChanges(e,n=!1){iterChanges(this,e,n)}get desc(){return ChangeDesc.create(this.sections)}filter(e){let n=[],A=[],o=[],s=new SectionIter(this);e:for(let a=0,l=0;;){let c=a==e.length?1e9:e[a++];for(;l<c||l==c&&s.len==0;){if(s.done)break e;let h=Math.min(s.len,c-l);addSection(o,h,-1);let d=s.ins==-1?-1:s.off==0?s.ins:0;addSection(n,h,d),d>0&&addInsert(A,n,s.text),s.forward(h),l+=h}let g=e[a++];for(;l<g;){if(s.done)break e;let h=Math.min(s.len,g-l);addSection(n,h,-1),addSection(o,h,s.ins==-1?-1:s.off==0?s.ins:0),s.forward(h),l+=h}}return{changes:new ChangeSet(n,A),filtered:ChangeDesc.create(o)}}toJSON(){let e=[];for(let n=0;n<this.sections.length;n+=2){let A=this.sections[n],o=this.sections[n+1];o<0?e.push(A):o==0?e.push([A]):e.push([A].concat(this.inserted[n>>1].toJSON()))}return e}static of(e,n,A){let o=[],s=[],a=0,l=null;function c(h=!1){if(!h&&!o.length)return;a<n&&addSection(o,n-a,-1);let d=new ChangeSet(o,s);l=l?l.compose(d.map(l)):d,o=[],s=[],a=0}function g(h){if(Array.isArray(h))for(let d of h)g(d);else if(h instanceof ChangeSet){if(h.length!=n)throw new RangeError(`Mismatched change set length (got ${h.length}, expected ${n})`);c(),l=l?l.compose(h.map(l)):h}else{let{from:d,to:u=d,insert:f}=h;if(d>u||d<0||u>n)throw new RangeError(`Invalid change range ${d} to ${u} (in doc of length ${n})`);let I=f?typeof f=="string"?Text.of(f.split(A||DefaultSplit)):f:Text.empty,p=I.length;if(d==u&&p==0)return;d<a&&c(),d>a&&addSection(o,d-a,-1),addSection(o,u-d,p),addInsert(s,o,I),a=u}}return g(e),c(!l),l}static empty(e){return new ChangeSet(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let n=[],A=[];for(let o=0;o<e.length;o++){let s=e[o];if(typeof s=="number")n.push(s,-1);else{if(!Array.isArray(s)||typeof s[0]!="number"||s.some((a,l)=>l&&typeof a!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)n.push(s[0],0);else{for(;A.length<o;)A.push(Text.empty);A[o]=Text.of(s.slice(1)),n.push(s[0],A[o].length)}}}return new ChangeSet(n,A)}static createSet(e,n){return new ChangeSet(e,n)}}function addSection(r,e,n,A=!1){if(e==0&&n<=0)return;let o=r.length-2;o>=0&&n<=0&&n==r[o+1]?r[o]+=e:o>=0&&e==0&&r[o]==0?r[o+1]+=n:A?(r[o]+=e,r[o+1]+=n):r.push(e,n)}function addInsert(r,e,n){if(n.length==0)return;let A=e.length-2>>1;if(A<r.length)r[r.length-1]=r[r.length-1].append(n);else{for(;r.length<A;)r.push(Text.empty);r.push(n)}}function iterChanges(r,e,n){let A=r.inserted;for(let o=0,s=0,a=0;a<r.sections.length;){let l=r.sections[a++],c=r.sections[a++];if(c<0)o+=l,s+=l;else{let g=o,h=s,d=Text.empty;for(;g+=l,h+=c,c&&A&&(d=d.append(A[a-2>>1])),!(n||a==r.sections.length||r.sections[a+1]<0);)l=r.sections[a++],c=r.sections[a++];e(o,g,s,h,d),o=g,s=h}}}function mapSet(r,e,n,A=!1){let o=[],s=A?[]:null,a=new SectionIter(r),l=new SectionIter(e);for(let c=-1;;){if(a.done&&l.len||l.done&&a.len)throw new Error("Mismatched change set lengths");if(a.ins==-1&&l.ins==-1){let g=Math.min(a.len,l.len);addSection(o,g,-1),a.forward(g),l.forward(g)}else if(l.ins>=0&&(a.ins<0||c==a.i||a.off==0&&(l.len<a.len||l.len==a.len&&!n))){let g=l.len;for(addSection(o,l.ins,-1);g;){let h=Math.min(a.len,g);a.ins>=0&&c<a.i&&a.len<=h&&(addSection(o,0,a.ins),s&&addInsert(s,o,a.text),c=a.i),a.forward(h),g-=h}l.next()}else if(a.ins>=0){let g=0,h=a.len;for(;h;)if(l.ins==-1){let d=Math.min(h,l.len);g+=d,h-=d,l.forward(d)}else if(l.ins==0&&l.len<h)h-=l.len,l.next();else break;addSection(o,g,c<a.i?a.ins:0),s&&c<a.i&&addInsert(s,o,a.text),c=a.i,a.forward(a.len-h)}else{if(a.done&&l.done)return s?ChangeSet.createSet(o,s):ChangeDesc.create(o);throw new Error("Mismatched change set lengths")}}}function composeSets(r,e,n=!1){let A=[],o=n?[]:null,s=new SectionIter(r),a=new SectionIter(e);for(let l=!1;;){if(s.done&&a.done)return o?ChangeSet.createSet(A,o):ChangeDesc.create(A);if(s.ins==0)addSection(A,s.len,0,l),s.next();else if(a.len==0&&!a.done)addSection(A,0,a.ins,l),o&&addInsert(o,A,a.text),a.next();else{if(s.done||a.done)throw new Error("Mismatched change set lengths");{let c=Math.min(s.len2,a.len),g=A.length;if(s.ins==-1){let h=a.ins==-1?-1:a.off?0:a.ins;addSection(A,c,h,l),o&&h&&addInsert(o,A,a.text)}else a.ins==-1?(addSection(A,s.off?0:s.len,c,l),o&&addInsert(o,A,s.textBit(c))):(addSection(A,s.off?0:s.len,a.off?0:a.ins,l),o&&!a.off&&addInsert(o,A,a.text));l=(s.ins>c||a.ins>=0&&a.len>c)&&(l||A.length>g),s.forward2(c),a.forward(c)}}}}class SectionIter{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,n=this.i-2>>1;return n>=e.length?Text.empty:e[n]}textBit(e){let{inserted:n}=this.set,A=this.i-2>>1;return A>=n.length&&!e?Text.empty:n[A].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}let SelectionRange$1=class gt{constructor(e,n,A){this.from=e,this.to=n,this.flags=A}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,n=-1){let A,o;return this.empty?A=o=e.mapPos(this.from,n):(A=e.mapPos(this.from,1),o=e.mapPos(this.to,-1)),A==this.from&&o==this.to?this:new gt(A,o,this.flags)}extend(e,n=e){if(e<=this.anchor&&n>=this.anchor)return EditorSelection.range(e,n);let A=Math.abs(e-this.anchor)>Math.abs(n-this.anchor)?e:n;return EditorSelection.range(this.anchor,A)}eq(e,n=!1){return this.anchor==e.anchor&&this.head==e.head&&(!n||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return EditorSelection.range(e.anchor,e.head)}static create(e,n,A){return new gt(e,n,A)}};class EditorSelection{constructor(e,n){this.ranges=e,this.mainIndex=n}map(e,n=-1){return e.empty?this:EditorSelection.create(this.ranges.map(A=>A.map(e,n)),this.mainIndex)}eq(e,n=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let A=0;A<this.ranges.length;A++)if(!this.ranges[A].eq(e.ranges[A],n))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new EditorSelection([this.main],0)}addRange(e,n=!0){return EditorSelection.create([e].concat(this.ranges),n?0:this.mainIndex+1)}replaceRange(e,n=this.mainIndex){let A=this.ranges.slice();return A[n]=e,EditorSelection.create(A,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new EditorSelection(e.ranges.map(n=>SelectionRange$1.fromJSON(n)),e.main)}static single(e,n=e){return new EditorSelection([EditorSelection.range(e,n)],0)}static create(e,n=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let A=0,o=0;o<e.length;o++){let s=e[o];if(s.empty?s.from<=A:s.from<A)return EditorSelection.normalized(e.slice(),n);A=s.to}return new EditorSelection(e,n)}static cursor(e,n=0,A,o){return SelectionRange$1.create(e,e,(n==0?0:n<0?8:16)|(A==null?7:Math.min(6,A))|(o??16777215)<<6)}static range(e,n,A,o){let s=(A??16777215)<<6|(o==null?7:Math.min(6,o));return n<e?SelectionRange$1.create(n,e,48|s):SelectionRange$1.create(e,n,(n>e?8:0)|s)}static normalized(e,n=0){let A=e[n];e.sort((o,s)=>o.from-s.from),n=e.indexOf(A);for(let o=1;o<e.length;o++){let s=e[o],a=e[o-1];if(s.empty?s.from<=a.to:s.from<a.to){let l=a.from,c=Math.max(s.to,a.to);o<=n&&n--,e.splice(--o,2,s.anchor>s.head?EditorSelection.range(c,l):EditorSelection.range(l,c))}}return new EditorSelection(e,n)}}function checkSelection(r,e){for(let n of r.ranges)if(n.to>e)throw new RangeError("Selection points outside of document")}let nextID=0;class Facet{constructor(e,n,A,o,s){this.combine=e,this.compareInput=n,this.compare=A,this.isStatic=o,this.id=nextID++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new Facet(e.combine||(n=>n),e.compareInput||((n,A)=>n===A),e.compare||(e.combine?(n,A)=>n===A:sameArray$1),!!e.static,e.enables)}of(e){return new FacetProvider([],this,0,e)}compute(e,n){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,1,n)}computeN(e,n){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,2,n)}from(e,n){return n||(n=A=>A),this.compute([e],A=>n(A.field(e)))}}function sameArray$1(r,e){return r==e||r.length==e.length&&r.every((n,A)=>n===e[A])}class FacetProvider{constructor(e,n,A,o){this.dependencies=e,this.facet=n,this.type=A,this.value=o,this.id=nextID++}dynamicSlot(e){var n;let A=this.value,o=this.facet.compareInput,s=this.id,a=e[s]>>1,l=this.type==2,c=!1,g=!1,h=[];for(let d of this.dependencies)d=="doc"?c=!0:d=="selection"?g=!0:(((n=e[d.id])!==null&&n!==void 0?n:1)&1)==0&&h.push(e[d.id]);return{create(d){return d.values[a]=A(d),1},update(d,u){if(c&&u.docChanged||g&&(u.docChanged||u.selection)||ensureAll(d,h)){let f=A(d);if(l?!compareArray(f,d.values[a],o):!o(f,d.values[a]))return d.values[a]=f,1}return 0},reconfigure:(d,u)=>{let f,I=u.config.address[s];if(I!=null){let p=getAddr(u,I);if(this.dependencies.every(m=>m instanceof Facet?u.facet(m)===d.facet(m):m instanceof StateField?u.field(m,!1)==d.field(m,!1):!0)||(l?compareArray(f=A(d),p,o):o(f=A(d),p)))return d.values[a]=p,0}else f=A(d);return d.values[a]=f,1}}}}function compareArray(r,e,n){if(r.length!=e.length)return!1;for(let A=0;A<r.length;A++)if(!n(r[A],e[A]))return!1;return!0}function ensureAll(r,e){let n=!1;for(let A of e)ensureAddr(r,A)&1&&(n=!0);return n}function dynamicFacetSlot(r,e,n){let A=n.map(c=>r[c.id]),o=n.map(c=>c.type),s=A.filter(c=>!(c&1)),a=r[e.id]>>1;function l(c){let g=[];for(let h=0;h<A.length;h++){let d=getAddr(c,A[h]);if(o[h]==2)for(let u of d)g.push(u);else g.push(d)}return e.combine(g)}return{create(c){for(let g of A)ensureAddr(c,g);return c.values[a]=l(c),1},update(c,g){if(!ensureAll(c,s))return 0;let h=l(c);return e.compare(h,c.values[a])?0:(c.values[a]=h,1)},reconfigure(c,g){let h=ensureAll(c,A),d=g.config.facets[e.id],u=g.facet(e);if(d&&!h&&sameArray$1(n,d))return c.values[a]=u,0;let f=l(c);return e.compare(f,u)?(c.values[a]=u,0):(c.values[a]=f,1)}}}const initField=Facet.define({static:!0});class StateField{constructor(e,n,A,o,s){this.id=e,this.createF=n,this.updateF=A,this.compareF=o,this.spec=s,this.provides=void 0}static define(e){let n=new StateField(nextID++,e.create,e.update,e.compare||((A,o)=>A===o),e);return e.provide&&(n.provides=e.provide(n)),n}create(e){let n=e.facet(initField).find(A=>A.field==this);return(n?.create||this.createF)(e)}slot(e){let n=e[this.id]>>1;return{create:A=>(A.values[n]=this.create(A),1),update:(A,o)=>{let s=A.values[n],a=this.updateF(s,o);return this.compareF(s,a)?0:(A.values[n]=a,1)},reconfigure:(A,o)=>{let s=A.facet(initField),a=o.facet(initField),l;return(l=s.find(c=>c.field==this))&&l!=a.find(c=>c.field==this)?(A.values[n]=l.create(A),1):o.config.address[this.id]!=null?(A.values[n]=o.field(this),0):(A.values[n]=this.create(A),1)}}}init(e){return[this,initField.of({field:this,create:e})]}get extension(){return this}}const Prec_={lowest:4,low:3,default:2,high:1,highest:0};function prec(r){return e=>new PrecExtension(e,r)}const Prec={highest:prec(Prec_.highest),high:prec(Prec_.high),default:prec(Prec_.default),low:prec(Prec_.low),lowest:prec(Prec_.lowest)};class PrecExtension{constructor(e,n){this.inner=e,this.prec=n}}class Compartment{of(e){return new CompartmentInstance(this,e)}reconfigure(e){return Compartment.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class CompartmentInstance{constructor(e,n){this.compartment=e,this.inner=n}}class Configuration{constructor(e,n,A,o,s,a){for(this.base=e,this.compartments=n,this.dynamicSlots=A,this.address=o,this.staticValues=s,this.facets=a,this.statusTemplate=[];this.statusTemplate.length<A.length;)this.statusTemplate.push(0)}staticFacet(e){let n=this.address[e.id];return n==null?e.default:this.staticValues[n>>1]}static resolve(e,n,A){let o=[],s=Object.create(null),a=new Map;for(let u of flatten(e,n,a))u instanceof StateField?o.push(u):(s[u.facet.id]||(s[u.facet.id]=[])).push(u);let l=Object.create(null),c=[],g=[];for(let u of o)l[u.id]=g.length<<1,g.push(f=>u.slot(f));let h=A?.config.facets;for(let u in s){let f=s[u],I=f[0].facet,p=h&&h[u]||[];if(f.every(m=>m.type==0))if(l[I.id]=c.length<<1|1,sameArray$1(p,f))c.push(A.facet(I));else{let m=I.combine(f.map(E=>E.value));c.push(A&&I.compare(m,A.facet(I))?A.facet(I):m)}else{for(let m of f)m.type==0?(l[m.id]=c.length<<1|1,c.push(m.value)):(l[m.id]=g.length<<1,g.push(E=>m.dynamicSlot(E)));l[I.id]=g.length<<1,g.push(m=>dynamicFacetSlot(m,I,f))}}let d=g.map(u=>u(l));return new Configuration(e,a,d,l,c,s)}}function flatten(r,e,n){let A=[[],[],[],[],[]],o=new Map;function s(a,l){let c=o.get(a);if(c!=null){if(c<=l)return;let g=A[c].indexOf(a);g>-1&&A[c].splice(g,1),a instanceof CompartmentInstance&&n.delete(a.compartment)}if(o.set(a,l),Array.isArray(a))for(let g of a)s(g,l);else if(a instanceof CompartmentInstance){if(n.has(a.compartment))throw new RangeError("Duplicate use of compartment in extensions");let g=e.get(a.compartment)||a.inner;n.set(a.compartment,g),s(g,l)}else if(a instanceof PrecExtension)s(a.inner,a.prec);else if(a instanceof StateField)A[l].push(a),a.provides&&s(a.provides,l);else if(a instanceof FacetProvider)A[l].push(a),a.facet.extensions&&s(a.facet.extensions,Prec_.default);else{let g=a.extension;if(!g)throw new Error(`Unrecognized extension value in extension set (${a}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(g,l)}}return s(r,Prec_.default),A.reduce((a,l)=>a.concat(l))}function ensureAddr(r,e){if(e&1)return 2;let n=e>>1,A=r.status[n];if(A==4)throw new Error("Cyclic dependency between fields and/or facets");if(A&2)return A;r.status[n]=4;let o=r.computeSlot(r,r.config.dynamicSlots[n]);return r.status[n]=2|o}function getAddr(r,e){return e&1?r.config.staticValues[e>>1]:r.values[e>>1]}const languageData=Facet.define(),allowMultipleSelections=Facet.define({combine:r=>r.some(e=>e),static:!0}),lineSeparator=Facet.define({combine:r=>r.length?r[0]:void 0,static:!0}),changeFilter=Facet.define(),transactionFilter=Facet.define(),transactionExtender=Facet.define(),readOnly=Facet.define({combine:r=>r.length?r[0]:!1});class Annotation{constructor(e,n){this.type=e,this.value=n}static define(){return new AnnotationType}}class AnnotationType{of(e){return new Annotation(this,e)}}class StateEffectType{constructor(e){this.map=e}of(e){return new StateEffect(this,e)}}class StateEffect{constructor(e,n){this.type=e,this.value=n}map(e){let n=this.type.map(this.value,e);return n===void 0?void 0:n==this.value?this:new StateEffect(this.type,n)}is(e){return this.type==e}static define(e={}){return new StateEffectType(e.map||(n=>n))}static mapEffects(e,n){if(!e.length)return e;let A=[];for(let o of e){let s=o.map(n);s&&A.push(s)}return A}}StateEffect.reconfigure=StateEffect.define();StateEffect.appendConfig=StateEffect.define();class Transaction{constructor(e,n,A,o,s,a){this.startState=e,this.changes=n,this.selection=A,this.effects=o,this.annotations=s,this.scrollIntoView=a,this._doc=null,this._state=null,A&&checkSelection(A,n.newLength),s.some(l=>l.type==Transaction.time)||(this.annotations=s.concat(Transaction.time.of(Date.now())))}static create(e,n,A,o,s,a){return new Transaction(e,n,A,o,s,a)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let n of this.annotations)if(n.type==e)return n.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let n=this.annotation(Transaction.userEvent);return!!(n&&(n==e||n.length>e.length&&n.slice(0,e.length)==e&&n[e.length]=="."))}}Transaction.time=Annotation.define();Transaction.userEvent=Annotation.define();Transaction.addToHistory=Annotation.define();Transaction.remote=Annotation.define();function joinRanges(r,e){let n=[];for(let A=0,o=0;;){let s,a;if(A<r.length&&(o==e.length||e[o]>=r[A]))s=r[A++],a=r[A++];else if(o<e.length)s=e[o++],a=e[o++];else return n;!n.length||n[n.length-1]<s?n.push(s,a):n[n.length-1]<a&&(n[n.length-1]=a)}}function mergeTransaction(r,e,n){var A;let o,s,a;return n?(o=e.changes,s=ChangeSet.empty(e.changes.length),a=r.changes.compose(e.changes)):(o=e.changes.map(r.changes),s=r.changes.mapDesc(e.changes,!0),a=r.changes.compose(o)),{changes:a,selection:e.selection?e.selection.map(s):(A=r.selection)===null||A===void 0?void 0:A.map(o),effects:StateEffect.mapEffects(r.effects,o).concat(StateEffect.mapEffects(e.effects,s)),annotations:r.annotations.length?r.annotations.concat(e.annotations):e.annotations,scrollIntoView:r.scrollIntoView||e.scrollIntoView}}function resolveTransactionInner(r,e,n){let A=e.selection,o=asArray$1(e.annotations);return e.userEvent&&(o=o.concat(Transaction.userEvent.of(e.userEvent))),{changes:e.changes instanceof ChangeSet?e.changes:ChangeSet.of(e.changes||[],n,r.facet(lineSeparator)),selection:A&&(A instanceof EditorSelection?A:EditorSelection.single(A.anchor,A.head)),effects:asArray$1(e.effects),annotations:o,scrollIntoView:!!e.scrollIntoView}}function resolveTransaction(r,e,n){let A=resolveTransactionInner(r,e.length?e[0]:{},r.doc.length);e.length&&e[0].filter===!1&&(n=!1);for(let s=1;s<e.length;s++){e[s].filter===!1&&(n=!1);let a=!!e[s].sequential;A=mergeTransaction(A,resolveTransactionInner(r,e[s],a?A.changes.newLength:r.doc.length),a)}let o=Transaction.create(r,A.changes,A.selection,A.effects,A.annotations,A.scrollIntoView);return extendTransaction(n?filterTransaction(o):o)}function filterTransaction(r){let e=r.startState,n=!0;for(let o of e.facet(changeFilter)){let s=o(r);if(s===!1){n=!1;break}Array.isArray(s)&&(n=n===!0?s:joinRanges(n,s))}if(n!==!0){let o,s;if(n===!1)s=r.changes.invertedDesc,o=ChangeSet.empty(e.doc.length);else{let a=r.changes.filter(n);o=a.changes,s=a.filtered.mapDesc(a.changes).invertedDesc}r=Transaction.create(e,o,r.selection&&r.selection.map(s),StateEffect.mapEffects(r.effects,s),r.annotations,r.scrollIntoView)}let A=e.facet(transactionFilter);for(let o=A.length-1;o>=0;o--){let s=A[o](r);s instanceof Transaction?r=s:Array.isArray(s)&&s.length==1&&s[0]instanceof Transaction?r=s[0]:r=resolveTransaction(e,asArray$1(s),!1)}return r}function extendTransaction(r){let e=r.startState,n=e.facet(transactionExtender),A=r;for(let o=n.length-1;o>=0;o--){let s=n[o](r);s&&Object.keys(s).length&&(A=mergeTransaction(A,resolveTransactionInner(e,s,r.changes.newLength),!0))}return A==r?r:Transaction.create(e,r.changes,r.selection,A.effects,A.annotations,A.scrollIntoView)}const none$1=[];function asArray$1(r){return r==null?none$1:Array.isArray(r)?r:[r]}var CharCategory=(function(r){return r[r.Word=0]="Word",r[r.Space=1]="Space",r[r.Other=2]="Other",r})(CharCategory||(CharCategory={}));const nonASCIISingleCaseWordChar=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let wordChar;try{wordChar=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function hasWordChar(r){if(wordChar)return wordChar.test(r);for(let e=0;e<r.length;e++){let n=r[e];if(/\w/.test(n)||n>"€"&&(n.toUpperCase()!=n.toLowerCase()||nonASCIISingleCaseWordChar.test(n)))return!0}return!1}function makeCategorizer(r){return e=>{if(!/\S/.test(e))return CharCategory.Space;if(hasWordChar(e))return CharCategory.Word;for(let n=0;n<r.length;n++)if(e.indexOf(r[n])>-1)return CharCategory.Word;return CharCategory.Other}}class EditorState{constructor(e,n,A,o,s,a){this.config=e,this.doc=n,this.selection=A,this.values=o,this.status=e.statusTemplate.slice(),this.computeSlot=s,a&&(a._state=this);for(let l=0;l<this.config.dynamicSlots.length;l++)ensureAddr(this,l<<1);this.computeSlot=null}field(e,n=!0){let A=this.config.address[e.id];if(A==null){if(n)throw new RangeError("Field is not present in this state");return}return ensureAddr(this,A),getAddr(this,A)}update(...e){return resolveTransaction(this,e,!0)}applyTransaction(e){let n=this.config,{base:A,compartments:o}=n;for(let l of e.effects)l.is(Compartment.reconfigure)?(n&&(o=new Map,n.compartments.forEach((c,g)=>o.set(g,c)),n=null),o.set(l.value.compartment,l.value.extension)):l.is(StateEffect.reconfigure)?(n=null,A=l.value):l.is(StateEffect.appendConfig)&&(n=null,A=asArray$1(A).concat(l.value));let s;n?s=e.startState.values.slice():(n=Configuration.resolve(A,o,this),s=new EditorState(n,this.doc,this.selection,n.dynamicSlots.map(()=>null),(c,g)=>g.reconfigure(c,this),null).values);let a=e.startState.facet(allowMultipleSelections)?e.newSelection:e.newSelection.asSingle();new EditorState(n,e.newDoc,a,s,(l,c)=>c.update(l,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:e},range:EditorSelection.cursor(n.from+e.length)}))}changeByRange(e){let n=this.selection,A=e(n.ranges[0]),o=this.changes(A.changes),s=[A.range],a=asArray$1(A.effects);for(let l=1;l<n.ranges.length;l++){let c=e(n.ranges[l]),g=this.changes(c.changes),h=g.map(o);for(let u=0;u<l;u++)s[u]=s[u].map(h);let d=o.mapDesc(g,!0);s.push(c.range.map(d)),o=o.compose(h),a=StateEffect.mapEffects(a,h).concat(StateEffect.mapEffects(asArray$1(c.effects),d))}return{changes:o,selection:EditorSelection.create(s,n.mainIndex),effects:a}}changes(e=[]){return e instanceof ChangeSet?e:ChangeSet.of(e,this.doc.length,this.facet(EditorState.lineSeparator))}toText(e){return Text.of(e.split(this.facet(EditorState.lineSeparator)||DefaultSplit))}sliceDoc(e=0,n=this.doc.length){return this.doc.sliceString(e,n,this.lineBreak)}facet(e){let n=this.config.address[e.id];return n==null?e.default:(ensureAddr(this,n),getAddr(this,n))}toJSON(e){let n={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let A in e){let o=e[A];o instanceof StateField&&this.config.address[o.id]!=null&&(n[A]=o.spec.toJSON(this.field(e[A]),this))}return n}static fromJSON(e,n={},A){if(!e||typeof e.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let o=[];if(A){for(let s in A)if(Object.prototype.hasOwnProperty.call(e,s)){let a=A[s],l=e[s];o.push(a.init(c=>a.spec.fromJSON(l,c)))}}return EditorState.create({doc:e.doc,selection:EditorSelection.fromJSON(e.selection),extensions:n.extensions?o.concat([n.extensions]):o})}static create(e={}){let n=Configuration.resolve(e.extensions||[],new Map),A=e.doc instanceof Text?e.doc:Text.of((e.doc||"").split(n.staticFacet(EditorState.lineSeparator)||DefaultSplit)),o=e.selection?e.selection instanceof EditorSelection?e.selection:EditorSelection.single(e.selection.anchor,e.selection.head):EditorSelection.single(0);return checkSelection(o,A.length),n.staticFacet(allowMultipleSelections)||(o=o.asSingle()),new EditorState(n,A,o,n.dynamicSlots.map(()=>null),(s,a)=>a.create(s),null)}get tabSize(){return this.facet(EditorState.tabSize)}get lineBreak(){return this.facet(EditorState.lineSeparator)||`
19
+ `}get readOnly(){return this.facet(readOnly)}phrase(e,...n){for(let A of this.facet(EditorState.phrases))if(Object.prototype.hasOwnProperty.call(A,e)){e=A[e];break}return n.length&&(e=e.replace(/\$(\$|\d*)/g,(A,o)=>{if(o=="$")return"$";let s=+(o||1);return!s||s>n.length?A:n[s-1]})),e}languageDataAt(e,n,A=-1){let o=[];for(let s of this.facet(languageData))for(let a of s(this,n,A))Object.prototype.hasOwnProperty.call(a,e)&&o.push(a[e]);return o}charCategorizer(e){return makeCategorizer(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:n,from:A,length:o}=this.doc.lineAt(e),s=this.charCategorizer(e),a=e-A,l=e-A;for(;a>0;){let c=findClusterBreak(n,a,!1);if(s(n.slice(c,a))!=CharCategory.Word)break;a=c}for(;l<o;){let c=findClusterBreak(n,l);if(s(n.slice(l,c))!=CharCategory.Word)break;l=c}return a==l?null:EditorSelection.range(a+A,l+A)}}EditorState.allowMultipleSelections=allowMultipleSelections;EditorState.tabSize=Facet.define({combine:r=>r.length?r[0]:4});EditorState.lineSeparator=lineSeparator;EditorState.readOnly=readOnly;EditorState.phrases=Facet.define({compare(r,e){let n=Object.keys(r),A=Object.keys(e);return n.length==A.length&&n.every(o=>r[o]==e[o])}});EditorState.languageData=languageData;EditorState.changeFilter=changeFilter;EditorState.transactionFilter=transactionFilter;EditorState.transactionExtender=transactionExtender;Compartment.reconfigure=StateEffect.define();function combineConfig(r,e,n={}){let A={};for(let o of r)for(let s of Object.keys(o)){let a=o[s],l=A[s];if(l===void 0)A[s]=a;else if(!(l===a||a===void 0))if(Object.hasOwnProperty.call(n,s))A[s]=n[s](l,a);else throw new Error("Config merge conflict for field "+s)}for(let o in e)A[o]===void 0&&(A[o]=e[o]);return A}class RangeValue{eq(e){return this==e}range(e,n=e){return Range$2.create(e,n,this)}}RangeValue.prototype.startSide=RangeValue.prototype.endSide=0;RangeValue.prototype.point=!1;RangeValue.prototype.mapMode=MapMode.TrackDel;let Range$2=class pt{constructor(e,n,A){this.from=e,this.to=n,this.value=A}static create(e,n,A){return new pt(e,n,A)}};function cmpRange(r,e){return r.from-e.from||r.value.startSide-e.value.startSide}class Chunk{constructor(e,n,A,o){this.from=e,this.to=n,this.value=A,this.maxPoint=o}get length(){return this.to[this.to.length-1]}findIndex(e,n,A,o=0){let s=A?this.to:this.from;for(let a=o,l=s.length;;){if(a==l)return a;let c=a+l>>1,g=s[c]-e||(A?this.value[c].endSide:this.value[c].startSide)-n;if(c==a)return g>=0?a:l;g>=0?l=c:a=c+1}}between(e,n,A,o){for(let s=this.findIndex(n,-1e9,!0),a=this.findIndex(A,1e9,!1,s);s<a;s++)if(o(this.from[s]+e,this.to[s]+e,this.value[s])===!1)return!1}map(e,n){let A=[],o=[],s=[],a=-1,l=-1;for(let c=0;c<this.value.length;c++){let g=this.value[c],h=this.from[c]+e,d=this.to[c]+e,u,f;if(h==d){let I=n.mapPos(h,g.startSide,g.mapMode);if(I==null||(u=f=I,g.startSide!=g.endSide&&(f=n.mapPos(h,g.endSide),f<u)))continue}else if(u=n.mapPos(h,g.startSide),f=n.mapPos(d,g.endSide),u>f||u==f&&g.startSide>0&&g.endSide<=0)continue;(f-u||g.endSide-g.startSide)<0||(a<0&&(a=u),g.point&&(l=Math.max(l,f-u)),A.push(g),o.push(u-a),s.push(f-a))}return{mapped:A.length?new Chunk(o,s,A,l):null,pos:a}}}class RangeSet{constructor(e,n,A,o){this.chunkPos=e,this.chunk=n,this.nextLayer=A,this.maxPoint=o}static create(e,n,A,o){return new RangeSet(e,n,A,o)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let n of this.chunk)e+=n.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:n=[],sort:A=!1,filterFrom:o=0,filterTo:s=this.length}=e,a=e.filter;if(n.length==0&&!a)return this;if(A&&(n=n.slice().sort(cmpRange)),this.isEmpty)return n.length?RangeSet.of(n):this;let l=new LayerCursor(this,null,-1).goto(0),c=0,g=[],h=new RangeSetBuilder;for(;l.value||c<n.length;)if(c<n.length&&(l.from-n[c].from||l.startSide-n[c].value.startSide)>=0){let d=n[c++];h.addInner(d.from,d.to,d.value)||g.push(d)}else l.rangeIndex==1&&l.chunkIndex<this.chunk.length&&(c==n.length||this.chunkEnd(l.chunkIndex)<n[c].from)&&(!a||o>this.chunkEnd(l.chunkIndex)||s<this.chunkPos[l.chunkIndex])&&h.addChunk(this.chunkPos[l.chunkIndex],this.chunk[l.chunkIndex])?l.nextChunk():((!a||o>l.to||s<l.from||a(l.from,l.to,l.value))&&(h.addInner(l.from,l.to,l.value)||g.push(Range$2.create(l.from,l.to,l.value))),l.next());return h.finishInner(this.nextLayer.isEmpty&&!g.length?RangeSet.empty:this.nextLayer.update({add:g,filter:a,filterFrom:o,filterTo:s}))}map(e){if(e.empty||this.isEmpty)return this;let n=[],A=[],o=-1;for(let a=0;a<this.chunk.length;a++){let l=this.chunkPos[a],c=this.chunk[a],g=e.touchesRange(l,l+c.length);if(g===!1)o=Math.max(o,c.maxPoint),n.push(c),A.push(e.mapPos(l));else if(g===!0){let{mapped:h,pos:d}=c.map(l,e);h&&(o=Math.max(o,h.maxPoint),n.push(h),A.push(d))}}let s=this.nextLayer.map(e);return n.length==0?s:new RangeSet(A,n,s||RangeSet.empty,o)}between(e,n,A){if(!this.isEmpty){for(let o=0;o<this.chunk.length;o++){let s=this.chunkPos[o],a=this.chunk[o];if(n>=s&&e<=s+a.length&&a.between(s,e-s,n-s,A)===!1)return}this.nextLayer.between(e,n,A)}}iter(e=0){return HeapCursor.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,n=0){return HeapCursor.from(e).goto(n)}static compare(e,n,A,o,s=-1){let a=e.filter(d=>d.maxPoint>0||!d.isEmpty&&d.maxPoint>=s),l=n.filter(d=>d.maxPoint>0||!d.isEmpty&&d.maxPoint>=s),c=findSharedChunks(a,l,A),g=new SpanCursor(a,c,s),h=new SpanCursor(l,c,s);A.iterGaps((d,u,f)=>compare$1(g,d,h,u,f,o)),A.empty&&A.length==0&&compare$1(g,0,h,0,0,o)}static eq(e,n,A=0,o){o==null&&(o=999999999);let s=e.filter(h=>!h.isEmpty&&n.indexOf(h)<0),a=n.filter(h=>!h.isEmpty&&e.indexOf(h)<0);if(s.length!=a.length)return!1;if(!s.length)return!0;let l=findSharedChunks(s,a),c=new SpanCursor(s,l,0).goto(A),g=new SpanCursor(a,l,0).goto(A);for(;;){if(c.to!=g.to||!sameValues(c.active,g.active)||c.point&&(!g.point||!c.point.eq(g.point)))return!1;if(c.to>o)return!0;c.next(),g.next()}}static spans(e,n,A,o,s=-1){let a=new SpanCursor(e,null,s).goto(n),l=n,c=a.openStart;for(;;){let g=Math.min(a.to,A);if(a.point){let h=a.activeForPoint(a.to),d=a.pointFrom<n?h.length+1:a.point.startSide<0?h.length:Math.min(h.length,c);o.point(l,g,a.point,h,d,a.pointRank),c=Math.min(a.openEnd(g),h.length)}else g>l&&(o.span(l,g,a.active,c),c=a.openEnd(g));if(a.to>A)return c+(a.point&&a.to>A?1:0);l=a.to,a.next()}}static of(e,n=!1){let A=new RangeSetBuilder;for(let o of e instanceof Range$2?[e]:n?lazySort(e):e)A.add(o.from,o.to,o.value);return A.finish()}static join(e){if(!e.length)return RangeSet.empty;let n=e[e.length-1];for(let A=e.length-2;A>=0;A--)for(let o=e[A];o!=RangeSet.empty;o=o.nextLayer)n=new RangeSet(o.chunkPos,o.chunk,n,Math.max(o.maxPoint,n.maxPoint));return n}}RangeSet.empty=new RangeSet([],[],null,-1);function lazySort(r){if(r.length>1)for(let e=r[0],n=1;n<r.length;n++){let A=r[n];if(cmpRange(e,A)>0)return r.slice().sort(cmpRange);e=A}return r}RangeSet.empty.nextLayer=RangeSet.empty;class RangeSetBuilder{finishChunk(e){this.chunks.push(new Chunk(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,n,A){this.addInner(e,n,A)||(this.nextLayer||(this.nextLayer=new RangeSetBuilder)).add(e,n,A)}addInner(e,n,A){let o=e-this.lastTo||A.startSide-this.last.endSide;if(o<=0&&(e-this.lastFrom||A.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return o<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(n-this.chunkStart),this.last=A,this.lastFrom=e,this.lastTo=n,this.value.push(A),A.point&&(this.maxPoint=Math.max(this.maxPoint,n-e)),!0)}addChunk(e,n){if((e-this.lastTo||n.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,n.maxPoint),this.chunks.push(n),this.chunkPos.push(e);let A=n.value.length-1;return this.last=n.value[A],this.lastFrom=n.from[A]+e,this.lastTo=n.to[A]+e,!0}finish(){return this.finishInner(RangeSet.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let n=RangeSet.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,n}}function findSharedChunks(r,e,n){let A=new Map;for(let s of r)for(let a=0;a<s.chunk.length;a++)s.chunk[a].maxPoint<=0&&A.set(s.chunk[a],s.chunkPos[a]);let o=new Set;for(let s of e)for(let a=0;a<s.chunk.length;a++){let l=A.get(s.chunk[a]);l!=null&&(n?n.mapPos(l):l)==s.chunkPos[a]&&!n?.touchesRange(l,l+s.chunk[a].length)&&o.add(s.chunk[a])}return o}class LayerCursor{constructor(e,n,A,o=0){this.layer=e,this.skip=n,this.minPoint=A,this.rank=o}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(e,n=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(e,n,!1),this}gotoInner(e,n,A){for(;this.chunkIndex<this.layer.chunk.length;){let o=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(o)||this.layer.chunkEnd(this.chunkIndex)<e||o.maxPoint<this.minPoint))break;this.chunkIndex++,A=!1}if(this.chunkIndex<this.layer.chunk.length){let o=this.layer.chunk[this.chunkIndex].findIndex(e-this.layer.chunkPos[this.chunkIndex],n,!0);(!A||this.rangeIndex<o)&&this.setRangeIndex(o)}this.next()}forward(e,n){(this.to-e||this.endSide-n)<0&&this.gotoInner(e,n,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let e=this.layer.chunkPos[this.chunkIndex],n=this.layer.chunk[this.chunkIndex],A=e+n.from[this.rangeIndex];if(this.from=A,this.to=e+n.to[this.rangeIndex],this.value=n.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=e}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(e){return this.from-e.from||this.startSide-e.startSide||this.rank-e.rank||this.to-e.to||this.endSide-e.endSide}}class HeapCursor{constructor(e){this.heap=e}static from(e,n=null,A=-1){let o=[];for(let s=0;s<e.length;s++)for(let a=e[s];!a.isEmpty;a=a.nextLayer)a.maxPoint>=A&&o.push(new LayerCursor(a,n,A,s));return o.length==1?o[0]:new HeapCursor(o)}get startSide(){return this.value?this.value.startSide:0}goto(e,n=-1e9){for(let A of this.heap)A.goto(e,n);for(let A=this.heap.length>>1;A>=0;A--)heapBubble(this.heap,A);return this.next(),this}forward(e,n){for(let A of this.heap)A.forward(e,n);for(let A=this.heap.length>>1;A>=0;A--)heapBubble(this.heap,A);(this.to-e||this.value.endSide-n)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),heapBubble(this.heap,0)}}}function heapBubble(r,e){for(let n=r[e];;){let A=(e<<1)+1;if(A>=r.length)break;let o=r[A];if(A+1<r.length&&o.compare(r[A+1])>=0&&(o=r[A+1],A++),n.compare(o)<0)break;r[A]=n,r[e]=o,e=A}}class SpanCursor{constructor(e,n,A){this.minPoint=A,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=HeapCursor.from(e,n,A)}goto(e,n=-1e9){return this.cursor.goto(e,n),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=n,this.openStart=-1,this.next(),this}forward(e,n){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-n)<0;)this.removeActive(this.minActive);this.cursor.forward(e,n)}removeActive(e){remove(this.active,e),remove(this.activeTo,e),remove(this.activeRank,e),this.minActive=findMinIndex(this.active,this.activeTo)}addActive(e){let n=0,{value:A,to:o,rank:s}=this.cursor;for(;n<this.activeRank.length&&(s-this.activeRank[n]||o-this.activeTo[n])>0;)n++;insert$1(this.active,n,A),insert$1(this.activeTo,n,o),insert$1(this.activeRank,n,s),e&&insert$1(e,n,this.cursor.from),this.minActive=findMinIndex(this.active,this.activeTo)}next(){let e=this.to,n=this.point;this.point=null;let A=this.openStart<0?[]:null;for(;;){let o=this.minActive;if(o>-1&&(this.activeTo[o]-this.cursor.from||this.active[o].endSide-this.cursor.startSide)<0){if(this.activeTo[o]>e){this.to=this.activeTo[o],this.endSide=this.active[o].endSide;break}this.removeActive(o),A&&remove(A,o)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(A),this.cursor.next();else if(n&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)this.cursor.next();else{this.point=s,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=s.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}}else{this.to=this.endSide=1e9;break}}if(A){this.openStart=0;for(let o=A.length-1;o>=0&&A[o]<e;o--)this.openStart++}}activeForPoint(e){if(!this.active.length)return this.active;let n=[];for(let A=this.active.length-1;A>=0&&!(this.activeRank[A]<this.pointRank);A--)(this.activeTo[A]>e||this.activeTo[A]==e&&this.active[A].endSide>=this.point.endSide)&&n.push(this.active[A]);return n.reverse()}openEnd(e){let n=0;for(let A=this.activeTo.length-1;A>=0&&this.activeTo[A]>e;A--)n++;return n}}function compare$1(r,e,n,A,o,s){r.goto(e),n.goto(A);let a=A+o,l=A,c=A-e;for(;;){let g=r.to+c-n.to,h=g||r.endSide-n.endSide,d=h<0?r.to+c:n.to,u=Math.min(d,a);if(r.point||n.point?r.point&&n.point&&(r.point==n.point||r.point.eq(n.point))&&sameValues(r.activeForPoint(r.to),n.activeForPoint(n.to))||s.comparePoint(l,u,r.point,n.point):u>l&&!sameValues(r.active,n.active)&&s.compareRange(l,u,r.active,n.active),d>a)break;(g||r.openEnd!=n.openEnd)&&s.boundChange&&s.boundChange(d),l=d,h<=0&&r.next(),h>=0&&n.next()}}function sameValues(r,e){if(r.length!=e.length)return!1;for(let n=0;n<r.length;n++)if(r[n]!=e[n]&&!r[n].eq(e[n]))return!1;return!0}function remove(r,e){for(let n=e,A=r.length-1;n<A;n++)r[n]=r[n+1];r.pop()}function insert$1(r,e,n){for(let A=r.length-1;A>=e;A--)r[A+1]=r[A];r[e]=n}function findMinIndex(r,e){let n=-1,A=1e9;for(let o=0;o<e.length;o++)(e[o]-A||r[o].endSide-r[n].endSide)<0&&(n=o,A=e[o]);return n}function countColumn(r,e,n=r.length){let A=0;for(let o=0;o<n&&o<r.length;)r.charCodeAt(o)==9?(A+=e-A%e,o++):(A++,o=findClusterBreak(r,o));return A}function findColumn(r,e,n,A){for(let o=0,s=0;;){if(s>=e)return o;if(o==r.length)break;s+=r.charCodeAt(o)==9?n-s%n:1,o=findClusterBreak(r,o)}return A===!0?-1:r.length}const C$1="ͼ",COUNT=typeof Symbol>"u"?"__"+C$1:Symbol.for(C$1),SET=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),top=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class StyleModule{constructor(e,n){this.rules=[];let{finish:A}=n||{};function o(a){return/^@/.test(a)?[a]:a.split(/,\s*/)}function s(a,l,c,g){let h=[],d=/^@(\w+)\b/.exec(a[0]),u=d&&d[1]=="keyframes";if(d&&l==null)return c.push(a[0]+";");for(let f in l){let I=l[f];if(/&/.test(f))s(f.split(/,\s*/).map(p=>a.map(m=>p.replace(/&/,m))).reduce((p,m)=>p.concat(m)),I,c);else if(I&&typeof I=="object"){if(!d)throw new RangeError("The value of a property ("+f+") should be a primitive value.");s(o(f),I,h,u)}else I!=null&&h.push(f.replace(/_.*/,"").replace(/[A-Z]/g,p=>"-"+p.toLowerCase())+": "+I+";")}(h.length||u)&&c.push((A&&!d&&!g?a.map(A):a).join(", ")+" {"+h.join(" ")+"}")}for(let a in e)s(o(a),e[a],this.rules)}getRules(){return this.rules.join(`
20
+ `)}static newName(){let e=top[COUNT]||1;return top[COUNT]=e+1,C$1+e.toString(36)}static mount(e,n,A){let o=e[SET],s=A&&A.nonce;o?s&&o.setNonce(s):o=new StyleSet(e,s),o.mount(Array.isArray(n)?n:[n],e)}}let adoptedSet=new Map;class StyleSet{constructor(e,n){let A=e.ownerDocument||e,o=A.defaultView;if(!e.head&&e.adoptedStyleSheets&&o.CSSStyleSheet){let s=adoptedSet.get(A);if(s)return e[SET]=s;this.sheet=new o.CSSStyleSheet,adoptedSet.set(A,this)}else this.styleTag=A.createElement("style"),n&&this.styleTag.setAttribute("nonce",n);this.modules=[],e[SET]=this}mount(e,n){let A=this.sheet,o=0,s=0;for(let a=0;a<e.length;a++){let l=e[a],c=this.modules.indexOf(l);if(c<s&&c>-1&&(this.modules.splice(c,1),s--,c=-1),c==-1){if(this.modules.splice(s++,0,l),A)for(let g=0;g<l.rules.length;g++)A.insertRule(l.rules[g],o++)}else{for(;s<c;)o+=this.modules[s++].rules.length;o+=l.rules.length,s++}}if(A)n.adoptedStyleSheets.indexOf(this.sheet)<0&&(n.adoptedStyleSheets=[this.sheet,...n.adoptedStyleSheets]);else{let a="";for(let c=0;c<this.modules.length;c++)a+=this.modules[c].getRules()+`
21
+ `;this.styleTag.textContent=a;let l=n.head||n;this.styleTag.parentNode!=l&&l.insertBefore(this.styleTag,l.firstChild)}}setNonce(e){this.styleTag&&this.styleTag.getAttribute("nonce")!=e&&this.styleTag.setAttribute("nonce",e)}}var base={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},shift={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},mac$1=typeof navigator<"u"&&/Mac/.test(navigator.platform),ie$1=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var i=0;i<10;i++)base[48+i]=base[96+i]=String(i);for(var i=1;i<=24;i++)base[i+111]="F"+i;for(var i=65;i<=90;i++)base[i]=String.fromCharCode(i+32),shift[i]=String.fromCharCode(i);for(var code in base)shift.hasOwnProperty(code)||(shift[code]=base[code]);function keyName(r){var e=mac$1&&r.metaKey&&r.shiftKey&&!r.ctrlKey&&!r.altKey||ie$1&&r.shiftKey&&r.key&&r.key.length==1||r.key=="Unidentified",n=!e&&r.key||(r.shiftKey?shift:base)[r.keyCode]||r.key||"Unidentified";return n=="Esc"&&(n="Escape"),n=="Del"&&(n="Delete"),n=="Left"&&(n="ArrowLeft"),n=="Up"&&(n="ArrowUp"),n=="Right"&&(n="ArrowRight"),n=="Down"&&(n="ArrowDown"),n}function getSelection$1(r){let e;return r.nodeType==11?e=r.getSelection?r:r.ownerDocument:e=r,e.getSelection()}function contains(r,e){return e?r==e||r.contains(e.nodeType!=1?e.parentNode:e):!1}function hasSelection(r,e){if(!e.anchorNode)return!1;try{return contains(r,e.anchorNode)}catch{return!1}}function clientRectsFor(r){return r.nodeType==3?textRange(r,0,r.nodeValue.length).getClientRects():r.nodeType==1?r.getClientRects():[]}function isEquivalentPosition(r,e,n,A){return n?scanFor(r,e,n,A,-1)||scanFor(r,e,n,A,1):!1}function domIndex(r){for(var e=0;;e++)if(r=r.previousSibling,!r)return e}function isBlockElement(r){return r.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(r.nodeName)}function scanFor(r,e,n,A,o){for(;;){if(r==n&&e==A)return!0;if(e==(o<0?0:maxOffset(r))){if(r.nodeName=="DIV")return!1;let s=r.parentNode;if(!s||s.nodeType!=1)return!1;e=domIndex(r)+(o<0?0:1),r=s}else if(r.nodeType==1){if(r=r.childNodes[e+(o<0?-1:0)],r.nodeType==1&&r.contentEditable=="false")return!1;e=o<0?maxOffset(r):0}else return!1}}function maxOffset(r){return r.nodeType==3?r.nodeValue.length:r.childNodes.length}function flattenRect(r,e){let n=e?r.left:r.right;return{left:n,right:n,top:r.top,bottom:r.bottom}}function windowRect(r){let e=r.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:r.innerWidth,top:0,bottom:r.innerHeight}}function getScale(r,e){let n=e.width/r.offsetWidth,A=e.height/r.offsetHeight;return(n>.995&&n<1.005||!isFinite(n)||Math.abs(e.width-r.offsetWidth)<1)&&(n=1),(A>.995&&A<1.005||!isFinite(A)||Math.abs(e.height-r.offsetHeight)<1)&&(A=1),{scaleX:n,scaleY:A}}function scrollRectIntoView(r,e,n,A,o,s,a,l){let c=r.ownerDocument,g=c.defaultView||window;for(let h=r,d=!1;h&&!d;)if(h.nodeType==1){let u,f=h==c.body,I=1,p=1;if(f)u=windowRect(g);else{if(/^(fixed|sticky)$/.test(getComputedStyle(h).position)&&(d=!0),h.scrollHeight<=h.clientHeight&&h.scrollWidth<=h.clientWidth){h=h.assignedSlot||h.parentNode;continue}let B=h.getBoundingClientRect();({scaleX:I,scaleY:p}=getScale(h,B)),u={left:B.left,right:B.left+h.clientWidth*I,top:B.top,bottom:B.top+h.clientHeight*p}}let m=0,E=0;if(o=="nearest")e.top<u.top?(E=e.top-(u.top+a),n>0&&e.bottom>u.bottom+E&&(E=e.bottom-u.bottom+a)):e.bottom>u.bottom&&(E=e.bottom-u.bottom+a,n<0&&e.top-E<u.top&&(E=e.top-(u.top+a)));else{let B=e.bottom-e.top,Q=u.bottom-u.top;E=(o=="center"&&B<=Q?e.top+B/2-Q/2:o=="start"||o=="center"&&n<0?e.top-a:e.bottom-Q+a)-u.top}if(A=="nearest"?e.left<u.left?(m=e.left-(u.left+s),n>0&&e.right>u.right+m&&(m=e.right-u.right+s)):e.right>u.right&&(m=e.right-u.right+s,n<0&&e.left<u.left+m&&(m=e.left-(u.left+s))):m=(A=="center"?e.left+(e.right-e.left)/2-(u.right-u.left)/2:A=="start"==l?e.left-s:e.right-(u.right-u.left)+s)-u.left,m||E)if(f)g.scrollBy(m,E);else{let B=0,Q=0;if(E){let w=h.scrollTop;h.scrollTop+=E/p,Q=(h.scrollTop-w)*p}if(m){let w=h.scrollLeft;h.scrollLeft+=m/I,B=(h.scrollLeft-w)*I}e={left:e.left-B,top:e.top-Q,right:e.right-B,bottom:e.bottom-Q},B&&Math.abs(B-m)<1&&(A="nearest"),Q&&Math.abs(Q-E)<1&&(o="nearest")}if(f)break;(e.top<u.top||e.bottom>u.bottom||e.left<u.left||e.right>u.right)&&(e={left:Math.max(e.left,u.left),right:Math.min(e.right,u.right),top:Math.max(e.top,u.top),bottom:Math.min(e.bottom,u.bottom)}),h=h.assignedSlot||h.parentNode}else if(h.nodeType==11)h=h.host;else break}function scrollableParents(r){let e=r.ownerDocument,n,A;for(let o=r.parentNode;o&&!(o==e.body||n&&A);)if(o.nodeType==1)!A&&o.scrollHeight>o.clientHeight&&(A=o),!n&&o.scrollWidth>o.clientWidth&&(n=o),o=o.assignedSlot||o.parentNode;else if(o.nodeType==11)o=o.host;else break;return{x:n,y:A}}class DOMSelectionState{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:n,focusNode:A}=e;this.set(n,Math.min(e.anchorOffset,n?maxOffset(n):0),A,Math.min(e.focusOffset,A?maxOffset(A):0))}set(e,n,A,o){this.anchorNode=e,this.anchorOffset=n,this.focusNode=A,this.focusOffset=o}}let preventScrollSupported=null;function focusPreventScroll(r){if(r.setActive)return r.setActive();if(preventScrollSupported)return r.focus(preventScrollSupported);let e=[];for(let n=r;n&&(e.push(n,n.scrollTop,n.scrollLeft),n!=n.ownerDocument);n=n.parentNode);if(r.focus(preventScrollSupported==null?{get preventScroll(){return preventScrollSupported={preventScroll:!0},!0}}:void 0),!preventScrollSupported){preventScrollSupported=!1;for(let n=0;n<e.length;){let A=e[n++],o=e[n++],s=e[n++];A.scrollTop!=o&&(A.scrollTop=o),A.scrollLeft!=s&&(A.scrollLeft=s)}}}let scratchRange;function textRange(r,e,n=e){let A=scratchRange||(scratchRange=document.createRange());return A.setEnd(r,n),A.setStart(r,e),A}function dispatchKey(r,e,n,A){let o={key:e,code:e,keyCode:n,which:n,cancelable:!0};A&&({altKey:o.altKey,ctrlKey:o.ctrlKey,shiftKey:o.shiftKey,metaKey:o.metaKey}=A);let s=new KeyboardEvent("keydown",o);s.synthetic=!0,r.dispatchEvent(s);let a=new KeyboardEvent("keyup",o);return a.synthetic=!0,r.dispatchEvent(a),s.defaultPrevented||a.defaultPrevented}function getRoot(r){for(;r;){if(r&&(r.nodeType==9||r.nodeType==11&&r.host))return r;r=r.assignedSlot||r.parentNode}return null}function clearAttributes(r){for(;r.attributes.length;)r.removeAttributeNode(r.attributes[0])}function atElementStart(r,e){let n=e.focusNode,A=e.focusOffset;if(!n||e.anchorNode!=n||e.anchorOffset!=A)return!1;for(A=Math.min(A,maxOffset(n));;)if(A){if(n.nodeType!=1)return!1;let o=n.childNodes[A-1];o.contentEditable=="false"?A--:(n=o,A=maxOffset(n))}else{if(n==r)return!0;A=domIndex(n),n=n.parentNode}}function isScrolledToBottom(r){return r.scrollTop>Math.max(1,r.scrollHeight-r.clientHeight-4)}function textNodeBefore(r,e){for(let n=r,A=e;;){if(n.nodeType==3&&A>0)return{node:n,offset:A};if(n.nodeType==1&&A>0){if(n.contentEditable=="false")return null;n=n.childNodes[A-1],A=maxOffset(n)}else if(n.parentNode&&!isBlockElement(n))A=domIndex(n),n=n.parentNode;else return null}}function textNodeAfter(r,e){for(let n=r,A=e;;){if(n.nodeType==3&&A<n.nodeValue.length)return{node:n,offset:A};if(n.nodeType==1&&A<n.childNodes.length){if(n.contentEditable=="false")return null;n=n.childNodes[A],A=0}else if(n.parentNode&&!isBlockElement(n))A=domIndex(n)+1,n=n.parentNode;else return null}}class DOMPos{constructor(e,n,A=!0){this.node=e,this.offset=n,this.precise=A}static before(e,n){return new DOMPos(e.parentNode,domIndex(e),n)}static after(e,n){return new DOMPos(e.parentNode,domIndex(e)+1,n)}}const noChildren=[];class ContentView{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e){let n=this.posAtStart;for(let A of this.children){if(A==e)return n;n+=A.length+A.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}sync(e,n){if(this.flags&2){let A=this.dom,o=null,s;for(let a of this.children){if(a.flags&7){if(!a.dom&&(s=o?o.nextSibling:A.firstChild)){let l=ContentView.get(s);(!l||!l.parent&&l.canReuseDOM(a))&&a.reuseDOM(s)}a.sync(e,n),a.flags&=-8}if(s=o?o.nextSibling:A.firstChild,n&&!n.written&&n.node==A&&s!=a.dom&&(n.written=!0),a.dom.parentNode==A)for(;s&&s!=a.dom;)s=rm$1(s);else A.insertBefore(a.dom,s);o=a.dom}for(s=o?o.nextSibling:A.firstChild,s&&n&&n.node==A&&(n.written=!0);s;)s=rm$1(s)}else if(this.flags&1)for(let A of this.children)A.flags&7&&(A.sync(e,n),A.flags&=-8)}reuseDOM(e){}localPosFromDOM(e,n){let A;if(e==this.dom)A=this.dom.childNodes[n];else{let o=maxOffset(e)==0?0:n==0?-1:1;for(;;){let s=e.parentNode;if(s==this.dom)break;o==0&&s.firstChild!=s.lastChild&&(e==s.firstChild?o=-1:o=1),e=s}o<0?A=e:A=e.nextSibling}if(A==this.dom.firstChild)return 0;for(;A&&!ContentView.get(A);)A=A.nextSibling;if(!A)return this.length;for(let o=0,s=0;;o++){let a=this.children[o];if(a.dom==A)return s;s+=a.length+a.breakAfter}}domBoundsAround(e,n,A=0){let o=-1,s=-1,a=-1,l=-1;for(let c=0,g=A,h=A;c<this.children.length;c++){let d=this.children[c],u=g+d.length;if(g<e&&u>n)return d.domBoundsAround(e,n,g);if(u>=e&&o==-1&&(o=c,s=g),g>n&&d.dom.parentNode==this.dom){a=c,l=h;break}h=u,g=u+d.breakAfter}return{from:s,to:l<0?A+this.length:l,startDOM:(o?this.children[o-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:a<this.children.length&&a>=0?this.children[a].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let n=this.parent;n;n=n.parent){if(e&&(n.flags|=2),n.flags&1)return;n.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.flags&7&&this.markParentsDirty(!0))}setDOM(e){this.dom!=e&&(this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this)}get rootView(){for(let e=this;;){let n=e.parent;if(!n)return e;e=n}}replaceChildren(e,n,A=noChildren){this.markDirty();for(let o=e;o<n;o++){let s=this.children[o];s.parent==this&&A.indexOf(s)<0&&s.destroy()}A.length<250?this.children.splice(e,n-e,...A):this.children=[].concat(this.children.slice(0,e),A,this.children.slice(n));for(let o=0;o<A.length;o++)A[o].setParent(this)}ignoreMutation(e){return!1}ignoreEvent(e){return!1}childCursor(e=this.length){return new ChildCursor(this.children,e,this.children.length)}childPos(e,n=1){return this.childCursor().findPos(e,n)}toString(){let e=this.constructor.name.replace("View","");return e+(this.children.length?"("+this.children.join()+")":this.length?"["+(e=="Text"?this.text:this.length)+"]":"")+(this.breakAfter?"#":"")}static get(e){return e.cmView}get isEditable(){return!0}get isWidget(){return!1}get isHidden(){return!1}merge(e,n,A,o,s,a){return!1}become(e){return!1}canReuseDOM(e){return e.constructor==this.constructor&&!((this.flags|e.flags)&8)}getSide(){return 0}destroy(){for(let e of this.children)e.parent==this&&e.destroy();this.parent=null}}ContentView.prototype.breakAfter=0;function rm$1(r){let e=r.nextSibling;return r.parentNode.removeChild(r),e}class ChildCursor{constructor(e,n,A){this.children=e,this.pos=n,this.i=A,this.off=0}findPos(e,n=1){for(;;){if(e>this.pos||e==this.pos&&(n>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let A=this.children[--this.i];this.pos-=A.length+A.breakAfter}}}function replaceRange(r,e,n,A,o,s,a,l,c){let{children:g}=r,h=g.length?g[e]:null,d=s.length?s[s.length-1]:null,u=d?d.breakAfter:a;if(!(e==A&&h&&!a&&!u&&s.length<2&&h.merge(n,o,s.length?d:null,n==0,l,c))){if(A<g.length){let f=g[A];f&&(o<f.length||f.breakAfter&&d?.breakAfter)?(e==A&&(f=f.split(o),o=0),!u&&d&&f.merge(0,o,d,!0,0,c)?s[s.length-1]=f:((o||f.children.length&&!f.children[0].length)&&f.merge(0,o,null,!1,0,c),s.push(f))):f?.breakAfter&&(d?d.breakAfter=1:a=1),A++}for(h&&(h.breakAfter=a,n>0&&(!a&&s.length&&h.merge(n,h.length,s[0],!1,l,0)?h.breakAfter=s.shift().breakAfter:(n<h.length||h.children.length&&h.children[h.children.length-1].length==0)&&h.merge(n,h.length,null,!1,l,0),e++));e<A&&s.length;)if(g[A-1].become(s[s.length-1]))A--,s.pop(),c=s.length?0:l;else if(g[e].become(s[0]))e++,s.shift(),l=s.length?0:c;else break;!s.length&&e&&A<g.length&&!g[e-1].breakAfter&&g[A].merge(0,0,g[e-1],!1,l,c)&&e--,(e<A||s.length)&&r.replaceChildren(e,A,s)}}function mergeChildrenInto(r,e,n,A,o,s){let a=r.childCursor(),{i:l,off:c}=a.findPos(n,1),{i:g,off:h}=a.findPos(e,-1),d=e-n;for(let u of A)d+=u.length;r.length+=d,replaceRange(r,g,h,l,c,A,0,o,s)}let nav=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},doc$1=typeof document<"u"?document:{documentElement:{style:{}}};const ie_edge=/Edge\/(\d+)/.exec(nav.userAgent),ie_upto10=/MSIE \d/.test(nav.userAgent),ie_11up=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(nav.userAgent),ie=!!(ie_upto10||ie_11up||ie_edge),gecko=!ie&&/gecko\/(\d+)/i.test(nav.userAgent),chrome=!ie&&/Chrome\/(\d+)/.exec(nav.userAgent),webkit="webkitFontSmoothing"in doc$1.documentElement.style,safari=!ie&&/Apple Computer/.test(nav.vendor),ios=safari&&(/Mobile\/\w+/.test(nav.userAgent)||nav.maxTouchPoints>2);var browser$1={mac:ios||/Mac/.test(nav.platform),windows:/Win/.test(nav.platform),linux:/Linux|X11/.test(nav.platform),ie,ie_version:ie_upto10?doc$1.documentMode||6:ie_11up?+ie_11up[1]:ie_edge?+ie_edge[1]:0,gecko,gecko_version:gecko?+(/Firefox\/(\d+)/.exec(nav.userAgent)||[0,0])[1]:0,chrome:!!chrome,chrome_version:chrome?+chrome[1]:0,ios,android:/Android\b/.test(nav.userAgent),safari,webkit_version:webkit?+(/\bAppleWebKit\/(\d+)/.exec(nav.userAgent)||[0,0])[1]:0,tabSize:doc$1.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};const MaxJoinLen=256;class TextView extends ContentView{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,n){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(n&&n.node==this.dom&&(n.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,n,A){return this.flags&8||A&&(!(A instanceof TextView)||this.length-(n-e)+A.length>MaxJoinLen||A.flags&8)?!1:(this.text=this.text.slice(0,e)+(A?A.text:"")+this.text.slice(n),this.markDirty(),!0)}split(e){let n=new TextView(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),n.flags|=this.flags&8,n}localPosFromDOM(e,n){return e==this.dom?n:n?this.text.length:0}domAtPos(e){return new DOMPos(this.dom,e)}domBoundsAround(e,n,A){return{from:A,to:A+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,n){return textCoords(this.dom,e,n)}}class MarkView extends ContentView{constructor(e,n=[],A=0){super(),this.mark=e,this.children=n,this.length=A;for(let o of n)o.setParent(this)}setAttrs(e){if(clearAttributes(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let n in this.mark.attrs)e.setAttribute(n,this.mark.attrs[n]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!((this.flags|e.flags)&8)}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,n){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,n)}merge(e,n,A,o,s,a){return A&&(!(A instanceof MarkView&&A.mark.eq(this.mark))||e&&s<=0||n<this.length&&a<=0)?!1:(mergeChildrenInto(this,e,n,A?A.children.slice():[],s-1,a-1),this.markDirty(),!0)}split(e){let n=[],A=0,o=-1,s=0;for(let l of this.children){let c=A+l.length;c>e&&n.push(A<e?l.split(e-A):l),o<0&&A>=e&&(o=s),A=c,s++}let a=this.length-e;return this.length=e,o>-1&&(this.children.length=o,this.markDirty()),new MarkView(this.mark,n,a)}domAtPos(e){return inlineDOMAtPos(this,e)}coordsAt(e,n){return coordsInChildren(this,e,n)}}function textCoords(r,e,n){let A=r.nodeValue.length;e>A&&(e=A);let o=e,s=e,a=0;e==0&&n<0||e==A&&n>=0?browser$1.chrome||browser$1.gecko||(e?(o--,a=1):s<A&&(s++,a=-1)):n<0?o--:s<A&&s++;let l=textRange(r,o,s).getClientRects();if(!l.length)return null;let c=l[(a?a<0:n>=0)?0:l.length-1];return browser$1.safari&&!a&&c.width==0&&(c=Array.prototype.find.call(l,g=>g.width)||c),a?flattenRect(c,a<0):c||null}class WidgetView extends ContentView{static create(e,n,A){return new WidgetView(e,n,A)}constructor(e,n,A){super(),this.widget=e,this.length=n,this.side=A,this.prevWidget=null}split(e){let n=WidgetView.create(this.widget,this.length-e,this.side);return this.length-=e,n}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(e,n,A,o,s,a){return A&&(!(A instanceof WidgetView)||!this.widget.compare(A.widget)||e>0&&s<=0||n<this.length&&a<=0)?!1:(this.length=e+(A?A.length:0)+(this.length-n),!0)}become(e){return e instanceof WidgetView&&e.side==this.side&&this.widget.constructor==e.widget.constructor?(this.widget.compare(e.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=e.widget,this.length=e.length,!0):!1}ignoreMutation(){return!0}ignoreEvent(e){return this.widget.ignoreEvent(e)}get overrideDOMText(){if(this.length==0)return Text.empty;let e=this;for(;e.parent;)e=e.parent;let{view:n}=e,A=n&&n.state.doc,o=this.posAtStart;return A?A.slice(o,o+this.length):Text.empty}domAtPos(e){return(this.length?e==0:this.side>0)?DOMPos.before(this.dom):DOMPos.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,n){let A=this.widget.coordsAt(this.dom,e,n);if(A)return A;let o=this.dom.getClientRects(),s=null;if(!o.length)return null;let a=this.side?this.side<0:e>0;for(let l=a?o.length-1:0;s=o[l],!(e>0?l==0:l==o.length-1||s.top<s.bottom);l+=a?-1:1);return flattenRect(s,!a)}get isEditable(){return!1}get isWidget(){return!0}get isHidden(){return this.widget.isHidden}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class WidgetBufferView extends ContentView{constructor(e){super(),this.side=e}get length(){return 0}merge(){return!1}become(e){return e instanceof WidgetBufferView&&e.side==this.side}split(){return new WidgetBufferView(this.side)}sync(){if(!this.dom){let e=document.createElement("img");e.className="cm-widgetBuffer",e.setAttribute("aria-hidden","true"),this.setDOM(e)}}getSide(){return this.side}domAtPos(e){return this.side>0?DOMPos.before(this.dom):DOMPos.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return Text.empty}get isHidden(){return!0}}TextView.prototype.children=WidgetView.prototype.children=WidgetBufferView.prototype.children=noChildren;function inlineDOMAtPos(r,e){let n=r.dom,{children:A}=r,o=0;for(let s=0;o<A.length;o++){let a=A[o],l=s+a.length;if(!(l==s&&a.getSide()<=0)){if(e>s&&e<l&&a.dom.parentNode==n)return a.domAtPos(e-s);if(e<=s)break;s=l}}for(let s=o;s>0;s--){let a=A[s-1];if(a.dom.parentNode==n)return a.domAtPos(a.length)}for(let s=o;s<A.length;s++){let a=A[s];if(a.dom.parentNode==n)return a.domAtPos(0)}return new DOMPos(n,0)}function joinInlineInto(r,e,n){let A,{children:o}=r;n>0&&e instanceof MarkView&&o.length&&(A=o[o.length-1])instanceof MarkView&&A.mark.eq(e.mark)?joinInlineInto(A,e.children[0],n-1):(o.push(e),e.setParent(r)),r.length+=e.length}function coordsInChildren(r,e,n){let A=null,o=-1,s=null,a=-1;function l(g,h){for(let d=0,u=0;d<g.children.length&&u<=h;d++){let f=g.children[d],I=u+f.length;I>=h&&(f.children.length?l(f,h-u):(!s||s.isHidden&&(n>0||onSameLine(s,f)))&&(I>h||u==I&&f.getSide()>0)?(s=f,a=h-u):(u<h||u==I&&f.getSide()<0&&!f.isHidden)&&(A=f,o=h-u)),u=I}}l(r,e);let c=(n<0?A:s)||A||s;return c?c.coordsAt(Math.max(0,c==A?o:a),n):fallbackRect(r)}function fallbackRect(r){let e=r.dom.lastChild;if(!e)return r.dom.getBoundingClientRect();let n=clientRectsFor(e);return n[n.length-1]||null}function onSameLine(r,e){let n=r.coordsAt(0,1),A=e.coordsAt(0,1);return n&&A&&A.top<n.bottom}function combineAttrs(r,e){for(let n in r)n=="class"&&e.class?e.class+=" "+r.class:n=="style"&&e.style?e.style+=";"+r.style:e[n]=r[n];return e}const noAttrs$1=Object.create(null);function attrsEq(r,e,n){if(r==e)return!0;r||(r=noAttrs$1),e||(e=noAttrs$1);let A=Object.keys(r),o=Object.keys(e);if(A.length-(n&&A.indexOf(n)>-1?1:0)!=o.length-(n&&o.indexOf(n)>-1?1:0))return!1;for(let s of A)if(s!=n&&(o.indexOf(s)==-1||r[s]!==e[s]))return!1;return!0}function updateAttrs(r,e,n){let A=!1;if(e)for(let o in e)n&&o in n||(A=!0,o=="style"?r.style.cssText="":r.removeAttribute(o));if(n)for(let o in n)e&&e[o]==n[o]||(A=!0,o=="style"?r.style.cssText=n[o]:r.setAttribute(o,n[o]));return A}function getAttrs(r){let e=Object.create(null);for(let n=0;n<r.attributes.length;n++){let A=r.attributes[n];e[A.name]=A.value}return e}class WidgetType{eq(e){return!1}updateDOM(e,n){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,n,A){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}}var BlockType=(function(r){return r[r.Text=0]="Text",r[r.WidgetBefore=1]="WidgetBefore",r[r.WidgetAfter=2]="WidgetAfter",r[r.WidgetRange=3]="WidgetRange",r})(BlockType||(BlockType={}));class Decoration extends RangeValue{constructor(e,n,A,o){super(),this.startSide=e,this.endSide=n,this.widget=A,this.spec=o}get heightRelevant(){return!1}static mark(e){return new MarkDecoration(e)}static widget(e){let n=Math.max(-1e4,Math.min(1e4,e.side||0)),A=!!e.block;return n+=A&&!e.inlineOrder?n>0?3e8:-4e8:n>0?1e8:-1e8,new PointDecoration(e,n,n,A,e.widget||null,!1)}static replace(e){let n=!!e.block,A,o;if(e.isBlockGap)A=-5e8,o=4e8;else{let{start:s,end:a}=getInclusive(e,n);A=(s?n?-3e8:-1:5e8)-1,o=(a?n?2e8:1:-6e8)+1}return new PointDecoration(e,A,o,n,e.widget||null,!0)}static line(e){return new LineDecoration(e)}static set(e,n=!1){return RangeSet.of(e,n)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}Decoration.none=RangeSet.empty;class MarkDecoration extends Decoration{constructor(e){let{start:n,end:A}=getInclusive(e);super(n?-1:5e8,A?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){var n,A;return this==e||e instanceof MarkDecoration&&this.tagName==e.tagName&&(this.class||((n=this.attrs)===null||n===void 0?void 0:n.class))==(e.class||((A=e.attrs)===null||A===void 0?void 0:A.class))&&attrsEq(this.attrs,e.attrs,"class")}range(e,n=e){if(e>=n)throw new RangeError("Mark decorations may not be empty");return super.range(e,n)}}MarkDecoration.prototype.point=!1;class LineDecoration extends Decoration{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof LineDecoration&&this.spec.class==e.spec.class&&attrsEq(this.spec.attributes,e.spec.attributes)}range(e,n=e){if(n!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,n)}}LineDecoration.prototype.mapMode=MapMode.TrackBefore;LineDecoration.prototype.point=!0;class PointDecoration extends Decoration{constructor(e,n,A,o,s,a){super(n,A,s,e),this.block=o,this.isReplace=a,this.mapMode=o?n<=0?MapMode.TrackBefore:MapMode.TrackAfter:MapMode.TrackDel}get type(){return this.startSide!=this.endSide?BlockType.WidgetRange:this.startSide<=0?BlockType.WidgetBefore:BlockType.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof PointDecoration&&widgetsEq(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,n=e){if(this.isReplace&&(e>n||e==n&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&n!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,n)}}PointDecoration.prototype.point=!0;function getInclusive(r,e=!1){let{inclusiveStart:n,inclusiveEnd:A}=r;return n==null&&(n=r.inclusive),A==null&&(A=r.inclusive),{start:n??e,end:A??e}}function widgetsEq(r,e){return r==e||!!(r&&e&&r.compare(e))}function addRange(r,e,n,A=0){let o=n.length-1;o>=0&&n[o]+A>=r?n[o]=Math.max(n[o],e):n.push(r,e)}class LineView extends ContentView{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,n,A,o,s,a){if(A){if(!(A instanceof LineView))return!1;this.dom||A.transferDOM(this)}return o&&this.setDeco(A?A.attrs:null),mergeChildrenInto(this,e,n,A?A.children.slice():[],s,a),!0}split(e){let n=new LineView;if(n.breakAfter=this.breakAfter,this.length==0)return n;let{i:A,off:o}=this.childPos(e);o&&(n.append(this.children[A].split(o),0),this.children[A].merge(o,this.children[A].length,null,!1,0,0),A++);for(let s=A;s<this.children.length;s++)n.append(this.children[s],0);for(;A>0&&this.children[A-1].length==0;)this.children[--A].destroy();return this.children.length=A,this.markDirty(),this.length=e,n}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){attrsEq(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,n){joinInlineInto(this,e,n)}addLineDeco(e){let n=e.spec.attributes,A=e.spec.class;n&&(this.attrs=combineAttrs(n,this.attrs||{})),A&&(this.attrs=combineAttrs({class:A},this.attrs||{}))}domAtPos(e){return inlineDOMAtPos(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.flags|=6)}sync(e,n){var A;this.dom?this.flags&4&&(clearAttributes(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(updateAttrs(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,n);let o=this.dom.lastChild;for(;o&&ContentView.get(o)instanceof MarkView;)o=o.lastChild;if(!o||!this.length||o.nodeName!="BR"&&((A=ContentView.get(o))===null||A===void 0?void 0:A.isEditable)==!1&&(!browser$1.ios||!this.children.some(s=>s instanceof TextView))){let s=document.createElement("BR");s.cmIgnore=!0,this.dom.appendChild(s)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0,n;for(let A of this.children){if(!(A instanceof TextView)||/[^ -~]/.test(A.text))return null;let o=clientRectsFor(A.dom);if(o.length!=1)return null;e+=o[0].width,n=o[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:n}:null}coordsAt(e,n){let A=coordsInChildren(this,e,n);if(!this.children.length&&A&&this.parent){let{heightOracle:o}=this.parent.view.viewState,s=A.bottom-A.top;if(Math.abs(s-o.lineHeight)<2&&o.textHeight<s){let a=(s-o.textHeight)/2;return{top:A.top+a,bottom:A.bottom-a,left:A.left,right:A.left}}}return A}become(e){return e instanceof LineView&&this.children.length==0&&e.children.length==0&&attrsEq(this.attrs,e.attrs)&&this.breakAfter==e.breakAfter}covers(){return!0}static find(e,n){for(let A=0,o=0;A<e.children.length;A++){let s=e.children[A],a=o+s.length;if(a>=n){if(s instanceof LineView)return s;if(a>n)break}o=a+s.breakAfter}return null}}class BlockWidgetView extends ContentView{constructor(e,n,A){super(),this.widget=e,this.length=n,this.deco=A,this.breakAfter=0,this.prevWidget=null}merge(e,n,A,o,s,a){return A&&(!(A instanceof BlockWidgetView)||!this.widget.compare(A.widget)||e>0&&s<=0||n<this.length&&a<=0)?!1:(this.length=e+(A?A.length:0)+(this.length-n),!0)}domAtPos(e){return e==0?DOMPos.before(this.dom):DOMPos.after(this.dom,e==this.length)}split(e){let n=this.length-e;this.length=e;let A=new BlockWidgetView(this.widget,n,this.deco);return A.breakAfter=this.breakAfter,A}get children(){return noChildren}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.widget.editable||(this.dom.contentEditable="false"))}get overrideDOMText(){return this.parent?this.parent.view.state.doc.slice(this.posAtStart,this.posAtEnd):Text.empty}domBoundsAround(){return null}become(e){return e instanceof BlockWidgetView&&e.widget.constructor==this.widget.constructor?(e.widget.compare(this.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=e.widget,this.length=e.length,this.deco=e.deco,this.breakAfter=e.breakAfter,!0):!1}ignoreMutation(){return!0}ignoreEvent(e){return this.widget.ignoreEvent(e)}get isEditable(){return!1}get isWidget(){return!0}coordsAt(e,n){let A=this.widget.coordsAt(this.dom,e,n);return A||(this.widget instanceof BlockGapWidget?null:flattenRect(this.dom.getBoundingClientRect(),this.length?e==0:n<=0))}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}covers(e){let{startSide:n,endSide:A}=this.deco;return n==A?!1:e<0?n<0:A>0}}class BlockGapWidget extends WidgetType{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}class ContentBuilder{constructor(e,n,A,o){this.doc=e,this.pos=n,this.end=A,this.disallowBlockEffectsFor=o,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=n}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!(e.breakAfter||e instanceof BlockWidgetView&&e.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new LineView),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(wrapMarks(new WidgetBufferView(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,!this.posCovered()&&!(e&&this.content.length&&this.content[this.content.length-1]instanceof BlockWidgetView)&&this.getLine()}buildText(e,n,A){for(;e>0;){if(this.textOff==this.text.length){let{value:s,lineBreak:a,done:l}=this.cursor.next(this.skip);if(this.skip=0,l)throw new Error("Ran out of text content when drawing inline views");if(a){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}else this.text=s,this.textOff=0}let o=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(n.slice(n.length-A)),this.getLine().append(wrapMarks(new TextView(this.text.slice(this.textOff,this.textOff+o)),n),A),this.atCursorPos=!0,this.textOff+=o,e-=o,A=0}}span(e,n,A,o){this.buildText(n-e,A,o),this.pos=n,this.openStart<0&&(this.openStart=o)}point(e,n,A,o,s,a){if(this.disallowBlockEffectsFor[a]&&A instanceof PointDecoration){if(A.block)throw new RangeError("Block decorations may not be specified via plugins");if(n>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let l=n-e;if(A instanceof PointDecoration)if(A.block)A.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new BlockWidgetView(A.widget||NullWidget.block,l,A));else{let c=WidgetView.create(A.widget||NullWidget.inline,l,l?0:A.startSide),g=this.atCursorPos&&!c.isEditable&&s<=o.length&&(e<n||A.startSide>0),h=!c.isEditable&&(e<n||s>o.length||A.startSide<=0),d=this.getLine();this.pendingBuffer==2&&!g&&!c.isEditable&&(this.pendingBuffer=0),this.flushBuffer(o),g&&(d.append(wrapMarks(new WidgetBufferView(1),o),s),s=o.length+Math.max(0,s-o.length)),d.append(wrapMarks(c,o),s),this.atCursorPos=h,this.pendingBuffer=h?e<n||s>o.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=o.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(A);l&&(this.textOff+l<=this.text.length?this.textOff+=l:(this.skip+=l-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=n),this.openStart<0&&(this.openStart=s)}static build(e,n,A,o,s){let a=new ContentBuilder(e,n,A,s);return a.openEnd=RangeSet.spans(o,n,A,a),a.openStart<0&&(a.openStart=a.openEnd),a.finish(a.openEnd),a}}function wrapMarks(r,e){for(let n of e)r=new MarkView(n,[r],r.length);return r}class NullWidget extends WidgetType{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}NullWidget.inline=new NullWidget("span");NullWidget.block=new NullWidget("div");var Direction=(function(r){return r[r.LTR=0]="LTR",r[r.RTL=1]="RTL",r})(Direction||(Direction={}));const LTR=Direction.LTR,RTL=Direction.RTL;function dec(r){let e=[];for(let n=0;n<r.length;n++)e.push(1<<+r[n]);return e}const LowTypes=dec("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),ArabicTypes=dec("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),Brackets$1=Object.create(null),BracketStack=[];for(let r of["()","[]","{}"]){let e=r.charCodeAt(0),n=r.charCodeAt(1);Brackets$1[e]=n,Brackets$1[n]=-e}function charType(r){return r<=247?LowTypes[r]:1424<=r&&r<=1524?2:1536<=r&&r<=1785?ArabicTypes[r-1536]:1774<=r&&r<=2220?4:8192<=r&&r<=8204?256:64336<=r&&r<=65023?4:1}const BidiRE=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class BidiSpan{get dir(){return this.level%2?RTL:LTR}constructor(e,n,A){this.from=e,this.to=n,this.level=A}side(e,n){return this.dir==n==e?this.to:this.from}forward(e,n){return e==(this.dir==n)}static find(e,n,A,o){let s=-1;for(let a=0;a<e.length;a++){let l=e[a];if(l.from<=n&&l.to>=n){if(l.level==A)return a;(s<0||(o!=0?o<0?l.from<n:l.to>n:e[s].level>l.level))&&(s=a)}}if(s<0)throw new RangeError("Index out of range");return s}}function isolatesEq(r,e){if(r.length!=e.length)return!1;for(let n=0;n<r.length;n++){let A=r[n],o=e[n];if(A.from!=o.from||A.to!=o.to||A.direction!=o.direction||!isolatesEq(A.inner,o.inner))return!1}return!0}const types=[];function computeCharTypes(r,e,n,A,o){for(let s=0;s<=A.length;s++){let a=s?A[s-1].to:e,l=s<A.length?A[s].from:n,c=s?256:o;for(let g=a,h=c,d=c;g<l;g++){let u=charType(r.charCodeAt(g));u==512?u=h:u==8&&d==4&&(u=16),types[g]=u==4?2:u,u&7&&(d=u),h=u}for(let g=a,h=c,d=c;g<l;g++){let u=types[g];if(u==128)g<l-1&&h==types[g+1]&&h&24?u=types[g]=h:types[g]=256;else if(u==64){let f=g+1;for(;f<l&&types[f]==64;)f++;let I=g&&h==8||f<n&&types[f]==8?d==1?1:8:256;for(let p=g;p<f;p++)types[p]=I;g=f-1}else u==8&&d==1&&(types[g]=1);h=u,u&7&&(d=u)}}}function processBracketPairs(r,e,n,A,o){let s=o==1?2:1;for(let a=0,l=0,c=0;a<=A.length;a++){let g=a?A[a-1].to:e,h=a<A.length?A[a].from:n;for(let d=g,u,f,I;d<h;d++)if(f=Brackets$1[u=r.charCodeAt(d)])if(f<0){for(let p=l-3;p>=0;p-=3)if(BracketStack[p+1]==-f){let m=BracketStack[p+2],E=m&2?o:m&4?m&1?s:o:0;E&&(types[d]=types[BracketStack[p]]=E),l=p;break}}else{if(BracketStack.length==189)break;BracketStack[l++]=d,BracketStack[l++]=u,BracketStack[l++]=c}else if((I=types[d])==2||I==1){let p=I==o;c=p?0:1;for(let m=l-3;m>=0;m-=3){let E=BracketStack[m+2];if(E&2)break;if(p)BracketStack[m+2]|=2;else{if(E&4)break;BracketStack[m+2]|=4}}}}}function processNeutrals(r,e,n,A){for(let o=0,s=A;o<=n.length;o++){let a=o?n[o-1].to:r,l=o<n.length?n[o].from:e;for(let c=a;c<l;){let g=types[c];if(g==256){let h=c+1;for(;;)if(h==l){if(o==n.length)break;h=n[o++].to,l=o<n.length?n[o].from:e}else if(types[h]==256)h++;else break;let d=s==1,u=(h<e?types[h]:A)==1,f=d==u?d?1:2:A;for(let I=h,p=o,m=p?n[p-1].to:r;I>c;)I==m&&(I=n[--p].from,m=p?n[p-1].to:r),types[--I]=f;c=h}else s=g,c++}}}function emitSpans(r,e,n,A,o,s,a){let l=A%2?2:1;if(A%2==o%2)for(let c=e,g=0;c<n;){let h=!0,d=!1;if(g==s.length||c<s[g].from){let p=types[c];p!=l&&(h=!1,d=p==16)}let u=!h&&l==1?[]:null,f=h?A:A+1,I=c;e:for(;;)if(g<s.length&&I==s[g].from){if(d)break e;let p=s[g];if(!h)for(let m=p.to,E=g+1;;){if(m==n)break e;if(E<s.length&&s[E].from==m)m=s[E++].to;else{if(types[m]==l)break e;break}}if(g++,u)u.push(p);else{p.from>c&&a.push(new BidiSpan(c,p.from,f));let m=p.direction==LTR!=!(f%2);computeSectionOrder(r,m?A+1:A,o,p.inner,p.from,p.to,a),c=p.to}I=p.to}else{if(I==n||(h?types[I]!=l:types[I]==l))break;I++}u?emitSpans(r,c,I,A+1,o,u,a):c<I&&a.push(new BidiSpan(c,I,f)),c=I}else for(let c=n,g=s.length;c>e;){let h=!0,d=!1;if(!g||c>s[g-1].to){let p=types[c-1];p!=l&&(h=!1,d=p==16)}let u=!h&&l==1?[]:null,f=h?A:A+1,I=c;e:for(;;)if(g&&I==s[g-1].to){if(d)break e;let p=s[--g];if(!h)for(let m=p.from,E=g;;){if(m==e)break e;if(E&&s[E-1].to==m)m=s[--E].from;else{if(types[m-1]==l)break e;break}}if(u)u.push(p);else{p.to<c&&a.push(new BidiSpan(p.to,c,f));let m=p.direction==LTR!=!(f%2);computeSectionOrder(r,m?A+1:A,o,p.inner,p.from,p.to,a),c=p.from}I=p.from}else{if(I==e||(h?types[I-1]!=l:types[I-1]==l))break;I--}u?emitSpans(r,I,c,A+1,o,u,a):I<c&&a.push(new BidiSpan(I,c,f)),c=I}}function computeSectionOrder(r,e,n,A,o,s,a){let l=e%2?2:1;computeCharTypes(r,o,s,A,l),processBracketPairs(r,o,s,A,l),processNeutrals(o,s,A,l),emitSpans(r,o,s,e,n,A,a)}function computeOrder(r,e,n){if(!r)return[new BidiSpan(0,0,e==RTL?1:0)];if(e==LTR&&!n.length&&!BidiRE.test(r))return trivialOrder(r.length);if(n.length)for(;r.length>types.length;)types[types.length]=256;let A=[],o=e==LTR?0:1;return computeSectionOrder(r,o,o,n,0,r.length,A),A}function trivialOrder(r){return[new BidiSpan(0,r,0)]}let movedOver="";function moveVisually(r,e,n,A,o){var s;let a=A.head-r.from,l=BidiSpan.find(e,a,(s=A.bidiLevel)!==null&&s!==void 0?s:-1,A.assoc),c=e[l],g=c.side(o,n);if(a==g){let u=l+=o?1:-1;if(u<0||u>=e.length)return null;c=e[l=u],a=c.side(!o,n),g=c.side(o,n)}let h=findClusterBreak(r.text,a,c.forward(o,n));(h<c.from||h>c.to)&&(h=g),movedOver=r.text.slice(Math.min(a,h),Math.max(a,h));let d=l==(o?e.length-1:0)?null:e[l+(o?1:-1)];return d&&h==g&&d.level+(o?0:1)<c.level?EditorSelection.cursor(d.side(!o,n)+r.from,d.forward(o,n)?1:-1,d.level):EditorSelection.cursor(h+r.from,c.forward(o,n)?-1:1,c.level)}function autoDirection(r,e,n){for(let A=e;A<n;A++){let o=charType(r.charCodeAt(A));if(o==1)return LTR;if(o==2||o==4)return RTL}return LTR}const clickAddsSelectionRange=Facet.define(),dragMovesSelection$1=Facet.define(),mouseSelectionStyle=Facet.define(),exceptionSink=Facet.define(),updateListener=Facet.define(),inputHandler$1=Facet.define(),focusChangeEffect=Facet.define(),clipboardInputFilter=Facet.define(),clipboardOutputFilter=Facet.define(),perLineTextDirection=Facet.define({combine:r=>r.some(e=>e)}),nativeSelectionHidden=Facet.define({combine:r=>r.some(e=>e)}),scrollHandler=Facet.define();class ScrollTarget{constructor(e,n="nearest",A="nearest",o=5,s=5,a=!1){this.range=e,this.y=n,this.x=A,this.yMargin=o,this.xMargin=s,this.isSnapshot=a}map(e){return e.empty?this:new ScrollTarget(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new ScrollTarget(EditorSelection.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const scrollIntoView$1=StateEffect.define({map:(r,e)=>r.map(e)}),setEditContextFormatting=StateEffect.define();function logException(r,e,n){let A=r.facet(exceptionSink);A.length?A[0](e):window.onerror&&window.onerror(String(e),n,void 0,void 0,e)||(n?console.error(n+":",e):console.error(e))}const editable=Facet.define({combine:r=>r.length?r[0]:!0});let nextPluginID=0;const viewPlugin=Facet.define({combine(r){return r.filter((e,n)=>{for(let A=0;A<n;A++)if(r[A].plugin==e.plugin)return!1;return!0})}});class ViewPlugin{constructor(e,n,A,o,s){this.id=e,this.create=n,this.domEventHandlers=A,this.domEventObservers=o,this.baseExtensions=s(this),this.extension=this.baseExtensions.concat(viewPlugin.of({plugin:this,arg:void 0}))}of(e){return this.baseExtensions.concat(viewPlugin.of({plugin:this,arg:e}))}static define(e,n){const{eventHandlers:A,eventObservers:o,provide:s,decorations:a}=n||{};return new ViewPlugin(nextPluginID++,e,A,o,l=>{let c=[];return a&&c.push(decorations.of(g=>{let h=g.plugin(l);return h?a(h):Decoration.none})),s&&c.push(s(l)),c})}static fromClass(e,n){return ViewPlugin.define((A,o)=>new e(A,o),n)}}class PluginInstance{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let n=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(n)}catch(A){if(logException(n.state,A,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(n){logException(e.state,n,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var n;if(!((n=this.value)===null||n===void 0)&&n.destroy)try{this.value.destroy()}catch(A){logException(e.state,A,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const editorAttributes=Facet.define(),contentAttributes=Facet.define(),decorations=Facet.define(),outerDecorations=Facet.define(),atomicRanges=Facet.define(),bidiIsolatedRanges=Facet.define();function getIsolatedRanges(r,e){let n=r.state.facet(bidiIsolatedRanges);if(!n.length)return n;let A=n.map(s=>s instanceof Function?s(r):s),o=[];return RangeSet.spans(A,e.from,e.to,{point(){},span(s,a,l,c){let g=s-e.from,h=a-e.from,d=o;for(let u=l.length-1;u>=0;u--,c--){let f=l[u].spec.bidiIsolate,I;if(f==null&&(f=autoDirection(e.text,g,h)),c>0&&d.length&&(I=d[d.length-1]).to==g&&I.direction==f)I.to=h,d=I.inner;else{let p={from:g,to:h,direction:f,inner:[]};d.push(p),d=p.inner}}}}),o}const scrollMargins=Facet.define();function getScrollMargins(r){let e=0,n=0,A=0,o=0;for(let s of r.state.facet(scrollMargins)){let a=s(r);a&&(a.left!=null&&(e=Math.max(e,a.left)),a.right!=null&&(n=Math.max(n,a.right)),a.top!=null&&(A=Math.max(A,a.top)),a.bottom!=null&&(o=Math.max(o,a.bottom)))}return{left:e,right:n,top:A,bottom:o}}const styleModule=Facet.define();class ChangedRange{constructor(e,n,A,o){this.fromA=e,this.toA=n,this.fromB=A,this.toB=o}join(e){return new ChangedRange(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let n=e.length,A=this;for(;n>0;n--){let o=e[n-1];if(!(o.fromA>A.toA)){if(o.toA<A.fromA)break;A=A.join(o),e.splice(n-1,1)}}return e.splice(n,0,A),e}static extendWithRanges(e,n){if(n.length==0)return e;let A=[];for(let o=0,s=0,a=0,l=0;;o++){let c=o==e.length?null:e[o],g=a-l,h=c?c.fromB:1e9;for(;s<n.length&&n[s]<h;){let d=n[s],u=n[s+1],f=Math.max(l,d),I=Math.min(h,u);if(f<=I&&new ChangedRange(f+g,I+g,f,I).addToSet(A),u>h)break;s+=2}if(!c)return A;new ChangedRange(c.fromA,c.toA,c.fromB,c.toB).addToSet(A),a=c.toA,l=c.toB}}}class ViewUpdate{constructor(e,n,A){this.view=e,this.state=n,this.transactions=A,this.flags=0,this.startState=e.state,this.changes=ChangeSet.empty(this.startState.doc.length);for(let s of A)this.changes=this.changes.compose(s.changes);let o=[];this.changes.iterChangedRanges((s,a,l,c)=>o.push(new ChangedRange(s,a,l,c))),this.changedRanges=o}static create(e,n,A){return new ViewUpdate(e,n,A)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}let DocView$1=class extends ContentView{get length(){return this.view.state.doc.length}constructor(e){super(),this.view=e,this.decorations=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.editContextFormatting=Decoration.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new LineView],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new ChangedRange(0,0,0,e.state.doc.length)],0,null)}update(e){var n;let A=e.changedRanges;this.minWidth>0&&A.length&&(A.every(({fromA:g,toA:h})=>h<this.minWidthFrom||g>this.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let o=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((n=this.domChanged)===null||n===void 0)&&n.newSel?o=this.domChanged.newSel.head:!touchesComposition(e.changes,this.hasComposition)&&!e.selectionSet&&(o=e.state.selection.main.head));let s=o>-1?findCompositionRange(this.view,e.changes,o):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:g,to:h}=this.hasComposition;A=new ChangedRange(g,h,e.changes.mapPos(g,-1),e.changes.mapPos(h,1)).addToSet(A.slice())}this.hasComposition=s?{from:s.range.fromB,to:s.range.toB}:null,(browser$1.ie||browser$1.chrome)&&!s&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let a=this.decorations,l=this.updateDeco(),c=findChangedDeco(a,l,e.changes);return A=ChangedRange.extendWithRanges(A,c),!(this.flags&7)&&A.length==0?!1:(this.updateInner(A,e.startState.doc.length,s),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,n,A){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,n,A);let{observer:o}=this.view;o.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let a=browser$1.chrome||browser$1.ios?{node:o.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,a),this.flags&=-8,a&&(a.written||o.selectionRange.focusNode!=a.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(a=>a.flags&=-9);let s=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let a of this.children)a instanceof BlockWidgetView&&a.widget instanceof BlockGapWidget&&s.push(a.dom);o.updateGaps(s)}updateChildren(e,n,A){let o=A?A.range.addToSet(e.slice()):e,s=this.childCursor(n);for(let a=o.length-1;;a--){let l=a>=0?o[a]:null;if(!l)break;let{fromA:c,toA:g,fromB:h,toB:d}=l,u,f,I,p;if(A&&A.range.fromB<d&&A.range.toB>h){let w=ContentBuilder.build(this.view.state.doc,h,A.range.fromB,this.decorations,this.dynamicDecorationMap),y=ContentBuilder.build(this.view.state.doc,A.range.toB,d,this.decorations,this.dynamicDecorationMap);f=w.breakAtStart,I=w.openStart,p=y.openEnd;let S=this.compositionView(A);y.breakAtStart?S.breakAfter=1:y.content.length&&S.merge(S.length,S.length,y.content[0],!1,y.openStart,0)&&(S.breakAfter=y.content[0].breakAfter,y.content.shift()),w.content.length&&S.merge(0,0,w.content[w.content.length-1],!0,0,w.openEnd)&&w.content.pop(),u=w.content.concat(S).concat(y.content)}else({content:u,breakAtStart:f,openStart:I,openEnd:p}=ContentBuilder.build(this.view.state.doc,h,d,this.decorations,this.dynamicDecorationMap));let{i:m,off:E}=s.findPos(g,1),{i:B,off:Q}=s.findPos(c,-1);replaceRange(this,B,Q,m,E,u,f,I,p)}A&&this.fixCompositionDOM(A)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let n of e.transactions)for(let A of n.effects)A.is(setEditContextFormatting)&&(this.editContextFormatting=A.value)}compositionView(e){let n=new TextView(e.text.nodeValue);n.flags|=8;for(let{deco:o}of e.marks)n=new MarkView(o,[n],n.length);let A=new LineView;return A.append(n,0),A}fixCompositionDOM(e){let n=(s,a)=>{a.flags|=8|(a.children.some(c=>c.flags&7)?1:0),this.markedForComposition.add(a);let l=ContentView.get(s);l&&l!=a&&(l.dom=null),a.setDOM(s)},A=this.childPos(e.range.fromB,1),o=this.children[A.i];n(e.line,o);for(let s=e.marks.length-1;s>=-1;s--)A=o.childPos(A.off,1),o=o.children[A.i],n(s>=0?e.marks[s].node:e.text,o)}updateSelection(e=!1,n=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let A=this.view.root.activeElement,o=A==this.dom,s=!o&&!(this.view.state.facet(editable)||this.dom.tabIndex>-1)&&hasSelection(this.dom,this.view.observer.selectionRange)&&!(A&&this.dom.contains(A));if(!(o||n||s))return;let a=this.forceSelection;this.forceSelection=!1;let l=this.view.state.selection.main,c=this.moveToLine(this.domAtPos(l.anchor)),g=l.empty?c:this.moveToLine(this.domAtPos(l.head));if(browser$1.gecko&&l.empty&&!this.hasComposition&&betweenUneditable(c)){let d=document.createTextNode("");this.view.observer.ignore(()=>c.node.insertBefore(d,c.node.childNodes[c.offset]||null)),c=g=new DOMPos(d,0),a=!0}let h=this.view.observer.selectionRange;(a||!h.focusNode||(!isEquivalentPosition(c.node,c.offset,h.anchorNode,h.anchorOffset)||!isEquivalentPosition(g.node,g.offset,h.focusNode,h.focusOffset))&&!this.suppressWidgetCursorChange(h,l))&&(this.view.observer.ignore(()=>{browser$1.android&&browser$1.chrome&&this.dom.contains(h.focusNode)&&inUneditable(h.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let d=getSelection$1(this.view.root);if(d)if(l.empty){if(browser$1.gecko){let u=nextToUneditable(c.node,c.offset);if(u&&u!=3){let f=(u==1?textNodeBefore:textNodeAfter)(c.node,c.offset);f&&(c=new DOMPos(f.node,f.offset))}}d.collapse(c.node,c.offset),l.bidiLevel!=null&&d.caretBidiLevel!==void 0&&(d.caretBidiLevel=l.bidiLevel)}else if(d.extend){d.collapse(c.node,c.offset);try{d.extend(g.node,g.offset)}catch{}}else{let u=document.createRange();l.anchor>l.head&&([c,g]=[g,c]),u.setEnd(g.node,g.offset),u.setStart(c.node,c.offset),d.removeAllRanges(),d.addRange(u)}s&&this.view.root.activeElement==this.dom&&(this.dom.blur(),A&&A.focus())}),this.view.observer.setSelectionRange(c,g)),this.impreciseAnchor=c.precise?null:new DOMPos(h.anchorNode,h.anchorOffset),this.impreciseHead=g.precise?null:new DOMPos(h.focusNode,h.focusOffset)}suppressWidgetCursorChange(e,n){return this.hasComposition&&n.empty&&isEquivalentPosition(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==n.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,n=e.state.selection.main,A=getSelection$1(e.root),{anchorNode:o,anchorOffset:s}=e.observer.selectionRange;if(!A||!n.empty||!n.assoc||!A.modify)return;let a=LineView.find(this,n.head);if(!a)return;let l=a.posAtStart;if(n.head==l||n.head==l+a.length)return;let c=this.coordsAt(n.head,-1),g=this.coordsAt(n.head,1);if(!c||!g||c.bottom>g.top)return;let h=this.domAtPos(n.head+n.assoc);A.collapse(h.node,h.offset),A.modify("move",n.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let d=e.observer.selectionRange;e.docView.posFromDOM(d.anchorNode,d.anchorOffset)!=n.from&&A.collapse(o,s)}moveToLine(e){let n=this.dom,A;if(e.node!=n)return e;for(let o=e.offset;!A&&o<n.childNodes.length;o++){let s=ContentView.get(n.childNodes[o]);s instanceof LineView&&(A=s.domAtPos(0))}for(let o=e.offset-1;!A&&o>=0;o--){let s=ContentView.get(n.childNodes[o]);s instanceof LineView&&(A=s.domAtPos(s.length))}return A?new DOMPos(A.node,A.offset,!0):e}nearest(e){for(let n=e;n;){let A=ContentView.get(n);if(A&&A.rootView==this)return A;n=n.parentNode}return null}posFromDOM(e,n){let A=this.nearest(e);if(!A)throw new RangeError("Trying to find position for a DOM position outside of the document");return A.localPosFromDOM(e,n)+A.posAtStart}domAtPos(e){let{i:n,off:A}=this.childCursor().findPos(e,-1);for(;n<this.children.length-1;){let o=this.children[n];if(A<o.length||o instanceof LineView)break;n++,A=0}return this.children[n].domAtPos(A)}coordsAt(e,n){let A=null,o=0;for(let s=this.length,a=this.children.length-1;a>=0;a--){let l=this.children[a],c=s-l.breakAfter,g=c-l.length;if(c<e)break;if(g<=e&&(g<e||l.covers(-1))&&(c>e||l.covers(1))&&(!A||l instanceof LineView&&!(A instanceof LineView&&n>=0)))A=l,o=g;else if(A&&g==e&&c==e&&l instanceof BlockWidgetView&&Math.abs(n)<2){if(l.deco.startSide<0)break;a&&(A=null)}s=g}return A?A.coordsAt(e-o,n):null}coordsForChar(e){let{i:n,off:A}=this.childPos(e,1),o=this.children[n];if(!(o instanceof LineView))return null;for(;o.children.length;){let{i:l,off:c}=o.childPos(A,1);for(;;l++){if(l==o.children.length)return null;if((o=o.children[l]).length)break}A=c}if(!(o instanceof TextView))return null;let s=findClusterBreak(o.text,A);if(s==A)return null;let a=textRange(o.dom,A,s).getClientRects();for(let l=0;l<a.length;l++){let c=a[l];if(l==a.length-1||c.top<c.bottom&&c.left<c.right)return c}return null}measureVisibleLineHeights(e){let n=[],{from:A,to:o}=e,s=this.view.contentDOM.clientWidth,a=s>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,l=-1,c=this.view.textDirection==Direction.LTR;for(let g=0,h=0;h<this.children.length;h++){let d=this.children[h],u=g+d.length;if(u>o)break;if(g>=A){let f=d.dom.getBoundingClientRect();if(n.push(f.height),a){let I=d.dom.lastChild,p=I?clientRectsFor(I):[];if(p.length){let m=p[p.length-1],E=c?m.right-f.left:f.right-m.left;E>l&&(l=E,this.minWidth=s,this.minWidthFrom=g,this.minWidthTo=u)}}}g=u+d.breakAfter}return n}textDirectionAt(e){let{i:n}=this.childPos(e,1);return getComputedStyle(this.children[n].dom).direction=="rtl"?Direction.RTL:Direction.LTR}measureTextSize(){for(let s of this.children)if(s instanceof LineView){let a=s.measureTextSize();if(a)return a}let e=document.createElement("div"),n,A,o;return e.className="cm-line",e.style.width="99999px",e.style.position="absolute",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let s=clientRectsFor(e.firstChild)[0];n=e.getBoundingClientRect().height,A=s?s.width/27:7,o=s?s.height:n,e.remove()}),{lineHeight:n,charWidth:A,textHeight:o}}childCursor(e=this.length){let n=this.children.length;return n&&(e-=this.children[--n].length),new ChildCursor(this.children,e,n)}computeBlockGapDeco(){let e=[],n=this.view.viewState;for(let A=0,o=0;;o++){let s=o==n.viewports.length?null:n.viewports[o],a=s?s.from-1:this.length;if(a>A){let l=(n.lineBlockAt(a).bottom-n.lineBlockAt(A).top)/this.view.scaleY;e.push(Decoration.replace({widget:new BlockGapWidget(l),block:!0,inclusive:!0,isBlockGap:!0}).range(A,a))}if(!s)break;A=s.to+1}return Decoration.set(e)}updateDeco(){let e=1,n=this.view.state.facet(decorations).map(s=>(this.dynamicDecorationMap[e++]=typeof s=="function")?s(this.view):s),A=!1,o=this.view.state.facet(outerDecorations).map((s,a)=>{let l=typeof s=="function";return l&&(A=!0),l?s(this.view):s});for(o.length&&(this.dynamicDecorationMap[e++]=A,n.push(RangeSet.join(o))),this.decorations=[this.editContextFormatting,...n,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];e<this.decorations.length;)this.dynamicDecorationMap[e++]=!1;return this.decorations}scrollIntoView(e){if(e.isSnapshot){let g=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=g.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let g of this.view.state.facet(scrollHandler))try{if(g(this.view,e.range,e))return!0}catch(h){logException(this.view.state,h,"scroll handler")}let{range:n}=e,A=this.coordsAt(n.head,n.empty?n.assoc:n.head>n.anchor?-1:1),o;if(!A)return;!n.empty&&(o=this.coordsAt(n.anchor,n.anchor>n.head?-1:1))&&(A={left:Math.min(A.left,o.left),top:Math.min(A.top,o.top),right:Math.max(A.right,o.right),bottom:Math.max(A.bottom,o.bottom)});let s=getScrollMargins(this.view),a={left:A.left-s.left,top:A.top-s.top,right:A.right+s.right,bottom:A.bottom+s.bottom},{offsetWidth:l,offsetHeight:c}=this.view.scrollDOM;scrollRectIntoView(this.view.scrollDOM,a,n.head<n.anchor?-1:1,e.x,e.y,Math.max(Math.min(e.xMargin,l),-l),Math.max(Math.min(e.yMargin,c),-c),this.view.textDirection==Direction.LTR)}};function betweenUneditable(r){return r.node.nodeType==1&&r.node.firstChild&&(r.offset==0||r.node.childNodes[r.offset-1].contentEditable=="false")&&(r.offset==r.node.childNodes.length||r.node.childNodes[r.offset].contentEditable=="false")}function findCompositionNode(r,e){let n=r.observer.selectionRange;if(!n.focusNode)return null;let A=textNodeBefore(n.focusNode,n.focusOffset),o=textNodeAfter(n.focusNode,n.focusOffset),s=A||o;if(o&&A&&o.node!=A.node){let l=ContentView.get(o.node);if(!l||l instanceof TextView&&l.text!=o.node.nodeValue)s=o;else if(r.docView.lastCompositionAfterCursor){let c=ContentView.get(A.node);!c||c instanceof TextView&&c.text!=A.node.nodeValue||(s=o)}}if(r.docView.lastCompositionAfterCursor=s!=A,!s)return null;let a=e-s.offset;return{from:a,to:a+s.node.nodeValue.length,node:s.node}}function findCompositionRange(r,e,n){let A=findCompositionNode(r,n);if(!A)return null;let{node:o,from:s,to:a}=A,l=o.nodeValue;if(/[\n\r]/.test(l)||r.state.doc.sliceString(A.from,A.to)!=l)return null;let c=e.invertedDesc,g=new ChangedRange(c.mapPos(s),c.mapPos(a),s,a),h=[];for(let d=o.parentNode;;d=d.parentNode){let u=ContentView.get(d);if(u instanceof MarkView)h.push({node:d,deco:u.mark});else{if(u instanceof LineView||d.nodeName=="DIV"&&d.parentNode==r.contentDOM)return{range:g,text:o,marks:h,line:d};if(d!=r.contentDOM)h.push({node:d,deco:new MarkDecoration({inclusive:!0,attributes:getAttrs(d),tagName:d.tagName.toLowerCase()})});else return null}}}function nextToUneditable(r,e){return r.nodeType!=1?0:(e&&r.childNodes[e-1].contentEditable=="false"?1:0)|(e<r.childNodes.length&&r.childNodes[e].contentEditable=="false"?2:0)}let DecorationComparator$1=class{constructor(){this.changes=[]}compareRange(e,n){addRange(e,n,this.changes)}comparePoint(e,n){addRange(e,n,this.changes)}boundChange(e){addRange(e,e,this.changes)}};function findChangedDeco(r,e,n){let A=new DecorationComparator$1;return RangeSet.compare(r,e,n,A),A.changes}function inUneditable(r,e){for(let n=r;n&&n!=e;n=n.assignedSlot||n.parentNode)if(n.nodeType==1&&n.contentEditable=="false")return!0;return!1}function touchesComposition(r,e){let n=!1;return e&&r.iterChangedRanges((A,o)=>{A<e.to&&o>e.from&&(n=!0)}),n}function groupAt(r,e,n=1){let A=r.charCategorizer(e),o=r.doc.lineAt(e),s=e-o.from;if(o.length==0)return EditorSelection.cursor(e);s==0?n=1:s==o.length&&(n=-1);let a=s,l=s;n<0?a=findClusterBreak(o.text,s,!1):l=findClusterBreak(o.text,s);let c=A(o.text.slice(a,l));for(;a>0;){let g=findClusterBreak(o.text,a,!1);if(A(o.text.slice(g,a))!=c)break;a=g}for(;l<o.length;){let g=findClusterBreak(o.text,l);if(A(o.text.slice(l,g))!=c)break;l=g}return EditorSelection.range(a+o.from,l+o.from)}function getdx(r,e){return e.left>r?e.left-r:Math.max(0,r-e.right)}function getdy(r,e){return e.top>r?e.top-r:Math.max(0,r-e.bottom)}function yOverlap(r,e){return r.top<e.bottom-1&&r.bottom>e.top+1}function upTop(r,e){return e<r.top?{top:e,left:r.left,right:r.right,bottom:r.bottom}:r}function upBot(r,e){return e>r.bottom?{top:r.top,left:r.left,right:r.right,bottom:e}:r}function domPosAtCoords(r,e,n){let A,o,s,a,l=!1,c,g,h,d;for(let I=r.firstChild;I;I=I.nextSibling){let p=clientRectsFor(I);for(let m=0;m<p.length;m++){let E=p[m];o&&yOverlap(o,E)&&(E=upTop(upBot(E,o.bottom),o.top));let B=getdx(e,E),Q=getdy(n,E);if(B==0&&Q==0)return I.nodeType==3?domPosInText(I,e,n):domPosAtCoords(I,e,n);(!A||a>Q||a==Q&&s>B)&&(A=I,o=E,s=B,a=Q,l=B?e<E.left?m>0:m<p.length-1:!0),B==0?n>E.bottom&&(!h||h.bottom<E.bottom)?(c=I,h=E):n<E.top&&(!d||d.top>E.top)&&(g=I,d=E):h&&yOverlap(h,E)?h=upBot(h,E.bottom):d&&yOverlap(d,E)&&(d=upTop(d,E.top))}}if(h&&h.bottom>=n?(A=c,o=h):d&&d.top<=n&&(A=g,o=d),!A)return{node:r,offset:0};let u=Math.max(o.left,Math.min(o.right,e));if(A.nodeType==3)return domPosInText(A,u,n);if(l&&A.contentEditable!="false")return domPosAtCoords(A,u,n);let f=Array.prototype.indexOf.call(r.childNodes,A)+(e>=(o.left+o.right)/2?1:0);return{node:r,offset:f}}function domPosInText(r,e,n){let A=r.nodeValue.length,o=-1,s=1e9,a=0;for(let l=0;l<A;l++){let c=textRange(r,l,l+1).getClientRects();for(let g=0;g<c.length;g++){let h=c[g];if(h.top==h.bottom)continue;a||(a=e-h.left);let d=(h.top>n?h.top-n:n-h.bottom)-1;if(h.left-1<=e&&h.right+1>=e&&d<s){let u=e>=(h.left+h.right)/2,f=u;if((browser$1.chrome||browser$1.gecko)&&textRange(r,l).getBoundingClientRect().left==h.right&&(f=!u),d<=0)return{node:r,offset:l+(f?1:0)};o=l+(f?1:0),s=d}}}return{node:r,offset:o>-1?o:a>0?r.nodeValue.length:0}}function posAtCoords(r,e,n,A=-1){var o,s;let a=r.contentDOM.getBoundingClientRect(),l=a.top+r.viewState.paddingTop,c,{docHeight:g}=r.viewState,{x:h,y:d}=e,u=d-l;if(u<0)return 0;if(u>g)return r.state.doc.length;for(let w=r.viewState.heightOracle.textHeight/2,y=!1;c=r.elementAtHeight(u),c.type!=BlockType.Text;)for(;u=A>0?c.bottom+w:c.top-w,!(u>=0&&u<=g);){if(y)return n?null:0;y=!0,A=-A}d=l+u;let f=c.from;if(f<r.viewport.from)return r.viewport.from==0?0:n?null:posAtCoordsImprecise(r,a,c,h,d);if(f>r.viewport.to)return r.viewport.to==r.state.doc.length?r.state.doc.length:n?null:posAtCoordsImprecise(r,a,c,h,d);let I=r.dom.ownerDocument,p=r.root.elementFromPoint?r.root:I,m=p.elementFromPoint(h,d);m&&!r.contentDOM.contains(m)&&(m=null),m||(h=Math.max(a.left+1,Math.min(a.right-1,h)),m=p.elementFromPoint(h,d),m&&!r.contentDOM.contains(m)&&(m=null));let E,B=-1;if(m&&((o=r.docView.nearest(m))===null||o===void 0?void 0:o.isEditable)!=!1){if(I.caretPositionFromPoint){let w=I.caretPositionFromPoint(h,d);w&&({offsetNode:E,offset:B}=w)}else if(I.caretRangeFromPoint){let w=I.caretRangeFromPoint(h,d);w&&({startContainer:E,startOffset:B}=w,(!r.contentDOM.contains(E)||browser$1.safari&&isSuspiciousSafariCaretResult(E,B,h)||browser$1.chrome&&isSuspiciousChromeCaretResult(E,B,h))&&(E=void 0))}E&&(B=Math.min(maxOffset(E),B))}if(!E||!r.docView.dom.contains(E)){let w=LineView.find(r.docView,f);if(!w)return u>c.top+c.height/2?c.to:c.from;({node:E,offset:B}=domPosAtCoords(w.dom,h,d))}let Q=r.docView.nearest(E);if(!Q)return null;if(Q.isWidget&&((s=Q.dom)===null||s===void 0?void 0:s.nodeType)==1){let w=Q.dom.getBoundingClientRect();return e.y<w.top||e.y<=w.bottom&&e.x<=(w.left+w.right)/2?Q.posAtStart:Q.posAtEnd}else return Q.localPosFromDOM(E,B)+Q.posAtStart}function posAtCoordsImprecise(r,e,n,A,o){let s=Math.round((A-e.left)*r.defaultCharacterWidth);if(r.lineWrapping&&n.height>r.defaultLineHeight*1.5){let l=r.viewState.heightOracle.textHeight,c=Math.floor((o-n.top-(r.defaultLineHeight-l)*.5)/l);s+=c*r.viewState.heightOracle.lineLength}let a=r.state.sliceDoc(n.from,n.to);return n.from+findColumn(a,s,r.state.tabSize)}function isSuspiciousSafariCaretResult(r,e,n){let A,o=r;if(r.nodeType!=3||e!=(A=r.nodeValue.length))return!1;for(;;){let s=o.nextSibling;if(s){if(s.nodeName=="BR")break;return!1}else{let a=o.parentNode;if(!a||a.nodeName=="DIV")break;o=a}}return textRange(r,A-1,A).getBoundingClientRect().right>n}function isSuspiciousChromeCaretResult(r,e,n){if(e!=0)return!1;for(let o=r;;){let s=o.parentNode;if(!s||s.nodeType!=1||s.firstChild!=o)return!1;if(s.classList.contains("cm-line"))break;o=s}let A=r.nodeType==1?r.getBoundingClientRect():textRange(r,0,Math.max(r.nodeValue.length,1)).getBoundingClientRect();return n-A.left>5}function blockAt(r,e,n){let A=r.lineBlockAt(e);if(Array.isArray(A.type)){let o;for(let s of A.type){if(s.from>e)break;if(!(s.to<e)){if(s.from<e&&s.to>e)return s;(!o||s.type==BlockType.Text&&(o.type!=s.type||(n<0?s.from<e:s.to>e)))&&(o=s)}}return o||A}return A}function moveToLineBoundary(r,e,n,A){let o=blockAt(r,e.head,e.assoc||-1),s=!A||o.type!=BlockType.Text||!(r.lineWrapping||o.widgetLineBreaks)?null:r.coordsAtPos(e.assoc<0&&e.head>o.from?e.head-1:e.head);if(s){let a=r.dom.getBoundingClientRect(),l=r.textDirectionAt(o.from),c=r.posAtCoords({x:n==(l==Direction.LTR)?a.right-1:a.left+1,y:(s.top+s.bottom)/2});if(c!=null)return EditorSelection.cursor(c,n?-1:1)}return EditorSelection.cursor(n?o.to:o.from,n?-1:1)}function moveByChar(r,e,n,A){let o=r.state.doc.lineAt(e.head),s=r.bidiSpans(o),a=r.textDirectionAt(o.from);for(let l=e,c=null;;){let g=moveVisually(o,s,a,l,n),h=movedOver;if(!g){if(o.number==(n?r.state.doc.lines:1))return l;h=`
22
+ `,o=r.state.doc.line(o.number+(n?1:-1)),s=r.bidiSpans(o),g=r.visualLineSide(o,!n)}if(c){if(!c(h))return l}else{if(!A)return g;c=A(h)}l=g}}function byGroup(r,e,n){let A=r.state.charCategorizer(e),o=A(n);return s=>{let a=A(s);return o==CharCategory.Space&&(o=a),o==a}}function moveVertically(r,e,n,A){let o=e.head,s=n?1:-1;if(o==(n?r.state.doc.length:0))return EditorSelection.cursor(o,e.assoc);let a=e.goalColumn,l,c=r.contentDOM.getBoundingClientRect(),g=r.coordsAtPos(o,e.assoc||-1),h=r.documentTop;if(g)a==null&&(a=g.left-c.left),l=s<0?g.top:g.bottom;else{let f=r.viewState.lineBlockAt(o);a==null&&(a=Math.min(c.right-c.left,r.defaultCharacterWidth*(o-f.from))),l=(s<0?f.top:f.bottom)+h}let d=c.left+a,u=A??r.viewState.heightOracle.textHeight>>1;for(let f=0;;f+=10){let I=l+(u+f)*s,p=posAtCoords(r,{x:d,y:I},!1,s);if(I<c.top||I>c.bottom||(s<0?p<o:p>o)){let m=r.docView.coordsForChar(p),E=!m||I<m.top?-1:1;return EditorSelection.cursor(p,E,void 0,a)}}}function skipAtomicRanges(r,e,n){for(;;){let A=0;for(let o of r)o.between(e-1,e+1,(s,a,l)=>{if(e>s&&e<a){let c=A||n||(e-s<a-e?-1:1);e=c<0?s:a,A=c}});if(!A)return e}}function skipAtoms(r,e,n){let A=skipAtomicRanges(r.state.facet(atomicRanges).map(o=>o(r)),n.from,e.head>n.from?-1:1);return A==n.from?n:EditorSelection.cursor(A,A<n.from?1:-1)}const LineBreakPlaceholder="￿";class DOMReader{constructor(e,n){this.points=e,this.text="",this.lineSeparator=n.facet(EditorState.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=LineBreakPlaceholder}readRange(e,n){if(!e)return this;let A=e.parentNode;for(let o=e;;){this.findPointBefore(A,o);let s=this.text.length;this.readNode(o);let a=o.nextSibling;if(a==n)break;let l=ContentView.get(o),c=ContentView.get(a);(l&&c?l.breakAfter:(l?l.breakAfter:isBlockElement(o))||isBlockElement(a)&&(o.nodeName!="BR"||o.cmIgnore)&&this.text.length>s)&&this.lineBreak(),o=a}return this.findPointBefore(A,n),this}readTextNode(e){let n=e.nodeValue;for(let A of this.points)A.node==e&&(A.pos=this.text.length+Math.min(A.offset,n.length));for(let A=0,o=this.lineSeparator?null:/\r\n?|\n/g;;){let s=-1,a=1,l;if(this.lineSeparator?(s=n.indexOf(this.lineSeparator,A),a=this.lineSeparator.length):(l=o.exec(n))&&(s=l.index,a=l[0].length),this.append(n.slice(A,s<0?n.length:s)),s<0)break;if(this.lineBreak(),a>1)for(let c of this.points)c.node==e&&c.pos>this.text.length&&(c.pos-=a-1);A=s+a}}readNode(e){if(e.cmIgnore)return;let n=ContentView.get(e),A=n&&n.overrideDOMText;if(A!=null){this.findPointInside(e,A.length);for(let o=A.iter();!o.next().done;)o.lineBreak?this.lineBreak():this.append(o.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,n){for(let A of this.points)A.node==e&&e.childNodes[A.offset]==n&&(A.pos=this.text.length)}findPointInside(e,n){for(let A of this.points)(e.nodeType==3?A.node==e:e.contains(A.node))&&(A.pos=this.text.length+(isAtEnd(e,A.node,A.offset)?n:0))}}function isAtEnd(r,e,n){for(;;){if(!e||n<maxOffset(e))return!1;if(e==r)return!0;n=domIndex(e)+1,e=e.parentNode}}class DOMPoint{constructor(e,n){this.node=e,this.offset=n,this.pos=-1}}class DOMChange{constructor(e,n,A,o){this.typeOver=o,this.bounds=null,this.text="",this.domChanged=n>-1;let{impreciseHead:s,impreciseAnchor:a}=e.docView;if(e.state.readOnly&&n>-1)this.newSel=null;else if(n>-1&&(this.bounds=e.docView.domBoundsAround(n,A,0))){let l=s||a?[]:selectionPoints(e),c=new DOMReader(l,e.state);c.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=c.text,this.newSel=selectionFromPoints(l,this.bounds.from)}else{let l=e.observer.selectionRange,c=s&&s.node==l.focusNode&&s.offset==l.focusOffset||!contains(e.contentDOM,l.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(l.focusNode,l.focusOffset),g=a&&a.node==l.anchorNode&&a.offset==l.anchorOffset||!contains(e.contentDOM,l.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(l.anchorNode,l.anchorOffset),h=e.viewport;if((browser$1.ios||browser$1.chrome)&&e.state.selection.main.empty&&c!=g&&(h.from>0||h.to<e.state.doc.length)){let d=Math.min(c,g),u=Math.max(c,g),f=h.from-d,I=h.to-u;(f==0||f==1||d==0)&&(I==0||I==-1||u==e.state.doc.length)&&(c=0,g=e.state.doc.length)}this.newSel=EditorSelection.single(g,c)}}}function applyDOMChange(r,e){let n,{newSel:A}=e,o=r.state.selection.main,s=r.inputState.lastKeyTime>Date.now()-100?r.inputState.lastKeyCode:-1;if(e.bounds){let{from:a,to:l}=e.bounds,c=o.from,g=null;(s===8||browser$1.android&&e.text.length<l-a)&&(c=o.to,g="end");let h=findDiff(r.state.doc.sliceString(a,l,LineBreakPlaceholder),e.text,c-a,g);h&&(browser$1.chrome&&s==13&&h.toB==h.from+2&&e.text.slice(h.from,h.toB)==LineBreakPlaceholder+LineBreakPlaceholder&&h.toB--,n={from:a+h.from,to:a+h.toA,insert:Text.of(e.text.slice(h.from,h.toB).split(LineBreakPlaceholder))})}else A&&(!r.hasFocus&&r.state.facet(editable)||A.main.eq(o))&&(A=null);if(!n&&!A)return!1;if(!n&&e.typeOver&&!o.empty&&A&&A.main.empty?n={from:o.from,to:o.to,insert:r.state.doc.slice(o.from,o.to)}:(browser$1.mac||browser$1.android)&&n&&n.from==n.to&&n.from==o.head-1&&/^\. ?$/.test(n.insert.toString())&&r.contentDOM.getAttribute("autocorrect")=="off"?(A&&n.insert.length==2&&(A=EditorSelection.single(A.main.anchor-1,A.main.head-1)),n={from:n.from,to:n.to,insert:Text.of([n.insert.toString().replace("."," ")])}):n&&n.from>=o.from&&n.to<=o.to&&(n.from!=o.from||n.to!=o.to)&&o.to-o.from-(n.to-n.from)<=4?n={from:o.from,to:o.to,insert:r.state.doc.slice(o.from,n.from).append(n.insert).append(r.state.doc.slice(n.to,o.to))}:browser$1.chrome&&n&&n.from==n.to&&n.from==o.head&&n.insert.toString()==`
23
+ `&&r.lineWrapping&&(A&&(A=EditorSelection.single(A.main.anchor-1,A.main.head-1)),n={from:o.from,to:o.to,insert:Text.of([" "])}),n)return applyDOMChangeInner(r,n,A,s);if(A&&!A.main.eq(o)){let a=!1,l="select";return r.inputState.lastSelectionTime>Date.now()-50&&(r.inputState.lastSelectionOrigin=="select"&&(a=!0),l=r.inputState.lastSelectionOrigin),r.dispatch({selection:A,scrollIntoView:a,userEvent:l}),!0}else return!1}function applyDOMChangeInner(r,e,n,A=-1){if(browser$1.ios&&r.inputState.flushIOSKey(e))return!0;let o=r.state.selection.main;if(browser$1.android&&(e.to==o.to&&(e.from==o.from||e.from==o.from-1&&r.state.sliceDoc(e.from,o.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&dispatchKey(r.contentDOM,"Enter",13)||(e.from==o.from-1&&e.to==o.to&&e.insert.length==0||A==8&&e.insert.length<e.to-e.from&&e.to>o.head)&&dispatchKey(r.contentDOM,"Backspace",8)||e.from==o.from&&e.to==o.to+1&&e.insert.length==0&&dispatchKey(r.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();r.inputState.composing>=0&&r.inputState.composing++;let a,l=()=>a||(a=applyDefaultInsert(r,e,n));return r.state.facet(inputHandler$1).some(c=>c(r,e.from,e.to,s,l))||r.dispatch(l()),!0}function applyDefaultInsert(r,e,n){let A,o=r.state,s=o.selection.main;if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!n||n.main.empty&&n.main.from==e.from+e.insert.length)&&r.inputState.composing<0){let l=s.from<e.from?o.sliceDoc(s.from,e.from):"",c=s.to>e.to?o.sliceDoc(e.to,s.to):"";A=o.replaceSelection(r.state.toText(l+e.insert.sliceString(0,void 0,r.state.lineBreak)+c))}else{let l=o.changes(e),c=n&&n.main.to<=l.newLength?n.main:void 0;if(o.selection.ranges.length>1&&r.inputState.composing>=0&&e.to<=s.to&&e.to>=s.to-10){let g=r.state.sliceDoc(e.from,e.to),h,d=n&&findCompositionNode(r,n.main.head);if(d){let I=e.insert.length-(e.to-e.from);h={from:d.from,to:d.to-I}}else h=r.state.doc.lineAt(s.head);let u=s.to-e.to,f=s.to-s.from;A=o.changeByRange(I=>{if(I.from==s.from&&I.to==s.to)return{changes:l,range:c||I.map(l)};let p=I.to-u,m=p-g.length;if(I.to-I.from!=f||r.state.sliceDoc(m,p)!=g||I.to>=h.from&&I.from<=h.to)return{range:I};let E=o.changes({from:m,to:p,insert:e.insert}),B=I.to-s.to;return{changes:E,range:c?EditorSelection.range(Math.max(0,c.anchor+B),Math.max(0,c.head+B)):I.map(E)}})}else A={changes:l,selection:c&&o.selection.replaceRange(c)}}let a="input.type";return(r.composing||r.inputState.compositionPendingChange&&r.inputState.compositionEndedAt>Date.now()-50)&&(r.inputState.compositionPendingChange=!1,a+=".compose",r.inputState.compositionFirstChange&&(a+=".start",r.inputState.compositionFirstChange=!1)),o.update(A,{userEvent:a,scrollIntoView:!0})}function findDiff(r,e,n,A){let o=Math.min(r.length,e.length),s=0;for(;s<o&&r.charCodeAt(s)==e.charCodeAt(s);)s++;if(s==o&&r.length==e.length)return null;let a=r.length,l=e.length;for(;a>0&&l>0&&r.charCodeAt(a-1)==e.charCodeAt(l-1);)a--,l--;if(A=="end"){let c=Math.max(0,s-Math.min(a,l));n-=a+c-s}if(a<s&&r.length<e.length){let c=n<=s&&n>=a?s-n:0;s-=c,l=s+(l-a),a=s}else if(l<s){let c=n<=s&&n>=l?s-n:0;s-=c,a=s+(a-l),l=s}return{from:s,toA:a,toB:l}}function selectionPoints(r){let e=[];if(r.root.activeElement!=r.contentDOM)return e;let{anchorNode:n,anchorOffset:A,focusNode:o,focusOffset:s}=r.observer.selectionRange;return n&&(e.push(new DOMPoint(n,A)),(o!=n||s!=A)&&e.push(new DOMPoint(o,s))),e}function selectionFromPoints(r,e){if(r.length==0)return null;let n=r[0].pos,A=r.length==2?r[1].pos:n;return n>-1&&A>-1?EditorSelection.single(n+e,A+e):null}class InputState{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,browser$1.safari&&e.contentDOM.addEventListener("input",()=>null),browser$1.gecko&&firefoxCopyCutHack(e.contentDOM.ownerDocument)}handleEvent(e){!eventBelongsToEditor(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,n){let A=this.handlers[e];if(A){for(let o of A.observers)o(this.view,n);for(let o of A.handlers){if(n.defaultPrevented)break;if(o(this.view,n)){n.preventDefault();break}}}}ensureHandlers(e){let n=computeHandlers(e),A=this.handlers,o=this.view.contentDOM;for(let s in n)if(s!="scroll"){let a=!n[s].handlers.length,l=A[s];l&&a!=!l.handlers.length&&(o.removeEventListener(s,this.handleEvent),l=null),l||o.addEventListener(s,this.handleEvent,{passive:a})}for(let s in A)s!="scroll"&&!n[s]&&o.removeEventListener(s,this.handleEvent);this.handlers=n}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&modifierCodes.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),browser$1.android&&browser$1.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let n;return browser$1.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((n=PendingKeys.find(A=>A.keyCode==e.keyCode))&&!e.ctrlKey||EmacsyPendingKeys.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=n||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let n=this.pendingIOSKey;return!n||n.key=="Enter"&&e&&e.from<e.to&&/^\S+$/.test(e.insert.toString())?!1:(this.pendingIOSKey=void 0,dispatchKey(this.view.contentDOM,n.key,n.keyCode,n instanceof KeyboardEvent?n:void 0))}ignoreDuringComposition(e){return/^key/.test(e.type)?this.composing>0?!0:browser$1.safari&&!browser$1.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function bindHandler(r,e){return(n,A)=>{try{return e.call(r,A,n)}catch(o){logException(n.state,o)}}}function computeHandlers(r){let e=Object.create(null);function n(A){return e[A]||(e[A]={observers:[],handlers:[]})}for(let A of r){let o=A.spec,s=o&&o.plugin.domEventHandlers,a=o&&o.plugin.domEventObservers;if(s)for(let l in s){let c=s[l];c&&n(l).handlers.push(bindHandler(A.value,c))}if(a)for(let l in a){let c=a[l];c&&n(l).observers.push(bindHandler(A.value,c))}}for(let A in handlers)n(A).handlers.push(handlers[A]);for(let A in observers)n(A).observers.push(observers[A]);return e}const PendingKeys=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],EmacsyPendingKeys="dthko",modifierCodes=[16,17,18,20,91,92,224,225],dragScrollMargin=6;function dragScrollSpeed(r){return Math.max(0,r)*.7+8}function dist(r,e){return Math.max(Math.abs(r.clientX-e.clientX),Math.abs(r.clientY-e.clientY))}class MouseSelection{constructor(e,n,A,o){this.view=e,this.startEvent=n,this.style=A,this.mustSelect=o,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=n,this.scrollParents=scrollableParents(e.contentDOM),this.atoms=e.state.facet(atomicRanges).map(a=>a(e));let s=e.contentDOM.ownerDocument;s.addEventListener("mousemove",this.move=this.move.bind(this)),s.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=n.shiftKey,this.multiple=e.state.facet(EditorState.allowMultipleSelections)&&addsSelectionRange(e,n),this.dragging=isInPrimarySelection(e,n)&&getClickType(n)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&dist(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let n=0,A=0,o=0,s=0,a=this.view.win.innerWidth,l=this.view.win.innerHeight;this.scrollParents.x&&({left:o,right:a}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:s,bottom:l}=this.scrollParents.y.getBoundingClientRect());let c=getScrollMargins(this.view);e.clientX-c.left<=o+dragScrollMargin?n=-dragScrollSpeed(o-e.clientX):e.clientX+c.right>=a-dragScrollMargin&&(n=dragScrollSpeed(e.clientX-a)),e.clientY-c.top<=s+dragScrollMargin?A=-dragScrollSpeed(s-e.clientY):e.clientY+c.bottom>=l-dragScrollMargin&&(A=dragScrollSpeed(e.clientY-l)),this.setScrollSpeed(n,A)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,n){this.scrollSpeed={x:e,y:n},e||n?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:n}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),n&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=n,n=0),(e||n)&&this.view.win.scrollBy(e,n),this.dragging===!1&&this.select(this.lastEvent)}skipAtoms(e){let n=null;for(let A=0;A<e.ranges.length;A++){let o=e.ranges[A],s=null;if(o.empty){let a=skipAtomicRanges(this.atoms,o.from,0);a!=o.from&&(s=EditorSelection.cursor(a,-1))}else{let a=skipAtomicRanges(this.atoms,o.from,-1),l=skipAtomicRanges(this.atoms,o.to,1);(a!=o.from||l!=o.to)&&(s=EditorSelection.range(o.from==o.anchor?a:l,o.from==o.head?a:l))}s&&(n||(n=e.ranges.slice()),n[A]=s)}return n?EditorSelection.create(n,e.mainIndex):e}select(e){let{view:n}=this,A=this.skipAtoms(this.style.get(e,this.extend,this.multiple));(this.mustSelect||!A.eq(n.state.selection,this.dragging===!1))&&this.view.dispatch({selection:A,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(n=>n.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function addsSelectionRange(r,e){let n=r.state.facet(clickAddsSelectionRange);return n.length?n[0](e):browser$1.mac?e.metaKey:e.ctrlKey}function dragMovesSelection(r,e){let n=r.state.facet(dragMovesSelection$1);return n.length?n[0](e):browser$1.mac?!e.altKey:!e.ctrlKey}function isInPrimarySelection(r,e){let{main:n}=r.state.selection;if(n.empty)return!1;let A=getSelection$1(r.root);if(!A||A.rangeCount==0)return!0;let o=A.getRangeAt(0).getClientRects();for(let s=0;s<o.length;s++){let a=o[s];if(a.left<=e.clientX&&a.right>=e.clientX&&a.top<=e.clientY&&a.bottom>=e.clientY)return!0}return!1}function eventBelongsToEditor(r,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let n=e.target,A;n!=r.contentDOM;n=n.parentNode)if(!n||n.nodeType==11||(A=ContentView.get(n))&&A.ignoreEvent(e))return!1;return!0}const handlers=Object.create(null),observers=Object.create(null),brokenClipboardAPI=browser$1.ie&&browser$1.ie_version<15||browser$1.ios&&browser$1.webkit_version<604;function capturePaste(r){let e=r.dom.parentNode;if(!e)return;let n=e.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.focus(),setTimeout(()=>{r.focus(),n.remove(),doPaste(r,n.value)},50)}function textFilter(r,e,n){for(let A of r.facet(e))n=A(n,r);return n}function doPaste(r,e){e=textFilter(r.state,clipboardInputFilter,e);let{state:n}=r,A,o=1,s=n.toText(e),a=s.lines==n.selection.ranges.length;if(lastLinewiseCopy!=null&&n.selection.ranges.every(c=>c.empty)&&lastLinewiseCopy==s.toString()){let c=-1;A=n.changeByRange(g=>{let h=n.doc.lineAt(g.from);if(h.from==c)return{range:g};c=h.from;let d=n.toText((a?s.line(o++).text:e)+n.lineBreak);return{changes:{from:h.from,insert:d},range:EditorSelection.cursor(g.from+d.length)}})}else a?A=n.changeByRange(c=>{let g=s.line(o++);return{changes:{from:c.from,to:c.to,insert:g.text},range:EditorSelection.cursor(c.from+g.length)}}):A=n.replaceSelection(s);r.dispatch(A,{userEvent:"input.paste",scrollIntoView:!0})}observers.scroll=r=>{r.inputState.lastScrollTop=r.scrollDOM.scrollTop,r.inputState.lastScrollLeft=r.scrollDOM.scrollLeft};handlers.keydown=(r,e)=>(r.inputState.setSelectionOrigin("select"),e.keyCode==27&&r.inputState.tabFocusMode!=0&&(r.inputState.tabFocusMode=Date.now()+2e3),!1);observers.touchstart=(r,e)=>{r.inputState.lastTouchTime=Date.now(),r.inputState.setSelectionOrigin("select.pointer")};observers.touchmove=r=>{r.inputState.setSelectionOrigin("select.pointer")};handlers.mousedown=(r,e)=>{if(r.observer.flush(),r.inputState.lastTouchTime>Date.now()-2e3)return!1;let n=null;for(let A of r.state.facet(mouseSelectionStyle))if(n=A(r,e),n)break;if(!n&&e.button==0&&(n=basicMouseSelection(r,e)),n){let A=!r.hasFocus;r.inputState.startMouseSelection(new MouseSelection(r,e,n,A)),A&&r.observer.ignore(()=>{focusPreventScroll(r.contentDOM);let s=r.root.activeElement;s&&!s.contains(r.contentDOM)&&s.blur()});let o=r.inputState.mouseSelection;if(o)return o.start(e),o.dragging===!1}return!1};function rangeForClick(r,e,n,A){if(A==1)return EditorSelection.cursor(e,n);if(A==2)return groupAt(r.state,e,n);{let o=LineView.find(r.docView,e),s=r.state.doc.lineAt(o?o.posAtEnd:e),a=o?o.posAtStart:s.from,l=o?o.posAtEnd:s.to;return l<r.state.doc.length&&l==s.to&&l++,EditorSelection.range(a,l)}}let inside=(r,e,n)=>e>=n.top&&e<=n.bottom&&r>=n.left&&r<=n.right;function findPositionSide(r,e,n,A){let o=LineView.find(r.docView,e);if(!o)return 1;let s=e-o.posAtStart;if(s==0)return 1;if(s==o.length)return-1;let a=o.coordsAt(s,-1);if(a&&inside(n,A,a))return-1;let l=o.coordsAt(s,1);return l&&inside(n,A,l)?1:a&&a.bottom>=A?-1:1}function queryPos(r,e){let n=r.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:n,bias:findPositionSide(r,n,e.clientX,e.clientY)}}const BadMouseDetail=browser$1.ie&&browser$1.ie_version<=11;let lastMouseDown=null,lastMouseDownCount=0,lastMouseDownTime=0;function getClickType(r){if(!BadMouseDetail)return r.detail;let e=lastMouseDown,n=lastMouseDownTime;return lastMouseDown=r,lastMouseDownTime=Date.now(),lastMouseDownCount=!e||n>Date.now()-400&&Math.abs(e.clientX-r.clientX)<2&&Math.abs(e.clientY-r.clientY)<2?(lastMouseDownCount+1)%3:1}function basicMouseSelection(r,e){let n=queryPos(r,e),A=getClickType(e),o=r.state.selection;return{update(s){s.docChanged&&(n.pos=s.changes.mapPos(n.pos),o=o.map(s.changes))},get(s,a,l){let c=queryPos(r,s),g,h=rangeForClick(r,c.pos,c.bias,A);if(n.pos!=c.pos&&!a){let d=rangeForClick(r,n.pos,n.bias,A),u=Math.min(d.from,h.from),f=Math.max(d.to,h.to);h=u<h.from?EditorSelection.range(u,f):EditorSelection.range(f,u)}return a?o.replaceRange(o.main.extend(h.from,h.to)):l&&A==1&&o.ranges.length>1&&(g=removeRangeAround(o,c.pos))?g:l?o.addRange(h):EditorSelection.create([h])}}}function removeRangeAround(r,e){for(let n=0;n<r.ranges.length;n++){let{from:A,to:o}=r.ranges[n];if(A<=e&&o>=e)return EditorSelection.create(r.ranges.slice(0,n).concat(r.ranges.slice(n+1)),r.mainIndex==n?0:r.mainIndex-(r.mainIndex>n?1:0))}return null}handlers.dragstart=(r,e)=>{let{selection:{main:n}}=r.state;if(e.target.draggable){let o=r.docView.nearest(e.target);if(o&&o.isWidget){let s=o.posAtStart,a=s+o.length;(s>=n.to||a<=n.from)&&(n=EditorSelection.range(s,a))}}let{inputState:A}=r;return A.mouseSelection&&(A.mouseSelection.dragging=!0),A.draggedContent=n,e.dataTransfer&&(e.dataTransfer.setData("Text",textFilter(r.state,clipboardOutputFilter,r.state.sliceDoc(n.from,n.to))),e.dataTransfer.effectAllowed="copyMove"),!1};handlers.dragend=r=>(r.inputState.draggedContent=null,!1);function dropText(r,e,n,A){if(n=textFilter(r.state,clipboardInputFilter,n),!n)return;let o=r.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:s}=r.inputState,a=A&&s&&dragMovesSelection(r,e)?{from:s.from,to:s.to}:null,l={from:o,insert:n},c=r.state.changes(a?[a,l]:l);r.focus(),r.dispatch({changes:c,selection:{anchor:c.mapPos(o,-1),head:c.mapPos(o,1)},userEvent:a?"move.drop":"input.drop"}),r.inputState.draggedContent=null}handlers.drop=(r,e)=>{if(!e.dataTransfer)return!1;if(r.state.readOnly)return!0;let n=e.dataTransfer.files;if(n&&n.length){let A=Array(n.length),o=0,s=()=>{++o==n.length&&dropText(r,e,A.filter(a=>a!=null).join(r.state.lineBreak),!1)};for(let a=0;a<n.length;a++){let l=new FileReader;l.onerror=s,l.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(l.result)||(A[a]=l.result),s()},l.readAsText(n[a])}return!0}else{let A=e.dataTransfer.getData("Text");if(A)return dropText(r,e,A,!0),!0}return!1};handlers.paste=(r,e)=>{if(r.state.readOnly)return!0;r.observer.flush();let n=brokenClipboardAPI?null:e.clipboardData;return n?(doPaste(r,n.getData("text/plain")||n.getData("text/uri-list")),!0):(capturePaste(r),!1)};function captureCopy(r,e){let n=r.dom.parentNode;if(!n)return;let A=n.appendChild(document.createElement("textarea"));A.style.cssText="position: fixed; left: -10000px; top: 10px",A.value=e,A.focus(),A.selectionEnd=e.length,A.selectionStart=0,setTimeout(()=>{A.remove(),r.focus()},50)}function copiedRange(r){let e=[],n=[],A=!1;for(let o of r.selection.ranges)o.empty||(e.push(r.sliceDoc(o.from,o.to)),n.push(o));if(!e.length){let o=-1;for(let{from:s}of r.selection.ranges){let a=r.doc.lineAt(s);a.number>o&&(e.push(a.text),n.push({from:a.from,to:Math.min(r.doc.length,a.to+1)})),o=a.number}A=!0}return{text:textFilter(r,clipboardOutputFilter,e.join(r.lineBreak)),ranges:n,linewise:A}}let lastLinewiseCopy=null;handlers.copy=handlers.cut=(r,e)=>{let{text:n,ranges:A,linewise:o}=copiedRange(r.state);if(!n&&!o)return!1;lastLinewiseCopy=o?n:null,e.type=="cut"&&!r.state.readOnly&&r.dispatch({changes:A,scrollIntoView:!0,userEvent:"delete.cut"});let s=brokenClipboardAPI?null:e.clipboardData;return s?(s.clearData(),s.setData("text/plain",n),!0):(captureCopy(r,n),!1)};const isFocusChange=Annotation.define();function focusChangeTransaction(r,e){let n=[];for(let A of r.facet(focusChangeEffect)){let o=A(r,e);o&&n.push(o)}return n.length?r.update({effects:n,annotations:isFocusChange.of(!0)}):null}function updateForFocusChange(r){setTimeout(()=>{let e=r.hasFocus;if(e!=r.inputState.notifiedFocused){let n=focusChangeTransaction(r.state,e);n?r.dispatch(n):r.update([])}},10)}observers.focus=r=>{r.inputState.lastFocusTime=Date.now(),!r.scrollDOM.scrollTop&&(r.inputState.lastScrollTop||r.inputState.lastScrollLeft)&&(r.scrollDOM.scrollTop=r.inputState.lastScrollTop,r.scrollDOM.scrollLeft=r.inputState.lastScrollLeft),updateForFocusChange(r)};observers.blur=r=>{r.observer.clearSelectionRange(),updateForFocusChange(r)};observers.compositionstart=observers.compositionupdate=r=>{r.observer.editContext||(r.inputState.compositionFirstChange==null&&(r.inputState.compositionFirstChange=!0),r.inputState.composing<0&&(r.inputState.composing=0))};observers.compositionend=r=>{r.observer.editContext||(r.inputState.composing=-1,r.inputState.compositionEndedAt=Date.now(),r.inputState.compositionPendingKey=!0,r.inputState.compositionPendingChange=r.observer.pendingRecords().length>0,r.inputState.compositionFirstChange=null,browser$1.chrome&&browser$1.android?r.observer.flushSoon():r.inputState.compositionPendingChange?Promise.resolve().then(()=>r.observer.flush()):setTimeout(()=>{r.inputState.composing<0&&r.docView.hasComposition&&r.update([])},50))};observers.contextmenu=r=>{r.inputState.lastContextMenu=Date.now()};handlers.beforeinput=(r,e)=>{var n,A;if(e.inputType=="insertReplacementText"&&r.observer.editContext){let s=(n=e.dataTransfer)===null||n===void 0?void 0:n.getData("text/plain"),a=e.getTargetRanges();if(s&&a.length){let l=a[0],c=r.posAtDOM(l.startContainer,l.startOffset),g=r.posAtDOM(l.endContainer,l.endOffset);return applyDOMChangeInner(r,{from:c,to:g,insert:r.state.toText(s)},null),!0}}let o;if(browser$1.chrome&&browser$1.android&&(o=PendingKeys.find(s=>s.inputType==e.inputType))&&(r.observer.delayAndroidKey(o.key,o.keyCode),o.key=="Backspace"||o.key=="Delete")){let s=((A=window.visualViewport)===null||A===void 0?void 0:A.height)||0;setTimeout(()=>{var a;(((a=window.visualViewport)===null||a===void 0?void 0:a.height)||0)>s+10&&r.hasFocus&&(r.contentDOM.blur(),r.focus())},100)}return browser$1.ios&&e.inputType=="deleteContentForward"&&r.observer.flushSoon(),browser$1.safari&&e.inputType=="insertText"&&r.inputState.composing>=0&&setTimeout(()=>observers.compositionend(r,e),20),!1};const appliedFirefoxHack=new Set;function firefoxCopyCutHack(r){appliedFirefoxHack.has(r)||(appliedFirefoxHack.add(r),r.addEventListener("copy",()=>{}),r.addEventListener("cut",()=>{}))}const wrappingWhiteSpace=["pre-wrap","normal","pre-line","break-spaces"];let heightChangeFlag=!1;function clearHeightChangeFlag(){heightChangeFlag=!1}class HeightOracle{constructor(e){this.lineWrapping=e,this.doc=Text.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,n){let A=this.doc.lineAt(n).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(A+=Math.max(0,Math.ceil((n-e-A*this.lineLength*.5)/this.lineLength))),this.lineHeight*A}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return wrappingWhiteSpace.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let n=!1;for(let A=0;A<e.length;A++){let o=e[A];o<0?A++:this.heightSamples[Math.floor(o*10)]||(n=!0,this.heightSamples[Math.floor(o*10)]=!0)}return n}refresh(e,n,A,o,s,a){let l=wrappingWhiteSpace.indexOf(e)>-1,c=Math.round(n)!=Math.round(this.lineHeight)||this.lineWrapping!=l;if(this.lineWrapping=l,this.lineHeight=n,this.charWidth=A,this.textHeight=o,this.lineLength=s,c){this.heightSamples={};for(let g=0;g<a.length;g++){let h=a[g];h<0?g++:this.heightSamples[Math.floor(h*10)]=!0}}return c}}class MeasuredHeights{constructor(e,n){this.from=e,this.heights=n,this.index=0}get more(){return this.index<this.heights.length}}class BlockInfo{constructor(e,n,A,o,s){this.from=e,this.length=n,this.top=A,this.height=o,this._content=s}get type(){return typeof this._content=="number"?BlockType.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof PointDecoration?this._content.widget:null}get widgetLineBreaks(){return typeof this._content=="number"?this._content:0}join(e){let n=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(e._content)?e._content:[e]);return new BlockInfo(this.from,this.length+e.length,this.top,this.height+e.height,n)}}var QueryType=(function(r){return r[r.ByPos=0]="ByPos",r[r.ByHeight=1]="ByHeight",r[r.ByPosNoHeight=2]="ByPosNoHeight",r})(QueryType||(QueryType={}));const Epsilon=.001;class HeightMap{constructor(e,n,A=2){this.length=e,this.height=n,this.flags=A}get outdated(){return(this.flags&2)>0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>Epsilon&&(heightChangeFlag=!0),this.height=e)}replace(e,n,A){return HeightMap.of(A)}decomposeLeft(e,n){n.push(this)}decomposeRight(e,n){n.push(this)}applyChanges(e,n,A,o){let s=this,a=A.doc;for(let l=o.length-1;l>=0;l--){let{fromA:c,toA:g,fromB:h,toB:d}=o[l],u=s.lineAt(c,QueryType.ByPosNoHeight,A.setDoc(n),0,0),f=u.to>=g?u:s.lineAt(g,QueryType.ByPosNoHeight,A,0,0);for(d+=f.to-g,g=f.to;l>0&&u.from<=o[l-1].toA;)c=o[l-1].fromA,h=o[l-1].fromB,l--,c<u.from&&(u=s.lineAt(c,QueryType.ByPosNoHeight,A,0,0));h+=u.from-c,c=u.from;let I=NodeBuilder.build(A.setDoc(a),e,h,d);s=replace(s,s.replace(c,g,I))}return s.updateHeight(A,0)}static empty(){return new HeightMapText(0,0)}static of(e){if(e.length==1)return e[0];let n=0,A=e.length,o=0,s=0;for(;;)if(n==A)if(o>s*2){let l=e[n-1];l.break?e.splice(--n,1,l.left,null,l.right):e.splice(--n,1,l.left,l.right),A+=1+l.break,o-=l.size}else if(s>o*2){let l=e[A];l.break?e.splice(A,1,l.left,null,l.right):e.splice(A,1,l.left,l.right),A+=2+l.break,s-=l.size}else break;else if(o<s){let l=e[n++];l&&(o+=l.size)}else{let l=e[--A];l&&(s+=l.size)}let a=0;return e[n-1]==null?(a=1,n--):e[n]==null&&(a=1,A++),new HeightMapBranch(HeightMap.of(e.slice(0,n)),a,HeightMap.of(e.slice(A)))}}function replace(r,e){return r==e?r:(r.constructor!=e.constructor&&(heightChangeFlag=!0),e)}HeightMap.prototype.size=1;class HeightMapBlock extends HeightMap{constructor(e,n,A){super(e,n),this.deco=A}blockAt(e,n,A,o){return new BlockInfo(o,this.length,A,this.height,this.deco||0)}lineAt(e,n,A,o,s){return this.blockAt(0,A,o,s)}forEachLine(e,n,A,o,s,a){e<=s+this.length&&n>=s&&a(this.blockAt(0,A,o,s))}updateHeight(e,n=0,A=!1,o){return o&&o.from<=n&&o.more&&this.setHeight(o.heights[o.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class HeightMapText extends HeightMapBlock{constructor(e,n){super(e,n,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,n,A,o){return new BlockInfo(o,this.length,A,this.height,this.breaks)}replace(e,n,A){let o=A[0];return A.length==1&&(o instanceof HeightMapText||o instanceof HeightMapGap&&o.flags&4)&&Math.abs(this.length-o.length)<10?(o instanceof HeightMapGap?o=new HeightMapText(o.length,this.height):o.height=this.height,this.outdated||(o.outdated=!1),o):HeightMap.of(A)}updateHeight(e,n=0,A=!1,o){return o&&o.from<=n&&o.more?this.setHeight(o.heights[o.index++]):(A||this.outdated)&&this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class HeightMapGap extends HeightMap{constructor(e){super(e,0)}heightMetrics(e,n){let A=e.doc.lineAt(n).number,o=e.doc.lineAt(n+this.length).number,s=o-A+1,a,l=0;if(e.lineWrapping){let c=Math.min(this.height,e.lineHeight*s);a=c/s,this.length>s+1&&(l=(this.height-c)/(this.length-s-1))}else a=this.height/s;return{firstLine:A,lastLine:o,perLine:a,perChar:l}}blockAt(e,n,A,o){let{firstLine:s,lastLine:a,perLine:l,perChar:c}=this.heightMetrics(n,o);if(n.lineWrapping){let g=o+(e<n.lineHeight?0:Math.round(Math.max(0,Math.min(1,(e-A)/this.height))*this.length)),h=n.doc.lineAt(g),d=l+h.length*c,u=Math.max(A,e-d/2);return new BlockInfo(h.from,h.length,u,d,0)}else{let g=Math.max(0,Math.min(a-s,Math.floor((e-A)/l))),{from:h,length:d}=n.doc.line(s+g);return new BlockInfo(h,d,A+l*g,l,0)}}lineAt(e,n,A,o,s){if(n==QueryType.ByHeight)return this.blockAt(e,A,o,s);if(n==QueryType.ByPosNoHeight){let{from:f,to:I}=A.doc.lineAt(e);return new BlockInfo(f,I-f,0,0,0)}let{firstLine:a,perLine:l,perChar:c}=this.heightMetrics(A,s),g=A.doc.lineAt(e),h=l+g.length*c,d=g.number-a,u=o+l*d+c*(g.from-s-d);return new BlockInfo(g.from,g.length,Math.max(o,Math.min(u,o+this.height-h)),h,0)}forEachLine(e,n,A,o,s,a){e=Math.max(e,s),n=Math.min(n,s+this.length);let{firstLine:l,perLine:c,perChar:g}=this.heightMetrics(A,s);for(let h=e,d=o;h<=n;){let u=A.doc.lineAt(h);if(h==e){let I=u.number-l;d+=c*I+g*(e-s-I)}let f=c+g*u.length;a(new BlockInfo(u.from,u.length,d,f,0)),d+=f,h=u.to+1}}replace(e,n,A){let o=this.length-n;if(o>0){let s=A[A.length-1];s instanceof HeightMapGap?A[A.length-1]=new HeightMapGap(s.length+o):A.push(null,new HeightMapGap(o-1))}if(e>0){let s=A[0];s instanceof HeightMapGap?A[0]=new HeightMapGap(e+s.length):A.unshift(new HeightMapGap(e-1),null)}return HeightMap.of(A)}decomposeLeft(e,n){n.push(new HeightMapGap(e-1),null)}decomposeRight(e,n){n.push(null,new HeightMapGap(this.length-e-1))}updateHeight(e,n=0,A=!1,o){let s=n+this.length;if(o&&o.from<=n+this.length&&o.more){let a=[],l=Math.max(n,o.from),c=-1;for(o.from>n&&a.push(new HeightMapGap(o.from-n-1).updateHeight(e,n));l<=s&&o.more;){let h=e.doc.lineAt(l).length;a.length&&a.push(null);let d=o.heights[o.index++];c==-1?c=d:Math.abs(d-c)>=Epsilon&&(c=-2);let u=new HeightMapText(h,d);u.outdated=!1,a.push(u),l+=h+1}l<=s&&a.push(null,new HeightMapGap(s-l).updateHeight(e,l));let g=HeightMap.of(a);return(c<0||Math.abs(g.height-this.height)>=Epsilon||Math.abs(c-this.heightMetrics(e,n).perLine)>=Epsilon)&&(heightChangeFlag=!0),replace(this,g)}else(A||this.outdated)&&(this.setHeight(e.heightForGap(n,n+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class HeightMapBranch extends HeightMap{constructor(e,n,A){super(e.length+n+A.length,e.height+A.height,n|(e.outdated||A.outdated?2:0)),this.left=e,this.right=A,this.size=e.size+A.size}get break(){return this.flags&1}blockAt(e,n,A,o){let s=A+this.left.height;return e<s?this.left.blockAt(e,n,A,o):this.right.blockAt(e,n,s,o+this.left.length+this.break)}lineAt(e,n,A,o,s){let a=o+this.left.height,l=s+this.left.length+this.break,c=n==QueryType.ByHeight?e<a:e<l,g=c?this.left.lineAt(e,n,A,o,s):this.right.lineAt(e,n,A,a,l);if(this.break||(c?g.to<l:g.from>l))return g;let h=n==QueryType.ByPosNoHeight?QueryType.ByPosNoHeight:QueryType.ByPos;return c?g.join(this.right.lineAt(l,h,A,a,l)):this.left.lineAt(l,h,A,o,s).join(g)}forEachLine(e,n,A,o,s,a){let l=o+this.left.height,c=s+this.left.length+this.break;if(this.break)e<c&&this.left.forEachLine(e,n,A,o,s,a),n>=c&&this.right.forEachLine(e,n,A,l,c,a);else{let g=this.lineAt(c,QueryType.ByPos,A,o,s);e<g.from&&this.left.forEachLine(e,g.from-1,A,o,s,a),g.to>=e&&g.from<=n&&a(g),n>g.to&&this.right.forEachLine(g.to+1,n,A,l,c,a)}}replace(e,n,A){let o=this.left.length+this.break;if(n<o)return this.balanced(this.left.replace(e,n,A),this.right);if(e>this.left.length)return this.balanced(this.left,this.right.replace(e-o,n-o,A));let s=[];e>0&&this.decomposeLeft(e,s);let a=s.length;for(let l of A)s.push(l);if(e>0&&mergeGaps(s,a-1),n<this.length){let l=s.length;this.decomposeRight(n,s),mergeGaps(s,l)}return HeightMap.of(s)}decomposeLeft(e,n){let A=this.left.length;if(e<=A)return this.left.decomposeLeft(e,n);n.push(this.left),this.break&&(A++,e>=A&&n.push(null)),e>A&&this.right.decomposeLeft(e-A,n)}decomposeRight(e,n){let A=this.left.length,o=A+this.break;if(e>=o)return this.right.decomposeRight(e-o,n);e<A&&this.left.decomposeRight(e,n),this.break&&e<o&&n.push(null),n.push(this.right)}balanced(e,n){return e.size>2*n.size||n.size>2*e.size?HeightMap.of(this.break?[e,null,n]:[e,n]):(this.left=replace(this.left,e),this.right=replace(this.right,n),this.setHeight(e.height+n.height),this.outdated=e.outdated||n.outdated,this.size=e.size+n.size,this.length=e.length+this.break+n.length,this)}updateHeight(e,n=0,A=!1,o){let{left:s,right:a}=this,l=n+s.length+this.break,c=null;return o&&o.from<=n+s.length&&o.more?c=s=s.updateHeight(e,n,A,o):s.updateHeight(e,n,A),o&&o.from<=l+a.length&&o.more?c=a=a.updateHeight(e,l,A,o):a.updateHeight(e,l,A),c?this.balanced(s,a):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function mergeGaps(r,e){let n,A;r[e]==null&&(n=r[e-1])instanceof HeightMapGap&&(A=r[e+1])instanceof HeightMapGap&&r.splice(e-1,3,new HeightMapGap(n.length+1+A.length))}const relevantWidgetHeight=5;class NodeBuilder{constructor(e,n){this.pos=e,this.oracle=n,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,n){if(this.lineStart>-1){let A=Math.min(n,this.lineEnd),o=this.nodes[this.nodes.length-1];o instanceof HeightMapText?o.length+=A-this.pos:(A>this.pos||!this.isCovered)&&this.nodes.push(new HeightMapText(A-this.pos,-1)),this.writtenTo=A,n>A&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=n}point(e,n,A){if(e<n||A.heightRelevant){let o=A.widget?A.widget.estimatedHeight:0,s=A.widget?A.widget.lineBreaks:0;o<0&&(o=this.oracle.lineHeight);let a=n-e;A.block?this.addBlock(new HeightMapBlock(a,o,A)):(a||s||o>=relevantWidgetHeight)&&this.addLineDeco(o,s,a)}else n>e&&this.span(e,n);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:e,to:n}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=n,this.writtenTo<e&&((this.writtenTo<e-1||this.nodes[this.nodes.length-1]==null)&&this.nodes.push(this.blankContent(this.writtenTo,e-1)),this.nodes.push(null)),this.pos>e&&this.nodes.push(new HeightMapText(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,n){let A=new HeightMapGap(n-e);return this.oracle.doc.lineAt(e).to==n&&(A.flags|=4),A}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof HeightMapText)return e;let n=new HeightMapText(0,-1);return this.nodes.push(n),n}addBlock(e){this.enterLine();let n=e.deco;n&&n.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,n&&n.endSide>0&&(this.covering=e)}addLineDeco(e,n,A){let o=this.ensureLine();o.length+=A,o.collapsed+=A,o.widgetHeight=Math.max(o.widgetHeight,e),o.breaks+=n,this.writtenTo=this.pos=this.pos+A}finish(e){let n=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(n instanceof HeightMapText)&&!this.isCovered?this.nodes.push(new HeightMapText(0,-1)):(this.writtenTo<this.pos||n==null)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos));let A=e;for(let o of this.nodes)o instanceof HeightMapText&&o.updateHeight(this.oracle,A),A+=o?o.length:1;return this.nodes}static build(e,n,A,o){let s=new NodeBuilder(A,e);return RangeSet.spans(n,A,o,s,0),s.finish(A)}}function heightRelevantDecoChanges(r,e,n){let A=new DecorationComparator;return RangeSet.compare(r,e,n,A,0),A.changes}class DecorationComparator{constructor(){this.changes=[]}compareRange(){}comparePoint(e,n,A,o){(e<n||A&&A.heightRelevant||o&&o.heightRelevant)&&addRange(e,n,this.changes,5)}}function visiblePixelRange(r,e){let n=r.getBoundingClientRect(),A=r.ownerDocument,o=A.defaultView||window,s=Math.max(0,n.left),a=Math.min(o.innerWidth,n.right),l=Math.max(0,n.top),c=Math.min(o.innerHeight,n.bottom);for(let g=r.parentNode;g&&g!=A.body;)if(g.nodeType==1){let h=g,d=window.getComputedStyle(h);if((h.scrollHeight>h.clientHeight||h.scrollWidth>h.clientWidth)&&d.overflow!="visible"){let u=h.getBoundingClientRect();s=Math.max(s,u.left),a=Math.min(a,u.right),l=Math.max(l,u.top),c=Math.min(g==r.parentNode?o.innerHeight:c,u.bottom)}g=d.position=="absolute"||d.position=="fixed"?h.offsetParent:h.parentNode}else if(g.nodeType==11)g=g.host;else break;return{left:s-n.left,right:Math.max(s,a)-n.left,top:l-(n.top+e),bottom:Math.max(l,c)-(n.top+e)}}function inWindow(r){let e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView||window;return e.left<n.innerWidth&&e.right>0&&e.top<n.innerHeight&&e.bottom>0}function fullPixelRange(r,e){let n=r.getBoundingClientRect();return{left:0,right:n.right-n.left,top:e,bottom:n.bottom-(n.top+e)}}class LineGap{constructor(e,n,A,o){this.from=e,this.to=n,this.size=A,this.displaySize=o}static same(e,n){if(e.length!=n.length)return!1;for(let A=0;A<e.length;A++){let o=e[A],s=n[A];if(o.from!=s.from||o.to!=s.to||o.size!=s.size)return!1}return!0}draw(e,n){return Decoration.replace({widget:new LineGapWidget(this.displaySize*(n?e.scaleY:e.scaleX),n)}).range(this.from,this.to)}}class LineGapWidget extends WidgetType{constructor(e,n){super(),this.size=e,this.vertical=n}eq(e){return e.size==this.size&&e.vertical==this.vertical}toDOM(){let e=document.createElement("div");return this.vertical?e.style.height=this.size+"px":(e.style.width=this.size+"px",e.style.height="2px",e.style.display="inline-block"),e}get estimatedHeight(){return this.vertical?this.size:-1}}class ViewState{constructor(e){this.state=e,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scrollTop=0,this.scrolledToBottom=!1,this.scaleX=1,this.scaleY=1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=IdScaler,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=Direction.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let n=e.facet(contentAttributes).some(A=>typeof A!="function"&&A.class=="cm-lineWrapping");this.heightOracle=new HeightOracle(n),this.stateDeco=e.facet(decorations).filter(A=>typeof A!="function"),this.heightMap=HeightMap.empty().applyChanges(this.stateDeco,Text.empty,this.heightOracle.setDoc(e.doc),[new ChangedRange(0,0,0,e.doc.length)]);for(let A=0;A<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());A++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Decoration.set(this.lineGaps.map(A=>A.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:n}=this.state.selection;for(let A=0;A<=1;A++){let o=A?n.head:n.anchor;if(!e.some(({from:s,to:a})=>o>=s&&o<=a)){let{from:s,to:a}=this.lineBlockAt(o);e.push(new Viewport(s,a))}}return this.viewports=e.sort((A,o)=>A.from-o.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?IdScaler:new BigScaler(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(scaleBlock(e,this.scaler))})}update(e,n=null){this.state=e.state;let A=this.stateDeco;this.stateDeco=this.state.facet(decorations).filter(h=>typeof h!="function");let o=e.changedRanges,s=ChangedRange.extendWithRanges(o,heightRelevantDecoChanges(A,this.stateDeco,e?e.changes:ChangeSet.empty(this.state.doc.length))),a=this.heightMap.height,l=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);clearHeightChangeFlag(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),s),(this.heightMap.height!=a||heightChangeFlag)&&(e.flags|=2),l?(this.scrollAnchorPos=e.changes.mapPos(l.from,-1),this.scrollAnchorHeight=l.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=a);let c=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(n&&(n.range.head<c.from||n.range.head>c.to)||!this.viewportIsAppropriate(c))&&(c=this.getViewport(0,n));let g=c.from!=this.viewport.from||c.to!=this.viewport.to;this.viewport=c,e.flags|=this.updateForViewport(),(g||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),n&&(this.scrollTarget=n),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(nativeSelectionHidden)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let n=e.contentDOM,A=window.getComputedStyle(n),o=this.heightOracle,s=A.whiteSpace;this.defaultTextDirection=A.direction=="rtl"?Direction.RTL:Direction.LTR;let a=this.heightOracle.mustRefreshForWrapping(s),l=n.getBoundingClientRect(),c=a||this.mustMeasureContent||this.contentDOMHeight!=l.height;this.contentDOMHeight=l.height,this.mustMeasureContent=!1;let g=0,h=0;if(l.width&&l.height){let{scaleX:w,scaleY:y}=getScale(n,l);(w>.005&&Math.abs(this.scaleX-w)>.005||y>.005&&Math.abs(this.scaleY-y)>.005)&&(this.scaleX=w,this.scaleY=y,g|=16,a=c=!0)}let d=(parseInt(A.paddingTop)||0)*this.scaleY,u=(parseInt(A.paddingBottom)||0)*this.scaleY;(this.paddingTop!=d||this.paddingBottom!=u)&&(this.paddingTop=d,this.paddingBottom=u,g|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(o.lineWrapping&&(c=!0),this.editorWidth=e.scrollDOM.clientWidth,g|=16);let f=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=f&&(this.scrollAnchorHeight=-1,this.scrollTop=f),this.scrolledToBottom=isScrolledToBottom(e.scrollDOM);let I=(this.printing?fullPixelRange:visiblePixelRange)(n,this.paddingTop),p=I.top-this.pixelViewport.top,m=I.bottom-this.pixelViewport.bottom;this.pixelViewport=I;let E=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(E!=this.inView&&(this.inView=E,E&&(c=!0)),!this.inView&&!this.scrollTarget&&!inWindow(e.dom))return 0;let B=l.width;if((this.contentDOMWidth!=B||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=l.width,this.editorHeight=e.scrollDOM.clientHeight,g|=16),c){let w=e.docView.measureVisibleLineHeights(this.viewport);if(o.mustRefreshForHeights(w)&&(a=!0),a||o.lineWrapping&&Math.abs(B-this.contentDOMWidth)>o.charWidth){let{lineHeight:y,charWidth:S,textHeight:D}=e.docView.measureTextSize();a=y>0&&o.refresh(s,y,S,D,Math.max(5,B/S),w),a&&(e.docView.minWidth=0,g|=16)}p>0&&m>0?h=Math.max(p,m):p<0&&m<0&&(h=Math.min(p,m)),clearHeightChangeFlag();for(let y of this.viewports){let S=y.from==this.viewport.from?w:e.docView.measureVisibleLineHeights(y);this.heightMap=(a?HeightMap.empty().applyChanges(this.stateDeco,Text.empty,this.heightOracle,[new ChangedRange(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(o,0,a,new MeasuredHeights(y.from,S))}heightChangeFlag&&(g|=2)}let Q=!this.viewportIsAppropriate(this.viewport,h)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return Q&&(g&2&&(g|=this.updateScaler()),this.viewport=this.getViewport(h,this.scrollTarget),g|=this.updateForViewport()),(g&2||Q)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(a?[]:this.lineGaps,e)),g|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),g}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,n){let A=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),o=this.heightMap,s=this.heightOracle,{visibleTop:a,visibleBottom:l}=this,c=new Viewport(o.lineAt(a-A*1e3,QueryType.ByHeight,s,0,0).from,o.lineAt(l+(1-A)*1e3,QueryType.ByHeight,s,0,0).to);if(n){let{head:g}=n.range;if(g<c.from||g>c.to){let h=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),d=o.lineAt(g,QueryType.ByPos,s,0,0),u;n.y=="center"?u=(d.top+d.bottom)/2-h/2:n.y=="start"||n.y=="nearest"&&g<c.from?u=d.top:u=d.bottom-h,c=new Viewport(o.lineAt(u-1e3/2,QueryType.ByHeight,s,0,0).from,o.lineAt(u+h+1e3/2,QueryType.ByHeight,s,0,0).to)}}return c}mapViewport(e,n){let A=n.mapPos(e.from,-1),o=n.mapPos(e.to,1);return new Viewport(this.heightMap.lineAt(A,QueryType.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(o,QueryType.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:e,to:n},A=0){if(!this.inView)return!0;let{top:o}=this.heightMap.lineAt(e,QueryType.ByPos,this.heightOracle,0,0),{bottom:s}=this.heightMap.lineAt(n,QueryType.ByPos,this.heightOracle,0,0),{visibleTop:a,visibleBottom:l}=this;return(e==0||o<=a-Math.max(10,Math.min(-A,250)))&&(n==this.state.doc.length||s>=l+Math.max(10,Math.min(A,250)))&&o>a-2*1e3&&s<l+2*1e3}mapLineGaps(e,n){if(!e.length||n.empty)return e;let A=[];for(let o of e)n.touchesRange(o.from,o.to)||A.push(new LineGap(n.mapPos(o.from),n.mapPos(o.to),o.size,o.displaySize));return A}ensureLineGaps(e,n){let A=this.heightOracle.lineWrapping,o=A?1e4:2e3,s=o>>1,a=o<<1;if(this.defaultTextDirection!=Direction.LTR&&!A)return[];let l=[],c=(h,d,u,f)=>{if(d-h<s)return;let I=this.state.selection.main,p=[I.from];I.empty||p.push(I.to);for(let E of p)if(E>h&&E<d){c(h,E-10,u,f),c(E+10,d,u,f);return}let m=find(e,E=>E.from>=u.from&&E.to<=u.to&&Math.abs(E.from-h)<s&&Math.abs(E.to-d)<s&&!p.some(B=>E.from<B&&E.to>B));if(!m){if(d<u.to&&n&&A&&n.visibleRanges.some(Q=>Q.from<=d&&Q.to>=d)){let Q=n.moveToLineBoundary(EditorSelection.cursor(d),!1,!0).head;Q>h&&(d=Q)}let E=this.gapSize(u,h,d,f),B=A||E<2e6?E:2e6;m=new LineGap(h,d,E,B)}l.push(m)},g=h=>{if(h.length<a||h.type!=BlockType.Text)return;let d=lineStructure(h.from,h.to,this.stateDeco);if(d.total<a)return;let u=this.scrollTarget?this.scrollTarget.range.head:null,f,I;if(A){let p=o/this.heightOracle.lineLength*this.heightOracle.lineHeight,m,E;if(u!=null){let B=findFraction(d,u),Q=((this.visibleBottom-this.visibleTop)/2+p)/h.height;m=B-Q,E=B+Q}else m=(this.visibleTop-h.top-p)/h.height,E=(this.visibleBottom-h.top+p)/h.height;f=findPosition(d,m),I=findPosition(d,E)}else{let p=d.total*this.heightOracle.charWidth,m=o*this.heightOracle.charWidth,E=0;if(p>2e6)for(let S of e)S.from>=h.from&&S.from<h.to&&S.size!=S.displaySize&&S.from*this.heightOracle.charWidth+E<this.pixelViewport.left&&(E=S.size-S.displaySize);let B=this.pixelViewport.left+E,Q=this.pixelViewport.right+E,w,y;if(u!=null){let S=findFraction(d,u),D=((Q-B)/2+m)/p;w=S-D,y=S+D}else w=(B-m)/p,y=(Q+m)/p;f=findPosition(d,w),I=findPosition(d,y)}f>h.from&&c(h.from,f,h,d),I<h.to&&c(I,h.to,h,d)};for(let h of this.viewportLines)Array.isArray(h.type)?h.type.forEach(g):g(h);return l}gapSize(e,n,A,o){let s=findFraction(o,A)-findFraction(o,n);return this.heightOracle.lineWrapping?e.height*s:o.total*this.heightOracle.charWidth*s}updateLineGaps(e){LineGap.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=Decoration.set(e.map(n=>n.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let n=this.stateDeco;this.lineGaps.length&&(n=n.concat(this.lineGapDeco));let A=[];RangeSet.spans(n,this.viewport.from,this.viewport.to,{span(s,a){A.push({from:s,to:a})},point(){}},20);let o=0;if(A.length!=this.visibleRanges.length)o=12;else for(let s=0;s<A.length&&!(o&8);s++){let a=this.visibleRanges[s],l=A[s];(a.from!=l.from||a.to!=l.to)&&(o|=4,e&&e.mapPos(a.from,-1)==l.from&&e.mapPos(a.to,1)==l.to||(o|=8))}return this.visibleRanges=A,o}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(n=>n.from<=e&&n.to>=e)||scaleBlock(this.heightMap.lineAt(e,QueryType.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(n=>n.top<=e&&n.bottom>=e)||scaleBlock(this.heightMap.lineAt(this.scaler.fromDOM(e),QueryType.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let n=this.lineBlockAtHeight(e+8);return n.from>=this.viewport.from||this.viewportLines[0].top-e>200?n:this.viewportLines[0]}elementAtHeight(e){return scaleBlock(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class Viewport{constructor(e,n){this.from=e,this.to=n}}function lineStructure(r,e,n){let A=[],o=r,s=0;return RangeSet.spans(n,r,e,{span(){},point(a,l){a>o&&(A.push({from:o,to:a}),s+=a-o),o=l}},20),o<e&&(A.push({from:o,to:e}),s+=e-o),{total:s,ranges:A}}function findPosition({total:r,ranges:e},n){if(n<=0)return e[0].from;if(n>=1)return e[e.length-1].to;let A=Math.floor(r*n);for(let o=0;;o++){let{from:s,to:a}=e[o],l=a-s;if(A<=l)return s+A;A-=l}}function findFraction(r,e){let n=0;for(let{from:A,to:o}of r.ranges){if(e<=o){n+=e-A;break}n+=o-A}return n/r.total}function find(r,e){for(let n of r)if(e(n))return n}const IdScaler={toDOM(r){return r},fromDOM(r){return r},scale:1,eq(r){return r==this}};class BigScaler{constructor(e,n,A){let o=0,s=0,a=0;this.viewports=A.map(({from:l,to:c})=>{let g=n.lineAt(l,QueryType.ByPos,e,0,0).top,h=n.lineAt(c,QueryType.ByPos,e,0,0).bottom;return o+=h-g,{from:l,to:c,top:g,bottom:h,domTop:0,domBottom:0}}),this.scale=(7e6-o)/(n.height-o);for(let l of this.viewports)l.domTop=a+(l.top-s)*this.scale,a=l.domBottom=l.domTop+(l.bottom-l.top),s=l.bottom}toDOM(e){for(let n=0,A=0,o=0;;n++){let s=n<this.viewports.length?this.viewports[n]:null;if(!s||e<s.top)return o+(e-A)*this.scale;if(e<=s.bottom)return s.domTop+(e-s.top);A=s.bottom,o=s.domBottom}}fromDOM(e){for(let n=0,A=0,o=0;;n++){let s=n<this.viewports.length?this.viewports[n]:null;if(!s||e<s.domTop)return A+(e-o)/this.scale;if(e<=s.domBottom)return s.top+(e-s.domTop);A=s.bottom,o=s.domBottom}}eq(e){return e instanceof BigScaler?this.scale==e.scale&&this.viewports.length==e.viewports.length&&this.viewports.every((n,A)=>n.from==e.viewports[A].from&&n.to==e.viewports[A].to):!1}}function scaleBlock(r,e){if(e.scale==1)return r;let n=e.toDOM(r.top),A=e.toDOM(r.bottom);return new BlockInfo(r.from,r.length,n,A-n,Array.isArray(r._content)?r._content.map(o=>scaleBlock(o,e)):r._content)}const theme=Facet.define({combine:r=>r.join(" ")}),darkTheme=Facet.define({combine:r=>r.indexOf(!0)>-1}),baseThemeID=StyleModule.newName(),baseLightID=StyleModule.newName(),baseDarkID=StyleModule.newName(),lightDarkIDs={"&light":"."+baseLightID,"&dark":"."+baseDarkID};function buildTheme(r,e,n){return new StyleModule(e,{finish(A){return/&/.test(A)?A.replace(/&\w*/,o=>{if(o=="&")return r;if(!n||!n[o])throw new RangeError(`Unsupported selector: ${o}`);return n[o]}):r+" "+A}})}const baseTheme$1$1=buildTheme("."+baseThemeID,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},lightDarkIDs),observeOptions={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},useCharData=browser$1.ie&&browser$1.ie_version<=11;class DOMObserver{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new DOMSelectionState,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(n=>{for(let A of n)this.queue.push(A);(browser$1.ie&&browser$1.ie_version<=11||browser$1.ios&&e.composing)&&n.some(A=>A.type=="childList"&&A.removedNodes.length||A.type=="characterData"&&A.oldValue.length>A.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&browser$1.android&&e.constructor.EDIT_CONTEXT!==!1&&!(browser$1.chrome&&browser$1.chrome_version<126)&&(this.editContext=new EditContextManager(e),e.state.facet(editable)&&(e.contentDOM.editContext=this.editContext.editContext)),useCharData&&(this.onCharData=n=>{this.queue.push({target:n.target,type:"characterData",oldValue:n.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var n;((n=this.view.docView)===null||n===void 0?void 0:n.lastUpdate)<Date.now()-75&&this.onResize()}),this.resizeScroll.observe(e.scrollDOM)),this.addWindowListeners(this.win=e.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(n=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),n.length>0&&n[n.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(n=>{n.length>0&&n[n.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((n,A)=>n!=e[A]))){this.gapIntersection.disconnect();for(let n of e)this.gapIntersection.observe(n);this.gaps=e}}onSelectionChange(e){let n=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:A}=this,o=this.selectionRange;if(A.state.facet(editable)?A.root.activeElement!=this.dom:!hasSelection(this.dom,o))return;let s=o.anchorNode&&A.docView.nearest(o.anchorNode);if(s&&s.ignoreEvent(e)){n||(this.selectionChanged=!1);return}(browser$1.ie&&browser$1.ie_version<=11||browser$1.android&&browser$1.chrome)&&!A.state.selection.main.empty&&o.focusNode&&isEquivalentPosition(o.focusNode,o.focusOffset,o.anchorNode,o.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,n=getSelection$1(e.root);if(!n)return!1;let A=browser$1.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&safariSelectionRangeHack(this.view,n)||n;if(!A||this.selectionRange.eq(A))return!1;let o=hasSelection(this.dom,A);return o&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime<Date.now()-300&&atElementStart(this.dom,A)?(this.view.inputState.lastFocusTime=0,e.docView.updateSelection(),!1):(this.selectionRange.setRange(A),o&&(this.selectionChanged=!0),!0)}setSelectionRange(e,n){this.selectionRange.set(e.node,e.offset,n.node,n.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let e=0,n=null;for(let A=this.dom;A;)if(A.nodeType==1)!n&&e<this.scrollTargets.length&&this.scrollTargets[e]==A?e++:n||(n=this.scrollTargets.slice(0,e)),n&&n.push(A),A=A.assignedSlot||A.parentNode;else if(A.nodeType==11)A=A.host;else break;if(e<this.scrollTargets.length&&!n&&(n=this.scrollTargets.slice(0,e)),n){for(let A of this.scrollTargets)A.removeEventListener("scroll",this.onScroll);for(let A of this.scrollTargets=n)A.addEventListener("scroll",this.onScroll)}}ignore(e){if(!this.active)return e();try{return this.stop(),e()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,observeOptions),useCharData&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),useCharData&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(e,n){var A;if(!this.delayedAndroidKey){let o=()=>{let s=this.delayedAndroidKey;s&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=s.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&s.force&&dispatchKey(this.dom,s.key,s.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(o)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:n,force:this.lastChange<Date.now()-50||!!(!((A=this.delayedAndroidKey)===null||A===void 0)&&A.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let n=-1,A=-1,o=!1;for(let s of e){let a=this.readMutation(s);a&&(a.typeOver&&(o=!0),n==-1?{from:n,to:A}=a:(n=Math.min(a.from,n),A=Math.max(a.to,A)))}return{from:n,to:A,typeOver:o}}readChange(){let{from:e,to:n,typeOver:A}=this.processRecords(),o=this.selectionChanged&&hasSelection(this.dom,this.selectionRange);if(e<0&&!o)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let s=new DOMChange(this.view,e,n,A);return this.view.docView.domChanged={newSel:s.newSel?s.newSel.main:null},s}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let n=this.readChange();if(!n)return this.view.requestMeasure(),!1;let A=this.view.state,o=applyDOMChange(this.view,n);return this.view.state==A&&(n.domChanged||n.newSel&&!n.newSel.main.eq(this.view.state.selection.main))&&this.view.update([]),o}readMutation(e){let n=this.view.docView.nearest(e.target);if(!n||n.ignoreMutation(e))return null;if(n.markDirty(e.type=="attributes"),e.type=="attributes"&&(n.flags|=4),e.type=="childList"){let A=findChild(n,e.previousSibling||e.target.previousSibling,-1),o=findChild(n,e.nextSibling||e.target.nextSibling,1);return{from:A?n.posAfter(A):n.posAtStart,to:o?n.posBefore(o):n.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:n.posAtStart,to:n.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(editable)!=e.state.facet(editable)&&(e.view.contentDOM.editContext=e.state.facet(editable)?this.editContext.editContext:null))}destroy(){var e,n,A;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(n=this.gapIntersection)===null||n===void 0||n.disconnect(),(A=this.resizeScroll)===null||A===void 0||A.disconnect();for(let o of this.scrollTargets)o.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}}function findChild(r,e,n){for(;e;){let A=ContentView.get(e);if(A&&A.parent==r)return A;let o=e.parentNode;e=o!=r.dom?o:n>0?e.nextSibling:e.previousSibling}return null}function buildSelectionRangeFromRange(r,e){let n=e.startContainer,A=e.startOffset,o=e.endContainer,s=e.endOffset,a=r.docView.domAtPos(r.state.selection.main.anchor);return isEquivalentPosition(a.node,a.offset,o,s)&&([n,A,o,s]=[o,s,n,A]),{anchorNode:n,anchorOffset:A,focusNode:o,focusOffset:s}}function safariSelectionRangeHack(r,e){if(e.getComposedRanges){let o=e.getComposedRanges(r.root)[0];if(o)return buildSelectionRangeFromRange(r,o)}let n=null;function A(o){o.preventDefault(),o.stopImmediatePropagation(),n=o.getTargetRanges()[0]}return r.contentDOM.addEventListener("beforeinput",A,!0),r.dom.ownerDocument.execCommand("indent"),r.contentDOM.removeEventListener("beforeinput",A,!0),n?buildSelectionRangeFromRange(r,n):null}class EditContextManager{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let n=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=A=>{let o=e.state.selection.main,{anchor:s,head:a}=o,l=this.toEditorPos(A.updateRangeStart),c=this.toEditorPos(A.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:A.updateRangeStart,editorBase:l,drifted:!1});let g={from:l,to:c,insert:Text.of(A.text.split(`
24
+ `))};if(g.from==this.from&&s<this.from?g.from=s:g.to==this.to&&s>this.to&&(g.to=s),g.from==g.to&&!g.insert.length){let h=EditorSelection.single(this.toEditorPos(A.selectionStart),this.toEditorPos(A.selectionEnd));h.main.eq(o)||e.dispatch({selection:h,userEvent:"select"});return}if((browser$1.mac||browser$1.android)&&g.from==a-1&&/^\. ?$/.test(A.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(g={from:l,to:c,insert:Text.of([A.text.replace("."," ")])}),this.pendingContextChange=g,!e.state.readOnly){let h=this.to-this.from+(g.to-g.from+g.insert.length);applyDOMChangeInner(e,g,EditorSelection.single(this.toEditorPos(A.selectionStart,h),this.toEditorPos(A.selectionEnd,h)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state))},this.handlers.characterboundsupdate=A=>{let o=[],s=null;for(let a=this.toEditorPos(A.rangeStart),l=this.toEditorPos(A.rangeEnd);a<l;a++){let c=e.coordsForChar(a);s=c&&new DOMRect(c.left,c.top,c.right-c.left,c.bottom-c.top)||s||new DOMRect,o.push(s)}n.updateCharacterBounds(A.rangeStart,o)},this.handlers.textformatupdate=A=>{let o=[];for(let s of A.getTextFormats()){let a=s.underlineStyle,l=s.underlineThickness;if(a!="None"&&l!="None"){let c=this.toEditorPos(s.rangeStart),g=this.toEditorPos(s.rangeEnd);if(c<g){let h=`text-decoration: underline ${a=="Dashed"?"dashed ":a=="Squiggle"?"wavy ":""}${l=="Thin"?1:2}px`;o.push(Decoration.mark({attributes:{style:h}}).range(c,g))}}}e.dispatch({effects:setEditContextFormatting.of(Decoration.set(o))})},this.handlers.compositionstart=()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:A}=this.composing;this.composing=null,A&&this.reset(e.state)}};for(let A in this.handlers)n.addEventListener(A,this.handlers[A]);this.measureReq={read:A=>{this.editContext.updateControlBounds(A.contentDOM.getBoundingClientRect());let o=getSelection$1(A.root);o&&o.rangeCount&&this.editContext.updateSelectionBounds(o.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let n=0,A=!1,o=this.pendingContextChange;return e.changes.iterChanges((s,a,l,c,g)=>{if(A)return;let h=g.length-(a-s);if(o&&a>=o.to)if(o.from==s&&o.to==a&&o.insert.eq(g)){o=this.pendingContextChange=null,n+=h,this.to+=h;return}else o=null,this.revertPending(e.state);if(s+=n,a+=n,a<=this.from)this.from+=h,this.to+=h;else if(s<this.to){if(s<this.from||a>this.to||this.to-this.from+g.length>3e4){A=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(a),g.toString()),this.to+=h}n+=h}),o&&!A&&this.revertPending(e.state),!A}update(e){let n=this.pendingContextChange,A=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(A.from,A.to)&&e.transactions.some(o=>!o.isUserEvent("input.type")&&o.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||n)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:n}=e.selection.main;this.from=Math.max(0,n-1e4),this.to=Math.min(e.doc.length,n+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let n=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(n.from),this.toContextPos(n.from+n.insert.length),e.doc.sliceString(n.from,n.to))}setSelection(e){let{main:n}=e.selection,A=this.toContextPos(Math.max(this.from,Math.min(this.to,n.anchor))),o=this.toContextPos(n.head);(this.editContext.selectionStart!=A||this.editContext.selectionEnd!=o)&&this.editContext.updateSelection(A,o)}rangeIsValid(e){let{head:n}=e.selection.main;return!(this.from>0&&n-this.from<500||this.to<e.doc.length&&this.to-n<500||this.to-this.from>1e4*3)}toEditorPos(e,n=this.to-this.from){e=Math.min(e,n);let A=this.composing;return A&&A.drifted?A.editorBase+(e-A.contextBase):e+this.from}toContextPos(e){let n=this.composing;return n&&n.drifted?n.contextBase+(e-n.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}}class EditorView{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var n;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:A}=e;this.dispatchTransactions=e.dispatchTransactions||A&&(o=>o.forEach(s=>A(s,this)))||(o=>this.update(o)),this.dispatch=this.dispatch.bind(this),this._root=e.root||getRoot(e.parent)||document,this.viewState=new ViewState(e.state||EditorState.create(e)),e.scrollTo&&e.scrollTo.is(scrollIntoView$1)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(viewPlugin).map(o=>new PluginInstance(o));for(let o of this.plugins)o.update(this);this.observer=new DOMObserver(this),this.inputState=new InputState(this),this.inputState.ensureHandlers(this.plugins),this.docView=new DocView$1(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((n=document.fonts)===null||n===void 0)&&n.ready&&document.fonts.ready.then(()=>this.requestMeasure())}dispatch(...e){let n=e.length==1&&e[0]instanceof Transaction?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(n,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let n=!1,A=!1,o,s=this.state;for(let u of e){if(u.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=u.state}if(this.destroyed){this.viewState.state=s;return}let a=this.hasFocus,l=0,c=null;e.some(u=>u.annotation(isFocusChange))?(this.inputState.notifiedFocused=a,l=1):a!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=a,c=focusChangeTransaction(s,a),c||(l=1));let g=this.observer.delayedAndroidKey,h=null;if(g?(this.observer.clearDelayedAndroidKey(),h=this.observer.readChange(),(h&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(h=null)):this.observer.clear(),s.facet(EditorState.phrases)!=this.state.facet(EditorState.phrases))return this.setState(s);o=ViewUpdate.create(this,s,e),o.flags|=l;let d=this.viewState.scrollTarget;try{this.updateState=2;for(let u of e){if(d&&(d=d.map(u.changes)),u.scrollIntoView){let{main:f}=u.state.selection;d=new ScrollTarget(f.empty?f:EditorSelection.cursor(f.head,f.head>f.anchor?-1:1))}for(let f of u.effects)f.is(scrollIntoView$1)&&(d=f.value.clip(this.state))}this.viewState.update(o,d),this.bidiCache=CachedOrder.update(this.bidiCache,o.changes),o.empty||(this.updatePlugins(o),this.inputState.update(o)),n=this.docView.update(o),this.state.facet(styleModule)!=this.styleModules&&this.mountStyles(),A=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(n,e.some(u=>u.isUserEvent("select.pointer")))}finally{this.updateState=0}if(o.startState.facet(theme)!=o.state.facet(theme)&&(this.viewState.mustMeasureContent=!0),(n||A||d||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),n&&this.docViewUpdate(),!o.empty)for(let u of this.state.facet(updateListener))try{u(o)}catch(f){logException(this.state,f,"update listener")}(c||h)&&Promise.resolve().then(()=>{c&&this.state==c.startState&&this.dispatch(c),h&&!applyDOMChange(this,h)&&g.force&&dispatchKey(this.contentDOM,g.key,g.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let n=this.hasFocus;try{for(let A of this.plugins)A.destroy(this);this.viewState=new ViewState(e),this.plugins=e.facet(viewPlugin).map(A=>new PluginInstance(A)),this.pluginMap.clear();for(let A of this.plugins)A.update(this);this.docView.destroy(),this.docView=new DocView$1(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}n&&this.focus(),this.requestMeasure()}updatePlugins(e){let n=e.startState.facet(viewPlugin),A=e.state.facet(viewPlugin);if(n!=A){let o=[];for(let s of A){let a=n.indexOf(s);if(a<0)o.push(new PluginInstance(s));else{let l=this.plugins[a];l.mustUpdate=e,o.push(l)}}for(let s of this.plugins)s.mustUpdate!=e&&s.destroy(this);this.plugins=o,this.pluginMap.clear()}else for(let o of this.plugins)o.mustUpdate=e;for(let o=0;o<this.plugins.length;o++)this.plugins[o].update(this);n!=A&&this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let e of this.plugins){let n=e.value;if(n&&n.docViewUpdate)try{n.docViewUpdate(this)}catch(A){logException(this.state,A,"doc view update listener")}}}measure(e=!0){if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let n=null,A=this.scrollDOM,o=A.scrollTop*this.scaleY,{scrollAnchorPos:s,scrollAnchorHeight:a}=this.viewState;Math.abs(o-this.viewState.scrollTop)>1&&(a=-1),this.viewState.scrollAnchorHeight=-1;try{for(let l=0;;l++){if(a<0)if(isScrolledToBottom(A))s=-1,a=this.viewState.heightMap.height;else{let f=this.viewState.scrollAnchorAt(o);s=f.from,a=f.top}this.updateState=1;let c=this.viewState.measure(this);if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(l>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let g=[];c&4||([this.measureRequests,g]=[g,this.measureRequests]);let h=g.map(f=>{try{return f.read(this)}catch(I){return logException(this.state,I),BadMeasure}}),d=ViewUpdate.create(this,this.state,[]),u=!1;d.flags|=c,n?n.flags|=c:n=d,this.updateState=2,d.empty||(this.updatePlugins(d),this.inputState.update(d),this.updateAttrs(),u=this.docView.update(d),u&&this.docViewUpdate());for(let f=0;f<g.length;f++)if(h[f]!=BadMeasure)try{let I=g[f];I.write&&I.write(h[f],this)}catch(I){logException(this.state,I)}if(u&&this.docView.updateSelection(!0),!d.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight)if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,a=-1;continue}else{let I=(s<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(s).top)-a;if(I>1||I<-1){o=o+I,A.scrollTop=o/this.scaleY,a=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(n&&!n.empty)for(let l of this.state.facet(updateListener))l(n)}get themeClasses(){return baseThemeID+" "+(this.state.facet(darkTheme)?baseDarkID:baseLightID)+" "+this.state.facet(theme)}updateAttrs(){let e=attrsFromFacet(this,editorAttributes,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),n={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(editable)?"true":"false",class:"cm-content",style:`${browser$1.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(n["aria-readonly"]="true"),attrsFromFacet(this,contentAttributes,n);let A=this.observer.ignore(()=>{let o=updateAttrs(this.contentDOM,this.contentAttrs,n),s=updateAttrs(this.dom,this.editorAttrs,e);return o||s});return this.editorAttrs=e,this.contentAttrs=n,A}showAnnouncements(e){let n=!0;for(let A of e)for(let o of A.effects)if(o.is(EditorView.announce)){n&&(this.announceDOM.textContent=""),n=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=o.value}}mountStyles(){this.styleModules=this.state.facet(styleModule);let e=this.state.facet(EditorView.cspNonce);StyleModule.mount(this.root,this.styleModules.concat(baseTheme$1$1).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let n=0;n<this.measureRequests.length;n++)if(this.measureRequests[n].key===e.key){this.measureRequests[n]=e;return}}this.measureRequests.push(e)}}plugin(e){let n=this.pluginMap.get(e);return(n===void 0||n&&n.plugin!=e)&&this.pluginMap.set(e,n=this.plugins.find(A=>A.plugin==e)||null),n&&n.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,n,A){return skipAtoms(this,e,moveByChar(this,e,n,A))}moveByGroup(e,n){return skipAtoms(this,e,moveByChar(this,e,n,A=>byGroup(this,e.head,A)))}visualLineSide(e,n){let A=this.bidiSpans(e),o=this.textDirectionAt(e.from),s=A[n?A.length-1:0];return EditorSelection.cursor(s.side(n,o)+e.from,s.forward(!n,o)?1:-1)}moveToLineBoundary(e,n,A=!0){return moveToLineBoundary(this,e,n,A)}moveVertically(e,n,A){return skipAtoms(this,e,moveVertically(this,e,n,A))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,n=0){return this.docView.posFromDOM(e,n)}posAtCoords(e,n=!0){return this.readMeasured(),posAtCoords(this,e,n)}coordsAtPos(e,n=1){this.readMeasured();let A=this.docView.coordsAt(e,n);if(!A||A.left==A.right)return A;let o=this.state.doc.lineAt(e),s=this.bidiSpans(o),a=s[BidiSpan.find(s,e-o.from,-1,n)];return flattenRect(A,a.dir==Direction.LTR==n>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(perLineTextDirection)||e<this.viewport.from||e>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>MaxBidiLine)return trivialOrder(e.length);let n=this.textDirectionAt(e.from),A;for(let s of this.bidiCache)if(s.from==e.from&&s.dir==n&&(s.fresh||isolatesEq(s.isolates,A=getIsolatedRanges(this,e))))return s.order;A||(A=getIsolatedRanges(this,e));let o=computeOrder(e.text,n,A);return this.bidiCache.push(new CachedOrder(e.from,e.to,n,A,!0,o)),o}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||browser$1.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{focusPreventScroll(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,n={}){return scrollIntoView$1.of(new ScrollTarget(typeof e=="number"?EditorSelection.cursor(e):e,n.y,n.x,n.yMargin,n.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:n}=this.scrollDOM,A=this.viewState.scrollAnchorAt(e);return scrollIntoView$1.of(new ScrollTarget(EditorSelection.cursor(A.from),"start","start",A.top-e,n,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return ViewPlugin.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return ViewPlugin.define(()=>({}),{eventObservers:e})}static theme(e,n){let A=StyleModule.newName(),o=[theme.of(A),styleModule.of(buildTheme(`.${A}`,e))];return n&&n.dark&&o.push(darkTheme.of(!0)),o}static baseTheme(e){return Prec.lowest(styleModule.of(buildTheme("."+baseThemeID,e,lightDarkIDs)))}static findFromDOM(e){var n;let A=e.querySelector(".cm-content"),o=A&&ContentView.get(A)||ContentView.get(e);return((n=o?.rootView)===null||n===void 0?void 0:n.view)||null}}EditorView.styleModule=styleModule;EditorView.inputHandler=inputHandler$1;EditorView.clipboardInputFilter=clipboardInputFilter;EditorView.clipboardOutputFilter=clipboardOutputFilter;EditorView.scrollHandler=scrollHandler;EditorView.focusChangeEffect=focusChangeEffect;EditorView.perLineTextDirection=perLineTextDirection;EditorView.exceptionSink=exceptionSink;EditorView.updateListener=updateListener;EditorView.editable=editable;EditorView.mouseSelectionStyle=mouseSelectionStyle;EditorView.dragMovesSelection=dragMovesSelection$1;EditorView.clickAddsSelectionRange=clickAddsSelectionRange;EditorView.decorations=decorations;EditorView.outerDecorations=outerDecorations;EditorView.atomicRanges=atomicRanges;EditorView.bidiIsolatedRanges=bidiIsolatedRanges;EditorView.scrollMargins=scrollMargins;EditorView.darkTheme=darkTheme;EditorView.cspNonce=Facet.define({combine:r=>r.length?r[0]:""});EditorView.contentAttributes=contentAttributes;EditorView.editorAttributes=editorAttributes;EditorView.lineWrapping=EditorView.contentAttributes.of({class:"cm-lineWrapping"});EditorView.announce=StateEffect.define();const MaxBidiLine=4096,BadMeasure={};class CachedOrder{constructor(e,n,A,o,s,a){this.from=e,this.to=n,this.dir=A,this.isolates=o,this.fresh=s,this.order=a}static update(e,n){if(n.empty&&!e.some(s=>s.fresh))return e;let A=[],o=e.length?e[e.length-1].dir:Direction.LTR;for(let s=Math.max(0,e.length-10);s<e.length;s++){let a=e[s];a.dir==o&&!n.touchesRange(a.from,a.to)&&A.push(new CachedOrder(n.mapPos(a.from,1),n.mapPos(a.to,-1),a.dir,a.isolates,!1,a.order))}return A}}function attrsFromFacet(r,e,n){for(let A=r.state.facet(e),o=A.length-1;o>=0;o--){let s=A[o],a=typeof s=="function"?s(r):s;a&&combineAttrs(a,n)}return n}const currentPlatform=browser$1.mac?"mac":browser$1.windows?"win":browser$1.linux?"linux":"key";function normalizeKeyName(r,e){const n=r.split(/-(?!$)/);let A=n[n.length-1];A=="Space"&&(A=" ");let o,s,a,l;for(let c=0;c<n.length-1;++c){const g=n[c];if(/^(cmd|meta|m)$/i.test(g))l=!0;else if(/^a(lt)?$/i.test(g))o=!0;else if(/^(c|ctrl|control)$/i.test(g))s=!0;else if(/^s(hift)?$/i.test(g))a=!0;else if(/^mod$/i.test(g))e=="mac"?l=!0:s=!0;else throw new Error("Unrecognized modifier name: "+g)}return o&&(A="Alt-"+A),s&&(A="Ctrl-"+A),l&&(A="Meta-"+A),a&&(A="Shift-"+A),A}function modifiers(r,e,n){return e.altKey&&(r="Alt-"+r),e.ctrlKey&&(r="Ctrl-"+r),e.metaKey&&(r="Meta-"+r),n!==!1&&e.shiftKey&&(r="Shift-"+r),r}const handleKeyEvents=Prec.default(EditorView.domEventHandlers({keydown(r,e){return runHandlers(getKeymap(e.state),r,e,"editor")}})),keymap=Facet.define({enables:handleKeyEvents}),Keymaps=new WeakMap;function getKeymap(r){let e=r.facet(keymap),n=Keymaps.get(e);return n||Keymaps.set(e,n=buildKeymap(e.reduce((A,o)=>A.concat(o),[]))),n}let storedPrefix=null;const PrefixTimeout=4e3;function buildKeymap(r,e=currentPlatform){let n=Object.create(null),A=Object.create(null),o=(a,l)=>{let c=A[a];if(c==null)A[a]=l;else if(c!=l)throw new Error("Key binding "+a+" is used both as a regular binding and as a multi-stroke prefix")},s=(a,l,c,g,h)=>{var d,u;let f=n[a]||(n[a]=Object.create(null)),I=l.split(/ (?!$)/).map(E=>normalizeKeyName(E,e));for(let E=1;E<I.length;E++){let B=I.slice(0,E).join(" ");o(B,!0),f[B]||(f[B]={preventDefault:!0,stopPropagation:!1,run:[Q=>{let w=storedPrefix={view:Q,prefix:B,scope:a};return setTimeout(()=>{storedPrefix==w&&(storedPrefix=null)},PrefixTimeout),!0}]})}let p=I.join(" ");o(p,!1);let m=f[p]||(f[p]={preventDefault:!1,stopPropagation:!1,run:((u=(d=f._any)===null||d===void 0?void 0:d.run)===null||u===void 0?void 0:u.slice())||[]});c&&m.run.push(c),g&&(m.preventDefault=!0),h&&(m.stopPropagation=!0)};for(let a of r){let l=a.scope?a.scope.split(" "):["editor"];if(a.any)for(let g of l){let h=n[g]||(n[g]=Object.create(null));h._any||(h._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:d}=a;for(let u in h)h[u].run.push(f=>d(f,currentKeyEvent))}let c=a[e]||a.key;if(c)for(let g of l)s(g,c,a.run,a.preventDefault,a.stopPropagation),a.shift&&s(g,"Shift-"+c,a.shift,a.preventDefault,a.stopPropagation)}return n}let currentKeyEvent=null;function runHandlers(r,e,n,A){currentKeyEvent=e;let o=keyName(e),s=codePointAt(o,0),a=codePointSize(s)==o.length&&o!=" ",l="",c=!1,g=!1,h=!1;storedPrefix&&storedPrefix.view==n&&storedPrefix.scope==A&&(l=storedPrefix.prefix+" ",modifierCodes.indexOf(e.keyCode)<0&&(g=!0,storedPrefix=null));let d=new Set,u=m=>{if(m){for(let E of m.run)if(!d.has(E)&&(d.add(E),E(n)))return m.stopPropagation&&(h=!0),!0;m.preventDefault&&(m.stopPropagation&&(h=!0),g=!0)}return!1},f=r[A],I,p;return f&&(u(f[l+modifiers(o,e,!a)])?c=!0:a&&(e.altKey||e.metaKey||e.ctrlKey)&&!(browser$1.windows&&e.ctrlKey&&e.altKey)&&!(browser$1.mac&&e.altKey&&!e.ctrlKey)&&(I=base[e.keyCode])&&I!=o?(u(f[l+modifiers(I,e,!0)])||e.shiftKey&&(p=shift[e.keyCode])!=o&&p!=I&&u(f[l+modifiers(p,e,!1)]))&&(c=!0):a&&e.shiftKey&&u(f[l+modifiers(o,e,!0)])&&(c=!0),!c&&u(f._any)&&(c=!0)),g&&(c=!0),c&&h&&e.stopPropagation(),currentKeyEvent=null,c}class RectangleMarker{constructor(e,n,A,o,s){this.className=e,this.left=n,this.top=A,this.width=o,this.height=s}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,n){return n.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,n,A){if(A.empty){let o=e.coordsAtPos(A.head,A.assoc||1);if(!o)return[];let s=getBase(e);return[new RectangleMarker(n,o.left-s.left,o.top-s.top,null,o.bottom-o.top)]}else return rectanglesForRange(e,n,A)}}function getBase(r){let e=r.scrollDOM.getBoundingClientRect();return{left:(r.textDirection==Direction.LTR?e.left:e.right-r.scrollDOM.clientWidth*r.scaleX)-r.scrollDOM.scrollLeft*r.scaleX,top:e.top-r.scrollDOM.scrollTop*r.scaleY}}function wrappedLine(r,e,n,A){let o=r.coordsAtPos(e,n*2);if(!o)return A;let s=r.dom.getBoundingClientRect(),a=(o.top+o.bottom)/2,l=r.posAtCoords({x:s.left+1,y:a}),c=r.posAtCoords({x:s.right-1,y:a});return l==null||c==null?A:{from:Math.max(A.from,Math.min(l,c)),to:Math.min(A.to,Math.max(l,c))}}function rectanglesForRange(r,e,n){if(n.to<=r.viewport.from||n.from>=r.viewport.to)return[];let A=Math.max(n.from,r.viewport.from),o=Math.min(n.to,r.viewport.to),s=r.textDirection==Direction.LTR,a=r.contentDOM,l=a.getBoundingClientRect(),c=getBase(r),g=a.querySelector(".cm-line"),h=g&&window.getComputedStyle(g),d=l.left+(h?parseInt(h.paddingLeft)+Math.min(0,parseInt(h.textIndent)):0),u=l.right-(h?parseInt(h.paddingRight):0),f=blockAt(r,A,1),I=blockAt(r,o,-1),p=f.type==BlockType.Text?f:null,m=I.type==BlockType.Text?I:null;if(p&&(r.lineWrapping||f.widgetLineBreaks)&&(p=wrappedLine(r,A,1,p)),m&&(r.lineWrapping||I.widgetLineBreaks)&&(m=wrappedLine(r,o,-1,m)),p&&m&&p.from==m.from&&p.to==m.to)return B(Q(n.from,n.to,p));{let y=p?Q(n.from,null,p):w(f,!1),S=m?Q(null,n.to,m):w(I,!0),D=[];return(p||f).to<(m||I).from-(p&&m?1:0)||f.widgetLineBreaks>1&&y.bottom+r.defaultLineHeight/2<S.top?D.push(E(d,y.bottom,u,S.top)):y.bottom<S.top&&r.elementAtHeight((y.bottom+S.top)/2).type==BlockType.Text&&(y.bottom=S.top=(y.bottom+S.top)/2),B(y).concat(D).concat(B(S))}function E(y,S,D,_){return new RectangleMarker(e,y-c.left,S-c.top,D-y,_-S)}function B({top:y,bottom:S,horizontal:D}){let _=[];for(let M=0;M<D.length;M+=2)_.push(E(D[M],y,D[M+1],S));return _}function Q(y,S,D){let _=1e9,M=-1e9,v=[];function F(L,G,K,O,oe){let j=r.coordsAtPos(L,L==D.to?-2:2),Ae=r.coordsAtPos(K,K==D.from?2:-2);!j||!Ae||(_=Math.min(j.top,Ae.top,_),M=Math.max(j.bottom,Ae.bottom,M),oe==Direction.LTR?v.push(s&&G?d:j.left,s&&O?u:Ae.right):v.push(!s&&O?d:Ae.left,!s&&G?u:j.right))}let R=y??D.from,N=S??D.to;for(let L of r.visibleRanges)if(L.to>R&&L.from<N)for(let G=Math.max(L.from,R),K=Math.min(L.to,N);;){let O=r.state.doc.lineAt(G);for(let oe of r.bidiSpans(O)){let j=oe.from+O.from,Ae=oe.to+O.from;if(j>=K)break;Ae>G&&F(Math.max(j,G),y==null&&j<=R,Math.min(Ae,K),S==null&&Ae>=N,oe.dir)}if(G=O.to+1,G>=K)break}return v.length==0&&F(R,y==null,N,S==null,r.textDirection),{top:_,bottom:M,horizontal:v}}function w(y,S){let D=l.top+(S?y.top:y.bottom);return{top:D,bottom:D,horizontal:[]}}}function sameMarker(r,e){return r.constructor==e.constructor&&r.eq(e)}class LayerView{constructor(e,n){this.view=e,this.layer=n,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),n.above&&this.dom.classList.add("cm-layer-above"),n.class&&this.dom.classList.add(n.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),n.mount&&n.mount(this.dom,e)}update(e){e.startState.facet(layerOrder)!=e.state.facet(layerOrder)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let n=0,A=e.facet(layerOrder);for(;n<A.length&&A[n]!=this.layer;)n++;this.dom.style.zIndex=String((this.layer.above?150:-1)-n)}measure(){return this.layer.markers(this.view)}scale(){let{scaleX:e,scaleY:n}=this.view;(e!=this.scaleX||n!=this.scaleY)&&(this.scaleX=e,this.scaleY=n,this.dom.style.transform=`scale(${1/e}, ${1/n})`)}draw(e){if(e.length!=this.drawn.length||e.some((n,A)=>!sameMarker(n,this.drawn[A]))){let n=this.dom.firstChild,A=0;for(let o of e)o.update&&n&&o.constructor&&this.drawn[A].constructor&&o.update(n,this.drawn[A])?(n=n.nextSibling,A++):this.dom.insertBefore(o.draw(),n);for(;n;){let o=n.nextSibling;n.remove(),n=o}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const layerOrder=Facet.define();function layer(r){return[ViewPlugin.define(e=>new LayerView(e,r)),layerOrder.of(r)]}const selectionConfig=Facet.define({combine(r){return combineConfig(r,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,n)=>Math.min(e,n),drawRangeCursor:(e,n)=>e||n})}});function drawSelection(r={}){return[selectionConfig.of(r),cursorLayer,selectionLayer,hideNativeSelection,nativeSelectionHidden.of(!0)]}function configChanged(r){return r.startState.facet(selectionConfig)!=r.state.facet(selectionConfig)}const cursorLayer=layer({above:!0,markers(r){let{state:e}=r,n=e.facet(selectionConfig),A=[];for(let o of e.selection.ranges){let s=o==e.selection.main;if(o.empty||n.drawRangeCursor){let a=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",l=o.empty?o:EditorSelection.cursor(o.head,o.head>o.anchor?-1:1);for(let c of RectangleMarker.forRange(r,a,l))A.push(c)}}return A},update(r,e){r.transactions.some(A=>A.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let n=configChanged(r);return n&&setBlinkRate(r.state,e),r.docChanged||r.selectionSet||n},mount(r,e){setBlinkRate(e.state,r)},class:"cm-cursorLayer"});function setBlinkRate(r,e){e.style.animationDuration=r.facet(selectionConfig).cursorBlinkRate+"ms"}const selectionLayer=layer({above:!1,markers(r){return r.state.selection.ranges.map(e=>e.empty?[]:RectangleMarker.forRange(r,"cm-selectionBackground",e)).reduce((e,n)=>e.concat(n))},update(r,e){return r.docChanged||r.selectionSet||r.viewportChanged||configChanged(r)},class:"cm-selectionLayer"}),hideNativeSelection=Prec.highest(EditorView.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),MaxOff=2e3;function rectangleFor(r,e,n){let A=Math.min(e.line,n.line),o=Math.max(e.line,n.line),s=[];if(e.off>MaxOff||n.off>MaxOff||e.col<0||n.col<0){let a=Math.min(e.off,n.off),l=Math.max(e.off,n.off);for(let c=A;c<=o;c++){let g=r.doc.line(c);g.length<=l&&s.push(EditorSelection.range(g.from+a,g.to+l))}}else{let a=Math.min(e.col,n.col),l=Math.max(e.col,n.col);for(let c=A;c<=o;c++){let g=r.doc.line(c),h=findColumn(g.text,a,r.tabSize,!0);if(h<0)s.push(EditorSelection.cursor(g.to));else{let d=findColumn(g.text,l,r.tabSize);s.push(EditorSelection.range(g.from+h,g.from+d))}}}return s}function absoluteColumn(r,e){let n=r.coordsAtPos(r.viewport.from);return n?Math.round(Math.abs((n.left-e)/r.defaultCharacterWidth)):-1}function getPos(r,e){let n=r.posAtCoords({x:e.clientX,y:e.clientY},!1),A=r.state.doc.lineAt(n),o=n-A.from,s=o>MaxOff?-1:o==A.length?absoluteColumn(r,e.clientX):countColumn(A.text,r.state.tabSize,n-A.from);return{line:A.number,col:s,off:o}}function rectangleSelectionStyle(r,e){let n=getPos(r,e),A=r.state.selection;return n?{update(o){if(o.docChanged){let s=o.changes.mapPos(o.startState.doc.line(n.line).from),a=o.state.doc.lineAt(s);n={line:a.number,col:n.col,off:Math.min(n.off,a.length)},A=A.map(o.changes)}},get(o,s,a){let l=getPos(r,o);if(!l)return A;let c=rectangleFor(r.state,n,l);return c.length?a?EditorSelection.create(c.concat(A.ranges)):EditorSelection.create(c):A}}:null}function rectangularSelection(r){let e=(n=>n.altKey&&n.button==0);return EditorView.mouseSelectionStyle.of((n,A)=>e(A)?rectangleSelectionStyle(n,A):null)}const Outside="-10000px";class TooltipViewManager{constructor(e,n,A,o){this.facet=n,this.createTooltipView=A,this.removeTooltipView=o,this.input=e.state.facet(n),this.tooltips=this.input.filter(a=>a);let s=null;this.tooltipViews=this.tooltips.map(a=>s=A(a,s))}update(e,n){var A;let o=e.state.facet(this.facet),s=o.filter(c=>c);if(o===this.input){for(let c of this.tooltipViews)c.update&&c.update(e);return!1}let a=[],l=n?[]:null;for(let c=0;c<s.length;c++){let g=s[c],h=-1;if(g){for(let d=0;d<this.tooltips.length;d++){let u=this.tooltips[d];u&&u.create==g.create&&(h=d)}if(h<0)a[c]=this.createTooltipView(g,c?a[c-1]:null),l&&(l[c]=!!g.above);else{let d=a[c]=this.tooltipViews[h];l&&(l[c]=n[h]),d.update&&d.update(e)}}}for(let c of this.tooltipViews)a.indexOf(c)<0&&(this.removeTooltipView(c),(A=c.destroy)===null||A===void 0||A.call(c));return n&&(l.forEach((c,g)=>n[g]=c),n.length=l.length),this.input=o,this.tooltips=s,this.tooltipViews=a,!0}}function windowSpace(r){let e=r.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}const tooltipConfig=Facet.define({combine:r=>{var e,n,A;return{position:browser$1.ios?"absolute":((e=r.find(o=>o.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((n=r.find(o=>o.parent))===null||n===void 0?void 0:n.parent)||null,tooltipSpace:((A=r.find(o=>o.tooltipSpace))===null||A===void 0?void 0:A.tooltipSpace)||windowSpace}}}),knownHeight=new WeakMap,tooltipPlugin=ViewPlugin.fromClass(class{constructor(r){this.view=r,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=r.state.facet(tooltipConfig);this.position=e.position,this.parent=e.parent,this.classes=r.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new TooltipViewManager(r,showTooltip,(n,A)=>this.createTooltip(n,A),n=>{this.resizeObserver&&this.resizeObserver.unobserve(n.dom),n.dom.remove()}),this.above=this.manager.tooltips.map(n=>!!n.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(n=>{Date.now()>this.lastTransaction-50&&n.length>0&&n[n.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),r.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let r of this.manager.tooltipViews)this.intersectionObserver.observe(r.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(r){r.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(r,this.above);e&&this.observeIntersection();let n=e||r.geometryChanged,A=r.state.facet(tooltipConfig);if(A.position!=this.position&&!this.madeAbsolute){this.position=A.position;for(let o of this.manager.tooltipViews)o.dom.style.position=this.position;n=!0}if(A.parent!=this.parent){this.parent&&this.container.remove(),this.parent=A.parent,this.createContainer();for(let o of this.manager.tooltipViews)this.container.appendChild(o.dom);n=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);n&&this.maybeMeasure()}createTooltip(r,e){let n=r.create(this.view),A=e?e.dom:null;if(n.dom.classList.add("cm-tooltip"),r.arrow&&!n.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let o=document.createElement("div");o.className="cm-tooltip-arrow",n.dom.appendChild(o)}return n.dom.style.position=this.position,n.dom.style.top=Outside,n.dom.style.left="0px",this.container.insertBefore(n.dom,A),n.mount&&n.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(n.dom),n}destroy(){var r,e,n;this.view.win.removeEventListener("resize",this.measureSoon);for(let A of this.manager.tooltipViews)A.dom.remove(),(r=A.destroy)===null||r===void 0||r.call(A);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(n=this.intersectionObserver)===null||n===void 0||n.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let r=1,e=1,n=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:s}=this.manager.tooltipViews[0];if(browser$1.gecko)n=s.offsetParent!=this.container.ownerDocument.body;else if(s.style.top==Outside&&s.style.left=="0px"){let a=s.getBoundingClientRect();n=Math.abs(a.top+1e4)>1||Math.abs(a.left)>1}}if(n||this.position=="absolute")if(this.parent){let s=this.parent.getBoundingClientRect();s.width&&s.height&&(r=s.width/this.parent.offsetWidth,e=s.height/this.parent.offsetHeight)}else({scaleX:r,scaleY:e}=this.view.viewState);let A=this.view.scrollDOM.getBoundingClientRect(),o=getScrollMargins(this.view);return{visible:{left:A.left+o.left,top:A.top+o.top,right:A.right-o.right,bottom:A.bottom-o.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((s,a)=>{let l=this.manager.tooltipViews[a];return l.getCoords?l.getCoords(s.pos):this.view.coordsAtPos(s.pos)}),size:this.manager.tooltipViews.map(({dom:s})=>s.getBoundingClientRect()),space:this.view.state.facet(tooltipConfig).tooltipSpace(this.view),scaleX:r,scaleY:e,makeAbsolute:n}}writeMeasure(r){var e;if(r.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let l of this.manager.tooltipViews)l.dom.style.position="absolute"}let{visible:n,space:A,scaleX:o,scaleY:s}=r,a=[];for(let l=0;l<this.manager.tooltips.length;l++){let c=this.manager.tooltips[l],g=this.manager.tooltipViews[l],{dom:h}=g,d=r.pos[l],u=r.size[l];if(!d||c.clip!==!1&&(d.bottom<=Math.max(n.top,A.top)||d.top>=Math.min(n.bottom,A.bottom)||d.right<Math.max(n.left,A.left)-.1||d.left>Math.min(n.right,A.right)+.1)){h.style.top=Outside;continue}let f=c.arrow?g.dom.querySelector(".cm-tooltip-arrow"):null,I=f?7:0,p=u.right-u.left,m=(e=knownHeight.get(g))!==null&&e!==void 0?e:u.bottom-u.top,E=g.offset||noOffset,B=this.view.textDirection==Direction.LTR,Q=u.width>A.right-A.left?B?A.left:A.right-u.width:B?Math.max(A.left,Math.min(d.left-(f?14:0)+E.x,A.right-p)):Math.min(Math.max(A.left,d.left-p+(f?14:0)-E.x),A.right-p),w=this.above[l];!c.strictSide&&(w?d.top-m-I-E.y<A.top:d.bottom+m+I+E.y>A.bottom)&&w==A.bottom-d.bottom>d.top-A.top&&(w=this.above[l]=!w);let y=(w?d.top-A.top:A.bottom-d.bottom)-I;if(y<m&&g.resize!==!1){if(y<this.view.defaultLineHeight){h.style.top=Outside;continue}knownHeight.set(g,m),h.style.height=(m=y)/s+"px"}else h.style.height&&(h.style.height="");let S=w?d.top-m-I-E.y:d.bottom+I+E.y,D=Q+p;if(g.overlap!==!0)for(let _ of a)_.left<D&&_.right>Q&&_.top<S+m&&_.bottom>S&&(S=w?_.top-m-2-I:_.bottom+I+2);if(this.position=="absolute"?(h.style.top=(S-r.parent.top)/s+"px",setLeftStyle(h,(Q-r.parent.left)/o)):(h.style.top=S/s+"px",setLeftStyle(h,Q/o)),f){let _=d.left+(B?E.x:-E.x)-(Q+14-7);f.style.left=_/o+"px"}g.overlap!==!0&&a.push({left:Q,top:S,right:D,bottom:S+m}),h.classList.toggle("cm-tooltip-above",w),h.classList.toggle("cm-tooltip-below",!w),g.positioned&&g.positioned(r.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let r of this.manager.tooltipViews)r.dom.style.top=Outside}},{eventObservers:{scroll(){this.maybeMeasure()}}});function setLeftStyle(r,e){let n=parseInt(r.style.left,10);(isNaN(n)||Math.abs(e-n)>1)&&(r.style.left=e+"px")}const baseTheme$3=EditorView.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),noOffset={x:0,y:0},showTooltip=Facet.define({enables:[tooltipPlugin,baseTheme$3]}),showHoverTooltip=Facet.define({combine:r=>r.reduce((e,n)=>e.concat(n),[])});class HoverTooltipHost{static create(e){return new HoverTooltipHost(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new TooltipViewManager(e,showHoverTooltip,(n,A)=>this.createHostedView(n,A),n=>n.dom.remove())}createHostedView(e,n){let A=e.create(this.view);return A.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(A.dom,n?n.dom.nextSibling:this.dom.firstChild),this.mounted&&A.mount&&A.mount(this.view),A}mount(e){for(let n of this.manager.tooltipViews)n.mount&&n.mount(e);this.mounted=!0}positioned(e){for(let n of this.manager.tooltipViews)n.positioned&&n.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let n of this.manager.tooltipViews)(e=n.destroy)===null||e===void 0||e.call(n)}passProp(e){let n;for(let A of this.manager.tooltipViews){let o=A[e];if(o!==void 0){if(n===void 0)n=o;else if(n!==o)return}}return n}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const showHoverTooltipHost=showTooltip.compute([showHoverTooltip],r=>{let e=r.facet(showHoverTooltip);return e.length===0?null:{pos:Math.min(...e.map(n=>n.pos)),end:Math.max(...e.map(n=>{var A;return(A=n.end)!==null&&A!==void 0?A:n.pos})),create:HoverTooltipHost.create,above:e[0].above,arrow:e.some(n=>n.arrow)}});class HoverPlugin{constructor(e,n,A,o,s){this.view=e,this.source=n,this.field=A,this.setHover=o,this.hoverTime=s,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;e<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-e):this.startHover()}startHover(){clearTimeout(this.restartTimeout);let{view:e,lastMove:n}=this,A=e.docView.nearest(n.target);if(!A)return;let o,s=1;if(A instanceof WidgetView)o=A.posAtStart;else{if(o=e.posAtCoords(n),o==null)return;let l=e.coordsAtPos(o);if(!l||n.y<l.top||n.y>l.bottom||n.x<l.left-e.defaultCharacterWidth||n.x>l.right+e.defaultCharacterWidth)return;let c=e.bidiSpans(e.state.doc.lineAt(o)).find(h=>h.from<=o&&h.to>=o),g=c&&c.dir==Direction.RTL?-1:1;s=n.x<l.left?-g:g}let a=this.source(e,o,s);if(a?.then){let l=this.pending={pos:o};a.then(c=>{this.pending==l&&(this.pending=null,c&&!(Array.isArray(c)&&!c.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(c)?c:[c])}))},c=>logException(e.state,c,"hover tooltip"))}else a&&!(Array.isArray(a)&&!a.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(a)?a:[a])})}get tooltip(){let e=this.view.plugin(tooltipPlugin),n=e?e.manager.tooltips.findIndex(A=>A.create==HoverTooltipHost.create):-1;return n>-1?e.manager.tooltipViews[n]:null}mousemove(e){var n,A;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:o,tooltip:s}=this;if(o.length&&s&&!isInTooltip(s.dom,e)||this.pending){let{pos:a}=o[0]||this.pending,l=(A=(n=o[0])===null||n===void 0?void 0:n.end)!==null&&A!==void 0?A:a;(a==l?this.view.posAtCoords(this.lastMove)!=a:!isOverRange(this.view,a,l,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:n}=this;if(n.length){let{tooltip:A}=this;A&&A.dom.contains(e.relatedTarget)?this.watchTooltipLeave(A.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let n=A=>{e.removeEventListener("mouseleave",n),this.active.length&&!this.view.dom.contains(A.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",n)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const tooltipMargin=4;function isInTooltip(r,e){let{left:n,right:A,top:o,bottom:s}=r.getBoundingClientRect(),a;if(a=r.querySelector(".cm-tooltip-arrow")){let l=a.getBoundingClientRect();o=Math.min(l.top,o),s=Math.max(l.bottom,s)}return e.clientX>=n-tooltipMargin&&e.clientX<=A+tooltipMargin&&e.clientY>=o-tooltipMargin&&e.clientY<=s+tooltipMargin}function isOverRange(r,e,n,A,o,s){let a=r.scrollDOM.getBoundingClientRect(),l=r.documentTop+r.documentPadding.top+r.contentHeight;if(a.left>A||a.right<A||a.top>o||Math.min(a.bottom,l)<o)return!1;let c=r.posAtCoords({x:A,y:o},!1);return c>=e&&c<=n}function hoverTooltip(r,e={}){let n=StateEffect.define(),A=StateField.define({create(){return[]},update(o,s){if(o.length&&(e.hideOnChange&&(s.docChanged||s.selection)?o=[]:e.hideOn&&(o=o.filter(a=>!e.hideOn(s,a))),s.docChanged)){let a=[];for(let l of o){let c=s.changes.mapPos(l.pos,-1,MapMode.TrackDel);if(c!=null){let g=Object.assign(Object.create(null),l);g.pos=c,g.end!=null&&(g.end=s.changes.mapPos(g.end)),a.push(g)}}o=a}for(let a of s.effects)a.is(n)&&(o=a.value),a.is(closeHoverTooltipEffect)&&(o=[]);return o},provide:o=>showHoverTooltip.from(o)});return{active:A,extension:[A,ViewPlugin.define(o=>new HoverPlugin(o,r,A,n,e.hoverTime||300)),showHoverTooltipHost]}}function getTooltip(r,e){let n=r.plugin(tooltipPlugin);if(!n)return null;let A=n.manager.tooltips.indexOf(e);return A<0?null:n.manager.tooltipViews[A]}const closeHoverTooltipEffect=StateEffect.define();class GutterMarker extends RangeValue{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}GutterMarker.prototype.elementClass="";GutterMarker.prototype.toDOM=void 0;GutterMarker.prototype.mapMode=MapMode.TrackBefore;GutterMarker.prototype.startSide=GutterMarker.prototype.endSide=-1;GutterMarker.prototype.point=!0;const gutterLineClass=Facet.define(),gutterWidgetClass=Facet.define(),defaults$1={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>RangeSet.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},activeGutters=Facet.define();function gutter(r){return[gutters(),activeGutters.of({...defaults$1,...r})]}const unfixGutters=Facet.define({combine:r=>r.some(e=>e)});function gutters(r){return[gutterView]}const gutterView=ViewPlugin.fromClass(class{constructor(r){this.view=r,this.domAfter=null,this.prevViewport=r.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=r.state.facet(activeGutters).map(e=>new SingleGutterView(r,e)),this.fixed=!r.state.facet(unfixGutters);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),r.scrollDOM.insertBefore(this.dom,r.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(r){if(this.updateGutters(r)){let e=this.prevViewport,n=r.view.viewport,A=Math.min(e.to,n.to)-Math.max(e.from,n.from);this.syncGutters(A<(n.to-n.from)*.8)}if(r.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(unfixGutters)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=r.view.viewport}syncGutters(r){let e=this.dom.nextSibling;r&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let n=RangeSet.iter(this.view.state.facet(gutterLineClass),this.view.viewport.from),A=[],o=this.gutters.map(s=>new UpdateContext(s,this.view.viewport,-this.view.documentPadding.top));for(let s of this.view.viewportLineBlocks)if(A.length&&(A=[]),Array.isArray(s.type)){let a=!0;for(let l of s.type)if(l.type==BlockType.Text&&a){advanceCursor(n,A,l.from);for(let c of o)c.line(this.view,l,A);a=!1}else if(l.widget)for(let c of o)c.widget(this.view,l)}else if(s.type==BlockType.Text){advanceCursor(n,A,s.from);for(let a of o)a.line(this.view,s,A)}else if(s.widget)for(let a of o)a.widget(this.view,s);for(let s of o)s.finish();r&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(r){let e=r.startState.facet(activeGutters),n=r.state.facet(activeGutters),A=r.docChanged||r.heightChanged||r.viewportChanged||!RangeSet.eq(r.startState.facet(gutterLineClass),r.state.facet(gutterLineClass),r.view.viewport.from,r.view.viewport.to);if(e==n)for(let o of this.gutters)o.update(r)&&(A=!0);else{A=!0;let o=[];for(let s of n){let a=e.indexOf(s);a<0?o.push(new SingleGutterView(this.view,s)):(this.gutters[a].update(r),o.push(this.gutters[a]))}for(let s of this.gutters)s.dom.remove(),o.indexOf(s)<0&&s.destroy();for(let s of o)s.config.side=="after"?this.getDOMAfter().appendChild(s.dom):this.dom.appendChild(s.dom);this.gutters=o}return A}destroy(){for(let r of this.gutters)r.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:r=>EditorView.scrollMargins.of(e=>{let n=e.plugin(r);if(!n||n.gutters.length==0||!n.fixed)return null;let A=n.dom.offsetWidth*e.scaleX,o=n.domAfter?n.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==Direction.LTR?{left:A,right:o}:{right:A,left:o}})});function asArray(r){return Array.isArray(r)?r:[r]}function advanceCursor(r,e,n){for(;r.value&&r.from<=n;)r.from==n&&e.push(r.value),r.next()}class UpdateContext{constructor(e,n,A){this.gutter=e,this.height=A,this.i=0,this.cursor=RangeSet.iter(e.markers,n.from)}addElement(e,n,A){let{gutter:o}=this,s=(n.top-this.height)/e.scaleY,a=n.height/e.scaleY;if(this.i==o.elements.length){let l=new GutterElement(e,a,s,A);o.elements.push(l),o.dom.appendChild(l.dom)}else o.elements[this.i].update(e,a,s,A);this.height=n.bottom,this.i++}line(e,n,A){let o=[];advanceCursor(this.cursor,o,n.from),A.length&&(o=o.concat(A));let s=this.gutter.config.lineMarker(e,n,o);s&&o.unshift(s);let a=this.gutter;o.length==0&&!a.config.renderEmptyElements||this.addElement(e,n,o)}widget(e,n){let A=this.gutter.config.widgetMarker(e,n.widget,n),o=A?[A]:null;for(let s of e.state.facet(gutterWidgetClass)){let a=s(e,n.widget,n);a&&(o||(o=[])).push(a)}o&&this.addElement(e,n,o)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let n=e.elements.pop();e.dom.removeChild(n.dom),n.destroy()}}}class SingleGutterView{constructor(e,n){this.view=e,this.config=n,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let A in n.domEventHandlers)this.dom.addEventListener(A,o=>{let s=o.target,a;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let c=s.getBoundingClientRect();a=(c.top+c.bottom)/2}else a=o.clientY;let l=e.lineBlockAtHeight(a-e.documentTop);n.domEventHandlers[A](e,l,o)&&o.preventDefault()});this.markers=asArray(n.markers(e)),n.initialSpacer&&(this.spacer=new GutterElement(e,0,0,[n.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let n=this.markers;if(this.markers=asArray(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let o=this.config.updateSpacer(this.spacer.markers[0],e);o!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[o])}let A=e.view.viewport;return!RangeSet.eq(this.markers,n,A.from,A.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class GutterElement{constructor(e,n,A,o){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,n,A,o)}update(e,n,A,o){this.height!=n&&(this.height=n,this.dom.style.height=n+"px"),this.above!=A&&(this.dom.style.marginTop=(this.above=A)?A+"px":""),sameMarkers(this.markers,o)||this.setMarkers(e,o)}setMarkers(e,n){let A="cm-gutterElement",o=this.dom.firstChild;for(let s=0,a=0;;){let l=a,c=s<n.length?n[s++]:null,g=!1;if(c){let h=c.elementClass;h&&(A+=" "+h);for(let d=a;d<this.markers.length;d++)if(this.markers[d].compare(c)){l=d,g=!0;break}}else l=this.markers.length;for(;a<l;){let h=this.markers[a++];if(h.toDOM){h.destroy(o);let d=o.nextSibling;o.remove(),o=d}}if(!c)break;c.toDOM&&(g?o=o.nextSibling:this.dom.insertBefore(c.toDOM(e),o)),g&&a++}this.dom.className=A,this.markers=n}destroy(){this.setMarkers(null,[])}}function sameMarkers(r,e){if(r.length!=e.length)return!1;for(let n=0;n<r.length;n++)if(!r[n].compare(e[n]))return!1;return!0}const lineNumberMarkers=Facet.define(),lineNumberWidgetMarker=Facet.define(),lineNumberConfig=Facet.define({combine(r){return combineConfig(r,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(e,n){let A=Object.assign({},e);for(let o in n){let s=A[o],a=n[o];A[o]=s?(l,c,g)=>s(l,c,g)||a(l,c,g):a}return A}})}});class NumberMarker extends GutterMarker{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function formatNumber(r,e){return r.state.facet(lineNumberConfig).formatNumber(e,r.state)}const lineNumberGutter=activeGutters.compute([lineNumberConfig],r=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(lineNumberMarkers)},lineMarker(e,n,A){return A.some(o=>o.toDOM)?null:new NumberMarker(formatNumber(e,e.state.doc.lineAt(n.from).number))},widgetMarker:(e,n,A)=>{for(let o of e.state.facet(lineNumberWidgetMarker)){let s=o(e,n,A);if(s)return s}return null},lineMarkerChange:e=>e.startState.facet(lineNumberConfig)!=e.state.facet(lineNumberConfig),initialSpacer(e){return new NumberMarker(formatNumber(e,maxLineNumber(e.state.doc.lines)))},updateSpacer(e,n){let A=formatNumber(n.view,maxLineNumber(n.view.state.doc.lines));return A==e.number?e:new NumberMarker(A)},domEventHandlers:r.facet(lineNumberConfig).domEventHandlers,side:"before"}));function lineNumbers(r={}){return[lineNumberConfig.of(r),gutters(),lineNumberGutter]}function maxLineNumber(r){let e=9;for(;e<r;)e=e*10+9;return e}const activeLineGutterMarker=new class extends GutterMarker{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},activeLineGutterHighlighter=gutterLineClass.compute(["selection"],r=>{let e=[],n=-1;for(let A of r.selection.ranges){let o=r.doc.lineAt(A.head).from;o>n&&(n=o,e.push(activeLineGutterMarker.range(o)))}return RangeSet.of(e)});function highlightActiveLineGutter(){return activeLineGutterHighlighter}const DefaultBufferLength=1024;let nextPropID=0,Range$1=class{constructor(e,n){this.from=e,this.to=n}};class NodeProp{constructor(e={}){this.id=nextPropID++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=NodeType.match(e)),n=>{let A=e(n);return A===void 0?null:[this,A]}}}NodeProp.closedBy=new NodeProp({deserialize:r=>r.split(" ")});NodeProp.openedBy=new NodeProp({deserialize:r=>r.split(" ")});NodeProp.group=new NodeProp({deserialize:r=>r.split(" ")});NodeProp.isolate=new NodeProp({deserialize:r=>{if(r&&r!="rtl"&&r!="ltr"&&r!="auto")throw new RangeError("Invalid value for isolate: "+r);return r||"auto"}});NodeProp.contextHash=new NodeProp({perNode:!0});NodeProp.lookAhead=new NodeProp({perNode:!0});NodeProp.mounted=new NodeProp({perNode:!0});class MountedTree{constructor(e,n,A){this.tree=e,this.overlay=n,this.parser=A}static get(e){return e&&e.props&&e.props[NodeProp.mounted.id]}}const noProps=Object.create(null);class NodeType{constructor(e,n,A,o=0){this.name=e,this.props=n,this.id=A,this.flags=o}static define(e){let n=e.props&&e.props.length?Object.create(null):noProps,A=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),o=new NodeType(e.name||"",n,e.id,A);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(o)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");n[s[0].id]=s[1]}}return o}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let n=this.prop(NodeProp.group);return n?n.indexOf(e)>-1:!1}return this.id==e}static match(e){let n=Object.create(null);for(let A in e)for(let o of A.split(" "))n[o]=e[A];return A=>{for(let o=A.prop(NodeProp.group),s=-1;s<(o?o.length:0);s++){let a=n[s<0?A.name:o[s]];if(a)return a}}}}NodeType.none=new NodeType("",Object.create(null),0,8);class NodeSet{constructor(e){this.types=e;for(let n=0;n<e.length;n++)if(e[n].id!=n)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let n=[];for(let A of this.types){let o=null;for(let s of e){let a=s(A);if(a){o||(o=Object.assign({},A.props));let l=a[1],c=a[0];c.combine&&c.id in o&&(l=c.combine(o[c.id],l)),o[c.id]=l}}n.push(o?new NodeType(A.name,o,A.id,A.flags):A)}return new NodeSet(n)}}const CachedNode=new WeakMap,CachedInnerNode=new WeakMap;exports.IterMode=void 0;(function(r){r[r.ExcludeBuffers=1]="ExcludeBuffers",r[r.IncludeAnonymous=2]="IncludeAnonymous",r[r.IgnoreMounts=4]="IgnoreMounts",r[r.IgnoreOverlays=8]="IgnoreOverlays"})(exports.IterMode||(exports.IterMode={}));let Tree$1=class ht{constructor(e,n,A,o,s){if(this.type=e,this.children=n,this.positions=A,this.length=o,this.props=null,s&&s.length){this.props=Object.create(null);for(let[a,l]of s)this.props[typeof a=="number"?a:a.id]=l}}toString(){let e=MountedTree.get(this);if(e&&!e.overlay)return e.tree.toString();let n="";for(let A of this.children){let o=A.toString();o&&(n&&(n+=","),n+=o)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(n.length?"("+n+")":""):n}cursor(e=0){return new TreeCursor$1(this.topNode,e)}cursorAt(e,n=0,A=0){let o=CachedNode.get(this)||this.topNode,s=new TreeCursor$1(o);return s.moveTo(e,n),CachedNode.set(this,s._tree),s}get topNode(){return new TreeNode(this,0,0,null)}resolve(e,n=0){let A=resolveNode(CachedNode.get(this)||this.topNode,e,n,!1);return CachedNode.set(this,A),A}resolveInner(e,n=0){let A=resolveNode(CachedInnerNode.get(this)||this.topNode,e,n,!0);return CachedInnerNode.set(this,A),A}resolveStack(e,n=0){return stackIterator(this,e,n)}iterate(e){let{enter:n,leave:A,from:o=0,to:s=this.length}=e,a=e.mode||0,l=(a&exports.IterMode.IncludeAnonymous)>0;for(let c=this.cursor(a|exports.IterMode.IncludeAnonymous);;){let g=!1;if(c.from<=s&&c.to>=o&&(!l&&c.type.isAnonymous||n(c)!==!1)){if(c.firstChild())continue;g=!0}for(;g&&A&&(l||!c.type.isAnonymous)&&A(c),!c.nextSibling();){if(!c.parent())return;g=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let n in this.props)e.push([+n,this.props[n]]);return e}balance(e={}){return this.children.length<=8?this:balanceRange(NodeType.none,this.children,this.positions,0,this.children.length,0,this.length,(n,A,o)=>new ht(this.type,n,A,o,this.propValues),e.makeTree||((n,A,o)=>new ht(NodeType.none,n,A,o)))}static build(e){return buildTree(e)}};Tree$1.empty=new Tree$1(NodeType.none,[],[],0);class FlatBufferCursor{constructor(e,n){this.buffer=e,this.index=n}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new FlatBufferCursor(this.buffer,this.index)}}class TreeBuffer{constructor(e,n,A){this.buffer=e,this.length=n,this.set=A}get type(){return NodeType.none}toString(){let e=[];for(let n=0;n<this.buffer.length;)e.push(this.childString(n)),n=this.buffer[n+3];return e.join(",")}childString(e){let n=this.buffer[e],A=this.buffer[e+3],o=this.set.types[n],s=o.name;if(/\W/.test(s)&&!o.isError&&(s=JSON.stringify(s)),e+=4,A==e)return s;let a=[];for(;e<A;)a.push(this.childString(e)),e=this.buffer[e+3];return s+"("+a.join(",")+")"}findChild(e,n,A,o,s){let{buffer:a}=this,l=-1;for(let c=e;c!=n&&!(checkSide(s,o,a[c+1],a[c+2])&&(l=c,A>0));c=a[c+3]);return l}slice(e,n,A){let o=this.buffer,s=new Uint16Array(n-e),a=0;for(let l=e,c=0;l<n;){s[c++]=o[l++],s[c++]=o[l++]-A;let g=s[c++]=o[l++]-A;s[c++]=o[l++]-e,a=Math.max(a,g)}return new TreeBuffer(s,a,this.set)}}function checkSide(r,e,n,A){switch(r){case-2:return n<e;case-1:return A>=e&&n<e;case 0:return n<e&&A>e;case 1:return n<=e&&A>e;case 2:return A>e;case 4:return!0}}function resolveNode(r,e,n,A){for(var o;r.from==r.to||(n<1?r.from>=e:r.from>e)||(n>-1?r.to<=e:r.to<e);){let a=!A&&r instanceof TreeNode&&r.index<0?null:r.parent;if(!a)return r;r=a}let s=A?0:exports.IterMode.IgnoreOverlays;if(A)for(let a=r,l=a.parent;l;a=l,l=a.parent)a instanceof TreeNode&&a.index<0&&((o=l.enter(e,n,s))===null||o===void 0?void 0:o.from)!=a.from&&(r=l);for(;;){let a=r.enter(e,n,s);if(!a)return r;r=a}}let BaseNode$1=class{cursor(e=0){return new TreeCursor$1(this,e)}getChild(e,n=null,A=null){let o=getChildren$1(this,e,n,A);return o.length?o[0]:null}getChildren(e,n=null,A=null){return getChildren$1(this,e,n,A)}resolve(e,n=0){return resolveNode(this,e,n,!1)}resolveInner(e,n=0){return resolveNode(this,e,n,!0)}matchContext(e){return matchNodeContext(this.parent,e)}enterUnfinishedNodesBefore(e){let n=this.childBefore(e),A=this;for(;n;){let o=n.lastChild;if(!o||o.to!=n.to)break;o.type.isError&&o.from==o.to?(A=n,n=o.prevSibling):n=o}return A}get node(){return this}get next(){return this.parent}};class TreeNode extends BaseNode$1{constructor(e,n,A,o){super(),this._tree=e,this.from=n,this.index=A,this._parent=o}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,n,A,o,s=0){for(let a=this;;){for(let{children:l,positions:c}=a._tree,g=n>0?l.length:-1;e!=g;e+=n){let h=l[e],d=c[e]+a.from;if(checkSide(o,A,d,d+h.length)){if(h instanceof TreeBuffer){if(s&exports.IterMode.ExcludeBuffers)continue;let u=h.findChild(0,h.buffer.length,n,A-d,o);if(u>-1)return new BufferNode(new BufferContext(a,h,e,d),null,u)}else if(s&exports.IterMode.IncludeAnonymous||!h.type.isAnonymous||hasChild(h)){let u;if(!(s&exports.IterMode.IgnoreMounts)&&(u=MountedTree.get(h))&&!u.overlay)return new TreeNode(u.tree,d,e,a);let f=new TreeNode(h,d,e,a);return s&exports.IterMode.IncludeAnonymous||!f.type.isAnonymous?f:f.nextChild(n<0?h.children.length-1:0,n,A,o)}}}if(s&exports.IterMode.IncludeAnonymous||!a.type.isAnonymous||(a.index>=0?e=a.index+n:e=n<0?-1:a._parent._tree.children.length,a=a._parent,!a))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,n,A=0){let o;if(!(A&exports.IterMode.IgnoreOverlays)&&(o=MountedTree.get(this._tree))&&o.overlay){let s=e-this.from;for(let{from:a,to:l}of o.overlay)if((n>0?a<=s:a<s)&&(n<0?l>=s:l>s))return new TreeNode(o.tree,o.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,n,A)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function getChildren$1(r,e,n,A){let o=r.cursor(),s=[];if(!o.firstChild())return s;if(n!=null){for(let a=!1;!a;)if(a=o.type.is(n),!o.nextSibling())return s}for(;;){if(A!=null&&o.type.is(A))return s;if(o.type.is(e)&&s.push(o.node),!o.nextSibling())return A==null?s:[]}}function matchNodeContext(r,e,n=e.length-1){for(let A=r;n>=0;A=A.parent){if(!A)return!1;if(!A.type.isAnonymous){if(e[n]&&e[n]!=A.name)return!1;n--}}return!0}class BufferContext{constructor(e,n,A,o){this.parent=e,this.buffer=n,this.index=A,this.start=o}}class BufferNode extends BaseNode$1{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,n,A){super(),this.context=e,this._parent=n,this.index=A,this.type=e.buffer.set.types[e.buffer.buffer[A]]}child(e,n,A){let{buffer:o}=this.context,s=o.findChild(this.index+4,o.buffer[this.index+3],e,n-this.context.start,A);return s<0?null:new BufferNode(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,n,A=0){if(A&exports.IterMode.ExcludeBuffers)return null;let{buffer:o}=this.context,s=o.findChild(this.index+4,o.buffer[this.index+3],n>0?1:-1,e-this.context.start,n);return s<0?null:new BufferNode(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,n=e.buffer[this.index+3];return n<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new BufferNode(this.context,this._parent,n):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,n=this._parent?this._parent.index+4:0;return this.index==n?this.externalSibling(-1):new BufferNode(this.context,this._parent,e.findChild(n,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],n=[],{buffer:A}=this.context,o=this.index+4,s=A.buffer[this.index+3];if(s>o){let a=A.buffer[this.index+1];e.push(A.slice(o,s,a)),n.push(0)}return new Tree$1(this.type,e,n,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function iterStack(r){if(!r.length)return null;let e=0,n=r[0];for(let s=1;s<r.length;s++){let a=r[s];(a.from>n.from||a.to<n.to)&&(n=a,e=s)}let A=n instanceof TreeNode&&n.index<0?null:n.parent,o=r.slice();return A?o[e]=A:o.splice(e,1),new StackIterator(o,n)}class StackIterator{constructor(e,n){this.heads=e,this.node=n}get next(){return iterStack(this.heads)}}function stackIterator(r,e,n){let A=r.resolveInner(e,n),o=null;for(let s=A instanceof TreeNode?A:A.context.parent;s;s=s.parent)if(s.index<0){let a=s.parent;(o||(o=[A])).push(a.resolve(e,n)),s=a}else{let a=MountedTree.get(s.tree);if(a&&a.overlay&&a.overlay[0].from<=e&&a.overlay[a.overlay.length-1].to>=e){let l=new TreeNode(a.tree,a.overlay[0].from+s.from,-1,s);(o||(o=[A])).push(resolveNode(l,e,n,!1))}}return o?iterStack(o):A}let TreeCursor$1=class{get name(){return this.type.name}constructor(e,n=0){if(this.mode=n,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof TreeNode)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let A=e._parent;A;A=A._parent)this.stack.unshift(A.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,n){this.index=e;let{start:A,buffer:o}=this.buffer;return this.type=n||o.set.types[o.buffer[e]],this.from=A+o.buffer[e+1],this.to=A+o.buffer[e+2],!0}yield(e){return e?e instanceof TreeNode?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,n,A){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,n,A,this.mode));let{buffer:o}=this.buffer,s=o.findChild(this.index+4,o.buffer[this.index+3],e,n-this.buffer.start,A);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,n,A=this.mode){return this.buffer?A&exports.IterMode.ExcludeBuffers?!1:this.enterChild(1,e,n):this.yield(this._tree.enter(e,n,A))}parent(){if(!this.buffer)return this.yieldNode(this.mode&exports.IterMode.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&exports.IterMode.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:n}=this.buffer,A=this.stack.length-1;if(e<0){let o=A<0?0:this.stack[A]+4;if(this.index!=o)return this.yieldBuf(n.findChild(o,this.index,-1,0,4))}else{let o=n.buffer[this.index+3];if(o<(A<0?n.buffer.length:n.buffer[this.stack[A]+3]))return this.yieldBuf(o)}return A<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let n,A,{buffer:o}=this;if(o){if(e>0){if(this.index<o.buffer.buffer.length)return!1}else for(let s=0;s<this.index;s++)if(o.buffer.buffer[s+3]<this.index)return!1;({index:n,parent:A}=o)}else({index:n,_parent:A}=this._tree);for(;A;{index:n,_parent:A}=A)if(n>-1)for(let s=n+e,a=e<0?-1:A._tree.children.length;s!=a;s+=e){let l=A._tree.children[s];if(this.mode&exports.IterMode.IncludeAnonymous||l instanceof TreeBuffer||!l.type.isAnonymous||hasChild(l))return!1}return!0}move(e,n){if(n&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,n=0){for(;(this.from==this.to||(n<1?this.from>=e:this.from>e)||(n>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,n););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,n=null,A=0;if(e&&e.context==this.buffer)e:for(let o=this.index,s=this.stack.length;s>=0;){for(let a=e;a;a=a._parent)if(a.index==o){if(o==this.index)return a;n=a,A=s+1;break e}o=this.stack[--s]}for(let o=A;o<this.stack.length;o++)n=new BufferNode(this.buffer,n,this.stack[o]);return this.bufferNode=new BufferNode(this.buffer,n,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,n){for(let A=0;;){let o=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){A++;continue}this.type.isAnonymous||(o=!0)}for(;;){if(o&&n&&n(this),o=this.type.isAnonymous,!A)return;if(this.nextSibling())break;this.parent(),A--,o=!0}}}matchContext(e){if(!this.buffer)return matchNodeContext(this.node.parent,e);let{buffer:n}=this.buffer,{types:A}=n.set;for(let o=e.length-1,s=this.stack.length-1;o>=0;s--){if(s<0)return matchNodeContext(this._tree,e,o);let a=A[n.buffer[this.stack[s]]];if(!a.isAnonymous){if(e[o]&&e[o]!=a.name)return!1;o--}}return!0}};function hasChild(r){return r.children.some(e=>e instanceof TreeBuffer||!e.type.isAnonymous||hasChild(e))}function buildTree(r){var e;let{buffer:n,nodeSet:A,maxBufferLength:o=DefaultBufferLength,reused:s=[],minRepeatType:a=A.types.length}=r,l=Array.isArray(n)?new FlatBufferCursor(n,n.length):n,c=A.types,g=0,h=0;function d(y,S,D,_,M,v){let{id:F,start:R,end:N,size:L}=l,G=h,K=g;if(L<0)if(l.next(),L==-1){let z=s[F];D.push(z),_.push(R-y);return}else if(L==-3){g=F;return}else if(L==-4){h=F;return}else throw new RangeError(`Unrecognized record size: ${L}`);let O=c[F],oe,j,Ae=R-y;if(N-R<=o&&(j=m(l.pos-S,M))){let z=new Uint16Array(j.size-j.skip),ee=l.pos-j.size,ae=z.length;for(;l.pos>ee;)ae=E(j.start,z,ae);oe=new TreeBuffer(z,N-j.start,A),Ae=j.start-y}else{let z=l.pos-L;l.next();let ee=[],ae=[],le=F>=a?F:-1,ge=0,he=N;for(;l.pos>z;)le>=0&&l.id==le&&l.size>=0?(l.end<=he-o&&(I(ee,ae,R,ge,l.end,he,le,G,K),ge=ee.length,he=l.end),l.next()):v>2500?u(R,z,ee,ae):d(R,z,ee,ae,le,v+1);if(le>=0&&ge>0&&ge<ee.length&&I(ee,ae,R,ge,R,he,le,G,K),ee.reverse(),ae.reverse(),le>-1&&ge>0){let Be=f(O,K);oe=balanceRange(O,ee,ae,0,ee.length,0,N-R,Be,Be)}else oe=p(O,ee,ae,N-R,G-N,K)}D.push(oe),_.push(Ae)}function u(y,S,D,_){let M=[],v=0,F=-1;for(;l.pos>S;){let{id:R,start:N,end:L,size:G}=l;if(G>4)l.next();else{if(F>-1&&N<F)break;F<0&&(F=L-o),M.push(R,N,L),v++,l.next()}}if(v){let R=new Uint16Array(v*4),N=M[M.length-2];for(let L=M.length-3,G=0;L>=0;L-=3)R[G++]=M[L],R[G++]=M[L+1]-N,R[G++]=M[L+2]-N,R[G++]=G;D.push(new TreeBuffer(R,M[2]-N,A)),_.push(N-y)}}function f(y,S){return(D,_,M)=>{let v=0,F=D.length-1,R,N;if(F>=0&&(R=D[F])instanceof Tree$1){if(!F&&R.type==y&&R.length==M)return R;(N=R.prop(NodeProp.lookAhead))&&(v=_[F]+R.length+N)}return p(y,D,_,M,v,S)}}function I(y,S,D,_,M,v,F,R,N){let L=[],G=[];for(;y.length>_;)L.push(y.pop()),G.push(S.pop()+D-M);y.push(p(A.types[F],L,G,v-M,R-v,N)),S.push(M-D)}function p(y,S,D,_,M,v,F){if(v){let R=[NodeProp.contextHash,v];F=F?[R].concat(F):[R]}if(M>25){let R=[NodeProp.lookAhead,M];F=F?[R].concat(F):[R]}return new Tree$1(y,S,D,_,F)}function m(y,S){let D=l.fork(),_=0,M=0,v=0,F=D.end-o,R={size:0,start:0,skip:0};e:for(let N=D.pos-y;D.pos>N;){let L=D.size;if(D.id==S&&L>=0){R.size=_,R.start=M,R.skip=v,v+=4,_+=4,D.next();continue}let G=D.pos-L;if(L<0||G<N||D.start<F)break;let K=D.id>=a?4:0,O=D.start;for(D.next();D.pos>G;){if(D.size<0)if(D.size==-3||D.size==-4)K+=4;else break e;else D.id>=a&&(K+=4);D.next()}M=O,_+=L,v+=K}return(S<0||_==y)&&(R.size=_,R.start=M,R.skip=v),R.size>4?R:void 0}function E(y,S,D){let{id:_,start:M,end:v,size:F}=l;if(l.next(),F>=0&&_<a){let R=D;if(F>4){let N=l.pos-(F-4);for(;l.pos>N;)D=E(y,S,D)}S[--D]=R,S[--D]=v-y,S[--D]=M-y,S[--D]=_}else F==-3?g=_:F==-4&&(h=_);return D}let B=[],Q=[];for(;l.pos>0;)d(r.start||0,r.bufferStart||0,B,Q,-1,0);let w=(e=r.length)!==null&&e!==void 0?e:B.length?Q[0]+B[0].length:0;return new Tree$1(c[r.topID],B.reverse(),Q.reverse(),w)}const nodeSizeCache=new WeakMap;function nodeSize(r,e){if(!r.isAnonymous||e instanceof TreeBuffer||e.type!=r)return 1;let n=nodeSizeCache.get(e);if(n==null){n=1;for(let A of e.children){if(A.type!=r||!(A instanceof Tree$1)){n=1;break}n+=nodeSize(r,A)}nodeSizeCache.set(e,n)}return n}function balanceRange(r,e,n,A,o,s,a,l,c){let g=0;for(let I=A;I<o;I++)g+=nodeSize(r,e[I]);let h=Math.ceil(g*1.5/8),d=[],u=[];function f(I,p,m,E,B){for(let Q=m;Q<E;){let w=Q,y=p[Q],S=nodeSize(r,I[Q]);for(Q++;Q<E;Q++){let D=nodeSize(r,I[Q]);if(S+D>=h)break;S+=D}if(Q==w+1){if(S>h){let D=I[w];f(D.children,D.positions,0,D.children.length,p[w]+B);continue}d.push(I[w])}else{let D=p[Q-1]+I[Q-1].length-y;d.push(balanceRange(r,I,p,w,Q,y,D,null,c))}u.push(y+B-s)}}return f(e,n,A,o,0),(l||c)(d,u,a)}class NodeWeakMap{constructor(){this.map=new WeakMap}setBuffer(e,n,A){let o=this.map.get(e);o||this.map.set(e,o=new Map),o.set(n,A)}getBuffer(e,n){let A=this.map.get(e);return A&&A.get(n)}set(e,n){e instanceof BufferNode?this.setBuffer(e.context.buffer,e.index,n):e instanceof TreeNode&&this.map.set(e.tree,n)}get(e){return e instanceof BufferNode?this.getBuffer(e.context.buffer,e.index):e instanceof TreeNode?this.map.get(e.tree):void 0}cursorSet(e,n){e.buffer?this.setBuffer(e.buffer.buffer,e.index,n):this.map.set(e.tree,n)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class TreeFragment{constructor(e,n,A,o,s=!1,a=!1){this.from=e,this.to=n,this.tree=A,this.offset=o,this.open=(s?1:0)|(a?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,n=[],A=!1){let o=[new TreeFragment(0,e.length,e,0,!1,A)];for(let s of n)s.to>e.length&&o.push(s);return o}static applyChanges(e,n,A=128){if(!n.length)return e;let o=[],s=1,a=e.length?e[0]:null;for(let l=0,c=0,g=0;;l++){let h=l<n.length?n[l]:null,d=h?h.fromA:1e9;if(d-c>=A)for(;a&&a.from<d;){let u=a;if(c>=u.from||d<=u.to||g){let f=Math.max(u.from,c)-g,I=Math.min(u.to,d)-g;u=f>=I?null:new TreeFragment(f,I,u.tree,u.offset+g,l>0,!!h)}if(u&&o.push(u),a.to>d)break;a=s<e.length?e[s++]:null}if(!h)break;c=h.toA,g=h.toA-h.toB}return o}}let Parser$1=class{startParse(e,n,A){return typeof e=="string"&&(e=new StringInput(e)),A=A?A.length?A.map(o=>new Range$1(o.from,o.to)):[new Range$1(0,0)]:[new Range$1(0,e.length)],this.createParse(e,n||[],A)}parse(e,n,A){let o=this.startParse(e,n,A);for(;;){let s=o.advance();if(s)return s}}};class StringInput{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,n){return this.string.slice(e,n)}}function parseMixed(r){return(e,n,A,o)=>new MixedParse(e,r,n,A,o)}class InnerParse{constructor(e,n,A,o,s){this.parser=e,this.parse=n,this.overlay=A,this.target=o,this.from=s}}function checkRanges(r){if(!r.length||r.some(e=>e.from>=e.to))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(r))}class ActiveOverlay{constructor(e,n,A,o,s,a,l){this.parser=e,this.predicate=n,this.mounts=A,this.index=o,this.start=s,this.target=a,this.prev=l,this.depth=0,this.ranges=[]}}const stoppedInner=new NodeProp({perNode:!0});class MixedParse{constructor(e,n,A,o,s){this.nest=n,this.input=A,this.fragments=o,this.ranges=s,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let A=this.baseParse.advance();if(!A)return null;if(this.baseParse=null,this.baseTree=A,this.startInner(),this.stoppedAt!=null)for(let o of this.inner)o.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let A=this.baseTree;return this.stoppedAt!=null&&(A=new Tree$1(A.type,A.children,A.positions,A.length,A.propValues.concat([[stoppedInner,this.stoppedAt]]))),A}let e=this.inner[this.innerDone],n=e.parse.advance();if(n){this.innerDone++;let A=Object.assign(Object.create(null),e.target.props);A[NodeProp.mounted.id]=new MountedTree(n,e.overlay,e.parser),e.target.props=A}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let n=this.innerDone;n<this.inner.length;n++)this.inner[n].from<e&&(e=Math.min(e,this.inner[n].parse.parsedPos));return e}stopAt(e){if(this.stoppedAt=e,this.baseParse)this.baseParse.stopAt(e);else for(let n=this.innerDone;n<this.inner.length;n++)this.inner[n].parse.stopAt(e)}startInner(){let e=new FragmentCursor(this.fragments),n=null,A=null,o=new TreeCursor$1(new TreeNode(this.baseTree,this.ranges[0].from,0,null),exports.IterMode.IncludeAnonymous|exports.IterMode.IgnoreMounts);e:for(let s,a;;){let l=!0,c;if(this.stoppedAt!=null&&o.from>=this.stoppedAt)l=!1;else if(e.hasNode(o)){if(n){let g=n.mounts.find(h=>h.frag.from<=o.from&&h.frag.to>=o.to&&h.mount.overlay);if(g)for(let h of g.mount.overlay){let d=h.from+g.pos,u=h.to+g.pos;d>=o.from&&u<=o.to&&!n.ranges.some(f=>f.from<u&&f.to>d)&&n.ranges.push({from:d,to:u})}}l=!1}else if(A&&(a=checkCover(A.ranges,o.from,o.to)))l=a!=2;else if(!o.type.isAnonymous&&(s=this.nest(o,this.input))&&(o.from<o.to||!s.overlay)){o.tree||(materialize(o),n&&n.depth++,A&&A.depth++);let g=e.findMounts(o.from,s.parser);if(typeof s.overlay=="function")n=new ActiveOverlay(s.parser,s.overlay,g,this.inner.length,o.from,o.tree,n);else{let h=punchRanges(this.ranges,s.overlay||(o.from<o.to?[new Range$1(o.from,o.to)]:[]));h.length&&checkRanges(h),(h.length||!s.overlay)&&this.inner.push(new InnerParse(s.parser,h.length?s.parser.startParse(this.input,enterFragments(g,h),h):s.parser.startParse(""),s.overlay?s.overlay.map(d=>new Range$1(d.from-o.from,d.to-o.from)):null,o.tree,h.length?h[0].from:o.from)),s.overlay?h.length&&(A={ranges:h,depth:0,prev:A}):l=!1}}else if(n&&(c=n.predicate(o))&&(c===!0&&(c=new Range$1(o.from,o.to)),c.from<c.to)){let g=n.ranges.length-1;g>=0&&n.ranges[g].to==c.from?n.ranges[g]={from:n.ranges[g].from,to:c.to}:n.ranges.push(c)}if(l&&o.firstChild())n&&n.depth++,A&&A.depth++;else for(;!o.nextSibling();){if(!o.parent())break e;if(n&&!--n.depth){let g=punchRanges(this.ranges,n.ranges);g.length&&(checkRanges(g),this.inner.splice(n.index,0,new InnerParse(n.parser,n.parser.startParse(this.input,enterFragments(n.mounts,g),g),n.ranges.map(h=>new Range$1(h.from-n.start,h.to-n.start)),n.target,g[0].from))),n=n.prev}A&&!--A.depth&&(A=A.prev)}}}}function checkCover(r,e,n){for(let A of r){if(A.from>=n)break;if(A.to>e)return A.from<=e&&A.to>=n?2:1}return 0}function sliceBuf(r,e,n,A,o,s){if(e<n){let a=r.buffer[e+1];A.push(r.slice(e,n,a)),o.push(a-s)}}function materialize(r){let{node:e}=r,n=[],A=e.context.buffer;do n.push(r.index),r.parent();while(!r.tree);let o=r.tree,s=o.children.indexOf(A),a=o.children[s],l=a.buffer,c=[s];function g(h,d,u,f,I,p){let m=n[p],E=[],B=[];sliceBuf(a,h,m,E,B,f);let Q=l[m+1],w=l[m+2];c.push(E.length);let y=p?g(m+4,l[m+3],a.set.types[l[m]],Q,w-Q,p-1):e.toTree();return E.push(y),B.push(Q-f),sliceBuf(a,l[m+3],d,E,B,f),new Tree$1(u,E,B,I)}o.children[s]=g(0,l.length,NodeType.none,0,a.length,n.length-1);for(let h of c){let d=r.tree.children[h],u=r.tree.positions[h];r.yield(new TreeNode(d,u+r.from,h,r._tree))}}class StructureCursor{constructor(e,n){this.offset=n,this.done=!1,this.cursor=e.cursor(exports.IterMode.IncludeAnonymous|exports.IterMode.IgnoreMounts)}moveTo(e){let{cursor:n}=this,A=e-this.offset;for(;!this.done&&n.from<A;)n.to>=e&&n.enter(A,1,exports.IterMode.IgnoreOverlays|exports.IterMode.ExcludeBuffers)||n.next(!1)||(this.done=!0)}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let n=this.cursor.tree;;){if(n==e.tree)return!0;if(n.children.length&&n.positions[0]==0&&n.children[0]instanceof Tree$1)n=n.children[0];else break}return!1}}class FragmentCursor{constructor(e){var n;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let A=this.curFrag=e[0];this.curTo=(n=A.tree.prop(stoppedInner))!==null&&n!==void 0?n:A.to,this.inner=new StructureCursor(A.tree,-A.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let n=this.curFrag=this.fragments[this.fragI];this.curTo=(e=n.tree.prop(stoppedInner))!==null&&e!==void 0?e:n.to,this.inner=new StructureCursor(n.tree,-n.offset)}}findMounts(e,n){var A;let o=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let s=this.inner.cursor.node;s;s=s.parent){let a=(A=s.tree)===null||A===void 0?void 0:A.prop(NodeProp.mounted);if(a&&a.parser==n)for(let l=this.fragI;l<this.fragments.length;l++){let c=this.fragments[l];if(c.from>=s.to)break;c.tree==this.curFrag.tree&&o.push({frag:c,pos:s.from-c.offset,mount:a})}}}return o}}function punchRanges(r,e){let n=null,A=e;for(let o=1,s=0;o<r.length;o++){let a=r[o-1].to,l=r[o].from;for(;s<A.length;s++){let c=A[s];if(c.from>=l)break;c.to<=a||(n||(A=n=e.slice()),c.from<a?(n[s]=new Range$1(c.from,a),c.to>l&&n.splice(s+1,0,new Range$1(l,c.to))):c.to>l?n[s--]=new Range$1(l,c.to):n.splice(s--,1))}}return A}function findCoverChanges(r,e,n,A){let o=0,s=0,a=!1,l=!1,c=-1e9,g=[];for(;;){let h=o==r.length?1e9:a?r[o].to:r[o].from,d=s==e.length?1e9:l?e[s].to:e[s].from;if(a!=l){let u=Math.max(c,n),f=Math.min(h,d,A);u<f&&g.push(new Range$1(u,f))}if(c=Math.min(h,d),c==1e9)break;h==c&&(a?(a=!1,o++):a=!0),d==c&&(l?(l=!1,s++):l=!0)}return g}function enterFragments(r,e){let n=[];for(let{pos:A,mount:o,frag:s}of r){let a=A+(o.overlay?o.overlay[0].from:0),l=a+o.tree.length,c=Math.max(s.from,a),g=Math.min(s.to,l);if(o.overlay){let h=o.overlay.map(u=>new Range$1(u.from+A,u.to+A)),d=findCoverChanges(e,h,c,g);for(let u=0,f=c;;u++){let I=u==d.length,p=I?g:d[u].from;if(p>f&&n.push(new TreeFragment(f,p,o.tree,-a,s.from>=f||s.openStart,s.to<=p||s.openEnd)),I)break;f=d[u].to}}else n.push(new TreeFragment(c,g,o.tree,-a,s.from>=a||s.openStart,s.to<=l||s.openEnd))}return n}let nextTagID=0;class Tag{constructor(e,n,A,o){this.name=e,this.set=n,this.base=A,this.modified=o,this.id=nextTagID++}toString(){let{name:e}=this;for(let n of this.modified)n.name&&(e=`${n.name}(${e})`);return e}static define(e,n){let A=typeof e=="string"?e:"?";if(e instanceof Tag&&(n=e),n?.base)throw new Error("Can not derive from a modified tag");let o=new Tag(A,[],null,[]);if(o.set.push(o),n)for(let s of n.set)o.set.push(s);return o}static defineModifier(e){let n=new Modifier(e);return A=>A.modified.indexOf(n)>-1?A:Modifier.get(A.base||A,A.modified.concat(n).sort((o,s)=>o.id-s.id))}}let nextModifierID=0;class Modifier{constructor(e){this.name=e,this.instances=[],this.id=nextModifierID++}static get(e,n){if(!n.length)return e;let A=n[0].instances.find(l=>l.base==e&&sameArray(n,l.modified));if(A)return A;let o=[],s=new Tag(e.name,o,e,n);for(let l of n)l.instances.push(s);let a=powerSet(n);for(let l of e.set)if(!l.modified.length)for(let c of a)o.push(Modifier.get(l,c));return s}}function sameArray(r,e){return r.length==e.length&&r.every((n,A)=>n==e[A])}function powerSet(r){let e=[[]];for(let n=0;n<r.length;n++)for(let A=0,o=e.length;A<o;A++)e.push(e[A].concat(r[n]));return e.sort((n,A)=>A.length-n.length)}function styleTags(r){let e=Object.create(null);for(let n in r){let A=r[n];Array.isArray(A)||(A=[A]);for(let o of n.split(" "))if(o){let s=[],a=2,l=o;for(let d=0;;){if(l=="..."&&d>0&&d+3==o.length){a=1;break}let u=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(l);if(!u)throw new RangeError("Invalid path: "+o);if(s.push(u[0]=="*"?"":u[0][0]=='"'?JSON.parse(u[0]):u[0]),d+=u[0].length,d==o.length)break;let f=o[d++];if(d==o.length&&f=="!"){a=0;break}if(f!="/")throw new RangeError("Invalid path: "+o);l=o.slice(d)}let c=s.length-1,g=s[c];if(!g)throw new RangeError("Invalid path: "+o);let h=new Rule(A,a,c>0?s.slice(0,c):null);e[g]=h.sort(e[g])}}return ruleNodeProp.add(e)}const ruleNodeProp=new NodeProp({combine(r,e){let n,A,o;for(;r||e;){if(!r||e&&r.depth>=e.depth?(o=e,e=e.next):(o=r,r=r.next),n&&n.mode==o.mode&&!o.context&&!n.context)continue;let s=new Rule(o.tags,o.mode,o.context);n?n.next=s:A=s,n=s}return A}});class Rule{constructor(e,n,A,o){this.tags=e,this.mode=n,this.context=A,this.next=o}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth<this.depth?(this.next=e,this):(e.next=this.sort(e.next),e)}get depth(){return this.context?this.context.length:0}}Rule.empty=new Rule([],2,null);function tagHighlighter(r,e){let n=Object.create(null);for(let s of r)if(!Array.isArray(s.tag))n[s.tag.id]=s.class;else for(let a of s.tag)n[a.id]=s.class;let{scope:A,all:o=null}=e||{};return{style:s=>{let a=o;for(let l of s)for(let c of l.set){let g=n[c.id];if(g){a=a?a+" "+g:g;break}}return a},scope:A}}function highlightTags(r,e){let n=null;for(let A of r){let o=A.style(e);o&&(n=n?n+" "+o:o)}return n}function highlightTree(r,e,n,A=0,o=r.length){let s=new HighlightBuilder(A,Array.isArray(e)?e:[e],n);s.highlightRange(r.cursor(),A,o,"",s.highlighters),s.flush(o)}class HighlightBuilder{constructor(e,n,A){this.at=e,this.highlighters=n,this.span=A,this.class=""}startSpan(e,n){n!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=n)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,n,A,o,s){let{type:a,from:l,to:c}=e;if(l>=A||c<=n)return;a.isTop&&(s=this.highlighters.filter(f=>!f.scope||f.scope(a)));let g=o,h=getStyleTags(e)||Rule.empty,d=highlightTags(s,h.tags);if(d&&(g&&(g+=" "),g+=d,h.mode==1&&(o+=(o?" ":"")+d)),this.startSpan(Math.max(n,l),g),h.opaque)return;let u=e.tree&&e.tree.prop(NodeProp.mounted);if(u&&u.overlay){let f=e.node.enter(u.overlay[0].from+l,1),I=this.highlighters.filter(m=>!m.scope||m.scope(u.tree.type)),p=e.firstChild();for(let m=0,E=l;;m++){let B=m<u.overlay.length?u.overlay[m]:null,Q=B?B.from+l:c,w=Math.max(n,E),y=Math.min(A,Q);if(w<y&&p)for(;e.from<y&&(this.highlightRange(e,w,y,o,s),this.startSpan(Math.min(y,e.to),g),!(e.to>=Q||!e.nextSibling())););if(!B||Q>A)break;E=B.to+l,E>n&&(this.highlightRange(f.cursor(),Math.max(n,B.from+l),Math.min(A,E),"",I),this.startSpan(Math.min(A,E),g))}p&&e.parent()}else if(e.firstChild()){u&&(o="");do if(!(e.to<=n)){if(e.from>=A)break;this.highlightRange(e,n,A,o,s),this.startSpan(Math.min(A,e.to),g)}while(e.nextSibling());e.parent()}}}function getStyleTags(r){let e=r.type.prop(ruleNodeProp);for(;e&&e.context&&!r.matchContext(e.context);)e=e.next;return e||null}const t=Tag.define,comment=t(),name=t(),typeName=t(name),propertyName=t(name),literal=t(),string=t(literal),number=t(literal),content=t(),heading=t(content),keyword=t(),operator=t(),punctuation=t(),bracket=t(punctuation),meta=t(),tags={comment,lineComment:t(comment),blockComment:t(comment),docComment:t(comment),name,variableName:t(name),typeName,tagName:t(typeName),propertyName,attributeName:t(propertyName),className:t(name),labelName:t(name),namespace:t(name),macroName:t(name),literal,string,docString:t(string),character:t(string),attributeValue:t(string),number,integer:t(number),float:t(number),bool:t(literal),regexp:t(literal),escape:t(literal),color:t(literal),url:t(literal),keyword,self:t(keyword),null:t(keyword),atom:t(keyword),unit:t(keyword),modifier:t(keyword),operatorKeyword:t(keyword),controlKeyword:t(keyword),definitionKeyword:t(keyword),moduleKeyword:t(keyword),operator,derefOperator:t(operator),arithmeticOperator:t(operator),logicOperator:t(operator),bitwiseOperator:t(operator),compareOperator:t(operator),updateOperator:t(operator),definitionOperator:t(operator),typeOperator:t(operator),controlOperator:t(operator),punctuation,separator:t(punctuation),bracket,angleBracket:t(bracket),squareBracket:t(bracket),paren:t(bracket),brace:t(bracket),content,heading,heading1:t(heading),heading2:t(heading),heading3:t(heading),heading4:t(heading),heading5:t(heading),heading6:t(heading),contentSeparator:t(content),list:t(content),quote:t(content),emphasis:t(content),strong:t(content),link:t(content),monospace:t(content),strikethrough:t(content),inserted:t(),deleted:t(),changed:t(),invalid:t(),meta,documentMeta:t(meta),annotation:t(meta),processingInstruction:t(meta),definition:Tag.defineModifier("definition"),constant:Tag.defineModifier("constant"),function:Tag.defineModifier("function"),standard:Tag.defineModifier("standard"),local:Tag.defineModifier("local"),special:Tag.defineModifier("special")};for(let r in tags){let e=tags[r];e instanceof Tag&&(e.name=r)}tagHighlighter([{tag:tags.link,class:"tok-link"},{tag:tags.heading,class:"tok-heading"},{tag:tags.emphasis,class:"tok-emphasis"},{tag:tags.strong,class:"tok-strong"},{tag:tags.keyword,class:"tok-keyword"},{tag:tags.atom,class:"tok-atom"},{tag:tags.bool,class:"tok-bool"},{tag:tags.url,class:"tok-url"},{tag:tags.labelName,class:"tok-labelName"},{tag:tags.inserted,class:"tok-inserted"},{tag:tags.deleted,class:"tok-deleted"},{tag:tags.literal,class:"tok-literal"},{tag:tags.string,class:"tok-string"},{tag:tags.number,class:"tok-number"},{tag:[tags.regexp,tags.escape,tags.special(tags.string)],class:"tok-string2"},{tag:tags.variableName,class:"tok-variableName"},{tag:tags.local(tags.variableName),class:"tok-variableName tok-local"},{tag:tags.definition(tags.variableName),class:"tok-variableName tok-definition"},{tag:tags.special(tags.variableName),class:"tok-variableName2"},{tag:tags.definition(tags.propertyName),class:"tok-propertyName tok-definition"},{tag:tags.typeName,class:"tok-typeName"},{tag:tags.namespace,class:"tok-namespace"},{tag:tags.className,class:"tok-className"},{tag:tags.macroName,class:"tok-macroName"},{tag:tags.propertyName,class:"tok-propertyName"},{tag:tags.operator,class:"tok-operator"},{tag:tags.comment,class:"tok-comment"},{tag:tags.meta,class:"tok-meta"},{tag:tags.invalid,class:"tok-invalid"},{tag:tags.punctuation,class:"tok-punctuation"}]);var _a;const languageDataProp=new NodeProp;function defineLanguageFacet(r){return Facet.define({combine:r?e=>e.concat(r):void 0})}const sublanguageProp=new NodeProp;let Language$1=class{constructor(e,n,A=[],o=""){this.data=e,this.name=o,EditorState.prototype.hasOwnProperty("tree")||Object.defineProperty(EditorState.prototype,"tree",{get(){return syntaxTree(this)}}),this.parser=n,this.extension=[language.of(this),EditorState.languageData.of((s,a,l)=>{let c=topNodeAt(s,a,l),g=c.type.prop(languageDataProp);if(!g)return[];let h=s.facet(g),d=c.type.prop(sublanguageProp);if(d){let u=c.resolve(a-c.from,l);for(let f of d)if(f.test(u,s)){let I=s.facet(f.facet);return f.type=="replace"?I:I.concat(h)}}return h})].concat(A)}isActiveAt(e,n,A=-1){return topNodeAt(e,n,A).type.prop(languageDataProp)==this.data}findRegions(e){let n=e.facet(language);if(n?.data==this.data)return[{from:0,to:e.doc.length}];if(!n||!n.allowsNesting)return[];let A=[],o=(s,a)=>{if(s.prop(languageDataProp)==this.data){A.push({from:a,to:a+s.length});return}let l=s.prop(NodeProp.mounted);if(l){if(l.tree.prop(languageDataProp)==this.data){if(l.overlay)for(let c of l.overlay)A.push({from:c.from+a,to:c.to+a});else A.push({from:a,to:a+s.length});return}else if(l.overlay){let c=A.length;if(o(l.tree,l.overlay[0].from+a),A.length>c)return}}for(let c=0;c<s.children.length;c++){let g=s.children[c];g instanceof Tree$1&&o(g,s.positions[c]+a)}};return o(syntaxTree(e),0),A}get allowsNesting(){return!0}};Language$1.setState=StateEffect.define();function topNodeAt(r,e,n){let A=r.facet(language),o=syntaxTree(r).topNode;if(!A||A.allowsNesting)for(let s=o;s;s=s.enter(e,n,exports.IterMode.ExcludeBuffers))s.type.isTop&&(o=s);return o}class LRLanguage extends Language$1{constructor(e,n,A){super(e,n,[],A),this.parser=n}static define(e){let n=defineLanguageFacet(e.languageData);return new LRLanguage(n,e.parser.configure({props:[languageDataProp.add(A=>A.isTop?n:void 0)]}),e.name)}configure(e,n){return new LRLanguage(this.data,this.parser.configure(e),n||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function syntaxTree(r){let e=r.field(Language$1.state,!1);return e?e.tree:Tree$1.empty}class DocInput{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,n){let A=this.cursorPos-this.string.length;return e<A||n>=this.cursorPos?this.doc.sliceString(e,n):this.string.slice(e-A,n-A)}}let currentContext=null;class ParseContext{constructor(e,n,A=[],o,s,a,l,c){this.parser=e,this.state=n,this.fragments=A,this.tree=o,this.treeLen=s,this.viewport=a,this.skipped=l,this.scheduleOn=c,this.parse=null,this.tempSkipped=[]}static create(e,n,A){return new ParseContext(e,n,[],Tree$1.empty,0,A,[],null)}startParse(){return this.parser.startParse(new DocInput(this.state.doc),this.fragments)}work(e,n){return n!=null&&n>=this.state.doc.length&&(n=void 0),this.tree!=Tree$1.empty&&this.isDone(n??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var A;if(typeof e=="number"){let o=Date.now()+e;e=()=>Date.now()>o}for(this.parse||(this.parse=this.startParse()),n!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>n)&&n<this.state.doc.length&&this.parse.stopAt(n);;){let o=this.parse.advance();if(o)if(this.fragments=this.withoutTempSkipped(TreeFragment.addTree(o,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(A=this.parse.stoppedAt)!==null&&A!==void 0?A:this.state.doc.length,this.tree=o,this.parse=null,this.treeLen<(n??this.state.doc.length))this.parse=this.startParse();else return!0;if(e())return!1}})}takeTree(){let e,n;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(n=this.parse.advance()););}),this.treeLen=e,this.tree=n,this.fragments=this.withoutTempSkipped(TreeFragment.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let n=currentContext;currentContext=this;try{return e()}finally{currentContext=n}}withoutTempSkipped(e){for(let n;n=this.tempSkipped.pop();)e=cutFragments(e,n.from,n.to);return e}changes(e,n){let{fragments:A,tree:o,treeLen:s,viewport:a,skipped:l}=this;if(this.takeTree(),!e.empty){let c=[];if(e.iterChangedRanges((g,h,d,u)=>c.push({fromA:g,toA:h,fromB:d,toB:u})),A=TreeFragment.applyChanges(A,c),o=Tree$1.empty,s=0,a={from:e.mapPos(a.from,-1),to:e.mapPos(a.to,1)},this.skipped.length){l=[];for(let g of this.skipped){let h=e.mapPos(g.from,1),d=e.mapPos(g.to,-1);h<d&&l.push({from:h,to:d})}}}return new ParseContext(this.parser,n,A,o,s,a,l,this.scheduleOn)}updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.to)return!1;this.viewport=e;let n=this.skipped.length;for(let A=0;A<this.skipped.length;A++){let{from:o,to:s}=this.skipped[A];o<e.to&&s>e.from&&(this.fragments=cutFragments(this.fragments,o,s),this.skipped.splice(A--,1))}return this.skipped.length>=n?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,n){this.skipped.push({from:e,to:n})}static getSkippingParser(e){return new class extends Parser$1{createParse(n,A,o){let s=o[0].from,a=o[o.length-1].to;return{parsedPos:s,advance(){let c=currentContext;if(c){for(let g of o)c.tempSkipped.push(g);e&&(c.scheduleOn=c.scheduleOn?Promise.all([c.scheduleOn,e]):e)}return this.parsedPos=a,new Tree$1(NodeType.none,[],[],a-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let n=this.fragments;return this.treeLen>=e&&n.length&&n[0].from==0&&n[0].to>=e}static get(){return currentContext}}function cutFragments(r,e,n){return TreeFragment.applyChanges(r,[{fromA:e,toA:n,fromB:e,toB:n}])}class LanguageState{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let n=this.context.changes(e.changes,e.state),A=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),n.viewport.to);return n.work(20,A)||n.takeTree(),new LanguageState(n)}static init(e){let n=Math.min(3e3,e.doc.length),A=ParseContext.create(e.facet(language).parser,e,{from:0,to:n});return A.work(20,n)||A.takeTree(),new LanguageState(A)}}Language$1.state=StateField.define({create:LanguageState.init,update(r,e){for(let n of e.effects)if(n.is(Language$1.setState))return n.value;return e.startState.facet(language)!=e.state.facet(language)?LanguageState.init(e.state):r.apply(e)}});let requestIdle=r=>{let e=setTimeout(()=>r(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(requestIdle=r=>{let e=-1,n=setTimeout(()=>{e=requestIdleCallback(r,{timeout:400})},100);return()=>e<0?clearTimeout(n):cancelIdleCallback(e)});const isInputPending=typeof navigator<"u"&&(!((_a=navigator.scheduling)===null||_a===void 0)&&_a.isInputPending)?()=>navigator.scheduling.isInputPending():null,parseWorker=ViewPlugin.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let n=this.view.state.field(Language$1.state).context;(n.updateViewport(e.view.viewport)||this.view.viewport.to>n.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(n)}scheduleWork(){if(this.working)return;let{state:e}=this.view,n=e.field(Language$1.state);(n.tree!=n.context.tree||!n.context.isDone(e.doc.length))&&(this.working=requestIdle(this.work))}work(e){this.working=null;let n=Date.now();if(this.chunkEnd<n&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=n+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:A,viewport:{to:o}}=this.view,s=A.field(Language$1.state);if(s.tree==s.context.tree&&s.context.isDone(o+1e5))return;let a=Date.now()+Math.min(this.chunkBudget,100,e&&!isInputPending?Math.max(25,e.timeRemaining()-5):1e9),l=s.context.treeLen<o&&A.doc.length>o+1e3,c=s.context.work(()=>isInputPending&&isInputPending()||Date.now()>a,o+(l?0:1e5));this.chunkBudget-=Date.now()-n,(c||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:Language$1.setState.of(new LanguageState(s.context))})),this.chunkBudget>0&&!(c&&!l)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(n=>logException(this.view.state,n)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),language=Facet.define({combine(r){return r.length?r[0]:null},enables:r=>[Language$1.state,parseWorker,EditorView.contentAttributes.compute([r],e=>{let n=e.facet(r);return n&&n.name?{"data-language":n.name}:{}})]});class LanguageSupport{constructor(e,n=[]){this.language=e,this.support=n,this.extension=[e,n]}}class LanguageDescription{constructor(e,n,A,o,s,a=void 0){this.name=e,this.alias=n,this.extensions=A,this.filename=o,this.loadFunc=s,this.support=a,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(e=>this.support=e,e=>{throw this.loading=null,e}))}static of(e){let{load:n,support:A}=e;if(!n){if(!A)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");n=()=>Promise.resolve(A)}return new LanguageDescription(e.name,(e.alias||[]).concat(e.name).map(o=>o.toLowerCase()),e.extensions||[],e.filename,n,A)}static matchFilename(e,n){for(let o of e)if(o.filename&&o.filename.test(n))return o;let A=/\.([^.]+)$/.exec(n);if(A){for(let o of e)if(o.extensions.indexOf(A[1])>-1)return o}return null}static matchLanguageName(e,n,A=!0){n=n.toLowerCase();for(let o of e)if(o.alias.some(s=>s==n))return o;if(A)for(let o of e)for(let s of o.alias){let a=n.indexOf(s);if(a>-1&&(s.length>2||!/\w/.test(n[a-1])&&!/\w/.test(n[a+s.length])))return o}return null}}const indentService=Facet.define(),indentUnit=Facet.define({combine:r=>{if(!r.length)return" ";let e=r[0];if(!e||/\S/.test(e)||Array.from(e).some(n=>n!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(r[0]));return e}});function getIndentUnit(r){let e=r.facet(indentUnit);return e.charCodeAt(0)==9?r.tabSize*e.length:e.length}function indentString(r,e){let n="",A=r.tabSize,o=r.facet(indentUnit)[0];if(o==" "){for(;e>=A;)n+=" ",e-=A;o=" "}for(let s=0;s<e;s++)n+=o;return n}function getIndentation(r,e){r instanceof EditorState&&(r=new IndentContext(r));for(let A of r.state.facet(indentService)){let o=A(r,e);if(o!==void 0)return o}let n=syntaxTree(r.state);return n.length>=e?syntaxIndentation(r,n,e):null}class IndentContext{constructor(e,n={}){this.state=e,this.options=n,this.unit=getIndentUnit(e)}lineAt(e,n=1){let A=this.state.doc.lineAt(e),{simulateBreak:o,simulateDoubleBreak:s}=this.options;return o!=null&&o>=A.from&&o<=A.to?s&&o==e?{text:"",from:e}:(n<0?o<e:o<=e)?{text:A.text.slice(o-A.from),from:o}:{text:A.text.slice(0,o-A.from),from:A.from}:A}textAfterPos(e,n=1){if(this.options.simulateDoubleBreak&&e==this.options.simulateBreak)return"";let{text:A,from:o}=this.lineAt(e,n);return A.slice(e-o,Math.min(A.length,e+100-o))}column(e,n=1){let{text:A,from:o}=this.lineAt(e,n),s=this.countColumn(A,e-o),a=this.options.overrideIndentation?this.options.overrideIndentation(o):-1;return a>-1&&(s+=a-this.countColumn(A,A.search(/\S|$/))),s}countColumn(e,n=e.length){return countColumn(e,this.state.tabSize,n)}lineIndent(e,n=1){let{text:A,from:o}=this.lineAt(e,n),s=this.options.overrideIndentation;if(s){let a=s(o);if(a>-1)return a}return this.countColumn(A,A.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const indentNodeProp=new NodeProp;function syntaxIndentation(r,e,n){let A=e.resolveStack(n),o=e.resolveInner(n,-1).resolve(n,0).enterUnfinishedNodesBefore(n);if(o!=A.node){let s=[];for(let a=o;a&&!(a.from==A.node.from&&a.type==A.node.type);a=a.parent)s.push(a);for(let a=s.length-1;a>=0;a--)A={node:s[a],next:A}}return indentFor(A,r,n)}function indentFor(r,e,n){for(let A=r;A;A=A.next){let o=indentStrategy(A.node);if(o)return o(TreeIndentContext.create(e,n,A))}return 0}function ignoreClosed(r){return r.pos==r.options.simulateBreak&&r.options.simulateDoubleBreak}function indentStrategy(r){let e=r.type.prop(indentNodeProp);if(e)return e;let n=r.firstChild,A;if(n&&(A=n.type.prop(NodeProp.closedBy))){let o=r.lastChild,s=o&&A.indexOf(o.name)>-1;return a=>delimitedStrategy(a,!0,1,void 0,s&&!ignoreClosed(a)?o.from:void 0)}return r.parent==null?topIndent:null}function topIndent(){return 0}class TreeIndentContext extends IndentContext{constructor(e,n,A){super(e.state,e.options),this.base=e,this.pos=n,this.context=A}get node(){return this.context.node}static create(e,n,A){return new TreeIndentContext(e,n,A)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let n=this.state.doc.lineAt(e.from);for(;;){let A=e.resolve(n.from);for(;A.parent&&A.parent.from==A.from;)A=A.parent;if(isParent(A,e))break;n=this.state.doc.lineAt(A.from)}return this.lineIndent(n.from)}continue(){return indentFor(this.context.next,this.base,this.pos)}}function isParent(r,e){for(let n=e;n;n=n.parent)if(r==n)return!0;return!1}function bracketedAligned(r){let e=r.node,n=e.childAfter(e.from),A=e.lastChild;if(!n)return null;let o=r.options.simulateBreak,s=r.state.doc.lineAt(n.from),a=o==null||o<=s.from?s.to:Math.min(s.to,o);for(let l=n.to;;){let c=e.childAfter(l);if(!c||c==A)return null;if(!c.type.isSkipped){if(c.from>=a)return null;let g=/^ */.exec(s.text.slice(n.to-s.from))[0].length;return{from:n.from,to:n.to+g}}l=c.to}}function delimitedIndent({closing:r,align:e=!0,units:n=1}){return A=>delimitedStrategy(A,e,n,r)}function delimitedStrategy(r,e,n,A,o){let s=r.textAfter,a=s.match(/^\s*/)[0].length,l=A&&s.slice(a,a+A.length)==A||o==r.pos+a,c=e?bracketedAligned(r):null;return c?l?r.column(c.from):r.column(c.to):r.baseIndent+(l?0:r.unit*n)}const flatIndent=r=>r.baseIndent;function continuedIndent({except:r,units:e=1}={}){return n=>{let A=r&&r.test(n.textAfter);return n.baseIndent+(A?0:e*n.unit)}}const DontIndentBeyond=200;function indentOnInput(){return EditorState.transactionFilter.of(r=>{if(!r.docChanged||!r.isUserEvent("input.type")&&!r.isUserEvent("input.complete"))return r;let e=r.startState.languageDataAt("indentOnInput",r.startState.selection.main.head);if(!e.length)return r;let n=r.newDoc,{head:A}=r.newSelection.main,o=n.lineAt(A);if(A>o.from+DontIndentBeyond)return r;let s=n.sliceString(o.from,A);if(!e.some(g=>g.test(s)))return r;let{state:a}=r,l=-1,c=[];for(let{head:g}of a.selection.ranges){let h=a.doc.lineAt(g);if(h.from==l)continue;l=h.from;let d=getIndentation(a,h.from);if(d==null)continue;let u=/^\s*/.exec(h.text)[0],f=indentString(a,d);u!=f&&c.push({from:h.from,to:h.from+u.length,insert:f})}return c.length?[r,{changes:c,sequential:!0}]:r})}const foldService=Facet.define(),foldNodeProp=new NodeProp;function foldInside(r){let e=r.firstChild,n=r.lastChild;return e&&e.to<n.from?{from:e.to,to:n.type.isError?r.to:n.from}:null}function syntaxFolding(r,e,n){let A=syntaxTree(r);if(A.length<n)return null;let o=A.resolveStack(n,1),s=null;for(let a=o;a;a=a.next){let l=a.node;if(l.to<=n||l.from>n)continue;if(s&&l.from<e)break;let c=l.type.prop(foldNodeProp);if(c&&(l.to<A.length-50||A.length==r.doc.length||!isUnfinished(l))){let g=c(l,r);g&&g.from<=n&&g.from>=e&&g.to>n&&(s=g)}}return s}function isUnfinished(r){let e=r.lastChild;return e&&e.to==r.to&&e.type.isError}function foldable(r,e,n){for(let A of r.facet(foldService)){let o=A(r,e,n);if(o)return o}return syntaxFolding(r,e,n)}function mapRange(r,e){let n=e.mapPos(r.from,1),A=e.mapPos(r.to,-1);return n>=A?void 0:{from:n,to:A}}const foldEffect=StateEffect.define({map:mapRange}),unfoldEffect=StateEffect.define({map:mapRange});function selectedLines(r){let e=[];for(let{head:n}of r.state.selection.ranges)e.some(A=>A.from<=n&&A.to>=n)||e.push(r.lineBlockAt(n));return e}const foldState=StateField.define({create(){return Decoration.none},update(r,e){r=r.map(e.changes);for(let n of e.effects)if(n.is(foldEffect)&&!foldExists(r,n.value.from,n.value.to)){let{preparePlaceholder:A}=e.state.facet(foldConfig),o=A?Decoration.replace({widget:new PreparedFoldWidget(A(e.state,n.value))}):foldWidget;r=r.update({add:[o.range(n.value.from,n.value.to)]})}else n.is(unfoldEffect)&&(r=r.update({filter:(A,o)=>n.value.from!=A||n.value.to!=o,filterFrom:n.value.from,filterTo:n.value.to}));if(e.selection){let n=!1,{head:A}=e.selection.main;r.between(A,A,(o,s)=>{o<A&&s>A&&(n=!0)}),n&&(r=r.update({filterFrom:A,filterTo:A,filter:(o,s)=>s<=A||o>=A}))}return r},provide:r=>EditorView.decorations.from(r),toJSON(r,e){let n=[];return r.between(0,e.doc.length,(A,o)=>{n.push(A,o)}),n},fromJSON(r){if(!Array.isArray(r)||r.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let n=0;n<r.length;){let A=r[n++],o=r[n++];if(typeof A!="number"||typeof o!="number")throw new RangeError("Invalid JSON for fold state");e.push(foldWidget.range(A,o))}return Decoration.set(e,!0)}});function findFold(r,e,n){var A;let o=null;return(A=r.field(foldState,!1))===null||A===void 0||A.between(e,n,(s,a)=>{(!o||o.from>s)&&(o={from:s,to:a})}),o}function foldExists(r,e,n){let A=!1;return r.between(e,e,(o,s)=>{o==e&&s==n&&(A=!0)}),A}function maybeEnable(r,e){return r.field(foldState,!1)?e:e.concat(StateEffect.appendConfig.of(codeFolding()))}const foldCode=r=>{for(let e of selectedLines(r)){let n=foldable(r.state,e.from,e.to);if(n)return r.dispatch({effects:maybeEnable(r.state,[foldEffect.of(n),announceFold(r,n)])}),!0}return!1},unfoldCode=r=>{if(!r.state.field(foldState,!1))return!1;let e=[];for(let n of selectedLines(r)){let A=findFold(r.state,n.from,n.to);A&&e.push(unfoldEffect.of(A),announceFold(r,A,!1))}return e.length&&r.dispatch({effects:e}),e.length>0};function announceFold(r,e,n=!0){let A=r.state.doc.lineAt(e.from).number,o=r.state.doc.lineAt(e.to).number;return EditorView.announce.of(`${r.state.phrase(n?"Folded lines":"Unfolded lines")} ${A} ${r.state.phrase("to")} ${o}.`)}const foldAll=r=>{let{state:e}=r,n=[];for(let A=0;A<e.doc.length;){let o=r.lineBlockAt(A),s=foldable(e,o.from,o.to);s&&n.push(foldEffect.of(s)),A=(s?r.lineBlockAt(s.to):o).to+1}return n.length&&r.dispatch({effects:maybeEnable(r.state,n)}),!!n.length},unfoldAll=r=>{let e=r.state.field(foldState,!1);if(!e||!e.size)return!1;let n=[];return e.between(0,r.state.doc.length,(A,o)=>{n.push(unfoldEffect.of({from:A,to:o}))}),r.dispatch({effects:n}),!0},foldKeymap=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:foldCode},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:unfoldCode},{key:"Ctrl-Alt-[",run:foldAll},{key:"Ctrl-Alt-]",run:unfoldAll}],defaultConfig={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},foldConfig=Facet.define({combine(r){return combineConfig(r,defaultConfig)}});function codeFolding(r){return[foldState,baseTheme$1]}function widgetToDOM(r,e){let{state:n}=r,A=n.facet(foldConfig),o=a=>{let l=r.lineBlockAt(r.posAtDOM(a.target)),c=findFold(r.state,l.from,l.to);c&&r.dispatch({effects:unfoldEffect.of(c)}),a.preventDefault()};if(A.placeholderDOM)return A.placeholderDOM(r,o,e);let s=document.createElement("span");return s.textContent=A.placeholderText,s.setAttribute("aria-label",n.phrase("folded code")),s.title=n.phrase("unfold"),s.className="cm-foldPlaceholder",s.onclick=o,s}const foldWidget=Decoration.replace({widget:new class extends WidgetType{toDOM(r){return widgetToDOM(r,null)}}});class PreparedFoldWidget extends WidgetType{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return widgetToDOM(e,this.value)}}const foldGutterDefaults={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class FoldMarker extends GutterMarker{constructor(e,n){super(),this.config=e,this.open=n}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let n=document.createElement("span");return n.textContent=this.open?this.config.openText:this.config.closedText,n.title=e.state.phrase(this.open?"Fold line":"Unfold line"),n}}function foldGutter(r={}){let e=Object.assign(Object.assign({},foldGutterDefaults),r),n=new FoldMarker(e,!0),A=new FoldMarker(e,!1),o=ViewPlugin.fromClass(class{constructor(a){this.from=a.viewport.from,this.markers=this.buildMarkers(a)}update(a){(a.docChanged||a.viewportChanged||a.startState.facet(language)!=a.state.facet(language)||a.startState.field(foldState,!1)!=a.state.field(foldState,!1)||syntaxTree(a.startState)!=syntaxTree(a.state)||e.foldingChanged(a))&&(this.markers=this.buildMarkers(a.view))}buildMarkers(a){let l=new RangeSetBuilder;for(let c of a.viewportLineBlocks){let g=findFold(a.state,c.from,c.to)?A:foldable(a.state,c.from,c.to)?n:null;g&&l.add(c.from,c.from,g)}return l.finish()}}),{domEventHandlers:s}=e;return[o,gutter({class:"cm-foldGutter",markers(a){var l;return((l=a.plugin(o))===null||l===void 0?void 0:l.markers)||RangeSet.empty},initialSpacer(){return new FoldMarker(e,!1)},domEventHandlers:Object.assign(Object.assign({},s),{click:(a,l,c)=>{if(s.click&&s.click(a,l,c))return!0;let g=findFold(a.state,l.from,l.to);if(g)return a.dispatch({effects:unfoldEffect.of(g)}),!0;let h=foldable(a.state,l.from,l.to);return h?(a.dispatch({effects:foldEffect.of(h)}),!0):!1}})}),codeFolding()]}const baseTheme$1=EditorView.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class HighlightStyle{constructor(e,n){this.specs=e;let A;function o(l){let c=StyleModule.newName();return(A||(A=Object.create(null)))["."+c]=l,c}const s=typeof n.all=="string"?n.all:n.all?o(n.all):void 0,a=n.scope;this.scope=a instanceof Language$1?l=>l.prop(languageDataProp)==a.data:a?l=>l==a:void 0,this.style=tagHighlighter(e.map(l=>({tag:l.tag,class:l.class||o(Object.assign({},l,{tag:null}))})),{all:s}).style,this.module=A?new StyleModule(A):null,this.themeType=n.themeType}static define(e,n){return new HighlightStyle(e,n||{})}}const highlighterFacet=Facet.define(),fallbackHighlighter=Facet.define({combine(r){return r.length?[r[0]]:null}});function getHighlighters(r){let e=r.facet(highlighterFacet);return e.length?e:r.facet(fallbackHighlighter)}function syntaxHighlighting(r,e){let n=[treeHighlighter],A;return r instanceof HighlightStyle&&(r.module&&n.push(EditorView.styleModule.of(r.module)),A=r.themeType),e?.fallback?n.push(fallbackHighlighter.of(r)):A?n.push(highlighterFacet.computeN([EditorView.darkTheme],o=>o.facet(EditorView.darkTheme)==(A=="dark")?[r]:[])):n.push(highlighterFacet.of(r)),n}class TreeHighlighter{constructor(e){this.markCache=Object.create(null),this.tree=syntaxTree(e.state),this.decorations=this.buildDeco(e,getHighlighters(e.state)),this.decoratedTo=e.viewport.to}update(e){let n=syntaxTree(e.state),A=getHighlighters(e.state),o=A!=getHighlighters(e.startState),{viewport:s}=e.view,a=e.changes.mapPos(this.decoratedTo,1);n.length<s.to&&!o&&n.type==this.tree.type&&a>=s.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=a):(n!=this.tree||e.viewportChanged||o)&&(this.tree=n,this.decorations=this.buildDeco(e.view,A),this.decoratedTo=s.to)}buildDeco(e,n){if(!n||!this.tree.length)return Decoration.none;let A=new RangeSetBuilder;for(let{from:o,to:s}of e.visibleRanges)highlightTree(this.tree,n,(a,l,c)=>{A.add(a,l,this.markCache[c]||(this.markCache[c]=Decoration.mark({class:c})))},o,s);return A.finish()}}const treeHighlighter=Prec.high(ViewPlugin.fromClass(TreeHighlighter,{decorations:r=>r.decorations})),defaultHighlightStyle=HighlightStyle.define([{tag:tags.meta,color:"#404740"},{tag:tags.link,textDecoration:"underline"},{tag:tags.heading,textDecoration:"underline",fontWeight:"bold"},{tag:tags.emphasis,fontStyle:"italic"},{tag:tags.strong,fontWeight:"bold"},{tag:tags.strikethrough,textDecoration:"line-through"},{tag:tags.keyword,color:"#708"},{tag:[tags.atom,tags.bool,tags.url,tags.contentSeparator,tags.labelName],color:"#219"},{tag:[tags.literal,tags.inserted],color:"#164"},{tag:[tags.string,tags.deleted],color:"#a11"},{tag:[tags.regexp,tags.escape,tags.special(tags.string)],color:"#e40"},{tag:tags.definition(tags.variableName),color:"#00f"},{tag:tags.local(tags.variableName),color:"#30a"},{tag:[tags.typeName,tags.namespace],color:"#085"},{tag:tags.className,color:"#167"},{tag:[tags.special(tags.variableName),tags.macroName],color:"#256"},{tag:tags.definition(tags.propertyName),color:"#00c"},{tag:tags.comment,color:"#940"},{tag:tags.invalid,color:"#f00"}]),baseTheme$2=EditorView.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),DefaultScanDist=1e4,DefaultBrackets="()[]{}",bracketMatchingConfig=Facet.define({combine(r){return combineConfig(r,{afterCursor:!0,brackets:DefaultBrackets,maxScanDistance:DefaultScanDist,renderMatch:defaultRenderMatch})}}),matchingMark=Decoration.mark({class:"cm-matchingBracket"}),nonmatchingMark=Decoration.mark({class:"cm-nonmatchingBracket"});function defaultRenderMatch(r){let e=[],n=r.matched?matchingMark:nonmatchingMark;return e.push(n.range(r.start.from,r.start.to)),r.end&&e.push(n.range(r.end.from,r.end.to)),e}const bracketMatchingState=StateField.define({create(){return Decoration.none},update(r,e){if(!e.docChanged&&!e.selection)return r;let n=[],A=e.state.facet(bracketMatchingConfig);for(let o of e.state.selection.ranges){if(!o.empty)continue;let s=matchBrackets(e.state,o.head,-1,A)||o.head>0&&matchBrackets(e.state,o.head-1,1,A)||A.afterCursor&&(matchBrackets(e.state,o.head,1,A)||o.head<e.state.doc.length&&matchBrackets(e.state,o.head+1,-1,A));s&&(n=n.concat(A.renderMatch(s,e.state)))}return Decoration.set(n,!0)},provide:r=>EditorView.decorations.from(r)}),bracketMatchingUnique=[bracketMatchingState,baseTheme$2];function bracketMatching(r={}){return[bracketMatchingConfig.of(r),bracketMatchingUnique]}const bracketMatchingHandle=new NodeProp;function matchingNodes(r,e,n){let A=r.prop(e<0?NodeProp.openedBy:NodeProp.closedBy);if(A)return A;if(r.name.length==1){let o=n.indexOf(r.name);if(o>-1&&o%2==(e<0?1:0))return[n[o+e]]}return null}function findHandle(r){let e=r.type.prop(bracketMatchingHandle);return e?e(r.node):r}function matchBrackets(r,e,n,A={}){let o=A.maxScanDistance||DefaultScanDist,s=A.brackets||DefaultBrackets,a=syntaxTree(r),l=a.resolveInner(e,n);for(let c=l;c;c=c.parent){let g=matchingNodes(c.type,n,s);if(g&&c.from<c.to){let h=findHandle(c);if(h&&(n>0?e>=h.from&&e<h.to:e>h.from&&e<=h.to))return matchMarkedBrackets(r,e,n,c,h,g,s)}}return matchPlainBrackets(r,e,n,a,l.type,o,s)}function matchMarkedBrackets(r,e,n,A,o,s,a){let l=A.parent,c={from:o.from,to:o.to},g=0,h=l?.cursor();if(h&&(n<0?h.childBefore(A.from):h.childAfter(A.to)))do if(n<0?h.to<=A.from:h.from>=A.to){if(g==0&&s.indexOf(h.type.name)>-1&&h.from<h.to){let d=findHandle(h);return{start:c,end:d?{from:d.from,to:d.to}:void 0,matched:!0}}else if(matchingNodes(h.type,n,a))g++;else if(matchingNodes(h.type,-n,a)){if(g==0){let d=findHandle(h);return{start:c,end:d&&d.from<d.to?{from:d.from,to:d.to}:void 0,matched:!1}}g--}}while(n<0?h.prevSibling():h.nextSibling());return{start:c,matched:!1}}function matchPlainBrackets(r,e,n,A,o,s,a){let l=n<0?r.sliceDoc(e-1,e):r.sliceDoc(e,e+1),c=a.indexOf(l);if(c<0||c%2==0!=n>0)return null;let g={from:n<0?e-1:e,to:n>0?e+1:e},h=r.doc.iterRange(e,n>0?r.doc.length:0),d=0;for(let u=0;!h.next().done&&u<=s;){let f=h.value;n<0&&(u+=f.length);let I=e+u*n;for(let p=n>0?0:f.length-1,m=n>0?f.length:-1;p!=m;p+=n){let E=a.indexOf(f[p]);if(!(E<0||A.resolveInner(I+p,1).type!=o))if(E%2==0==n>0)d++;else{if(d==1)return{start:g,end:{from:I+p,to:I+p+1},matched:E>>1==c>>1};d--}}n>0&&(u+=f.length)}return h.done?{start:g,matched:!1}:null}function countCol(r,e,n,A=0,o=0){e==null&&(e=r.search(/[^\s\u00a0]/),e==-1&&(e=r.length));let s=o;for(let a=A;a<e;a++)r.charCodeAt(a)==9?s+=n-s%n:s++;return s}class StringStream{constructor(e,n,A,o){this.string=e,this.tabSize=n,this.indentUnit=A,this.overrideIndent=o,this.pos=0,this.start=0,this.lastColumnPos=0,this.lastColumnValue=0}eol(){return this.pos>=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)}eat(e){let n=this.string.charAt(this.pos),A;if(typeof e=="string"?A=n==e:A=n&&(e instanceof RegExp?e.test(n):e(n)),A)return++this.pos,n}eatWhile(e){let n=this.pos;for(;this.eat(e););return this.pos>n}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let n=this.string.indexOf(e,this.pos);if(n>-1)return this.pos=n,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPos<this.start&&(this.lastColumnValue=countCol(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue}indentation(){var e;return(e=this.overrideIndent)!==null&&e!==void 0?e:countCol(this.string,null,this.tabSize)}match(e,n,A){if(typeof e=="string"){let o=a=>A?a.toLowerCase():a,s=this.string.substr(this.pos,e.length);return o(s)==o(e)?(n!==!1&&(this.pos+=e.length),!0):null}else{let o=this.string.slice(this.pos).match(e);return o&&o.index>0?null:(o&&n!==!1&&(this.pos+=o[0].length),o)}}current(){return this.string.slice(this.start,this.pos)}}function fullParser(r){return{name:r.name||"",token:r.token,blankLine:r.blankLine||(()=>{}),startState:r.startState||(()=>!0),copyState:r.copyState||defaultCopyState,indent:r.indent||(()=>null),languageData:r.languageData||{},tokenTable:r.tokenTable||noTokens,mergeTokens:r.mergeTokens!==!1}}function defaultCopyState(r){if(typeof r!="object")return r;let e={};for(let n in r){let A=r[n];e[n]=A instanceof Array?A.slice():A}return e}const IndentedFrom=new WeakMap;class StreamLanguage extends Language$1{constructor(e){let n=defineLanguageFacet(e.languageData),A=fullParser(e),o,s=new class extends Parser$1{createParse(a,l,c){return new Parse(o,a,l,c)}};super(n,s,[],e.name),this.topNode=docID(n,this),o=this,this.streamParser=A,this.stateAfter=new NodeProp({perNode:!0}),this.tokenTable=e.tokenTable?new TokenTable(A.tokenTable):defaultTokenTable}static define(e){return new StreamLanguage(e)}getIndent(e){let n,{overrideIndentation:A}=e.options;A&&(n=IndentedFrom.get(e.state),n!=null&&n<e.pos-1e4&&(n=void 0));let o=findState(this,e.node.tree,e.node.from,e.node.from,n??e.pos),s,a;if(o?(a=o.state,s=o.pos+1):(a=this.streamParser.startState(e.unit),s=e.node.from),e.pos-s>1e4)return null;for(;s<e.pos;){let c=e.state.doc.lineAt(s),g=Math.min(e.pos,c.to);if(c.length){let h=A?A(c.from):-1,d=new StringStream(c.text,e.state.tabSize,e.unit,h<0?void 0:h);for(;d.pos<g-c.from;)readToken(this.streamParser.token,d,a)}else this.streamParser.blankLine(a,e.unit);if(g==e.pos)break;s=c.to+1}let l=e.lineAt(e.pos);return A&&n==null&&IndentedFrom.set(e.state,l.from),this.streamParser.indent(a,/^\s*(.*)/.exec(l.text)[1],e)}get allowsNesting(){return!1}}function findState(r,e,n,A,o){let s=n>=A&&n+e.length<=o&&e.prop(r.stateAfter);if(s)return{state:r.streamParser.copyState(s),pos:n+e.length};for(let a=e.children.length-1;a>=0;a--){let l=e.children[a],c=n+e.positions[a],g=l instanceof Tree$1&&c<o&&findState(r,l,c,A,o);if(g)return g}return null}function cutTree(r,e,n,A,o){if(o&&n<=0&&A>=e.length)return e;!o&&n==0&&e.type==r.topNode&&(o=!0);for(let s=e.children.length-1;s>=0;s--){let a=e.positions[s],l=e.children[s],c;if(a<A&&l instanceof Tree$1){if(!(c=cutTree(r,l,n-a,A-a,o)))break;return o?new Tree$1(e.type,e.children.slice(0,s).concat(c),e.positions.slice(0,s+1),a+c.length):c}}return null}function findStartInFragments(r,e,n,A,o){for(let s of e){let a=s.from+(s.openStart?25:0),l=s.to-(s.openEnd?25:0),c=a<=n&&l>n&&findState(r,s.tree,0-s.offset,n,l),g;if(c&&c.pos<=A&&(g=cutTree(r,s.tree,n+s.offset,c.pos+s.offset,!1)))return{state:c.state,tree:g}}return{state:r.streamParser.startState(o?getIndentUnit(o):4),tree:Tree$1.empty}}class Parse{constructor(e,n,A,o){this.lang=e,this.input=n,this.fragments=A,this.ranges=o,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=o[o.length-1].to;let s=ParseContext.get(),a=o[0].from,{state:l,tree:c}=findStartInFragments(e,A,a,this.to,s?.state);this.state=l,this.parsedPos=this.chunkStart=a+c.length;for(let g=0;g<c.children.length;g++)this.chunks.push(c.children[g]),this.chunkPos.push(c.positions[g]);s&&this.parsedPos<s.viewport.from-1e5&&o.some(g=>g.from<=s.viewport.from&&g.to>=s.viewport.from)&&(this.state=this.lang.streamParser.startState(getIndentUnit(s.state)),s.skipUntilInView(this.parsedPos,s.viewport.from),this.parsedPos=s.viewport.from),this.moveRangeIndex()}advance(){let e=ParseContext.get(),n=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),A=Math.min(n,this.chunkStart+2048);for(e&&(A=Math.min(A,e.viewport.to));this.parsedPos<A;)this.parseLine(e);return this.chunkStart<this.parsedPos&&this.finishChunk(),this.parsedPos>=n?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,n),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let n=this.input.chunk(e);if(this.input.lineChunks)n==`
25
+ `&&(n="");else{let A=n.indexOf(`
26
+ `);A>-1&&(n=n.slice(0,A))}return e+n.length<=this.to?n:n.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,n=this.lineAfter(e),A=e+n.length;for(let o=this.rangeIndex;;){let s=this.ranges[o].to;if(s>=A||(n=n.slice(0,s-(A-n.length)),o++,o==this.ranges.length))break;let a=this.ranges[o].from,l=this.lineAfter(a);n+=l,A=a+l.length}return{line:n,end:A}}skipGapsTo(e,n,A){for(;;){let o=this.ranges[this.rangeIndex].to,s=e+n;if(A>0?o>s:o>=s)break;let a=this.ranges[++this.rangeIndex].from;n+=a-o}return n}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to<this.parsedPos;)this.rangeIndex++}emitToken(e,n,A,o){let s=4;if(this.ranges.length>1){o=this.skipGapsTo(n,o,1),n+=o;let l=this.chunk.length;o=this.skipGapsTo(A,o,-1),A+=o,s+=this.chunk.length-l}let a=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&s==4&&a>=0&&this.chunk[a]==e&&this.chunk[a+2]==n?this.chunk[a+2]=A:this.chunk.push(e,n,A,s),o}parseLine(e){let{line:n,end:A}=this.nextLine(),o=0,{streamParser:s}=this.lang,a=new StringStream(n,e?e.state.tabSize:4,e?getIndentUnit(e.state):2);if(a.eol())s.blankLine(this.state,a.indentUnit);else for(;!a.eol();){let l=readToken(s.token,a,this.state);if(l&&(o=this.emitToken(this.lang.tokenTable.resolve(l),this.parsedPos+a.start,this.parsedPos+a.pos,o)),a.start>1e4)break}this.parsedPos=A,this.moveRangeIndex(),this.parsedPos<this.to&&this.parsedPos++}finishChunk(){let e=Tree$1.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet,topID:0,maxBufferLength:2048,reused:this.chunkReused});e=new Tree$1(e.type,e.children,e.positions,e.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]),this.chunks.push(e),this.chunkPos.push(this.chunkStart-this.ranges[0].from),this.chunk=[],this.chunkReused=void 0,this.chunkStart=this.parsedPos}finish(){return new Tree$1(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}}function readToken(r,e,n){e.start=e.pos;for(let A=0;A<10;A++){let o=r(e,n);if(e.pos>e.start)return o}throw new Error("Stream parser failed to advance stream.")}const noTokens=Object.create(null),typeArray=[NodeType.none],nodeSet=new NodeSet(typeArray),warned=[],byTag=Object.create(null),defaultTable=Object.create(null);for(let[r,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])defaultTable[r]=createTokenType(noTokens,e);class TokenTable{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),defaultTable)}resolve(e){return e?this.table[e]||(this.table[e]=createTokenType(this.extra,e)):0}}const defaultTokenTable=new TokenTable(noTokens);function warnForPart(r,e){warned.indexOf(r)>-1||(warned.push(r),console.warn(e))}function createTokenType(r,e){let n=[];for(let l of e.split(" ")){let c=[];for(let g of l.split(".")){let h=r[g]||tags[g];h?typeof h=="function"?c.length?c=c.map(h):warnForPart(g,`Modifier ${g} used at start of tag`):c.length?warnForPart(g,`Tag ${g} used as modifier`):c=Array.isArray(h)?h:[h]:warnForPart(g,`Unknown highlighting tag ${g}`)}for(let g of c)n.push(g)}if(!n.length)return 0;let A=e.replace(/ /g,"_"),o=A+" "+n.map(l=>l.id),s=byTag[o];if(s)return s.id;let a=byTag[o]=NodeType.define({id:typeArray.length,name:A,props:[styleTags({[A]:n})]});return typeArray.push(a),a.id}function docID(r,e){let n=NodeType.define({id:typeArray.length,name:"Document",props:[languageDataProp.add(()=>r),indentNodeProp.add(()=>A=>e.getIndent(A))],top:!0});return typeArray.push(n),n}Direction.RTL,Direction.LTR;const createTheme=({variant:r,settings:e,styles:n})=>{const A=EditorView.theme({"&":{backgroundColor:e.background,color:e.foreground},".cm-content":{caretColor:e.caret},".cm-cursor, .cm-dropCursor":{borderLeftColor:e.caret},"&.cm-focused .cm-selectionBackgroundm .cm-selectionBackground, .cm-content ::selection":{backgroundColor:e.selection},".cm-activeLine":{backgroundColor:e.lineHighlight},".cm-gutters":{backgroundColor:e.gutterBackground,color:e.gutterForeground},".cm-activeLineGutter":{backgroundColor:e.lineHighlight}},{dark:r==="dark"}),o=HighlightStyle.define(n);return[A,syntaxHighlighting(o)]};createTheme({variant:"dark",settings:{background:"#200020",foreground:"#D0D0FF",caret:"#7070FF",selection:"#80000080",gutterBackground:"#200020",gutterForeground:"#C080C0",lineHighlight:"#80000040"},styles:[{tag:tags.comment,color:"#404080"},{tag:[tags.string,tags.regexp],color:"#999999"},{tag:tags.number,color:"#7090B0"},{tag:[tags.bool,tags.null],color:"#8080A0"},{tag:[tags.punctuation,tags.derefOperator],color:"#805080"},{tag:tags.keyword,color:"#60B0FF"},{tag:tags.definitionKeyword,color:"#B0FFF0"},{tag:tags.moduleKeyword,color:"#60B0FF"},{tag:tags.operator,color:"#A0A0FF"},{tag:[tags.variableName,tags.self],color:"#008080"},{tag:tags.operatorKeyword,color:"#A0A0FF"},{tag:tags.controlKeyword,color:"#80A0FF"},{tag:tags.className,color:"#70E080"},{tag:[tags.function(tags.propertyName),tags.propertyName],color:"#50A0A0"},{tag:tags.tagName,color:"#009090"},{tag:tags.modifier,color:"#B0FFF0"},{tag:[tags.squareBracket,tags.attributeName],color:"#D0D0FF"}]});createTheme({variant:"light",settings:{background:"#fcfcfc",foreground:"#5c6166",caret:"#ffaa33",selection:"#036dd626",gutterBackground:"#fcfcfc",gutterForeground:"#8a919966",lineHighlight:"#8a91991a"},styles:[{tag:tags.comment,color:"#787b8099"},{tag:tags.string,color:"#86b300"},{tag:tags.regexp,color:"#4cbf99"},{tag:[tags.number,tags.bool,tags.null],color:"#ffaa33"},{tag:tags.variableName,color:"#5c6166"},{tag:[tags.definitionKeyword,tags.modifier],color:"#fa8d3e"},{tag:[tags.keyword,tags.special(tags.brace)],color:"#fa8d3e"},{tag:tags.operator,color:"#ed9366"},{tag:tags.separator,color:"#5c6166b3"},{tag:tags.punctuation,color:"#5c6166"},{tag:[tags.definition(tags.propertyName),tags.function(tags.variableName)],color:"#f2ae49"},{tag:[tags.className,tags.definition(tags.typeName)],color:"#22a4e6"},{tag:[tags.tagName,tags.typeName,tags.self,tags.labelName],color:"#55b4d4"},{tag:tags.angleBracket,color:"#55b4d480"},{tag:tags.attributeName,color:"#f2ae49"}]});createTheme({variant:"dark",settings:{background:"#15191EFA",foreground:"#EEF2F7",caret:"#C4C4C4",selection:"#90B2D557",gutterBackground:"#15191EFA",gutterForeground:"#aaaaaa95",lineHighlight:"#57575712"},styles:[{tag:tags.comment,color:"#6E6E6E"},{tag:[tags.string,tags.regexp,tags.special(tags.brace)],color:"#5C81B3"},{tag:tags.number,color:"#C1E1B8"},{tag:tags.bool,color:"#53667D"},{tag:[tags.definitionKeyword,tags.modifier,tags.function(tags.propertyName)],color:"#A3D295",fontWeight:"bold"},{tag:[tags.keyword,tags.moduleKeyword,tags.operatorKeyword,tags.operator],color:"#697A8E",fontWeight:"bold"},{tag:[tags.variableName,tags.attributeName],color:"#708E67"},{tag:[tags.function(tags.variableName),tags.definition(tags.propertyName),tags.derefOperator],color:"#fff"},{tag:tags.tagName,color:"#A3D295"}]});createTheme({variant:"dark",settings:{background:"#2e241d",foreground:"#BAAE9E",caret:"#A7A7A7",selection:"#DDF0FF33",gutterBackground:"#28211C",gutterForeground:"#BAAE9E90",lineHighlight:"#FFFFFF08"},styles:[{tag:tags.comment,color:"#666666"},{tag:[tags.string,tags.special(tags.brace)],color:"#54BE0D"},{tag:tags.regexp,color:"#E9C062"},{tag:tags.number,color:"#CF6A4C"},{tag:[tags.keyword,tags.operator],color:"#5EA6EA"},{tag:tags.variableName,color:"#7587A6"},{tag:[tags.definitionKeyword,tags.modifier],color:"#F9EE98"},{tag:[tags.propertyName,tags.function(tags.variableName)],color:"#937121"},{tag:[tags.typeName,tags.angleBracket,tags.tagName],color:"#9B859D"}]});createTheme({variant:"dark",settings:{background:"#3b2627",foreground:"#E6E1C4",caret:"#E6E1C4",selection:"#16120E",gutterBackground:"#3b2627",gutterForeground:"#E6E1C490",lineHighlight:"#1F1611"},styles:[{tag:tags.comment,color:"#6B4E32"},{tag:[tags.keyword,tags.operator,tags.derefOperator],color:"#EF5D32"},{tag:tags.className,color:"#EFAC32",fontWeight:"bold"},{tag:[tags.typeName,tags.propertyName,tags.function(tags.variableName),tags.definition(tags.variableName)],color:"#EFAC32"},{tag:tags.definition(tags.typeName),color:"#EFAC32",fontWeight:"bold"},{tag:tags.labelName,color:"#EFAC32",fontWeight:"bold"},{tag:[tags.number,tags.bool],color:"#6C99BB"},{tag:[tags.variableName,tags.self],color:"#7DAF9C"},{tag:[tags.string,tags.special(tags.brace),tags.regexp],color:"#D9D762"},{tag:[tags.angleBracket,tags.tagName,tags.attributeName],color:"#EFCB43"}]});createTheme({variant:"dark",settings:{background:"#000205",foreground:"#FFFFFF",caret:"#E60065",selection:"#E60C6559",gutterBackground:"#000205",gutterForeground:"#ffffff90",lineHighlight:"#4DD7FC1A"},styles:[{tag:tags.comment,color:"#404040"},{tag:[tags.string,tags.special(tags.brace),tags.regexp],color:"#00D8FF"},{tag:tags.number,color:"#E62286"},{tag:[tags.variableName,tags.attributeName,tags.self],color:"#E62286",fontWeight:"bold"},{tag:tags.function(tags.variableName),color:"#fff",fontWeight:"bold"}]});createTheme({variant:"light",settings:{background:"#fff",foreground:"#000",caret:"#000",selection:"#BDD5FC",gutterBackground:"#fff",gutterForeground:"#00000070",lineHighlight:"#FFFBD1"},styles:[{tag:tags.comment,color:"#BCC8BA"},{tag:[tags.string,tags.special(tags.brace),tags.regexp],color:"#5D90CD"},{tag:[tags.number,tags.bool,tags.null],color:"#46A609"},{tag:tags.keyword,color:"#AF956F"},{tag:[tags.definitionKeyword,tags.modifier],color:"#C52727"},{tag:[tags.angleBracket,tags.tagName,tags.attributeName],color:"#606060"},{tag:tags.self,color:"#000"}]});createTheme({variant:"dark",settings:{background:"#00254b",foreground:"#FFFFFF",caret:"#FFFFFF",selection:"#B36539BF",gutterBackground:"#00254b",gutterForeground:"#FFFFFF70",lineHighlight:"#00000059"},styles:[{tag:tags.comment,color:"#0088FF"},{tag:tags.string,color:"#3AD900"},{tag:tags.regexp,color:"#80FFC2"},{tag:[tags.number,tags.bool,tags.null],color:"#FF628C"},{tag:[tags.definitionKeyword,tags.modifier],color:"#FFEE80"},{tag:tags.variableName,color:"#CCCCCC"},{tag:tags.self,color:"#FF80E1"},{tag:[tags.className,tags.definition(tags.propertyName),tags.function(tags.variableName),tags.definition(tags.typeName),tags.labelName],color:"#FFDD00"},{tag:[tags.keyword,tags.operator],color:"#FF9D00"},{tag:[tags.propertyName,tags.typeName],color:"#80FFBB"},{tag:tags.special(tags.brace),color:"#EDEF7D"},{tag:tags.attributeName,color:"#9EFFFF"},{tag:tags.derefOperator,color:"#fff"}]});createTheme({variant:"dark",settings:{background:"#060521",foreground:"#E0E0E0",caret:"#FFFFFFA6",selection:"#122BBB",gutterBackground:"#060521",gutterForeground:"#E0E0E090",lineHighlight:"#FFFFFF0F"},styles:[{tag:tags.comment,color:"#AEAEAE"},{tag:[tags.string,tags.special(tags.brace),tags.regexp],color:"#8DFF8E"},{tag:[tags.className,tags.definition(tags.propertyName),tags.function(tags.variableName),tags.function(tags.definition(tags.variableName)),tags.definition(tags.typeName)],color:"#A3EBFF"},{tag:[tags.number,tags.bool,tags.null],color:"#62E9BD"},{tag:[tags.keyword,tags.operator],color:"#2BF1DC"},{tag:[tags.definitionKeyword,tags.modifier],color:"#F8FBB1"},{tag:[tags.variableName,tags.self],color:"#B683CA"},{tag:[tags.angleBracket,tags.tagName,tags.typeName,tags.propertyName],color:"#60A4F1"},{tag:tags.derefOperator,color:"#E0E0E0"},{tag:tags.attributeName,color:"#7BACCA"}]});const dracula=createTheme({variant:"dark",settings:{background:"#2d2f3f",foreground:"#f8f8f2",caret:"#f8f8f0",selection:"#44475a",gutterBackground:"#282a36",gutterForeground:"rgb(144, 145, 148)",lineHighlight:"#44475a"},styles:[{tag:tags.comment,color:"#6272a4"},{tag:[tags.string,tags.special(tags.brace)],color:"#f1fa8c"},{tag:[tags.number,tags.self,tags.bool,tags.null],color:"#bd93f9"},{tag:[tags.keyword,tags.operator],color:"#ff79c6"},{tag:[tags.definitionKeyword,tags.typeName],color:"#8be9fd"},{tag:tags.definition(tags.typeName),color:"#f8f8f2"},{tag:[tags.className,tags.definition(tags.propertyName),tags.function(tags.variableName),tags.attributeName],color:"#50fa7b"}]});createTheme({variant:"light",settings:{background:"#FFFFFF",foreground:"#000000",caret:"#000000",selection:"#80C7FF",gutterBackground:"#FFFFFF",gutterForeground:"#00000070",lineHighlight:"#C1E2F8"},styles:[{tag:tags.comment,color:"#AAAAAA"},{tag:[tags.keyword,tags.operator,tags.typeName,tags.tagName,tags.propertyName],color:"#2F6F9F",fontWeight:"bold"},{tag:[tags.attributeName,tags.definition(tags.propertyName)],color:"#4F9FD0"},{tag:[tags.className,tags.string,tags.special(tags.brace)],color:"#CF4F5F"},{tag:tags.number,color:"#CF4F5F",fontWeight:"bold"},{tag:tags.variableName,fontWeight:"bold"}]});createTheme({variant:"light",settings:{background:"#f2f1f8",foreground:"#0c006b",caret:"#5c49e9",selection:"#d5d1f2",gutterBackground:"#f2f1f8",gutterForeground:"#0c006b70",lineHighlight:"#e1def3"},styles:[{tag:tags.comment,color:"#9995b7"},{tag:tags.keyword,color:"#ff5792",fontWeight:"bold"},{tag:[tags.definitionKeyword,tags.modifier],color:"#ff5792"},{tag:[tags.className,tags.tagName,tags.definition(tags.typeName)],color:"#0094f0"},{tag:[tags.number,tags.bool,tags.null,tags.special(tags.brace)],color:"#5842ff"},{tag:[tags.definition(tags.propertyName),tags.function(tags.variableName)],color:"#0095a8"},{tag:tags.typeName,color:"#b3694d"},{tag:[tags.propertyName,tags.variableName],color:"#fa8900"},{tag:tags.operator,color:"#ff5792"},{tag:tags.self,color:"#e64100"},{tag:[tags.string,tags.regexp],color:"#00b368"},{tag:[tags.paren,tags.bracket],color:"#0431fa"},{tag:tags.labelName,color:"#00bdd6"},{tag:tags.attributeName,color:"#e64100"},{tag:tags.angleBracket,color:"#9995b7"}]});createTheme({variant:"light",settings:{background:"#faf4ed",foreground:"#575279",caret:"#575279",selection:"#6e6a8614",gutterBackground:"#faf4ed",gutterForeground:"#57527970",lineHighlight:"#6e6a860d"},styles:[{tag:tags.comment,color:"#9893a5"},{tag:[tags.bool,tags.null],color:"#286983"},{tag:tags.number,color:"#d7827e"},{tag:tags.className,color:"#d7827e"},{tag:[tags.angleBracket,tags.tagName,tags.typeName],color:"#56949f"},{tag:tags.attributeName,color:"#907aa9"},{tag:tags.punctuation,color:"#797593"},{tag:[tags.keyword,tags.modifier],color:"#286983"},{tag:[tags.string,tags.regexp],color:"#ea9d34"},{tag:tags.variableName,color:"#d7827e"}]});createTheme({variant:"light",settings:{background:"#FFFFFF",foreground:"#000000",caret:"#000000",selection:"#FFFD0054",gutterBackground:"#FFFFFF",gutterForeground:"#00000070",lineHighlight:"#00000008"},styles:[{tag:tags.comment,color:"#CFCFCF"},{tag:[tags.number,tags.bool,tags.null],color:"#E66C29"},{tag:[tags.className,tags.definition(tags.propertyName),tags.function(tags.variableName),tags.labelName,tags.definition(tags.typeName)],color:"#2EB43B"},{tag:tags.keyword,color:"#D8B229"},{tag:tags.operator,color:"#4EA44E",fontWeight:"bold"},{tag:[tags.definitionKeyword,tags.modifier],color:"#925A47"},{tag:tags.string,color:"#704D3D"},{tag:tags.typeName,color:"#2F8996"},{tag:[tags.variableName,tags.propertyName],color:"#77ACB0"},{tag:tags.self,color:"#77ACB0",fontWeight:"bold"},{tag:tags.regexp,color:"#E3965E"},{tag:[tags.tagName,tags.angleBracket],color:"#BAA827"},{tag:tags.attributeName,color:"#B06520"},{tag:tags.derefOperator,color:"#000"}]});createTheme({variant:"light",settings:{background:"#fef7e5",foreground:"#586E75",caret:"#000000",selection:"#073642",gutterBackground:"#fef7e5",gutterForeground:"#586E7580",lineHighlight:"#EEE8D5"},styles:[{tag:tags.comment,color:"#93A1A1"},{tag:tags.string,color:"#2AA198"},{tag:tags.regexp,color:"#D30102"},{tag:tags.number,color:"#D33682"},{tag:tags.variableName,color:"#268BD2"},{tag:[tags.keyword,tags.operator,tags.punctuation],color:"#859900"},{tag:[tags.definitionKeyword,tags.modifier],color:"#073642",fontWeight:"bold"},{tag:[tags.className,tags.self,tags.definition(tags.propertyName)],color:"#268BD2"},{tag:tags.function(tags.variableName),color:"#268BD2"},{tag:[tags.bool,tags.null],color:"#B58900"},{tag:tags.tagName,color:"#268BD2",fontWeight:"bold"},{tag:tags.angleBracket,color:"#93A1A1"},{tag:tags.attributeName,color:"#93A1A1"},{tag:tags.typeName,color:"#859900"}]});createTheme({variant:"light",settings:{background:"#FFFFFF",foreground:"#4D4D4C",caret:"#AEAFAD",selection:"#D6D6D6",gutterBackground:"#FFFFFF",gutterForeground:"#4D4D4C80",lineHighlight:"#EFEFEF"},styles:[{tag:tags.comment,color:"#8E908C"},{tag:[tags.variableName,tags.self,tags.propertyName,tags.attributeName,tags.regexp],color:"#C82829"},{tag:[tags.number,tags.bool,tags.null],color:"#F5871F"},{tag:[tags.className,tags.typeName,tags.definition(tags.typeName)],color:"#C99E00"},{tag:[tags.string,tags.special(tags.brace)],color:"#718C00"},{tag:tags.operator,color:"#3E999F"},{tag:[tags.definition(tags.propertyName),tags.function(tags.variableName)],color:"#4271AE"},{tag:tags.keyword,color:"#8959A8"},{tag:tags.derefOperator,color:"#4D4D4C"}]});function getShadowRoot(r){let e=r;for(;e;){if(e.toString()==="[object ShadowRoot]")return e;if(e instanceof ShadowRoot&&e.host)return e.host.shadowRoot||void 0;e=e.parentElement||(e instanceof ShadowRoot?e.host:void 0)}}function toRawTextResult(r,e=0){const n=r.split(`
27
+ `),A=[];let o=0,s=0;for(const a of n)A.push({nodeIdx:e,targetRow:s,targetCol:0,targetPos:o}),s++,o+=a.length+1,e+=a.length+1;return{content:r,rawTextMap:A}}function normalizeSiblings(r,e){if(r.childCount<2)return r;for(let n=e.depth;n>=0;n--){let o=e.node(n).contentMatchAt(e.index(n)),s,a=[];if(r.forEach(l=>{if(!a)return;let c=o.findWrapping(l.type),g;if(!c)return a=null;if(g=a.length&&s.length&&addToSibling(c,s,l,a[a.length-1],0))a[a.length-1]=g;else{a.length&&(a[a.length-1]=closeRight(a[a.length-1],s.length));let h=withWrappers(l,c);a.push(h),o=o.matchType(h.type),s=c}}),a)return Fragment.from(a)}return r}function withWrappers(r,e,n=0){for(let A=e.length-1;A>=n;A--)r=e[A].create(null,Fragment.from(r));return r}function addToSibling(r,e,n,A,o){if(o<r.length&&o<e.length&&r[o]==e[o]){let s=addToSibling(r,e,n,A.lastChild,o+1);if(s)return A.copy(A.content.replaceChild(A.childCount-1,s));if(A.contentMatchAt(A.childCount).matchType(o==r.length-1?n.type:r[o+1]))return A.copy(A.content.append(Fragment.from(withWrappers(n,r,o+1))))}}function closeRight(r,e){if(e==0)return r;let n=r.content.replaceChild(r.childCount-1,closeRight(r.lastChild,e-1)),A=r.contentMatchAt(r.childCount).fillBefore(Fragment.empty,!0);return r.copy(n.append(A))}function closeRange(r,e,n,A,o,s){let a=e<0?r.firstChild:r.lastChild,l=a.content;return r.childCount>1&&(s=0),o<A-1&&(l=closeRange(l,e,n,A,o+1,s)),o>=n&&(l=e<0?a.contentMatchAt(0).fillBefore(l,s<=o).append(l):l.append(a.contentMatchAt(a.childCount).fillBefore(Fragment.empty,!0))),r.replaceChild(e<0?0:r.childCount-1,a.copy(l))}function closeSlice(r,e,n){return e<r.openStart&&(r=new Slice(closeRange(r.content,-1,e,r.openStart,0,r.openEnd),e,r.openEnd)),n<r.openEnd&&(r=new Slice(closeRange(r.content,1,n,r.openEnd,0,0),r.openStart,n)),r}function sliceSingleNode(r){return r.openStart==0&&r.openEnd==0&&r.content.childCount==1?r.content.firstChild:null}function fixSlice(r,e){if(r=Slice.maxOpen(normalizeSiblings(r.content,e),!0),r.openStart||r.openEnd){let n=0,A=0;for(let o=r.content.firstChild;n<r.openStart&&!o.type.spec.isolating;n++,o=o.firstChild);for(let o=r.content.lastChild;A<r.openEnd&&!o.type.spec.isolating;A++,o=o.lastChild);r=closeSlice(r,n,A)}return r}function sliceHasOnlyText(r){return r.content.content.every(e=>e.isInline)}const selectAll$1=()=>function(r,e,n){const A=r.tr.setSelection(new AllSelection(r.doc));return n&&n.dispatch(A),!0};function textPositionsToResolvedPos(r,e,n){const A=r.map(c=>-1);let o=0,s=!1;function a(c,g,h,d){if(s){for(let u=0;u<r.length;u++){const f=r[u];f>=o&&f<o+d&&(A[u]=c+(f-o))}o+=d}}function l(c,g=0,h=0,d=0){g===1&&h===n&&(s=!0);let u=0;c.isText&&c.text?u=c.text?.length:c.isLeaf&&(u=1),u>0&&a(d,g,h,u),c.forEach((f,I,p)=>{l(f,g+1,p,d+I+1)})}if(l(e),s)for(let c=0;c<r.length;c++){const g=r[c];A[c]===-1&&(g<o?A[c]=1:A[c]=e.nodeSize-1)}return A.map(c=>e.resolve(c-1))}const selectText=(r,e,n=0)=>function(A,o,s){const[a,l]=textPositionsToResolvedPos([r+e,r],A.doc,n),c=A.tr.setSelection(new TextSelection(l,a));return s&&s.dispatch(c),!0};class ExtensionSelection extends Extension{constructor(){super(...arguments),this.name="selection"}extractSelection(){const e=this.editor.state,{from:n,to:A}=e.selection,o=e.doc.slice(n,A);if(sliceHasOnlyText(o)){const s=e.schema.nodes.paragraph.create(null,o.content);return e.schema.topNodeType.createAndFill(null,[s])}return e.schema.topNodeType.createAndFill(null,o.content)}replaceSelection(e){const A=this.editor.view,o=this.editor.state;let s;e.type?.name==="doc"&&(e=createNodeFromObject(e.toJSON(),this.editor.schema)),s=new Slice(e.content,1,1);const a=o.selection.$from;s=fixSlice(s,a);let l=sliceSingleNode(s),c=l?o.tr.replaceSelectionWith(l,!1):o.tr.replaceSelection(s);A.dispatch(c.scrollIntoView())}appendSelection(e){const n=this.editor.view,{state:A}=n;let o;e.type?.name==="doc"&&(e=createNodeFromObject(e.toJSON(),this.editor.schema)),o=new Slice(e.content,1,1);const s=n.state.selection.$from;o=fixSlice(o,s);const a=A.tr.insert(n.state.selection.to,o.content);n.dispatch(a.scrollIntoView())}getCommandFactories(e){return this.editor=e,{selectAll:()=>selectAll$1(),selectText:(...n)=>selectText(...n)}}}const pcBaseKeymap={"Mod-Enter":"exitCode",Backspace:"backspace","Mod-Backspace":"backspace","Shift-Backspace":"backspace",Delete:"del","Mod-Delete":"del","Mod-a":"selectAll"},macBaseKeymap={...pcBaseKeymap,"Ctrl-h":pcBaseKeymap.Backspace,"Alt-Backspace":pcBaseKeymap["Mod-Backspace"],"Ctrl-d":pcBaseKeymap.Delete,"Ctrl-Alt-Backspace":pcBaseKeymap["Mod-Delete"],"Alt-Delete":pcBaseKeymap["Mod-Delete"],"Alt-d":pcBaseKeymap["Mod-Delete"],"Ctrl-a":"selectTextblockStart","Ctrl-e":"selectTextblockEnd"},mac=/(Mac|iPhone|iPod|iPad)/i.test(navigator?.platform),baseKeymap=mac?macBaseKeymap:pcBaseKeymap;class ExtensionBaseKeymap extends Extension{constructor(){super(...arguments),this.name="base-keymap"}getKeyboardShortcuts(){const e={Enter:"enter","Alt-ArrowUp":"joinUp","Alt-ArrowDown":"joinDown","Mod-BracketLeft":"lift",Escape:"selectParentNode"};for(const n in baseKeymap)e[n]=baseKeymap[n];return e}}function dropCursor(r={}){return new Plugin({key:new PluginKey("drop-cursor"),view(e){return new DropCursorView(e,r)}})}class DropCursorView{constructor(e,n){this.editorView=e,this.cursorPos=null,this.element=null,this.timeout=-1,this.width=n.width??1,this.color=n.color===!1?void 0:n.color||"black",this.class=n.class,this.handlers=["dragover","dragend","drop","dragleave"].map(A=>{let o=s=>{this[A](s)};return e.dom.addEventListener(A,o),{name:A,handler:o}})}destroy(){this.handlers.forEach(({name:e,handler:n})=>this.editorView.dom.removeEventListener(e,n))}update(e,n){this.cursorPos!=null&&n.doc!=e.state.doc&&(this.cursorPos>e.state.doc.content.size?this.setCursor(null):this.updateOverlay())}setCursor(e){e!=this.cursorPos&&(this.cursorPos=e,e==null?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())}updateOverlay(){let e=this.editorView.state.doc.resolve(this.cursorPos),n=!e.parent.inlineContent,A,o=this.editorView.dom,s=o.getBoundingClientRect(),a=s.width/o.offsetWidth,l=s.height/o.offsetHeight;if(n){let d=e.nodeBefore,u=e.nodeAfter;if(d||u){let f=this.editorView.nodeDOM(this.cursorPos-(d?d.nodeSize:0));if(f){let I=f.getBoundingClientRect(),p=d?I.bottom:I.top;d&&u&&(p=(p+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2);let m=this.width/2*l;A={left:I.left,right:I.right,top:p-m,bottom:p+m}}}}if(!A){let d=this.editorView.coordsAtPos(this.cursorPos),u=this.width/2*a;A={left:d.left-u,right:d.left+u,top:d.top,bottom:d.bottom}}let c=this.editorView.dom.offsetParent;this.element||(this.element=c.appendChild(document.createElement("div")),this.class&&(this.element.className=this.class),this.element.style.cssText="position: absolute; z-index: 50; pointer-events: none;",this.color&&(this.element.style.backgroundColor=this.color)),this.element.classList.toggle("prosemirror-dropcursor-block",n),this.element.classList.toggle("prosemirror-dropcursor-inline",!n);let g,h;if(!c||c==document.body&&getComputedStyle(c).position=="static")g=-pageXOffset,h=-pageYOffset;else{let d=c.getBoundingClientRect(),u=d.width/c.offsetWidth,f=d.height/c.offsetHeight;g=d.left-c.scrollLeft*u,h=d.top-c.scrollTop*f}this.element.style.left=(A.left-g)/a+"px",this.element.style.top=(A.top-h)/l+"px",this.element.style.width=(A.right-A.left)/a+"px",this.element.style.height=(A.bottom-A.top)/l+"px"}scheduleRemoval(e){clearTimeout(this.timeout),this.timeout=setTimeout(()=>this.setCursor(null),e)}dragover(e){if(!this.editorView.editable)return;let n=this.editorView.posAtCoords({left:e.clientX,top:e.clientY}),A=n&&n.inside>=0&&this.editorView.state.doc.nodeAt(n.inside),o=A&&A.type.spec.disableDropCursor,s=typeof o=="function"?o(this.editorView,n,e):o;if(n&&!s){let a=n.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let l=dropPoint(this.editorView.state.doc,a,this.editorView.dragging.slice);l!=null&&(a=l)}this.setCursor(a),this.scheduleRemoval(5e3)}}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(e){this.editorView.dom.contains(e.relatedTarget)||this.setCursor(null)}}class ExtensionDropcursor extends Extension{constructor(){super(...arguments),this.name="dropcursor",this.options={color:"currentColor",width:1,class:void 0}}getProseMirrorPlugins(){return[dropCursor(this.options)]}}class GapCursor extends Selection{constructor(e){super(e,e),this.visible=!1}map(e,n){let A=e.resolve(n.map(this.head));return GapCursor.valid(A)?new GapCursor(A):Selection.near(A)}content(){return Slice.empty}eq(e){return e instanceof GapCursor&&e.head==this.head}toJSON(){return{type:"gapcursor",pos:this.head}}static fromJSONToGapCursor(e,n){if(typeof n.pos!="number")throw new RangeError("Invalid input for GapCursor.fromJSON");return new GapCursor(e.resolve(n.pos))}getBookmark(){return new GapBookmark(this.anchor)}static valid(e){let n=e.parent;if(n.isTextblock||!closedBefore(e)||!closedAfter(e))return!1;let A=n.type.spec.allowGapCursor;if(A!=null)return A;let o=n.contentMatchAt(e.index()).defaultType;return o&&o.isTextblock}static findGapCursorFrom(e,n,A=!1){e:for(;;){if(!A&&GapCursor.valid(e))return e;let o=e.pos,s=null;for(let a=e.depth;;a--){let l=e.node(a);if(n>0?e.indexAfter(a)<l.childCount:e.index(a)>0){s=l.child(n>0?e.indexAfter(a):e.index(a)-1);break}else if(a==0)return null;o+=n;let c=e.doc.resolve(o);if(GapCursor.valid(c))return c}for(;;){let a=n>0?s.firstChild:s.lastChild;if(!a){if(s.isAtom&&!s.isText&&!NodeSelection.isSelectable(s)){e=e.doc.resolve(o+s.nodeSize*n),A=!1;continue e}break}s=a,o+=n;let l=e.doc.resolve(o);if(GapCursor.valid(l))return l}return null}}}Selection.jsonID("gapcursor",GapCursor);class GapBookmark{constructor(e){this.pos=e}map(e){return new GapBookmark(e.map(this.pos))}resolve(e){let n=e.resolve(this.pos);return GapCursor.valid(n)?new GapCursor(n):Selection.near(n)}}function closedBefore(r){for(let e=r.depth;e>=0;e--){let n=r.index(e),A=r.node(e);if(n==0){if(A.type.spec.isolating)return!0;continue}for(let o=A.child(n-1);;o=o.lastChild){if(o.childCount==0&&!o.inlineContent||o.isAtom||o.type.spec.isolating)return!0;if(o.inlineContent)return!1}}return!0}function closedAfter(r){for(let e=r.depth;e>=0;e--){let n=r.indexAfter(e),A=r.node(e);if(n==A.childCount){if(A.type.spec.isolating)return!0;continue}for(let o=A.child(n);;o=o.firstChild){if(o.childCount==0&&!o.inlineContent||o.isAtom||o.type.spec.isolating)return!0;if(o.inlineContent)return!1}}return!0}function gapCursor(){return new Plugin({key:new PluginKey("gap-cursor"),props:{decorations:drawGapCursor,createSelectionBetween(r,e,n){return e.pos==n.pos&&GapCursor.valid(n)?new GapCursor(n):null},handleClick,handleKeyDown:handleKeyDown$1,handleDOMEvents:{beforeinput}}})}const handleKeyDown$1=keydownHandler({ArrowLeft:arrow$1("horiz",-1),ArrowRight:arrow$1("horiz",1),ArrowUp:arrow$1("vert",-1),ArrowDown:arrow$1("vert",1)});function arrow$1(r,e){const n=r=="vert"?e>0?"down":"up":e>0?"right":"left";return function(A,o,s){let a=A.selection,l=e>0?a.$to:a.$from,c=a.empty;if(a instanceof TextSelection){if(!s.endOfTextblock(n)||l.depth==0)return!1;c=!1,l=A.doc.resolve(e>0?l.after():l.before())}let g=GapCursor.findGapCursorFrom(l,e,c);return g?(o&&o(A.tr.setSelection(new GapCursor(g))),!0):!1}}function handleClick(r,e,n){if(!r||!r.editable)return!1;let A=r.state.doc.resolve(e);if(!GapCursor.valid(A))return!1;let o=r.posAtCoords({left:n.clientX,top:n.clientY});return o&&o.inside>-1&&NodeSelection.isSelectable(r.state.doc.nodeAt(o.inside))?!1:(r.dispatch(r.state.tr.setSelection(new GapCursor(A))),!0)}function beforeinput(r,e){if(e.inputType!="insertCompositionText"||!(r.state.selection instanceof GapCursor))return!1;let{$from:n}=r.state.selection,A=n.parent.contentMatchAt(n.index()).findWrapping(r.state.schema.nodes.text);if(!A)return!1;let o=Fragment.empty;for(let a=A.length-1;a>=0;a--)o=Fragment.from(A[a].createAndFill(null,o));let s=r.state.tr.replace(n.pos,n.pos,new Slice(o,0,0));return s.setSelection(TextSelection.near(s.doc.resolve(n.pos+1))),r.dispatch(s),!1}function drawGapCursor(r){if(!(r.selection instanceof GapCursor))return null;let e=document.createElement("div");return e.className="kb-gapcursor",DecorationSet.create(r.doc,[Decoration$1.widget(r.selection.head,e,{key:"gapcursor"})])}class ExtensionGapcursor extends Extension{constructor(){super(...arguments),this.name="gapcursor",this.options={color:"currentColor",width:1,class:void 0}}getProseMirrorPlugins(){return[gapCursor()]}}function getHTMLFromFragment(r,e){const n=globalThis.document,A=DOMSerializer.fromSchema(e).serializeFragment(r,{document:n}),s=n.implementation.createHTMLDocument().createElement("div");return s.appendChild(A),s.innerHTML}const removeWhitespaces$1=r=>{const e=r.childNodes;for(let n=e.length-1;n>=0;n-=1){const A=e[n];A.nodeType===3&&A.nodeValue&&/^(\n\s\s|\n)$/.test(A.nodeValue)?r.removeChild(A):A.nodeType===1&&removeWhitespaces$1(A)}return r};function elementFromString$1(r){const e=`<html lang="en"><body>${r}</body></html>`,n=new globalThis.DOMParser().parseFromString(e,"text/html").body;return removeWhitespaces$1(n)}function prepareContentCheckSchema(r){return new Schema({topNode:r.spec.topNode,marks:r.spec.marks,nodes:r.spec.nodes.append({__unknown__catch__all__node:{content:"inline*",group:"block",parseDOM:[{tag:"*",getAttrs:n=>{const A=typeof n=="string"?n:n.outerHTML;throw new Error("Invalid HTML content",{cause:new Error(`Invalid element found: ${A}`)})}}]}})})}function createNodeFromHTML(r,e,n){if(n={parseOptions:{},...n},n.errorOnInvalidContent){const o=prepareContentCheckSchema(e);DOMParser$1.fromSchema(o).parse(elementFromString$1(r),n.parseOptions)}return DOMParser$1.fromSchema(e).parse(elementFromString$1(r),n.parseOptions)}class ExtensionHtml extends Extension{constructor(){super(...arguments),this.name="html"}getConverters(e,n){return{"text/html":{fromDoc:async A=>{const o=getHTMLFromFragment(A.content,e.schema);return new TextEncoder().encode(o)},toDoc:async A=>{const o=new TextDecoder().decode(A);return createNodeFromHTML(o,e.schema)}}}}}const mediaUploadKey=new PluginKey("mediaUpload");function fileToDataURL(r){return new Promise((e,n)=>{const A=new FileReader;A.onload=()=>e(A.result),A.onerror=n,A.readAsDataURL(r)})}function fileToObjectURL(r){return URL.createObjectURL(r)}function isImage(r,e){return e.some(n=>r.type.match(n))}function isVideo(r,e){return e.some(n=>r.type.match(n))}function insertImage(r,e,n,A,o){const{schema:s}=r.state,a=s.nodes.image;if(!a){console.warn("Image node type not found in schema");return}const l=a.create({src:n,alt:A,title:o}),c=r.state.tr.insert(e,l);r.dispatch(c)}function insertVideo(r,e,n,A,o,s){const{schema:a}=r.state,l=a.nodes.video;if(!l){console.warn("Video node type not found in schema");return}const c=l.create({src:n,title:A,width:o,height:s,controls:!0}),g=r.state.tr.insert(e,c);r.dispatch(g)}async function handleMediaFiles(r,e,n,A){const{maxFileSize:o=10*1024*1024,maxVideoFileSize:s=50*1024*1024,allowedImageTypes:a=["^image/"],allowedVideoTypes:l=["^video/"],uploadHandler:c}=A;for(const g of e){const h=isImage(g,a),d=isVideo(g,l);if(!h&&!d)continue;const u=d?s:o;if(g.size>u){console.warn(`${d?"Video":"Image"} file "${g.name}" is too large (${(g.size/1024/1024).toFixed(2)}MB). Maximum size is ${(u/1024/1024).toFixed(2)}MB.`);continue}try{console.log(`Processing ${d?"video":"image"}: ${g.name} (${(g.size/1024/1024).toFixed(2)}MB, ${g.type})`);let f;c?f=await c(g):d&&A.useObjectURLForVideos!==!1?(f=fileToObjectURL(g),console.log("Using object URL for video:",f)):(f=await fileToDataURL(g),console.log(`${d?"Video":"Image"} converted to data URL, length: ${f.length} characters`)),d?(insertVideo(r,n,f,g.name),console.log("Video inserted into editor")):(insertImage(r,n,f,g.name),console.log("Image inserted into editor")),n+=1}catch(f){console.error(`Failed to process ${d?"video":"image"} "${g.name}":`,f)}}}function createMediaUploadPlugin(r={}){return new Plugin({key:mediaUploadKey,props:{handleDrop(e,n,A,o){if(o)return!1;const s=Array.from(n.dataTransfer?.files||[]);if(s.length===0)return!1;const{allowedImageTypes:a=["^image/"],allowedVideoTypes:l=["^video/"]}=r;if(!s.some(d=>isImage(d,a)||isVideo(d,l)))return!1;n.preventDefault();const g={left:n.clientX,top:n.clientY},h=e.posAtCoords(g);return h?(handleMediaFiles(e,s,h.pos,r),!0):!1},handlePaste(e,n,A){const s=Array.from(n.clipboardData?.items||[]).filter(c=>c.type.startsWith("image/"));if(s.length===0)return!1;n.preventDefault();const a=[];for(const c of s){const g=c.getAsFile();g&&a.push(g)}if(a.length===0)return!1;const{from:l}=e.state.selection;return handleMediaFiles(e,a,l,r),!0}}})}class ExtensionMediaUpload extends Extension{constructor(e={}){super(e),this.config=e,this.name="mediaUpload"}getProseMirrorPlugins(){return[createMediaUploadPlugin(this.config)]}}class ExtensionTextAlign extends Extension{constructor(){super(...arguments),this.name="textAlign"}getCommandFactories(e){const n=A=>(o,s)=>{const{selection:a,tr:l}=o,{from:c,to:g}=a;let h=!1;return o.doc.nodesBetween(c,g,(d,u)=>{d.isBlock&&d.type.spec.attrs&&"textAlign"in d.type.spec.attrs&&(l.setNodeMarkup(u,void 0,{...d.attrs,textAlign:A}),h=!0)}),h&&s&&s(l),h};return{setTextAlignLeft:()=>n("left"),setTextAlignCenter:()=>n("center"),setTextAlignRight:()=>n("right"),setTextAlignJustify:()=>n("justify")}}}const remoteSelectionPluginKey=new PluginKey("remote-selection"),defaultCursorBuilder=r=>{const e=document.createElement("span");e.classList.add("kb-yjs__cursor"),e.setAttribute("style",`border-color: ${r.color};`);const n=document.createElement("div");n.setAttribute("style",`background-color: ${r.color}`),n.insertBefore(document.createTextNode(r.name),null);const A=document.createTextNode("⁠"),o=document.createTextNode("⁠");return e.insertBefore(A,null),e.insertBefore(n,null),e.insertBefore(o,null),e},defaultSelectionBuilder=r=>({style:`background-color: ${r.color}70`,class:"kb-yjs__selection"}),rxValidColor=/^#[0-9a-fA-F]{6}$/,createDecorations=(r,e,n,A)=>{const o=[],s=e.getRemoteStates();if(s.length===0)return DecorationSet.create(r.doc,[]);for(const a of s)if(a.cursor!=null){const l=a.user||{};l.color==null?l.color="#ffa500":rxValidColor.test(l.color)||console.warn("A user uses an unsupported color format",l),l.name==null&&(l.name=`User: ${a.clientId}`);const c=a.cursor;let g=c.anchor||null,h=c.head||null;if(g!==null&&h!==null){const d=Math.max(r.doc.content.size-1,0);g=Math.min(g,d),h=Math.min(h,d),o.push(Decoration$1.widget(h,()=>n(l,a.clientId),{key:a.clientId+"",side:10}));const u=Math.min(g,h),f=Math.max(g,h);o.push(Decoration$1.inline(u,f,A(l,a.clientId),{inclusiveEnd:!0,inclusiveStart:!1}))}}return DecorationSet.create(r.doc,o)},remoteSelectionPlugin=(r,e,{cursorBuilder:n=defaultCursorBuilder,selectionBuilder:A=defaultSelectionBuilder}={})=>new Plugin({key:remoteSelectionPluginKey,state:{init(o,s){return createDecorations(s,r,n,A)},apply(o,s,a,l){const c=o.getMeta(remoteSelectionPluginKey);return c?.isChangeOrigin||c?.remotePositionUpdated?createDecorations(l,r,n,A):s.map(o.mapping,o.doc)}},props:{decorations:o=>remoteSelectionPluginKey.getState(o)}});class ExtensionRemoteSelection extends Extension{constructor(){super(...arguments),this.name="remote-selection",this.remoteStates=[]}getProseMirrorPlugins(){return[remoteSelectionPlugin(this,this.editor)]}getRemoteStates(){return this.remoteStates}setRemoteStates(e){this.remoteStates=e;const n=new CustomEvent("remoteSelectionChange",{detail:{}});this.editor.dispatchEvent(n)}}function generateId(){return String(Math.random())}function buildPairingTransaction(r,e,n){const{doc:A}=r,o=new Map,s=[];A.descendants((l,c)=>{l.type.name===e&&s.push({node:l,pos:c})});let a=!1;for(const{node:l,pos:c}of s){const g=l.attrs.content?.trim();if(!g)continue;const h=g.match(/^[^0-9a-z\/]*(\/?)[\s]*([\w]+)/i),d=h[1]==="/",u=h[2];if(!d)o.has(u)||o.set(u,[]),o.get(u).push({node:l,pos:c});else{const f=o.get(u);if(f&&f.length>0){const I=f.pop(),p=generateId();n.setNodeMarkup(I.pos,void 0,{...I.node.attrs,id:p,nesting:NESTING_OPENING$1,error:void 0}),n.setNodeMarkup(c,void 0,{...l.attrs,id:p,nesting:NESTING_CLOSING$1,error:void 0})}else n.setNodeMarkup(c,void 0,{...l.attrs,error:"Closing shortcode without matching opening",nesting:NESTING_CLOSING$1});a=!0}}for(const[,l]of o.entries())for(const{node:c,pos:g}of l)n.setNodeMarkup(g,void 0,{...c.attrs,nesting:NESTING_SELF_CLOSING$1,id:void 0}),a=!0;return a?n:null}const createPairingPlugin=r=>new Plugin({appendTransaction(e,n,A){const o=new Set;for(const a of e)if(a.docChanged){for(const l of a.steps)if((l instanceof ReplaceStep||l instanceof ReplaceAroundStep)&&(l.slice&&l.slice.content.descendants(c=>{r.includes(c.type.name)&&o.add(c.type.name)}),l.from!=null&&l.to!=null&&l.from!==l.to&&n.doc.nodesBetween(l.from,l.to,c=>{r.includes(c.type.name)&&o.add(c.type.name)}),o.size===r.length))break;if(o.size===r.length)break}if(o.size===0)return null;const s=A.tr;for(const a of o)buildPairingTransaction(A,a,s);return s}});class ExtensionPairing extends Extension{constructor(){super(...arguments),this.name="pairing-nodes"}getProseMirrorPlugins(){return[createPairingPlugin(["shortcode_inline"])]}}class MarkLink extends Mark{constructor(){super(...arguments),this.name="link",this.requires=["doc"]}getMarkSpec(){return{attrs:{href:{},title:{default:void 0},origUrl:{default:void 0},mdTemplate:{default:void 0}},inclusive:!1,parseDOM:[{tag:"a[href]",getAttrs(e){return{href:e.getAttribute("href"),title:e.getAttribute("title")}}}],toDOM(e){const{href:n,title:A}=e.attrs;return["a",{href:n,title:A},0]}}}}class MarkStrong extends Mark{constructor(){super(...arguments),this.name="strong",this.requires=["doc"]}getMarkSpec(){return{parseDOM:[{tag:"strong"},{tag:"b",getAttrs:e=>e.style.fontWeight!="normal"&&null},{style:"font-weight=400",clearMark:e=>e.type.name=="strong"},{style:"font-weight",getAttrs:e=>/^(bold(er)?|[5-9]\d{2,})$/.test(e)&&null}],toDOM(){return["strong",0]}}}getCommandFactories(e,n){return{toggleStrong:()=>e.commandFactories.toggleMark(n)}}getKeyboardShortcuts(){return{"Mod-b":"toggleStrong","Mod-B":"toggleStrong"}}}class MarkItalic extends Mark{constructor(){super(...arguments),this.name="em",this.requires=["doc"]}getMarkSpec(){return{parseDOM:[{tag:"i"},{tag:"em"},{style:"font-assets=italic"},{style:"font-assets=normal",clearMark:e=>e.type.name=="em"}],toDOM(){return["em",0]}}}getCommandFactories(e,n){return{toggleItalic:()=>e.commandFactories.toggleMark(n)}}getKeyboardShortcuts(){return{"Mod-i":"toggleItalic","Mod-I":"toggleItalic"}}}class MarkUnderline extends Mark{constructor(){super(...arguments),this.name="underline",this.requires=["doc"]}getMarkSpec(){return{parseDOM:[{tag:"u"}],toDOM(){return["u",0]}}}getCommandFactories(e,n){return{toggleUnderline:()=>e.commandFactories.toggleMark(n)}}getKeyboardShortcuts(){return{"Mod-u":"toggleUnderline","Mod-U":"toggleUnderline"}}}class MarkStrike extends Mark{constructor(){super(...arguments),this.name="strike",this.requires=["doc"]}getMarkSpec(){return{parseDOM:[{tag:"strike"}],toDOM(){return["strike",0]}}}getCommandFactories(e,n){return{toggleStrike:()=>e.commandFactories.toggleMark(n)}}getKeyboardShortcuts(){return{"Mod-s":"toggleStrike","Mod-S":"toggleStrike"}}}class MarkCode extends Mark{constructor(){super(...arguments),this.name="code",this.requires=["doc"]}getMarkSpec(){return{parseDOM:[{tag:"code"}],toDOM(){return["code",0]}}}getCommandFactories(e,n){return{toggleCode:()=>e.commandFactories.toggleMark(n)}}getKeyboardShortcuts(){return{"Mod-`":"toggleCode"}}}class MarkChange extends Mark{constructor(){super(...arguments),this.name="change",this.requires=["doc"]}getMarkSpec(){return{parseDOM:[],toDOM(){return["change",0]}}}}class MarkBookmark extends Mark{constructor(){super(...arguments),this.name="bookmark",this.requires=["doc"]}getMarkSpec(){return{attrs:{id:{}},parseDOM:[],toDOM(e){return["a",{id:e.attrs.id},0]}}}}class MarkTextColor extends Mark{constructor(){super(...arguments),this.name="textColor"}getMarkSpec(){return{attrs:{color:{default:null}},parseDOM:[{tag:'span[style*="color"]',getAttrs(e){const n=e.style.color;return n?{color:n}:!1}}],toDOM(e){const{color:n}=e.attrs;return n?["span",{style:`color: ${n}`},0]:["span",0]}}}}class MarkHighlight extends Mark{constructor(){super(...arguments),this.name="highlight"}getMarkSpec(){return{attrs:{color:{default:null}},parseDOM:[{tag:"mark",getAttrs(e){const n=e.style.backgroundColor;return n?{color:n}:{color:"yellow"}}},{tag:'span[style*="background-color"]',getAttrs(e){const n=e.style.backgroundColor;return n?{color:n}:!1}}],toDOM(e){const{color:n}=e.attrs;return["mark",{style:`background-color: ${n||"yellow"}; color: inherit;`},0]}}}}class MarkSuperscript extends Mark{constructor(){super(...arguments),this.name="superscript",this.requires=["doc"]}getMarkSpec(){return{excludes:"subscript",parseDOM:[{tag:"sup"},{style:"vertical-align",getAttrs:e=>e==="super"&&null}],toDOM(){return["sup",0]}}}getCommandFactories(e,n){return{toggleSuperscript:()=>e.commandFactories.toggleMark(n)}}getKeyboardShortcuts(){return{"Mod-Shift-.":"toggleSuperscript"}}}class MarkSubscript extends Mark{constructor(){super(...arguments),this.name="subscript",this.requires=["doc"]}getMarkSpec(){return{excludes:"superscript",parseDOM:[{tag:"sub"},{style:"vertical-align",getAttrs:e=>e==="sub"&&null}],toDOM(){return["sub",0]}}}getCommandFactories(e,n){return{toggleSubscript:()=>e.commandFactories.toggleMark(n)}}getKeyboardShortcuts(){return{"Mod-Shift-,":"toggleSubscript"}}}class NodeDocument extends Node$1{constructor(){super(...arguments),this.name="doc"}getNodeSpec(){return{content:"block+",marks:"code em strong link bookmark",EMPTY_DOC:{type:this.name,content:[{type:"paragraph",content:[]}]}}}}class NodeText extends Node$1{constructor(){super(...arguments),this.name="text"}getNodeSpec(){return{group:"inline"}}}function wrappingInputRule(r,e,n=null,A){return new InputRule(r,(o,s,a,l,c)=>{o||(o=s.tr);const g=n instanceof Function?n(a):n;o=o.delete(l,c);const d=o.doc.resolve(l).blockRange(),u=d&&findWrapping(d,e,g);if(!u)return null;o.wrap(d,u);const f=o.doc.resolve(l-1).nodeBefore;return f&&f.type==e&&canJoin(o.doc,l-1)&&(!A||A(a,f))&&o.join(l-1),o})}function textblockTypeInputRule(r,e,n=null){return new InputRule(r,(A,o,s,a,l)=>{A||(A=o.tr);const c=o.doc.resolve(a),g=n instanceof Function?n(s):n;return c.node(-1).canReplaceWith(c.index(-1),c.indexAfter(-1),e)?A.delete(a,l).setBlockType(a,a,e,g):null})}function replaceInlineNode(r,e,n=null){return new InputRule(r,(A,o,s,a,l)=>{A||(A=o.tr);const c=n instanceof Function?n(s):n;if(o.doc.resolve(a).parent.type===o.schema.nodes.code_block)return A;const h=e.createAndFill(c),d=A.mapping.map(a),u=A.mapping.map(l);return A.replaceWith(d,u,Fragment.from(h))})}let NodeCodeBlock$1=class extends Node$1{constructor(){super(...arguments),this.name="code_block"}getNodeSpec(){return{content:"text*",marks:"",group:"block",code:!0,defining:!0,attrs:{lang:{default:void 0}},parseDOM:[{tag:"pre",preserveWhitespace:"full",getAttrs(e){return{lang:e.getAttribute("lang")}}}],toDOM(e){const{lang:n}=e.attrs;return["pre",{lang:n},["code",0]]}}}getInputRules(e){return[textblockTypeInputRule(/^```$/,e)]}};class NodeBookmark extends Node$1{constructor(){super(...arguments),this.name="node_bookmark",this.requires=["doc"]}getNodeSpec(){return{inline:!0,group:"inline",selectable:!1,atom:!0,attrs:{id:{},nesting:{default:NESTING_SELF_CLOSING$1}},parseDOM:[],toDOM(e){return["a",{id:e.attrs.id},0]}}}}class NodeParagraph extends Node$1{constructor(){super(...arguments),this.name="paragraph",this.requires=["doc"]}getNodeSpec(){return{content:"inline*",group:"block",attrs:{textAlign:{default:void 0}},parseDOM:[{tag:"p",getAttrs(e){const A=e.style.textAlign;return A==="center"||A==="right"||A==="justify"?{textAlign:A}:!1}}],toDOM(e){const n=e.attrs.textAlign||"left";return["center","right","justify"].includes(n)?["p",{style:`text-align: ${n}`},0]:["p",0]}}}getCommandFactories(e,n){return{setParagraph:()=>e.commandFactories.setBlockType(n)}}getKeyboardShortcuts(){return{"Shift-Ctrl-0":"setParagraph"}}}class NodeHardBreak extends Node$1{constructor(){super(...arguments),this.name="br",this.requires=["doc"],this.options={keepMarks:!0}}getNodeSpec(){return{inline:!0,group:"inline",selectable:!1,linebreakReplacement:!0,parseDOM:[{tag:"br"}],toDOM(){return["br"]}}}getCommandFactories(e,n){const A=firstCommand(e.run.exitCode);return{setHardBreak:()=>A}}getKeyboardShortcuts(){const e=typeof navigator<"u"?/Mac|iP(hone|[oa]d)/.test(navigator?.platform):!1,n={"Ctrl-Enter":"setHardBreak"};return e&&(n["Mod-Enter"]="setHardBreak",n["Shift-Enter"]="setHardBreak"),n}}class NodeSoftBreak extends Node$1{constructor(){super(...arguments),this.name="softbreak",this.requires=["doc"]}getNodeSpec(){return{inline:!0,group:"inline",selectable:!1,parseDOM:[{tag:"wbr"}],toDOM(){return["wbr"]}}}}class NodeHorizontalRule extends Node$1{constructor(){super(...arguments),this.name="hr",this.requires=["doc"]}getNodeSpec(){return{inline:!0,group:"inline",parseDOM:[{tag:"hr"}],toDOM(){return["hr"]}}}getCommandFactories(e,n){return{setHorizontalRule:()=>(A,o)=>(o&&o(A.tr.replaceSelectionWith(n.create()).scrollIntoView()),!0)}}getKeyboardShortcuts(){return{"Mod-_":"setHorizontalRule"}}}class NodeOrderedList extends Node$1{constructor(){super(...arguments),this.name="ordered_list",this.requires=["doc"],this.attributes={type:{default:"1",fromDom(e){return e.hasAttribute("type")?e.getAttribute("type"):"1"}},start:{default:void 0,fromDom(e){return e.hasAttribute("start")?+e.getAttribute("start"):void 0}},id:{default:void 0},continue:{default:void 0},odtMarginLeft:{default:void 0}}}getNodeSpec(){return{group:"block",content:"list_item+",parseDOM:[{tag:"ol",getAttrs:e=>setHtmlAttributes(this,e)}],toDOM:e=>["ol",getHtmlAttributes(this,e),0]}}getInputRules(e){return[wrappingInputRule(/^(\d+)\.\s$/,e,n=>({order:+n[1]}),(n,A)=>A.childCount+A.attrs.order==+n[1])]}getCommandFactories(e,n){return{toggleOrderedList:()=>e.commandFactories.wrapInList(n)}}getKeyboardShortcuts(){return{"Shift-Ctrl-7":"toggleOrderedList"}}}class NodeBulletList extends Node$1{constructor(){super(...arguments),this.name="bullet_list",this.requires=["doc"],this.attributes={toc:{default:void 0},odtMarginLeft:{default:void 0}}}getNodeSpec(){return{content:"list_item+",group:"block",parseDOM:[{tag:"ul"}],toDOM(){return["ul",0]}}}getInputRules(e){return[wrappingInputRule(/^\s*([-+*])\s$/,e)]}getCommandFactories(e,n){return{toggleBulletList:()=>e.commandFactories.wrapInList(n)}}getKeyboardShortcuts(){return{"Shift-Ctrl-8":"toggleBulletList"}}}function splitListItem$1(r,e){const n=function(A,o){const{$from:s,$to:a,node:l}=A.selection;if(l&&l.isBlock||s.depth<2||!s.sameParent(a))return!1;const c=s.node(-1);if(c.type!=r)return!1;if(s.parent.content.size==0&&s.node(-1).childCount==s.indexAfter(-1)){if(s.depth==3||s.node(-3).type!=r||s.index(-2)!=s.node(-2).childCount-1)return!1;if(o){let u=Fragment.empty;const f=s.index(-1)?1:s.index(-2)?2:3;for(let B=s.depth-f;B>=s.depth-3;B--)u=Fragment.from(s.node(B).copy(u));let I=s.indexAfter(-1)<s.node(-2).childCount?1:s.indexAfter(-2)<s.node(-3).childCount?2:3;u=u.append(Fragment.from(r.createAndFill()));let p=s.before(s.depth-(f-1)),m=A.tr.replace(p,s.after(-I),new Slice(u,4-f,0)),E=-1;m.doc.nodesBetween(p,m.doc.content.size,(B,Q)=>{if(E>-1)return!1;B.isTextblock&&B.content.size==0&&(E=Q+1)}),E>-1&&m.setSelection(Selection.near(m.doc.resolve(E))),o(m.scrollIntoView())}return!0}let g=a.pos==s.end()?c.contentMatchAt(0).defaultType:null,h=A.tr.delete(s.pos,a.pos),d=g?[null,{type:g}]:void 0;return canSplit(h.doc,s.pos,2,d)?(o&&o(h.split(s.pos,2,d).scrollIntoView()),!0):!1};return n.displayName=`splitListItem(${r.name})`,n}function liftListItem$1(r){return function(e,n){let{$from:A,$to:o}=e.selection,s=A.blockRange(o,a=>a.childCount>0&&a.firstChild.type==r);return s?n?A.node(s.depth-1).type==r?liftToOuterList$1(e,n,r,s):liftOutOfList$1(e,n,s):!0:!1}}function liftToOuterList$1(r,e,n,A){let o=r.tr,s=A.end,a=A.$to.end(A.depth);s<a&&(o.step(new ReplaceAroundStep(s-1,a,s,a,new Slice(Fragment.from(n.create(null,A.parent.copy())),1,0),1,!0)),A=new NodeRange(o.doc.resolve(A.$from.pos),o.doc.resolve(a),A.depth));const l=liftTarget(A);if(l==null)return!1;o.lift(A,l);let c=o.doc.resolve(o.mapping.map(s,-1)-1);return canJoin(o.doc,c.pos)&&c.nodeBefore.type==c.nodeAfter.type&&o.join(c.pos),e(o.scrollIntoView()),!0}function liftOutOfList$1(r,e,n){let A=r.tr,o=n.parent;for(let f=n.end,I=n.endIndex-1,p=n.startIndex;I>p;I--)f-=o.child(I).nodeSize,A.delete(f-1,f+1);let s=A.doc.resolve(n.start),a=s.nodeAfter;if(A.mapping.map(n.end)!=n.start+s.nodeAfter.nodeSize)return!1;let l=n.startIndex==0,c=n.endIndex==o.childCount,g=s.node(-1),h=s.index(-1);if(!g.canReplace(h+(l?0:1),h+1,a.content.append(c?Fragment.empty:Fragment.from(o))))return!1;let d=s.pos,u=d+a.nodeSize;return A.step(new ReplaceAroundStep(d-(l?1:0),u+(c?1:0),d+1,u-1,new Slice((l?Fragment.empty:Fragment.from(o.copy(Fragment.empty))).append(c?Fragment.empty:Fragment.from(o.copy(Fragment.empty))),l?0:1,c?0:1),l?0:1)),e(A.scrollIntoView()),!0}function sinkListItem$1(r){return function(e,n){const{$from:A,$to:o}=e.selection,s=A.blockRange(o,g=>g.childCount>0&&g.firstChild.type==r);if(!s)return!1;const a=s.startIndex;if(a==0)return!1;const l=s.parent,c=l.child(a-1);if(c.type!=r)return!1;if(n){const g=c.lastChild&&c.lastChild.type==l.type,h=Fragment.from(g?r.create():null),d=new Slice(Fragment.from(r.create(null,Fragment.from(l.type.create(null,h)))),g?3:1,0),u=s.start,f=s.end;n(e.tr.step(new ReplaceAroundStep(u-(g?3:1),f,u,f,d,1,!0)).scrollIntoView())}return!0}}class NodeListItem extends Node$1{constructor(){super(...arguments),this.name="list_item",this.requires=["doc"],this.attributes={value:{default:void 0},type:{default:void 0,fromDom(e){return e.hasAttribute("type")?e.getAttribute("type"):void 0},toDom(e){return e.attrs.type}}}}getNodeSpec(){return{content:"paragraph block*",parseDOM:[{tag:"li",getAttrs:e=>setHtmlAttributes(this,e)}],defining:!0,toDOM:e=>["li",getHtmlAttributes(this,e),0]}}getCommandFactories(e,n){return{splitListItem:()=>splitListItem$1(n),liftListItem:()=>liftListItem$1(n),sinkListItem:()=>sinkListItem$1(n)}}getKeyboardShortcuts(){return{Enter:"splitListItem",Tab:"sinkListItem","Shift-Tab":"liftListItem"}}}class NodeImage extends Node$1{constructor(){super(...arguments),this.name="image",this.requires=["doc"]}getNodeSpec(){return{inline:!0,attrs:{src:{},alt:{default:null},title:{default:null},width:{default:null},height:{default:null},origUrl:{default:void 0},mdTemplate:{default:void 0}},group:"inline",draggable:!0,parseDOM:[{tag:"img[src]",getAttrs(e){return{src:e.getAttribute("src"),title:e.getAttribute("title"),alt:e.getAttribute("alt"),width:e.getAttribute("width")||e.style.width||null,height:e.getAttribute("height")||e.style.height||null}}}],toDOM(e){const{src:n,alt:A,title:o,width:s,height:a}=e.attrs,l={src:n};return A&&(l.alt=A),o&&(l.title=o),s&&(l.width=s),a&&(l.height=a),["img",l]}}}getNodeView(e){return(n,A,o)=>{const s=document.createElement("span");s.className="kb-image-wrapper",s.contentEditable="false";const a=document.createElement("img");a.src=n.attrs.src,n.attrs.alt&&(a.alt=n.attrs.alt),n.attrs.title&&(a.title=n.attrs.title),n.attrs.width&&(a.style.width=typeof n.attrs.width=="number"?`${n.attrs.width}px`:n.attrs.width),n.attrs.height&&(a.style.height=typeof n.attrs.height=="number"?`${n.attrs.height}px`:n.attrs.height),a.draggable=!1,s.appendChild(a);const l=["nw","ne","sw","se"];for(const B of l){const Q=document.createElement("span");Q.className=`kb-image-resize-handle kb-image-resize-handle-${B}`,Q.dataset.position=B,s.appendChild(Q)}let c=!1,g=0,h=0,d=0,u=0,f=1,I=null;const p=B=>{const Q=B.target;if(!Q.classList.contains("kb-image-resize-handle"))return;B.preventDefault(),B.stopPropagation(),c=!0,I=Q.dataset.position||null,g=B.clientX,h=B.clientY;const w=a.getBoundingClientRect();d=w.width,u=w.height,f=d/u,s.classList.add("kb-image-resizing"),document.addEventListener("mousemove",m),document.addEventListener("mouseup",E)},m=B=>{if(!c)return;const Q=B.clientX-g,w=B.clientY-h;let y=d,S=u;switch(I){case"se":y=d+Q,S=B.shiftKey?u+w:y/f;break;case"sw":y=d-Q,S=B.shiftKey?u+w:y/f;break;case"ne":y=d+Q,S=B.shiftKey?u-w:y/f;break;case"nw":y=d-Q,S=B.shiftKey?u-w:y/f;break}y=Math.max(50,y),S=Math.max(50,S),a.style.width=`${Math.round(y)}px`,a.style.height=`${Math.round(S)}px`},E=()=>{if(!c)return;c=!1,I=null,s.classList.remove("kb-image-resizing"),document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",E);const B=Math.round(a.getBoundingClientRect().width),Q=Math.round(a.getBoundingClientRect().height),w=o();if(typeof w=="number"){const y=A.state.tr.setNodeMarkup(w,void 0,{...n.attrs,width:`${B}px`,height:`${Q}px`});A.dispatch(y)}};return s.addEventListener("mousedown",p),s.addEventListener("click",B=>{B.preventDefault();const Q=o();if(typeof Q=="number"){const w=A.state.doc.resolve(Q),y=Selection.near(w);A.dispatch(A.state.tr.setSelection(y))}}),{dom:s,update:B=>B.type.name!=="image"?!1:(a.src=B.attrs.src,B.attrs.alt&&(a.alt=B.attrs.alt),B.attrs.title&&(a.title=B.attrs.title),B.attrs.width?a.style.width=typeof B.attrs.width=="number"?`${B.attrs.width}px`:B.attrs.width:a.style.width="",B.attrs.height?a.style.height=typeof B.attrs.height=="number"?`${B.attrs.height}px`:B.attrs.height:a.style.height="",!0),destroy:()=>{s.removeEventListener("mousedown",p),document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",E)},stopEvent:B=>B.type==="mousedown"&&B.target.classList.contains("kb-image-resize-handle"),ignoreMutation:()=>!0}}}}class NodeVideo extends Node$1{constructor(){super(...arguments),this.name="video",this.requires=["doc"]}getNodeSpec(){return{attrs:{src:{},title:{default:null},controls:{default:!0},width:{default:null},height:{default:null}},group:"block",draggable:!0,parseDOM:[{tag:"video[src]",getAttrs(e){return{src:e.getAttribute("src"),title:e.getAttribute("title"),controls:e.hasAttribute("controls"),width:e.getAttribute("width"),height:e.getAttribute("height")}}}],toDOM(e){const{src:n,title:A,controls:o,width:s,height:a}=e.attrs,l={src:n};return A&&(l.title=A),o&&(l.controls=""),s&&(l.width=s),a&&(l.height=a),["video",l]}}}}class NodeBlockquote extends Node$1{constructor(){super(...arguments),this.name="blockquote",this.requires=["doc"]}getNodeSpec(){return{content:"block+",group:"block",defining:!0,parseDOM:[{tag:"blockquote"}],toDOM(){return["blockquote",0]}}}getInputRules(e){return[wrappingInputRule(/^\s*>\s$/,e)]}getCommandFactories(e,n){return{toggleBlockquote:()=>e.commandFactories.wrapInList(n)}}getKeyboardShortcuts(){return{"Ctrl->":"toggleBlockquote"}}}class NodeAside extends Node$1{constructor(){super(...arguments),this.name="aside",this.requires=["doc"]}getNodeSpec(){return{content:"block+",group:"block",defining:!0,parseDOM:[{tag:"aside"}],toDOM(){return["aside",0]}}}}const maxLevel=6;class NodeHeading extends Node$1{constructor(){super(...arguments),this.name="heading",this.requires=["doc"]}getNodeSpec(){return{attrs:{level:{default:1}},content:"inline*",group:"block",defining:!0,parseDOM:[{tag:"h1",attrs:{level:1}},{tag:"h2",attrs:{level:2}},{tag:"h3",attrs:{level:3}},{tag:"h4",attrs:{level:4}},{tag:"h5",attrs:{level:5}},{tag:"h6",attrs:{level:6}}],toDOM(e){return["h"+e.attrs.level,0]}}}getInputRules(e){return[textblockTypeInputRule(new RegExp("^(#{1,"+maxLevel+"})\\s$"),e,n=>({level:n[1].length}))]}getCommandFactories(e,n){const A={};for(let o=1;o<=maxLevel;o++)A["setHeading"+o]=()=>e.commandFactories.setBlockType(n,{level:o});return A}getKeyboardShortcuts(){const e={};for(let n=1;n<=maxLevel;n++)e["Shift-Ctrl-"+n]="setHeading"+n;return e}}class NodeMath extends Node$1{constructor(){super(...arguments),this.name="math",this.requires=["doc"]}getNodeSpec(){return{inline:!0,attrs:{lang:{default:"mathml"},content:{}},group:"inline",draggable:!0,parseDOM:[{tag:"math",getAttrs:e=>({lang:"mathml",content:new XMLSerializer().serializeToString(e)})}],toDOM(e){const A=new DOMParser().parseFromString(e.attrs.content,"application/xml");return A.getElementsByTagName("parsererror").length>0?["span",{class:"mathml-error"},"Invalid MathML"]:document.importNode(A.documentElement,!0)}}}}class NodeDefinitionList extends Node$1{constructor(){super(...arguments),this.name="dl",this.requires=["doc"]}getNodeSpec(){return{content:"dt+|dd+",group:"block",parseDOM:[{tag:"dl"}],toDOM(){return["dl",0]}}}getInputRules(e){return[]}getCommandFactories(e,n){return{toggleDefinitionList:()=>e.commandFactories.wrapInList(n)}}getKeyboardShortcuts(){return{}}}class NodeDefinitionTerm extends Node$1{constructor(){super(...arguments),this.name="dt",this.requires=["dl"]}getNodeSpec(){return{content:"inline*",group:"block",parseDOM:[{tag:"dt"}],defining:!0,toDOM(){return["dt",0]}}}}class NodeDefinitionDesc extends Node$1{constructor(){super(...arguments),this.name="dd",this.requires=["dl"]}getNodeSpec(){return{content:"inline*",group:"block",parseDOM:[{tag:"dd"}],defining:!0,toDOM(){return["dd",0]}}}}class NodeFrontmatter extends Node$1{constructor(){super(...arguments),this.name="frontmatter",this.requires=["doc"]}getNodeSpec(){return{content:"inline*",group:"block",defining:!0,parseDOM:[{tag:"pre"}],toDOM(){return["pre",0]}}}}class NodeTaskList extends Node$1{constructor(){super(...arguments),this.name="task_list",this.requires=["doc"]}getNodeSpec(){return{content:"task_item+",group:"block",parseDOM:[{tag:`ul[data-type="${this.name}"]`}],toDOM(){return["ul",{"data-type":this.name},0]}}}getCommandFactories(e,n){return{toggleTaskList:()=>e.commandFactories.wrapInList(n)}}getKeyboardShortcuts(){return{"Shift-Ctrl-9":"toggleTaskList"}}}function splitListItem(r,e){const n=function(A,o){const{$from:s,$to:a,node:l}=A.selection;if(l&&l.isBlock||s.depth<2||!s.sameParent(a))return!1;const c=s.node(-1);if(c.type!=r)return!1;if(s.parent.content.size==0&&s.node(-1).childCount==s.indexAfter(-1)){if(s.depth==3||s.node(-3).type!=r||s.index(-2)!=s.node(-2).childCount-1)return!1;if(o){let u=Fragment.empty;const f=s.index(-1)?1:s.index(-2)?2:3;for(let B=s.depth-f;B>=s.depth-3;B--)u=Fragment.from(s.node(B).copy(u));let I=s.indexAfter(-1)<s.node(-2).childCount?1:s.indexAfter(-2)<s.node(-3).childCount?2:3;u=u.append(Fragment.from(r.createAndFill()));let p=s.before(s.depth-(f-1)),m=A.tr.replace(p,s.after(-I),new Slice(u,4-f,0)),E=-1;m.doc.nodesBetween(p,m.doc.content.size,(B,Q)=>{if(E>-1)return!1;B.isTextblock&&B.content.size==0&&(E=Q+1)}),E>-1&&m.setSelection(Selection.near(m.doc.resolve(E))),o(m.scrollIntoView())}return!0}let g=a.pos==s.end()?c.contentMatchAt(0).defaultType:null,h=A.tr.delete(s.pos,a.pos),d=g?[null,{type:g}]:void 0;return canSplit(h.doc,s.pos,2,d)?(o&&o(h.split(s.pos,2,d).scrollIntoView()),!0):!1};return n.displayName=`splitListItem(${r.name})`,n}function liftListItem(r){return function(e,n){let{$from:A,$to:o}=e.selection,s=A.blockRange(o,a=>a.childCount>0&&a.firstChild.type==r);return s?n?A.node(s.depth-1).type==r?liftToOuterList(e,n,r,s):liftOutOfList(e,n,s):!0:!1}}function liftToOuterList(r,e,n,A){let o=r.tr,s=A.end,a=A.$to.end(A.depth);s<a&&(o.step(new ReplaceAroundStep(s-1,a,s,a,new Slice(Fragment.from(n.create(null,A.parent.copy())),1,0),1,!0)),A=new NodeRange(o.doc.resolve(A.$from.pos),o.doc.resolve(a),A.depth));const l=liftTarget(A);if(l==null)return!1;o.lift(A,l);let c=o.doc.resolve(o.mapping.map(s,-1)-1);return canJoin(o.doc,c.pos)&&c.nodeBefore.type==c.nodeAfter.type&&o.join(c.pos),e(o.scrollIntoView()),!0}function liftOutOfList(r,e,n){let A=r.tr,o=n.parent;for(let f=n.end,I=n.endIndex-1,p=n.startIndex;I>p;I--)f-=o.child(I).nodeSize,A.delete(f-1,f+1);let s=A.doc.resolve(n.start),a=s.nodeAfter;if(A.mapping.map(n.end)!=n.start+s.nodeAfter.nodeSize)return!1;let l=n.startIndex==0,c=n.endIndex==o.childCount,g=s.node(-1),h=s.index(-1);if(!g.canReplace(h+(l?0:1),h+1,a.content.append(c?Fragment.empty:Fragment.from(o))))return!1;let d=s.pos,u=d+a.nodeSize;return A.step(new ReplaceAroundStep(d-(l?1:0),u+(c?1:0),d+1,u-1,new Slice((l?Fragment.empty:Fragment.from(o.copy(Fragment.empty))).append(c?Fragment.empty:Fragment.from(o.copy(Fragment.empty))),l?0:1,c?0:1),l?0:1)),e(A.scrollIntoView()),!0}function sinkListItem(r){return function(e,n){const{$from:A,$to:o}=e.selection,s=A.blockRange(o,g=>g.childCount>0&&g.firstChild.type==r);if(!s)return!1;const a=s.startIndex;if(a==0)return!1;const l=s.parent,c=l.child(a-1);if(c.type!=r)return!1;if(n){const g=c.lastChild&&c.lastChild.type==l.type,h=Fragment.from(g?r.create():null),d=new Slice(Fragment.from(r.create(null,Fragment.from(l.type.create(null,h)))),g?3:1,0),u=s.start,f=s.end;n(e.tr.step(new ReplaceAroundStep(u-(g?3:1),f,u,f,d,1,!0)).scrollIntoView())}return!0}}const inputRegex=/^\s*(\[([( |x])?\])\s$/;class NodeTaskItem extends Node$1{constructor(e={}){super(e),this.config=e,this.name="task_item",this.requires=["doc"]}getNodeSpec(){return{attrs:{checked:{default:!1}},content:this.config.nested?"paragraph block*":"paragraph+",parseDOM:[{tag:"li[data-checked]",getAttrs(e){return{checked:e.getAttribute("data-checked")==="true"}}}],defining:!0,toDOM(e){return["li",{"data-type":this.name,"data-checked":e.attrs.checked},["label",["input",{type:"checkbox",checked:e.attrs.checked?"checked":null}],["span"]],["div",0]]}}}getCommandFactories(e,n){return{splitListItem:()=>splitListItem(n),liftListItem:()=>liftListItem(n),sinkListItem:()=>sinkListItem(n)}}getNodeView(e){return(n,A,o)=>{const s=document.createElement("li"),a=document.createElement("label"),l=document.createElement("span"),c=document.createElement("input"),g=document.createElement("div");return s.style.display="flex",s.style.alignItems="flex-start",s.style.gap="0.5em",a.style.flexShrink="0",a.style.marginTop="0.25em",g.style.flex="1",a.contentEditable="false",c.type="checkbox",c.addEventListener("mousedown",h=>h.preventDefault()),c.addEventListener("change",h=>{const{checked:d}=h.target;typeof o=="function"&&e.chain().focus(void 0,{scrollIntoView:!1}).command(({tr:u})=>{const f=o();if(typeof f!="number")return!1;const I=u.doc.nodeAt(f);return u.setNodeMarkup(f,void 0,{...I?.attrs,checked:d}),!0}).run()}),s.dataset.checked=n.attrs.checked,c.checked=n.attrs.checked,a.append(c,l),s.append(a,g),{dom:s,contentDOM:g,update:h=>h.type.name!==this.type?!1:(s.dataset.checked=h.attrs.checked,c.checked=h.attrs.checked,!0)}}}getKeyboardShortcuts(){return{Enter:"splitListItem",Tab:"sinkListItem","Shift-Tab":"liftListItem"}}getInputRules(e){return[wrappingInputRule(inputRegex,e,n=>({checked:n[n.length-1]==="x"}))]}}function fixCharacters$1(r){return r.replace(/’/g,"'").replace(/“/g,'"').replace(/”/g,'"').replace(/\x0b/g," ").replace(/\u201d/g,'"').replace(/\u201c/g,'"')}function replaceAllNodesOfType(r,e,n,A){const o=[];e.descendants((s,a)=>{s.type===n&&o.push({node:s,pos:a})});for(let s=o.length-1;s>=0;s--){const{node:a,pos:l}=o[s],c=A(a,r.doc.type.schema);r=r.replaceWith(l,l+a.nodeSize,c)}return r}class NodeInlineShortCode extends Node$1{constructor(){super(...arguments),this.name="shortcode_inline",this.requires=["doc"]}getNodeSpec(){return{inline:!0,group:"inline",selectable:!0,atom:!0,attrs:{id:{default:void 0},content:{default:""},nesting:{default:NESTING_SELF_CLOSING$1},error:{default:""}},parseDOM:[{tag:"span.kb-shortcode-inline",getAttrs:e=>({content:e.textContent||null})}],toDOM(e){return["span",{class:"kb-shortcode-inline"},e.attrs.content||""]}}}getInputRules(e){return[replaceInlineNode(/\{\{[^}]+\}\}/,e,n=>({content:fixCharacters$1(n[0].substring(2,n[0].length-2))}))]}getCommandFactories(e,n){return{renderShortCode:A=>(o,s)=>{let a=o.tr;return a=replaceAllNodesOfType(a,o.doc,n,A),a.docChanged&&s&&s(a),!0}}}}class NodeIframe extends Node$1{constructor(){super(...arguments),this.name="iframe",this.requires=["doc"]}getNodeSpec(){return{inline:!0,attrs:{src:{},class:{default:null},alt:{default:null},title:{default:null}},group:"inline",draggable:!0,parseDOM:[{tag:"iframe[src]",getAttrs(e){return{src:e.getAttribute("src"),title:e.getAttribute("title"),alt:e.getAttribute("alt")}}}],toDOM(e){const{src:n,alt:A,title:o}=e.attrs;return["iframe",{src:n,alt:A,title:o,class:e.attrs.class}]}}}}function collectCommentAnchors(r){const e=new Map,n=new Map;return r.descendants((A,o)=>{A.type.name==="comment"&&(A.attrs.nesting===NESTING_OPENING$1&&e.set(A.attrs.id,o),A.attrs.nesting===NESTING_CLOSING$1&&n.set(A.attrs.id,o))}),{starts:e,ends:n}}function buildCommentRanges(r){const{starts:e,ends:n}=collectCommentAnchors(r),A=[];for(const[o,s]of e){const a=n.get(o);!a||a<=s||A.push({id:o,from:s+1,to:a})}return A}function buildDecorations(r){const e=buildCommentRanges(r);return DecorationSet.create(r,e.map(({id:n,from:A,to:o})=>Decoration$1.inline(A,o,{class:"comment-highlight","data-comment-id":n})))}function commentsPlugin(){return new Plugin({state:{init(r,{doc:e}){return buildDecorations(e)},apply(r,e,n,A){return r.docChanged?buildDecorations(A.doc):e}},props:{decorations(r){return this.getState(r)}}})}const addCommentBoundary=r=>(e,n)=>{const{schema:A,selection:o}=e,{from:s,to:a}=o,l=A.nodes.comment;if(!l)return!1;const c=l.create({id:r,nesting:NESTING_OPENING$1}),g=l.create({id:r,nesting:NESTING_CLOSING$1}),h=e.tr;return h.insert(a,g),h.insert(s,c),n&&n(h),!0};class NodeCommentAnchor extends Node$1{constructor(){super(...arguments),this.name="comment",this.requires=["doc"],this.options={keepMarks:!0}}getNodeSpec(){return{inline:!0,group:"inline",selectable:!1,atom:!0,attrs:{id:{},active:{default:!1},nesting:{default:NESTING_OPENING$1}},parseDOM:[{tag:"span[data-comment-id]",getAttrs(e){return{id:e.getAttribute("data-comment-id"),nesting:parseInt(e.getAttribute("data-nesting")||"1"),active:e.hasAttribute("data-active")}}}],toDOM:e=>["span",{"data-comment-id":e.attrs.id,"data-active":e.attrs.active?"true":void 0,"data-nesting":e.attrs.nesting}]}}getCommandFactories(e,n){return{addComment:(A,o)=>addCommentBoundary(A)}}getProseMirrorPlugins(){return[commentsPlugin()]}}class BasicEditorKit{getExtensions(){return[new ExtensionBaseKeymap,new ExtensionDropcursor,new ExtensionGapcursor,new ExtensionHtml,new ExtensionMediaUpload,new ExtensionRemoteSelection,new ExtensionSelection,new ExtensionTextAlign,new ExtensionPairing,new NodeDocument,new NodeText,new NodeParagraph,new NodeHardBreak,new NodeSoftBreak,new NodeCodeBlock$1,new NodeBookmark,new NodeHorizontalRule,new NodeOrderedList,new NodeBulletList,new NodeListItem,new NodeTaskList,new NodeTaskItem,new NodeDefinitionList,new NodeDefinitionTerm,new NodeDefinitionDesc,new NodeTaskList,new NodeTaskItem,new NodeFrontmatter,new NodeImage,new NodeVideo,new NodeBlockquote,new NodeAside,new NodeHeading,new NodeMath,new NodeInlineShortCode,new NodeIframe,new NodeCommentAnchor,new MarkLink,new MarkItalic,new MarkStrong,new MarkUnderline,new MarkStrike,new MarkCode,new MarkChange,new MarkBookmark,new MarkTextColor,new MarkHighlight,new MarkSuperscript,new MarkSubscript]}}const kit=new BasicEditorKit;class ExtensionBasicEditor extends Extension{constructor(){super(...arguments),this.name="basic-editor",this.requires=kit.getExtensions()}}class NodeCodeBlock extends Node$1{name="code_block";getNodeSpec(){return{content:"text*",marks:"",group:"block",code:!0,defining:!0,attrs:{lang:{default:void 0}},parseDOM:[{tag:"pre",preserveWhitespace:"full",getAttrs(e){return{lang:e.getAttribute("lang")}}}],toDOM(e){const{lang:n}=e.attrs;return["pre",{lang:n},["code",0]]}}}getInputRules(e){return[textblockTypeInputRule(/^```$/,e)]}}const basicNormalize=typeof String.prototype.normalize=="function"?r=>r.normalize("NFKD"):r=>r;class SearchCursor{constructor(e,n,A=0,o=e.length,s,a){this.test=a,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(A,o),this.bufferStart=A,this.normalize=s?l=>s(basicNormalize(l)):basicNormalize,this.query=this.normalize(n)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return codePointAt(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let n=fromCodePoint(e),A=this.bufferStart+this.bufferPos;this.bufferPos+=codePointSize(e);let o=this.normalize(n);if(o.length)for(let s=0,a=A;;s++){let l=o.charCodeAt(s),c=this.match(l,a,this.bufferPos+this.bufferStart);if(s==o.length-1){if(c)return this.value=c,this;break}a==A&&s<n.length&&n.charCodeAt(s)==l&&a++}}}match(e,n,A){let o=null;for(let s=0;s<this.matches.length;s+=2){let a=this.matches[s],l=!1;this.query.charCodeAt(a)==e&&(a==this.query.length-1?o={from:this.matches[s+1],to:A}:(this.matches[s]++,l=!0)),l||(this.matches.splice(s,2),s-=2)}return this.query.charCodeAt(0)==e&&(this.query.length==1?o={from:n,to:A}:this.matches.push(1,n)),o&&this.test&&!this.test(o.from,o.to,this.buffer,this.bufferStart)&&(o=null),o}}typeof Symbol<"u"&&(SearchCursor.prototype[Symbol.iterator]=function(){return this});const selectWord=({state:r,dispatch:e})=>{let{selection:n}=r,A=EditorSelection.create(n.ranges.map(o=>r.wordAt(o.head)||EditorSelection.cursor(o.head)),n.mainIndex);return A.eq(n)?!1:(e(r.update({selection:A})),!0)};function findNextOccurrence(r,e){let{main:n,ranges:A}=r.selection,o=r.wordAt(n.head),s=o&&o.from==n.from&&o.to==n.to;for(let a=!1,l=new SearchCursor(r.doc,e,A[A.length-1].to);;)if(l.next(),l.done){if(a)return null;l=new SearchCursor(r.doc,e,0,Math.max(0,A[A.length-1].from-1)),a=!0}else{if(a&&A.some(c=>c.from==l.value.from))continue;if(s){let c=r.wordAt(l.value.from);if(!c||c.from!=l.value.from||c.to!=l.value.to)continue}return l.value}}const selectNextOccurrence=({state:r,dispatch:e})=>{let{ranges:n}=r.selection;if(n.some(s=>s.from===s.to))return selectWord({state:r,dispatch:e});let A=r.sliceDoc(n[0].from,n[0].to);if(r.selection.ranges.some(s=>r.sliceDoc(s.from,s.to)!=A))return!1;let o=findNextOccurrence(r,A);return o?(e(r.update({selection:r.selection.addRange(EditorSelection.range(o.from,o.to),!1),effects:EditorView.scrollIntoView(o.to)})),!0):!1};class CompletionContext{constructor(e,n,A,o){this.state=e,this.pos=n,this.explicit=A,this.view=o,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let n=syntaxTree(this.state).resolveInner(this.pos,-1);for(;n&&e.indexOf(n.name)<0;)n=n.parent;return n?{from:n.from,to:this.pos,text:this.state.sliceDoc(n.from,this.pos),type:n.type}:null}matchBefore(e){let n=this.state.doc.lineAt(this.pos),A=Math.max(n.from,this.pos-250),o=n.text.slice(A-n.from,this.pos-n.from),s=o.search(ensureAnchor(e,!1));return s<0?null:{from:A+s,to:this.pos,text:o.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,n,A){e=="abort"&&this.abortListeners&&(this.abortListeners.push(n),A&&A.onDocChange&&(this.abortOnDocChange=!0))}}function toSet(r){let e=Object.keys(r).join(""),n=/\w/.test(e);return n&&(e=e.replace(/\w/g,"")),`[${n?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function prefixMatch(r){let e=Object.create(null),n=Object.create(null);for(let{label:o}of r){e[o[0]]=!0;for(let s=1;s<o.length;s++)n[o[s]]=!0}let A=toSet(e)+toSet(n)+"*$";return[new RegExp("^"+A),new RegExp(A)]}function completeFromList(r){let e=r.map(o=>typeof o=="string"?{label:o}:o),[n,A]=e.every(o=>/^\w+$/.test(o.label))?[/\w*$/,/\w+$/]:prefixMatch(e);return o=>{let s=o.matchBefore(A);return s||o.explicit?{from:s?s.from:o.pos,options:e,validFor:n}:null}}function ifNotIn(r,e){return n=>{for(let A=syntaxTree(n.state).resolveInner(n.pos,-1);A;A=A.parent){if(r.indexOf(A.name)>-1)return null;if(A.type.isTop)break}return e(n)}}class Option{constructor(e,n,A,o){this.completion=e,this.source=n,this.match=A,this.score=o}}function cur(r){return r.selection.main.from}function ensureAnchor(r,e){var n;let{source:A}=r,o=e&&A[0]!="^",s=A[A.length-1]!="$";return!o&&!s?r:new RegExp(`${o?"^":""}(?:${A})${s?"$":""}`,(n=r.flags)!==null&&n!==void 0?n:r.ignoreCase?"i":"")}const pickedCompletion=Annotation.define();function insertCompletionText(r,e,n,A){let{main:o}=r.selection,s=n-o.from,a=A-o.from;return Object.assign(Object.assign({},r.changeByRange(l=>{if(l!=o&&n!=A&&r.sliceDoc(l.from+s,l.from+a)!=r.sliceDoc(n,A))return{range:l};let c=r.toText(e);return{changes:{from:l.from+s,to:A==o.from?l.to:l.from+a,insert:c},range:EditorSelection.cursor(l.from+s+c.length)}})),{scrollIntoView:!0,userEvent:"input.complete"})}const SourceCache=new WeakMap;function asSource(r){if(!Array.isArray(r))return r;let e=SourceCache.get(r);return e||SourceCache.set(r,e=completeFromList(r)),e}const startCompletionEffect=StateEffect.define(),closeCompletionEffect=StateEffect.define();class FuzzyMatcher{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let n=0;n<e.length;){let A=codePointAt(e,n),o=codePointSize(A);this.chars.push(A);let s=e.slice(n,n+o),a=s.toUpperCase();this.folded.push(codePointAt(a==s?s.toLowerCase():a,0)),n+=o}this.astral=e.length!=this.chars.length}ret(e,n){return this.score=e,this.matched=n,this}match(e){if(this.pattern.length==0)return this.ret(-100,[]);if(e.length<this.pattern.length)return null;let{chars:n,folded:A,any:o,precise:s,byWord:a}=this;if(n.length==1){let B=codePointAt(e,0),Q=codePointSize(B),w=Q==e.length?0:-100;if(B!=n[0])if(B==A[0])w+=-200;else return null;return this.ret(w,[0,Q])}let l=e.indexOf(this.pattern);if(l==0)return this.ret(e.length==this.pattern.length?0:-100,[0,this.pattern.length]);let c=n.length,g=0;if(l<0){for(let B=0,Q=Math.min(e.length,200);B<Q&&g<c;){let w=codePointAt(e,B);(w==n[g]||w==A[g])&&(o[g++]=B),B+=codePointSize(w)}if(g<c)return null}let h=0,d=0,u=!1,f=0,I=-1,p=-1,m=/[a-z]/.test(e),E=!0;for(let B=0,Q=Math.min(e.length,200),w=0;B<Q&&d<c;){let y=codePointAt(e,B);l<0&&(h<c&&y==n[h]&&(s[h++]=B),f<c&&(y==n[f]||y==A[f]?(f==0&&(I=B),p=B+1,f++):f=0));let S,D=y<255?y>=48&&y<=57||y>=97&&y<=122?2:y>=65&&y<=90?1:0:(S=fromCodePoint(y))!=S.toLowerCase()?1:S!=S.toUpperCase()?2:0;(!B||D==1&&m||w==0&&D!=0)&&(n[d]==y||A[d]==y&&(u=!0)?a[d++]=B:a.length&&(E=!1)),w=D,B+=codePointSize(y)}return d==c&&a[0]==0&&E?this.result(-100+(u?-200:0),a,e):f==c&&I==0?this.ret(-200-e.length+(p==e.length?0:-100),[0,p]):l>-1?this.ret(-700-e.length,[l,l+this.pattern.length]):f==c?this.ret(-900-e.length,[I,p]):d==c?this.result(-100+(u?-200:0)+-700+(E?0:-1100),a,e):n.length==2?null:this.result((o[0]?-700:0)+-200+-1100,o,e)}result(e,n,A){let o=[],s=0;for(let a of n){let l=a+(this.astral?codePointSize(codePointAt(A,a)):1);s&&o[s-1]==a?o[s-1]=l:(o[s++]=a,o[s++]=l)}return this.ret(e-A.length,o)}}class StrictMatcher{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length<this.pattern.length)return null;let n=e.slice(0,this.pattern.length),A=n==this.pattern?0:n.toLowerCase()==this.folded?-200:null;return A==null?null:(this.matched=[0,n.length],this.score=A+(e.length==this.pattern.length?0:-100),this)}}const completionConfig$1=Facet.define({combine(r){return combineConfig(r,{activateOnTyping:!0,activateOnCompletion:()=>!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:defaultPositionInfo,filterStrict:!1,compareCompletions:(e,n)=>e.label.localeCompare(n.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,n)=>e&&n,closeOnBlur:(e,n)=>e&&n,icons:(e,n)=>e&&n,tooltipClass:(e,n)=>A=>joinClass(e(A),n(A)),optionClass:(e,n)=>A=>joinClass(e(A),n(A)),addToOptions:(e,n)=>e.concat(n),filterStrict:(e,n)=>e||n})}});function joinClass(r,e){return r?e?r+" "+e:r:e}function defaultPositionInfo(r,e,n,A,o,s){let a=r.textDirection==Direction.RTL,l=a,c=!1,g="top",h,d,u=e.left-o.left,f=o.right-e.right,I=A.right-A.left,p=A.bottom-A.top;if(l&&u<Math.min(I,f)?l=!1:!l&&f<Math.min(I,u)&&(l=!0),I<=(l?u:f))h=Math.max(o.top,Math.min(n.top,o.bottom-p))-e.top,d=Math.min(400,l?u:f);else{c=!0,d=Math.min(400,(a?e.right:o.right-e.left)-30);let B=o.bottom-e.bottom;B>=p||B>e.top?h=n.bottom-e.top:(g="bottom",h=e.bottom-n.top)}let m=(e.bottom-e.top)/s.offsetHeight,E=(e.right-e.left)/s.offsetWidth;return{style:`${g}: ${h/m}px; max-width: ${d/E}px`,class:"cm-completionInfo-"+(c?a?"left-narrow":"right-narrow":l?"left":"right")}}function optionContent(r){let e=r.addToOptions.slice();return r.icons&&e.push({render(n){let A=document.createElement("div");return A.classList.add("cm-completionIcon"),n.type&&A.classList.add(...n.type.split(/\s+/g).map(o=>"cm-completionIcon-"+o)),A.setAttribute("aria-hidden","true"),A},position:20}),e.push({render(n,A,o,s){let a=document.createElement("span");a.className="cm-completionLabel";let l=n.displayLabel||n.label,c=0;for(let g=0;g<s.length;){let h=s[g++],d=s[g++];h>c&&a.appendChild(document.createTextNode(l.slice(c,h)));let u=a.appendChild(document.createElement("span"));u.appendChild(document.createTextNode(l.slice(h,d))),u.className="cm-completionMatchedText",c=d}return c<l.length&&a.appendChild(document.createTextNode(l.slice(c))),a},position:50},{render(n){if(!n.detail)return null;let A=document.createElement("span");return A.className="cm-completionDetail",A.textContent=n.detail,A},position:80}),e.sort((n,A)=>n.position-A.position).map(n=>n.render)}function rangeAroundSelected(r,e,n){if(r<=n)return{from:0,to:r};if(e<0&&(e=0),e<=r>>1){let o=Math.floor(e/n);return{from:o*n,to:(o+1)*n}}let A=Math.floor((r-e)/n);return{from:r-(A+1)*n,to:r-A*n}}class CompletionTooltip{constructor(e,n,A){this.view=e,this.stateField=n,this.applyCompletion=A,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:c=>this.placeInfo(c),key:this},this.space=null,this.currentClass="";let o=e.state.field(n),{options:s,selected:a}=o.open,l=e.state.facet(completionConfig$1);this.optionContent=optionContent(l),this.optionClass=l.optionClass,this.tooltipClass=l.tooltipClass,this.range=rangeAroundSelected(s.length,a,l.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",c=>{let{options:g}=e.state.field(n).open;for(let h=c.target,d;h&&h!=this.dom;h=h.parentNode)if(h.nodeName=="LI"&&(d=/-(\d+)$/.exec(h.id))&&+d[1]<g.length){this.applyCompletion(e,g[+d[1]]),c.preventDefault();return}}),this.dom.addEventListener("focusout",c=>{let g=e.state.field(this.stateField,!1);g&&g.tooltip&&e.state.facet(completionConfig$1).closeOnBlur&&c.relatedTarget!=e.contentDOM&&e.dispatch({effects:closeCompletionEffect.of(null)})}),this.showOptions(s,o.id)}mount(){this.updateSel()}showOptions(e,n){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,n,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var n;let A=e.state.field(this.stateField),o=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),A!=o){let{options:s,selected:a,disabled:l}=A.open;(!o.open||o.open.options!=s)&&(this.range=rangeAroundSelected(s.length,a,e.state.facet(completionConfig$1).maxRenderedOptions),this.showOptions(s,A.id)),this.updateSel(),l!=((n=o.open)===null||n===void 0?void 0:n.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!l)}}updateTooltipClass(e){let n=this.tooltipClass(e);if(n!=this.currentClass){for(let A of this.currentClass.split(" "))A&&this.dom.classList.remove(A);for(let A of n.split(" "))A&&this.dom.classList.add(A);this.currentClass=n}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),n=e.open;if((n.selected>-1&&n.selected<this.range.from||n.selected>=this.range.to)&&(this.range=rangeAroundSelected(n.options.length,n.selected,this.view.state.facet(completionConfig$1).maxRenderedOptions),this.showOptions(n.options,e.id)),this.updateSelectedOption(n.selected)){this.destroyInfo();let{completion:A}=n.options[n.selected],{info:o}=A;if(!o)return;let s=typeof o=="string"?document.createTextNode(o):o(A);if(!s)return;"then"in s?s.then(a=>{a&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(a,A)}).catch(a=>logException(this.view.state,a,"completion info")):this.addInfoPane(s,A)}}addInfoPane(e,n){this.destroyInfo();let A=this.info=document.createElement("div");if(A.className="cm-tooltip cm-completionInfo",e.nodeType!=null)A.appendChild(e),this.infoDestroy=null;else{let{dom:o,destroy:s}=e;A.appendChild(o),this.infoDestroy=s||null}this.dom.appendChild(A),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let n=null;for(let A=this.list.firstChild,o=this.range.from;A;A=A.nextSibling,o++)A.nodeName!="LI"||!A.id?o--:o==e?A.hasAttribute("aria-selected")||(A.setAttribute("aria-selected","true"),n=A):A.hasAttribute("aria-selected")&&A.removeAttribute("aria-selected");return n&&scrollIntoView(this.list,n),n}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let n=this.dom.getBoundingClientRect(),A=this.info.getBoundingClientRect(),o=e.getBoundingClientRect(),s=this.space;if(!s){let a=this.dom.ownerDocument.documentElement;s={left:0,top:0,right:a.clientWidth,bottom:a.clientHeight}}return o.top>Math.min(s.bottom,n.bottom)-10||o.bottom<Math.max(s.top,n.top)+10?null:this.view.state.facet(completionConfig$1).positionInfo(this.view,n,o,A,s,this.dom)}placeInfo(e){this.info&&(e?(e.style&&(this.info.style.cssText=e.style),this.info.className="cm-tooltip cm-completionInfo "+(e.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(e,n,A){const o=document.createElement("ul");o.id=n,o.setAttribute("role","listbox"),o.setAttribute("aria-expanded","true"),o.setAttribute("aria-label",this.view.state.phrase("Completions")),o.addEventListener("mousedown",a=>{a.target==o&&a.preventDefault()});let s=null;for(let a=A.from;a<A.to;a++){let{completion:l,match:c}=e[a],{section:g}=l;if(g){let u=typeof g=="string"?g:g.name;if(u!=s&&(a>A.from||A.from==0))if(s=u,typeof g!="string"&&g.header)o.appendChild(g.header(g));else{let f=o.appendChild(document.createElement("completion-section"));f.textContent=u}}const h=o.appendChild(document.createElement("li"));h.id=n+"-"+a,h.setAttribute("role","option");let d=this.optionClass(l);d&&(h.className=d);for(let u of this.optionContent){let f=u(l,this.view.state,this.view,c);f&&h.appendChild(f)}}return A.from&&o.classList.add("cm-completionListIncompleteTop"),A.to<e.length&&o.classList.add("cm-completionListIncompleteBottom"),o}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}}function completionTooltip(r,e){return n=>new CompletionTooltip(n,r,e)}function scrollIntoView(r,e){let n=r.getBoundingClientRect(),A=e.getBoundingClientRect(),o=n.height/r.offsetHeight;A.top<n.top?r.scrollTop-=(n.top-A.top)/o:A.bottom>n.bottom&&(r.scrollTop+=(A.bottom-n.bottom)/o)}function score(r){return(r.boost||0)*100+(r.apply?10:0)+(r.info?5:0)+(r.type?1:0)}function sortOptions(r,e){let n=[],A=null,o=g=>{n.push(g);let{section:h}=g.completion;if(h){A||(A=[]);let d=typeof h=="string"?h:h.name;A.some(u=>u.name==d)||A.push(typeof h=="string"?{name:d}:h)}},s=e.facet(completionConfig$1);for(let g of r)if(g.hasResult()){let h=g.result.getMatch;if(g.result.filter===!1)for(let d of g.result.options)o(new Option(d,g.source,h?h(d):[],1e9-n.length));else{let d=e.sliceDoc(g.from,g.to),u,f=s.filterStrict?new StrictMatcher(d):new FuzzyMatcher(d);for(let I of g.result.options)if(u=f.match(I.label)){let p=I.displayLabel?h?h(I,u.matched):[]:u.matched;o(new Option(I,g.source,p,u.score+(I.boost||0)))}}}if(A){let g=Object.create(null),h=0,d=(u,f)=>{var I,p;return((I=u.rank)!==null&&I!==void 0?I:1e9)-((p=f.rank)!==null&&p!==void 0?p:1e9)||(u.name<f.name?-1:1)};for(let u of A.sort(d))h-=1e5,g[u.name]=h;for(let u of n){let{section:f}=u.completion;f&&(u.score+=g[typeof f=="string"?f:f.name])}}let a=[],l=null,c=s.compareCompletions;for(let g of n.sort((h,d)=>d.score-h.score||c(h.completion,d.completion))){let h=g.completion;!l||l.label!=h.label||l.detail!=h.detail||l.type!=null&&h.type!=null&&l.type!=h.type||l.apply!=h.apply||l.boost!=h.boost?a.push(g):score(g.completion)>score(l)&&(a[a.length-1]=g),l=g.completion}return a}class CompletionDialog{constructor(e,n,A,o,s,a){this.options=e,this.attrs=n,this.tooltip=A,this.timestamp=o,this.selected=s,this.disabled=a}setSelected(e,n){return e==this.selected||e>=this.options.length?this:new CompletionDialog(this.options,makeAttrs(n,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,n,A,o,s,a){if(o&&!a&&e.some(g=>g.isPending))return o.setDisabled();let l=sortOptions(e,n);if(!l.length)return o&&e.some(g=>g.isPending)?o.setDisabled():null;let c=n.facet(completionConfig$1).selectOnOpen?0:-1;if(o&&o.selected!=c&&o.selected!=-1){let g=o.options[o.selected].completion;for(let h=0;h<l.length;h++)if(l[h].completion==g){c=h;break}}return new CompletionDialog(l,makeAttrs(A,c),{pos:e.reduce((g,h)=>h.hasResult()?Math.min(g,h.from):g,1e8),create:createTooltip,above:s.aboveCursor},o?o.timestamp:Date.now(),c,!1)}map(e){return new CompletionDialog(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}setDisabled(){return new CompletionDialog(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class CompletionState{constructor(e,n,A){this.active=e,this.id=n,this.open=A}static start(){return new CompletionState(none,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:n}=e,A=n.facet(completionConfig$1),s=(A.override||n.languageDataAt("autocomplete",cur(n)).map(asSource)).map(c=>(this.active.find(h=>h.source==c)||new ActiveSource(c,this.active.some(h=>h.state!=0)?1:0)).update(e,A));s.length==this.active.length&&s.every((c,g)=>c==this.active[g])&&(s=this.active);let a=this.open,l=e.effects.some(c=>c.is(setActiveEffect));a&&e.docChanged&&(a=a.map(e.changes)),e.selection||s.some(c=>c.hasResult()&&e.changes.touchesRange(c.from,c.to))||!sameResults(s,this.active)||l?a=CompletionDialog.build(s,n,this.id,a,A,l):a&&a.disabled&&!s.some(c=>c.isPending)&&(a=null),!a&&s.every(c=>!c.isPending)&&s.some(c=>c.hasResult())&&(s=s.map(c=>c.hasResult()?new ActiveSource(c.source,0):c));for(let c of e.effects)c.is(setSelectedEffect)&&(a=a&&a.setSelected(c.value,this.id));return s==this.active&&a==this.open?this:new CompletionState(s,this.id,a)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?baseAttrs:noAttrs}}function sameResults(r,e){if(r==e)return!0;for(let n=0,A=0;;){for(;n<r.length&&!r[n].hasResult();)n++;for(;A<e.length&&!e[A].hasResult();)A++;let o=n==r.length,s=A==e.length;if(o||s)return o==s;if(r[n++].result!=e[A++].result)return!1}}const baseAttrs={"aria-autocomplete":"list"},noAttrs={};function makeAttrs(r,e){let n={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":r};return e>-1&&(n["aria-activedescendant"]=r+"-"+e),n}const none=[];function getUpdateType(r,e){if(r.isUserEvent("input.complete")){let A=r.annotation(pickedCompletion);if(A&&e.activateOnCompletion(A))return 12}let n=r.isUserEvent("input.type");return n&&e.activateOnTyping?5:n?1:r.isUserEvent("delete.backward")?2:r.selection?8:r.docChanged?16:0}class ActiveSource{constructor(e,n,A=!1){this.source=e,this.state=n,this.explicit=A}hasResult(){return!1}get isPending(){return this.state==1}update(e,n){let A=getUpdateType(e,n),o=this;(A&8||A&16&&this.touches(e))&&(o=new ActiveSource(o.source,0)),A&4&&o.state==0&&(o=new ActiveSource(this.source,1)),o=o.updateFor(e,A);for(let s of e.effects)if(s.is(startCompletionEffect))o=new ActiveSource(o.source,1,s.value);else if(s.is(closeCompletionEffect))o=new ActiveSource(o.source,0);else if(s.is(setActiveEffect))for(let a of s.value)a.source==o.source&&(o=a);return o}updateFor(e,n){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(cur(e.state))}}class ActiveResult extends ActiveSource{constructor(e,n,A,o,s,a){super(e,3,n),this.limit=A,this.result=o,this.from=s,this.to=a}hasResult(){return!0}updateFor(e,n){var A;if(!(n&3))return this.map(e.changes);let o=this.result;o.map&&!e.changes.empty&&(o=o.map(o,e.changes));let s=e.changes.mapPos(this.from),a=e.changes.mapPos(this.to,1),l=cur(e.state);if(l>a||!o||n&2&&(cur(e.startState)==this.from||l<this.limit))return new ActiveSource(this.source,n&4?1:0);let c=e.changes.mapPos(this.limit);return checkValid(o.validFor,e.state,s,a)?new ActiveResult(this.source,this.explicit,c,o,s,a):o.update&&(o=o.update(o,s,a,new CompletionContext(e.state,l,!1)))?new ActiveResult(this.source,this.explicit,c,o,o.from,(A=o.to)!==null&&A!==void 0?A:cur(e.state)):new ActiveSource(this.source,1,this.explicit)}map(e){return e.empty?this:(this.result.map?this.result.map(this.result,e):this.result)?new ActiveResult(this.source,this.explicit,e.mapPos(this.limit),this.result,e.mapPos(this.from),e.mapPos(this.to,1)):new ActiveSource(this.source,0)}touches(e){return e.changes.touchesRange(this.from,this.to)}}function checkValid(r,e,n,A){if(!r)return!1;let o=e.sliceDoc(n,A);return typeof r=="function"?r(o,n,A,e):ensureAnchor(r,!0).test(o)}const setActiveEffect=StateEffect.define({map(r,e){return r.map(n=>n.map(e))}}),setSelectedEffect=StateEffect.define(),completionState=StateField.define({create(){return CompletionState.start()},update(r,e){return r.update(e)},provide:r=>[showTooltip.from(r,e=>e.tooltip),EditorView.contentAttributes.from(r,e=>e.attrs)]});function applyCompletion(r,e){const n=e.completion.apply||e.completion.label;let A=r.state.field(completionState).active.find(o=>o.source==e.source);return A instanceof ActiveResult?(typeof n=="string"?r.dispatch(Object.assign(Object.assign({},insertCompletionText(r.state,n,A.from,A.to)),{annotations:pickedCompletion.of(e.completion)})):n(r,e.completion,A.from,A.to),!0):!1}const createTooltip=completionTooltip(completionState,applyCompletion);function moveCompletionSelection(r,e="option"){return n=>{let A=n.state.field(completionState,!1);if(!A||!A.open||A.open.disabled||Date.now()-A.open.timestamp<n.state.facet(completionConfig$1).interactionDelay)return!1;let o=1,s;e=="page"&&(s=getTooltip(n,A.open.tooltip))&&(o=Math.max(2,Math.floor(s.dom.offsetHeight/s.dom.querySelector("li").offsetHeight)-1));let{length:a}=A.open.options,l=A.open.selected>-1?A.open.selected+o*(r?1:-1):r?0:a-1;return l<0?l=e=="page"?0:a-1:l>=a&&(l=e=="page"?a-1:0),n.dispatch({effects:setSelectedEffect.of(l)}),!0}}const acceptCompletion=r=>{let e=r.state.field(completionState,!1);return r.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestamp<r.state.facet(completionConfig$1).interactionDelay?!1:applyCompletion(r,e.open.options[e.open.selected])},startCompletion=r=>r.state.field(completionState,!1)?(r.dispatch({effects:startCompletionEffect.of(!0)}),!0):!1,closeCompletion=r=>{let e=r.state.field(completionState,!1);return!e||!e.active.some(n=>n.state!=0)?!1:(r.dispatch({effects:closeCompletionEffect.of(null)}),!0)};class RunningQuery{constructor(e,n){this.active=e,this.context=n,this.time=Date.now(),this.updates=[],this.done=void 0}}const MaxUpdateCount=50,MinAbortTime=1e3,completionPlugin=ViewPlugin.fromClass(class{constructor(r){this.view=r,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of r.state.field(completionState).active)e.isPending&&this.startQuery(e)}update(r){let e=r.state.field(completionState),n=r.state.facet(completionConfig$1);if(!r.selectionSet&&!r.docChanged&&r.startState.field(completionState)==e)return;let A=r.transactions.some(s=>{let a=getUpdateType(s,n);return a&8||(s.selection||s.docChanged)&&!(a&3)});for(let s=0;s<this.running.length;s++){let a=this.running[s];if(A||a.context.abortOnDocChange&&r.docChanged||a.updates.length+r.transactions.length>MaxUpdateCount&&Date.now()-a.time>MinAbortTime){for(let l of a.context.abortListeners)try{l()}catch(c){logException(this.view.state,c)}a.context.abortListeners=null,this.running.splice(s--,1)}else a.updates.push(...r.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),r.transactions.some(s=>s.effects.some(a=>a.is(startCompletionEffect)))&&(this.pendingStart=!0);let o=this.pendingStart?50:n.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(s=>s.isPending&&!this.running.some(a=>a.active.source==s.source))?setTimeout(()=>this.startUpdate(),o):-1,this.composing!=0)for(let s of r.transactions)s.isUserEvent("input.type")?this.composing=2:this.composing==2&&s.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:r}=this.view,e=r.field(completionState);for(let n of e.active)n.isPending&&!this.running.some(A=>A.active.source==n.source)&&this.startQuery(n);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(completionConfig$1).updateSyncTime))}startQuery(r){let{state:e}=this.view,n=cur(e),A=new CompletionContext(e,n,r.explicit,this.view),o=new RunningQuery(r,A);this.running.push(o),Promise.resolve(r.source(A)).then(s=>{o.context.aborted||(o.done=s||null,this.scheduleAccept())},s=>{this.view.dispatch({effects:closeCompletionEffect.of(null)}),logException(this.view.state,s)})}scheduleAccept(){this.running.every(r=>r.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(completionConfig$1).updateSyncTime))}accept(){var r;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],n=this.view.state.facet(completionConfig$1),A=this.view.state.field(completionState);for(let o=0;o<this.running.length;o++){let s=this.running[o];if(s.done===void 0)continue;if(this.running.splice(o--,1),s.done){let l=cur(s.updates.length?s.updates[0].startState:this.view.state),c=Math.min(l,s.done.from+(s.active.explicit?0:1)),g=new ActiveResult(s.active.source,s.active.explicit,c,s.done,s.done.from,(r=s.done.to)!==null&&r!==void 0?r:l);for(let h of s.updates)g=g.update(h,n);if(g.hasResult()){e.push(g);continue}}let a=A.active.find(l=>l.source==s.active.source);if(a&&a.isPending)if(s.done==null){let l=new ActiveSource(s.active.source,0);for(let c of s.updates)l=l.update(c,n);l.isPending||e.push(l)}else this.startQuery(a)}(e.length||A.open&&A.open.disabled)&&this.view.dispatch({effects:setActiveEffect.of(e)})}},{eventHandlers:{blur(r){let e=this.view.state.field(completionState,!1);if(e&&e.tooltip&&this.view.state.facet(completionConfig$1).closeOnBlur){let n=e.open&&getTooltip(this.view,e.open.tooltip);(!n||!n.dom.contains(r.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:closeCompletionEffect.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:startCompletionEffect.of(!1)}),20),this.composing=0}}}),windows=typeof navigator=="object"&&/Win/.test(navigator.platform),commitCharacters=Prec.highest(EditorView.domEventHandlers({keydown(r,e){let n=e.state.field(completionState,!1);if(!n||!n.open||n.open.disabled||n.open.selected<0||r.key.length>1||r.ctrlKey&&!(windows&&r.altKey)||r.metaKey)return!1;let A=n.open.options[n.open.selected],o=n.active.find(a=>a.source==A.source),s=A.completion.commitCharacters||o.result.commitCharacters;return s&&s.indexOf(r.key)>-1&&applyCompletion(e,A),!1}})),baseTheme=EditorView.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class FieldPos{constructor(e,n,A,o){this.field=e,this.line=n,this.from=A,this.to=o}}class FieldRange{constructor(e,n,A){this.field=e,this.from=n,this.to=A}map(e){let n=e.mapPos(this.from,-1,MapMode.TrackDel),A=e.mapPos(this.to,1,MapMode.TrackDel);return n==null||A==null?null:new FieldRange(this.field,n,A)}}class Snippet{constructor(e,n){this.lines=e,this.fieldPositions=n}instantiate(e,n){let A=[],o=[n],s=e.doc.lineAt(n),a=/^\s*/.exec(s.text)[0];for(let c of this.lines){if(A.length){let g=a,h=/^\t*/.exec(c)[0].length;for(let d=0;d<h;d++)g+=e.facet(indentUnit);o.push(n+g.length-h),c=g+c.slice(h)}A.push(c),n+=c.length+1}let l=this.fieldPositions.map(c=>new FieldRange(c.field,o[c.line]+c.from,o[c.line]+c.to));return{text:A,ranges:l}}static parse(e){let n=[],A=[],o=[],s;for(let a of e.split(/\r\n?|\n/)){for(;s=/[#$]\{(?:(\d+)(?::([^}]*))?|((?:\\[{}]|[^}])*))\}/.exec(a);){let l=s[1]?+s[1]:null,c=s[2]||s[3]||"",g=-1,h=c.replace(/\\[{}]/g,d=>d[1]);for(let d=0;d<n.length;d++)(l!=null?n[d].seq==l:h&&n[d].name==h)&&(g=d);if(g<0){let d=0;for(;d<n.length&&(l==null||n[d].seq!=null&&n[d].seq<l);)d++;n.splice(d,0,{seq:l,name:h}),g=d;for(let u of o)u.field>=g&&u.field++}o.push(new FieldPos(g,A.length,s.index,s.index+h.length)),a=a.slice(0,s.index)+c+a.slice(s.index+s[0].length)}a=a.replace(/\\([{}])/g,(l,c,g)=>{for(let h of o)h.line==A.length&&h.from>g&&(h.from--,h.to--);return c}),A.push(a)}return new Snippet(A,o)}}let fieldMarker=Decoration.widget({widget:new class extends WidgetType{toDOM(){let r=document.createElement("span");return r.className="cm-snippetFieldPosition",r}ignoreEvent(){return!1}}}),fieldRange=Decoration.mark({class:"cm-snippetField"});class ActiveSnippet{constructor(e,n){this.ranges=e,this.active=n,this.deco=Decoration.set(e.map(A=>(A.from==A.to?fieldMarker:fieldRange).range(A.from,A.to)))}map(e){let n=[];for(let A of this.ranges){let o=A.map(e);if(!o)return null;n.push(o)}return new ActiveSnippet(n,this.active)}selectionInsideField(e){return e.ranges.every(n=>this.ranges.some(A=>A.field==this.active&&A.from<=n.from&&A.to>=n.to))}}const setActive=StateEffect.define({map(r,e){return r&&r.map(e)}}),moveToField=StateEffect.define(),snippetState=StateField.define({create(){return null},update(r,e){for(let n of e.effects){if(n.is(setActive))return n.value;if(n.is(moveToField)&&r)return new ActiveSnippet(r.ranges,n.value)}return r&&e.docChanged&&(r=r.map(e.changes)),r&&e.selection&&!r.selectionInsideField(e.selection)&&(r=null),r},provide:r=>EditorView.decorations.from(r,e=>e?e.deco:Decoration.none)});function fieldSelection(r,e){return EditorSelection.create(r.filter(n=>n.field==e).map(n=>EditorSelection.range(n.from,n.to)))}function snippet(r){let e=Snippet.parse(r);return(n,A,o,s)=>{let{text:a,ranges:l}=e.instantiate(n.state,o),{main:c}=n.state.selection,g={changes:{from:o,to:s==c.from?c.to:s,insert:Text.of(a)},scrollIntoView:!0,annotations:A?[pickedCompletion.of(A),Transaction.userEvent.of("input.complete")]:void 0};if(l.length&&(g.selection=fieldSelection(l,0)),l.some(h=>h.field>0)){let h=new ActiveSnippet(l,0),d=g.effects=[setActive.of(h)];n.state.field(snippetState,!1)===void 0&&d.push(StateEffect.appendConfig.of([snippetState,addSnippetKeymap,snippetPointerHandler,baseTheme]))}n.dispatch(n.state.update(g))}}function moveField(r){return({state:e,dispatch:n})=>{let A=e.field(snippetState,!1);if(!A||r<0&&A.active==0)return!1;let o=A.active+r,s=r>0&&!A.ranges.some(a=>a.field==o+r);return n(e.update({selection:fieldSelection(A.ranges,o),effects:setActive.of(s?null:new ActiveSnippet(A.ranges,o)),scrollIntoView:!0})),!0}}const clearSnippet=({state:r,dispatch:e})=>r.field(snippetState,!1)?(e(r.update({effects:setActive.of(null)})),!0):!1,nextSnippetField=moveField(1),prevSnippetField=moveField(-1),defaultSnippetKeymap=[{key:"Tab",run:nextSnippetField,shift:prevSnippetField},{key:"Escape",run:clearSnippet}],snippetKeymap=Facet.define({combine(r){return r.length?r[0]:defaultSnippetKeymap}}),addSnippetKeymap=Prec.highest(keymap.compute([snippetKeymap],r=>r.facet(snippetKeymap)));function snippetCompletion(r,e){return Object.assign(Object.assign({},e),{apply:snippet(r)})}const snippetPointerHandler=EditorView.domEventHandlers({mousedown(r,e){let n=e.state.field(snippetState,!1),A;if(!n||(A=e.posAtCoords({x:r.clientX,y:r.clientY}))==null)return!1;let o=n.ranges.find(s=>s.from<=A&&s.to>=A);return!o||o.field==n.active?!1:(e.dispatch({selection:fieldSelection(n.ranges,o.field),effects:setActive.of(n.ranges.some(s=>s.field>o.field)?new ActiveSnippet(n.ranges,o.field):null),scrollIntoView:!0}),!0)}}),defaults={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},closeBracketEffect=StateEffect.define({map(r,e){let n=e.mapPos(r,-1,MapMode.TrackAfter);return n??void 0}}),closedBracket=new class extends RangeValue{};closedBracket.startSide=1;closedBracket.endSide=-1;const bracketState=StateField.define({create(){return RangeSet.empty},update(r,e){if(r=r.map(e.changes),e.selection){let n=e.state.doc.lineAt(e.selection.main.head);r=r.update({filter:A=>A>=n.from&&A<=n.to})}for(let n of e.effects)n.is(closeBracketEffect)&&(r=r.update({add:[closedBracket.range(n.value,n.value+1)]}));return r}});function closeBrackets(){return[inputHandler,bracketState]}const definedClosing="()[]{}<>«»»«[]{}";function closing(r){for(let e=0;e<definedClosing.length;e+=2)if(definedClosing.charCodeAt(e)==r)return definedClosing.charAt(e+1);return fromCodePoint(r<128?r:r+1)}function config(r,e){return r.languageDataAt("closeBrackets",e)[0]||defaults}const android=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),inputHandler=EditorView.inputHandler.of((r,e,n,A)=>{if((android?r.composing:r.compositionStarted)||r.state.readOnly)return!1;let o=r.state.selection.main;if(A.length>2||A.length==2&&codePointSize(codePointAt(A,0))==1||e!=o.from||n!=o.to)return!1;let s=insertBracket(r.state,A);return s?(r.dispatch(s),!0):!1}),deleteBracketPair=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let A=config(r,r.selection.main.head).brackets||defaults.brackets,o=null,s=r.changeByRange(a=>{if(a.empty){let l=prevChar(r.doc,a.head);for(let c of A)if(c==l&&nextChar(r.doc,a.head)==closing(codePointAt(c,0)))return{changes:{from:a.head-c.length,to:a.head+c.length},range:EditorSelection.cursor(a.head-c.length)}}return{range:o=a}});return o||e(r.update(s,{scrollIntoView:!0,userEvent:"delete.backward"})),!o},closeBracketsKeymap=[{key:"Backspace",run:deleteBracketPair}];function insertBracket(r,e){let n=config(r,r.selection.main.head),A=n.brackets||defaults.brackets;for(let o of A){let s=closing(codePointAt(o,0));if(e==o)return s==o?handleSame(r,o,A.indexOf(o+o+o)>-1,n):handleOpen(r,o,s,n.before||defaults.before);if(e==s&&closedBracketAt(r,r.selection.main.from))return handleClose(r,o,s)}return null}function closedBracketAt(r,e){let n=!1;return r.field(bracketState).between(0,r.doc.length,A=>{A==e&&(n=!0)}),n}function nextChar(r,e){let n=r.sliceString(e,e+2);return n.slice(0,codePointSize(codePointAt(n,0)))}function prevChar(r,e){let n=r.sliceString(e-2,e);return codePointSize(codePointAt(n,0))==n.length?n:n.slice(1)}function handleOpen(r,e,n,A){let o=null,s=r.changeByRange(a=>{if(!a.empty)return{changes:[{insert:e,from:a.from},{insert:n,from:a.to}],effects:closeBracketEffect.of(a.to+e.length),range:EditorSelection.range(a.anchor+e.length,a.head+e.length)};let l=nextChar(r.doc,a.head);return!l||/\s/.test(l)||A.indexOf(l)>-1?{changes:{insert:e+n,from:a.head},effects:closeBracketEffect.of(a.head+e.length),range:EditorSelection.cursor(a.head+e.length)}:{range:o=a}});return o?null:r.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function handleClose(r,e,n){let A=null,o=r.changeByRange(s=>s.empty&&nextChar(r.doc,s.head)==n?{changes:{from:s.head,to:s.head+n.length,insert:n},range:EditorSelection.cursor(s.head+n.length)}:A={range:s});return A?null:r.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function handleSame(r,e,n,A){let o=A.stringPrefixes||defaults.stringPrefixes,s=null,a=r.changeByRange(l=>{if(!l.empty)return{changes:[{insert:e,from:l.from},{insert:e,from:l.to}],effects:closeBracketEffect.of(l.to+e.length),range:EditorSelection.range(l.anchor+e.length,l.head+e.length)};let c=l.head,g=nextChar(r.doc,c),h;if(g==e){if(nodeStart(r,c))return{changes:{insert:e+e,from:c},effects:closeBracketEffect.of(c+e.length),range:EditorSelection.cursor(c+e.length)};if(closedBracketAt(r,c)){let u=n&&r.sliceDoc(c,c+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:c,to:c+u.length,insert:u},range:EditorSelection.cursor(c+u.length)}}}else{if(n&&r.sliceDoc(c-2*e.length,c)==e+e&&(h=canStartStringAt(r,c-2*e.length,o))>-1&&nodeStart(r,h))return{changes:{insert:e+e+e+e,from:c},effects:closeBracketEffect.of(c+e.length),range:EditorSelection.cursor(c+e.length)};if(r.charCategorizer(c)(g)!=CharCategory.Word&&canStartStringAt(r,c,o)>-1&&!probablyInString(r,c,e,o))return{changes:{insert:e+e,from:c},effects:closeBracketEffect.of(c+e.length),range:EditorSelection.cursor(c+e.length)}}return{range:s=l}});return s?null:r.update(a,{scrollIntoView:!0,userEvent:"input.type"})}function nodeStart(r,e){let n=syntaxTree(r).resolveInner(e+1);return n.parent&&n.from==e}function probablyInString(r,e,n,A){let o=syntaxTree(r).resolveInner(e,-1),s=A.reduce((a,l)=>Math.max(a,l.length),0);for(let a=0;a<5;a++){let l=r.sliceDoc(o.from,Math.min(o.to,o.from+n.length+s)),c=l.indexOf(n);if(!c||c>-1&&A.indexOf(l.slice(0,c))>-1){let h=o.firstChild;for(;h&&h.from==o.from&&h.to-h.from>n.length+c;){if(r.sliceDoc(h.to-n.length,h.to)==n)return!1;h=h.firstChild}return!0}let g=o.to==e&&o.parent;if(!g)break;o=g}return!1}function canStartStringAt(r,e,n){let A=r.charCategorizer(e);if(A(r.sliceDoc(e-1,e))!=CharCategory.Word)return e;for(let o of n){let s=e-o.length;if(r.sliceDoc(s,e)==o&&A(r.sliceDoc(s-1,s))!=CharCategory.Word)return s}return-1}function autocompletion(r={}){return[commitCharacters,completionState,completionConfig$1.of(r),completionPlugin,completionKeymapExt,baseTheme]}const completionKeymap=[{key:"Ctrl-Space",run:startCompletion},{mac:"Alt-`",run:startCompletion},{key:"Escape",run:closeCompletion},{key:"ArrowDown",run:moveCompletionSelection(!0)},{key:"ArrowUp",run:moveCompletionSelection(!1)},{key:"PageDown",run:moveCompletionSelection(!0,"page")},{key:"PageUp",run:moveCompletionSelection(!1,"page")},{key:"Enter",run:acceptCompletion}],completionKeymapExt=Prec.highest(keymap.computeN([completionConfig$1],r=>r.facet(completionConfig$1).defaultKeymap?[completionKeymap]:[])),toggleComment=r=>{let{state:e}=r,n=e.doc.lineAt(e.selection.main.from),A=getConfig(r.state,n.from);return A.line?toggleLineComment(r):A.block?toggleBlockCommentByLine(r):!1};function command(r,e){return({state:n,dispatch:A})=>{if(n.readOnly)return!1;let o=r(e,n);return o?(A(n.update(o)),!0):!1}}const toggleLineComment=command(changeLineComment,0),toggleBlockComment=command(changeBlockComment,0),toggleBlockCommentByLine=command((r,e)=>changeBlockComment(r,e,selectedLineRanges(e)),0);function getConfig(r,e){let n=r.languageDataAt("commentTokens",e,1);return n.length?n[0]:{}}const SearchMargin=50;function findBlockComment(r,{open:e,close:n},A,o){let s=r.sliceDoc(A-SearchMargin,A),a=r.sliceDoc(o,o+SearchMargin),l=/\s*$/.exec(s)[0].length,c=/^\s*/.exec(a)[0].length,g=s.length-l;if(s.slice(g-e.length,g)==e&&a.slice(c,c+n.length)==n)return{open:{pos:A-l,margin:l&&1},close:{pos:o+c,margin:c&&1}};let h,d;o-A<=2*SearchMargin?h=d=r.sliceDoc(A,o):(h=r.sliceDoc(A,A+SearchMargin),d=r.sliceDoc(o-SearchMargin,o));let u=/^\s*/.exec(h)[0].length,f=/\s*$/.exec(d)[0].length,I=d.length-f-n.length;return h.slice(u,u+e.length)==e&&d.slice(I,I+n.length)==n?{open:{pos:A+u+e.length,margin:/\s/.test(h.charAt(u+e.length))?1:0},close:{pos:o-f-n.length,margin:/\s/.test(d.charAt(I-1))?1:0}}:null}function selectedLineRanges(r){let e=[];for(let n of r.selection.ranges){let A=r.doc.lineAt(n.from),o=n.to<=A.to?A:r.doc.lineAt(n.to);o.from>A.from&&o.from==n.to&&(o=n.to==A.to+1?A:r.doc.lineAt(n.to-1));let s=e.length-1;s>=0&&e[s].to>A.from?e[s].to=o.to:e.push({from:A.from+/^\s*/.exec(A.text)[0].length,to:o.to})}return e}function changeBlockComment(r,e,n=e.selection.ranges){let A=n.map(s=>getConfig(e,s.from).block);if(!A.every(s=>s))return null;let o=n.map((s,a)=>findBlockComment(e,A[a],s.from,s.to));if(r!=2&&!o.every(s=>s))return{changes:e.changes(n.map((s,a)=>o[a]?[]:[{from:s.from,insert:A[a].open+" "},{from:s.to,insert:" "+A[a].close}]))};if(r!=1&&o.some(s=>s)){let s=[];for(let a=0,l;a<o.length;a++)if(l=o[a]){let c=A[a],{open:g,close:h}=l;s.push({from:g.pos-c.open.length,to:g.pos+g.margin},{from:h.pos-h.margin,to:h.pos+c.close.length})}return{changes:s}}return null}function changeLineComment(r,e,n=e.selection.ranges){let A=[],o=-1;for(let{from:s,to:a}of n){let l=A.length,c=1e9,g=getConfig(e,s).line;if(g){for(let h=s;h<=a;){let d=e.doc.lineAt(h);if(d.from>o&&(s==a||a>d.from)){o=d.from;let u=/^\s*/.exec(d.text)[0].length,f=u==d.length,I=d.text.slice(u,u+g.length)==g?u:-1;u<d.text.length&&u<c&&(c=u),A.push({line:d,comment:I,token:g,indent:u,empty:f,single:!1})}h=d.to+1}if(c<1e9)for(let h=l;h<A.length;h++)A[h].indent<A[h].line.text.length&&(A[h].indent=c);A.length==l+1&&(A[l].single=!0)}}if(r!=2&&A.some(s=>s.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:l,token:c,indent:g,empty:h,single:d}of A)(d||!h)&&s.push({from:l.from+g,insert:c+" "});let a=e.changes(s);return{changes:a,selection:e.selection.map(a,1)}}else if(r!=1&&A.some(s=>s.comment>=0)){let s=[];for(let{line:a,comment:l,token:c}of A)if(l>=0){let g=a.from+l,h=g+c.length;a.text[h-a.from]==" "&&h++,s.push({from:g,to:h})}return{changes:s}}return null}function updateSel(r,e){return EditorSelection.create(r.ranges.map(e),r.mainIndex)}function setSel(r,e){return r.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function moveSel({state:r,dispatch:e},n){let A=updateSel(r.selection,n);return A.eq(r.selection,!0)?!1:(e(setSel(r,A)),!0)}function rangeEnd(r,e){return EditorSelection.cursor(e?r.to:r.from)}function cursorByChar(r,e){return moveSel(r,n=>n.empty?r.moveByChar(n,e):rangeEnd(n,e))}function ltrAtCursor(r){return r.textDirectionAt(r.state.selection.main.head)==Direction.LTR}const cursorCharLeft=r=>cursorByChar(r,!ltrAtCursor(r)),cursorCharRight=r=>cursorByChar(r,ltrAtCursor(r));function cursorByGroup(r,e){return moveSel(r,n=>n.empty?r.moveByGroup(n,e):rangeEnd(n,e))}const cursorGroupLeft=r=>cursorByGroup(r,!ltrAtCursor(r)),cursorGroupRight=r=>cursorByGroup(r,ltrAtCursor(r));function interestingNode(r,e,n){if(e.type.prop(n))return!0;let A=e.to-e.from;return A&&(A>2||/[^\s,.;:]/.test(r.sliceDoc(e.from,e.to)))||e.firstChild}function moveBySyntax(r,e,n){let A=syntaxTree(r).resolveInner(e.head),o=n?NodeProp.closedBy:NodeProp.openedBy;for(let c=e.head;;){let g=n?A.childAfter(c):A.childBefore(c);if(!g)break;interestingNode(r,g,o)?A=g:c=n?g.to:g.from}let s=A.type.prop(o),a,l;return s&&(a=n?matchBrackets(r,A.from,1):matchBrackets(r,A.to,-1))&&a.matched?l=n?a.end.to:a.end.from:l=n?A.to:A.from,EditorSelection.cursor(l,n?-1:1)}const cursorSyntaxLeft=r=>moveSel(r,e=>moveBySyntax(r.state,e,!ltrAtCursor(r))),cursorSyntaxRight=r=>moveSel(r,e=>moveBySyntax(r.state,e,ltrAtCursor(r)));function cursorByLine(r,e){return moveSel(r,n=>{if(!n.empty)return rangeEnd(n,e);let A=r.moveVertically(n,e);return A.head!=n.head?A:r.moveToLineBoundary(n,e)})}const cursorLineUp=r=>cursorByLine(r,!1),cursorLineDown=r=>cursorByLine(r,!0);function pageInfo(r){let e=r.scrollDOM.clientHeight<r.scrollDOM.scrollHeight-2,n=0,A=0,o;if(e){for(let s of r.state.facet(EditorView.scrollMargins)){let a=s(r);a?.top&&(n=Math.max(a?.top,n)),a?.bottom&&(A=Math.max(a?.bottom,A))}o=r.scrollDOM.clientHeight-n-A}else o=(r.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:n,marginBottom:A,selfScroll:e,height:Math.max(r.defaultLineHeight,o-5)}}function cursorByPage(r,e){let n=pageInfo(r),{state:A}=r,o=updateSel(A.selection,a=>a.empty?r.moveVertically(a,e,n.height):rangeEnd(a,e));if(o.eq(A.selection))return!1;let s;if(n.selfScroll){let a=r.coordsAtPos(A.selection.main.head),l=r.scrollDOM.getBoundingClientRect(),c=l.top+n.marginTop,g=l.bottom-n.marginBottom;a&&a.top>c&&a.bottom<g&&(s=EditorView.scrollIntoView(o.main.head,{y:"start",yMargin:a.top-c}))}return r.dispatch(setSel(A,o),{effects:s}),!0}const cursorPageUp=r=>cursorByPage(r,!1),cursorPageDown=r=>cursorByPage(r,!0);function moveByLineBoundary(r,e,n){let A=r.lineBlockAt(e.head),o=r.moveToLineBoundary(e,n);if(o.head==e.head&&o.head!=(n?A.to:A.from)&&(o=r.moveToLineBoundary(e,n,!1)),!n&&o.head==A.from&&A.length){let s=/^\s*/.exec(r.state.sliceDoc(A.from,Math.min(A.from+100,A.to)))[0].length;s&&e.head!=A.from+s&&(o=EditorSelection.cursor(A.from+s))}return o}const cursorLineBoundaryForward=r=>moveSel(r,e=>moveByLineBoundary(r,e,!0)),cursorLineBoundaryBackward=r=>moveSel(r,e=>moveByLineBoundary(r,e,!1)),cursorLineBoundaryLeft=r=>moveSel(r,e=>moveByLineBoundary(r,e,!ltrAtCursor(r))),cursorLineBoundaryRight=r=>moveSel(r,e=>moveByLineBoundary(r,e,ltrAtCursor(r))),cursorLineStart=r=>moveSel(r,e=>EditorSelection.cursor(r.lineBlockAt(e.head).from,1)),cursorLineEnd=r=>moveSel(r,e=>EditorSelection.cursor(r.lineBlockAt(e.head).to,-1));function toMatchingBracket(r,e,n){let A=!1,o=updateSel(r.selection,s=>{let a=matchBrackets(r,s.head,-1)||matchBrackets(r,s.head,1)||s.head>0&&matchBrackets(r,s.head-1,1)||s.head<r.doc.length&&matchBrackets(r,s.head+1,-1);if(!a||!a.end)return s;A=!0;let l=a.start.from==s.head?a.end.to:a.end.from;return EditorSelection.cursor(l)});return A?(e(setSel(r,o)),!0):!1}const cursorMatchingBracket=({state:r,dispatch:e})=>toMatchingBracket(r,e);function extendSel(r,e){let n=updateSel(r.state.selection,A=>{let o=e(A);return EditorSelection.range(A.anchor,o.head,o.goalColumn,o.bidiLevel||void 0)});return n.eq(r.state.selection)?!1:(r.dispatch(setSel(r.state,n)),!0)}function selectByChar(r,e){return extendSel(r,n=>r.moveByChar(n,e))}const selectCharLeft=r=>selectByChar(r,!ltrAtCursor(r)),selectCharRight=r=>selectByChar(r,ltrAtCursor(r));function selectByGroup(r,e){return extendSel(r,n=>r.moveByGroup(n,e))}const selectGroupLeft=r=>selectByGroup(r,!ltrAtCursor(r)),selectGroupRight=r=>selectByGroup(r,ltrAtCursor(r)),selectSyntaxLeft=r=>extendSel(r,e=>moveBySyntax(r.state,e,!ltrAtCursor(r))),selectSyntaxRight=r=>extendSel(r,e=>moveBySyntax(r.state,e,ltrAtCursor(r)));function selectByLine(r,e){return extendSel(r,n=>r.moveVertically(n,e))}const selectLineUp=r=>selectByLine(r,!1),selectLineDown=r=>selectByLine(r,!0);function selectByPage(r,e){return extendSel(r,n=>r.moveVertically(n,e,pageInfo(r).height))}const selectPageUp=r=>selectByPage(r,!1),selectPageDown=r=>selectByPage(r,!0),selectLineBoundaryForward=r=>extendSel(r,e=>moveByLineBoundary(r,e,!0)),selectLineBoundaryBackward=r=>extendSel(r,e=>moveByLineBoundary(r,e,!1)),selectLineBoundaryLeft=r=>extendSel(r,e=>moveByLineBoundary(r,e,!ltrAtCursor(r))),selectLineBoundaryRight=r=>extendSel(r,e=>moveByLineBoundary(r,e,ltrAtCursor(r))),selectLineStart=r=>extendSel(r,e=>EditorSelection.cursor(r.lineBlockAt(e.head).from)),selectLineEnd=r=>extendSel(r,e=>EditorSelection.cursor(r.lineBlockAt(e.head).to)),cursorDocStart=({state:r,dispatch:e})=>(e(setSel(r,{anchor:0})),!0),cursorDocEnd=({state:r,dispatch:e})=>(e(setSel(r,{anchor:r.doc.length})),!0),selectDocStart=({state:r,dispatch:e})=>(e(setSel(r,{anchor:r.selection.main.anchor,head:0})),!0),selectDocEnd=({state:r,dispatch:e})=>(e(setSel(r,{anchor:r.selection.main.anchor,head:r.doc.length})),!0),selectAll=({state:r,dispatch:e})=>(e(r.update({selection:{anchor:0,head:r.doc.length},userEvent:"select"})),!0),selectLine=({state:r,dispatch:e})=>{let n=selectedLineBlocks(r).map(({from:A,to:o})=>EditorSelection.range(A,Math.min(o+1,r.doc.length)));return e(r.update({selection:EditorSelection.create(n),userEvent:"select"})),!0},selectParentSyntax=({state:r,dispatch:e})=>{let n=updateSel(r.selection,A=>{let o=syntaxTree(r),s=o.resolveStack(A.from,1);if(A.empty){let a=o.resolveStack(A.from,-1);a.node.from>=s.node.from&&a.node.to<=s.node.to&&(s=a)}for(let a=s;a;a=a.next){let{node:l}=a;if((l.from<A.from&&l.to>=A.to||l.to>A.to&&l.from<=A.from)&&a.next)return EditorSelection.range(l.to,l.from)}return A});return n.eq(r.selection)?!1:(e(setSel(r,n)),!0)},simplifySelection=({state:r,dispatch:e})=>{let n=r.selection,A=null;return n.ranges.length>1?A=EditorSelection.create([n.main]):n.main.empty||(A=EditorSelection.create([EditorSelection.cursor(n.main.head)])),A?(e(setSel(r,A)),!0):!1};function deleteBy(r,e){if(r.state.readOnly)return!1;let n="delete.selection",{state:A}=r,o=A.changeByRange(s=>{let{from:a,to:l}=s;if(a==l){let c=e(s);c<a?(n="delete.backward",c=skipAtomic(r,c,!1)):c>a&&(n="delete.forward",c=skipAtomic(r,c,!0)),a=Math.min(a,c),l=Math.max(l,c)}else a=skipAtomic(r,a,!1),l=skipAtomic(r,l,!0);return a==l?{range:s}:{changes:{from:a,to:l},range:EditorSelection.cursor(a,a<s.head?-1:1)}});return o.changes.empty?!1:(r.dispatch(A.update(o,{scrollIntoView:!0,userEvent:n,effects:n=="delete.selection"?EditorView.announce.of(A.phrase("Selection deleted")):void 0})),!0)}function skipAtomic(r,e,n){if(r instanceof EditorView)for(let A of r.state.facet(EditorView.atomicRanges).map(o=>o(r)))A.between(e,e,(o,s)=>{o<e&&s>e&&(e=n?s:o)});return e}const deleteByChar=(r,e,n)=>deleteBy(r,A=>{let o=A.from,{state:s}=r,a=s.doc.lineAt(o),l,c;if(n&&!e&&o>a.from&&o<a.from+200&&!/[^ \t]/.test(l=a.text.slice(0,o-a.from))){if(l[l.length-1]==" ")return o-1;let g=countColumn(l,s.tabSize),h=g%getIndentUnit(s)||getIndentUnit(s);for(let d=0;d<h&&l[l.length-1-d]==" ";d++)o--;c=o}else c=findClusterBreak(a.text,o-a.from,e,e)+a.from,c==o&&a.number!=(e?s.doc.lines:1)?c+=e?1:-1:!e&&/[\ufe00-\ufe0f]/.test(a.text.slice(c-a.from,o-a.from))&&(c=findClusterBreak(a.text,c-a.from,!1,!1)+a.from);return c}),deleteCharBackward=r=>deleteByChar(r,!1,!0),deleteCharForward=r=>deleteByChar(r,!0,!1),deleteByGroup=(r,e)=>deleteBy(r,n=>{let A=n.head,{state:o}=r,s=o.doc.lineAt(A),a=o.charCategorizer(A);for(let l=null;;){if(A==(e?s.to:s.from)){A==n.head&&s.number!=(e?o.doc.lines:1)&&(A+=e?1:-1);break}let c=findClusterBreak(s.text,A-s.from,e)+s.from,g=s.text.slice(Math.min(A,c)-s.from,Math.max(A,c)-s.from),h=a(g);if(l!=null&&h!=l)break;(g!=" "||A!=n.head)&&(l=h),A=c}return A}),deleteGroupBackward=r=>deleteByGroup(r,!1),deleteGroupForward=r=>deleteByGroup(r,!0),deleteToLineEnd=r=>deleteBy(r,e=>{let n=r.lineBlockAt(e.head).to;return e.head<n?n:Math.min(r.state.doc.length,e.head+1)}),deleteLineBoundaryBackward=r=>deleteBy(r,e=>{let n=r.moveToLineBoundary(e,!1).head;return e.head>n?n:Math.max(0,e.head-1)}),deleteLineBoundaryForward=r=>deleteBy(r,e=>{let n=r.moveToLineBoundary(e,!0).head;return e.head<n?n:Math.min(r.state.doc.length,e.head+1)}),splitLine=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let n=r.changeByRange(A=>({changes:{from:A.from,to:A.to,insert:Text.of(["",""])},range:EditorSelection.cursor(A.from)}));return e(r.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},transposeChars=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let n=r.changeByRange(A=>{if(!A.empty||A.from==0||A.from==r.doc.length)return{range:A};let o=A.from,s=r.doc.lineAt(o),a=o==s.from?o-1:findClusterBreak(s.text,o-s.from,!1)+s.from,l=o==s.to?o+1:findClusterBreak(s.text,o-s.from,!0)+s.from;return{changes:{from:a,to:l,insert:r.doc.slice(o,l).append(r.doc.slice(a,o))},range:EditorSelection.cursor(l)}});return n.changes.empty?!1:(e(r.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function selectedLineBlocks(r){let e=[],n=-1;for(let A of r.selection.ranges){let o=r.doc.lineAt(A.from),s=r.doc.lineAt(A.to);if(!A.empty&&A.to==s.from&&(s=r.doc.lineAt(A.to-1)),n>=o.number){let a=e[e.length-1];a.to=s.to,a.ranges.push(A)}else e.push({from:o.from,to:s.to,ranges:[A]});n=s.number+1}return e}function moveLine(r,e,n){if(r.readOnly)return!1;let A=[],o=[];for(let s of selectedLineBlocks(r)){if(n?s.to==r.doc.length:s.from==0)continue;let a=r.doc.lineAt(n?s.to+1:s.from-1),l=a.length+1;if(n){A.push({from:s.to,to:a.to},{from:s.from,insert:a.text+r.lineBreak});for(let c of s.ranges)o.push(EditorSelection.range(Math.min(r.doc.length,c.anchor+l),Math.min(r.doc.length,c.head+l)))}else{A.push({from:a.from,to:s.from},{from:s.to,insert:r.lineBreak+a.text});for(let c of s.ranges)o.push(EditorSelection.range(c.anchor-l,c.head-l))}}return A.length?(e(r.update({changes:A,scrollIntoView:!0,selection:EditorSelection.create(o,r.selection.mainIndex),userEvent:"move.line"})),!0):!1}const moveLineUp=({state:r,dispatch:e})=>moveLine(r,e,!1),moveLineDown=({state:r,dispatch:e})=>moveLine(r,e,!0);function copyLine(r,e,n){if(r.readOnly)return!1;let A=[];for(let o of selectedLineBlocks(r))n?A.push({from:o.from,insert:r.doc.slice(o.from,o.to)+r.lineBreak}):A.push({from:o.to,insert:r.lineBreak+r.doc.slice(o.from,o.to)});return e(r.update({changes:A,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const copyLineUp=({state:r,dispatch:e})=>copyLine(r,e,!1),copyLineDown=({state:r,dispatch:e})=>copyLine(r,e,!0),deleteLine=r=>{if(r.state.readOnly)return!1;let{state:e}=r,n=e.changes(selectedLineBlocks(e).map(({from:o,to:s})=>(o>0?o--:s<e.doc.length&&s++,{from:o,to:s}))),A=updateSel(e.selection,o=>{let s;if(r.lineWrapping){let a=r.lineBlockAt(o.head),l=r.coordsAtPos(o.head,o.assoc||1);l&&(s=a.bottom+r.documentTop-l.bottom+r.defaultLineHeight/2)}return r.moveVertically(o,!0,s)}).map(n);return r.dispatch({changes:n,selection:A,scrollIntoView:!0,userEvent:"delete.line"}),!0};function isBetweenBrackets(r,e){if(/\(\)|\[\]|\{\}/.test(r.sliceDoc(e-1,e+1)))return{from:e,to:e};let n=syntaxTree(r).resolveInner(e),A=n.childBefore(e),o=n.childAfter(e),s;return A&&o&&A.to<=e&&o.from>=e&&(s=A.type.prop(NodeProp.closedBy))&&s.indexOf(o.name)>-1&&r.doc.lineAt(A.to).from==r.doc.lineAt(o.from).from&&!/\S/.test(r.sliceDoc(A.to,o.from))?{from:A.to,to:o.from}:null}const insertNewlineAndIndent=newlineAndIndent(!1),insertBlankLine=newlineAndIndent(!0);function newlineAndIndent(r){return({state:e,dispatch:n})=>{if(e.readOnly)return!1;let A=e.changeByRange(o=>{let{from:s,to:a}=o,l=e.doc.lineAt(s),c=!r&&s==a&&isBetweenBrackets(e,s);r&&(s=a=(a<=l.to?l:e.doc.lineAt(a)).to);let g=new IndentContext(e,{simulateBreak:s,simulateDoubleBreak:!!c}),h=getIndentation(g,s);for(h==null&&(h=countColumn(/^\s*/.exec(e.doc.lineAt(s).text)[0],e.tabSize));a<l.to&&/\s/.test(l.text[a-l.from]);)a++;c?{from:s,to:a}=c:s>l.from&&s<l.from+100&&!/\S/.test(l.text.slice(0,s))&&(s=l.from);let d=["",indentString(e,h)];return c&&d.push(indentString(e,g.lineIndent(l.from,-1))),{changes:{from:s,to:a,insert:Text.of(d)},range:EditorSelection.cursor(s+1+d[1].length)}});return n(e.update(A,{scrollIntoView:!0,userEvent:"input"})),!0}}function changeBySelectedLine(r,e){let n=-1;return r.changeByRange(A=>{let o=[];for(let a=A.from;a<=A.to;){let l=r.doc.lineAt(a);l.number>n&&(A.empty||A.to>l.from)&&(e(l,o,A),n=l.number),a=l.to+1}let s=r.changes(o);return{changes:o,range:EditorSelection.range(s.mapPos(A.anchor,1),s.mapPos(A.head,1))}})}const indentSelection=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let n=Object.create(null),A=new IndentContext(r,{overrideIndentation:s=>{let a=n[s];return a??-1}}),o=changeBySelectedLine(r,(s,a,l)=>{let c=getIndentation(A,s.from);if(c==null)return;/\S/.test(s.text)||(c=0);let g=/^\s*/.exec(s.text)[0],h=indentString(r,c);(g!=h||l.from<s.from+g.length)&&(n[s.from]=c,a.push({from:s.from,to:s.from+g.length,insert:h}))});return o.changes.empty||e(r.update(o,{userEvent:"indent"})),!0},indentMore=({state:r,dispatch:e})=>r.readOnly?!1:(e(r.update(changeBySelectedLine(r,(n,A)=>{A.push({from:n.from,insert:r.facet(indentUnit)})}),{userEvent:"input.indent"})),!0),indentLess=({state:r,dispatch:e})=>r.readOnly?!1:(e(r.update(changeBySelectedLine(r,(n,A)=>{let o=/^\s*/.exec(n.text)[0];if(!o)return;let s=countColumn(o,r.tabSize),a=0,l=indentString(r,Math.max(0,s-getIndentUnit(r)));for(;a<o.length&&a<l.length&&o.charCodeAt(a)==l.charCodeAt(a);)a++;A.push({from:n.from+a,to:n.from+o.length,insert:l.slice(a)})}),{userEvent:"delete.dedent"})),!0),toggleTabFocusMode=r=>(r.setTabFocusMode(),!0),emacsStyleKeymap=[{key:"Ctrl-b",run:cursorCharLeft,shift:selectCharLeft,preventDefault:!0},{key:"Ctrl-f",run:cursorCharRight,shift:selectCharRight},{key:"Ctrl-p",run:cursorLineUp,shift:selectLineUp},{key:"Ctrl-n",run:cursorLineDown,shift:selectLineDown},{key:"Ctrl-a",run:cursorLineStart,shift:selectLineStart},{key:"Ctrl-e",run:cursorLineEnd,shift:selectLineEnd},{key:"Ctrl-d",run:deleteCharForward},{key:"Ctrl-h",run:deleteCharBackward},{key:"Ctrl-k",run:deleteToLineEnd},{key:"Ctrl-Alt-h",run:deleteGroupBackward},{key:"Ctrl-o",run:splitLine},{key:"Ctrl-t",run:transposeChars},{key:"Ctrl-v",run:cursorPageDown}],standardKeymap=[{key:"ArrowLeft",run:cursorCharLeft,shift:selectCharLeft,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:cursorGroupLeft,shift:selectGroupLeft,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:cursorLineBoundaryLeft,shift:selectLineBoundaryLeft,preventDefault:!0},{key:"ArrowRight",run:cursorCharRight,shift:selectCharRight,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:cursorGroupRight,shift:selectGroupRight,preventDefault:!0},{mac:"Cmd-ArrowRight",run:cursorLineBoundaryRight,shift:selectLineBoundaryRight,preventDefault:!0},{key:"ArrowUp",run:cursorLineUp,shift:selectLineUp,preventDefault:!0},{mac:"Cmd-ArrowUp",run:cursorDocStart,shift:selectDocStart},{mac:"Ctrl-ArrowUp",run:cursorPageUp,shift:selectPageUp},{key:"ArrowDown",run:cursorLineDown,shift:selectLineDown,preventDefault:!0},{mac:"Cmd-ArrowDown",run:cursorDocEnd,shift:selectDocEnd},{mac:"Ctrl-ArrowDown",run:cursorPageDown,shift:selectPageDown},{key:"PageUp",run:cursorPageUp,shift:selectPageUp},{key:"PageDown",run:cursorPageDown,shift:selectPageDown},{key:"Home",run:cursorLineBoundaryBackward,shift:selectLineBoundaryBackward,preventDefault:!0},{key:"Mod-Home",run:cursorDocStart,shift:selectDocStart},{key:"End",run:cursorLineBoundaryForward,shift:selectLineBoundaryForward,preventDefault:!0},{key:"Mod-End",run:cursorDocEnd,shift:selectDocEnd},{key:"Enter",run:insertNewlineAndIndent,shift:insertNewlineAndIndent},{key:"Mod-a",run:selectAll},{key:"Backspace",run:deleteCharBackward,shift:deleteCharBackward},{key:"Delete",run:deleteCharForward},{key:"Mod-Backspace",mac:"Alt-Backspace",run:deleteGroupBackward},{key:"Mod-Delete",mac:"Alt-Delete",run:deleteGroupForward},{mac:"Mod-Backspace",run:deleteLineBoundaryBackward},{mac:"Mod-Delete",run:deleteLineBoundaryForward}].concat(emacsStyleKeymap.map(r=>({mac:r.key,run:r.run,shift:r.shift}))),defaultKeymap=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:cursorSyntaxLeft,shift:selectSyntaxLeft},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:cursorSyntaxRight,shift:selectSyntaxRight},{key:"Alt-ArrowUp",run:moveLineUp},{key:"Shift-Alt-ArrowUp",run:copyLineUp},{key:"Alt-ArrowDown",run:moveLineDown},{key:"Shift-Alt-ArrowDown",run:copyLineDown},{key:"Escape",run:simplifySelection},{key:"Mod-Enter",run:insertBlankLine},{key:"Alt-l",mac:"Ctrl-l",run:selectLine},{key:"Mod-i",run:selectParentSyntax,preventDefault:!0},{key:"Mod-[",run:indentLess},{key:"Mod-]",run:indentMore},{key:"Mod-Alt-\\",run:indentSelection},{key:"Shift-Mod-k",run:deleteLine},{key:"Shift-Mod-\\",run:cursorMatchingBracket},{key:"Mod-/",run:toggleComment},{key:"Alt-A",run:toggleBlockComment},{key:"Ctrl-m",mac:"Shift-Alt-m",run:toggleTabFocusMode}].concat(standardKeymap),indentWithTab={key:"Tab",run:indentMore,shift:indentLess};function toPosition(r,e){let n=r.lineAt(e);return{line:n.number-1,character:e-n.from}}function fromPosition(r,e){return r.line(e.line+1).from+e.character}function escHTML(r){return r.replace(/[\n<&]/g,e=>e==`
28
+ `?"<br>":e=="<"?"&lt;":"&amp;")}class PositionMapper{constructor(e,n){this.rawTextMap=n,this.doc=e.state.doc,this.rawTextArr=[];for(const A of n)A.nodeIdx>0&&this.rawTextArr.push({nodeIdx:A.nodeIdx,maxNodeIdx:A.nodeIdx,targetPos:A.targetPos,targetRow:A.targetRow,targetCol:A.targetCol});this.rawTextArr.sort((A,o)=>A.nodeIdx-o.nodeIdx);for(let A=0;A<this.rawTextArr.length;A++){const o=A+1;o<this.rawTextArr.length?this.rawTextArr[A].maxNodeIdx=this.rawTextArr[o].nodeIdx-1:this.rawTextArr[A].maxNodeIdx=this.doc.nodeSize}}rawTextArr;doc;toRawTextPos(e){for(let n=0;n<this.rawTextArr.length;n++){const A=this.rawTextArr[n];if(e>=A.nodeIdx&&e<=A.maxNodeIdx)return A.targetPos+e-A.nodeIdx}return-1}toRawTextLspPos(e){for(let n=0;n<this.rawTextArr.length;n++){const A=this.rawTextArr[n];if(e>=A.nodeIdx&&e<=A.maxNodeIdx)return{line:A.targetRow,character:A.targetCol+e-A.nodeIdx}}return{line:0,character:0}}fromLineChar(e,n){for(let A=0;A<this.rawTextArr.length;A++){const o=this.rawTextArr[A],s=o.maxNodeIdx-o.nodeIdx+1;if(o.targetRow===e){if(n>=o.targetCol&&n<o.targetCol+s){const c=n-o.targetCol;return o.nodeIdx+c}const a=this.rawTextArr[A+1];if((!a||a.targetRow>o.targetRow)&&n>=o.targetCol+s)return o.maxNodeIdx}}return-1}}class LSPPlugin{constructor(e,{extension:n,extensionLsp:A,uri:o,editor:s}){this.view=e,this.lang="plaintext",this.extension=n,this.extensionLsp=A,this.uri=o,this.editor=s,this.source={ui:this.editor.ui,getMappedContent:async()=>{const a=this.editor,l=toRawTextResult(this.view.state.doc.toString().toString(),0),c=new PositionMapper(a,l.rawTextMap);return{...l,mapper:c}}}}getClient(){return this.client}setLang(e){this.lang=e;const n=this.extensionLsp.getClient(e);this.client=n,n&&(n.disconnect(this.uri),n.connect(this.uri,this.source),n.workspace.openFile(this.uri,e,this.source))}update(){this.client&&this.client.workspace.changedFile(this.uri)}docToHTML(e,n="plaintext"){return typeof e=="string"?escHTML(e):`docToHTML ${e.kind} ${JSON.stringify(e.value,null,2)}`}toPosition(e,n=this.view.state.doc){return toPosition(n,e)}fromPosition(e,n=this.view.state.doc){return fromPosition(n,e)}reportError(e,n){this.editor.ui.showError(n)}static get(e){return e.plugin(lspPlugin)}}const lspPlugin=ViewPlugin.fromClass(LSPPlugin);function computeChange(r,e){if(r===e)return null;let n=0,A=r.length,o=e.length;for(;n<A&&r.charCodeAt(n)===e.charCodeAt(n);)n+=1;for(;A>n&&o>n&&r.charCodeAt(A-1)===e.charCodeAt(o-1);)A-=1,o-=1;return{from:n,to:A,text:e.slice(n,o)}}const asProseMirrorSelection=(r,e,n)=>{const A=(typeof n=="function"&&n()||0)+1,o=e.state.selection.main.from+A,s=e.state.selection.main.to+A;return TextSelection.create(r,o,s)},forwardSelection=(r,e,n)=>{if(!r.hasFocus)return;const A=asProseMirrorSelection(e.state.doc,r,n);A.eq(e.state.selection)||e.dispatch(e.state.tr.setSelection(A))},valueChanged=(r,e,n,A)=>{const o=computeChange(e.textContent,r);if(o){const s=n();if(typeof s<"u"){const a=s+1;let l=A.state.tr;l=l.replaceWith(a+o.from,a+o.to,o.text?A.state.schema.text(o.text):[]),A.dispatch(l)}}},maybeEscape=(r,e,n,A,o)=>{const s=n.state.selection.main,a=n.state.doc.lineAt(s.from),l=n.state.doc.lines;if(s.to!==s.from||a.number!==(e<0?1:l)||r==="char"&&s.from!==(e<0?0:a.to)||typeof o!="function")return!1;A.focus();const c=o();if(!c)return!1;const g=A.state.doc.nodeAt(c);if(!g)return!1;const h=c+(e<0?0:g.nodeSize),d=Selection.near(A.state.doc.resolve(h),e);return A.dispatch(A.state.tr.setSelection(d).scrollIntoView()),A.focus(),!0},backspaceHandler=(r,e,n)=>{const{selection:A}=e.state;return A.main.empty&&A.main.from===0?(n.commandFactories.setBlockType(r.state.schema.nodes.paragraph)(r.state,r.dispatch),setTimeout(()=>r.focus(),20),!0):!1},setMode=async(r,e,n,A)=>{const o=await n.languageLoaders?.[r]?.();o&&e.dispatch({effects:A.reconfigure(o)});const s=LSPPlugin.get(e);s&&s.setLang(r)},isTheme=r=>Array.isArray(r)?r.every(e=>e!==void 0&&typeof e.extension=="object"&&typeof e.name=="string"):!1,setTheme=async(r,e,n)=>{isTheme(n)&&r.dispatch({effects:e.reconfigure(n)})};class RemoteSyncConfig{constructor(e,n,A){this.getNode=e,this.getPmPos=n,this.editor=A}}const remoteSyncFacet=Facet.define({combine(r){return r[r.length-1]}});class Pair{constructor(e,n){this.left=e,this.right=n}}const create=(r,e)=>new Pair(r,e),forEach=(r,e)=>r.forEach(n=>e(n.left,n.right)),doc=typeof document<"u"?document:{},createElement=r=>doc.createElement(r),createDocumentFragment=()=>doc.createDocumentFragment(),createTextNode=r=>doc.createTextNode(r);typeof DOMParser<"u"&&new DOMParser;const setAttributes=(r,e)=>(forEach(e,(n,A)=>{A===!1?r.removeAttribute(n):A===!0?r.setAttribute(n,""):r.setAttribute(n,A)}),r),fragment=r=>{const e=createDocumentFragment();for(let n=0;n<r.length;n++)appendChild(e,r[n]);return e},append$1=(r,e)=>(appendChild(r,fragment(e)),r),element$1=(r,e=[],n=[])=>append$1(setAttributes(createElement(r),e),n),text$1=createTextNode,appendChild=(r,e)=>r.appendChild(e);doc.ELEMENT_NODE;doc.TEXT_NODE;doc.CDATA_SECTION_NODE;doc.COMMENT_NODE;doc.DOCUMENT_NODE;doc.DOCUMENT_TYPE_NODE;doc.DOCUMENT_FRAGMENT_NODE;const min=(r,e)=>r<e?r:e,max=(r,e)=>r>e?r:e,yRemoteSelectionsTheme=EditorView.baseTheme({".cm-rSelection":{},".cm-rLineSelection":{padding:0,margin:"0px 2px 0px 4px"},".cm-rSelectionCaret":{position:"relative",borderLeft:"1px solid black",borderRight:"1px solid black",marginLeft:"-1px",marginRight:"-1px",boxSizing:"border-box",display:"inline"},".cm-rSelectionCaretDot":{borderRadius:"50%",position:"absolute",width:".4em",height:".4em",top:"-.2em",left:"-.2em",backgroundColor:"inherit",transition:"transform .3s ease-in-out",boxSizing:"border-box"},".cm-rSelectionCaret:hover > .cm-rSelectionCaretDot":{transformOrigin:"bottom center",transform:"scale(0)"},".cm-rSelectionInfo":{position:"absolute",top:"-1.05em",left:"-1px",fontSize:".75em",fontFamily:"serif",fontStyle:"normal",fontWeight:"normal",lineHeight:"normal",userSelect:"none",color:"white",paddingLeft:"2px",paddingRight:"2px",zIndex:101,transition:"opacity .3s ease-in-out",backgroundColor:"inherit",opacity:0,transitionDelay:"0s",whiteSpace:"nowrap"},".cm-rSelectionCaret:hover > .cm-rSelectionInfo":{opacity:1,transitionDelay:"0s"}}),yRemoteSelectionsAnnotation=Annotation.define();class YRemoteCaretWidget extends WidgetType{constructor(e,n){super(),this.color=e,this.name=n}toDOM(){return element$1("span",[create("class","kb-yjs__cursor kb-widget"),create("style",`border-color: ${this.color};`)],[text$1("⁠"),element$1("div",[create("style",`background-color: ${this.color}`)],[text$1(this.name)]),text$1("⁠")])}eq(e){return e.color===this.color}compare(e){return e.color===this.color}updateDOM(){return!1}get estimatedHeight(){return-1}ignoreEvent(){return!0}}class YRemoteSelectionsPluginValue{constructor(e){this.conf=e.state.facet(remoteSyncFacet),this.editor=this.conf.editor,this.decorations=RangeSet.of([]),this._remoteSelectionChange=()=>{e.dispatch({annotations:[yRemoteSelectionsAnnotation.of([])]})},this.editor.addEventListener("remoteSelectionChange",this._remoteSelectionChange)}destroy(){this.editor.removeEventListener("remoteSelectionChange",this._remoteSelectionChange)}update(e){const n=[],o=this.editor.getExtension("remote-selection").getRemoteStates();for(const c of o){const g=c.clientId,h=c.cursor;if(h?.anchor==null||h?.head==null)return;const d=this.conf.getPmPos();if(typeof d<"u"){const u=d+this.conf.getNode().nodeSize;if(h.anchor>=d&&h.anchor<u&&h.head>=d&&h.head<u){const f={index:h.anchor-d},I={index:h.head-d};try{const{color:p="#ffa500",name:m=`User: ${g}`}=c.user||{},E=c.user&&c.user.colorLight||p+"33",B=min(f.index,I.index),Q=max(f.index,I.index),w=e.view.state.doc.lineAt(B),y=e.view.state.doc.lineAt(Q);if(w.number===y.number)n.push({from:B,to:Q,value:Decoration.mark({attributes:{style:`background-color: ${E}`},class:"cm-rSelection"})});else{n.push({from:B,to:w.from+w.length,value:Decoration.mark({attributes:{style:`background-color: ${E}`},class:"cm-rSelection"})}),n.push({from:y.from,to:Q,value:Decoration.mark({attributes:{style:`background-color: ${E}`},class:"cm-rSelection"})});for(let S=w.number+1;S<y.number;S++){const D=e.view.state.doc.line(S).from;n.push({from:D,to:D,value:Decoration.line({attributes:{style:`background-color: ${E}`,class:"cm-rLineSelection"}})})}}n.push({from:I.index,to:I.index,value:Decoration.widget({side:I.index-f.index>0?-1:1,block:!1,widget:new YRemoteCaretWidget(p,m)})})}catch(p){console.warn(p,`User: ${g}`)}}}}this.decorations=Decoration.set(n,!0);const a=e.view.hasFocus&&e.view.dom.ownerDocument.hasFocus()?e.state.selection.main:null,l=this.conf.getPmPos();if(a!=null&&typeof l<"u"){const c=l+a.anchor,g=l+a.head,h=new CustomEvent("localPositionChanged",{detail:{anchor:c,head:g}});this.editor.dispatchEvent(h)}}}const yRemoteSelections=ViewPlugin.fromClass(YRemoteSelectionsPluginValue,{decorations:r=>r.decorations}),lspTheme=EditorView.baseTheme({".cm-lsp-documentation":{padding:"0 7px","& p, & pre":{margin:"2px 0"}},".cm-lsp-signature-tooltip":{padding:"2px 6px",borderRadius:"2.5px",position:"relative",maxWidth:"30em",maxHeight:"10em",overflowY:"scroll","& .cm-lsp-documentation":{padding:"0",fontSize:"80%"},"& .cm-lsp-signature-num":{fontFamily:"monospace",position:"absolute",left:"2px",top:"4px",fontSize:"70%",lineHeight:"1.3"},"& .cm-lsp-signature":{fontFamily:"monospace",textIndent:"1em hanging"},"& .cm-lsp-active-parameter":{fontWeight:"bold"}},".cm-lsp-signature-multiple":{paddingLeft:"1.5em"},".cm-panel.cm-lsp-rename-panel":{padding:"2px 6px 4px",position:"relative","& label":{fontSize:"80%"},"& [name=close]":{position:"absolute",top:"0",bottom:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:"0"}},".cm-lsp-message button[type=submit]":{display:"block"},".cm-lsp-reference-panel":{fontFamily:"monospace",whiteSpace:"pre",padding:"3px 6px",maxHeight:"120px",overflow:"auto","& .cm-lsp-reference-file":{fontWeight:"bold"},"& .cm-lsp-reference":{cursor:"pointer","&[aria-selected]":{backgroundColor:"#0077ee44"}},"& .cm-lsp-reference-line":{opacity:"0.7"}}});class LSPExtension{constructor(e){if(this.config=e,this.extensions=[],e.extensions)for(const n of e.extensions)this.extensions.push(n)}plugin(e,n){if(!n.config.uri)throw new Error("No editor.config.uri");return[lspPlugin.of({extension:this,editor:n,extensionLsp:e,uri:n.config.uri}),lspTheme,this.extensions]}}function getAugmentedNamespace(r){if(Object.prototype.hasOwnProperty.call(r,"__esModule"))return r;var e=r.default;if(typeof e=="function"){var n=function A(){var o=!1;try{o=this instanceof A}catch{}return o?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(r).forEach(function(A){var o=Object.getOwnPropertyDescriptor(r,A);Object.defineProperty(n,A,o.get?o:{enumerable:!0,get:function(){return r[A]}})}),n}var main$2={},main$1={},ril={},api$1={},messages$1={},is$1={},hasRequiredIs$1;function requireIs$1(){if(hasRequiredIs$1)return is$1;hasRequiredIs$1=1,Object.defineProperty(is$1,"__esModule",{value:!0}),is$1.stringArray=is$1.array=is$1.func=is$1.error=is$1.number=is$1.string=is$1.boolean=void 0;function r(l){return l===!0||l===!1}is$1.boolean=r;function e(l){return typeof l=="string"||l instanceof String}is$1.string=e;function n(l){return typeof l=="number"||l instanceof Number}is$1.number=n;function A(l){return l instanceof Error}is$1.error=A;function o(l){return typeof l=="function"}is$1.func=o;function s(l){return Array.isArray(l)}is$1.array=s;function a(l){return s(l)&&l.every(c=>e(c))}return is$1.stringArray=a,is$1}var hasRequiredMessages$1;function requireMessages$1(){if(hasRequiredMessages$1)return messages$1;hasRequiredMessages$1=1,Object.defineProperty(messages$1,"__esModule",{value:!0}),messages$1.Message=messages$1.NotificationType9=messages$1.NotificationType8=messages$1.NotificationType7=messages$1.NotificationType6=messages$1.NotificationType5=messages$1.NotificationType4=messages$1.NotificationType3=messages$1.NotificationType2=messages$1.NotificationType1=messages$1.NotificationType0=messages$1.NotificationType=messages$1.RequestType9=messages$1.RequestType8=messages$1.RequestType7=messages$1.RequestType6=messages$1.RequestType5=messages$1.RequestType4=messages$1.RequestType3=messages$1.RequestType2=messages$1.RequestType1=messages$1.RequestType=messages$1.RequestType0=messages$1.AbstractMessageSignature=messages$1.ParameterStructures=messages$1.ResponseError=messages$1.ErrorCodes=void 0;const r=requireIs$1();var e;(function(R){R.ParseError=-32700,R.InvalidRequest=-32600,R.MethodNotFound=-32601,R.InvalidParams=-32602,R.InternalError=-32603,R.jsonrpcReservedErrorRangeStart=-32099,R.serverErrorStart=-32099,R.MessageWriteError=-32099,R.MessageReadError=-32098,R.PendingResponseRejected=-32097,R.ConnectionInactive=-32096,R.ServerNotInitialized=-32002,R.UnknownErrorCode=-32001,R.jsonrpcReservedErrorRangeEnd=-32e3,R.serverErrorEnd=-32e3})(e||(messages$1.ErrorCodes=e={}));class n extends Error{constructor(N,L,G){super(L),this.code=r.number(N)?N:e.UnknownErrorCode,this.data=G,Object.setPrototypeOf(this,n.prototype)}toJson(){const N={code:this.code,message:this.message};return this.data!==void 0&&(N.data=this.data),N}}messages$1.ResponseError=n;class A{constructor(N){this.kind=N}static is(N){return N===A.auto||N===A.byName||N===A.byPosition}toString(){return this.kind}}messages$1.ParameterStructures=A,A.auto=new A("auto"),A.byPosition=new A("byPosition"),A.byName=new A("byName");class o{constructor(N,L){this.method=N,this.numberOfParams=L}get parameterStructures(){return A.auto}}messages$1.AbstractMessageSignature=o;class s extends o{constructor(N){super(N,0)}}messages$1.RequestType0=s;class a extends o{constructor(N,L=A.auto){super(N,1),this._parameterStructures=L}get parameterStructures(){return this._parameterStructures}}messages$1.RequestType=a;class l extends o{constructor(N,L=A.auto){super(N,1),this._parameterStructures=L}get parameterStructures(){return this._parameterStructures}}messages$1.RequestType1=l;class c extends o{constructor(N){super(N,2)}}messages$1.RequestType2=c;class g extends o{constructor(N){super(N,3)}}messages$1.RequestType3=g;class h extends o{constructor(N){super(N,4)}}messages$1.RequestType4=h;class d extends o{constructor(N){super(N,5)}}messages$1.RequestType5=d;class u extends o{constructor(N){super(N,6)}}messages$1.RequestType6=u;class f extends o{constructor(N){super(N,7)}}messages$1.RequestType7=f;class I extends o{constructor(N){super(N,8)}}messages$1.RequestType8=I;class p extends o{constructor(N){super(N,9)}}messages$1.RequestType9=p;class m extends o{constructor(N,L=A.auto){super(N,1),this._parameterStructures=L}get parameterStructures(){return this._parameterStructures}}messages$1.NotificationType=m;class E extends o{constructor(N){super(N,0)}}messages$1.NotificationType0=E;class B extends o{constructor(N,L=A.auto){super(N,1),this._parameterStructures=L}get parameterStructures(){return this._parameterStructures}}messages$1.NotificationType1=B;class Q extends o{constructor(N){super(N,2)}}messages$1.NotificationType2=Q;class w extends o{constructor(N){super(N,3)}}messages$1.NotificationType3=w;class y extends o{constructor(N){super(N,4)}}messages$1.NotificationType4=y;class S extends o{constructor(N){super(N,5)}}messages$1.NotificationType5=S;class D extends o{constructor(N){super(N,6)}}messages$1.NotificationType6=D;class _ extends o{constructor(N){super(N,7)}}messages$1.NotificationType7=_;class M extends o{constructor(N){super(N,8)}}messages$1.NotificationType8=M;class v extends o{constructor(N){super(N,9)}}messages$1.NotificationType9=v;var F;return(function(R){function N(K){const O=K;return O&&r.string(O.method)&&(r.string(O.id)||r.number(O.id))}R.isRequest=N;function L(K){const O=K;return O&&r.string(O.method)&&K.id===void 0}R.isNotification=L;function G(K){const O=K;return O&&(O.result!==void 0||!!O.error)&&(r.string(O.id)||r.number(O.id)||O.id===null)}R.isResponse=G})(F||(messages$1.Message=F={})),messages$1}var linkedMap={},hasRequiredLinkedMap;function requireLinkedMap(){if(hasRequiredLinkedMap)return linkedMap;hasRequiredLinkedMap=1;var r;Object.defineProperty(linkedMap,"__esModule",{value:!0}),linkedMap.LRUCache=linkedMap.LinkedMap=linkedMap.Touch=void 0;var e;(function(o){o.None=0,o.First=1,o.AsOld=o.First,o.Last=2,o.AsNew=o.Last})(e||(linkedMap.Touch=e={}));class n{constructor(){this[r]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(s){return this._map.has(s)}get(s,a=e.None){const l=this._map.get(s);if(l)return a!==e.None&&this.touch(l,a),l.value}set(s,a,l=e.None){let c=this._map.get(s);if(c)c.value=a,l!==e.None&&this.touch(c,l);else{switch(c={key:s,value:a,next:void 0,previous:void 0},l){case e.None:this.addItemLast(c);break;case e.First:this.addItemFirst(c);break;case e.Last:this.addItemLast(c);break;default:this.addItemLast(c);break}this._map.set(s,c),this._size++}return this}delete(s){return!!this.remove(s)}remove(s){const a=this._map.get(s);if(a)return this._map.delete(s),this.removeItem(a),this._size--,a.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const s=this._head;return this._map.delete(s.key),this.removeItem(s),this._size--,s.value}forEach(s,a){const l=this._state;let c=this._head;for(;c;){if(a?s.bind(a)(c.value,c.key,this):s(c.value,c.key,this),this._state!==l)throw new Error("LinkedMap got modified during iteration.");c=c.next}}keys(){const s=this._state;let a=this._head;const l={[Symbol.iterator]:()=>l,next:()=>{if(this._state!==s)throw new Error("LinkedMap got modified during iteration.");if(a){const c={value:a.key,done:!1};return a=a.next,c}else return{value:void 0,done:!0}}};return l}values(){const s=this._state;let a=this._head;const l={[Symbol.iterator]:()=>l,next:()=>{if(this._state!==s)throw new Error("LinkedMap got modified during iteration.");if(a){const c={value:a.value,done:!1};return a=a.next,c}else return{value:void 0,done:!0}}};return l}entries(){const s=this._state;let a=this._head;const l={[Symbol.iterator]:()=>l,next:()=>{if(this._state!==s)throw new Error("LinkedMap got modified during iteration.");if(a){const c={value:[a.key,a.value],done:!1};return a=a.next,c}else return{value:void 0,done:!0}}};return l}[(r=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(s){if(s>=this.size)return;if(s===0){this.clear();return}let a=this._head,l=this.size;for(;a&&l>s;)this._map.delete(a.key),a=a.next,l--;this._head=a,this._size=l,a&&(a.previous=void 0),this._state++}addItemFirst(s){if(!this._head&&!this._tail)this._tail=s;else if(this._head)s.next=this._head,this._head.previous=s;else throw new Error("Invalid list");this._head=s,this._state++}addItemLast(s){if(!this._head&&!this._tail)this._head=s;else if(this._tail)s.previous=this._tail,this._tail.next=s;else throw new Error("Invalid list");this._tail=s,this._state++}removeItem(s){if(s===this._head&&s===this._tail)this._head=void 0,this._tail=void 0;else if(s===this._head){if(!s.next)throw new Error("Invalid list");s.next.previous=void 0,this._head=s.next}else if(s===this._tail){if(!s.previous)throw new Error("Invalid list");s.previous.next=void 0,this._tail=s.previous}else{const a=s.next,l=s.previous;if(!a||!l)throw new Error("Invalid list");a.previous=l,l.next=a}s.next=void 0,s.previous=void 0,this._state++}touch(s,a){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(a!==e.First&&a!==e.Last)){if(a===e.First){if(s===this._head)return;const l=s.next,c=s.previous;s===this._tail?(c.next=void 0,this._tail=c):(l.previous=c,c.next=l),s.previous=void 0,s.next=this._head,this._head.previous=s,this._head=s,this._state++}else if(a===e.Last){if(s===this._tail)return;const l=s.next,c=s.previous;s===this._head?(l.previous=void 0,this._head=l):(l.previous=c,c.next=l),s.next=void 0,s.previous=this._tail,this._tail.next=s,this._tail=s,this._state++}}}toJSON(){const s=[];return this.forEach((a,l)=>{s.push([l,a])}),s}fromJSON(s){this.clear();for(const[a,l]of s)this.set(a,l)}}linkedMap.LinkedMap=n;class A extends n{constructor(s,a=1){super(),this._limit=s,this._ratio=Math.min(Math.max(0,a),1)}get limit(){return this._limit}set limit(s){this._limit=s,this.checkTrim()}get ratio(){return this._ratio}set ratio(s){this._ratio=Math.min(Math.max(0,s),1),this.checkTrim()}get(s,a=e.AsNew){return super.get(s,a)}peek(s){return super.get(s,e.None)}set(s,a){return super.set(s,a,e.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}return linkedMap.LRUCache=A,linkedMap}var disposable={},hasRequiredDisposable;function requireDisposable(){if(hasRequiredDisposable)return disposable;hasRequiredDisposable=1,Object.defineProperty(disposable,"__esModule",{value:!0}),disposable.Disposable=void 0;var r;return(function(e){function n(A){return{dispose:A}}e.create=n})(r||(disposable.Disposable=r={})),disposable}var events={},ral={},hasRequiredRal;function requireRal(){if(hasRequiredRal)return ral;hasRequiredRal=1,Object.defineProperty(ral,"__esModule",{value:!0});let r;function e(){if(r===void 0)throw new Error("No runtime abstraction layer installed");return r}return(function(n){function A(o){if(o===void 0)throw new Error("No runtime abstraction layer provided");r=o}n.install=A})(e||(e={})),ral.default=e,ral}var hasRequiredEvents;function requireEvents(){if(hasRequiredEvents)return events;hasRequiredEvents=1,Object.defineProperty(events,"__esModule",{value:!0}),events.Emitter=events.Event=void 0;const r=requireRal();var e;(function(o){const s={dispose(){}};o.None=function(){return s}})(e||(events.Event=e={}));class n{add(s,a=null,l){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(s),this._contexts.push(a),Array.isArray(l)&&l.push({dispose:()=>this.remove(s,a)})}remove(s,a=null){if(!this._callbacks)return;let l=!1;for(let c=0,g=this._callbacks.length;c<g;c++)if(this._callbacks[c]===s)if(this._contexts[c]===a){this._callbacks.splice(c,1),this._contexts.splice(c,1);return}else l=!0;if(l)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...s){if(!this._callbacks)return[];const a=[],l=this._callbacks.slice(0),c=this._contexts.slice(0);for(let g=0,h=l.length;g<h;g++)try{a.push(l[g].apply(c[g],s))}catch(d){(0,r.default)().console.error(d)}return a}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}}class A{constructor(s){this._options=s}get event(){return this._event||(this._event=(s,a,l)=>{this._callbacks||(this._callbacks=new n),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(s,a);const c={dispose:()=>{this._callbacks&&(this._callbacks.remove(s,a),c.dispose=A._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(l)&&l.push(c),c}),this._event}fire(s){this._callbacks&&this._callbacks.invoke.call(this._callbacks,s)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}}return events.Emitter=A,A._noop=function(){},events}var cancellation={},hasRequiredCancellation;function requireCancellation(){if(hasRequiredCancellation)return cancellation;hasRequiredCancellation=1,Object.defineProperty(cancellation,"__esModule",{value:!0}),cancellation.CancellationTokenSource=cancellation.CancellationToken=void 0;const r=requireRal(),e=requireIs$1(),n=requireEvents();var A;(function(l){l.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:n.Event.None}),l.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:n.Event.None});function c(g){const h=g;return h&&(h===l.None||h===l.Cancelled||e.boolean(h.isCancellationRequested)&&!!h.onCancellationRequested)}l.is=c})(A||(cancellation.CancellationToken=A={}));const o=Object.freeze(function(l,c){const g=(0,r.default)().timer.setTimeout(l.bind(c),0);return{dispose(){g.dispose()}}});class s{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?o:(this._emitter||(this._emitter=new n.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}class a{get token(){return this._token||(this._token=new s),this._token}cancel(){this._token?this._token.cancel():this._token=A.Cancelled}dispose(){this._token?this._token instanceof s&&this._token.dispose():this._token=A.None}}return cancellation.CancellationTokenSource=a,cancellation}var sharedArrayCancellation={},hasRequiredSharedArrayCancellation;function requireSharedArrayCancellation(){if(hasRequiredSharedArrayCancellation)return sharedArrayCancellation;hasRequiredSharedArrayCancellation=1,Object.defineProperty(sharedArrayCancellation,"__esModule",{value:!0}),sharedArrayCancellation.SharedArrayReceiverStrategy=sharedArrayCancellation.SharedArraySenderStrategy=void 0;const r=requireCancellation();var e;(function(a){a.Continue=0,a.Cancelled=1})(e||(e={}));class n{constructor(){this.buffers=new Map}enableCancellation(l){if(l.id===null)return;const c=new SharedArrayBuffer(4),g=new Int32Array(c,0,1);g[0]=e.Continue,this.buffers.set(l.id,c),l.$cancellationData=c}async sendCancellation(l,c){const g=this.buffers.get(c);if(g===void 0)return;const h=new Int32Array(g,0,1);Atomics.store(h,0,e.Cancelled)}cleanup(l){this.buffers.delete(l)}dispose(){this.buffers.clear()}}sharedArrayCancellation.SharedArraySenderStrategy=n;class A{constructor(l){this.data=new Int32Array(l,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===e.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}}class o{constructor(l){this.token=new A(l)}cancel(){}dispose(){}}class s{constructor(){this.kind="request"}createCancellationTokenSource(l){const c=l.$cancellationData;return c===void 0?new r.CancellationTokenSource:new o(c)}}return sharedArrayCancellation.SharedArrayReceiverStrategy=s,sharedArrayCancellation}var messageReader={},semaphore={},hasRequiredSemaphore;function requireSemaphore(){if(hasRequiredSemaphore)return semaphore;hasRequiredSemaphore=1,Object.defineProperty(semaphore,"__esModule",{value:!0}),semaphore.Semaphore=void 0;const r=requireRal();class e{constructor(A=1){if(A<=0)throw new Error("Capacity must be greater than 0");this._capacity=A,this._active=0,this._waiting=[]}lock(A){return new Promise((o,s)=>{this._waiting.push({thunk:A,resolve:o,reject:s}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,r.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;const A=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{const o=A.thunk();o instanceof Promise?o.then(s=>{this._active--,A.resolve(s),this.runNext()},s=>{this._active--,A.reject(s),this.runNext()}):(this._active--,A.resolve(o),this.runNext())}catch(o){this._active--,A.reject(o),this.runNext()}}}return semaphore.Semaphore=e,semaphore}var hasRequiredMessageReader;function requireMessageReader(){if(hasRequiredMessageReader)return messageReader;hasRequiredMessageReader=1,Object.defineProperty(messageReader,"__esModule",{value:!0}),messageReader.ReadableStreamMessageReader=messageReader.AbstractMessageReader=messageReader.MessageReader=void 0;const r=requireRal(),e=requireIs$1(),n=requireEvents(),A=requireSemaphore();var o;(function(c){function g(h){let d=h;return d&&e.func(d.listen)&&e.func(d.dispose)&&e.func(d.onError)&&e.func(d.onClose)&&e.func(d.onPartialMessage)}c.is=g})(o||(messageReader.MessageReader=o={}));class s{constructor(){this.errorEmitter=new n.Emitter,this.closeEmitter=new n.Emitter,this.partialMessageEmitter=new n.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(g){this.errorEmitter.fire(this.asError(g))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(g){this.partialMessageEmitter.fire(g)}asError(g){return g instanceof Error?g:new Error(`Reader received error. Reason: ${e.string(g.message)?g.message:"unknown"}`)}}messageReader.AbstractMessageReader=s;var a;(function(c){function g(h){let d,u;const f=new Map;let I;const p=new Map;if(h===void 0||typeof h=="string")d=h??"utf-8";else{if(d=h.charset??"utf-8",h.contentDecoder!==void 0&&(u=h.contentDecoder,f.set(u.name,u)),h.contentDecoders!==void 0)for(const m of h.contentDecoders)f.set(m.name,m);if(h.contentTypeDecoder!==void 0&&(I=h.contentTypeDecoder,p.set(I.name,I)),h.contentTypeDecoders!==void 0)for(const m of h.contentTypeDecoders)p.set(m.name,m)}return I===void 0&&(I=(0,r.default)().applicationJson.decoder,p.set(I.name,I)),{charset:d,contentDecoder:u,contentDecoders:f,contentTypeDecoder:I,contentTypeDecoders:p}}c.fromOptions=g})(a||(a={}));class l extends s{constructor(g,h){super(),this.readable=g,this.options=a.fromOptions(h),this.buffer=(0,r.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new A.Semaphore(1)}set partialMessageTimeout(g){this._partialMessageTimeout=g}get partialMessageTimeout(){return this._partialMessageTimeout}listen(g){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=g;const h=this.readable.onData(d=>{this.onData(d)});return this.readable.onError(d=>this.fireError(d)),this.readable.onClose(()=>this.fireClose()),h}onData(g){try{for(this.buffer.append(g);;){if(this.nextMessageLength===-1){const d=this.buffer.tryReadHeaders(!0);if(!d)return;const u=d.get("content-length");if(!u){this.fireError(new Error(`Header must provide a Content-Length property.
29
+ ${JSON.stringify(Object.fromEntries(d))}`));return}const f=parseInt(u);if(isNaN(f)){this.fireError(new Error(`Content-Length value must be a number. Got ${u}`));return}this.nextMessageLength=f}const h=this.buffer.tryReadBody(this.nextMessageLength);if(h===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{const d=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(h):h,u=await this.options.contentTypeDecoder.decode(d,this.options);this.callback(u)}).catch(d=>{this.fireError(d)})}}catch(h){this.fireError(h)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,r.default)().timer.setTimeout((g,h)=>{this.partialMessageTimer=void 0,g===this.messageToken&&(this.firePartialMessage({messageToken:g,waitingTime:h}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}}return messageReader.ReadableStreamMessageReader=l,messageReader}var messageWriter={},hasRequiredMessageWriter;function requireMessageWriter(){if(hasRequiredMessageWriter)return messageWriter;hasRequiredMessageWriter=1,Object.defineProperty(messageWriter,"__esModule",{value:!0}),messageWriter.WriteableStreamMessageWriter=messageWriter.AbstractMessageWriter=messageWriter.MessageWriter=void 0;const r=requireRal(),e=requireIs$1(),n=requireSemaphore(),A=requireEvents(),o="Content-Length: ",s=`\r
30
+ `;var a;(function(h){function d(u){let f=u;return f&&e.func(f.dispose)&&e.func(f.onClose)&&e.func(f.onError)&&e.func(f.write)}h.is=d})(a||(messageWriter.MessageWriter=a={}));class l{constructor(){this.errorEmitter=new A.Emitter,this.closeEmitter=new A.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(d,u,f){this.errorEmitter.fire([this.asError(d),u,f])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(d){return d instanceof Error?d:new Error(`Writer received error. Reason: ${e.string(d.message)?d.message:"unknown"}`)}}messageWriter.AbstractMessageWriter=l;var c;(function(h){function d(u){return u===void 0||typeof u=="string"?{charset:u??"utf-8",contentTypeEncoder:(0,r.default)().applicationJson.encoder}:{charset:u.charset??"utf-8",contentEncoder:u.contentEncoder,contentTypeEncoder:u.contentTypeEncoder??(0,r.default)().applicationJson.encoder}}h.fromOptions=d})(c||(c={}));class g extends l{constructor(d,u){super(),this.writable=d,this.options=c.fromOptions(u),this.errorCount=0,this.writeSemaphore=new n.Semaphore(1),this.writable.onError(f=>this.fireError(f)),this.writable.onClose(()=>this.fireClose())}async write(d){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(d,this.options).then(f=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(f):f).then(f=>{const I=[];return I.push(o,f.byteLength.toString(),s),I.push(s),this.doWrite(d,I,f)},f=>{throw this.fireError(f),f}))}async doWrite(d,u,f){try{return await this.writable.write(u.join(""),"ascii"),this.writable.write(f)}catch(I){return this.handleError(I,d),Promise.reject(I)}}handleError(d,u){this.errorCount++,this.fireError(d,u,this.errorCount)}end(){this.writable.end()}}return messageWriter.WriteableStreamMessageWriter=g,messageWriter}var messageBuffer={},hasRequiredMessageBuffer;function requireMessageBuffer(){if(hasRequiredMessageBuffer)return messageBuffer;hasRequiredMessageBuffer=1,Object.defineProperty(messageBuffer,"__esModule",{value:!0}),messageBuffer.AbstractMessageBuffer=void 0;const r=13,e=10,n=`\r
31
+ `;class A{constructor(s="utf-8"){this._encoding=s,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(s){const a=typeof s=="string"?this.fromString(s,this._encoding):s;this._chunks.push(a),this._totalLength+=a.byteLength}tryReadHeaders(s=!1){if(this._chunks.length===0)return;let a=0,l=0,c=0,g=0;e:for(;l<this._chunks.length;){const f=this._chunks[l];for(c=0;c<f.length;){switch(f[c]){case r:switch(a){case 0:a=1;break;case 2:a=3;break;default:a=0}break;case e:switch(a){case 1:a=2;break;case 3:a=4,c++;break e;default:a=0}break;default:a=0}c++}g+=f.byteLength,l++}if(a!==4)return;const h=this._read(g+c),d=new Map,u=this.toString(h,"ascii").split(n);if(u.length<2)return d;for(let f=0;f<u.length-2;f++){const I=u[f],p=I.indexOf(":");if(p===-1)throw new Error(`Message header must separate key and value using ':'
32
+ ${I}`);const m=I.substr(0,p),E=I.substr(p+1).trim();d.set(s?m.toLowerCase():m,E)}return d}tryReadBody(s){if(!(this._totalLength<s))return this._read(s)}get numberOfBytes(){return this._totalLength}_read(s){if(s===0)return this.emptyBuffer();if(s>this._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===s){const g=this._chunks[0];return this._chunks.shift(),this._totalLength-=s,this.asNative(g)}if(this._chunks[0].byteLength>s){const g=this._chunks[0],h=this.asNative(g,s);return this._chunks[0]=g.slice(s),this._totalLength-=s,h}const a=this.allocNative(s);let l=0,c=0;for(;s>0;){const g=this._chunks[c];if(g.byteLength>s){const h=g.slice(0,s);a.set(h,l),l+=s,this._chunks[c]=g.slice(s),this._totalLength-=s,s-=s}else a.set(g,l),l+=g.byteLength,this._chunks.shift(),this._totalLength-=g.byteLength,s-=g.byteLength}return a}}return messageBuffer.AbstractMessageBuffer=A,messageBuffer}var connection$1={},hasRequiredConnection$1;function requireConnection$1(){return hasRequiredConnection$1||(hasRequiredConnection$1=1,(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.createMessageConnection=r.ConnectionOptions=r.MessageStrategy=r.CancellationStrategy=r.CancellationSenderStrategy=r.CancellationReceiverStrategy=r.RequestCancellationReceiverStrategy=r.IdCancellationReceiverStrategy=r.ConnectionStrategy=r.ConnectionError=r.ConnectionErrors=r.LogTraceNotification=r.SetTraceNotification=r.TraceFormat=r.TraceValues=r.Trace=r.NullLogger=r.ProgressType=r.ProgressToken=void 0;const e=requireRal(),n=requireIs$1(),A=requireMessages$1(),o=requireLinkedMap(),s=requireEvents(),a=requireCancellation();var l;(function(N){N.type=new A.NotificationType("$/cancelRequest")})(l||(l={}));var c;(function(N){function L(G){return typeof G=="string"||typeof G=="number"}N.is=L})(c||(r.ProgressToken=c={}));var g;(function(N){N.type=new A.NotificationType("$/progress")})(g||(g={}));class h{constructor(){}}r.ProgressType=h;var d;(function(N){function L(G){return n.func(G)}N.is=L})(d||(d={})),r.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var u;(function(N){N[N.Off=0]="Off",N[N.Messages=1]="Messages",N[N.Compact=2]="Compact",N[N.Verbose=3]="Verbose"})(u||(r.Trace=u={}));var f;(function(N){N.Off="off",N.Messages="messages",N.Compact="compact",N.Verbose="verbose"})(f||(r.TraceValues=f={})),(function(N){function L(K){if(!n.string(K))return N.Off;switch(K=K.toLowerCase(),K){case"off":return N.Off;case"messages":return N.Messages;case"compact":return N.Compact;case"verbose":return N.Verbose;default:return N.Off}}N.fromString=L;function G(K){switch(K){case N.Off:return"off";case N.Messages:return"messages";case N.Compact:return"compact";case N.Verbose:return"verbose";default:return"off"}}N.toString=G})(u||(r.Trace=u={}));var I;(function(N){N.Text="text",N.JSON="json"})(I||(r.TraceFormat=I={})),(function(N){function L(G){return n.string(G)?(G=G.toLowerCase(),G==="json"?N.JSON:N.Text):N.Text}N.fromString=L})(I||(r.TraceFormat=I={}));var p;(function(N){N.type=new A.NotificationType("$/setTrace")})(p||(r.SetTraceNotification=p={}));var m;(function(N){N.type=new A.NotificationType("$/logTrace")})(m||(r.LogTraceNotification=m={}));var E;(function(N){N[N.Closed=1]="Closed",N[N.Disposed=2]="Disposed",N[N.AlreadyListening=3]="AlreadyListening"})(E||(r.ConnectionErrors=E={}));class B extends Error{constructor(L,G){super(G),this.code=L,Object.setPrototypeOf(this,B.prototype)}}r.ConnectionError=B;var Q;(function(N){function L(G){const K=G;return K&&n.func(K.cancelUndispatched)}N.is=L})(Q||(r.ConnectionStrategy=Q={}));var w;(function(N){function L(G){const K=G;return K&&(K.kind===void 0||K.kind==="id")&&n.func(K.createCancellationTokenSource)&&(K.dispose===void 0||n.func(K.dispose))}N.is=L})(w||(r.IdCancellationReceiverStrategy=w={}));var y;(function(N){function L(G){const K=G;return K&&K.kind==="request"&&n.func(K.createCancellationTokenSource)&&(K.dispose===void 0||n.func(K.dispose))}N.is=L})(y||(r.RequestCancellationReceiverStrategy=y={}));var S;(function(N){N.Message=Object.freeze({createCancellationTokenSource(G){return new a.CancellationTokenSource}});function L(G){return w.is(G)||y.is(G)}N.is=L})(S||(r.CancellationReceiverStrategy=S={}));var D;(function(N){N.Message=Object.freeze({sendCancellation(G,K){return G.sendNotification(l.type,{id:K})},cleanup(G){}});function L(G){const K=G;return K&&n.func(K.sendCancellation)&&n.func(K.cleanup)}N.is=L})(D||(r.CancellationSenderStrategy=D={}));var _;(function(N){N.Message=Object.freeze({receiver:S.Message,sender:D.Message});function L(G){const K=G;return K&&S.is(K.receiver)&&D.is(K.sender)}N.is=L})(_||(r.CancellationStrategy=_={}));var M;(function(N){function L(G){const K=G;return K&&n.func(K.handleMessage)}N.is=L})(M||(r.MessageStrategy=M={}));var v;(function(N){function L(G){const K=G;return K&&(_.is(K.cancellationStrategy)||Q.is(K.connectionStrategy)||M.is(K.messageStrategy))}N.is=L})(v||(r.ConnectionOptions=v={}));var F;(function(N){N[N.New=1]="New",N[N.Listening=2]="Listening",N[N.Closed=3]="Closed",N[N.Disposed=4]="Disposed"})(F||(F={}));function R(N,L,G,K){const O=G!==void 0?G:r.NullLogger;let oe=0,j=0,Ae=0;const z="2.0";let ee;const ae=new Map;let le;const ge=new Map,he=new Map;let Be,Ce=new o.LinkedMap,pe=new Map,De=new Set,de=new Map,Y=u.Off,me=I.Text,X,ue=F.New;const be=new s.Emitter,Ne=new s.Emitter,Re=new s.Emitter,ve=new s.Emitter,Me=new s.Emitter,fe=K&&K.cancellationStrategy?K.cancellationStrategy:_.Message;function Fe(b){if(b===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+b.toString()}function Je(b){return b===null?"res-unknown-"+(++Ae).toString():"res-"+b.toString()}function He(){return"not-"+(++j).toString()}function qe(b,x){A.Message.isRequest(x)?b.set(Fe(x.id),x):A.Message.isResponse(x)?b.set(Je(x.id),x):b.set(He(),x)}function Ye(b){}function Te(){return ue===F.Listening}function Le(){return ue===F.Closed}function Qe(){return ue===F.Disposed}function xe(){(ue===F.New||ue===F.Listening)&&(ue=F.Closed,Ne.fire(void 0))}function Ve(b){be.fire([b,void 0,void 0])}function je(b){be.fire(b)}N.onClose(xe),N.onError(Ve),L.onClose(xe),L.onError(je);function Ke(){Be||Ce.size===0||(Be=(0,e.default)().timer.setImmediate(()=>{Be=void 0,$e()}))}function Ge(b){A.Message.isRequest(b)?ze(b):A.Message.isNotification(b)?Ze(b):A.Message.isResponse(b)?Xe(b):et(b)}function $e(){if(Ce.size===0)return;const b=Ce.shift();try{const x=K?.messageStrategy;M.is(x)?x.handleMessage(b,Ge):Ge(b)}finally{Ke()}}const We=b=>{try{if(A.Message.isNotification(b)&&b.method===l.type.method){const x=b.params.id,P=Fe(x),U=Ce.get(P);if(A.Message.isRequest(U)){const V=K?.connectionStrategy,Z=V&&V.cancelUndispatched?V.cancelUndispatched(U,Ye):void 0;if(Z&&(Z.error!==void 0||Z.result!==void 0)){Ce.delete(P),de.delete(x),Z.id=U.id,ke(Z,b.method,Date.now()),L.write(Z).catch(()=>O.error("Sending response for canceled message failed."));return}}const $=de.get(x);if($!==void 0){$.cancel(),_e(b);return}else De.add(x)}qe(Ce,b)}finally{Ke()}};function ze(b){if(Qe())return;function x(H,W,q){const se={jsonrpc:z,id:b.id};H instanceof A.ResponseError?se.error=H.toJson():se.result=H===void 0?null:H,ke(se,W,q),L.write(se).catch(()=>O.error("Sending response failed."))}function P(H,W,q){const se={jsonrpc:z,id:b.id,error:H.toJson()};ke(se,W,q),L.write(se).catch(()=>O.error("Sending response failed."))}function U(H,W,q){H===void 0&&(H=null);const se={jsonrpc:z,id:b.id,result:H};ke(se,W,q),L.write(se).catch(()=>O.error("Sending response failed."))}it(b);const $=ae.get(b.method);let V,Z;$&&(V=$.type,Z=$.handler);const re=Date.now();if(Z||ee){const H=b.id??String(Date.now()),W=w.is(fe.receiver)?fe.receiver.createCancellationTokenSource(H):fe.receiver.createCancellationTokenSource(b);b.id!==null&&De.has(b.id)&&W.cancel(),b.id!==null&&de.set(H,W);try{let q;if(Z)if(b.params===void 0){if(V!==void 0&&V.numberOfParams!==0){P(new A.ResponseError(A.ErrorCodes.InvalidParams,`Request ${b.method} defines ${V.numberOfParams} params but received none.`),b.method,re);return}q=Z(W.token)}else if(Array.isArray(b.params)){if(V!==void 0&&V.parameterStructures===A.ParameterStructures.byName){P(new A.ResponseError(A.ErrorCodes.InvalidParams,`Request ${b.method} defines parameters by name but received parameters by position`),b.method,re);return}q=Z(...b.params,W.token)}else{if(V!==void 0&&V.parameterStructures===A.ParameterStructures.byPosition){P(new A.ResponseError(A.ErrorCodes.InvalidParams,`Request ${b.method} defines parameters by position but received parameters by name`),b.method,re);return}q=Z(b.params,W.token)}else ee&&(q=ee(b.method,b.params,W.token));const se=q;q?se.then?se.then(ce=>{de.delete(H),x(ce,b.method,re)},ce=>{de.delete(H),ce instanceof A.ResponseError?P(ce,b.method,re):ce&&n.string(ce.message)?P(new A.ResponseError(A.ErrorCodes.InternalError,`Request ${b.method} failed with message: ${ce.message}`),b.method,re):P(new A.ResponseError(A.ErrorCodes.InternalError,`Request ${b.method} failed unexpectedly without providing any details.`),b.method,re)}):(de.delete(H),x(q,b.method,re)):(de.delete(H),U(q,b.method,re))}catch(q){de.delete(H),q instanceof A.ResponseError?x(q,b.method,re):q&&n.string(q.message)?P(new A.ResponseError(A.ErrorCodes.InternalError,`Request ${b.method} failed with message: ${q.message}`),b.method,re):P(new A.ResponseError(A.ErrorCodes.InternalError,`Request ${b.method} failed unexpectedly without providing any details.`),b.method,re)}}else P(new A.ResponseError(A.ErrorCodes.MethodNotFound,`Unhandled method ${b.method}`),b.method,re)}function Xe(b){if(!Qe())if(b.id===null)b.error?O.error(`Received response message without id: Error is:
33
+ ${JSON.stringify(b.error,void 0,4)}`):O.error("Received response message without id. No further error information provided.");else{const x=b.id,P=pe.get(x);if(rt(b,P),P!==void 0){pe.delete(x);try{if(b.error){const U=b.error;P.reject(new A.ResponseError(U.code,U.message,U.data))}else if(b.result!==void 0)P.resolve(b.result);else throw new Error("Should never happen.")}catch(U){U.message?O.error(`Response handler '${P.method}' failed with message: ${U.message}`):O.error(`Response handler '${P.method}' failed unexpectedly.`)}}}}function Ze(b){if(Qe())return;let x,P;if(b.method===l.type.method){const U=b.params.id;De.delete(U),_e(b);return}else{const U=ge.get(b.method);U&&(P=U.handler,x=U.type)}if(P||le)try{if(_e(b),P)if(b.params===void 0)x!==void 0&&x.numberOfParams!==0&&x.parameterStructures!==A.ParameterStructures.byName&&O.error(`Notification ${b.method} defines ${x.numberOfParams} params but received none.`),P();else if(Array.isArray(b.params)){const U=b.params;b.method===g.type.method&&U.length===2&&c.is(U[0])?P({token:U[0],value:U[1]}):(x!==void 0&&(x.parameterStructures===A.ParameterStructures.byName&&O.error(`Notification ${b.method} defines parameters by name but received parameters by position`),x.numberOfParams!==b.params.length&&O.error(`Notification ${b.method} defines ${x.numberOfParams} params but received ${U.length} arguments`)),P(...U))}else x!==void 0&&x.parameterStructures===A.ParameterStructures.byPosition&&O.error(`Notification ${b.method} defines parameters by position but received parameters by name`),P(b.params);else le&&le(b.method,b.params)}catch(U){U.message?O.error(`Notification handler '${b.method}' failed with message: ${U.message}`):O.error(`Notification handler '${b.method}' failed unexpectedly.`)}else Re.fire(b)}function et(b){if(!b){O.error("Received empty message.");return}O.error(`Received message which is neither a response nor a notification message:
34
+ ${JSON.stringify(b,null,4)}`);const x=b;if(n.string(x.id)||n.number(x.id)){const P=x.id,U=pe.get(P);U&&U.reject(new Error("The received response has neither a result nor an error property."))}}function Ie(b){if(b!=null)switch(Y){case u.Verbose:return JSON.stringify(b,null,4);case u.Compact:return JSON.stringify(b);default:return}}function tt(b){if(!(Y===u.Off||!X))if(me===I.Text){let x;(Y===u.Verbose||Y===u.Compact)&&b.params&&(x=`Params: ${Ie(b.params)}
35
+
36
+ `),X.log(`Sending request '${b.method} - (${b.id})'.`,x)}else ye("send-request",b)}function nt(b){if(!(Y===u.Off||!X))if(me===I.Text){let x;(Y===u.Verbose||Y===u.Compact)&&(b.params?x=`Params: ${Ie(b.params)}
37
+
38
+ `:x=`No parameters provided.
39
+
40
+ `),X.log(`Sending notification '${b.method}'.`,x)}else ye("send-notification",b)}function ke(b,x,P){if(!(Y===u.Off||!X))if(me===I.Text){let U;(Y===u.Verbose||Y===u.Compact)&&(b.error&&b.error.data?U=`Error data: ${Ie(b.error.data)}
41
+
42
+ `:b.result?U=`Result: ${Ie(b.result)}
43
+
44
+ `:b.error===void 0&&(U=`No result returned.
45
+
46
+ `)),X.log(`Sending response '${x} - (${b.id})'. Processing request took ${Date.now()-P}ms`,U)}else ye("send-response",b)}function it(b){if(!(Y===u.Off||!X))if(me===I.Text){let x;(Y===u.Verbose||Y===u.Compact)&&b.params&&(x=`Params: ${Ie(b.params)}
47
+
48
+ `),X.log(`Received request '${b.method} - (${b.id})'.`,x)}else ye("receive-request",b)}function _e(b){if(!(Y===u.Off||!X||b.method===m.type.method))if(me===I.Text){let x;(Y===u.Verbose||Y===u.Compact)&&(b.params?x=`Params: ${Ie(b.params)}
49
+
50
+ `:x=`No parameters provided.
51
+
52
+ `),X.log(`Received notification '${b.method}'.`,x)}else ye("receive-notification",b)}function rt(b,x){if(!(Y===u.Off||!X))if(me===I.Text){let P;if((Y===u.Verbose||Y===u.Compact)&&(b.error&&b.error.data?P=`Error data: ${Ie(b.error.data)}
53
+
54
+ `:b.result?P=`Result: ${Ie(b.result)}
55
+
56
+ `:b.error===void 0&&(P=`No result returned.
57
+
58
+ `)),x){const U=b.error?` Request failed: ${b.error.message} (${b.error.code}).`:"";X.log(`Received response '${x.method} - (${b.id})' in ${Date.now()-x.timerStart}ms.${U}`,P)}else X.log(`Received response ${b.id} without active response promise.`,P)}else ye("receive-response",b)}function ye(b,x){if(!X||Y===u.Off)return;const P={isLSPMessage:!0,type:b,message:x,timestamp:Date.now()};X.log(P)}function we(){if(Le())throw new B(E.Closed,"Connection is closed.");if(Qe())throw new B(E.Disposed,"Connection is disposed.")}function At(){if(Te())throw new B(E.AlreadyListening,"Connection is already listening")}function ot(){if(!Te())throw new Error("Call listen() first.")}function Se(b){return b===void 0?null:b}function Pe(b){if(b!==null)return b}function k(b){return b!=null&&!Array.isArray(b)&&typeof b=="object"}function te(b,x){switch(b){case A.ParameterStructures.auto:return k(x)?Pe(x):[Se(x)];case A.ParameterStructures.byName:if(!k(x))throw new Error("Received parameters by name but param is not an object literal.");return Pe(x);case A.ParameterStructures.byPosition:return[Se(x)];default:throw new Error(`Unknown parameter structure ${b.toString()}`)}}function ne(b,x){let P;const U=b.numberOfParams;switch(U){case 0:P=void 0;break;case 1:P=te(b.parameterStructures,x[0]);break;default:P=[];for(let $=0;$<x.length&&$<U;$++)P.push(Se(x[$]));if(x.length<U)for(let $=x.length;$<U;$++)P.push(null);break}return P}const J={sendNotification:(b,...x)=>{we();let P,U;if(n.string(b)){P=b;const V=x[0];let Z=0,re=A.ParameterStructures.auto;A.ParameterStructures.is(V)&&(Z=1,re=V);let H=x.length;const W=H-Z;switch(W){case 0:U=void 0;break;case 1:U=te(re,x[Z]);break;default:if(re===A.ParameterStructures.byName)throw new Error(`Received ${W} parameters for 'by Name' notification parameter structure.`);U=x.slice(Z,H).map(q=>Se(q));break}}else{const V=x;P=b.method,U=ne(b,V)}const $={jsonrpc:z,method:P,params:U};return nt($),L.write($).catch(V=>{throw O.error("Sending notification failed."),V})},onNotification:(b,x)=>{we();let P;return n.func(b)?le=b:x&&(n.string(b)?(P=b,ge.set(b,{type:void 0,handler:x})):(P=b.method,ge.set(b.method,{type:b,handler:x}))),{dispose:()=>{P!==void 0?ge.delete(P):le=void 0}}},onProgress:(b,x,P)=>{if(he.has(x))throw new Error(`Progress handler for token ${x} already registered`);return he.set(x,P),{dispose:()=>{he.delete(x)}}},sendProgress:(b,x,P)=>J.sendNotification(g.type,{token:x,value:P}),onUnhandledProgress:ve.event,sendRequest:(b,...x)=>{we(),ot();let P,U,$;if(n.string(b)){P=b;const H=x[0],W=x[x.length-1];let q=0,se=A.ParameterStructures.auto;A.ParameterStructures.is(H)&&(q=1,se=H);let ce=x.length;a.CancellationToken.is(W)&&(ce=ce-1,$=W);const Ee=ce-q;switch(Ee){case 0:U=void 0;break;case 1:U=te(se,x[q]);break;default:if(se===A.ParameterStructures.byName)throw new Error(`Received ${Ee} parameters for 'by Name' request parameter structure.`);U=x.slice(q,ce).map(Qt=>Se(Qt));break}}else{const H=x;P=b.method,U=ne(b,H);const W=b.numberOfParams;$=a.CancellationToken.is(H[W])?H[W]:void 0}const V=oe++;let Z;$&&(Z=$.onCancellationRequested(()=>{const H=fe.sender.sendCancellation(J,V);return H===void 0?(O.log(`Received no promise from cancellation strategy when cancelling id ${V}`),Promise.resolve()):H.catch(()=>{O.log(`Sending cancellation messages for id ${V} failed`)})}));const re={jsonrpc:z,id:V,method:P,params:U};return tt(re),typeof fe.sender.enableCancellation=="function"&&fe.sender.enableCancellation(re),new Promise(async(H,W)=>{const q=Ee=>{H(Ee),fe.sender.cleanup(V),Z?.dispose()},se=Ee=>{W(Ee),fe.sender.cleanup(V),Z?.dispose()},ce={method:P,timerStart:Date.now(),resolve:q,reject:se};try{await L.write(re),pe.set(V,ce)}catch(Ee){throw O.error("Sending request failed."),ce.reject(new A.ResponseError(A.ErrorCodes.MessageWriteError,Ee.message?Ee.message:"Unknown reason")),Ee}})},onRequest:(b,x)=>{we();let P=null;return d.is(b)?(P=void 0,ee=b):n.string(b)?(P=null,x!==void 0&&(P=b,ae.set(b,{handler:x,type:void 0}))):x!==void 0&&(P=b.method,ae.set(b.method,{type:b,handler:x})),{dispose:()=>{P!==null&&(P!==void 0?ae.delete(P):ee=void 0)}}},hasPendingResponse:()=>pe.size>0,trace:async(b,x,P)=>{let U=!1,$=I.Text;P!==void 0&&(n.boolean(P)?U=P:(U=P.sendNotification||!1,$=P.traceFormat||I.Text)),Y=b,me=$,Y===u.Off?X=void 0:X=x,U&&!Le()&&!Qe()&&await J.sendNotification(p.type,{value:u.toString(b)})},onError:be.event,onClose:Ne.event,onUnhandledNotification:Re.event,onDispose:Me.event,end:()=>{L.end()},dispose:()=>{if(Qe())return;ue=F.Disposed,Me.fire(void 0);const b=new A.ResponseError(A.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(const x of pe.values())x.reject(b);pe=new Map,de=new Map,De=new Set,Ce=new o.LinkedMap,n.func(L.dispose)&&L.dispose(),n.func(N.dispose)&&N.dispose()},listen:()=>{we(),At(),ue=F.Listening,N.listen(We)},inspect:()=>{(0,e.default)().console.log("inspect")}};return J.onNotification(m.type,b=>{if(Y===u.Off||!X)return;const x=Y===u.Verbose||Y===u.Compact;X.log(b.message,x?b.verbose:void 0)}),J.onNotification(g.type,b=>{const x=he.get(b.token);x?x(b.value):ve.fire(b)}),J}r.createMessageConnection=R})(connection$1)),connection$1}var hasRequiredApi$1;function requireApi$1(){return hasRequiredApi$1||(hasRequiredApi$1=1,(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.ProgressType=r.ProgressToken=r.createMessageConnection=r.NullLogger=r.ConnectionOptions=r.ConnectionStrategy=r.AbstractMessageBuffer=r.WriteableStreamMessageWriter=r.AbstractMessageWriter=r.MessageWriter=r.ReadableStreamMessageReader=r.AbstractMessageReader=r.MessageReader=r.SharedArrayReceiverStrategy=r.SharedArraySenderStrategy=r.CancellationToken=r.CancellationTokenSource=r.Emitter=r.Event=r.Disposable=r.LRUCache=r.Touch=r.LinkedMap=r.ParameterStructures=r.NotificationType9=r.NotificationType8=r.NotificationType7=r.NotificationType6=r.NotificationType5=r.NotificationType4=r.NotificationType3=r.NotificationType2=r.NotificationType1=r.NotificationType0=r.NotificationType=r.ErrorCodes=r.ResponseError=r.RequestType9=r.RequestType8=r.RequestType7=r.RequestType6=r.RequestType5=r.RequestType4=r.RequestType3=r.RequestType2=r.RequestType1=r.RequestType0=r.RequestType=r.Message=r.RAL=void 0,r.MessageStrategy=r.CancellationStrategy=r.CancellationSenderStrategy=r.CancellationReceiverStrategy=r.ConnectionError=r.ConnectionErrors=r.LogTraceNotification=r.SetTraceNotification=r.TraceFormat=r.TraceValues=r.Trace=void 0;const e=requireMessages$1();Object.defineProperty(r,"Message",{enumerable:!0,get:function(){return e.Message}}),Object.defineProperty(r,"RequestType",{enumerable:!0,get:function(){return e.RequestType}}),Object.defineProperty(r,"RequestType0",{enumerable:!0,get:function(){return e.RequestType0}}),Object.defineProperty(r,"RequestType1",{enumerable:!0,get:function(){return e.RequestType1}}),Object.defineProperty(r,"RequestType2",{enumerable:!0,get:function(){return e.RequestType2}}),Object.defineProperty(r,"RequestType3",{enumerable:!0,get:function(){return e.RequestType3}}),Object.defineProperty(r,"RequestType4",{enumerable:!0,get:function(){return e.RequestType4}}),Object.defineProperty(r,"RequestType5",{enumerable:!0,get:function(){return e.RequestType5}}),Object.defineProperty(r,"RequestType6",{enumerable:!0,get:function(){return e.RequestType6}}),Object.defineProperty(r,"RequestType7",{enumerable:!0,get:function(){return e.RequestType7}}),Object.defineProperty(r,"RequestType8",{enumerable:!0,get:function(){return e.RequestType8}}),Object.defineProperty(r,"RequestType9",{enumerable:!0,get:function(){return e.RequestType9}}),Object.defineProperty(r,"ResponseError",{enumerable:!0,get:function(){return e.ResponseError}}),Object.defineProperty(r,"ErrorCodes",{enumerable:!0,get:function(){return e.ErrorCodes}}),Object.defineProperty(r,"NotificationType",{enumerable:!0,get:function(){return e.NotificationType}}),Object.defineProperty(r,"NotificationType0",{enumerable:!0,get:function(){return e.NotificationType0}}),Object.defineProperty(r,"NotificationType1",{enumerable:!0,get:function(){return e.NotificationType1}}),Object.defineProperty(r,"NotificationType2",{enumerable:!0,get:function(){return e.NotificationType2}}),Object.defineProperty(r,"NotificationType3",{enumerable:!0,get:function(){return e.NotificationType3}}),Object.defineProperty(r,"NotificationType4",{enumerable:!0,get:function(){return e.NotificationType4}}),Object.defineProperty(r,"NotificationType5",{enumerable:!0,get:function(){return e.NotificationType5}}),Object.defineProperty(r,"NotificationType6",{enumerable:!0,get:function(){return e.NotificationType6}}),Object.defineProperty(r,"NotificationType7",{enumerable:!0,get:function(){return e.NotificationType7}}),Object.defineProperty(r,"NotificationType8",{enumerable:!0,get:function(){return e.NotificationType8}}),Object.defineProperty(r,"NotificationType9",{enumerable:!0,get:function(){return e.NotificationType9}}),Object.defineProperty(r,"ParameterStructures",{enumerable:!0,get:function(){return e.ParameterStructures}});const n=requireLinkedMap();Object.defineProperty(r,"LinkedMap",{enumerable:!0,get:function(){return n.LinkedMap}}),Object.defineProperty(r,"LRUCache",{enumerable:!0,get:function(){return n.LRUCache}}),Object.defineProperty(r,"Touch",{enumerable:!0,get:function(){return n.Touch}});const A=requireDisposable();Object.defineProperty(r,"Disposable",{enumerable:!0,get:function(){return A.Disposable}});const o=requireEvents();Object.defineProperty(r,"Event",{enumerable:!0,get:function(){return o.Event}}),Object.defineProperty(r,"Emitter",{enumerable:!0,get:function(){return o.Emitter}});const s=requireCancellation();Object.defineProperty(r,"CancellationTokenSource",{enumerable:!0,get:function(){return s.CancellationTokenSource}}),Object.defineProperty(r,"CancellationToken",{enumerable:!0,get:function(){return s.CancellationToken}});const a=requireSharedArrayCancellation();Object.defineProperty(r,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return a.SharedArraySenderStrategy}}),Object.defineProperty(r,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return a.SharedArrayReceiverStrategy}});const l=requireMessageReader();Object.defineProperty(r,"MessageReader",{enumerable:!0,get:function(){return l.MessageReader}}),Object.defineProperty(r,"AbstractMessageReader",{enumerable:!0,get:function(){return l.AbstractMessageReader}}),Object.defineProperty(r,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return l.ReadableStreamMessageReader}});const c=requireMessageWriter();Object.defineProperty(r,"MessageWriter",{enumerable:!0,get:function(){return c.MessageWriter}}),Object.defineProperty(r,"AbstractMessageWriter",{enumerable:!0,get:function(){return c.AbstractMessageWriter}}),Object.defineProperty(r,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return c.WriteableStreamMessageWriter}});const g=requireMessageBuffer();Object.defineProperty(r,"AbstractMessageBuffer",{enumerable:!0,get:function(){return g.AbstractMessageBuffer}});const h=requireConnection$1();Object.defineProperty(r,"ConnectionStrategy",{enumerable:!0,get:function(){return h.ConnectionStrategy}}),Object.defineProperty(r,"ConnectionOptions",{enumerable:!0,get:function(){return h.ConnectionOptions}}),Object.defineProperty(r,"NullLogger",{enumerable:!0,get:function(){return h.NullLogger}}),Object.defineProperty(r,"createMessageConnection",{enumerable:!0,get:function(){return h.createMessageConnection}}),Object.defineProperty(r,"ProgressToken",{enumerable:!0,get:function(){return h.ProgressToken}}),Object.defineProperty(r,"ProgressType",{enumerable:!0,get:function(){return h.ProgressType}}),Object.defineProperty(r,"Trace",{enumerable:!0,get:function(){return h.Trace}}),Object.defineProperty(r,"TraceValues",{enumerable:!0,get:function(){return h.TraceValues}}),Object.defineProperty(r,"TraceFormat",{enumerable:!0,get:function(){return h.TraceFormat}}),Object.defineProperty(r,"SetTraceNotification",{enumerable:!0,get:function(){return h.SetTraceNotification}}),Object.defineProperty(r,"LogTraceNotification",{enumerable:!0,get:function(){return h.LogTraceNotification}}),Object.defineProperty(r,"ConnectionErrors",{enumerable:!0,get:function(){return h.ConnectionErrors}}),Object.defineProperty(r,"ConnectionError",{enumerable:!0,get:function(){return h.ConnectionError}}),Object.defineProperty(r,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return h.CancellationReceiverStrategy}}),Object.defineProperty(r,"CancellationSenderStrategy",{enumerable:!0,get:function(){return h.CancellationSenderStrategy}}),Object.defineProperty(r,"CancellationStrategy",{enumerable:!0,get:function(){return h.CancellationStrategy}}),Object.defineProperty(r,"MessageStrategy",{enumerable:!0,get:function(){return h.MessageStrategy}});const d=requireRal();r.RAL=d.default})(api$1)),api$1}var hasRequiredRil;function requireRil(){if(hasRequiredRil)return ril;hasRequiredRil=1,Object.defineProperty(ril,"__esModule",{value:!0});const r=requireApi$1();class e extends r.AbstractMessageBuffer{constructor(c="utf-8"){super(c),this.asciiDecoder=new TextDecoder("ascii")}emptyBuffer(){return e.emptyBuffer}fromString(c,g){return new TextEncoder().encode(c)}toString(c,g){return g==="ascii"?this.asciiDecoder.decode(c):new TextDecoder(g).decode(c)}asNative(c,g){return g===void 0?c:c.slice(0,g)}allocNative(c){return new Uint8Array(c)}}e.emptyBuffer=new Uint8Array(0);class n{constructor(c){this.socket=c,this._onData=new r.Emitter,this._messageListener=g=>{g.data.arrayBuffer().then(d=>{this._onData.fire(new Uint8Array(d))},()=>{(0,r.RAL)().console.error("Converting blob to array buffer failed.")})},this.socket.addEventListener("message",this._messageListener)}onClose(c){return this.socket.addEventListener("close",c),r.Disposable.create(()=>this.socket.removeEventListener("close",c))}onError(c){return this.socket.addEventListener("error",c),r.Disposable.create(()=>this.socket.removeEventListener("error",c))}onEnd(c){return this.socket.addEventListener("end",c),r.Disposable.create(()=>this.socket.removeEventListener("end",c))}onData(c){return this._onData.event(c)}}class A{constructor(c){this.socket=c}onClose(c){return this.socket.addEventListener("close",c),r.Disposable.create(()=>this.socket.removeEventListener("close",c))}onError(c){return this.socket.addEventListener("error",c),r.Disposable.create(()=>this.socket.removeEventListener("error",c))}onEnd(c){return this.socket.addEventListener("end",c),r.Disposable.create(()=>this.socket.removeEventListener("end",c))}write(c,g){if(typeof c=="string"){if(g!==void 0&&g!=="utf-8")throw new Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${g}`);this.socket.send(c)}else this.socket.send(c);return Promise.resolve()}end(){this.socket.close()}}const o=new TextEncoder,s=Object.freeze({messageBuffer:Object.freeze({create:l=>new e(l)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(l,c)=>{if(c.charset!=="utf-8")throw new Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${c.charset}`);return Promise.resolve(o.encode(JSON.stringify(l,void 0,0)))}}),decoder:Object.freeze({name:"application/json",decode:(l,c)=>{if(!(l instanceof Uint8Array))throw new Error("In a Browser environments only Uint8Arrays are supported.");return Promise.resolve(JSON.parse(new TextDecoder(c.charset).decode(l)))}})}),stream:Object.freeze({asReadableStream:l=>new n(l),asWritableStream:l=>new A(l)}),console,timer:Object.freeze({setTimeout(l,c,...g){const h=setTimeout(l,c,...g);return{dispose:()=>clearTimeout(h)}},setImmediate(l,...c){const g=setTimeout(l,0,...c);return{dispose:()=>clearTimeout(g)}},setInterval(l,c,...g){const h=setInterval(l,c,...g);return{dispose:()=>clearInterval(h)}}})});function a(){return s}return(function(l){function c(){r.RAL.install(s)}l.install=c})(a||(a={})),ril.default=a,ril}var hasRequiredMain$1;function requireMain$1(){return hasRequiredMain$1||(hasRequiredMain$1=1,(function(r){var e=main$1&&main$1.__createBinding||(Object.create?(function(c,g,h,d){d===void 0&&(d=h);var u=Object.getOwnPropertyDescriptor(g,h);(!u||("get"in u?!g.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return g[h]}}),Object.defineProperty(c,d,u)}):(function(c,g,h,d){d===void 0&&(d=h),c[d]=g[h]})),n=main$1&&main$1.__exportStar||function(c,g){for(var h in c)h!=="default"&&!Object.prototype.hasOwnProperty.call(g,h)&&e(g,c,h)};Object.defineProperty(r,"__esModule",{value:!0}),r.createMessageConnection=r.BrowserMessageWriter=r.BrowserMessageReader=void 0,requireRil().default.install();const o=requireApi$1();n(requireApi$1(),r);class s extends o.AbstractMessageReader{constructor(g){super(),this._onData=new o.Emitter,this._messageListener=h=>{this._onData.fire(h.data)},g.addEventListener("error",h=>this.fireError(h)),g.onmessage=this._messageListener}listen(g){return this._onData.event(g)}}r.BrowserMessageReader=s;class a extends o.AbstractMessageWriter{constructor(g){super(),this.port=g,this.errorCount=0,g.addEventListener("error",h=>this.fireError(h))}write(g){try{return this.port.postMessage(g),Promise.resolve()}catch(h){return this.handleError(h,g),Promise.reject(h)}}handleError(g,h){this.errorCount++,this.fireError(g,h,this.errorCount)}end(){}}r.BrowserMessageWriter=a;function l(c,g,h,d){return h===void 0&&(h=o.NullLogger),o.ConnectionStrategy.is(d)&&(d={connectionStrategy:d}),(0,o.createMessageConnection)(c,g,h,d)}r.createMessageConnection=l})(main$1)),main$1}var browser,hasRequiredBrowser;function requireBrowser(){return hasRequiredBrowser||(hasRequiredBrowser=1,browser=requireMain$1()),browser}var api={},DocumentUri;(function(r){function e(n){return typeof n=="string"}r.is=e})(DocumentUri||(DocumentUri={}));var URI;(function(r){function e(n){return typeof n=="string"}r.is=e})(URI||(URI={}));var integer;(function(r){r.MIN_VALUE=-2147483648,r.MAX_VALUE=2147483647;function e(n){return typeof n=="number"&&r.MIN_VALUE<=n&&n<=r.MAX_VALUE}r.is=e})(integer||(integer={}));var uinteger;(function(r){r.MIN_VALUE=0,r.MAX_VALUE=2147483647;function e(n){return typeof n=="number"&&r.MIN_VALUE<=n&&n<=r.MAX_VALUE}r.is=e})(uinteger||(uinteger={}));var Position;(function(r){function e(A,o){return A===Number.MAX_VALUE&&(A=uinteger.MAX_VALUE),o===Number.MAX_VALUE&&(o=uinteger.MAX_VALUE),{line:A,character:o}}r.create=e;function n(A){let o=A;return Is.objectLiteral(o)&&Is.uinteger(o.line)&&Is.uinteger(o.character)}r.is=n})(Position||(Position={}));var Range;(function(r){function e(A,o,s,a){if(Is.uinteger(A)&&Is.uinteger(o)&&Is.uinteger(s)&&Is.uinteger(a))return{start:Position.create(A,o),end:Position.create(s,a)};if(Position.is(A)&&Position.is(o))return{start:A,end:o};throw new Error(`Range#create called with invalid arguments[${A}, ${o}, ${s}, ${a}]`)}r.create=e;function n(A){let o=A;return Is.objectLiteral(o)&&Position.is(o.start)&&Position.is(o.end)}r.is=n})(Range||(Range={}));var Location;(function(r){function e(A,o){return{uri:A,range:o}}r.create=e;function n(A){let o=A;return Is.objectLiteral(o)&&Range.is(o.range)&&(Is.string(o.uri)||Is.undefined(o.uri))}r.is=n})(Location||(Location={}));var LocationLink;(function(r){function e(A,o,s,a){return{targetUri:A,targetRange:o,targetSelectionRange:s,originSelectionRange:a}}r.create=e;function n(A){let o=A;return Is.objectLiteral(o)&&Range.is(o.targetRange)&&Is.string(o.targetUri)&&Range.is(o.targetSelectionRange)&&(Range.is(o.originSelectionRange)||Is.undefined(o.originSelectionRange))}r.is=n})(LocationLink||(LocationLink={}));var Color;(function(r){function e(A,o,s,a){return{red:A,green:o,blue:s,alpha:a}}r.create=e;function n(A){const o=A;return Is.objectLiteral(o)&&Is.numberRange(o.red,0,1)&&Is.numberRange(o.green,0,1)&&Is.numberRange(o.blue,0,1)&&Is.numberRange(o.alpha,0,1)}r.is=n})(Color||(Color={}));var ColorInformation;(function(r){function e(A,o){return{range:A,color:o}}r.create=e;function n(A){const o=A;return Is.objectLiteral(o)&&Range.is(o.range)&&Color.is(o.color)}r.is=n})(ColorInformation||(ColorInformation={}));var ColorPresentation;(function(r){function e(A,o,s){return{label:A,textEdit:o,additionalTextEdits:s}}r.create=e;function n(A){const o=A;return Is.objectLiteral(o)&&Is.string(o.label)&&(Is.undefined(o.textEdit)||TextEdit.is(o))&&(Is.undefined(o.additionalTextEdits)||Is.typedArray(o.additionalTextEdits,TextEdit.is))}r.is=n})(ColorPresentation||(ColorPresentation={}));var FoldingRangeKind;(function(r){r.Comment="comment",r.Imports="imports",r.Region="region"})(FoldingRangeKind||(FoldingRangeKind={}));var FoldingRange;(function(r){function e(A,o,s,a,l,c){const g={startLine:A,endLine:o};return Is.defined(s)&&(g.startCharacter=s),Is.defined(a)&&(g.endCharacter=a),Is.defined(l)&&(g.kind=l),Is.defined(c)&&(g.collapsedText=c),g}r.create=e;function n(A){const o=A;return Is.objectLiteral(o)&&Is.uinteger(o.startLine)&&Is.uinteger(o.startLine)&&(Is.undefined(o.startCharacter)||Is.uinteger(o.startCharacter))&&(Is.undefined(o.endCharacter)||Is.uinteger(o.endCharacter))&&(Is.undefined(o.kind)||Is.string(o.kind))}r.is=n})(FoldingRange||(FoldingRange={}));var DiagnosticRelatedInformation;(function(r){function e(A,o){return{location:A,message:o}}r.create=e;function n(A){let o=A;return Is.defined(o)&&Location.is(o.location)&&Is.string(o.message)}r.is=n})(DiagnosticRelatedInformation||(DiagnosticRelatedInformation={}));var DiagnosticSeverity;(function(r){r.Error=1,r.Warning=2,r.Information=3,r.Hint=4})(DiagnosticSeverity||(DiagnosticSeverity={}));var DiagnosticTag;(function(r){r.Unnecessary=1,r.Deprecated=2})(DiagnosticTag||(DiagnosticTag={}));var CodeDescription;(function(r){function e(n){const A=n;return Is.objectLiteral(A)&&Is.string(A.href)}r.is=e})(CodeDescription||(CodeDescription={}));var Diagnostic;(function(r){function e(A,o,s,a,l,c){let g={range:A,message:o};return Is.defined(s)&&(g.severity=s),Is.defined(a)&&(g.code=a),Is.defined(l)&&(g.source=l),Is.defined(c)&&(g.relatedInformation=c),g}r.create=e;function n(A){var o;let s=A;return Is.defined(s)&&Range.is(s.range)&&Is.string(s.message)&&(Is.number(s.severity)||Is.undefined(s.severity))&&(Is.integer(s.code)||Is.string(s.code)||Is.undefined(s.code))&&(Is.undefined(s.codeDescription)||Is.string((o=s.codeDescription)===null||o===void 0?void 0:o.href))&&(Is.string(s.source)||Is.undefined(s.source))&&(Is.undefined(s.relatedInformation)||Is.typedArray(s.relatedInformation,DiagnosticRelatedInformation.is))}r.is=n})(Diagnostic||(Diagnostic={}));var Command;(function(r){function e(A,o,...s){let a={title:A,command:o};return Is.defined(s)&&s.length>0&&(a.arguments=s),a}r.create=e;function n(A){let o=A;return Is.defined(o)&&Is.string(o.title)&&Is.string(o.command)}r.is=n})(Command||(Command={}));var TextEdit;(function(r){function e(s,a){return{range:s,newText:a}}r.replace=e;function n(s,a){return{range:{start:s,end:s},newText:a}}r.insert=n;function A(s){return{range:s,newText:""}}r.del=A;function o(s){const a=s;return Is.objectLiteral(a)&&Is.string(a.newText)&&Range.is(a.range)}r.is=o})(TextEdit||(TextEdit={}));var ChangeAnnotation;(function(r){function e(A,o,s){const a={label:A};return o!==void 0&&(a.needsConfirmation=o),s!==void 0&&(a.description=s),a}r.create=e;function n(A){const o=A;return Is.objectLiteral(o)&&Is.string(o.label)&&(Is.boolean(o.needsConfirmation)||o.needsConfirmation===void 0)&&(Is.string(o.description)||o.description===void 0)}r.is=n})(ChangeAnnotation||(ChangeAnnotation={}));var ChangeAnnotationIdentifier;(function(r){function e(n){const A=n;return Is.string(A)}r.is=e})(ChangeAnnotationIdentifier||(ChangeAnnotationIdentifier={}));var AnnotatedTextEdit;(function(r){function e(s,a,l){return{range:s,newText:a,annotationId:l}}r.replace=e;function n(s,a,l){return{range:{start:s,end:s},newText:a,annotationId:l}}r.insert=n;function A(s,a){return{range:s,newText:"",annotationId:a}}r.del=A;function o(s){const a=s;return TextEdit.is(a)&&(ChangeAnnotation.is(a.annotationId)||ChangeAnnotationIdentifier.is(a.annotationId))}r.is=o})(AnnotatedTextEdit||(AnnotatedTextEdit={}));var TextDocumentEdit;(function(r){function e(A,o){return{textDocument:A,edits:o}}r.create=e;function n(A){let o=A;return Is.defined(o)&&OptionalVersionedTextDocumentIdentifier.is(o.textDocument)&&Array.isArray(o.edits)}r.is=n})(TextDocumentEdit||(TextDocumentEdit={}));var CreateFile;(function(r){function e(A,o,s){let a={kind:"create",uri:A};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(a.options=o),s!==void 0&&(a.annotationId=s),a}r.create=e;function n(A){let o=A;return o&&o.kind==="create"&&Is.string(o.uri)&&(o.options===void 0||(o.options.overwrite===void 0||Is.boolean(o.options.overwrite))&&(o.options.ignoreIfExists===void 0||Is.boolean(o.options.ignoreIfExists)))&&(o.annotationId===void 0||ChangeAnnotationIdentifier.is(o.annotationId))}r.is=n})(CreateFile||(CreateFile={}));var RenameFile;(function(r){function e(A,o,s,a){let l={kind:"rename",oldUri:A,newUri:o};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(l.options=s),a!==void 0&&(l.annotationId=a),l}r.create=e;function n(A){let o=A;return o&&o.kind==="rename"&&Is.string(o.oldUri)&&Is.string(o.newUri)&&(o.options===void 0||(o.options.overwrite===void 0||Is.boolean(o.options.overwrite))&&(o.options.ignoreIfExists===void 0||Is.boolean(o.options.ignoreIfExists)))&&(o.annotationId===void 0||ChangeAnnotationIdentifier.is(o.annotationId))}r.is=n})(RenameFile||(RenameFile={}));var DeleteFile;(function(r){function e(A,o,s){let a={kind:"delete",uri:A};return o!==void 0&&(o.recursive!==void 0||o.ignoreIfNotExists!==void 0)&&(a.options=o),s!==void 0&&(a.annotationId=s),a}r.create=e;function n(A){let o=A;return o&&o.kind==="delete"&&Is.string(o.uri)&&(o.options===void 0||(o.options.recursive===void 0||Is.boolean(o.options.recursive))&&(o.options.ignoreIfNotExists===void 0||Is.boolean(o.options.ignoreIfNotExists)))&&(o.annotationId===void 0||ChangeAnnotationIdentifier.is(o.annotationId))}r.is=n})(DeleteFile||(DeleteFile={}));var WorkspaceEdit;(function(r){function e(n){let A=n;return A&&(A.changes!==void 0||A.documentChanges!==void 0)&&(A.documentChanges===void 0||A.documentChanges.every(o=>Is.string(o.kind)?CreateFile.is(o)||RenameFile.is(o)||DeleteFile.is(o):TextDocumentEdit.is(o)))}r.is=e})(WorkspaceEdit||(WorkspaceEdit={}));class TextEditChangeImpl{constructor(e,n){this.edits=e,this.changeAnnotations=n}insert(e,n,A){let o,s;if(A===void 0?o=TextEdit.insert(e,n):ChangeAnnotationIdentifier.is(A)?(s=A,o=AnnotatedTextEdit.insert(e,n,A)):(this.assertChangeAnnotations(this.changeAnnotations),s=this.changeAnnotations.manage(A),o=AnnotatedTextEdit.insert(e,n,s)),this.edits.push(o),s!==void 0)return s}replace(e,n,A){let o,s;if(A===void 0?o=TextEdit.replace(e,n):ChangeAnnotationIdentifier.is(A)?(s=A,o=AnnotatedTextEdit.replace(e,n,A)):(this.assertChangeAnnotations(this.changeAnnotations),s=this.changeAnnotations.manage(A),o=AnnotatedTextEdit.replace(e,n,s)),this.edits.push(o),s!==void 0)return s}delete(e,n){let A,o;if(n===void 0?A=TextEdit.del(e):ChangeAnnotationIdentifier.is(n)?(o=n,A=AnnotatedTextEdit.del(e,n)):(this.assertChangeAnnotations(this.changeAnnotations),o=this.changeAnnotations.manage(n),A=AnnotatedTextEdit.del(e,o)),this.edits.push(A),o!==void 0)return o}add(e){this.edits.push(e)}all(){return this.edits}clear(){this.edits.splice(0,this.edits.length)}assertChangeAnnotations(e){if(e===void 0)throw new Error("Text edit change is not configured to manage change annotations.")}}class ChangeAnnotations{constructor(e){this._annotations=e===void 0?Object.create(null):e,this._counter=0,this._size=0}all(){return this._annotations}get size(){return this._size}manage(e,n){let A;if(ChangeAnnotationIdentifier.is(e)?A=e:(A=this.nextId(),n=e),this._annotations[A]!==void 0)throw new Error(`Id ${A} is already in use.`);if(n===void 0)throw new Error(`No annotation provided for id ${A}`);return this._annotations[A]=n,this._size++,A}nextId(){return this._counter++,this._counter.toString()}}class WorkspaceChange{constructor(e){this._textEditChanges=Object.create(null),e!==void 0?(this._workspaceEdit=e,e.documentChanges?(this._changeAnnotations=new ChangeAnnotations(e.changeAnnotations),e.changeAnnotations=this._changeAnnotations.all(),e.documentChanges.forEach(n=>{if(TextDocumentEdit.is(n)){const A=new TextEditChangeImpl(n.edits,this._changeAnnotations);this._textEditChanges[n.textDocument.uri]=A}})):e.changes&&Object.keys(e.changes).forEach(n=>{const A=new TextEditChangeImpl(e.changes[n]);this._textEditChanges[n]=A})):this._workspaceEdit={}}get edit(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit}getTextEditChange(e){if(OptionalVersionedTextDocumentIdentifier.is(e)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");const n={uri:e.uri,version:e.version};let A=this._textEditChanges[n.uri];if(!A){const o=[],s={textDocument:n,edits:o};this._workspaceEdit.documentChanges.push(s),A=new TextEditChangeImpl(o,this._changeAnnotations),this._textEditChanges[n.uri]=A}return A}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");let n=this._textEditChanges[e];if(!n){let A=[];this._workspaceEdit.changes[e]=A,n=new TextEditChangeImpl(A),this._textEditChanges[e]=n}return n}}initDocumentChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new ChangeAnnotations,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())}initChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))}createFile(e,n,A){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let o;ChangeAnnotation.is(n)||ChangeAnnotationIdentifier.is(n)?o=n:A=n;let s,a;if(o===void 0?s=CreateFile.create(e,A):(a=ChangeAnnotationIdentifier.is(o)?o:this._changeAnnotations.manage(o),s=CreateFile.create(e,A,a)),this._workspaceEdit.documentChanges.push(s),a!==void 0)return a}renameFile(e,n,A,o){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let s;ChangeAnnotation.is(A)||ChangeAnnotationIdentifier.is(A)?s=A:o=A;let a,l;if(s===void 0?a=RenameFile.create(e,n,o):(l=ChangeAnnotationIdentifier.is(s)?s:this._changeAnnotations.manage(s),a=RenameFile.create(e,n,o,l)),this._workspaceEdit.documentChanges.push(a),l!==void 0)return l}deleteFile(e,n,A){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let o;ChangeAnnotation.is(n)||ChangeAnnotationIdentifier.is(n)?o=n:A=n;let s,a;if(o===void 0?s=DeleteFile.create(e,A):(a=ChangeAnnotationIdentifier.is(o)?o:this._changeAnnotations.manage(o),s=DeleteFile.create(e,A,a)),this._workspaceEdit.documentChanges.push(s),a!==void 0)return a}}var TextDocumentIdentifier;(function(r){function e(A){return{uri:A}}r.create=e;function n(A){let o=A;return Is.defined(o)&&Is.string(o.uri)}r.is=n})(TextDocumentIdentifier||(TextDocumentIdentifier={}));var VersionedTextDocumentIdentifier;(function(r){function e(A,o){return{uri:A,version:o}}r.create=e;function n(A){let o=A;return Is.defined(o)&&Is.string(o.uri)&&Is.integer(o.version)}r.is=n})(VersionedTextDocumentIdentifier||(VersionedTextDocumentIdentifier={}));var OptionalVersionedTextDocumentIdentifier;(function(r){function e(A,o){return{uri:A,version:o}}r.create=e;function n(A){let o=A;return Is.defined(o)&&Is.string(o.uri)&&(o.version===null||Is.integer(o.version))}r.is=n})(OptionalVersionedTextDocumentIdentifier||(OptionalVersionedTextDocumentIdentifier={}));var TextDocumentItem;(function(r){function e(A,o,s,a){return{uri:A,languageId:o,version:s,text:a}}r.create=e;function n(A){let o=A;return Is.defined(o)&&Is.string(o.uri)&&Is.string(o.languageId)&&Is.integer(o.version)&&Is.string(o.text)}r.is=n})(TextDocumentItem||(TextDocumentItem={}));var MarkupKind;(function(r){r.PlainText="plaintext",r.Markdown="markdown";function e(n){const A=n;return A===r.PlainText||A===r.Markdown}r.is=e})(MarkupKind||(MarkupKind={}));var MarkupContent;(function(r){function e(n){const A=n;return Is.objectLiteral(n)&&MarkupKind.is(A.kind)&&Is.string(A.value)}r.is=e})(MarkupContent||(MarkupContent={}));var CompletionItemKind;(function(r){r.Text=1,r.Method=2,r.Function=3,r.Constructor=4,r.Field=5,r.Variable=6,r.Class=7,r.Interface=8,r.Module=9,r.Property=10,r.Unit=11,r.Value=12,r.Enum=13,r.Keyword=14,r.Snippet=15,r.Color=16,r.File=17,r.Reference=18,r.Folder=19,r.EnumMember=20,r.Constant=21,r.Struct=22,r.Event=23,r.Operator=24,r.TypeParameter=25})(CompletionItemKind||(CompletionItemKind={}));var InsertTextFormat;(function(r){r.PlainText=1,r.Snippet=2})(InsertTextFormat||(InsertTextFormat={}));var CompletionItemTag;(function(r){r.Deprecated=1})(CompletionItemTag||(CompletionItemTag={}));var InsertReplaceEdit;(function(r){function e(A,o,s){return{newText:A,insert:o,replace:s}}r.create=e;function n(A){const o=A;return o&&Is.string(o.newText)&&Range.is(o.insert)&&Range.is(o.replace)}r.is=n})(InsertReplaceEdit||(InsertReplaceEdit={}));var InsertTextMode;(function(r){r.asIs=1,r.adjustIndentation=2})(InsertTextMode||(InsertTextMode={}));var CompletionItemLabelDetails;(function(r){function e(n){const A=n;return A&&(Is.string(A.detail)||A.detail===void 0)&&(Is.string(A.description)||A.description===void 0)}r.is=e})(CompletionItemLabelDetails||(CompletionItemLabelDetails={}));var CompletionItem;(function(r){function e(n){return{label:n}}r.create=e})(CompletionItem||(CompletionItem={}));var CompletionList;(function(r){function e(n,A){return{items:n||[],isIncomplete:!!A}}r.create=e})(CompletionList||(CompletionList={}));var MarkedString;(function(r){function e(A){return A.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}r.fromPlainText=e;function n(A){const o=A;return Is.string(o)||Is.objectLiteral(o)&&Is.string(o.language)&&Is.string(o.value)}r.is=n})(MarkedString||(MarkedString={}));var Hover;(function(r){function e(n){let A=n;return!!A&&Is.objectLiteral(A)&&(MarkupContent.is(A.contents)||MarkedString.is(A.contents)||Is.typedArray(A.contents,MarkedString.is))&&(n.range===void 0||Range.is(n.range))}r.is=e})(Hover||(Hover={}));var ParameterInformation;(function(r){function e(n,A){return A?{label:n,documentation:A}:{label:n}}r.create=e})(ParameterInformation||(ParameterInformation={}));var SignatureInformation;(function(r){function e(n,A,...o){let s={label:n};return Is.defined(A)&&(s.documentation=A),Is.defined(o)?s.parameters=o:s.parameters=[],s}r.create=e})(SignatureInformation||(SignatureInformation={}));var DocumentHighlightKind;(function(r){r.Text=1,r.Read=2,r.Write=3})(DocumentHighlightKind||(DocumentHighlightKind={}));var DocumentHighlight;(function(r){function e(n,A){let o={range:n};return Is.number(A)&&(o.kind=A),o}r.create=e})(DocumentHighlight||(DocumentHighlight={}));var SymbolKind;(function(r){r.File=1,r.Module=2,r.Namespace=3,r.Package=4,r.Class=5,r.Method=6,r.Property=7,r.Field=8,r.Constructor=9,r.Enum=10,r.Interface=11,r.Function=12,r.Variable=13,r.Constant=14,r.String=15,r.Number=16,r.Boolean=17,r.Array=18,r.Object=19,r.Key=20,r.Null=21,r.EnumMember=22,r.Struct=23,r.Event=24,r.Operator=25,r.TypeParameter=26})(SymbolKind||(SymbolKind={}));var SymbolTag;(function(r){r.Deprecated=1})(SymbolTag||(SymbolTag={}));var SymbolInformation;(function(r){function e(n,A,o,s,a){let l={name:n,kind:A,location:{uri:s,range:o}};return a&&(l.containerName=a),l}r.create=e})(SymbolInformation||(SymbolInformation={}));var WorkspaceSymbol;(function(r){function e(n,A,o,s){return s!==void 0?{name:n,kind:A,location:{uri:o,range:s}}:{name:n,kind:A,location:{uri:o}}}r.create=e})(WorkspaceSymbol||(WorkspaceSymbol={}));var DocumentSymbol;(function(r){function e(A,o,s,a,l,c){let g={name:A,detail:o,kind:s,range:a,selectionRange:l};return c!==void 0&&(g.children=c),g}r.create=e;function n(A){let o=A;return o&&Is.string(o.name)&&Is.number(o.kind)&&Range.is(o.range)&&Range.is(o.selectionRange)&&(o.detail===void 0||Is.string(o.detail))&&(o.deprecated===void 0||Is.boolean(o.deprecated))&&(o.children===void 0||Array.isArray(o.children))&&(o.tags===void 0||Array.isArray(o.tags))}r.is=n})(DocumentSymbol||(DocumentSymbol={}));var CodeActionKind;(function(r){r.Empty="",r.QuickFix="quickfix",r.Refactor="refactor",r.RefactorExtract="refactor.extract",r.RefactorInline="refactor.inline",r.RefactorRewrite="refactor.rewrite",r.Source="source",r.SourceOrganizeImports="source.organizeImports",r.SourceFixAll="source.fixAll"})(CodeActionKind||(CodeActionKind={}));var CodeActionTriggerKind;(function(r){r.Invoked=1,r.Automatic=2})(CodeActionTriggerKind||(CodeActionTriggerKind={}));var CodeActionContext;(function(r){function e(A,o,s){let a={diagnostics:A};return o!=null&&(a.only=o),s!=null&&(a.triggerKind=s),a}r.create=e;function n(A){let o=A;return Is.defined(o)&&Is.typedArray(o.diagnostics,Diagnostic.is)&&(o.only===void 0||Is.typedArray(o.only,Is.string))&&(o.triggerKind===void 0||o.triggerKind===CodeActionTriggerKind.Invoked||o.triggerKind===CodeActionTriggerKind.Automatic)}r.is=n})(CodeActionContext||(CodeActionContext={}));var CodeAction;(function(r){function e(A,o,s){let a={title:A},l=!0;return typeof o=="string"?(l=!1,a.kind=o):Command.is(o)?a.command=o:a.edit=o,l&&s!==void 0&&(a.kind=s),a}r.create=e;function n(A){let o=A;return o&&Is.string(o.title)&&(o.diagnostics===void 0||Is.typedArray(o.diagnostics,Diagnostic.is))&&(o.kind===void 0||Is.string(o.kind))&&(o.edit!==void 0||o.command!==void 0)&&(o.command===void 0||Command.is(o.command))&&(o.isPreferred===void 0||Is.boolean(o.isPreferred))&&(o.edit===void 0||WorkspaceEdit.is(o.edit))}r.is=n})(CodeAction||(CodeAction={}));var CodeLens;(function(r){function e(A,o){let s={range:A};return Is.defined(o)&&(s.data=o),s}r.create=e;function n(A){let o=A;return Is.defined(o)&&Range.is(o.range)&&(Is.undefined(o.command)||Command.is(o.command))}r.is=n})(CodeLens||(CodeLens={}));var FormattingOptions;(function(r){function e(A,o){return{tabSize:A,insertSpaces:o}}r.create=e;function n(A){let o=A;return Is.defined(o)&&Is.uinteger(o.tabSize)&&Is.boolean(o.insertSpaces)}r.is=n})(FormattingOptions||(FormattingOptions={}));var DocumentLink;(function(r){function e(A,o,s){return{range:A,target:o,data:s}}r.create=e;function n(A){let o=A;return Is.defined(o)&&Range.is(o.range)&&(Is.undefined(o.target)||Is.string(o.target))}r.is=n})(DocumentLink||(DocumentLink={}));var SelectionRange;(function(r){function e(A,o){return{range:A,parent:o}}r.create=e;function n(A){let o=A;return Is.objectLiteral(o)&&Range.is(o.range)&&(o.parent===void 0||r.is(o.parent))}r.is=n})(SelectionRange||(SelectionRange={}));var SemanticTokenTypes;(function(r){r.namespace="namespace",r.type="type",r.class="class",r.enum="enum",r.interface="interface",r.struct="struct",r.typeParameter="typeParameter",r.parameter="parameter",r.variable="variable",r.property="property",r.enumMember="enumMember",r.event="event",r.function="function",r.method="method",r.macro="macro",r.keyword="keyword",r.modifier="modifier",r.comment="comment",r.string="string",r.number="number",r.regexp="regexp",r.operator="operator",r.decorator="decorator"})(SemanticTokenTypes||(SemanticTokenTypes={}));var SemanticTokenModifiers;(function(r){r.declaration="declaration",r.definition="definition",r.readonly="readonly",r.static="static",r.deprecated="deprecated",r.abstract="abstract",r.async="async",r.modification="modification",r.documentation="documentation",r.defaultLibrary="defaultLibrary"})(SemanticTokenModifiers||(SemanticTokenModifiers={}));var SemanticTokens;(function(r){function e(n){const A=n;return Is.objectLiteral(A)&&(A.resultId===void 0||typeof A.resultId=="string")&&Array.isArray(A.data)&&(A.data.length===0||typeof A.data[0]=="number")}r.is=e})(SemanticTokens||(SemanticTokens={}));var InlineValueText;(function(r){function e(A,o){return{range:A,text:o}}r.create=e;function n(A){const o=A;return o!=null&&Range.is(o.range)&&Is.string(o.text)}r.is=n})(InlineValueText||(InlineValueText={}));var InlineValueVariableLookup;(function(r){function e(A,o,s){return{range:A,variableName:o,caseSensitiveLookup:s}}r.create=e;function n(A){const o=A;return o!=null&&Range.is(o.range)&&Is.boolean(o.caseSensitiveLookup)&&(Is.string(o.variableName)||o.variableName===void 0)}r.is=n})(InlineValueVariableLookup||(InlineValueVariableLookup={}));var InlineValueEvaluatableExpression;(function(r){function e(A,o){return{range:A,expression:o}}r.create=e;function n(A){const o=A;return o!=null&&Range.is(o.range)&&(Is.string(o.expression)||o.expression===void 0)}r.is=n})(InlineValueEvaluatableExpression||(InlineValueEvaluatableExpression={}));var InlineValueContext;(function(r){function e(A,o){return{frameId:A,stoppedLocation:o}}r.create=e;function n(A){const o=A;return Is.defined(o)&&Range.is(A.stoppedLocation)}r.is=n})(InlineValueContext||(InlineValueContext={}));var InlayHintKind;(function(r){r.Type=1,r.Parameter=2;function e(n){return n===1||n===2}r.is=e})(InlayHintKind||(InlayHintKind={}));var InlayHintLabelPart;(function(r){function e(A){return{value:A}}r.create=e;function n(A){const o=A;return Is.objectLiteral(o)&&(o.tooltip===void 0||Is.string(o.tooltip)||MarkupContent.is(o.tooltip))&&(o.location===void 0||Location.is(o.location))&&(o.command===void 0||Command.is(o.command))}r.is=n})(InlayHintLabelPart||(InlayHintLabelPart={}));var InlayHint;(function(r){function e(A,o,s){const a={position:A,label:o};return s!==void 0&&(a.kind=s),a}r.create=e;function n(A){const o=A;return Is.objectLiteral(o)&&Position.is(o.position)&&(Is.string(o.label)||Is.typedArray(o.label,InlayHintLabelPart.is))&&(o.kind===void 0||InlayHintKind.is(o.kind))&&o.textEdits===void 0||Is.typedArray(o.textEdits,TextEdit.is)&&(o.tooltip===void 0||Is.string(o.tooltip)||MarkupContent.is(o.tooltip))&&(o.paddingLeft===void 0||Is.boolean(o.paddingLeft))&&(o.paddingRight===void 0||Is.boolean(o.paddingRight))}r.is=n})(InlayHint||(InlayHint={}));var StringValue;(function(r){function e(n){return{kind:"snippet",value:n}}r.createSnippet=e})(StringValue||(StringValue={}));var InlineCompletionItem;(function(r){function e(n,A,o,s){return{insertText:n,filterText:A,range:o,command:s}}r.create=e})(InlineCompletionItem||(InlineCompletionItem={}));var InlineCompletionList;(function(r){function e(n){return{items:n}}r.create=e})(InlineCompletionList||(InlineCompletionList={}));var InlineCompletionTriggerKind;(function(r){r.Invoked=0,r.Automatic=1})(InlineCompletionTriggerKind||(InlineCompletionTriggerKind={}));var SelectedCompletionInfo;(function(r){function e(n,A){return{range:n,text:A}}r.create=e})(SelectedCompletionInfo||(SelectedCompletionInfo={}));var InlineCompletionContext;(function(r){function e(n,A){return{triggerKind:n,selectedCompletionInfo:A}}r.create=e})(InlineCompletionContext||(InlineCompletionContext={}));var WorkspaceFolder;(function(r){function e(n){const A=n;return Is.objectLiteral(A)&&URI.is(A.uri)&&Is.string(A.name)}r.is=e})(WorkspaceFolder||(WorkspaceFolder={}));const EOL=[`
59
+ `,`\r
60
+ `,"\r"];var TextDocument;(function(r){function e(s,a,l,c){return new FullTextDocument(s,a,l,c)}r.create=e;function n(s){let a=s;return!!(Is.defined(a)&&Is.string(a.uri)&&(Is.undefined(a.languageId)||Is.string(a.languageId))&&Is.uinteger(a.lineCount)&&Is.func(a.getText)&&Is.func(a.positionAt)&&Is.func(a.offsetAt))}r.is=n;function A(s,a){let l=s.getText(),c=o(a,(h,d)=>{let u=h.range.start.line-d.range.start.line;return u===0?h.range.start.character-d.range.start.character:u}),g=l.length;for(let h=c.length-1;h>=0;h--){let d=c[h],u=s.offsetAt(d.range.start),f=s.offsetAt(d.range.end);if(f<=g)l=l.substring(0,u)+d.newText+l.substring(f,l.length);else throw new Error("Overlapping edit");g=u}return l}r.applyEdits=A;function o(s,a){if(s.length<=1)return s;const l=s.length/2|0,c=s.slice(0,l),g=s.slice(l);o(c,a),o(g,a);let h=0,d=0,u=0;for(;h<c.length&&d<g.length;)a(c[h],g[d])<=0?s[u++]=c[h++]:s[u++]=g[d++];for(;h<c.length;)s[u++]=c[h++];for(;d<g.length;)s[u++]=g[d++];return s}})(TextDocument||(TextDocument={}));class FullTextDocument{constructor(e,n,A,o){this._uri=e,this._languageId=n,this._version=A,this._content=o,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),A=this.offsetAt(e.end);return this._content.substring(n,A)}return this._content}update(e,n){this._content=e.text,this._version=n,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],n=this._content,A=!0;for(let o=0;o<n.length;o++){A&&(e.push(o),A=!1);let s=n.charAt(o);A=s==="\r"||s===`
61
+ `,s==="\r"&&o+1<n.length&&n.charAt(o+1)===`
62
+ `&&o++}A&&n.length>0&&e.push(n.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let n=this.getLineOffsets(),A=0,o=n.length;if(o===0)return Position.create(0,e);for(;A<o;){let a=Math.floor((A+o)/2);n[a]>e?o=a:A=a+1}let s=A-1;return Position.create(s,e-n[s])}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let A=n[e.line],o=e.line+1<n.length?n[e.line+1]:this._content.length;return Math.max(Math.min(A+e.character,o),A)}get lineCount(){return this.getLineOffsets().length}}var Is;(function(r){const e=Object.prototype.toString;function n(f){return typeof f<"u"}r.defined=n;function A(f){return typeof f>"u"}r.undefined=A;function o(f){return f===!0||f===!1}r.boolean=o;function s(f){return e.call(f)==="[object String]"}r.string=s;function a(f){return e.call(f)==="[object Number]"}r.number=a;function l(f,I,p){return e.call(f)==="[object Number]"&&I<=f&&f<=p}r.numberRange=l;function c(f){return e.call(f)==="[object Number]"&&-2147483648<=f&&f<=2147483647}r.integer=c;function g(f){return e.call(f)==="[object Number]"&&0<=f&&f<=2147483647}r.uinteger=g;function h(f){return e.call(f)==="[object Function]"}r.func=h;function d(f){return f!==null&&typeof f=="object"}r.objectLiteral=d;function u(f,I){return Array.isArray(f)&&f.every(I)}r.typedArray=u})(Is||(Is={}));const main=Object.freeze(Object.defineProperty({__proto__:null,get AnnotatedTextEdit(){return AnnotatedTextEdit},get ChangeAnnotation(){return ChangeAnnotation},get ChangeAnnotationIdentifier(){return ChangeAnnotationIdentifier},get CodeAction(){return CodeAction},get CodeActionContext(){return CodeActionContext},get CodeActionKind(){return CodeActionKind},get CodeActionTriggerKind(){return CodeActionTriggerKind},get CodeDescription(){return CodeDescription},get CodeLens(){return CodeLens},get Color(){return Color},get ColorInformation(){return ColorInformation},get ColorPresentation(){return ColorPresentation},get Command(){return Command},get CompletionItem(){return CompletionItem},get CompletionItemKind(){return CompletionItemKind},get CompletionItemLabelDetails(){return CompletionItemLabelDetails},get CompletionItemTag(){return CompletionItemTag},get CompletionList(){return CompletionList},get CreateFile(){return CreateFile},get DeleteFile(){return DeleteFile},get Diagnostic(){return Diagnostic},get DiagnosticRelatedInformation(){return DiagnosticRelatedInformation},get DiagnosticSeverity(){return DiagnosticSeverity},get DiagnosticTag(){return DiagnosticTag},get DocumentHighlight(){return DocumentHighlight},get DocumentHighlightKind(){return DocumentHighlightKind},get DocumentLink(){return DocumentLink},get DocumentSymbol(){return DocumentSymbol},get DocumentUri(){return DocumentUri},EOL,get FoldingRange(){return FoldingRange},get FoldingRangeKind(){return FoldingRangeKind},get FormattingOptions(){return FormattingOptions},get Hover(){return Hover},get InlayHint(){return InlayHint},get InlayHintKind(){return InlayHintKind},get InlayHintLabelPart(){return InlayHintLabelPart},get InlineCompletionContext(){return InlineCompletionContext},get InlineCompletionItem(){return InlineCompletionItem},get InlineCompletionList(){return InlineCompletionList},get InlineCompletionTriggerKind(){return InlineCompletionTriggerKind},get InlineValueContext(){return InlineValueContext},get InlineValueEvaluatableExpression(){return InlineValueEvaluatableExpression},get InlineValueText(){return InlineValueText},get InlineValueVariableLookup(){return InlineValueVariableLookup},get InsertReplaceEdit(){return InsertReplaceEdit},get InsertTextFormat(){return InsertTextFormat},get InsertTextMode(){return InsertTextMode},get Location(){return Location},get LocationLink(){return LocationLink},get MarkedString(){return MarkedString},get MarkupContent(){return MarkupContent},get MarkupKind(){return MarkupKind},get OptionalVersionedTextDocumentIdentifier(){return OptionalVersionedTextDocumentIdentifier},get ParameterInformation(){return ParameterInformation},get Position(){return Position},get Range(){return Range},get RenameFile(){return RenameFile},get SelectedCompletionInfo(){return SelectedCompletionInfo},get SelectionRange(){return SelectionRange},get SemanticTokenModifiers(){return SemanticTokenModifiers},get SemanticTokenTypes(){return SemanticTokenTypes},get SemanticTokens(){return SemanticTokens},get SignatureInformation(){return SignatureInformation},get StringValue(){return StringValue},get SymbolInformation(){return SymbolInformation},get SymbolKind(){return SymbolKind},get SymbolTag(){return SymbolTag},get TextDocument(){return TextDocument},get TextDocumentEdit(){return TextDocumentEdit},get TextDocumentIdentifier(){return TextDocumentIdentifier},get TextDocumentItem(){return TextDocumentItem},get TextEdit(){return TextEdit},get URI(){return URI},get VersionedTextDocumentIdentifier(){return VersionedTextDocumentIdentifier},WorkspaceChange,get WorkspaceEdit(){return WorkspaceEdit},get WorkspaceFolder(){return WorkspaceFolder},get WorkspaceSymbol(){return WorkspaceSymbol},get integer(){return integer},get uinteger(){return uinteger}},Symbol.toStringTag,{value:"Module"})),require$$1=getAugmentedNamespace(main);var messages={},hasRequiredMessages;function requireMessages(){if(hasRequiredMessages)return messages;hasRequiredMessages=1,Object.defineProperty(messages,"__esModule",{value:!0}),messages.ProtocolNotificationType=messages.ProtocolNotificationType0=messages.ProtocolRequestType=messages.ProtocolRequestType0=messages.RegistrationType=messages.MessageDirection=void 0;const r=requireMain$1();var e;(function(l){l.clientToServer="clientToServer",l.serverToClient="serverToClient",l.both="both"})(e||(messages.MessageDirection=e={}));class n{constructor(c){this.method=c}}messages.RegistrationType=n;class A extends r.RequestType0{constructor(c){super(c)}}messages.ProtocolRequestType0=A;class o extends r.RequestType{constructor(c){super(c,r.ParameterStructures.byName)}}messages.ProtocolRequestType=o;class s extends r.NotificationType0{constructor(c){super(c)}}messages.ProtocolNotificationType0=s;class a extends r.NotificationType{constructor(c){super(c,r.ParameterStructures.byName)}}return messages.ProtocolNotificationType=a,messages}var protocol={},is={},hasRequiredIs;function requireIs(){if(hasRequiredIs)return is;hasRequiredIs=1,Object.defineProperty(is,"__esModule",{value:!0}),is.objectLiteral=is.typedArray=is.stringArray=is.array=is.func=is.error=is.number=is.string=is.boolean=void 0;function r(g){return g===!0||g===!1}is.boolean=r;function e(g){return typeof g=="string"||g instanceof String}is.string=e;function n(g){return typeof g=="number"||g instanceof Number}is.number=n;function A(g){return g instanceof Error}is.error=A;function o(g){return typeof g=="function"}is.func=o;function s(g){return Array.isArray(g)}is.array=s;function a(g){return s(g)&&g.every(h=>e(h))}is.stringArray=a;function l(g,h){return Array.isArray(g)&&g.every(h)}is.typedArray=l;function c(g){return g!==null&&typeof g=="object"}return is.objectLiteral=c,is}var protocol_implementation={},hasRequiredProtocol_implementation;function requireProtocol_implementation(){if(hasRequiredProtocol_implementation)return protocol_implementation;hasRequiredProtocol_implementation=1,Object.defineProperty(protocol_implementation,"__esModule",{value:!0}),protocol_implementation.ImplementationRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="textDocument/implementation",n.messageDirection=r.MessageDirection.clientToServer,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_implementation.ImplementationRequest=e={})),protocol_implementation}var protocol_typeDefinition={},hasRequiredProtocol_typeDefinition;function requireProtocol_typeDefinition(){if(hasRequiredProtocol_typeDefinition)return protocol_typeDefinition;hasRequiredProtocol_typeDefinition=1,Object.defineProperty(protocol_typeDefinition,"__esModule",{value:!0}),protocol_typeDefinition.TypeDefinitionRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="textDocument/typeDefinition",n.messageDirection=r.MessageDirection.clientToServer,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_typeDefinition.TypeDefinitionRequest=e={})),protocol_typeDefinition}var protocol_workspaceFolder={},hasRequiredProtocol_workspaceFolder;function requireProtocol_workspaceFolder(){if(hasRequiredProtocol_workspaceFolder)return protocol_workspaceFolder;hasRequiredProtocol_workspaceFolder=1,Object.defineProperty(protocol_workspaceFolder,"__esModule",{value:!0}),protocol_workspaceFolder.DidChangeWorkspaceFoldersNotification=protocol_workspaceFolder.WorkspaceFoldersRequest=void 0;const r=requireMessages();var e;(function(A){A.method="workspace/workspaceFolders",A.messageDirection=r.MessageDirection.serverToClient,A.type=new r.ProtocolRequestType0(A.method)})(e||(protocol_workspaceFolder.WorkspaceFoldersRequest=e={}));var n;return(function(A){A.method="workspace/didChangeWorkspaceFolders",A.messageDirection=r.MessageDirection.clientToServer,A.type=new r.ProtocolNotificationType(A.method)})(n||(protocol_workspaceFolder.DidChangeWorkspaceFoldersNotification=n={})),protocol_workspaceFolder}var protocol_configuration={},hasRequiredProtocol_configuration;function requireProtocol_configuration(){if(hasRequiredProtocol_configuration)return protocol_configuration;hasRequiredProtocol_configuration=1,Object.defineProperty(protocol_configuration,"__esModule",{value:!0}),protocol_configuration.ConfigurationRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="workspace/configuration",n.messageDirection=r.MessageDirection.serverToClient,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_configuration.ConfigurationRequest=e={})),protocol_configuration}var protocol_colorProvider={},hasRequiredProtocol_colorProvider;function requireProtocol_colorProvider(){if(hasRequiredProtocol_colorProvider)return protocol_colorProvider;hasRequiredProtocol_colorProvider=1,Object.defineProperty(protocol_colorProvider,"__esModule",{value:!0}),protocol_colorProvider.ColorPresentationRequest=protocol_colorProvider.DocumentColorRequest=void 0;const r=requireMessages();var e;(function(A){A.method="textDocument/documentColor",A.messageDirection=r.MessageDirection.clientToServer,A.type=new r.ProtocolRequestType(A.method)})(e||(protocol_colorProvider.DocumentColorRequest=e={}));var n;return(function(A){A.method="textDocument/colorPresentation",A.messageDirection=r.MessageDirection.clientToServer,A.type=new r.ProtocolRequestType(A.method)})(n||(protocol_colorProvider.ColorPresentationRequest=n={})),protocol_colorProvider}var protocol_foldingRange={},hasRequiredProtocol_foldingRange;function requireProtocol_foldingRange(){if(hasRequiredProtocol_foldingRange)return protocol_foldingRange;hasRequiredProtocol_foldingRange=1,Object.defineProperty(protocol_foldingRange,"__esModule",{value:!0}),protocol_foldingRange.FoldingRangeRefreshRequest=protocol_foldingRange.FoldingRangeRequest=void 0;const r=requireMessages();var e;(function(A){A.method="textDocument/foldingRange",A.messageDirection=r.MessageDirection.clientToServer,A.type=new r.ProtocolRequestType(A.method)})(e||(protocol_foldingRange.FoldingRangeRequest=e={}));var n;return(function(A){A.method="workspace/foldingRange/refresh",A.messageDirection=r.MessageDirection.serverToClient,A.type=new r.ProtocolRequestType0(A.method)})(n||(protocol_foldingRange.FoldingRangeRefreshRequest=n={})),protocol_foldingRange}var protocol_declaration={},hasRequiredProtocol_declaration;function requireProtocol_declaration(){if(hasRequiredProtocol_declaration)return protocol_declaration;hasRequiredProtocol_declaration=1,Object.defineProperty(protocol_declaration,"__esModule",{value:!0}),protocol_declaration.DeclarationRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="textDocument/declaration",n.messageDirection=r.MessageDirection.clientToServer,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_declaration.DeclarationRequest=e={})),protocol_declaration}var protocol_selectionRange={},hasRequiredProtocol_selectionRange;function requireProtocol_selectionRange(){if(hasRequiredProtocol_selectionRange)return protocol_selectionRange;hasRequiredProtocol_selectionRange=1,Object.defineProperty(protocol_selectionRange,"__esModule",{value:!0}),protocol_selectionRange.SelectionRangeRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="textDocument/selectionRange",n.messageDirection=r.MessageDirection.clientToServer,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_selectionRange.SelectionRangeRequest=e={})),protocol_selectionRange}var protocol_progress={},hasRequiredProtocol_progress;function requireProtocol_progress(){if(hasRequiredProtocol_progress)return protocol_progress;hasRequiredProtocol_progress=1,Object.defineProperty(protocol_progress,"__esModule",{value:!0}),protocol_progress.WorkDoneProgressCancelNotification=protocol_progress.WorkDoneProgressCreateRequest=protocol_progress.WorkDoneProgress=void 0;const r=requireMain$1(),e=requireMessages();var n;(function(s){s.type=new r.ProgressType;function a(l){return l===s.type}s.is=a})(n||(protocol_progress.WorkDoneProgress=n={}));var A;(function(s){s.method="window/workDoneProgress/create",s.messageDirection=e.MessageDirection.serverToClient,s.type=new e.ProtocolRequestType(s.method)})(A||(protocol_progress.WorkDoneProgressCreateRequest=A={}));var o;return(function(s){s.method="window/workDoneProgress/cancel",s.messageDirection=e.MessageDirection.clientToServer,s.type=new e.ProtocolNotificationType(s.method)})(o||(protocol_progress.WorkDoneProgressCancelNotification=o={})),protocol_progress}var protocol_callHierarchy={},hasRequiredProtocol_callHierarchy;function requireProtocol_callHierarchy(){if(hasRequiredProtocol_callHierarchy)return protocol_callHierarchy;hasRequiredProtocol_callHierarchy=1,Object.defineProperty(protocol_callHierarchy,"__esModule",{value:!0}),protocol_callHierarchy.CallHierarchyOutgoingCallsRequest=protocol_callHierarchy.CallHierarchyIncomingCallsRequest=protocol_callHierarchy.CallHierarchyPrepareRequest=void 0;const r=requireMessages();var e;(function(o){o.method="textDocument/prepareCallHierarchy",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(e||(protocol_callHierarchy.CallHierarchyPrepareRequest=e={}));var n;(function(o){o.method="callHierarchy/incomingCalls",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(n||(protocol_callHierarchy.CallHierarchyIncomingCallsRequest=n={}));var A;return(function(o){o.method="callHierarchy/outgoingCalls",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(A||(protocol_callHierarchy.CallHierarchyOutgoingCallsRequest=A={})),protocol_callHierarchy}var protocol_semanticTokens={},hasRequiredProtocol_semanticTokens;function requireProtocol_semanticTokens(){if(hasRequiredProtocol_semanticTokens)return protocol_semanticTokens;hasRequiredProtocol_semanticTokens=1,Object.defineProperty(protocol_semanticTokens,"__esModule",{value:!0}),protocol_semanticTokens.SemanticTokensRefreshRequest=protocol_semanticTokens.SemanticTokensRangeRequest=protocol_semanticTokens.SemanticTokensDeltaRequest=protocol_semanticTokens.SemanticTokensRequest=protocol_semanticTokens.SemanticTokensRegistrationType=protocol_semanticTokens.TokenFormat=void 0;const r=requireMessages();var e;(function(l){l.Relative="relative"})(e||(protocol_semanticTokens.TokenFormat=e={}));var n;(function(l){l.method="textDocument/semanticTokens",l.type=new r.RegistrationType(l.method)})(n||(protocol_semanticTokens.SemanticTokensRegistrationType=n={}));var A;(function(l){l.method="textDocument/semanticTokens/full",l.messageDirection=r.MessageDirection.clientToServer,l.type=new r.ProtocolRequestType(l.method),l.registrationMethod=n.method})(A||(protocol_semanticTokens.SemanticTokensRequest=A={}));var o;(function(l){l.method="textDocument/semanticTokens/full/delta",l.messageDirection=r.MessageDirection.clientToServer,l.type=new r.ProtocolRequestType(l.method),l.registrationMethod=n.method})(o||(protocol_semanticTokens.SemanticTokensDeltaRequest=o={}));var s;(function(l){l.method="textDocument/semanticTokens/range",l.messageDirection=r.MessageDirection.clientToServer,l.type=new r.ProtocolRequestType(l.method),l.registrationMethod=n.method})(s||(protocol_semanticTokens.SemanticTokensRangeRequest=s={}));var a;return(function(l){l.method="workspace/semanticTokens/refresh",l.messageDirection=r.MessageDirection.serverToClient,l.type=new r.ProtocolRequestType0(l.method)})(a||(protocol_semanticTokens.SemanticTokensRefreshRequest=a={})),protocol_semanticTokens}var protocol_showDocument={},hasRequiredProtocol_showDocument;function requireProtocol_showDocument(){if(hasRequiredProtocol_showDocument)return protocol_showDocument;hasRequiredProtocol_showDocument=1,Object.defineProperty(protocol_showDocument,"__esModule",{value:!0}),protocol_showDocument.ShowDocumentRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="window/showDocument",n.messageDirection=r.MessageDirection.serverToClient,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_showDocument.ShowDocumentRequest=e={})),protocol_showDocument}var protocol_linkedEditingRange={},hasRequiredProtocol_linkedEditingRange;function requireProtocol_linkedEditingRange(){if(hasRequiredProtocol_linkedEditingRange)return protocol_linkedEditingRange;hasRequiredProtocol_linkedEditingRange=1,Object.defineProperty(protocol_linkedEditingRange,"__esModule",{value:!0}),protocol_linkedEditingRange.LinkedEditingRangeRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="textDocument/linkedEditingRange",n.messageDirection=r.MessageDirection.clientToServer,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_linkedEditingRange.LinkedEditingRangeRequest=e={})),protocol_linkedEditingRange}var protocol_fileOperations={},hasRequiredProtocol_fileOperations;function requireProtocol_fileOperations(){if(hasRequiredProtocol_fileOperations)return protocol_fileOperations;hasRequiredProtocol_fileOperations=1,Object.defineProperty(protocol_fileOperations,"__esModule",{value:!0}),protocol_fileOperations.WillDeleteFilesRequest=protocol_fileOperations.DidDeleteFilesNotification=protocol_fileOperations.DidRenameFilesNotification=protocol_fileOperations.WillRenameFilesRequest=protocol_fileOperations.DidCreateFilesNotification=protocol_fileOperations.WillCreateFilesRequest=protocol_fileOperations.FileOperationPatternKind=void 0;const r=requireMessages();var e;(function(c){c.file="file",c.folder="folder"})(e||(protocol_fileOperations.FileOperationPatternKind=e={}));var n;(function(c){c.method="workspace/willCreateFiles",c.messageDirection=r.MessageDirection.clientToServer,c.type=new r.ProtocolRequestType(c.method)})(n||(protocol_fileOperations.WillCreateFilesRequest=n={}));var A;(function(c){c.method="workspace/didCreateFiles",c.messageDirection=r.MessageDirection.clientToServer,c.type=new r.ProtocolNotificationType(c.method)})(A||(protocol_fileOperations.DidCreateFilesNotification=A={}));var o;(function(c){c.method="workspace/willRenameFiles",c.messageDirection=r.MessageDirection.clientToServer,c.type=new r.ProtocolRequestType(c.method)})(o||(protocol_fileOperations.WillRenameFilesRequest=o={}));var s;(function(c){c.method="workspace/didRenameFiles",c.messageDirection=r.MessageDirection.clientToServer,c.type=new r.ProtocolNotificationType(c.method)})(s||(protocol_fileOperations.DidRenameFilesNotification=s={}));var a;(function(c){c.method="workspace/didDeleteFiles",c.messageDirection=r.MessageDirection.clientToServer,c.type=new r.ProtocolNotificationType(c.method)})(a||(protocol_fileOperations.DidDeleteFilesNotification=a={}));var l;return(function(c){c.method="workspace/willDeleteFiles",c.messageDirection=r.MessageDirection.clientToServer,c.type=new r.ProtocolRequestType(c.method)})(l||(protocol_fileOperations.WillDeleteFilesRequest=l={})),protocol_fileOperations}var protocol_moniker={},hasRequiredProtocol_moniker;function requireProtocol_moniker(){if(hasRequiredProtocol_moniker)return protocol_moniker;hasRequiredProtocol_moniker=1,Object.defineProperty(protocol_moniker,"__esModule",{value:!0}),protocol_moniker.MonikerRequest=protocol_moniker.MonikerKind=protocol_moniker.UniquenessLevel=void 0;const r=requireMessages();var e;(function(o){o.document="document",o.project="project",o.group="group",o.scheme="scheme",o.global="global"})(e||(protocol_moniker.UniquenessLevel=e={}));var n;(function(o){o.$import="import",o.$export="export",o.local="local"})(n||(protocol_moniker.MonikerKind=n={}));var A;return(function(o){o.method="textDocument/moniker",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(A||(protocol_moniker.MonikerRequest=A={})),protocol_moniker}var protocol_typeHierarchy={},hasRequiredProtocol_typeHierarchy;function requireProtocol_typeHierarchy(){if(hasRequiredProtocol_typeHierarchy)return protocol_typeHierarchy;hasRequiredProtocol_typeHierarchy=1,Object.defineProperty(protocol_typeHierarchy,"__esModule",{value:!0}),protocol_typeHierarchy.TypeHierarchySubtypesRequest=protocol_typeHierarchy.TypeHierarchySupertypesRequest=protocol_typeHierarchy.TypeHierarchyPrepareRequest=void 0;const r=requireMessages();var e;(function(o){o.method="textDocument/prepareTypeHierarchy",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(e||(protocol_typeHierarchy.TypeHierarchyPrepareRequest=e={}));var n;(function(o){o.method="typeHierarchy/supertypes",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(n||(protocol_typeHierarchy.TypeHierarchySupertypesRequest=n={}));var A;return(function(o){o.method="typeHierarchy/subtypes",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(A||(protocol_typeHierarchy.TypeHierarchySubtypesRequest=A={})),protocol_typeHierarchy}var protocol_inlineValue={},hasRequiredProtocol_inlineValue;function requireProtocol_inlineValue(){if(hasRequiredProtocol_inlineValue)return protocol_inlineValue;hasRequiredProtocol_inlineValue=1,Object.defineProperty(protocol_inlineValue,"__esModule",{value:!0}),protocol_inlineValue.InlineValueRefreshRequest=protocol_inlineValue.InlineValueRequest=void 0;const r=requireMessages();var e;(function(A){A.method="textDocument/inlineValue",A.messageDirection=r.MessageDirection.clientToServer,A.type=new r.ProtocolRequestType(A.method)})(e||(protocol_inlineValue.InlineValueRequest=e={}));var n;return(function(A){A.method="workspace/inlineValue/refresh",A.messageDirection=r.MessageDirection.serverToClient,A.type=new r.ProtocolRequestType0(A.method)})(n||(protocol_inlineValue.InlineValueRefreshRequest=n={})),protocol_inlineValue}var protocol_inlayHint={},hasRequiredProtocol_inlayHint;function requireProtocol_inlayHint(){if(hasRequiredProtocol_inlayHint)return protocol_inlayHint;hasRequiredProtocol_inlayHint=1,Object.defineProperty(protocol_inlayHint,"__esModule",{value:!0}),protocol_inlayHint.InlayHintRefreshRequest=protocol_inlayHint.InlayHintResolveRequest=protocol_inlayHint.InlayHintRequest=void 0;const r=requireMessages();var e;(function(o){o.method="textDocument/inlayHint",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(e||(protocol_inlayHint.InlayHintRequest=e={}));var n;(function(o){o.method="inlayHint/resolve",o.messageDirection=r.MessageDirection.clientToServer,o.type=new r.ProtocolRequestType(o.method)})(n||(protocol_inlayHint.InlayHintResolveRequest=n={}));var A;return(function(o){o.method="workspace/inlayHint/refresh",o.messageDirection=r.MessageDirection.serverToClient,o.type=new r.ProtocolRequestType0(o.method)})(A||(protocol_inlayHint.InlayHintRefreshRequest=A={})),protocol_inlayHint}var protocol_diagnostic={},hasRequiredProtocol_diagnostic;function requireProtocol_diagnostic(){if(hasRequiredProtocol_diagnostic)return protocol_diagnostic;hasRequiredProtocol_diagnostic=1,Object.defineProperty(protocol_diagnostic,"__esModule",{value:!0}),protocol_diagnostic.DiagnosticRefreshRequest=protocol_diagnostic.WorkspaceDiagnosticRequest=protocol_diagnostic.DocumentDiagnosticRequest=protocol_diagnostic.DocumentDiagnosticReportKind=protocol_diagnostic.DiagnosticServerCancellationData=void 0;const r=requireMain$1(),e=requireIs(),n=requireMessages();var A;(function(c){function g(h){const d=h;return d&&e.boolean(d.retriggerRequest)}c.is=g})(A||(protocol_diagnostic.DiagnosticServerCancellationData=A={}));var o;(function(c){c.Full="full",c.Unchanged="unchanged"})(o||(protocol_diagnostic.DocumentDiagnosticReportKind=o={}));var s;(function(c){c.method="textDocument/diagnostic",c.messageDirection=n.MessageDirection.clientToServer,c.type=new n.ProtocolRequestType(c.method),c.partialResult=new r.ProgressType})(s||(protocol_diagnostic.DocumentDiagnosticRequest=s={}));var a;(function(c){c.method="workspace/diagnostic",c.messageDirection=n.MessageDirection.clientToServer,c.type=new n.ProtocolRequestType(c.method),c.partialResult=new r.ProgressType})(a||(protocol_diagnostic.WorkspaceDiagnosticRequest=a={}));var l;return(function(c){c.method="workspace/diagnostic/refresh",c.messageDirection=n.MessageDirection.serverToClient,c.type=new n.ProtocolRequestType0(c.method)})(l||(protocol_diagnostic.DiagnosticRefreshRequest=l={})),protocol_diagnostic}var protocol_notebook={},hasRequiredProtocol_notebook;function requireProtocol_notebook(){if(hasRequiredProtocol_notebook)return protocol_notebook;hasRequiredProtocol_notebook=1,Object.defineProperty(protocol_notebook,"__esModule",{value:!0}),protocol_notebook.DidCloseNotebookDocumentNotification=protocol_notebook.DidSaveNotebookDocumentNotification=protocol_notebook.DidChangeNotebookDocumentNotification=protocol_notebook.NotebookCellArrayChange=protocol_notebook.DidOpenNotebookDocumentNotification=protocol_notebook.NotebookDocumentSyncRegistrationType=protocol_notebook.NotebookDocument=protocol_notebook.NotebookCell=protocol_notebook.ExecutionSummary=protocol_notebook.NotebookCellKind=void 0;const r=require$$1,e=requireIs(),n=requireMessages();var A;(function(f){f.Markup=1,f.Code=2;function I(p){return p===1||p===2}f.is=I})(A||(protocol_notebook.NotebookCellKind=A={}));var o;(function(f){function I(E,B){const Q={executionOrder:E};return(B===!0||B===!1)&&(Q.success=B),Q}f.create=I;function p(E){const B=E;return e.objectLiteral(B)&&r.uinteger.is(B.executionOrder)&&(B.success===void 0||e.boolean(B.success))}f.is=p;function m(E,B){return E===B?!0:E==null||B===null||B===void 0?!1:E.executionOrder===B.executionOrder&&E.success===B.success}f.equals=m})(o||(protocol_notebook.ExecutionSummary=o={}));var s;(function(f){function I(B,Q){return{kind:B,document:Q}}f.create=I;function p(B){const Q=B;return e.objectLiteral(Q)&&A.is(Q.kind)&&r.DocumentUri.is(Q.document)&&(Q.metadata===void 0||e.objectLiteral(Q.metadata))}f.is=p;function m(B,Q){const w=new Set;return B.document!==Q.document&&w.add("document"),B.kind!==Q.kind&&w.add("kind"),B.executionSummary!==Q.executionSummary&&w.add("executionSummary"),(B.metadata!==void 0||Q.metadata!==void 0)&&!E(B.metadata,Q.metadata)&&w.add("metadata"),(B.executionSummary!==void 0||Q.executionSummary!==void 0)&&!o.equals(B.executionSummary,Q.executionSummary)&&w.add("executionSummary"),w}f.diff=m;function E(B,Q){if(B===Q)return!0;if(B==null||Q===null||Q===void 0||typeof B!=typeof Q||typeof B!="object")return!1;const w=Array.isArray(B),y=Array.isArray(Q);if(w!==y)return!1;if(w&&y){if(B.length!==Q.length)return!1;for(let S=0;S<B.length;S++)if(!E(B[S],Q[S]))return!1}if(e.objectLiteral(B)&&e.objectLiteral(Q)){const S=Object.keys(B),D=Object.keys(Q);if(S.length!==D.length||(S.sort(),D.sort(),!E(S,D)))return!1;for(let _=0;_<S.length;_++){const M=S[_];if(!E(B[M],Q[M]))return!1}}return!0}})(s||(protocol_notebook.NotebookCell=s={}));var a;(function(f){function I(m,E,B,Q){return{uri:m,notebookType:E,version:B,cells:Q}}f.create=I;function p(m){const E=m;return e.objectLiteral(E)&&e.string(E.uri)&&r.integer.is(E.version)&&e.typedArray(E.cells,s.is)}f.is=p})(a||(protocol_notebook.NotebookDocument=a={}));var l;(function(f){f.method="notebookDocument/sync",f.messageDirection=n.MessageDirection.clientToServer,f.type=new n.RegistrationType(f.method)})(l||(protocol_notebook.NotebookDocumentSyncRegistrationType=l={}));var c;(function(f){f.method="notebookDocument/didOpen",f.messageDirection=n.MessageDirection.clientToServer,f.type=new n.ProtocolNotificationType(f.method),f.registrationMethod=l.method})(c||(protocol_notebook.DidOpenNotebookDocumentNotification=c={}));var g;(function(f){function I(m){const E=m;return e.objectLiteral(E)&&r.uinteger.is(E.start)&&r.uinteger.is(E.deleteCount)&&(E.cells===void 0||e.typedArray(E.cells,s.is))}f.is=I;function p(m,E,B){const Q={start:m,deleteCount:E};return B!==void 0&&(Q.cells=B),Q}f.create=p})(g||(protocol_notebook.NotebookCellArrayChange=g={}));var h;(function(f){f.method="notebookDocument/didChange",f.messageDirection=n.MessageDirection.clientToServer,f.type=new n.ProtocolNotificationType(f.method),f.registrationMethod=l.method})(h||(protocol_notebook.DidChangeNotebookDocumentNotification=h={}));var d;(function(f){f.method="notebookDocument/didSave",f.messageDirection=n.MessageDirection.clientToServer,f.type=new n.ProtocolNotificationType(f.method),f.registrationMethod=l.method})(d||(protocol_notebook.DidSaveNotebookDocumentNotification=d={}));var u;return(function(f){f.method="notebookDocument/didClose",f.messageDirection=n.MessageDirection.clientToServer,f.type=new n.ProtocolNotificationType(f.method),f.registrationMethod=l.method})(u||(protocol_notebook.DidCloseNotebookDocumentNotification=u={})),protocol_notebook}var protocol_inlineCompletion={},hasRequiredProtocol_inlineCompletion;function requireProtocol_inlineCompletion(){if(hasRequiredProtocol_inlineCompletion)return protocol_inlineCompletion;hasRequiredProtocol_inlineCompletion=1,Object.defineProperty(protocol_inlineCompletion,"__esModule",{value:!0}),protocol_inlineCompletion.InlineCompletionRequest=void 0;const r=requireMessages();var e;return(function(n){n.method="textDocument/inlineCompletion",n.messageDirection=r.MessageDirection.clientToServer,n.type=new r.ProtocolRequestType(n.method)})(e||(protocol_inlineCompletion.InlineCompletionRequest=e={})),protocol_inlineCompletion}var hasRequiredProtocol;function requireProtocol(){return hasRequiredProtocol||(hasRequiredProtocol=1,(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.WorkspaceSymbolRequest=r.CodeActionResolveRequest=r.CodeActionRequest=r.DocumentSymbolRequest=r.DocumentHighlightRequest=r.ReferencesRequest=r.DefinitionRequest=r.SignatureHelpRequest=r.SignatureHelpTriggerKind=r.HoverRequest=r.CompletionResolveRequest=r.CompletionRequest=r.CompletionTriggerKind=r.PublishDiagnosticsNotification=r.WatchKind=r.RelativePattern=r.FileChangeType=r.DidChangeWatchedFilesNotification=r.WillSaveTextDocumentWaitUntilRequest=r.WillSaveTextDocumentNotification=r.TextDocumentSaveReason=r.DidSaveTextDocumentNotification=r.DidCloseTextDocumentNotification=r.DidChangeTextDocumentNotification=r.TextDocumentContentChangeEvent=r.DidOpenTextDocumentNotification=r.TextDocumentSyncKind=r.TelemetryEventNotification=r.LogMessageNotification=r.ShowMessageRequest=r.ShowMessageNotification=r.MessageType=r.DidChangeConfigurationNotification=r.ExitNotification=r.ShutdownRequest=r.InitializedNotification=r.InitializeErrorCodes=r.InitializeRequest=r.WorkDoneProgressOptions=r.TextDocumentRegistrationOptions=r.StaticRegistrationOptions=r.PositionEncodingKind=r.FailureHandlingKind=r.ResourceOperationKind=r.UnregistrationRequest=r.RegistrationRequest=r.DocumentSelector=r.NotebookCellTextDocumentFilter=r.NotebookDocumentFilter=r.TextDocumentFilter=void 0,r.MonikerRequest=r.MonikerKind=r.UniquenessLevel=r.WillDeleteFilesRequest=r.DidDeleteFilesNotification=r.WillRenameFilesRequest=r.DidRenameFilesNotification=r.WillCreateFilesRequest=r.DidCreateFilesNotification=r.FileOperationPatternKind=r.LinkedEditingRangeRequest=r.ShowDocumentRequest=r.SemanticTokensRegistrationType=r.SemanticTokensRefreshRequest=r.SemanticTokensRangeRequest=r.SemanticTokensDeltaRequest=r.SemanticTokensRequest=r.TokenFormat=r.CallHierarchyPrepareRequest=r.CallHierarchyOutgoingCallsRequest=r.CallHierarchyIncomingCallsRequest=r.WorkDoneProgressCancelNotification=r.WorkDoneProgressCreateRequest=r.WorkDoneProgress=r.SelectionRangeRequest=r.DeclarationRequest=r.FoldingRangeRefreshRequest=r.FoldingRangeRequest=r.ColorPresentationRequest=r.DocumentColorRequest=r.ConfigurationRequest=r.DidChangeWorkspaceFoldersNotification=r.WorkspaceFoldersRequest=r.TypeDefinitionRequest=r.ImplementationRequest=r.ApplyWorkspaceEditRequest=r.ExecuteCommandRequest=r.PrepareRenameRequest=r.RenameRequest=r.PrepareSupportDefaultBehavior=r.DocumentOnTypeFormattingRequest=r.DocumentRangesFormattingRequest=r.DocumentRangeFormattingRequest=r.DocumentFormattingRequest=r.DocumentLinkResolveRequest=r.DocumentLinkRequest=r.CodeLensRefreshRequest=r.CodeLensResolveRequest=r.CodeLensRequest=r.WorkspaceSymbolResolveRequest=void 0,r.InlineCompletionRequest=r.DidCloseNotebookDocumentNotification=r.DidSaveNotebookDocumentNotification=r.DidChangeNotebookDocumentNotification=r.NotebookCellArrayChange=r.DidOpenNotebookDocumentNotification=r.NotebookDocumentSyncRegistrationType=r.NotebookDocument=r.NotebookCell=r.ExecutionSummary=r.NotebookCellKind=r.DiagnosticRefreshRequest=r.WorkspaceDiagnosticRequest=r.DocumentDiagnosticRequest=r.DocumentDiagnosticReportKind=r.DiagnosticServerCancellationData=r.InlayHintRefreshRequest=r.InlayHintResolveRequest=r.InlayHintRequest=r.InlineValueRefreshRequest=r.InlineValueRequest=r.TypeHierarchySupertypesRequest=r.TypeHierarchySubtypesRequest=r.TypeHierarchyPrepareRequest=void 0;const e=requireMessages(),n=require$$1,A=requireIs(),o=requireProtocol_implementation();Object.defineProperty(r,"ImplementationRequest",{enumerable:!0,get:function(){return o.ImplementationRequest}});const s=requireProtocol_typeDefinition();Object.defineProperty(r,"TypeDefinitionRequest",{enumerable:!0,get:function(){return s.TypeDefinitionRequest}});const a=requireProtocol_workspaceFolder();Object.defineProperty(r,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return a.WorkspaceFoldersRequest}}),Object.defineProperty(r,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return a.DidChangeWorkspaceFoldersNotification}});const l=requireProtocol_configuration();Object.defineProperty(r,"ConfigurationRequest",{enumerable:!0,get:function(){return l.ConfigurationRequest}});const c=requireProtocol_colorProvider();Object.defineProperty(r,"DocumentColorRequest",{enumerable:!0,get:function(){return c.DocumentColorRequest}}),Object.defineProperty(r,"ColorPresentationRequest",{enumerable:!0,get:function(){return c.ColorPresentationRequest}});const g=requireProtocol_foldingRange();Object.defineProperty(r,"FoldingRangeRequest",{enumerable:!0,get:function(){return g.FoldingRangeRequest}}),Object.defineProperty(r,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return g.FoldingRangeRefreshRequest}});const h=requireProtocol_declaration();Object.defineProperty(r,"DeclarationRequest",{enumerable:!0,get:function(){return h.DeclarationRequest}});const d=requireProtocol_selectionRange();Object.defineProperty(r,"SelectionRangeRequest",{enumerable:!0,get:function(){return d.SelectionRangeRequest}});const u=requireProtocol_progress();Object.defineProperty(r,"WorkDoneProgress",{enumerable:!0,get:function(){return u.WorkDoneProgress}}),Object.defineProperty(r,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return u.WorkDoneProgressCreateRequest}}),Object.defineProperty(r,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return u.WorkDoneProgressCancelNotification}});const f=requireProtocol_callHierarchy();Object.defineProperty(r,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return f.CallHierarchyIncomingCallsRequest}}),Object.defineProperty(r,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return f.CallHierarchyOutgoingCallsRequest}}),Object.defineProperty(r,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return f.CallHierarchyPrepareRequest}});const I=requireProtocol_semanticTokens();Object.defineProperty(r,"TokenFormat",{enumerable:!0,get:function(){return I.TokenFormat}}),Object.defineProperty(r,"SemanticTokensRequest",{enumerable:!0,get:function(){return I.SemanticTokensRequest}}),Object.defineProperty(r,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return I.SemanticTokensDeltaRequest}}),Object.defineProperty(r,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return I.SemanticTokensRangeRequest}}),Object.defineProperty(r,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return I.SemanticTokensRefreshRequest}}),Object.defineProperty(r,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return I.SemanticTokensRegistrationType}});const p=requireProtocol_showDocument();Object.defineProperty(r,"ShowDocumentRequest",{enumerable:!0,get:function(){return p.ShowDocumentRequest}});const m=requireProtocol_linkedEditingRange();Object.defineProperty(r,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return m.LinkedEditingRangeRequest}});const E=requireProtocol_fileOperations();Object.defineProperty(r,"FileOperationPatternKind",{enumerable:!0,get:function(){return E.FileOperationPatternKind}}),Object.defineProperty(r,"DidCreateFilesNotification",{enumerable:!0,get:function(){return E.DidCreateFilesNotification}}),Object.defineProperty(r,"WillCreateFilesRequest",{enumerable:!0,get:function(){return E.WillCreateFilesRequest}}),Object.defineProperty(r,"DidRenameFilesNotification",{enumerable:!0,get:function(){return E.DidRenameFilesNotification}}),Object.defineProperty(r,"WillRenameFilesRequest",{enumerable:!0,get:function(){return E.WillRenameFilesRequest}}),Object.defineProperty(r,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return E.DidDeleteFilesNotification}}),Object.defineProperty(r,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return E.WillDeleteFilesRequest}});const B=requireProtocol_moniker();Object.defineProperty(r,"UniquenessLevel",{enumerable:!0,get:function(){return B.UniquenessLevel}}),Object.defineProperty(r,"MonikerKind",{enumerable:!0,get:function(){return B.MonikerKind}}),Object.defineProperty(r,"MonikerRequest",{enumerable:!0,get:function(){return B.MonikerRequest}});const Q=requireProtocol_typeHierarchy();Object.defineProperty(r,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return Q.TypeHierarchyPrepareRequest}}),Object.defineProperty(r,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return Q.TypeHierarchySubtypesRequest}}),Object.defineProperty(r,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return Q.TypeHierarchySupertypesRequest}});const w=requireProtocol_inlineValue();Object.defineProperty(r,"InlineValueRequest",{enumerable:!0,get:function(){return w.InlineValueRequest}}),Object.defineProperty(r,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return w.InlineValueRefreshRequest}});const y=requireProtocol_inlayHint();Object.defineProperty(r,"InlayHintRequest",{enumerable:!0,get:function(){return y.InlayHintRequest}}),Object.defineProperty(r,"InlayHintResolveRequest",{enumerable:!0,get:function(){return y.InlayHintResolveRequest}}),Object.defineProperty(r,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return y.InlayHintRefreshRequest}});const S=requireProtocol_diagnostic();Object.defineProperty(r,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return S.DiagnosticServerCancellationData}}),Object.defineProperty(r,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return S.DocumentDiagnosticReportKind}}),Object.defineProperty(r,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return S.DocumentDiagnosticRequest}}),Object.defineProperty(r,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return S.WorkspaceDiagnosticRequest}}),Object.defineProperty(r,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return S.DiagnosticRefreshRequest}});const D=requireProtocol_notebook();Object.defineProperty(r,"NotebookCellKind",{enumerable:!0,get:function(){return D.NotebookCellKind}}),Object.defineProperty(r,"ExecutionSummary",{enumerable:!0,get:function(){return D.ExecutionSummary}}),Object.defineProperty(r,"NotebookCell",{enumerable:!0,get:function(){return D.NotebookCell}}),Object.defineProperty(r,"NotebookDocument",{enumerable:!0,get:function(){return D.NotebookDocument}}),Object.defineProperty(r,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return D.NotebookDocumentSyncRegistrationType}}),Object.defineProperty(r,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return D.DidOpenNotebookDocumentNotification}}),Object.defineProperty(r,"NotebookCellArrayChange",{enumerable:!0,get:function(){return D.NotebookCellArrayChange}}),Object.defineProperty(r,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return D.DidChangeNotebookDocumentNotification}}),Object.defineProperty(r,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return D.DidSaveNotebookDocumentNotification}}),Object.defineProperty(r,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return D.DidCloseNotebookDocumentNotification}});const _=requireProtocol_inlineCompletion();Object.defineProperty(r,"InlineCompletionRequest",{enumerable:!0,get:function(){return _.InlineCompletionRequest}});var M;(function(k){function te(ne){const J=ne;return A.string(J)||A.string(J.language)||A.string(J.scheme)||A.string(J.pattern)}k.is=te})(M||(r.TextDocumentFilter=M={}));var v;(function(k){function te(ne){const J=ne;return A.objectLiteral(J)&&(A.string(J.notebookType)||A.string(J.scheme)||A.string(J.pattern))}k.is=te})(v||(r.NotebookDocumentFilter=v={}));var F;(function(k){function te(ne){const J=ne;return A.objectLiteral(J)&&(A.string(J.notebook)||v.is(J.notebook))&&(J.language===void 0||A.string(J.language))}k.is=te})(F||(r.NotebookCellTextDocumentFilter=F={}));var R;(function(k){function te(ne){if(!Array.isArray(ne))return!1;for(let J of ne)if(!A.string(J)&&!M.is(J)&&!F.is(J))return!1;return!0}k.is=te})(R||(r.DocumentSelector=R={}));var N;(function(k){k.method="client/registerCapability",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolRequestType(k.method)})(N||(r.RegistrationRequest=N={}));var L;(function(k){k.method="client/unregisterCapability",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolRequestType(k.method)})(L||(r.UnregistrationRequest=L={}));var G;(function(k){k.Create="create",k.Rename="rename",k.Delete="delete"})(G||(r.ResourceOperationKind=G={}));var K;(function(k){k.Abort="abort",k.Transactional="transactional",k.TextOnlyTransactional="textOnlyTransactional",k.Undo="undo"})(K||(r.FailureHandlingKind=K={}));var O;(function(k){k.UTF8="utf-8",k.UTF16="utf-16",k.UTF32="utf-32"})(O||(r.PositionEncodingKind=O={}));var oe;(function(k){function te(ne){const J=ne;return J&&A.string(J.id)&&J.id.length>0}k.hasId=te})(oe||(r.StaticRegistrationOptions=oe={}));var j;(function(k){function te(ne){const J=ne;return J&&(J.documentSelector===null||R.is(J.documentSelector))}k.is=te})(j||(r.TextDocumentRegistrationOptions=j={}));var Ae;(function(k){function te(J){const b=J;return A.objectLiteral(b)&&(b.workDoneProgress===void 0||A.boolean(b.workDoneProgress))}k.is=te;function ne(J){const b=J;return b&&A.boolean(b.workDoneProgress)}k.hasWorkDoneProgress=ne})(Ae||(r.WorkDoneProgressOptions=Ae={}));var z;(function(k){k.method="initialize",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(z||(r.InitializeRequest=z={}));var ee;(function(k){k.unknownProtocolVersion=1})(ee||(r.InitializeErrorCodes=ee={}));var ae;(function(k){k.method="initialized",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(ae||(r.InitializedNotification=ae={}));var le;(function(k){k.method="shutdown",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType0(k.method)})(le||(r.ShutdownRequest=le={}));var ge;(function(k){k.method="exit",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType0(k.method)})(ge||(r.ExitNotification=ge={}));var he;(function(k){k.method="workspace/didChangeConfiguration",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(he||(r.DidChangeConfigurationNotification=he={}));var Be;(function(k){k.Error=1,k.Warning=2,k.Info=3,k.Log=4,k.Debug=5})(Be||(r.MessageType=Be={}));var Ce;(function(k){k.method="window/showMessage",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolNotificationType(k.method)})(Ce||(r.ShowMessageNotification=Ce={}));var pe;(function(k){k.method="window/showMessageRequest",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolRequestType(k.method)})(pe||(r.ShowMessageRequest=pe={}));var De;(function(k){k.method="window/logMessage",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolNotificationType(k.method)})(De||(r.LogMessageNotification=De={}));var de;(function(k){k.method="telemetry/event",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolNotificationType(k.method)})(de||(r.TelemetryEventNotification=de={}));var Y;(function(k){k.None=0,k.Full=1,k.Incremental=2})(Y||(r.TextDocumentSyncKind=Y={}));var me;(function(k){k.method="textDocument/didOpen",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(me||(r.DidOpenTextDocumentNotification=me={}));var X;(function(k){function te(J){let b=J;return b!=null&&typeof b.text=="string"&&b.range!==void 0&&(b.rangeLength===void 0||typeof b.rangeLength=="number")}k.isIncremental=te;function ne(J){let b=J;return b!=null&&typeof b.text=="string"&&b.range===void 0&&b.rangeLength===void 0}k.isFull=ne})(X||(r.TextDocumentContentChangeEvent=X={}));var ue;(function(k){k.method="textDocument/didChange",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(ue||(r.DidChangeTextDocumentNotification=ue={}));var be;(function(k){k.method="textDocument/didClose",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(be||(r.DidCloseTextDocumentNotification=be={}));var Ne;(function(k){k.method="textDocument/didSave",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(Ne||(r.DidSaveTextDocumentNotification=Ne={}));var Re;(function(k){k.Manual=1,k.AfterDelay=2,k.FocusOut=3})(Re||(r.TextDocumentSaveReason=Re={}));var ve;(function(k){k.method="textDocument/willSave",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(ve||(r.WillSaveTextDocumentNotification=ve={}));var Me;(function(k){k.method="textDocument/willSaveWaitUntil",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Me||(r.WillSaveTextDocumentWaitUntilRequest=Me={}));var fe;(function(k){k.method="workspace/didChangeWatchedFiles",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolNotificationType(k.method)})(fe||(r.DidChangeWatchedFilesNotification=fe={}));var Fe;(function(k){k.Created=1,k.Changed=2,k.Deleted=3})(Fe||(r.FileChangeType=Fe={}));var Je;(function(k){function te(ne){const J=ne;return A.objectLiteral(J)&&(n.URI.is(J.baseUri)||n.WorkspaceFolder.is(J.baseUri))&&A.string(J.pattern)}k.is=te})(Je||(r.RelativePattern=Je={}));var He;(function(k){k.Create=1,k.Change=2,k.Delete=4})(He||(r.WatchKind=He={}));var qe;(function(k){k.method="textDocument/publishDiagnostics",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolNotificationType(k.method)})(qe||(r.PublishDiagnosticsNotification=qe={}));var Ye;(function(k){k.Invoked=1,k.TriggerCharacter=2,k.TriggerForIncompleteCompletions=3})(Ye||(r.CompletionTriggerKind=Ye={}));var Te;(function(k){k.method="textDocument/completion",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Te||(r.CompletionRequest=Te={}));var Le;(function(k){k.method="completionItem/resolve",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Le||(r.CompletionResolveRequest=Le={}));var Qe;(function(k){k.method="textDocument/hover",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Qe||(r.HoverRequest=Qe={}));var xe;(function(k){k.Invoked=1,k.TriggerCharacter=2,k.ContentChange=3})(xe||(r.SignatureHelpTriggerKind=xe={}));var Ve;(function(k){k.method="textDocument/signatureHelp",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Ve||(r.SignatureHelpRequest=Ve={}));var je;(function(k){k.method="textDocument/definition",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(je||(r.DefinitionRequest=je={}));var Ke;(function(k){k.method="textDocument/references",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Ke||(r.ReferencesRequest=Ke={}));var Ge;(function(k){k.method="textDocument/documentHighlight",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Ge||(r.DocumentHighlightRequest=Ge={}));var $e;(function(k){k.method="textDocument/documentSymbol",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})($e||(r.DocumentSymbolRequest=$e={}));var We;(function(k){k.method="textDocument/codeAction",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(We||(r.CodeActionRequest=We={}));var ze;(function(k){k.method="codeAction/resolve",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(ze||(r.CodeActionResolveRequest=ze={}));var Xe;(function(k){k.method="workspace/symbol",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Xe||(r.WorkspaceSymbolRequest=Xe={}));var Ze;(function(k){k.method="workspaceSymbol/resolve",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Ze||(r.WorkspaceSymbolResolveRequest=Ze={}));var et;(function(k){k.method="textDocument/codeLens",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(et||(r.CodeLensRequest=et={}));var Ie;(function(k){k.method="codeLens/resolve",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Ie||(r.CodeLensResolveRequest=Ie={}));var tt;(function(k){k.method="workspace/codeLens/refresh",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolRequestType0(k.method)})(tt||(r.CodeLensRefreshRequest=tt={}));var nt;(function(k){k.method="textDocument/documentLink",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(nt||(r.DocumentLinkRequest=nt={}));var ke;(function(k){k.method="documentLink/resolve",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(ke||(r.DocumentLinkResolveRequest=ke={}));var it;(function(k){k.method="textDocument/formatting",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(it||(r.DocumentFormattingRequest=it={}));var _e;(function(k){k.method="textDocument/rangeFormatting",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(_e||(r.DocumentRangeFormattingRequest=_e={}));var rt;(function(k){k.method="textDocument/rangesFormatting",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(rt||(r.DocumentRangesFormattingRequest=rt={}));var ye;(function(k){k.method="textDocument/onTypeFormatting",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(ye||(r.DocumentOnTypeFormattingRequest=ye={}));var we;(function(k){k.Identifier=1})(we||(r.PrepareSupportDefaultBehavior=we={}));var At;(function(k){k.method="textDocument/rename",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(At||(r.RenameRequest=At={}));var ot;(function(k){k.method="textDocument/prepareRename",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(ot||(r.PrepareRenameRequest=ot={}));var Se;(function(k){k.method="workspace/executeCommand",k.messageDirection=e.MessageDirection.clientToServer,k.type=new e.ProtocolRequestType(k.method)})(Se||(r.ExecuteCommandRequest=Se={}));var Pe;(function(k){k.method="workspace/applyEdit",k.messageDirection=e.MessageDirection.serverToClient,k.type=new e.ProtocolRequestType("workspace/applyEdit")})(Pe||(r.ApplyWorkspaceEditRequest=Pe={}))})(protocol)),protocol}var connection={},hasRequiredConnection;function requireConnection(){if(hasRequiredConnection)return connection;hasRequiredConnection=1,Object.defineProperty(connection,"__esModule",{value:!0}),connection.createProtocolConnection=void 0;const r=requireMain$1();function e(n,A,o,s){return r.ConnectionStrategy.is(s)&&(s={connectionStrategy:s}),(0,r.createMessageConnection)(n,A,o,s)}return connection.createProtocolConnection=e,connection}var hasRequiredApi;function requireApi(){return hasRequiredApi||(hasRequiredApi=1,(function(r){var e=api&&api.__createBinding||(Object.create?(function(s,a,l,c){c===void 0&&(c=l);var g=Object.getOwnPropertyDescriptor(a,l);(!g||("get"in g?!a.__esModule:g.writable||g.configurable))&&(g={enumerable:!0,get:function(){return a[l]}}),Object.defineProperty(s,c,g)}):(function(s,a,l,c){c===void 0&&(c=l),s[c]=a[l]})),n=api&&api.__exportStar||function(s,a){for(var l in s)l!=="default"&&!Object.prototype.hasOwnProperty.call(a,l)&&e(a,s,l)};Object.defineProperty(r,"__esModule",{value:!0}),r.LSPErrorCodes=r.createProtocolConnection=void 0,n(requireMain$1(),r),n(require$$1,r),n(requireMessages(),r),n(requireProtocol(),r);var A=requireConnection();Object.defineProperty(r,"createProtocolConnection",{enumerable:!0,get:function(){return A.createProtocolConnection}});var o;(function(s){s.lspReservedErrorRangeStart=-32899,s.RequestFailed=-32803,s.ServerCancelled=-32802,s.ContentModified=-32801,s.RequestCancelled=-32800,s.lspReservedErrorRangeEnd=-32800})(o||(r.LSPErrorCodes=o={}))})(api)),api}var hasRequiredMain;function requireMain(){return hasRequiredMain||(hasRequiredMain=1,(function(r){var e=main$2&&main$2.__createBinding||(Object.create?(function(s,a,l,c){c===void 0&&(c=l);var g=Object.getOwnPropertyDescriptor(a,l);(!g||("get"in g?!a.__esModule:g.writable||g.configurable))&&(g={enumerable:!0,get:function(){return a[l]}}),Object.defineProperty(s,c,g)}):(function(s,a,l,c){c===void 0&&(c=l),s[c]=a[l]})),n=main$2&&main$2.__exportStar||function(s,a){for(var l in s)l!=="default"&&!Object.prototype.hasOwnProperty.call(a,l)&&e(a,s,l)};Object.defineProperty(r,"__esModule",{value:!0}),r.createProtocolConnection=void 0;const A=requireBrowser();n(requireBrowser(),r),n(requireApi(),r);function o(s,a,l,c){return(0,A.createMessageConnection)(s,a,l,c)}r.createProtocolConnection=o})(main$2)),main$2}var mainExports=requireMain();function serverCompletion(r={}){let e;if(r.override)e=[autocompletion({override:[serverCompletionSource]})];else{const n=[{autocomplete:serverCompletionSource}];e=[autocompletion(),EditorState.languageData.of(()=>n)]}return r.validFor&&e.push(completionConfig.of({validFor:r.validFor})),e}const completionConfig=Facet.define({combine:r=>r.length?r[0]:{validFor:null}});async function getCompletions(r,e,n,A){const o=r.extensionLsp.getClient(r.lang);if(!o)return[];o.hasCapability("completionProvider"),o.sync();const s={position:r.toPosition(e),textDocument:{uri:r.uri},context:n};return A&&A.addEventListener("abort",()=>o.cancelRequest(s)),await o.request("textDocument/completion",s)}function prefixRegexp(r){let e=Math.ceil(r.length/50),n=[];for(let A=0;A<r.length;A+=e){let o=r[A],s=o.textEdit?.newText||o.textEditText||o.insertText||o.label;if(!/^\w/.test(s)){let a=/^[^\w]*/.exec(s)[0];n.indexOf(a)<0&&n.push(a)}}return n.length?new RegExp("^(?:"+n.map(RegExp.escape||(A=>A.replace(/[^\w\s]/g,"\\$&"))).join("|")+")?\\w*$"):/^\w*$/}const serverCompletionSource=async r=>{const e=r.view&&LSPPlugin.get(r.view);if(!e)return null;let n="";if(!r.explicit){n=r.view.state.sliceDoc(r.pos-1,r.pos);const A=e.extensionLsp.getClient(e.lang);if(!A)return null;const o=A.serverCapabilities?.completionProvider?.triggerCharacters;if(!/[a-zA-Z_]/.test(n)&&!(o&&o.indexOf(n)>-1))return null}try{let A=await getCompletions(e,r.pos,{triggerCharacter:n,triggerKind:r.explicit?mainExports.CompletionTriggerKind.Invoked:mainExports.CompletionTriggerKind.TriggerCharacter},r);if(!A)return null;Array.isArray(A)&&(A={items:A});const{from:o,to:s}=completionResultRange(r,A),a=A.itemDefaults?.commitCharacters,l=r.state.facet(completionConfig),c=A.items.map(g=>{let h=g.textEdit?.newText||g.textEditText||g.insertText||g.label,d={label:h,type:g.kind&&kindToType[g.kind]};return g.commitCharacters&&g.commitCharacters!=a&&(d.commitCharacters=g.commitCharacters),g.detail&&(d.detail=g.detail),g.insertTextFormat==2&&(d.apply=(u,f,I,p)=>snippet(h)(u,f,I,p),d.label=g.label),g.documentation&&(d.info=()=>renderDocInfo(e,g.documentation)),d});return{from:o,to:s,options:c,commitCharacters:a,validFor:l.validFor??prefixRegexp(A.items),map:(g,h)=>({...g,from:h.mapPos(g.from)})}}catch(A){if("code"in A&&A.code==-32800)return null;throw A}};function completionResultRange(r,e){if(!e.items.length)return{from:r.pos,to:r.pos};const n=e.itemDefaults?.editRange,A=e.items[0],o=n?"insert"in n?n.insert:n:A.textEdit?"range"in A.textEdit?A.textEdit.range:A.textEdit.insert:null;if(!o)return r.state.wordAt(r.pos)||{from:r.pos,to:r.pos};const s=r.state.doc.lineAt(r.pos);return{from:s.from+o.start.character,to:s.from+o.end.character}}function renderDocInfo(r,e){let n=document.createElement("div");return n.className="cm-lsp-documentation cm-lsp-completion-documentation",n.innerHTML=r.docToHTML(e),n}const kindToType={1:"text",2:"method",3:"function",4:"class",5:"property",6:"variable",7:"class",8:"interface",9:"namespace",10:"property",11:"keyword",12:"constant",13:"constant",14:"keyword",16:"constant",20:"constant",21:"constant",22:"class",25:"type"};function hoverTooltips(r={}){return hoverTooltip(lspTooltipSource,{hideOn:e=>e.docChanged,hoverTime:r.hoverTime})}function hoverRequest(r,e){const n=r.getClient();return n?.hasCapability("hoverProvider")===!1?Promise.resolve(null):(n?.sync(),n?.request("textDocument/hover",{position:r.toPosition(e),textDocument:{uri:r.uri}}))}function lspTooltipSource(r,e){const n=LSPPlugin.get(r);return n?hoverRequest(n,e).then(A=>A?{pos:A.range?fromPosition(r.state.doc,A.range.start):e,end:A.range?fromPosition(r.state.doc,A.range.end):e,create(){let o=document.createElement("div");return o.className="cm-lsp-hover-tooltip cm-lsp-documentation",o.innerHTML=renderTooltipContent(n,A.contents),{dom:o}},above:!0}:null):Promise.resolve(null)}function renderTooltipContent(r,e){return Array.isArray(e)?e.map(n=>renderCode(r,n)).join("<br>"):typeof e=="string"||typeof e=="object"&&"language"in e?renderCode(r,e):r.docToHTML(e)}function renderCode(r,e){if(typeof e=="string")return r.docToHTML(e,"markdown");let{language:n,value:A}=e;return r.docToHTML(A,"plaintext")}function languageServerExtensions(){return[serverCompletion(),hoverTooltips(),keymap.of([])]}const themeCallbacks=[];class CodeMirrorBlockNodeView{constructor(e,n,A,o,s){this.node=e,this.view=n,this.getPos=A,this.settings=o,this.editor=s,this.uri="file:///"+Math.random()+".ts",this.updating=!1;const a=document.createElement("div");this.dom=a,a.className="codeblock-root",this.languageConf=new Compartment;const l=new Compartment,c=()=>{const I=[],p=new RemoteSyncConfig(()=>this.node,A,s);return I.push(remoteSyncFacet.of(p)),I.push(yRemoteSelectionsTheme,yRemoteSelections),I},g=[EditorState.readOnly.of(!!o.readOnly),EditorView.editable.of(!o.readOnly),lineNumbers(),highlightActiveLineGutter(),foldGutter(),bracketMatching(),closeBrackets(),rectangularSelection(),drawSelection({cursorBlinkRate:1e3}),syntaxHighlighting(defaultHighlightStyle,{fallback:!0}),this.languageConf.of([]),indentOnInput(),keymap.of([{key:"Mod-d",run:selectNextOccurrence,preventDefault:!0},{key:"ArrowUp",run:I=>maybeEscape("line",-1,I,n,A)},{key:"ArrowLeft",run:I=>maybeEscape("char",-1,I,n,A)},{key:"ArrowDown",run:I=>maybeEscape("line",1,I,n,A)},{key:"ArrowRight",run:I=>maybeEscape("char",1,I,n,A)},{key:"Ctrl-Enter",run:()=>s.run.exitCode()?(n.focus(),!0):!1},{key:"Mod-z",run:()=>o.undo?.(n.state,n.dispatch)||!0,shift:()=>o.redo?.(n.state,n.dispatch)||!0},{key:"Mod-y",run:()=>o.redo?.(n.state,n.dispatch)||!0},{key:"Backspace",run:I=>backspaceHandler(n,I,s)},{key:"Mod-Backspace",run:I=>backspaceHandler(n,I,s)},{key:"Mod-a",run:()=>{const I=s.run.selectAll();return n.focus(),I}},...defaultKeymap,...foldKeymap,...closeBracketsKeymap,...completionKeymap,indentWithTab,{key:"Ctrl-`",run:()=>(s.chain().toggleDevToolkit().run(),!0)}]),...o.theme?o.theme:[],l.of([]),c()],h=s.getExtension("lsp");if(h){const I=new LSPExtension({getPos:this.getPos,extensions:languageServerExtensions()});g.push(I.plugin(h,s))}else{const I=[{label:"console.log",type:"function"},{label:"const",type:"keyword"},{label:"let",type:"keyword"},{label:"var",type:"keyword"},{label:"function",type:"keyword"}],p=m=>{let E=m.matchBefore(/\w*/);return!E||E.from==E.to&&!m.explicit?null:{from:E.from,options:I}};g.push(autocompletion({override:[p]}))}const d=EditorState.create({extensions:g,doc:e.textContent}),u=s.view&&"root"in s.view?s.view.root:document||document;this.codeMirrorView=new EditorView({state:d,root:u,dispatch:I=>{if(this.codeMirrorView.update([I]),!this.updating){const p=I.state.toJSON().doc;valueChanged(p,this.node,A,n),forwardSelection(this.codeMirrorView,n,A);const m=LSPPlugin.get(this.codeMirrorView);m&&m.update()}}}),a.append(this.codeMirrorView.dom),Array.isArray(o.languageWhitelist)&&o.languageWhitelist.length===1||(this.selectDeleteCB=o.createSelect(o,a,e,n,A)),this.createCopyButtonCB=o.createCopyButton(o,a,e,n,this.codeMirrorView,A),setMode(e.attrs.lang,this.codeMirrorView,o,this.languageConf);const f=o.getCurrentTheme?.();setTheme(this.codeMirrorView,l,[o.themes.find(I=>I.name===f)]),this.updateTheme=I=>{setTheme(this.codeMirrorView,l,[o.themes.find(p=>p.name===I)])},themeCallbacks.push(this.updateTheme)}updateTheme(e){throw new Error("Method not implemented.")}selectNode(){this.codeMirrorView.focus()}stopEvent(e){return this.settings.stopEvent(e,this.node,this.getPos,this.view,this.dom)}setSelection(e,n){this.codeMirrorView.focus(),this.updating=!0,this.codeMirrorView.dispatch({selection:{anchor:e,head:n}}),this.updating=!1}update(e,n,A){if(A.forEachSet(a=>a.find().map(l=>{})),e.type.name!==this.node.type.name)return!1;e.attrs.lang!==this.node.attrs.lang&&setMode(e.attrs.lang,this.codeMirrorView,this.settings,this.languageConf);const o=this.node;this.node=e;const s=computeChange(this.codeMirrorView.state.doc.toString(),this.node.textContent);return s&&(this.updating=!0,this.codeMirrorView.dispatch({changes:{from:s.from,to:s.to,insert:s.text},selection:{anchor:s.from+s.text.length}}),this.updating=!1),this.settings.updateSelect(this.settings,this.dom,e,this.view,this.getPos,o),!0}ignoreMutation(){return!0}destroy(){this.selectDeleteCB&&this.selectDeleteCB(),this.createCopyButtonCB(),themeCallbacks.splice(themeCallbacks.indexOf(this.updateTheme),1)}}const codeMirrorBlockNodeView=(r,e)=>(n,A,o)=>new CodeMirrorBlockNodeView(n,A,o,r,e),defaultCreateSelect=(r,e,n,A,o)=>{if(!r.languageLoaders)return()=>{};const{languageLoaders:s}=r,a=document.createElement("select");a.className="codeblock-select";const l=document.createElement("option");return l.value="none",l.textContent=r.languageNameMap?.none||"none",a.append(l),Object.keys(s).sort().forEach(c=>{if(r.languageWhitelist&&!r.languageWhitelist.includes(c))return;const g=document.createElement("option");g.value=c,g.textContent=r.languageNameMap?.[c]||c,a.append(g)}),a.value=n.attrs.lang||"none",e.prepend(a),a.onchange=c=>{if(!(c.target instanceof HTMLSelectElement))return;const g=c.target.value,h=o();h&&A.dispatch(A.state.tr.setNodeMarkup(h,void 0,{...n.attrs,lang:g}))},()=>{}},defaultUpdateSelect=(r,e,n,A,o,s)=>{if(s.attrs.lang!==n.attrs.lang){const a=e.querySelector(".codeblock-select");if(!(a instanceof HTMLSelectElement))return;a.value=n.attrs.lang||"none"}},defaultStopEvent=()=>!0,defaultSettings={createSelect:defaultCreateSelect,updateSelect:defaultUpdateSelect,createCopyButton:()=>()=>{},stopEvent:defaultStopEvent,readOnly:!1,themes:[]};var CodeBlockLanguages=(r=>(r.javascript="javascript",r.html="html",r.css="css",r.sql="sql",r.python="python",r.rust="rust",r.xml="xml",r.json="json",r.markdown="markdown",r.java="java",r.cpp="cpp",r.lezer="lezer",r.php="php",r.wast="wast",r))(CodeBlockLanguages||{}),LegacyLanguages=(r=>(r.apl="apl",r.asciiarmor="asciiarmor",r.asn1="asn1",r.asterisk="asterisk",r.brainfuck="brainfuck",r.clike="clike",r.clojure="clojure",r.cmake="cmake",r.cobol="cobol",r.coffeescript="coffeescript",r.commonlisp="commonlisp",r.crystal="crystal",r.cypher="cypher",r.d="d",r.diff="diff",r.dockerfile="dockerfile",r.dtd="dtd",r.dylan="dylan",r.ebnf="ebnf",r.ecl="ecl",r.eiffel="eiffel",r.elm="elm",r.erlang="erlang",r.factor="factor",r.fcl="fcl",r.forth="forth",r.fortran="fortran",r.gas="gas",r.gherkin="gherkin",r.go="go",r.groovy="groovy",r.haskell="haskell",r.haxe="haxe",r.http="http",r.idl="idl",r.jinja2="jinja2",r.julia="julia",r.livescript="livescript",r.lua="lua",r.mathematica="mathematica",r.mbox="mbox",r.mirc="mirc",r.mllike="mllike",r.modelica="modelica",r.mscgen="mscgen",r.mumps="mumps",r.nginx="nginx",r.nsis="nsis",r.ntriples="ntriples",r.octave="octave",r.oz="oz",r.pascal="pascal",r.perl="perl",r.pig="pig",r.powershell="powershell",r.properties="properties",r.protobuf="protobuf",r.puppet="puppet",r.q="q",r.r="r",r.rpm="rpm",r.ruby="ruby",r.sas="sas",r.scheme="scheme",r.shell="shell",r.smalltalk="smalltalk",r.solr="solr",r.sparql="sparql",r.spreadsheet="spreadsheet",r.stex="stex",r.stylus="stylus",r.swift="swift",r.tcl="tcl",r.textile="textile",r.tiddlywiki="tiddlywiki",r.tiki="tiki",r.toml="toml",r.troff="troff",r.ttcn="ttcn",r.turtle="turtle",r.vb="vb",r.vbscript="vbscript",r.velocity="velocity",r.verilog="verilog",r.vhdl="vhdl",r.webidl="webidl",r.xquery="xquery",r.yacas="yacas",r.yaml="yaml",r.z80="z80",r))(LegacyLanguages||{});const languageLoaders={[CodeBlockLanguages.cpp]:()=>Promise.resolve().then(()=>require("./index-DrcgAFmA.cjs")).then(r=>r.cpp()),[CodeBlockLanguages.css]:()=>Promise.resolve().then(()=>require("./index-CyBPZa0P.cjs")).then(r=>r.css()),[CodeBlockLanguages.html]:()=>Promise.resolve().then(()=>require("./index-BM1M1odH.cjs")).then(r=>r.html()),[CodeBlockLanguages.php]:()=>Promise.resolve().then(()=>require("./index-CGBef3o0.cjs")).then(r=>r.php()),[CodeBlockLanguages.sql]:()=>Promise.resolve().then(()=>require("./index-Q_Zb1k3Q.cjs")).then(r=>r.sql()),[CodeBlockLanguages.xml]:()=>Promise.resolve().then(()=>require("./index-BbDn6ZIh.cjs")).then(r=>r.xml()),[CodeBlockLanguages.javascript]:()=>Promise.resolve().then(()=>require("./index-C9W9M3MS.cjs")).then(r=>r.javascript()),[CodeBlockLanguages.java]:()=>Promise.resolve().then(()=>require("./index-Ci0l84XA.cjs")).then(r=>r.java()),[CodeBlockLanguages.json]:()=>Promise.resolve().then(()=>require("./index-Cn7327bN.cjs")).then(r=>r.json()),[CodeBlockLanguages.lezer]:()=>Promise.resolve().then(()=>require("./index-BSk5Azep.cjs")).then(r=>r.lezer()),[CodeBlockLanguages.markdown]:()=>Promise.resolve().then(()=>require("./index-CLO3D828.cjs")).then(r=>r.markdown()),[CodeBlockLanguages.python]:()=>Promise.resolve().then(()=>require("./index-BxzrOAhL.cjs")).then(r=>r.python()),[CodeBlockLanguages.rust]:()=>Promise.resolve().then(()=>require("./index-BdZNqjwb.cjs")).then(r=>r.rust()),[CodeBlockLanguages.wast]:()=>Promise.resolve().then(()=>require("./index-Dgahr09W.cjs")).then(r=>r.wast())},legacyLanguageLoaders={[LegacyLanguages.apl]:()=>Promise.resolve().then(()=>require("./apl-M-DNMvvR.cjs")).then(({apl:r})=>StreamLanguage.define(r)),[LegacyLanguages.asciiarmor]:()=>Promise.resolve().then(()=>require("./asciiarmor-BMx3XVjX.cjs")).then(({asciiArmor:r})=>StreamLanguage.define(r)),[LegacyLanguages.asn1]:()=>Promise.resolve().then(()=>require("./asn1-OOsVM4yU.cjs")).then(({asn1:r})=>StreamLanguage.define(r)),[LegacyLanguages.asterisk]:()=>Promise.resolve().then(()=>require("./asterisk-B1QUaW1C.cjs")).then(({asterisk:r})=>StreamLanguage.define(r)),[LegacyLanguages.brainfuck]:()=>Promise.resolve().then(()=>require("./brainfuck-BjUlYKdF.cjs")).then(({brainfuck:r})=>StreamLanguage.define(r)),[LegacyLanguages.clike]:()=>Promise.resolve().then(()=>require("./clike-DLHgOXgk.cjs")).then(({clike:r})=>StreamLanguage.define(r)),[LegacyLanguages.clojure]:()=>Promise.resolve().then(()=>require("./clojure-Ap_IXD2I.cjs")).then(({clojure:r})=>StreamLanguage.define(r)),[LegacyLanguages.cmake]:()=>Promise.resolve().then(()=>require("./cmake-C4D5_VmS.cjs")).then(({cmake:r})=>StreamLanguage.define(r)),[LegacyLanguages.cobol]:()=>Promise.resolve().then(()=>require("./cobol-Du-cT2hr.cjs")).then(({cobol:r})=>StreamLanguage.define(r)),[LegacyLanguages.coffeescript]:()=>Promise.resolve().then(()=>require("./coffeescript-DDFAj2ea.cjs")).then(({coffeeScript:r})=>StreamLanguage.define(r)),[LegacyLanguages.commonlisp]:()=>Promise.resolve().then(()=>require("./commonlisp-CXBBRCTx.cjs")).then(({commonLisp:r})=>StreamLanguage.define(r)),[LegacyLanguages.crystal]:()=>Promise.resolve().then(()=>require("./crystal-DAFWRDbh.cjs")).then(({crystal:r})=>StreamLanguage.define(r)),[LegacyLanguages.cypher]:()=>Promise.resolve().then(()=>require("./cypher-BN0-oCze.cjs")).then(({cypher:r})=>StreamLanguage.define(r)),[LegacyLanguages.d]:()=>Promise.resolve().then(()=>require("./d-BHsqGcfm.cjs")).then(({d:r})=>StreamLanguage.define(r)),[LegacyLanguages.diff]:()=>Promise.resolve().then(()=>require("./diff-CemTHKfk.cjs")).then(({diff:r})=>StreamLanguage.define(r)),[LegacyLanguages.dockerfile]:()=>Promise.resolve().then(()=>require("./dockerfile-BBTH3voH.cjs")).then(({dockerFile:r})=>StreamLanguage.define(r)),[LegacyLanguages.dtd]:()=>Promise.resolve().then(()=>require("./dtd-ChoVQPwv.cjs")).then(({dtd:r})=>StreamLanguage.define(r)),[LegacyLanguages.dylan]:()=>Promise.resolve().then(()=>require("./dylan-apTQIgUA.cjs")).then(({dylan:r})=>StreamLanguage.define(r)),[LegacyLanguages.ebnf]:()=>Promise.resolve().then(()=>require("./ebnf-LYmLy17h.cjs")).then(({ebnf:r})=>StreamLanguage.define(r)),[LegacyLanguages.ecl]:()=>Promise.resolve().then(()=>require("./ecl-C7WNQq7-.cjs")).then(({ecl:r})=>StreamLanguage.define(r)),[LegacyLanguages.eiffel]:()=>Promise.resolve().then(()=>require("./eiffel-BJThA8RG.cjs")).then(({eiffel:r})=>StreamLanguage.define(r)),[LegacyLanguages.elm]:()=>Promise.resolve().then(()=>require("./elm-CcXP9T36.cjs")).then(({elm:r})=>StreamLanguage.define(r)),[LegacyLanguages.erlang]:()=>Promise.resolve().then(()=>require("./erlang-B6mpcObI.cjs")).then(({erlang:r})=>StreamLanguage.define(r)),[LegacyLanguages.factor]:()=>Promise.resolve().then(()=>require("./factor-B-tsx9yW.cjs")).then(({factor:r})=>StreamLanguage.define(r)),[LegacyLanguages.fcl]:()=>Promise.resolve().then(()=>require("./fcl-BzAKklXo.cjs")).then(({fcl:r})=>StreamLanguage.define(r)),[LegacyLanguages.forth]:()=>Promise.resolve().then(()=>require("./forth-CPAzyZ_n.cjs")).then(({forth:r})=>StreamLanguage.define(r)),[LegacyLanguages.fortran]:()=>Promise.resolve().then(()=>require("./fortran-DHiTlGV1.cjs")).then(({fortran:r})=>StreamLanguage.define(r)),[LegacyLanguages.gas]:()=>Promise.resolve().then(()=>require("./gas-BiPtGF2E.cjs")).then(({gas:r})=>StreamLanguage.define(r)),[LegacyLanguages.gherkin]:()=>Promise.resolve().then(()=>require("./gherkin-Djo7Y51D.cjs")).then(({gherkin:r})=>StreamLanguage.define(r)),[LegacyLanguages.go]:()=>Promise.resolve().then(()=>require("./go-BgtlNyKc.cjs")).then(({go:r})=>StreamLanguage.define(r)),[LegacyLanguages.groovy]:()=>Promise.resolve().then(()=>require("./groovy-BMVITiCm.cjs")).then(({groovy:r})=>StreamLanguage.define(r)),[LegacyLanguages.haskell]:()=>Promise.resolve().then(()=>require("./haskell-C46lNFBv.cjs")).then(({haskell:r})=>StreamLanguage.define(r)),[LegacyLanguages.haxe]:()=>Promise.resolve().then(()=>require("./haxe-G9XvbXZx.cjs")).then(({haxe:r})=>StreamLanguage.define(r)),[LegacyLanguages.http]:()=>Promise.resolve().then(()=>require("./http-BkLifcnL.cjs")).then(({http:r})=>StreamLanguage.define(r)),[LegacyLanguages.idl]:()=>Promise.resolve().then(()=>require("./idl-FmHDmsE-.cjs")).then(({idl:r})=>StreamLanguage.define(r)),[LegacyLanguages.jinja2]:()=>Promise.resolve().then(()=>require("./jinja2-wbVbDTNi.cjs")).then(({jinja2:r})=>StreamLanguage.define(r)),[LegacyLanguages.julia]:()=>Promise.resolve().then(()=>require("./julia-DA67Qw9E.cjs")).then(({julia:r})=>StreamLanguage.define(r)),[LegacyLanguages.livescript]:()=>Promise.resolve().then(()=>require("./livescript-Bg3URadp.cjs")).then(({liveScript:r})=>StreamLanguage.define(r)),[LegacyLanguages.lua]:()=>Promise.resolve().then(()=>require("./lua-CIsxjGwi.cjs")).then(({lua:r})=>StreamLanguage.define(r)),[LegacyLanguages.mathematica]:()=>Promise.resolve().then(()=>require("./mathematica-BG089QIc.cjs")).then(({mathematica:r})=>StreamLanguage.define(r)),[LegacyLanguages.mbox]:()=>Promise.resolve().then(()=>require("./mbox-CySolFFZ.cjs")).then(({mbox:r})=>StreamLanguage.define(r)),[LegacyLanguages.mirc]:()=>Promise.resolve().then(()=>require("./mirc-BfqEffzk.cjs")).then(({mirc:r})=>StreamLanguage.define(r)),[LegacyLanguages.mllike]:()=>Promise.resolve().then(()=>require("./mllike-CBK_zjnT.cjs")).then(({oCaml:r})=>StreamLanguage.define(r)),[LegacyLanguages.modelica]:()=>Promise.resolve().then(()=>require("./modelica-B6Zhcb-M.cjs")).then(({modelica:r})=>StreamLanguage.define(r)),[LegacyLanguages.mscgen]:()=>Promise.resolve().then(()=>require("./mscgen-B_Dg_s1G.cjs")).then(({mscgen:r})=>StreamLanguage.define(r)),[LegacyLanguages.mumps]:()=>Promise.resolve().then(()=>require("./mumps-wfyQdxSu.cjs")).then(({mumps:r})=>StreamLanguage.define(r)),[LegacyLanguages.nginx]:()=>Promise.resolve().then(()=>require("./nginx-CwqyBUfA.cjs")).then(({nginx:r})=>StreamLanguage.define(r)),[LegacyLanguages.nsis]:()=>Promise.resolve().then(()=>require("./nsis-DPj2fUaP.cjs")).then(({nsis:r})=>StreamLanguage.define(r)),[LegacyLanguages.ntriples]:()=>Promise.resolve().then(()=>require("./ntriples-DgwJmozm.cjs")).then(({ntriples:r})=>StreamLanguage.define(r)),[LegacyLanguages.octave]:()=>Promise.resolve().then(()=>require("./octave-1pkKrgAA.cjs")).then(({octave:r})=>StreamLanguage.define(r)),[LegacyLanguages.oz]:()=>Promise.resolve().then(()=>require("./oz-BXOZCt0U.cjs")).then(({oz:r})=>StreamLanguage.define(r)),[LegacyLanguages.pascal]:()=>Promise.resolve().then(()=>require("./pascal-DtY2LEkJ.cjs")).then(({pascal:r})=>StreamLanguage.define(r)),[LegacyLanguages.perl]:()=>Promise.resolve().then(()=>require("./perl-CVDWbEju.cjs")).then(({perl:r})=>StreamLanguage.define(r)),[LegacyLanguages.pig]:()=>Promise.resolve().then(()=>require("./pig-DMByOrnr.cjs")).then(({pig:r})=>StreamLanguage.define(r)),[LegacyLanguages.powershell]:()=>Promise.resolve().then(()=>require("./powershell-BaoYaFvj.cjs")).then(({powerShell:r})=>StreamLanguage.define(r)),[LegacyLanguages.properties]:()=>Promise.resolve().then(()=>require("./properties-DXHJZ3WE.cjs")).then(({properties:r})=>StreamLanguage.define(r)),[LegacyLanguages.protobuf]:()=>Promise.resolve().then(()=>require("./protobuf-BKhXdfH6.cjs")).then(({protobuf:r})=>StreamLanguage.define(r)),[LegacyLanguages.puppet]:()=>Promise.resolve().then(()=>require("./puppet-8mAyuMbW.cjs")).then(({puppet:r})=>StreamLanguage.define(r)),[LegacyLanguages.q]:()=>Promise.resolve().then(()=>require("./q-BPQ45Nxu.cjs")).then(({q:r})=>StreamLanguage.define(r)),[LegacyLanguages.r]:()=>Promise.resolve().then(()=>require("./r-r2_EZsON.cjs")).then(({r})=>StreamLanguage.define(r)),[LegacyLanguages.rpm]:()=>Promise.resolve().then(()=>require("./rpm-C6UDHByS.cjs")).then(({rpmSpec:r})=>StreamLanguage.define(r)),[LegacyLanguages.ruby]:()=>Promise.resolve().then(()=>require("./ruby-Cn1sFkZF.cjs")).then(({ruby:r})=>StreamLanguage.define(r)),[LegacyLanguages.sas]:()=>Promise.resolve().then(()=>require("./sas-DAGcJy94.cjs")).then(({sas:r})=>StreamLanguage.define(r)),[LegacyLanguages.scheme]:()=>Promise.resolve().then(()=>require("./scheme-B0ZrbojV.cjs")).then(({scheme:r})=>StreamLanguage.define(r)),[LegacyLanguages.shell]:()=>Promise.resolve().then(()=>require("./shell-BMYo43V6.cjs")).then(({shell:r})=>StreamLanguage.define(r)),[LegacyLanguages.smalltalk]:()=>Promise.resolve().then(()=>require("./smalltalk-CSslY-3i.cjs")).then(({smalltalk:r})=>StreamLanguage.define(r)),[LegacyLanguages.solr]:()=>Promise.resolve().then(()=>require("./solr-A1kSnAwJ.cjs")).then(({solr:r})=>StreamLanguage.define(r)),[LegacyLanguages.sparql]:()=>Promise.resolve().then(()=>require("./sparql-DnHMBLLY.cjs")).then(({sparql:r})=>StreamLanguage.define(r)),[LegacyLanguages.spreadsheet]:()=>Promise.resolve().then(()=>require("./spreadsheet-B7_BK8hB.cjs")).then(({spreadsheet:r})=>StreamLanguage.define(r)),[LegacyLanguages.stex]:()=>Promise.resolve().then(()=>require("./stex-B4wyjEnp.cjs")).then(({stex:r})=>StreamLanguage.define(r)),[LegacyLanguages.stylus]:()=>Promise.resolve().then(()=>require("./stylus-B3vYZZY8.cjs")).then(({stylus:r})=>StreamLanguage.define(r)),[LegacyLanguages.swift]:()=>Promise.resolve().then(()=>require("./swift-DGw6Cgu8.cjs")).then(({swift:r})=>StreamLanguage.define(r)),[LegacyLanguages.tcl]:()=>Promise.resolve().then(()=>require("./tcl-ByLXbQFo.cjs")).then(({tcl:r})=>StreamLanguage.define(r)),[LegacyLanguages.textile]:()=>Promise.resolve().then(()=>require("./textile-iryw-lTw.cjs")).then(({textile:r})=>StreamLanguage.define(r)),[LegacyLanguages.tiddlywiki]:()=>Promise.resolve().then(()=>require("./tiddlywiki-D8IJz1k7.cjs")).then(({tiddlyWiki:r})=>StreamLanguage.define(r)),[LegacyLanguages.tiki]:()=>Promise.resolve().then(()=>require("./tiki-C5p5KSQK.cjs")).then(({tiki:r})=>StreamLanguage.define(r)),[LegacyLanguages.toml]:()=>Promise.resolve().then(()=>require("./toml-3ZsH_4Qa.cjs")).then(({toml:r})=>StreamLanguage.define(r)),[LegacyLanguages.troff]:()=>Promise.resolve().then(()=>require("./troff-D-3QCOYN.cjs")).then(({troff:r})=>StreamLanguage.define(r)),[LegacyLanguages.ttcn]:()=>Promise.resolve().then(()=>require("./ttcn-C2MXAqcM.cjs")).then(({ttcn:r})=>StreamLanguage.define(r)),[LegacyLanguages.turtle]:()=>Promise.resolve().then(()=>require("./turtle-DSJNatSv.cjs")).then(({turtle:r})=>StreamLanguage.define(r)),[LegacyLanguages.vb]:()=>Promise.resolve().then(()=>require("./vb-qzHzzvyB.cjs")).then(({vb:r})=>StreamLanguage.define(r)),[LegacyLanguages.vbscript]:()=>Promise.resolve().then(()=>require("./vbscript-CWm8v9tE.cjs")).then(({vbScript:r})=>StreamLanguage.define(r)),[LegacyLanguages.velocity]:()=>Promise.resolve().then(()=>require("./velocity-D3_yAIp3.cjs")).then(({velocity:r})=>StreamLanguage.define(r)),[LegacyLanguages.verilog]:()=>Promise.resolve().then(()=>require("./verilog-BOhLNmQo.cjs")).then(({verilog:r})=>StreamLanguage.define(r)),[LegacyLanguages.vhdl]:()=>Promise.resolve().then(()=>require("./vhdl-CMFbi8Im.cjs")).then(({vhdl:r})=>StreamLanguage.define(r)),[LegacyLanguages.webidl]:()=>Promise.resolve().then(()=>require("./webidl-CWb_flNk.cjs")).then(({webIDL:r})=>StreamLanguage.define(r)),[LegacyLanguages.xquery]:()=>Promise.resolve().then(()=>require("./xquery-mbJFEpkV.cjs")).then(({xQuery:r})=>StreamLanguage.define(r)),[LegacyLanguages.yacas]:()=>Promise.resolve().then(()=>require("./yacas-urx_N5C8.cjs")).then(({yacas:r})=>StreamLanguage.define(r)),[LegacyLanguages.yaml]:()=>Promise.resolve().then(()=>require("./yaml-CSixJMdf.cjs")).then(({yaml:r})=>StreamLanguage.define(r)),[LegacyLanguages.z80]:()=>Promise.resolve().then(()=>require("./z80-CsG3CM6M.cjs")).then(({z80:r})=>StreamLanguage.define(r))},codeMirrorBlockKey=new PluginKey("codemirror-block");function arrowHandler(r){return(e,n,A)=>{if(e.selection.empty&&A&&A.endOfTextblock(r)){let o=r=="left"||r=="up"?-1:1,s=e.selection.$head,a=Selection.near(e.doc.resolve(o>0?s.after():s.before()),o);if(a.$head&&a.$head.parent.type.name=="code_block")return n&&n(e.tr.setSelection(a)),!0}return!1}}const LANGS=["diff","dockerfile","http","nginx","properties","shell","toml","yaml","sql","javascript","cpp","css","xml","java","json","markdown","rust","html"];class NodeCodeMirror extends NodeCodeBlock{constructor(e){super(e),this.config=e}getCommandFactories(e,n){return{setCodeBlock:A=>e.commandFactories.setBlockType(n,{lang:A}),ArrowLeft:()=>arrowHandler("left"),ArrowRight:()=>arrowHandler("right"),ArrowUp:()=>arrowHandler("up"),ArrowDown:()=>arrowHandler("down")}}getKeyboardShortcuts(){return{'Shift-Ctrl-"':"setCodeBlock",ArrowLeft:"ArrowLeft",ArrowRight:"ArrowRight",ArrowUp:"ArrowUp",ArrowDown:"ArrowDown"}}getProseMirrorPlugins(){const e=getShadowRoot(this.editor.config.element),n={languageWhitelist:this.config.languageWhitelist||LANGS,shadowRoot:e,...defaultSettings,readOnly:this.editor.config.readOnly||this.config.readOnly,languageLoaders:{...languageLoaders,...legacyLanguageLoaders},undo:()=>{this.editor.chain().undo().run()},redo:()=>{this.editor.chain().redo().run()},theme:[...this.config.theme||[]]};return[new Plugin({key:codeMirrorBlockKey,props:{nodeViews:{[this.name]:codeMirrorBlockNodeView(n,this.editor)}}})]}}class ExtensionCodeMirror extends Extension{constructor(e){super(e),this.config=e,this.name="code-mirror",this.requires=[new NodeCodeMirror({languageWhitelist:e.languageWhitelist,theme:e.theme})]}getConverters(e,n){return{"text/code-only":{fromDoc:async A=>{const o=[];if(A.content){for(const s of A.content.toJSON())if(s.type==="code_block"&&Array.isArray(s.content))for(const a of s.content)o.push(a.text)}return new TextEncoder().encode(o.join(""))},toDoc:async A=>{const o=new TextDecoder().decode(A),s={type:"doc_code",content:[{type:"code_block",attrs:{lang:n.topNodeType.spec.defaultAttrs?.lang},content:[{type:"text",text:o}]}]};return createNodeFromObject(s,n,{errorOnInvalidContent:!1})}}}}}var html,hasRequiredHtml;function requireHtml(){if(hasRequiredHtml)return html;hasRequiredHtml=1;function r(e,n){var A,o,s,a,l,c;n=n||{},o=n.indent_size||4,s=n.indent_char||" ",l=n.brace_style||"collapse",a=n.max_char==0?1/0:n.max_char||70,c=n.unformatted||["a","span","bdo","em","strong","dfn","code","samp","kbd","var","cite","abbr","acronym","q","sub","sup","tt","i","b","big","small","u","s","strike","font","ins","del","pre","address","dt","h1","h2","h3","h4","h5","h6"];function g(){return this.pos=0,this.token="",this.current_mode="CONTENT",this.tags={parent:"parent1",parentcount:1,parent1:""},this.tag_type="",this.token_text=this.last_token=this.last_text=this.token_type="",this.Utils={whitespace:`
63
+ \r `.split(""),single_token:"br,input,link,meta,!doctype,basefont,base,area,hr,wbr,param,img,isindex,?xml,embed,?php,?,?=".split(","),extra_liners:"head,body,/html".split(","),in_array:function(y,S){for(var D=0;D<S.length;D++)if(y===S[D])return!0;return!1}},this.get_content=function(){for(var y="",S=[],D=!1;this.input.charAt(this.pos)!=="<";){if(this.pos>=this.input.length)return S.length?S.join(""):["","TK_EOF"];if(y=this.input.charAt(this.pos),this.pos++,this.line_char_count++,this.Utils.in_array(y,this.Utils.whitespace)){S.length&&(D=!0),this.line_char_count--;continue}else if(D){if(this.line_char_count>=this.max_char){S.push(`
64
+ `);for(var _=0;_<this.indent_level;_++)S.push(this.indent_string);this.line_char_count=0}else S.push(" "),this.line_char_count++;D=!1}S.push(y)}return S.length?S.join(""):""},this.get_contents_to=function(y){if(this.pos==this.input.length)return["","TK_EOF"];var S="",D=new RegExp("</"+y+"\\s*>","igm");D.lastIndex=this.pos;var _=D.exec(this.input),M=_?_.index:this.input.length;return this.pos<M&&(S=this.input.substring(this.pos,M),this.pos=M),S},this.record_tag=function(y){this.tags[y+"count"]?(this.tags[y+"count"]++,this.tags[y+this.tags[y+"count"]]=this.indent_level):(this.tags[y+"count"]=1,this.tags[y+this.tags[y+"count"]]=this.indent_level),this.tags[y+this.tags[y+"count"]+"parent"]=this.tags.parent,this.tags.parent=y+this.tags[y+"count"]},this.retrieve_tag=function(y){if(this.tags[y+"count"]){for(var S=this.tags.parent;S&&y+this.tags[y+"count"]!==S;)S=this.tags[S+"parent"];S&&(this.indent_level=this.tags[y+this.tags[y+"count"]],this.tags.parent=this.tags[S+"parent"]),delete this.tags[y+this.tags[y+"count"]+"parent"],delete this.tags[y+this.tags[y+"count"]],this.tags[y+"count"]==1?delete this.tags[y+"count"]:this.tags[y+"count"]--}},this.get_tag=function(){var y="",S=[],D=!1,_,M;do{if(this.pos>=this.input.length)return S.length?S.join(""):["","TK_EOF"];if(y=this.input.charAt(this.pos),this.pos++,this.line_char_count++,this.Utils.in_array(y,this.Utils.whitespace)){D=!0,this.line_char_count--;continue}(y==="'"||y==='"')&&(!S[1]||S[1]!=="!")&&(y+=this.get_unformatted(y),D=!0),y==="="&&(D=!1),S.length&&S[S.length-1]!=="="&&y!==">"&&D&&(this.line_char_count>=this.max_char?(this.print_newline(!1,S),this.line_char_count=0):(S.push(" "),this.line_char_count++),D=!1),y==="<"&&(_=this.pos-1),S.push(y)}while(y!==">");var v=S.join(""),F;v.indexOf(" ")!=-1?F=v.indexOf(" "):F=v.indexOf(">");var R=v.substring(1,F).toLowerCase();if(v.charAt(v.length-2)==="/"||this.Utils.in_array(R,this.Utils.single_token))this.tag_type="SINGLE";else if(R==="script")this.record_tag(R),this.tag_type="SCRIPT";else if(R==="style")this.record_tag(R),this.tag_type="STYLE";else if(this.Utils.in_array(R,c)){var N=this.get_unformatted("</"+R+">",v);S.push(N),_>0&&this.Utils.in_array(this.input.charAt(_-1),this.Utils.whitespace)&&S.splice(0,0,this.input.charAt(_-1)),M=this.pos-1,this.Utils.in_array(this.input.charAt(M+1),this.Utils.whitespace)&&S.push(this.input.charAt(M+1)),this.tag_type="SINGLE"}else if(R.charAt(0)==="!")if(R.indexOf("[if")!=-1){if(v.indexOf("!IE")!=-1){var N=this.get_unformatted("-->",v);S.push(N)}this.tag_type="START"}else if(R.indexOf("[endif")!=-1)this.tag_type="END",this.unindent();else if(R.indexOf("[cdata[")!=-1){var N=this.get_unformatted("]]>",v);S.push(N),this.tag_type="SINGLE"}else{var N=this.get_unformatted("-->",v);S.push(N),this.tag_type="SINGLE"}else R.charAt(0)==="/"?(this.retrieve_tag(R.substring(1)),this.tag_type="END"):(this.record_tag(R),this.tag_type="START"),this.Utils.in_array(R,this.Utils.extra_liners)&&this.print_newline(!0,this.output);return S.join("")},this.get_unformatted=function(y,S){if(S&&S.toLowerCase().indexOf(y)!=-1)return"";var D="",_="",M=!0;do{if(this.pos>=this.input.length)return _;if(D=this.input.charAt(this.pos),this.pos++,this.Utils.in_array(D,this.Utils.whitespace)){if(!M){this.line_char_count--;continue}if(D===`
65
+ `||D==="\r"){_+=`
66
+ `,this.line_char_count=0;continue}}_+=D,this.line_char_count++,M=!0}while(_.toLowerCase().indexOf(y)==-1);return _},this.get_token=function(){var y;if(this.last_token==="TK_TAG_SCRIPT"||this.last_token==="TK_TAG_STYLE"){var S=this.last_token.substr(7);return y=this.get_contents_to(S),typeof y!="string"?y:[y,"TK_"+S]}if(this.current_mode==="CONTENT")return y=this.get_content(),typeof y!="string"?y:[y,"TK_CONTENT"];if(this.current_mode==="TAG"){if(y=this.get_tag(),typeof y!="string")return y;var D="TK_TAG_"+this.tag_type;return[y,D]}},this.get_full_indent=function(y){return y=this.indent_level+y||0,y<1?"":Array(y+1).join(this.indent_string)},this.printer=function(y,S,D,_,M){this.input=y||"",this.output=[],this.indent_character=S,this.indent_string="",this.indent_size=D,this.brace_style=M,this.indent_level=0,this.max_char=_,this.line_char_count=0;for(var v=0;v<this.indent_size;v++)this.indent_string+=this.indent_character;this.print_newline=function(F,R){if(this.line_char_count=0,!(!R||!R.length)){if(!F)for(;this.Utils.in_array(R[R.length-1],this.Utils.whitespace);)R.pop();R.push(`
67
+ `);for(var N=0;N<this.indent_level;N++)R.push(this.indent_string)}},this.print_token=function(F){this.output.push(F)},this.indent=function(){this.indent_level++},this.unindent=function(){this.indent_level>0&&this.indent_level--}},this}for(A=new g,A.printer(e,s,o,a,l);;){var h=A.get_token();if(A.token_text=h[0],A.token_type=h[1],A.token_type==="TK_EOF")break;switch(A.token_type){case"TK_TAG_START":A.print_newline(!1,A.output),A.print_token(A.token_text),A.indent(),A.current_mode="CONTENT";break;case"TK_TAG_STYLE":case"TK_TAG_SCRIPT":A.print_newline(!1,A.output),A.print_token(A.token_text),A.current_mode="CONTENT";break;case"TK_TAG_END":if(A.last_token==="TK_CONTENT"&&A.last_text===""){var d=A.token_text.match(/\w+/)[0],u=A.output[A.output.length-1].match(/<\s*(\w+)/);(u===null||u[1]!==d)&&A.print_newline(!0,A.output)}A.print_token(A.token_text),A.current_mode="CONTENT";break;case"TK_TAG_SINGLE":var f=A.token_text.match(/^\s*<([a-z]+)/i);(!f||!A.Utils.in_array(f[1],c))&&A.print_newline(!1,A.output),A.print_token(A.token_text),A.current_mode="CONTENT";break;case"TK_CONTENT":A.token_text!==""&&A.print_token(A.token_text),A.current_mode="TAG";break;case"TK_STYLE":case"TK_SCRIPT":if(A.token_text!==""){A.output.push(`
68
+ `);var I=A.token_text;if(A.token_type=="TK_SCRIPT")var p=typeof js_beautify=="function"&&js_beautify;else if(A.token_type=="TK_STYLE")var p=typeof css_beautify=="function"&&css_beautify;if(n.indent_scripts=="keep")var m=0;else if(n.indent_scripts=="separate")var m=-A.indent_level;else var m=1;var E=A.get_full_indent(m);if(p)I=p(I.replace(/^\s*/,E),n);else{var B=I.match(/^\s*/)[0],Q=B.match(/[^\n\r]*$/)[0].split(A.indent_string).length-1,w=A.get_full_indent(m-Q);I=I.replace(/^\s*/,E).replace(/\r\n|\r|\n/g,`
69
+ `+w).replace(/\s*$/,"")}I&&(A.print_token(I),A.print_newline(!0,A.output))}A.current_mode="TAG";break}A.last_token=A.token_type,A.last_text=A.token_text}return A.output.join("")}return html={prettyPrint:r},html}var htmlExports=requireHtml();function __rest(r,e){var n={};for(var A in r)Object.prototype.hasOwnProperty.call(r,A)&&e.indexOf(A)<0&&(n[A]=r[A]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,A=Object.getOwnPropertySymbols(r);o<A.length;o++)e.indexOf(A[o])<0&&Object.prototype.propertyIsEnumerable.call(r,A[o])&&(n[A[o]]=r[A[o]]);return n}typeof SuppressedError=="function"&&SuppressedError;function noop(){}function assign(r,e){for(const n in e)r[n]=e[n];return r}function run(r){return r()}function blank_object(){return Object.create(null)}function run_all(r){r.forEach(run)}function is_function(r){return typeof r=="function"}function safe_not_equal(r,e){return r!=r?e==e:r!==e||r&&typeof r=="object"||typeof r=="function"}function is_empty(r){return Object.keys(r).length===0}function subscribe(r){for(var e=arguments.length,n=new Array(e>1?e-1:0),A=1;A<e;A++)n[A-1]=arguments[A];if(r==null){for(const s of n)s(void 0);return noop}const o=r.subscribe(...n);return o.unsubscribe?()=>o.unsubscribe():o}function get_store_value(r){let e;return subscribe(r,n=>e=n)(),e}function component_subscribe(r,e,n){r.$$.on_destroy.push(subscribe(e,n))}function create_slot(r,e,n,A){if(r){const o=get_slot_context(r,e,n,A);return r[0](o)}}function get_slot_context(r,e,n,A){return r[1]&&A?assign(n.ctx.slice(),r[1](A(e))):n.ctx}function get_slot_changes(r,e,n,A){if(r[2]&&A){const o=r[2](A(n));if(e.dirty===void 0)return o;if(typeof o=="object"){const s=[],a=Math.max(e.dirty.length,o.length);for(let l=0;l<a;l+=1)s[l]=e.dirty[l]|o[l];return s}return e.dirty|o}return e.dirty}function update_slot_base(r,e,n,A,o,s){if(o){const a=get_slot_context(e,n,A,s);r.p(a,o)}}function get_all_dirty_from_scope(r){if(r.ctx.length>32){const e=[],n=r.ctx.length/32;for(let A=0;A<n;A++)e[A]=-1;return e}return-1}function exclude_internal_props(r){const e={};for(const n in r)n[0]!=="$"&&(e[n]=r[n]);return e}function null_to_empty(r){return r??""}function action_destroyer(r){return r&&is_function(r.destroy)?r.destroy:noop}function append(r,e){r.appendChild(e)}function append_styles(r,e,n){const A=get_root_for_style(r);if(!A.getElementById(e)){const o=element("style");o.id=e,o.textContent=n,append_stylesheet(A,o)}}function get_root_for_style(r){if(!r)return document;const e=r.getRootNode?r.getRootNode():r.ownerDocument;return e&&e.host?e:r.ownerDocument}function append_stylesheet(r,e){return append(r.head||r,e),e.sheet}function insert(r,e,n){r.insertBefore(e,n||null)}function detach(r){r.parentNode&&r.parentNode.removeChild(r)}function destroy_each(r,e){for(let n=0;n<r.length;n+=1)r[n]&&r[n].d(e)}function element(r){return document.createElement(r)}function svg_element(r){return document.createElementNS("http://www.w3.org/2000/svg",r)}function text(r){return document.createTextNode(r)}function space(){return text(" ")}function empty(){return text("")}function listen(r,e,n,A){return r.addEventListener(e,n,A),()=>r.removeEventListener(e,n,A)}function prevent_default(r){return function(e){return e.preventDefault(),r.call(this,e)}}function attr(r,e,n){n==null?r.removeAttribute(e):r.getAttribute(e)!==n&&r.setAttribute(e,n)}function xlink_attr(r,e,n){r.setAttributeNS("http://www.w3.org/1999/xlink",e,n)}function children(r){return Array.from(r.childNodes)}function set_data(r,e){e=""+e,r.data!==e&&(r.data=e)}function set_input_value(r,e){r.value=e??""}function set_style(r,e,n,A){r.style.setProperty(e,n,"")}function toggle_class(r,e,n){r.classList.toggle(e,!!n)}function custom_event(r,e){let{bubbles:n=!1,cancelable:A=!1}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return new CustomEvent(r,{detail:e,bubbles:n,cancelable:A})}function construct_svelte_component(r,e){return new r(e)}let current_component;function set_current_component(r){current_component=r}function get_current_component(){if(!current_component)throw new Error("Function called outside component initialization");return current_component}function onMount(r){get_current_component().$$.on_mount.push(r)}function onDestroy(r){get_current_component().$$.on_destroy.push(r)}function createEventDispatcher(){const r=get_current_component();return function(e,n){let{cancelable:A=!1}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const o=r.$$.callbacks[e];if(o){const s=custom_event(e,n,{cancelable:A});return o.slice().forEach(a=>{a.call(r,s)}),!s.defaultPrevented}return!0}}function setContext$1(r,e){return get_current_component().$$.context.set(r,e),e}function getContext$1(r){return get_current_component().$$.context.get(r)}function bubble(r,e){const n=r.$$.callbacks[e.type];n&&n.slice().forEach(A=>A.call(this,e))}const dirty_components=[],binding_callbacks=[];let render_callbacks=[];const flush_callbacks=[],resolved_promise=Promise.resolve();let update_scheduled=!1;function schedule_update(){update_scheduled||(update_scheduled=!0,resolved_promise.then(flush))}function add_render_callback(r){render_callbacks.push(r)}const seen_callbacks=new Set;let flushidx=0;function flush(){if(flushidx!==0)return;const r=current_component;do{try{for(;flushidx<dirty_components.length;){const e=dirty_components[flushidx];flushidx++,set_current_component(e),update(e.$$)}}catch(e){throw dirty_components.length=0,flushidx=0,e}for(set_current_component(null),dirty_components.length=0,flushidx=0;binding_callbacks.length;)binding_callbacks.pop()();for(let e=0;e<render_callbacks.length;e+=1){const n=render_callbacks[e];seen_callbacks.has(n)||(seen_callbacks.add(n),n())}render_callbacks.length=0}while(dirty_components.length);for(;flush_callbacks.length;)flush_callbacks.pop()();update_scheduled=!1,seen_callbacks.clear(),set_current_component(r)}function update(r){if(r.fragment!==null){r.update(),run_all(r.before_update);const e=r.dirty;r.dirty=[-1],r.fragment&&r.fragment.p(r.ctx,e),r.after_update.forEach(add_render_callback)}}function flush_render_callbacks(r){const e=[],n=[];render_callbacks.forEach(A=>r.indexOf(A)===-1?e.push(A):n.push(A)),n.forEach(A=>A()),render_callbacks=e}const outroing=new Set;let outros;function group_outros(){outros={r:0,c:[],p:outros}}function check_outros(){outros.r||run_all(outros.c),outros=outros.p}function transition_in(r,e){r&&r.i&&(outroing.delete(r),r.i(e))}function transition_out(r,e,n,A){if(r&&r.o){if(outroing.has(r))return;outroing.add(r),outros.c.push(()=>{outroing.delete(r),A&&(n&&r.d(1),A())}),r.o(e)}else A&&A()}function ensure_array_like(r){return r?.length!==void 0?r:Array.from(r)}function destroy_block(r,e){r.d(1),e.delete(r.key)}function update_keyed_each(r,e,n,A,o,s,a,l,c,g,h,d){let u=r.length,f=s.length,I=u;const p={};for(;I--;)p[r[I].key]=I;const m=[],E=new Map,B=new Map,Q=[];for(I=f;I--;){const D=d(o,s,I),_=n(D);let M=a.get(_);M?Q.push(()=>M.p(D,e)):(M=g(_,D),M.c()),E.set(_,m[I]=M),_ in p&&B.set(_,Math.abs(I-p[_]))}const w=new Set,y=new Set;function S(D){transition_in(D,1),D.m(l,h),a.set(D.key,D),h=D.first,f--}for(;u&&f;){const D=m[f-1],_=r[u-1],M=D.key,v=_.key;D===_?(h=D.first,u--,f--):E.has(v)?!a.has(M)||w.has(M)?S(D):y.has(v)?u--:B.get(M)>B.get(v)?(y.add(M),S(D)):(w.add(v),u--):(c(_,a),u--)}for(;u--;){const D=r[u];E.has(D.key)||c(D,a)}for(;f;)S(m[f-1]);return run_all(Q),m}function create_component(r){r&&r.c()}function mount_component(r,e,n){const{fragment:A,after_update:o}=r.$$;A&&A.m(e,n),add_render_callback(()=>{const s=r.$$.on_mount.map(run).filter(is_function);r.$$.on_destroy?r.$$.on_destroy.push(...s):run_all(s),r.$$.on_mount=[]}),o.forEach(add_render_callback)}function destroy_component(r,e){const n=r.$$;n.fragment!==null&&(flush_render_callbacks(n.after_update),run_all(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function make_dirty(r,e){r.$$.dirty[0]===-1&&(dirty_components.push(r),schedule_update(),r.$$.dirty.fill(0)),r.$$.dirty[e/31|0]|=1<<e%31}function init$1(r,e,n,A,o,s){let a=arguments.length>6&&arguments[6]!==void 0?arguments[6]:null,l=arguments.length>7&&arguments[7]!==void 0?arguments[7]:[-1];const c=current_component;set_current_component(r);const g=r.$$={fragment:null,ctx:[],props:s,update:noop,not_equal:o,bound:blank_object(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(e.context||(c?c.$$.context:[])),callbacks:blank_object(),dirty:l,skip_bound:!1,root:e.target||c.$$.root};a&&a(g.root);let h=!1;if(g.ctx=n?n(r,e.props||{},function(d,u){const f=!(arguments.length<=2)&&arguments.length-2?arguments.length<=2?void 0:arguments[2]:u;return g.ctx&&o(g.ctx[d],g.ctx[d]=f)&&(!g.skip_bound&&g.bound[d]&&g.bound[d](f),h&&make_dirty(r,d)),u}):[],g.update(),h=!0,run_all(g.before_update),g.fragment=A?A(g.ctx):!1,e.target){if(e.hydrate){const d=children(e.target);g.fragment&&g.fragment.l(d),d.forEach(detach)}else g.fragment&&g.fragment.c();e.intro&&transition_in(r.$$.fragment),mount_component(r,e.target,e.anchor),flush()}set_current_component(c)}class SvelteComponent{constructor(){this.$$=void 0,this.$$set=void 0}$destroy(){destroy_component(this,1),this.$destroy=noop}$on(e,n){if(!is_function(n))return noop;const A=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return A.push(n),()=>{const o=A.indexOf(n);o!==-1&&A.splice(o,1)}}$set(e){this.$$set&&!is_empty(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const PUBLIC_VERSION="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(PUBLIC_VERSION);const setContext=(r,e)=>setContext$1(r,e),getContext=r=>getContext$1(r);function add_css$k(r){append_styles(r,"svelte-1lt2k10",".floating-btn.svelte-1lt2k10.svelte-1lt2k10{background:#363755;border:0;border-radius:50%;box-shadow:0 0 30px rgba(34, 34, 34, 0.3);cursor:pointer;position:fixed;padding:6px;transition:opacity 0.3s;-webkit-transition:opacity 0.3s;z-index:99999}.floating-btn.bottom-right.svelte-1lt2k10.svelte-1lt2k10{bottom:16px;right:16px}.floating-btn.bottom-left.svelte-1lt2k10.svelte-1lt2k10{bottom:16px;left:16px}.floating-btn.top-right.svelte-1lt2k10.svelte-1lt2k10{top:16px;right:16px}.floating-btn.top-left.svelte-1lt2k10.svelte-1lt2k10{top:16px;left:16px}.floating-btn.svelte-1lt2k10.svelte-1lt2k10:hover{opacity:0.7}.floating-btn.svelte-1lt2k10>svg.svelte-1lt2k10{display:block;width:34px;height:34px;position:relative}")}function create_fragment$k(r){let e,n,A,o,s,a,l,c,g,h,d,u,f,I,p,m,E,B,Q,w,y,S,D,_;return{c(){e=element("button"),n=svg_element("svg"),A=svg_element("title"),o=text("prosemirror"),s=svg_element("desc"),a=text("Created using Figma"),l=svg_element("use"),c=svg_element("use"),g=svg_element("use"),h=svg_element("use"),d=svg_element("use"),u=svg_element("use"),f=svg_element("use"),I=svg_element("defs"),p=svg_element("path"),m=svg_element("path"),E=svg_element("path"),B=svg_element("path"),Q=svg_element("path"),w=svg_element("path"),y=svg_element("path"),xlink_attr(l,"xlink:href","#a"),attr(l,"transform","matrix(2 0 0 2 118 116)"),attr(l,"fill","#FFF"),xlink_attr(c,"xlink:href","#b"),attr(c,"transform","rotate(16 59.054 420.192) scale(2)"),attr(c,"fill","#FFF"),xlink_attr(g,"xlink:href","#c"),attr(g,"transform","matrix(2 0 0 2 154.024 141.58)"),attr(g,"fill","#363755"),xlink_attr(h,"xlink:href","#d"),attr(h,"transform","matrix(2 0 0 2 220 334.8)"),attr(h,"fill","#FFF"),xlink_attr(d,"xlink:href","#e"),attr(d,"transform","matrix(2 0 0 2 218.826 262.052)"),attr(d,"fill","#363755"),xlink_attr(u,"xlink:href","#f"),attr(u,"transform","matrix(2 0 0 2 197.108 184.998)"),attr(u,"fill","#FFF"),xlink_attr(f,"xlink:href","#g"),attr(f,"transform","matrix(2 0 0 2 221.8 216)"),attr(f,"fill","#363755"),attr(p,"id","a"),attr(p,"d",`M73.5 0C32.859 0 0 32.859 0 73.5S32.859 147 73.5 147 147 114.141 147 73.5 114.069 0 73.5
70
+ 0z`),attr(m,"id","b"),attr(m,"d",`M193.601 107.116c0-13.376 8.238-23.91
71
+ 20.619-31.153-2.244-7.447-5.19-14.6-8.824-21.32-13.886
72
+ 3.633-25.12-1.799-34.568-11.26-9.449-9.437-12.344-20.672-8.709-34.571A111.362 111.362 0 0 0
73
+ 140.799 0c-7.243 12.37-20.339 20.594-33.689 20.594-13.363
74
+ 0-26.446-8.225-33.701-20.594A110.888 110.888 0 0 0 52.1 8.812c3.634 13.9.753 25.134-8.721
75
+ 34.57-9.436 9.462-20.67 14.894-34.569 11.26A112.178 112.178 0 0 0 0 75.963c12.369 7.243
76
+ 20.593 17.777 20.593 31.153 0 13.352-8.224 26.448-20.593 33.704a113.338 113.338 0 0 0 8.811
77
+ 21.321c13.899-3.634 25.133-.752 34.569 8.697 9.448 9.462 12.355 20.696 8.721 34.57a112.653
78
+ 112.653 0 0 0 21.32 8.837c7.243-12.407 20.338-20.619 33.702-20.619 13.35 0 26.446 8.225
79
+ 33.701 20.619a114.22 114.22 0 0 0 21.32-8.837c-3.634-13.874-.752-25.108 8.709-34.57
80
+ 9.449-9.437 20.683-14.869 34.569-11.26a112.343 112.343 0 0 0
81
+ 8.823-21.321c-12.406-7.256-20.644-17.789-20.644-31.141zm-86.491 46.57c-25.732
82
+ 0-46.58-20.849-46.58-46.57 0-25.733 20.86-46.595 46.58-46.595 25.732 0 46.567 20.875 46.567
83
+ 46.595 0 25.734-20.835 46.57-46.567 46.57z`),attr(E,"id","c"),attr(E,"d",`M98.088 49.91c-6.9 83.9 10.8 103.401 10.8 103.401s-55.1
84
+ 5.499-82.7-13.401c-30.5-20.9-26-67.5-25.9-94.6.1-28.4 25.6-45.8 49.9-45.3 29.1.5 50.2 21.6
85
+ 47.9 49.9z`),attr(B,"id","d"),attr(B,"d","M.1.1c12.2 33.3 22.5 42.7 40 55.2 25.3 18 36.6 17.5 76.3 41C78.1 60.3 30.8 45.7 0 0l.1.1z"),attr(Q,"id","e"),attr(Q,"d",`M.687 36.474c3 13.3 17.9 29.9 30.4 41.6 24.8 23.2 42 22.4 86
86
+ 54.7-18.2-51.8-18.8-62-43.5-106.1-24.7-44-67.6-20.3-67.6-20.3s-8.4 16.6-5.3 29.9v.2z`),attr(w,"id","f"),attr(w,"d",`M38.346 11.5s-4-11.6-18-11.5c-30 .2-28.8 52.1 16.9 52 39.6-.1 39.2-49.4
87
+ 16.1-49.6-10.2-.2-15 9.1-15 9.1z`),attr(y,"id","g"),attr(y,"d",`M26.5 15c10.8 0 2 14.9-.6 20.9-1.8-8.4-10.2-20.9.6-20.9zM10.2.1C4.6.1 0 4.6 0 10.3c0 5.6
88
+ 4.5 10.2 10.2 10.2 5.6 0 10.2-4.5 10.2-10.2C20.4 4.7 15.9.1 10.2.1zM40.7 0c-4.8 0-8.8
89
+ 4.5-8.8 10.2 0 5.6 3.9 10.2 8.8 10.2 4.8 0 8.8-4.5 8.8-10.2C49.5 4.6 45.6 0 40.7 0z`),attr(n,"width","530"),attr(n,"height","530"),attr(n,"viewBox","0 0 530 530"),attr(n,"xmlns","http://www.w3.org/2000/svg"),attr(n,"xmlns:xlink","http://www.w3.org/1999/xlink"),attr(n,"class","svelte-1lt2k10"),attr(e,"class",S=null_to_empty("floating-btn ".concat(r[0]))+" svelte-1lt2k10")},m(M,v){insert(M,e,v),append(e,n),append(n,A),append(A,o),append(n,s),append(s,a),append(n,l),append(n,c),append(n,g),append(n,h),append(n,d),append(n,u),append(n,f),append(n,I),append(I,p),append(I,m),append(I,E),append(I,B),append(I,Q),append(I,w),append(I,y),D||(_=listen(e,"click",r[1]),D=!0)},p(M,v){let[F]=v;F&1&&S!==(S=null_to_empty("floating-btn ".concat(M[0]))+" svelte-1lt2k10")&&attr(e,"class",S)},i:noop,o:noop,d(M){M&&detach(e),D=!1,_()}}}function instance$k(r,e,n){let{buttonPosition:A}=e;function o(s){bubble.call(this,r,s)}return r.$$set=s=>{"buttonPosition"in s&&n(0,A=s.buttonPosition)},[A,o]}class FloatingBtn extends SvelteComponent{constructor(e){super(),init$1(this,e,instance$k,create_fragment$k,safe_not_equal,{buttonPosition:0},add_css$k)}}const subscriber_queue=[];function readable(r,e){return{subscribe:writable(r,e).subscribe}}function writable(r){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:noop,n;const A=new Set;function o(l){if(safe_not_equal(r,l)&&(r=l,n)){const c=!subscriber_queue.length;for(const g of A)g[1](),subscriber_queue.push(g,r);if(c){for(let g=0;g<subscriber_queue.length;g+=2)subscriber_queue[g][0](subscriber_queue[g+1]);subscriber_queue.length=0}}}function s(l){o(l(r))}function a(l){let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:noop;const g=[l,c];return A.add(g),A.size===1&&(n=e(o,s)||noop),l(r),()=>{A.delete(g),A.size===0&&n&&(n(),n=null)}}return{set:o,update:s,subscribe:a}}function derived(r,e,n){const A=!Array.isArray(r),o=A?[r]:r;if(!o.every(Boolean))throw new Error("derived() expects stores as input, got a falsy value");const s=e.length<2;return readable(n,(a,l)=>{let c=!1;const g=[];let h=0,d=noop;const u=()=>{if(h)return;d();const I=e(A?g[0]:g,a,l);s?a(I):d=is_function(I)?I:noop},f=o.map((I,p)=>subscribe(I,m=>{g[p]=m,h&=~(1<<p),c&&u()},()=>{h|=1<<p}));return c=!0,u(),function(){run_all(f),d(),c=!1}})}const SNAPSHOTS_KEY="__prosemirror-dev-toolkit__snapshots",snapshots=writable([]),selectedSnapshot=writable(),previousEditorState=writable();let canAccessLocalStorage=!0;function hydrate(){let r=null;try{r=localStorage.getItem(SNAPSHOTS_KEY)}catch{canAccessLocalStorage=!1}if(r&&r.length>0)try{const e=JSON.parse(r);snapshots.set(e)}catch(e){console.error("Corrupted snapshots values in localStorage",e)}}hydrate();snapshots.subscribe(r=>{canAccessLocalStorage&&localStorage.setItem(SNAPSHOTS_KEY,JSON.stringify(r))});function setEditorDoc(r,e){const n=r.state.schema.nodeFromJSON(e),A=r.state.tr;A.replaceWith(0,r.state.doc.nodeSize-2,n.content),r.dispatch(A)}function saveSnapshot(r,e){const n={name:r,timestamp:Date.now(),doc:e};return snapshots.update(A=>[n,...A]),n}function importSnapshot(r,e,n){const A=n.nodeFromJSON(e),o={name:r,timestamp:Date.now(),doc:A.toJSON()};return snapshots.update(s=>[o,...s]),o}function updateSnapshot(r){snapshots.update(e=>e.map(n=>n.timestamp===r.timestamp?r:n))}function toggleViewSnapshot(r,e){if(e)get_store_value(previousEditorState)||previousEditorState.set(r.state),setEditorDoc(r,e.doc);else{const n=get_store_value(previousEditorState);n?r.updateState(n):console.error("No previous state to restore!"),previousEditorState.set(void 0)}selectedSnapshot.set(e)}function restoreSnapshot(r,e){setEditorDoc(r,e.doc),previousEditorState.set(void 0),selectedSnapshot.set(void 0)}function exportSnapshot(r){const e=document.createElement("a"),n=new Blob([JSON.stringify(r.doc)],{type:"application/json"});e.href=URL.createObjectURL(n),e.download=`${r.name}.json`,e.click()}function deleteSnapshot(r){snapshots.update(n=>n.filter(A=>A.timestamp!==r.timestamp));const e=get_store_value(selectedSnapshot);e?.timestamp===r.timestamp&&selectedSnapshot.set(void 0)}function clickOutside(r,e){const n=A=>{r&&!A.composedPath().includes(r)&&!A.defaultPrevented&&e()};return document.addEventListener("click",n,!0),{destroy(){document.removeEventListener("click",n,!0)}}}function add_css$j(r){append_styles(r,"svelte-19h7j7n",".paste-modal.svelte-19h7j7n.svelte-19h7j7n{font-size:15px;height:100%;left:0;position:fixed;top:0;width:100%;z-index:1000}.paste-modal.svelte-19h7j7n>form.svelte-19h7j7n{display:flex;height:100%;justify-content:center;padding:64px}.modal-bg.svelte-19h7j7n.svelte-19h7j7n{background:#000;height:100%;left:0;opacity:0.8;position:absolute;top:0;width:100%;z-index:-1}fieldset.svelte-19h7j7n.svelte-19h7j7n{border-color:transparent;width:100%;max-width:800px}.submit-container.svelte-19h7j7n.svelte-19h7j7n{position:relative;width:100%}button.svelte-19h7j7n.svelte-19h7j7n{cursor:pointer;padding:4px 8px;position:absolute;right:-6px;top:-32px}legend.svelte-19h7j7n.svelte-19h7j7n{color:white}textarea.svelte-19h7j7n.svelte-19h7j7n{background:#fefcfc;height:calc(100vh - 128px);width:100%}")}function create_fragment$j(r){let e,n,A,o,s,a,l,c,g,h,d,u;return{c(){e=element("div"),n=element("div"),A=space(),o=element("form"),s=element("fieldset"),a=element("div"),a.innerHTML='<button class="svelte-19h7j7n">Submit</button>',l=space(),c=element("legend"),c.textContent="Doc",g=space(),h=element("textarea"),attr(n,"class","modal-bg svelte-19h7j7n"),attr(a,"class","submit-container svelte-19h7j7n"),attr(c,"class","svelte-19h7j7n"),attr(h,"class","svelte-19h7j7n"),attr(s,"class","svelte-19h7j7n"),attr(o,"class","paste-content svelte-19h7j7n"),attr(e,"class","paste-modal svelte-19h7j7n"),toggle_class(e,"hidden",!r[0])},m(f,I){insert(f,e,I),append(e,n),append(e,A),append(e,o),append(o,s),append(s,a),append(s,l),append(s,c),append(s,g),append(s,h),set_input_value(h,r[1]),d||(u=[listen(h,"input",r[4]),action_destroyer(clickOutside.call(null,s,r[2])),listen(o,"submit",prevent_default(r[3]))],d=!0)},p(f,I){let[p]=I;p&2&&set_input_value(h,f[1]),p&1&&toggle_class(e,"hidden",!f[0])},i:noop,o:noop,d(f){f&&detach(e),d=!1,run_all(u)}}}function instance$j(r,e,n){let{isOpen:A}=e,o;const s=createEventDispatcher();function a(){s("close")}function l(){try{s("submit",{doc:JSON.parse(o)})}catch{}}function c(){o=this.value,n(1,o)}return r.$$set=g=>{"isOpen"in g&&n(0,A=g.isOpen)},[A,o,a,l,c]}class PasteModal extends SvelteComponent{constructor(e){super(),init$1(this,e,instance$j,create_fragment$j,safe_not_equal,{isOpen:0},add_css$j)}}function add_css$i(r){append_styles(r,"svelte-10notzq","ul.svelte-10notzq{display:flex;list-style:none;margin:0;overflow-x:scroll;padding:0}button.svelte-10notzq{background:transparent;border:0;border-bottom:2px solid transparent;color:#fff;cursor:pointer;height:100%;font-size:var(--font-medium);font-weight:400;padding:1em}button.svelte-10notzq:hover{background:rgba(255, 255, 255, 0.05)}button.active.svelte-10notzq{border-bottom:2px solid rgb(255, 162, 177)}")}function create_fragment$i(r){let e,n,A,o,s,a,l,c,g,h,d,u,f,I,p,m,E,B,Q,w;return{c(){e=element("ul"),n=element("li"),A=element("button"),A.textContent="STATE",o=space(),s=element("li"),a=element("button"),a.textContent="HISTORY",l=space(),c=element("li"),g=element("button"),g.textContent="PLUGINS",h=space(),d=element("li"),u=element("button"),u.textContent="SCHEMA",f=space(),I=element("li"),p=element("button"),p.textContent="STRUCTURE",m=space(),E=element("li"),B=element("button"),B.textContent="SNAPSHOTS",attr(A,"class","svelte-10notzq"),toggle_class(A,"active",r[0]==="state"),attr(a,"class","svelte-10notzq"),toggle_class(a,"active",r[0]==="history"),attr(g,"class","svelte-10notzq"),toggle_class(g,"active",r[0]==="plugins"),attr(u,"class","svelte-10notzq"),toggle_class(u,"active",r[0]==="schema"),attr(p,"class","svelte-10notzq"),toggle_class(p,"active",r[0]==="structure"),attr(B,"class","svelte-10notzq"),toggle_class(B,"active",r[0]==="snapshots"),attr(e,"class","tabs-menu svelte-10notzq")},m(y,S){insert(y,e,S),append(e,n),append(n,A),append(e,o),append(e,s),append(s,a),append(e,l),append(e,c),append(c,g),append(e,h),append(e,d),append(d,u),append(e,f),append(e,I),append(I,p),append(e,m),append(e,E),append(E,B),Q||(w=[listen(A,"click",r[2]),listen(a,"click",r[3]),listen(g,"click",r[4]),listen(u,"click",r[5]),listen(p,"click",r[6]),listen(B,"click",r[7])],Q=!0)},p(y,S){let[D]=S;D&1&&toggle_class(A,"active",y[0]==="state"),D&1&&toggle_class(a,"active",y[0]==="history"),D&1&&toggle_class(g,"active",y[0]==="plugins"),D&1&&toggle_class(u,"active",y[0]==="schema"),D&1&&toggle_class(p,"active",y[0]==="structure"),D&1&&toggle_class(B,"active",y[0]==="snapshots")},i:noop,o:noop,d(y){y&&detach(e),Q=!1,run_all(w)}}}function instance$i(r,e,n){let{active:A,onClickTab:o}=e;const s=()=>o("state"),a=()=>o("history"),l=()=>o("plugins"),c=()=>o("schema"),g=()=>o("structure"),h=()=>o("snapshots");return r.$$set=d=>{"active"in d&&n(0,A=d.active),"onClickTab"in d&&n(1,o=d.onClickTab)},[A,o,s,a,l,c,g,h]}class TabsMenu extends SvelteComponent{constructor(e){super(),init$1(this,e,instance$i,create_fragment$i,safe_not_equal,{active:0,onClickTab:1},add_css$i)}}function getDefaultExportFromCjs(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var diffMatchPatch={exports:{}};(function(r){var e=function(){this.Diff_Timeout=1,this.Diff_EditCost=4,this.Match_Threshold=.5,this.Match_Distance=1e3,this.Patch_DeleteThreshold=.5,this.Patch_Margin=4,this.Match_MaxBits=32},n=-1,A=1,o=0;e.Diff=function(s,a){return[s,a]},e.prototype.diff_main=function(s,a,l,c){typeof c>"u"&&(this.Diff_Timeout<=0?c=Number.MAX_VALUE:c=new Date().getTime()+this.Diff_Timeout*1e3);var g=c;if(s==null||a==null)throw new Error("Null input. (diff_main)");if(s==a)return s?[new e.Diff(o,s)]:[];typeof l>"u"&&(l=!0);var h=l,d=this.diff_commonPrefix(s,a),u=s.substring(0,d);s=s.substring(d),a=a.substring(d),d=this.diff_commonSuffix(s,a);var f=s.substring(s.length-d);s=s.substring(0,s.length-d),a=a.substring(0,a.length-d);var I=this.diff_compute_(s,a,h,g);return u&&I.unshift(new e.Diff(o,u)),f&&I.push(new e.Diff(o,f)),this.diff_cleanupMerge(I),I},e.prototype.diff_compute_=function(s,a,l,c){var g;if(!s)return[new e.Diff(A,a)];if(!a)return[new e.Diff(n,s)];var h=s.length>a.length?s:a,d=s.length>a.length?a:s,u=h.indexOf(d);if(u!=-1)return g=[new e.Diff(A,h.substring(0,u)),new e.Diff(o,d),new e.Diff(A,h.substring(u+d.length))],s.length>a.length&&(g[0][0]=g[2][0]=n),g;if(d.length==1)return[new e.Diff(n,s),new e.Diff(A,a)];var f=this.diff_halfMatch_(s,a);if(f){var I=f[0],p=f[1],m=f[2],E=f[3],B=f[4],Q=this.diff_main(I,m,l,c),w=this.diff_main(p,E,l,c);return Q.concat([new e.Diff(o,B)],w)}return l&&s.length>100&&a.length>100?this.diff_lineMode_(s,a,c):this.diff_bisect_(s,a,c)},e.prototype.diff_lineMode_=function(s,a,l){var c=this.diff_linesToChars_(s,a);s=c.chars1,a=c.chars2;var g=c.lineArray,h=this.diff_main(s,a,!1,l);this.diff_charsToLines_(h,g),this.diff_cleanupSemantic(h),h.push(new e.Diff(o,""));for(var d=0,u=0,f=0,I="",p="";d<h.length;){switch(h[d][0]){case A:f++,p+=h[d][1];break;case n:u++,I+=h[d][1];break;case o:if(u>=1&&f>=1){h.splice(d-u-f,u+f),d=d-u-f;for(var m=this.diff_main(I,p,!1,l),E=m.length-1;E>=0;E--)h.splice(d,0,m[E]);d=d+m.length}f=0,u=0,I="",p="";break}d++}return h.pop(),h},e.prototype.diff_bisect_=function(s,a,l){for(var c=s.length,g=a.length,h=Math.ceil((c+g)/2),d=h,u=2*h,f=new Array(u),I=new Array(u),p=0;p<u;p++)f[p]=-1,I[p]=-1;f[d+1]=0,I[d+1]=0;for(var m=c-g,E=m%2!=0,B=0,Q=0,w=0,y=0,S=0;S<h&&!(new Date().getTime()>l);S++){for(var D=-S+B;D<=S-Q;D+=2){var _=d+D,M;D==-S||D!=S&&f[_-1]<f[_+1]?M=f[_+1]:M=f[_-1]+1;for(var v=M-D;M<c&&v<g&&s.charAt(M)==a.charAt(v);)M++,v++;if(f[_]=M,M>c)Q+=2;else if(v>g)B+=2;else if(E){var F=d+m-D;if(F>=0&&F<u&&I[F]!=-1){var R=c-I[F];if(M>=R)return this.diff_bisectSplit_(s,a,M,v,l)}}}for(var N=-S+w;N<=S-y;N+=2){var F=d+N,R;N==-S||N!=S&&I[F-1]<I[F+1]?R=I[F+1]:R=I[F-1]+1;for(var L=R-N;R<c&&L<g&&s.charAt(c-R-1)==a.charAt(g-L-1);)R++,L++;if(I[F]=R,R>c)y+=2;else if(L>g)w+=2;else if(!E){var _=d+m-N;if(_>=0&&_<u&&f[_]!=-1){var M=f[_],v=d+M-_;if(R=c-R,M>=R)return this.diff_bisectSplit_(s,a,M,v,l)}}}}return[new e.Diff(n,s),new e.Diff(A,a)]},e.prototype.diff_bisectSplit_=function(s,a,l,c,g){var h=s.substring(0,l),d=a.substring(0,c),u=s.substring(l),f=a.substring(c),I=this.diff_main(h,d,!1,g),p=this.diff_main(u,f,!1,g);return I.concat(p)},e.prototype.diff_linesToChars_=function(s,a){var l=[],c={};l[0]="";function g(f){for(var I="",p=0,m=-1,E=l.length;m<f.length-1;){m=f.indexOf(`
90
+ `,p),m==-1&&(m=f.length-1);var B=f.substring(p,m+1);(c.hasOwnProperty?c.hasOwnProperty(B):c[B]!==void 0)?I+=String.fromCharCode(c[B]):(E==h&&(B=f.substring(p),m=f.length),I+=String.fromCharCode(E),c[B]=E,l[E++]=B),p=m+1}return I}var h=4e4,d=g(s);h=65535;var u=g(a);return{chars1:d,chars2:u,lineArray:l}},e.prototype.diff_charsToLines_=function(s,a){for(var l=0;l<s.length;l++){for(var c=s[l][1],g=[],h=0;h<c.length;h++)g[h]=a[c.charCodeAt(h)];s[l][1]=g.join("")}},e.prototype.diff_commonPrefix=function(s,a){if(!s||!a||s.charAt(0)!=a.charAt(0))return 0;for(var l=0,c=Math.min(s.length,a.length),g=c,h=0;l<g;)s.substring(h,g)==a.substring(h,g)?(l=g,h=l):c=g,g=Math.floor((c-l)/2+l);return g},e.prototype.diff_commonSuffix=function(s,a){if(!s||!a||s.charAt(s.length-1)!=a.charAt(a.length-1))return 0;for(var l=0,c=Math.min(s.length,a.length),g=c,h=0;l<g;)s.substring(s.length-g,s.length-h)==a.substring(a.length-g,a.length-h)?(l=g,h=l):c=g,g=Math.floor((c-l)/2+l);return g},e.prototype.diff_commonOverlap_=function(s,a){var l=s.length,c=a.length;if(l==0||c==0)return 0;l>c?s=s.substring(l-c):l<c&&(a=a.substring(0,l));var g=Math.min(l,c);if(s==a)return g;for(var h=0,d=1;;){var u=s.substring(g-d),f=a.indexOf(u);if(f==-1)return h;d+=f,(f==0||s.substring(g-d)==a.substring(0,d))&&(h=d,d++)}},e.prototype.diff_halfMatch_=function(s,a){if(this.Diff_Timeout<=0)return null;var l=s.length>a.length?s:a,c=s.length>a.length?a:s;if(l.length<4||c.length*2<l.length)return null;var g=this;function h(Q,w,y){for(var S=Q.substring(y,y+Math.floor(Q.length/4)),D=-1,_="",M,v,F,R;(D=w.indexOf(S,D+1))!=-1;){var N=g.diff_commonPrefix(Q.substring(y),w.substring(D)),L=g.diff_commonSuffix(Q.substring(0,y),w.substring(0,D));_.length<L+N&&(_=w.substring(D-L,D)+w.substring(D,D+N),M=Q.substring(0,y-L),v=Q.substring(y+N),F=w.substring(0,D-L),R=w.substring(D+N))}return _.length*2>=Q.length?[M,v,F,R,_]:null}var d=h(l,c,Math.ceil(l.length/4)),u=h(l,c,Math.ceil(l.length/2)),f;if(!d&&!u)return null;u?d?f=d[4].length>u[4].length?d:u:f=u:f=d;var I,p,m,E;s.length>a.length?(I=f[0],p=f[1],m=f[2],E=f[3]):(m=f[0],E=f[1],I=f[2],p=f[3]);var B=f[4];return[I,p,m,E,B]},e.prototype.diff_cleanupSemantic=function(s){for(var a=!1,l=[],c=0,g=null,h=0,d=0,u=0,f=0,I=0;h<s.length;)s[h][0]==o?(l[c++]=h,d=f,u=I,f=0,I=0,g=s[h][1]):(s[h][0]==A?f+=s[h][1].length:I+=s[h][1].length,g&&g.length<=Math.max(d,u)&&g.length<=Math.max(f,I)&&(s.splice(l[c-1],0,new e.Diff(n,g)),s[l[c-1]+1][0]=A,c--,c--,h=c>0?l[c-1]:-1,d=0,u=0,f=0,I=0,g=null,a=!0)),h++;for(a&&this.diff_cleanupMerge(s),this.diff_cleanupSemanticLossless(s),h=1;h<s.length;){if(s[h-1][0]==n&&s[h][0]==A){var p=s[h-1][1],m=s[h][1],E=this.diff_commonOverlap_(p,m),B=this.diff_commonOverlap_(m,p);E>=B?(E>=p.length/2||E>=m.length/2)&&(s.splice(h,0,new e.Diff(o,m.substring(0,E))),s[h-1][1]=p.substring(0,p.length-E),s[h+1][1]=m.substring(E),h++):(B>=p.length/2||B>=m.length/2)&&(s.splice(h,0,new e.Diff(o,p.substring(0,B))),s[h-1][0]=A,s[h-1][1]=m.substring(0,m.length-B),s[h+1][0]=n,s[h+1][1]=p.substring(B),h++),h++}h++}},e.prototype.diff_cleanupSemanticLossless=function(s){function a(B,Q){if(!B||!Q)return 6;var w=B.charAt(B.length-1),y=Q.charAt(0),S=w.match(e.nonAlphaNumericRegex_),D=y.match(e.nonAlphaNumericRegex_),_=S&&w.match(e.whitespaceRegex_),M=D&&y.match(e.whitespaceRegex_),v=_&&w.match(e.linebreakRegex_),F=M&&y.match(e.linebreakRegex_),R=v&&B.match(e.blanklineEndRegex_),N=F&&Q.match(e.blanklineStartRegex_);return R||N?5:v||F?4:S&&!_&&M?3:_||M?2:S||D?1:0}for(var l=1;l<s.length-1;){if(s[l-1][0]==o&&s[l+1][0]==o){var c=s[l-1][1],g=s[l][1],h=s[l+1][1],d=this.diff_commonSuffix(c,g);if(d){var u=g.substring(g.length-d);c=c.substring(0,c.length-d),g=u+g.substring(0,g.length-d),h=u+h}for(var f=c,I=g,p=h,m=a(c,g)+a(g,h);g.charAt(0)===h.charAt(0);){c+=g.charAt(0),g=g.substring(1)+h.charAt(0),h=h.substring(1);var E=a(c,g)+a(g,h);E>=m&&(m=E,f=c,I=g,p=h)}s[l-1][1]!=f&&(f?s[l-1][1]=f:(s.splice(l-1,1),l--),s[l][1]=I,p?s[l+1][1]=p:(s.splice(l+1,1),l--))}l++}},e.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/,e.whitespaceRegex_=/\s/,e.linebreakRegex_=/[\r\n]/,e.blanklineEndRegex_=/\n\r?\n$/,e.blanklineStartRegex_=/^\r?\n\r?\n/,e.prototype.diff_cleanupEfficiency=function(s){for(var a=!1,l=[],c=0,g=null,h=0,d=!1,u=!1,f=!1,I=!1;h<s.length;)s[h][0]==o?(s[h][1].length<this.Diff_EditCost&&(f||I)?(l[c++]=h,d=f,u=I,g=s[h][1]):(c=0,g=null),f=I=!1):(s[h][0]==n?I=!0:f=!0,g&&(d&&u&&f&&I||g.length<this.Diff_EditCost/2&&d+u+f+I==3)&&(s.splice(l[c-1],0,new e.Diff(n,g)),s[l[c-1]+1][0]=A,c--,g=null,d&&u?(f=I=!0,c=0):(c--,h=c>0?l[c-1]:-1,f=I=!1),a=!0)),h++;a&&this.diff_cleanupMerge(s)},e.prototype.diff_cleanupMerge=function(s){s.push(new e.Diff(o,""));for(var a=0,l=0,c=0,g="",h="",d;a<s.length;)switch(s[a][0]){case A:c++,h+=s[a][1],a++;break;case n:l++,g+=s[a][1],a++;break;case o:l+c>1?(l!==0&&c!==0&&(d=this.diff_commonPrefix(h,g),d!==0&&(a-l-c>0&&s[a-l-c-1][0]==o?s[a-l-c-1][1]+=h.substring(0,d):(s.splice(0,0,new e.Diff(o,h.substring(0,d))),a++),h=h.substring(d),g=g.substring(d)),d=this.diff_commonSuffix(h,g),d!==0&&(s[a][1]=h.substring(h.length-d)+s[a][1],h=h.substring(0,h.length-d),g=g.substring(0,g.length-d))),a-=l+c,s.splice(a,l+c),g.length&&(s.splice(a,0,new e.Diff(n,g)),a++),h.length&&(s.splice(a,0,new e.Diff(A,h)),a++),a++):a!==0&&s[a-1][0]==o?(s[a-1][1]+=s[a][1],s.splice(a,1)):a++,c=0,l=0,g="",h="";break}s[s.length-1][1]===""&&s.pop();var u=!1;for(a=1;a<s.length-1;)s[a-1][0]==o&&s[a+1][0]==o&&(s[a][1].substring(s[a][1].length-s[a-1][1].length)==s[a-1][1]?(s[a][1]=s[a-1][1]+s[a][1].substring(0,s[a][1].length-s[a-1][1].length),s[a+1][1]=s[a-1][1]+s[a+1][1],s.splice(a-1,1),u=!0):s[a][1].substring(0,s[a+1][1].length)==s[a+1][1]&&(s[a-1][1]+=s[a+1][1],s[a][1]=s[a][1].substring(s[a+1][1].length)+s[a+1][1],s.splice(a+1,1),u=!0)),a++;u&&this.diff_cleanupMerge(s)},e.prototype.diff_xIndex=function(s,a){var l=0,c=0,g=0,h=0,d;for(d=0;d<s.length&&(s[d][0]!==A&&(l+=s[d][1].length),s[d][0]!==n&&(c+=s[d][1].length),!(l>a));d++)g=l,h=c;return s.length!=d&&s[d][0]===n?h:h+(a-g)},e.prototype.diff_prettyHtml=function(s){for(var a=[],l=/&/g,c=/</g,g=/>/g,h=/\n/g,d=0;d<s.length;d++){var u=s[d][0],f=s[d][1],I=f.replace(l,"&amp;").replace(c,"&lt;").replace(g,"&gt;").replace(h,"&para;<br>");switch(u){case A:a[d]='<ins style="background:#e6ffe6;">'+I+"</ins>";break;case n:a[d]='<del style="background:#ffe6e6;">'+I+"</del>";break;case o:a[d]="<span>"+I+"</span>";break}}return a.join("")},e.prototype.diff_text1=function(s){for(var a=[],l=0;l<s.length;l++)s[l][0]!==A&&(a[l]=s[l][1]);return a.join("")},e.prototype.diff_text2=function(s){for(var a=[],l=0;l<s.length;l++)s[l][0]!==n&&(a[l]=s[l][1]);return a.join("")},e.prototype.diff_levenshtein=function(s){for(var a=0,l=0,c=0,g=0;g<s.length;g++){var h=s[g][0],d=s[g][1];switch(h){case A:l+=d.length;break;case n:c+=d.length;break;case o:a+=Math.max(l,c),l=0,c=0;break}}return a+=Math.max(l,c),a},e.prototype.diff_toDelta=function(s){for(var a=[],l=0;l<s.length;l++)switch(s[l][0]){case A:a[l]="+"+encodeURI(s[l][1]);break;case n:a[l]="-"+s[l][1].length;break;case o:a[l]="="+s[l][1].length;break}return a.join(" ").replace(/%20/g," ")},e.prototype.diff_fromDelta=function(s,a){for(var l=[],c=0,g=0,h=a.split(/\t/g),d=0;d<h.length;d++){var u=h[d].substring(1);switch(h[d].charAt(0)){case"+":try{l[c++]=new e.Diff(A,decodeURI(u))}catch{throw new Error("Illegal escape in diff_fromDelta: "+u)}break;case"-":case"=":var f=parseInt(u,10);if(isNaN(f)||f<0)throw new Error("Invalid number in diff_fromDelta: "+u);var I=s.substring(g,g+=f);h[d].charAt(0)=="="?l[c++]=new e.Diff(o,I):l[c++]=new e.Diff(n,I);break;default:if(h[d])throw new Error("Invalid diff operation in diff_fromDelta: "+h[d])}}if(g!=s.length)throw new Error("Delta length ("+g+") does not equal source text length ("+s.length+").");return l},e.prototype.match_main=function(s,a,l){if(s==null||a==null||l==null)throw new Error("Null input. (match_main)");return l=Math.max(0,Math.min(l,s.length)),s==a?0:s.length?s.substring(l,l+a.length)==a?l:this.match_bitap_(s,a,l):-1},e.prototype.match_bitap_=function(s,a,l){if(a.length>this.Match_MaxBits)throw new Error("Pattern too long for this browser.");var c=this.match_alphabet_(a),g=this;function h(M,v){var F=M/a.length,R=Math.abs(l-v);return g.Match_Distance?F+R/g.Match_Distance:R?1:F}var d=this.Match_Threshold,u=s.indexOf(a,l);u!=-1&&(d=Math.min(h(0,u),d),u=s.lastIndexOf(a,l+a.length),u!=-1&&(d=Math.min(h(0,u),d)));var f=1<<a.length-1;u=-1;for(var I,p,m=a.length+s.length,E,B=0;B<a.length;B++){for(I=0,p=m;I<p;)h(B,l+p)<=d?I=p:m=p,p=Math.floor((m-I)/2+I);m=p;var Q=Math.max(1,l-p+1),w=Math.min(l+p,s.length)+a.length,y=Array(w+2);y[w+1]=(1<<B)-1;for(var S=w;S>=Q;S--){var D=c[s.charAt(S-1)];if(B===0?y[S]=(y[S+1]<<1|1)&D:y[S]=(y[S+1]<<1|1)&D|((E[S+1]|E[S])<<1|1)|E[S+1],y[S]&f){var _=h(B,S-1);if(_<=d)if(d=_,u=S-1,u>l)Q=Math.max(1,2*l-u);else break}}if(h(B+1,l)>d)break;E=y}return u},e.prototype.match_alphabet_=function(s){for(var a={},l=0;l<s.length;l++)a[s.charAt(l)]=0;for(var l=0;l<s.length;l++)a[s.charAt(l)]|=1<<s.length-l-1;return a},e.prototype.patch_addContext_=function(s,a){if(a.length!=0){if(s.start2===null)throw Error("patch not initialized");for(var l=a.substring(s.start2,s.start2+s.length1),c=0;a.indexOf(l)!=a.lastIndexOf(l)&&l.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)c+=this.Patch_Margin,l=a.substring(s.start2-c,s.start2+s.length1+c);c+=this.Patch_Margin;var g=a.substring(s.start2-c,s.start2);g&&s.diffs.unshift(new e.Diff(o,g));var h=a.substring(s.start2+s.length1,s.start2+s.length1+c);h&&s.diffs.push(new e.Diff(o,h)),s.start1-=g.length,s.start2-=g.length,s.length1+=g.length+h.length,s.length2+=g.length+h.length}},e.prototype.patch_make=function(s,a,l){var c,g;if(typeof s=="string"&&typeof a=="string"&&typeof l>"u")c=s,g=this.diff_main(c,a,!0),g.length>2&&(this.diff_cleanupSemantic(g),this.diff_cleanupEfficiency(g));else if(s&&typeof s=="object"&&typeof a>"u"&&typeof l>"u")g=s,c=this.diff_text1(g);else if(typeof s=="string"&&a&&typeof a=="object"&&typeof l>"u")c=s,g=a;else if(typeof s=="string"&&typeof a=="string"&&l&&typeof l=="object")c=s,g=l;else throw new Error("Unknown call format to patch_make.");if(g.length===0)return[];for(var h=[],d=new e.patch_obj,u=0,f=0,I=0,p=c,m=c,E=0;E<g.length;E++){var B=g[E][0],Q=g[E][1];switch(!u&&B!==o&&(d.start1=f,d.start2=I),B){case A:d.diffs[u++]=g[E],d.length2+=Q.length,m=m.substring(0,I)+Q+m.substring(I);break;case n:d.length1+=Q.length,d.diffs[u++]=g[E],m=m.substring(0,I)+m.substring(I+Q.length);break;case o:Q.length<=2*this.Patch_Margin&&u&&g.length!=E+1?(d.diffs[u++]=g[E],d.length1+=Q.length,d.length2+=Q.length):Q.length>=2*this.Patch_Margin&&u&&(this.patch_addContext_(d,p),h.push(d),d=new e.patch_obj,u=0,p=m,f=I);break}B!==A&&(f+=Q.length),B!==n&&(I+=Q.length)}return u&&(this.patch_addContext_(d,p),h.push(d)),h},e.prototype.patch_deepCopy=function(s){for(var a=[],l=0;l<s.length;l++){var c=s[l],g=new e.patch_obj;g.diffs=[];for(var h=0;h<c.diffs.length;h++)g.diffs[h]=new e.Diff(c.diffs[h][0],c.diffs[h][1]);g.start1=c.start1,g.start2=c.start2,g.length1=c.length1,g.length2=c.length2,a[l]=g}return a},e.prototype.patch_apply=function(s,a){if(s.length==0)return[a,[]];s=this.patch_deepCopy(s);var l=this.patch_addPadding(s);a=l+a+l,this.patch_splitMax(s);for(var c=0,g=[],h=0;h<s.length;h++){var d=s[h].start2+c,u=this.diff_text1(s[h].diffs),f,I=-1;if(u.length>this.Match_MaxBits?(f=this.match_main(a,u.substring(0,this.Match_MaxBits),d),f!=-1&&(I=this.match_main(a,u.substring(u.length-this.Match_MaxBits),d+u.length-this.Match_MaxBits),(I==-1||f>=I)&&(f=-1))):f=this.match_main(a,u,d),f==-1)g[h]=!1,c-=s[h].length2-s[h].length1;else{g[h]=!0,c=f-d;var p;if(I==-1?p=a.substring(f,f+u.length):p=a.substring(f,I+this.Match_MaxBits),u==p)a=a.substring(0,f)+this.diff_text2(s[h].diffs)+a.substring(f+u.length);else{var m=this.diff_main(u,p,!1);if(u.length>this.Match_MaxBits&&this.diff_levenshtein(m)/u.length>this.Patch_DeleteThreshold)g[h]=!1;else{this.diff_cleanupSemanticLossless(m);for(var E=0,B,Q=0;Q<s[h].diffs.length;Q++){var w=s[h].diffs[Q];w[0]!==o&&(B=this.diff_xIndex(m,E)),w[0]===A?a=a.substring(0,f+B)+w[1]+a.substring(f+B):w[0]===n&&(a=a.substring(0,f+B)+a.substring(f+this.diff_xIndex(m,E+w[1].length))),w[0]!==n&&(E+=w[1].length)}}}}}return a=a.substring(l.length,a.length-l.length),[a,g]},e.prototype.patch_addPadding=function(s){for(var a=this.Patch_Margin,l="",c=1;c<=a;c++)l+=String.fromCharCode(c);for(var c=0;c<s.length;c++)s[c].start1+=a,s[c].start2+=a;var g=s[0],h=g.diffs;if(h.length==0||h[0][0]!=o)h.unshift(new e.Diff(o,l)),g.start1-=a,g.start2-=a,g.length1+=a,g.length2+=a;else if(a>h[0][1].length){var d=a-h[0][1].length;h[0][1]=l.substring(h[0][1].length)+h[0][1],g.start1-=d,g.start2-=d,g.length1+=d,g.length2+=d}if(g=s[s.length-1],h=g.diffs,h.length==0||h[h.length-1][0]!=o)h.push(new e.Diff(o,l)),g.length1+=a,g.length2+=a;else if(a>h[h.length-1][1].length){var d=a-h[h.length-1][1].length;h[h.length-1][1]+=l.substring(0,d),g.length1+=d,g.length2+=d}return l},e.prototype.patch_splitMax=function(s){for(var a=this.Match_MaxBits,l=0;l<s.length;l++)if(!(s[l].length1<=a)){var c=s[l];s.splice(l--,1);for(var g=c.start1,h=c.start2,d="";c.diffs.length!==0;){var u=new e.patch_obj,f=!0;for(u.start1=g-d.length,u.start2=h-d.length,d!==""&&(u.length1=u.length2=d.length,u.diffs.push(new e.Diff(o,d)));c.diffs.length!==0&&u.length1<a-this.Patch_Margin;){var I=c.diffs[0][0],p=c.diffs[0][1];I===A?(u.length2+=p.length,h+=p.length,u.diffs.push(c.diffs.shift()),f=!1):I===n&&u.diffs.length==1&&u.diffs[0][0]==o&&p.length>2*a?(u.length1+=p.length,g+=p.length,f=!1,u.diffs.push(new e.Diff(I,p)),c.diffs.shift()):(p=p.substring(0,a-u.length1-this.Patch_Margin),u.length1+=p.length,g+=p.length,I===o?(u.length2+=p.length,h+=p.length):f=!1,u.diffs.push(new e.Diff(I,p)),p==c.diffs[0][1]?c.diffs.shift():c.diffs[0][1]=c.diffs[0][1].substring(p.length))}d=this.diff_text2(u.diffs),d=d.substring(d.length-this.Patch_Margin);var m=this.diff_text1(c.diffs).substring(0,this.Patch_Margin);m!==""&&(u.length1+=m.length,u.length2+=m.length,u.diffs.length!==0&&u.diffs[u.diffs.length-1][0]===o?u.diffs[u.diffs.length-1][1]+=m:u.diffs.push(new e.Diff(o,m))),f||s.splice(++l,0,u)}}},e.prototype.patch_toText=function(s){for(var a=[],l=0;l<s.length;l++)a[l]=s[l];return a.join("")},e.prototype.patch_fromText=function(s){var a=[];if(!s)return a;for(var l=s.split(`
91
+ `),c=0,g=/^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/;c<l.length;){var h=l[c].match(g);if(!h)throw new Error("Invalid patch string: "+l[c]);var d=new e.patch_obj;for(a.push(d),d.start1=parseInt(h[1],10),h[2]===""?(d.start1--,d.length1=1):h[2]=="0"?d.length1=0:(d.start1--,d.length1=parseInt(h[2],10)),d.start2=parseInt(h[3],10),h[4]===""?(d.start2--,d.length2=1):h[4]=="0"?d.length2=0:(d.start2--,d.length2=parseInt(h[4],10)),c++;c<l.length;){var u=l[c].charAt(0);try{var f=decodeURI(l[c].substring(1))}catch{throw new Error("Illegal escape in patch_fromText: "+f)}if(u=="-")d.diffs.push(new e.Diff(n,f));else if(u=="+")d.diffs.push(new e.Diff(A,f));else if(u==" ")d.diffs.push(new e.Diff(o,f));else{if(u=="@")break;if(u!=="")throw new Error('Invalid patch mode "'+u+'" in: '+f)}c++}}return a},e.patch_obj=function(){this.diffs=[],this.start1=null,this.start2=null,this.length1=0,this.length2=0},e.patch_obj.prototype.toString=function(){var s,a;this.length1===0?s=this.start1+",0":this.length1==1?s=this.start1+1:s=this.start1+1+","+this.length1,this.length2===0?a=this.start2+",0":this.length2==1?a=this.start2+1:a=this.start2+1+","+this.length2;for(var l=["@@ -"+s+" +"+a+` @@
92
+ `],c,g=0;g<this.diffs.length;g++){switch(this.diffs[g][0]){case A:c="+";break;case n:c="-";break;case o:c=" ";break}l[g+1]=c+encodeURI(this.diffs[g][1])+`
93
+ `}return l.join("").replace(/%20/g," ")},r.exports=e,r.exports.diff_match_patch=e,r.exports.DIFF_DELETE=n,r.exports.DIFF_INSERT=A,r.exports.DIFF_EQUAL=o})(diffMatchPatch);var diffMatchPatchExports=diffMatchPatch.exports,dmp=getDefaultExportFromCjs(diffMatchPatchExports),_typeof=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},classCallCheck=function(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")},createClass=(function(){function r(e,n){for(var A=0;A<n.length;A++){var o=n[A];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(e,n,A){return n&&r(e.prototype,n),A&&r(e,A),e}})(),get=function r(e,n,A){e===null&&(e=Function.prototype);var o=Object.getOwnPropertyDescriptor(e,n);if(o===void 0){var s=Object.getPrototypeOf(e);return s===null?void 0:r(s,n,A)}else{if("value"in o)return o.value;var a=o.get;return a===void 0?void 0:a.call(A)}},inherits=function(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof e);r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(r,e):r.__proto__=e)},possibleConstructorReturn=function(r,e){if(!r)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e&&(typeof e=="object"||typeof e=="function")?e:r},Processor=(function(){function r(e){classCallCheck(this,r),this.selfOptions=e||{},this.pipes={}}return createClass(r,[{key:"options",value:function(n){return n&&(this.selfOptions=n),this.selfOptions}},{key:"pipe",value:function(n,A){var o=A;if(typeof n=="string"){if(typeof o>"u")return this.pipes[n];this.pipes[n]=o}if(n&&n.name){if(o=n,o.processor===this)return o;this.pipes[o.name]=o}return o.processor=this,o}},{key:"process",value:function(n,A){var o=n;o.options=this.options();for(var s=A||n.pipe||"default",a=void 0,l=void 0;s;)typeof o.nextAfterChildren<"u"&&(o.next=o.nextAfterChildren,o.nextAfterChildren=null),typeof s=="string"&&(s=this.pipe(s)),s.process(o),l=o,a=s,s=null,o&&o.next&&(o=o.next,s=l.nextPipe||o.pipe||a);return o.hasResult?o.result:void 0}}]),r})(),Pipe=(function(){function r(e){classCallCheck(this,r),this.name=e,this.filters=[]}return createClass(r,[{key:"process",value:function(n){if(!this.processor)throw new Error("add this pipe to a processor before using it");for(var A=this.debug,o=this.filters.length,s=n,a=0;a<o;a++){var l=this.filters[a];if(A&&this.log("filter: "+l.filterName),l(s),(typeof s>"u"?"undefined":_typeof(s))==="object"&&s.exiting){s.exiting=!1;break}}!s.next&&this.resultCheck&&this.resultCheck(s)}},{key:"log",value:function(n){console.log("[jsondiffpatch] "+this.name+" pipe, "+n)}},{key:"append",value:function(){var n;return(n=this.filters).push.apply(n,arguments),this}},{key:"prepend",value:function(){var n;return(n=this.filters).unshift.apply(n,arguments),this}},{key:"indexOf",value:function(n){if(!n)throw new Error("a filter name is required");for(var A=0;A<this.filters.length;A++){var o=this.filters[A];if(o.filterName===n)return A}throw new Error("filter not found: "+n)}},{key:"list",value:function(){return this.filters.map(function(n){return n.filterName})}},{key:"after",value:function(n){var A=this.indexOf(n),o=Array.prototype.slice.call(arguments,1);if(!o.length)throw new Error("a filter is required");return o.unshift(A+1,0),Array.prototype.splice.apply(this.filters,o),this}},{key:"before",value:function(n){var A=this.indexOf(n),o=Array.prototype.slice.call(arguments,1);if(!o.length)throw new Error("a filter is required");return o.unshift(A,0),Array.prototype.splice.apply(this.filters,o),this}},{key:"replace",value:function(n){var A=this.indexOf(n),o=Array.prototype.slice.call(arguments,1);if(!o.length)throw new Error("a filter is required");return o.unshift(A,1),Array.prototype.splice.apply(this.filters,o),this}},{key:"remove",value:function(n){var A=this.indexOf(n);return this.filters.splice(A,1),this}},{key:"clear",value:function(){return this.filters.length=0,this}},{key:"shouldHaveResult",value:function(n){if(n===!1){this.resultCheck=null;return}if(!this.resultCheck){var A=this;return this.resultCheck=function(o){if(!o.hasResult){console.log(o);var s=new Error(A.name+" failed");throw s.noResult=!0,s}},this}}}]),r})(),Context=(function(){function r(){classCallCheck(this,r)}return createClass(r,[{key:"setResult",value:function(n){return this.result=n,this.hasResult=!0,this}},{key:"exit",value:function(){return this.exiting=!0,this}},{key:"switchTo",value:function(n,A){return typeof n=="string"||n instanceof Pipe?this.nextPipe=n:(this.next=n,A&&(this.nextPipe=A)),this}},{key:"push",value:function(n,A){return n.parent=this,typeof A<"u"&&(n.childName=A),n.root=this.root||this,n.options=n.options||this.options,this.children?(this.children[this.children.length-1].next=n,this.children.push(n)):(this.children=[n],this.nextAfterChildren=this.next||null,this.next=n),n.next=this,this}}]),r})(),isArray=typeof Array.isArray=="function"?Array.isArray:function(r){return r instanceof Array};function cloneRegExp(r){var e=/^\/(.*)\/([gimyu]*)$/.exec(r.toString());return new RegExp(e[1],e[2])}function clone(r){if((typeof r>"u"?"undefined":_typeof(r))!=="object")return r;if(r===null)return null;if(isArray(r))return r.map(clone);if(r instanceof Date)return new Date(r.getTime());if(r instanceof RegExp)return cloneRegExp(r);var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=clone(r[n]));return e}var DiffContext=(function(r){inherits(e,r);function e(n,A){classCallCheck(this,e);var o=possibleConstructorReturn(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return o.left=n,o.right=A,o.pipe="diff",o}return createClass(e,[{key:"setResult",value:function(A){if(this.options.cloneDiffValues&&(typeof A>"u"?"undefined":_typeof(A))==="object"){var o=typeof this.options.cloneDiffValues=="function"?this.options.cloneDiffValues:clone;_typeof(A[0])==="object"&&(A[0]=o(A[0])),_typeof(A[1])==="object"&&(A[1]=o(A[1]))}return Context.prototype.setResult.apply(this,arguments)}}]),e})(Context),PatchContext=(function(r){inherits(e,r);function e(n,A){classCallCheck(this,e);var o=possibleConstructorReturn(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return o.left=n,o.delta=A,o.pipe="patch",o}return e})(Context),ReverseContext=(function(r){inherits(e,r);function e(n){classCallCheck(this,e);var A=possibleConstructorReturn(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return A.delta=n,A.pipe="reverse",A}return e})(Context),isArray$1=typeof Array.isArray=="function"?Array.isArray:function(r){return r instanceof Array},diffFilter=function(e){if(e.left===e.right){e.setResult(void 0).exit();return}if(typeof e.left>"u"){if(typeof e.right=="function")throw new Error("functions are not supported");e.setResult([e.right]).exit();return}if(typeof e.right>"u"){e.setResult([e.left,0,0]).exit();return}if(typeof e.left=="function"||typeof e.right=="function")throw new Error("functions are not supported");if(e.leftType=e.left===null?"null":_typeof(e.left),e.rightType=e.right===null?"null":_typeof(e.right),e.leftType!==e.rightType){e.setResult([e.left,e.right]).exit();return}if(e.leftType==="boolean"||e.leftType==="number"){e.setResult([e.left,e.right]).exit();return}if(e.leftType==="object"&&(e.leftIsArray=isArray$1(e.left)),e.rightType==="object"&&(e.rightIsArray=isArray$1(e.right)),e.leftIsArray!==e.rightIsArray){e.setResult([e.left,e.right]).exit();return}e.left instanceof RegExp&&(e.right instanceof RegExp?e.setResult([e.left.toString(),e.right.toString()]).exit():e.setResult([e.left,e.right]).exit())};diffFilter.filterName="trivial";var patchFilter=function(e){if(typeof e.delta>"u"){e.setResult(e.left).exit();return}if(e.nested=!isArray$1(e.delta),!e.nested){if(e.delta.length===1){e.setResult(e.delta[0]).exit();return}if(e.delta.length===2){if(e.left instanceof RegExp){var n=/^\/(.*)\/([gimyu]+)$/.exec(e.delta[1]);if(n){e.setResult(new RegExp(n[1],n[2])).exit();return}}e.setResult(e.delta[1]).exit();return}e.delta.length===3&&e.delta[2]===0&&e.setResult(void 0).exit()}};patchFilter.filterName="trivial";var reverseFilter=function(e){if(typeof e.delta>"u"){e.setResult(e.delta).exit();return}if(e.nested=!isArray$1(e.delta),!e.nested){if(e.delta.length===1){e.setResult([e.delta[0],0,0]).exit();return}if(e.delta.length===2){e.setResult([e.delta[1],e.delta[0]]).exit();return}e.delta.length===3&&e.delta[2]===0&&e.setResult([e.delta[0]]).exit()}};reverseFilter.filterName="trivial";function collectChildrenDiffFilter(r){if(!(!r||!r.children)){for(var e=r.children.length,n=void 0,A=r.result,o=0;o<e;o++)n=r.children[o],!(typeof n.result>"u")&&(A=A||{},A[n.childName]=n.result);A&&r.leftIsArray&&(A._t="a"),r.setResult(A).exit()}}collectChildrenDiffFilter.filterName="collectChildren";function objectsDiffFilter(r){if(!(r.leftIsArray||r.leftType!=="object")){var e=void 0,n=void 0,A=r.options.propertyFilter;for(e in r.left)Object.prototype.hasOwnProperty.call(r.left,e)&&(A&&!A(e,r)||(n=new DiffContext(r.left[e],r.right[e]),r.push(n,e)));for(e in r.right)Object.prototype.hasOwnProperty.call(r.right,e)&&(A&&!A(e,r)||typeof r.left[e]>"u"&&(n=new DiffContext(void 0,r.right[e]),r.push(n,e)));if(!r.children||r.children.length===0){r.setResult(void 0).exit();return}r.exit()}}objectsDiffFilter.filterName="objects";var patchFilter$1=function(e){if(e.nested&&!e.delta._t){var n=void 0,A=void 0;for(n in e.delta)A=new PatchContext(e.left[n],e.delta[n]),e.push(A,n);e.exit()}};patchFilter$1.filterName="objects";var collectChildrenPatchFilter=function(e){if(!(!e||!e.children)&&!e.delta._t){for(var n=e.children.length,A=void 0,o=0;o<n;o++)A=e.children[o],Object.prototype.hasOwnProperty.call(e.left,A.childName)&&A.result===void 0?delete e.left[A.childName]:e.left[A.childName]!==A.result&&(e.left[A.childName]=A.result);e.setResult(e.left).exit()}};collectChildrenPatchFilter.filterName="collectChildren";var reverseFilter$1=function(e){if(e.nested&&!e.delta._t){var n=void 0,A=void 0;for(n in e.delta)A=new ReverseContext(e.delta[n]),e.push(A,n);e.exit()}};reverseFilter$1.filterName="objects";function collectChildrenReverseFilter(r){if(!(!r||!r.children)&&!r.delta._t){for(var e=r.children.length,n=void 0,A={},o=0;o<e;o++)n=r.children[o],A[n.childName]!==n.result&&(A[n.childName]=n.result);r.setResult(A).exit()}}collectChildrenReverseFilter.filterName="collectChildren";var defaultMatch=function(e,n,A,o){return e[A]===n[o]},lengthMatrix=function(e,n,A,o){var s=e.length,a=n.length,l=void 0,c=void 0,g=[s+1];for(l=0;l<s+1;l++)for(g[l]=[a+1],c=0;c<a+1;c++)g[l][c]=0;for(g.match=A,l=1;l<s+1;l++)for(c=1;c<a+1;c++)A(e,n,l-1,c-1,o)?g[l][c]=g[l-1][c-1]+1:g[l][c]=Math.max(g[l-1][c],g[l][c-1]);return g},backtrack=function(e,n,A,o){for(var s=n.length,a=A.length,l={sequence:[],indices1:[],indices2:[]};s!==0&&a!==0;){var c=e.match(n,A,s-1,a-1,o);if(c)l.sequence.unshift(n[s-1]),l.indices1.unshift(s-1),l.indices2.unshift(a-1),--s,--a;else{var g=e[s][a-1],h=e[s-1][a];g>h?--a:--s}}return l},get$1=function(e,n,A,o){var s=o||{},a=lengthMatrix(e,n,A||defaultMatch,s),l=backtrack(a,e,n,s);return typeof e=="string"&&typeof n=="string"&&(l.sequence=l.sequence.join("")),l},lcs={get:get$1},ARRAY_MOVE=3,isArray$2=typeof Array.isArray=="function"?Array.isArray:function(r){return r instanceof Array},arrayIndexOf=typeof Array.prototype.indexOf=="function"?function(r,e){return r.indexOf(e)}:function(r,e){for(var n=r.length,A=0;A<n;A++)if(r[A]===e)return A;return-1};function arraysHaveMatchByRef(r,e,n,A){for(var o=0;o<n;o++)for(var s=r[o],a=0;a<A;a++){var l=e[a];if(o!==a&&s===l)return!0}}function matchItems(r,e,n,A,o){var s=r[n],a=e[A];if(s===a)return!0;if((typeof s>"u"?"undefined":_typeof(s))!=="object"||(typeof a>"u"?"undefined":_typeof(a))!=="object")return!1;var l=o.objectHash;if(!l)return o.matchByPosition&&n===A;var c=void 0,g=void 0;return typeof n=="number"?(o.hashCache1=o.hashCache1||[],c=o.hashCache1[n],typeof c>"u"&&(o.hashCache1[n]=c=l(s,n))):c=l(s),typeof c>"u"||(typeof A=="number"?(o.hashCache2=o.hashCache2||[],g=o.hashCache2[A],typeof g>"u"&&(o.hashCache2[A]=g=l(a,A))):g=l(a),typeof g>"u")?!1:c===g}var diffFilter$1=function(e){if(e.leftIsArray){var n={objectHash:e.options&&e.options.objectHash,matchByPosition:e.options&&e.options.matchByPosition},A=0,o=0,s=void 0,a=void 0,l=void 0,c=e.left,g=e.right,h=c.length,d=g.length,u=void 0;for(h>0&&d>0&&!n.objectHash&&typeof n.matchByPosition!="boolean"&&(n.matchByPosition=!arraysHaveMatchByRef(c,g,h,d));A<h&&A<d&&matchItems(c,g,A,A,n);)s=A,u=new DiffContext(e.left[s],e.right[s]),e.push(u,s),A++;for(;o+A<h&&o+A<d&&matchItems(c,g,h-1-o,d-1-o,n);)a=h-1-o,l=d-1-o,u=new DiffContext(e.left[a],e.right[l]),e.push(u,l),o++;var f=void 0;if(A+o===h){if(h===d){e.setResult(void 0).exit();return}for(f=f||{_t:"a"},s=A;s<d-o;s++)f[s]=[g[s]];e.setResult(f).exit();return}if(A+o===d){for(f=f||{_t:"a"},s=A;s<h-o;s++)f["_"+s]=[c[s],0,0];e.setResult(f).exit();return}delete n.hashCache1,delete n.hashCache2;var I=c.slice(A,h-o),p=g.slice(A,d-o),m=lcs.get(I,p,matchItems,n),E=[];for(f=f||{_t:"a"},s=A;s<h-o;s++)arrayIndexOf(m.indices1,s-A)<0&&(f["_"+s]=[c[s],0,0],E.push(s));var B=!0;e.options&&e.options.arrays&&e.options.arrays.detectMove===!1&&(B=!1);var Q=!1;e.options&&e.options.arrays&&e.options.arrays.includeValueOnMove&&(Q=!0);var w=E.length;for(s=A;s<d-o;s++){var y=arrayIndexOf(m.indices2,s-A);if(y<0){var S=!1;if(B&&w>0){for(var D=0;D<w;D++)if(a=E[D],matchItems(I,p,a-A,s-A,n)){f["_"+a].splice(1,2,s,ARRAY_MOVE),Q||(f["_"+a][0]=""),l=s,u=new DiffContext(e.left[a],e.right[l]),e.push(u,l),E.splice(D,1),S=!0;break}}S||(f[s]=[g[s]])}else a=m.indices1[y]+A,l=m.indices2[y]+A,u=new DiffContext(e.left[a],e.right[l]),e.push(u,l)}e.setResult(f).exit()}};diffFilter$1.filterName="arrays";var compare={numerically:function(e,n){return e-n},numericallyBy:function(e){return function(n,A){return n[e]-A[e]}}},patchFilter$2=function(e){if(e.nested&&e.delta._t==="a"){var n=void 0,A=void 0,o=e.delta,s=e.left,a=[],l=[],c=[];for(n in o)if(n!=="_t")if(n[0]==="_")if(o[n][2]===0||o[n][2]===ARRAY_MOVE)a.push(parseInt(n.slice(1),10));else throw new Error("only removal or move can be applied at original array indices,"+(" invalid diff type: "+o[n][2]));else o[n].length===1?l.push({index:parseInt(n,10),value:o[n][0]}):c.push({index:parseInt(n,10),delta:o[n]});for(a=a.sort(compare.numerically),n=a.length-1;n>=0;n--){A=a[n];var g=o["_"+A],h=s.splice(A,1)[0];g[2]===ARRAY_MOVE&&l.push({index:g[1],value:h})}l=l.sort(compare.numericallyBy("index"));var d=l.length;for(n=0;n<d;n++){var u=l[n];s.splice(u.index,0,u.value)}var f=c.length,I=void 0;if(f>0)for(n=0;n<f;n++){var p=c[n];I=new PatchContext(e.left[p.index],p.delta),e.push(I,p.index)}if(!e.children){e.setResult(e.left).exit();return}e.exit()}};patchFilter$2.filterName="arrays";var collectChildrenPatchFilter$1=function(e){if(!(!e||!e.children)&&e.delta._t==="a"){for(var n=e.children.length,A=void 0,o=0;o<n;o++)A=e.children[o],e.left[A.childName]=A.result;e.setResult(e.left).exit()}};collectChildrenPatchFilter$1.filterName="arraysCollectChildren";var reverseFilter$2=function(e){if(!e.nested){e.delta[2]===ARRAY_MOVE&&(e.newName="_"+e.delta[1],e.setResult([e.delta[0],parseInt(e.childName.substr(1),10),ARRAY_MOVE]).exit());return}if(e.delta._t==="a"){var n=void 0,A=void 0;for(n in e.delta)n!=="_t"&&(A=new ReverseContext(e.delta[n]),e.push(A,n));e.exit()}};reverseFilter$2.filterName="arrays";var reverseArrayDeltaIndex=function(e,n,A){if(typeof n=="string"&&n[0]==="_")return parseInt(n.substr(1),10);if(isArray$2(A)&&A[2]===0)return"_"+n;var o=+n;for(var s in e){var a=e[s];if(isArray$2(a))if(a[2]===ARRAY_MOVE){var l=parseInt(s.substr(1),10),c=a[1];if(c===+n)return l;l<=o&&c>o?o++:l>=o&&c<o&&o--}else if(a[2]===0){var g=parseInt(s.substr(1),10);g<=o&&o++}else a.length===1&&s<=o&&o--}return o};function collectChildrenReverseFilter$1(r){if(!(!r||!r.children)&&r.delta._t==="a"){for(var e=r.children.length,n=void 0,A={_t:"a"},o=0;o<e;o++){n=r.children[o];var s=n.newName;typeof s>"u"&&(s=reverseArrayDeltaIndex(r.delta,n.childName,n.result)),A[s]!==n.result&&(A[s]=n.result)}r.setResult(A).exit()}}collectChildrenReverseFilter$1.filterName="arraysCollectChildren";var diffFilter$2=function(e){e.left instanceof Date?(e.right instanceof Date?e.left.getTime()!==e.right.getTime()?e.setResult([e.left,e.right]):e.setResult(void 0):e.setResult([e.left,e.right]),e.exit()):e.right instanceof Date&&e.setResult([e.left,e.right]).exit()};diffFilter$2.filterName="dates";var TEXT_DIFF=2,DEFAULT_MIN_LENGTH=60,cachedDiffPatch=null,getDiffMatchPatch=function(e){if(!cachedDiffPatch){var n=void 0;if(typeof diff_match_patch<"u")n=typeof diff_match_patch=="function"?new diff_match_patch:new diff_match_patch.diff_match_patch;else if(dmp)try{n=dmp&&new dmp}catch{n=null}if(!n){if(!e)return null;var A=new Error("text diff_match_patch library not found");throw A.diff_match_patch_not_found=!0,A}cachedDiffPatch={diff:function(s,a){return n.patch_toText(n.patch_make(s,a))},patch:function(s,a){for(var l=n.patch_apply(n.patch_fromText(a),s),c=0;c<l[1].length;c++)if(!l[1][c]){var g=new Error("text patch failed");g.textPatchFailed=!0}return l[0]}}}return cachedDiffPatch},diffFilter$3=function(e){if(e.leftType==="string"){var n=e.options&&e.options.textDiff&&e.options.textDiff.minLength||DEFAULT_MIN_LENGTH;if(e.left.length<n||e.right.length<n){e.setResult([e.left,e.right]).exit();return}var A=getDiffMatchPatch();if(!A){e.setResult([e.left,e.right]).exit();return}var o=A.diff;e.setResult([o(e.left,e.right),0,TEXT_DIFF]).exit()}};diffFilter$3.filterName="texts";var patchFilter$3=function(e){if(!e.nested&&e.delta[2]===TEXT_DIFF){var n=getDiffMatchPatch(!0).patch;e.setResult(n(e.left,e.delta[0])).exit()}};patchFilter$3.filterName="texts";var textDeltaReverse=function(e){var n=void 0,A=void 0,o=void 0,s=void 0,a=void 0,l=null,c=/^@@ +-(\d+),(\d+) +\+(\d+),(\d+) +@@$/,g=void 0;for(o=e.split(`
94
+ `),n=0,A=o.length;n<A;n++){s=o[n];var h=s.slice(0,1);h==="@"?(l=c.exec(s),g=n,o[g]="@@ -"+l[3]+","+l[4]+" +"+l[1]+","+l[2]+" @@"):h==="+"?(o[n]="-"+o[n].slice(1),o[n-1].slice(0,1)==="+"&&(a=o[n],o[n]=o[n-1],o[n-1]=a)):h==="-"&&(o[n]="+"+o[n].slice(1))}return o.join(`
95
+ `)},reverseFilter$3=function(e){e.nested||e.delta[2]===TEXT_DIFF&&e.setResult([textDeltaReverse(e.delta[0]),0,TEXT_DIFF]).exit()};reverseFilter$3.filterName="texts";var DiffPatcher=(function(){function r(e){classCallCheck(this,r),this.processor=new Processor(e),this.processor.pipe(new Pipe("diff").append(collectChildrenDiffFilter,diffFilter,diffFilter$2,diffFilter$3,objectsDiffFilter,diffFilter$1).shouldHaveResult()),this.processor.pipe(new Pipe("patch").append(collectChildrenPatchFilter,collectChildrenPatchFilter$1,patchFilter,patchFilter$3,patchFilter$1,patchFilter$2).shouldHaveResult()),this.processor.pipe(new Pipe("reverse").append(collectChildrenReverseFilter,collectChildrenReverseFilter$1,reverseFilter,reverseFilter$3,reverseFilter$1,reverseFilter$2).shouldHaveResult())}return createClass(r,[{key:"options",value:function(){var n;return(n=this.processor).options.apply(n,arguments)}},{key:"diff",value:function(n,A){return this.processor.process(new DiffContext(n,A))}},{key:"patch",value:function(n,A){return this.processor.process(new PatchContext(n,A))}},{key:"reverse",value:function(n){return this.processor.process(new ReverseContext(n))}},{key:"unpatch",value:function(n,A){return this.patch(n,this.reverse(A))}},{key:"clone",value:function(n){return clone(n)}}]),r})(),isArray$3=typeof Array.isArray=="function"?Array.isArray:function(r){return r instanceof Array},getObjectKeys=typeof Object.keys=="function"?function(r){return Object.keys(r)}:function(r){var e=[];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.push(n);return e},trimUnderscore=function(e){return e.substr(0,1)==="_"?e.slice(1):e},arrayKeyToSortNumber=function(e){return e==="_t"?-1:e.substr(0,1)==="_"?parseInt(e.slice(1),10):parseInt(e,10)+.1},arrayKeyComparer=function(e,n){return arrayKeyToSortNumber(e)-arrayKeyToSortNumber(n)},BaseFormatter=(function(){function r(){classCallCheck(this,r)}return createClass(r,[{key:"format",value:function(n,A){var o={};return this.prepareContext(o),this.recurse(o,n,A),this.finalize(o)}},{key:"prepareContext",value:function(n){n.buffer=[],n.out=function(){var A;(A=this.buffer).push.apply(A,arguments)}}},{key:"typeFormattterNotFound",value:function(n,A){throw new Error("cannot format delta type: "+A)}},{key:"typeFormattterErrorFormatter",value:function(n,A){return A.toString()}},{key:"finalize",value:function(n){var A=n.buffer;if(isArray$3(A))return A.join("")}},{key:"recurse",value:function(n,A,o,s,a,l,c){var g=A&&l,h=g?l.value:o;if(!(typeof A>"u"&&typeof s>"u")){var d=this.getDeltaType(A,l),u=d==="node"?A._t==="a"?"array":"object":"";typeof s<"u"?this.nodeBegin(n,s,a,d,u,c):this.rootBegin(n,d,u);var f=void 0;try{f=this["format_"+d]||this.typeFormattterNotFound(n,d),f.call(this,n,A,h,s,a,l)}catch(I){this.typeFormattterErrorFormatter(n,I,A,h,s,a,l),typeof console<"u"&&console.error&&console.error(I.stack)}typeof s<"u"?this.nodeEnd(n,s,a,d,u,c):this.rootEnd(n,d,u)}}},{key:"formatDeltaChildren",value:function(n,A,o){var s=this;this.forEachDeltaKey(A,o,function(a,l,c,g){s.recurse(n,A[a],o?o[l]:void 0,a,l,c,g)})}},{key:"forEachDeltaKey",value:function(n,A,o){var s=getObjectKeys(n),a=n._t==="a",l={},c=void 0;if(typeof A<"u")for(c in A)Object.prototype.hasOwnProperty.call(A,c)&&typeof n[c]>"u"&&(!a||typeof n["_"+c]>"u")&&s.push(c);for(c in n)if(Object.prototype.hasOwnProperty.call(n,c)){var g=n[c];isArray$3(g)&&g[2]===3&&(l[g[1].toString()]={key:c,value:A&&A[parseInt(c.substr(1))]},this.includeMoveDestinations!==!1&&typeof A>"u"&&typeof n[g[1]]>"u"&&s.push(g[1].toString()))}a?s.sort(arrayKeyComparer):s.sort();for(var h=0,d=s.length;h<d;h++){var u=s[h];if(!(a&&u==="_t")){var f=a?typeof u=="number"?u:parseInt(trimUnderscore(u),10):u,I=h===d-1;o(u,f,l[f],I)}}}},{key:"getDeltaType",value:function(n,A){if(typeof n>"u")return typeof A<"u"?"movedestination":"unchanged";if(isArray$3(n)){if(n.length===1)return"added";if(n.length===2)return"modified";if(n.length===3&&n[2]===0)return"deleted";if(n.length===3&&n[2]===2)return"textdiff";if(n.length===3&&n[2]===3)return"moved"}else if((typeof n>"u"?"undefined":_typeof(n))==="object")return"node";return"unknown"}},{key:"parseTextDiff",value:function(n){for(var A=[],o=n.split(`
96
+ @@ `),s=0,a=o.length;s<a;s++){var l=o[s],c={pieces:[]},g=/^(?:@@ )?[-+]?(\d+),(\d+)/.exec(l).slice(1);c.location={line:g[0],chr:g[1]};for(var h=l.split(`
97
+ `).slice(1),d=0,u=h.length;d<u;d++){var f=h[d];if(f.length){var I={type:"context"};f.substr(0,1)==="+"?I.type="added":f.substr(0,1)==="-"&&(I.type="deleted"),I.text=f.slice(1),c.pieces.push(I)}}A.push(c)}return A}}]),r})();(function(r){inherits(e,r);function e(){return classCallCheck(this,e),possibleConstructorReturn(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return createClass(e,[{key:"typeFormattterErrorFormatter",value:function(A,o){A.out('<pre class="jsondiffpatch-error">'+o+"</pre>")}},{key:"formatValue",value:function(A,o){A.out("<pre>"+htmlEscape(JSON.stringify(o,null,2))+"</pre>")}},{key:"formatTextDiffString",value:function(A,o){var s=this.parseTextDiff(o);A.out('<ul class="jsondiffpatch-textdiff">');for(var a=0,l=s.length;a<l;a++){var c=s[a];A.out('<li><div class="jsondiffpatch-textdiff-location">'+('<span class="jsondiffpatch-textdiff-line-number">'+c.location.line+'</span><span class="jsondiffpatch-textdiff-char">'+c.location.chr+'</span></div><div class="jsondiffpatch-textdiff-line">'));for(var g=c.pieces,h=0,d=g.length;h<d;h++){var u=g[h];A.out('<span class="jsondiffpatch-textdiff-'+u.type+'">'+htmlEscape(decodeURI(u.text))+"</span>")}A.out("</div></li>")}A.out("</ul>")}},{key:"rootBegin",value:function(A,o,s){var a="jsondiffpatch-"+o+(s?" jsondiffpatch-child-node-type-"+s:"");A.out('<div class="jsondiffpatch-delta '+a+'">')}},{key:"rootEnd",value:function(A){A.out("</div>"+(A.hasArrows?'<script type="text/javascript">setTimeout('+(adjustArrows.toString()+",10);<\/script>"):""))}},{key:"nodeBegin",value:function(A,o,s,a,l){var c="jsondiffpatch-"+a+(l?" jsondiffpatch-child-node-type-"+l:"");A.out('<li class="'+c+'" data-key="'+s+'">'+('<div class="jsondiffpatch-property-name">'+s+"</div>"))}},{key:"nodeEnd",value:function(A){A.out("</li>")}},{key:"format_unchanged",value:function(A,o,s){typeof s>"u"||(A.out('<div class="jsondiffpatch-value">'),this.formatValue(A,s),A.out("</div>"))}},{key:"format_movedestination",value:function(A,o,s){typeof s>"u"||(A.out('<div class="jsondiffpatch-value">'),this.formatValue(A,s),A.out("</div>"))}},{key:"format_node",value:function(A,o,s){var a=o._t==="a"?"array":"object";A.out('<ul class="jsondiffpatch-node jsondiffpatch-node-type-'+a+'">'),this.formatDeltaChildren(A,o,s),A.out("</ul>")}},{key:"format_added",value:function(A,o){A.out('<div class="jsondiffpatch-value">'),this.formatValue(A,o[0]),A.out("</div>")}},{key:"format_modified",value:function(A,o){A.out('<div class="jsondiffpatch-value jsondiffpatch-left-value">'),this.formatValue(A,o[0]),A.out('</div><div class="jsondiffpatch-value jsondiffpatch-right-value">'),this.formatValue(A,o[1]),A.out("</div>")}},{key:"format_deleted",value:function(A,o){A.out('<div class="jsondiffpatch-value">'),this.formatValue(A,o[0]),A.out("</div>")}},{key:"format_moved",value:function(A,o){A.out('<div class="jsondiffpatch-value">'),this.formatValue(A,o[0]),A.out('</div><div class="jsondiffpatch-moved-destination">'+o[1]+"</div>"),A.out(`<div class="jsondiffpatch-arrow" style="position: relative; left: -34px;">
98
+ <svg width="30" height="60" style="position: absolute; display: none;">
99
+ <defs>
100
+ <marker id="markerArrow" markerWidth="8" markerHeight="8"
101
+ refx="2" refy="4"
102
+ orient="auto" markerUnits="userSpaceOnUse">
103
+ <path d="M1,1 L1,7 L7,4 L1,1" style="fill: #339;" />
104
+ </marker>
105
+ </defs>
106
+ <path d="M30,0 Q-10,25 26,50"
107
+ style="stroke: #88f; stroke-width: 2px; fill: none; stroke-opacity: 0.5; marker-end: url(#markerArrow);"
108
+ ></path>
109
+ </svg>
110
+ </div>`),A.hasArrows=!0}},{key:"format_textdiff",value:function(A,o){A.out('<div class="jsondiffpatch-value">'),this.formatTextDiffString(A,o[0]),A.out("</div>")}}]),e})(BaseFormatter);function htmlEscape(r){for(var e=r,n=[[/&/g,"&amp;"],[/</g,"&lt;"],[/>/g,"&gt;"],[/'/g,"&apos;"],[/"/g,"&quot;"]],A=0;A<n.length;A++)e=e.replace(n[A][0],n[A][1]);return e}var adjustArrows=function(e){var n=e||document,A=function(l){var c=l.textContent,g=l.innerText;return c||g},o=function(l,c,g){for(var h=l.querySelectorAll(c),d=0,u=h.length;d<u;d++)g(h[d])},s=function(l,c){for(var g=l.children,h=0,d=g.length;h<d;h++)c(g[h],h)};o(n,".jsondiffpatch-arrow",function(a){var l=a.parentNode,c=a.children,g=a.style,h=l,d=c[0],u=d.children[1];d.style.display="none";var f=A(h.querySelector(".jsondiffpatch-moved-destination")),I=h.parentNode,p=void 0;if(s(I,function(B){B.getAttribute("data-key")===f&&(p=B)}),!!p)try{var m=p.offsetTop-h.offsetTop;d.setAttribute("height",Math.abs(m)+6),g.top=-8+(m>0?0:m)+"px";var E=m>0?"M30,0 Q-10,"+Math.round(m/2)+" 26,"+(m-4):"M30,"+-m+" Q-10,"+Math.round(-m/2)+" 26,4";u.setAttribute("d",E),d.style.display=""}catch{}})},AnnotatedFormatter=(function(r){inherits(e,r);function e(){classCallCheck(this,e);var n=possibleConstructorReturn(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return n.includeMoveDestinations=!1,n}return createClass(e,[{key:"prepareContext",value:function(A){get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"prepareContext",this).call(this,A),A.indent=function(o){this.indentLevel=(this.indentLevel||0)+(typeof o>"u"?1:o),this.indentPad=new Array(this.indentLevel+1).join("&nbsp;&nbsp;")},A.row=function(o,s){A.out('<tr><td style="white-space: nowrap;"><pre class="jsondiffpatch-annotated-indent" style="display: inline-block">'),A.out(A.indentPad),A.out('</pre><pre style="display: inline-block">'),A.out(o),A.out('</pre></td><td class="jsondiffpatch-delta-note"><div>'),A.out(s),A.out("</div></td></tr>")}}},{key:"typeFormattterErrorFormatter",value:function(A,o){A.row("",'<pre class="jsondiffpatch-error">'+o+"</pre>")}},{key:"formatTextDiffString",value:function(A,o){var s=this.parseTextDiff(o);A.out('<ul class="jsondiffpatch-textdiff">');for(var a=0,l=s.length;a<l;a++){var c=s[a];A.out('<li><div class="jsondiffpatch-textdiff-location">'+('<span class="jsondiffpatch-textdiff-line-number">'+c.location.line+'</span><span class="jsondiffpatch-textdiff-char">'+c.location.chr+'</span></div><div class="jsondiffpatch-textdiff-line">'));for(var g=c.pieces,h=0,d=g.length;h<d;h++){var u=g[h];A.out('<span class="jsondiffpatch-textdiff-'+u.type+'">'+u.text+"</span>")}A.out("</div></li>")}A.out("</ul>")}},{key:"rootBegin",value:function(A,o,s){A.out('<table class="jsondiffpatch-annotated-delta">'),o==="node"&&(A.row("{"),A.indent()),s==="array"&&A.row('"_t": "a",',"Array delta (member names indicate array indices)")}},{key:"rootEnd",value:function(A,o){o==="node"&&(A.indent(-1),A.row("}")),A.out("</table>")}},{key:"nodeBegin",value:function(A,o,s,a,l){A.row("&quot;"+o+"&quot;: {"),a==="node"&&A.indent(),l==="array"&&A.row('"_t": "a",',"Array delta (member names indicate array indices)")}},{key:"nodeEnd",value:function(A,o,s,a,l,c){a==="node"&&A.indent(-1),A.row("}"+(c?"":","))}},{key:"format_unchanged",value:function(){}},{key:"format_movedestination",value:function(){}},{key:"format_node",value:function(A,o,s){this.formatDeltaChildren(A,o,s)}}]),e})(BaseFormatter),wrapPropertyName=function(e){return'<pre style="display:inline-block">&quot;'+e+"&quot;</pre>"},deltaAnnotations={added:function(e,n,A,o){var s=" <pre>([newValue])</pre>";return typeof o>"u"?"new value"+s:typeof o=="number"?"insert at index "+o+s:"add property "+wrapPropertyName(o)+s},modified:function(e,n,A,o){var s=" <pre>([previousValue, newValue])</pre>";return typeof o>"u"?"modify value"+s:typeof o=="number"?"modify at index "+o+s:"modify property "+wrapPropertyName(o)+s},deleted:function(e,n,A,o){var s=" <pre>([previousValue, 0, 0])</pre>";return typeof o>"u"?"delete value"+s:typeof o=="number"?"remove index "+o+s:"delete property "+wrapPropertyName(o)+s},moved:function(e,n,A,o){return'move from <span title="(position to remove at original state)">'+("index "+o+'</span> to <span title="(position to insert at final')+(' state)">index '+e[1]+"</span>")},textdiff:function(e,n,A,o){var s=typeof o>"u"?"":typeof o=="number"?" at index "+o:" at property "+wrapPropertyName(o);return"text diff"+s+', format is <a href="https://code.google.com/p/google-diff-match-patch/wiki/Unidiff">a variation of Unidiff</a>'}},formatAnyChange=function(e,n){var A=this.getDeltaType(n),o=deltaAnnotations[A],s=o&&o.apply(o,Array.prototype.slice.call(arguments,1)),a=JSON.stringify(n,null,2);A==="textdiff"&&(a=a.split("\\n").join(`\\n"+
111
+ "`)),e.indent(),e.row(a,s),e.indent(-1)};AnnotatedFormatter.prototype.format_added=formatAnyChange;AnnotatedFormatter.prototype.format_modified=formatAnyChange;AnnotatedFormatter.prototype.format_deleted=formatAnyChange;AnnotatedFormatter.prototype.format_moved=formatAnyChange;AnnotatedFormatter.prototype.format_textdiff=formatAnyChange;var OPERATIONS={add:"add",remove:"remove",replace:"replace",move:"move"};(function(r){inherits(e,r);function e(){classCallCheck(this,e);var n=possibleConstructorReturn(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return n.includeMoveDestinations=!0,n}return createClass(e,[{key:"prepareContext",value:function(A){get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"prepareContext",this).call(this,A),A.result=[],A.path=[],A.pushCurrentOp=function(o){var s=o.op,a=o.value,l={op:s,path:this.currentPath()};typeof a<"u"&&(l.value=a),this.result.push(l)},A.pushMoveOp=function(o){var s=this.currentPath();this.result.push({op:OPERATIONS.move,from:s,path:this.toPath(o)})},A.currentPath=function(){return"/"+this.path.join("/")},A.toPath=function(o){var s=this.path.slice();return s[s.length-1]=o,"/"+s.join("/")}}},{key:"typeFormattterErrorFormatter",value:function(A,o){A.out("[ERROR] "+o)}},{key:"rootBegin",value:function(){}},{key:"rootEnd",value:function(){}},{key:"nodeBegin",value:function(A,o,s){var a=A.path;a.push(s)}},{key:"nodeEnd",value:function(A){var o=A.path;o.pop()}},{key:"format_unchanged",value:function(){}},{key:"format_movedestination",value:function(){}},{key:"format_node",value:function(A,o,s){this.formatDeltaChildren(A,o,s)}},{key:"format_added",value:function(A,o){A.pushCurrentOp({op:OPERATIONS.add,value:o[0]})}},{key:"format_modified",value:function(A,o){A.pushCurrentOp({op:OPERATIONS.replace,value:o[1]})}},{key:"format_deleted",value:function(A){A.pushCurrentOp({op:OPERATIONS.remove})}},{key:"format_moved",value:function(A,o){var s=o[1];A.pushMoveOp(s)}},{key:"format_textdiff",value:function(){throw new Error("Not implemented")}},{key:"format",value:function(A,o){var s={};return this.prepareContext(s),this.recurse(s,A,o),s.result}}]),e})(BaseFormatter);function chalkColor(r){return function(){for(var e=arguments.length,n=Array(e),A=0;A<e;A++)n[A]=arguments[A];return n}}var colors={added:chalkColor(),deleted:chalkColor(),movedestination:chalkColor(),moved:chalkColor(),unchanged:chalkColor(),error:chalkColor(),textDiffLine:chalkColor()};(function(r){inherits(e,r);function e(){classCallCheck(this,e);var n=possibleConstructorReturn(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return n.includeMoveDestinations=!1,n}return createClass(e,[{key:"prepareContext",value:function(A){get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"prepareContext",this).call(this,A),A.indent=function(o){this.indentLevel=(this.indentLevel||0)+(typeof o>"u"?1:o),this.indentPad=new Array(this.indentLevel+1).join(" "),this.outLine()},A.outLine=function(){this.buffer.push(`
112
+ `+(this.indentPad||""))},A.out=function(){for(var o=arguments.length,s=Array(o),a=0;a<o;a++)s[a]=arguments[a];for(var l=0,c=s.length;l<c;l++){var g=s[l].split(`
113
+ `),h=g.join(`
114
+ `+(this.indentPad||""));this.color&&this.color[0]&&(h=this.color[0](h)),this.buffer.push(h)}},A.pushColor=function(o){this.color=this.color||[],this.color.unshift(o)},A.popColor=function(){this.color=this.color||[],this.color.shift()}}},{key:"typeFormattterErrorFormatter",value:function(A,o){A.pushColor(colors.error),A.out("[ERROR]"+o),A.popColor()}},{key:"formatValue",value:function(A,o){A.out(JSON.stringify(o,null,2))}},{key:"formatTextDiffString",value:function(A,o){var s=this.parseTextDiff(o);A.indent();for(var a=0,l=s.length;a<l;a++){var c=s[a];A.pushColor(colors.textDiffLine),A.out(c.location.line+","+c.location.chr+" "),A.popColor();for(var g=c.pieces,h=0,d=g.length;h<d;h++){var u=g[h];A.pushColor(colors[u.type]),A.out(u.text),A.popColor()}a<l-1&&A.outLine()}A.indent(-1)}},{key:"rootBegin",value:function(A,o,s){A.pushColor(colors[o]),o==="node"&&(A.out(s==="array"?"[":"{"),A.indent())}},{key:"rootEnd",value:function(A,o,s){o==="node"&&(A.indent(-1),A.out(s==="array"?"]":"}")),A.popColor()}},{key:"nodeBegin",value:function(A,o,s,a,l){A.pushColor(colors[a]),A.out(s+": "),a==="node"&&(A.out(l==="array"?"[":"{"),A.indent())}},{key:"nodeEnd",value:function(A,o,s,a,l,c){a==="node"&&(A.indent(-1),A.out(l==="array"?"]":"}"+(c?"":","))),c||A.outLine(),A.popColor()}},{key:"format_unchanged",value:function(A,o,s){typeof s>"u"||this.formatValue(A,s)}},{key:"format_movedestination",value:function(A,o,s){typeof s>"u"||this.formatValue(A,s)}},{key:"format_node",value:function(A,o,s){this.formatDeltaChildren(A,o,s)}},{key:"format_added",value:function(A,o){this.formatValue(A,o[0])}},{key:"format_modified",value:function(A,o){A.pushColor(colors.deleted),this.formatValue(A,o[0]),A.popColor(),A.out(" => "),A.pushColor(colors.added),this.formatValue(A,o[1]),A.popColor()}},{key:"format_deleted",value:function(A,o){this.formatValue(A,o[0])}},{key:"format_moved",value:function(A,o){A.out("==> "+o[1])}},{key:"format_textdiff",value:function(A,o){this.formatTextDiffString(A,o[0])}}]),e})(BaseFormatter);const diffPatcher=new DiffPatcher({arrays:{detectMove:!1,includeValueOnMove:!1},textDiff:{minLength:1}});function diff(r,e){return diffPatcher.diff(r,e)}const addedProperties=["docChanged","isGeneric","scrolledIntoView","selectionSet","storedMarksSet"];function addPropertiesToTransaction(r){return Object.keys(r).concat(addedProperties).reduce((e,n)=>(e[n]=r[n],e),{})}function buildSelection(r){return{type:r.type,empty:r.empty,anchor:r.anchor,head:r.head,from:r.from,to:r.to}}function pad(r){return("00"+r).slice(-2)}function pad3(r){return("000"+r).slice(-3)}const formatTimestamp=r=>{const e=new Date(r);return[pad(e.getHours()),pad(e.getMinutes()),pad(e.getSeconds()),pad3(e.getMilliseconds())].join(":")},srcAttr=/src=[\"|\']data:(.*);base64,(.*)[\"|\']/g,wrappingCarets=/(&lt;\/?[\w\d\s="']+&gt;)/gim,highlightHtmlString=r=>r.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(wrappingCarets,"<span style='color: cadetblue;'>$&</span>");function createHistoryEntry(r,e,n,A){const o=DOMSerializer.fromSchema(e.schema),s=e.selection,a=o.serializeFragment(s.content().content),l=[];if(a){let d=a.firstChild;for(;d;)l.push(d.outerHTML.replaceAll(srcAttr,'src="..."')),d=d.nextSibling}const c=A?A.state:n,g=diff(c.doc.toJSON(),e.doc.toJSON()),h=diff(buildSelection(c.selection),buildSelection(e.selection));return{id:Math.random().toString()+Math.random().toString(),state:e,trs:r.map(d=>addPropertiesToTransaction(d)),timestamp:r[0].time,timeStr:formatTimestamp(r[0].time),contentDiff:g,selectionDiff:h,selectionHtml:highlightHtmlString(htmlExports.prettyPrint(l.join(`
115
+ `),{max_char:60,indent_size:2}))}}const stateHistory=writable(new Map),shownHistoryGroups=writable([]),latestEntry=writable(void 0),nextId=writable(0);function appendNewHistoryEntry(r,e,n){const A=get_store_value(stateHistory),o=get_store_value(shownHistoryGroups)[0],s=A.get(o?.topEntryId||""),a=createHistoryEntry(r,e,n,s);stateHistory.update(c=>new Map(c.set(a.id,a))),latestEntry.set(a);const l=!a.contentDiff;if(o?.isGroup&&l){const c={id:o.id,isGroup:l,entryIds:[a.id,...o.entryIds],topEntryId:a.id,expanded:o.expanded};shownHistoryGroups.update(g=>[c,...g.slice(1)])}else{const c=get_store_value(nextId)+1,g={id:c,isGroup:l,entryIds:[a.id],topEntryId:a.id,expanded:!1};shownHistoryGroups.update(h=>[g,...h]),nextId.set(c)}}function resetHistory(){stateHistory.set(new Map),shownHistoryGroups.set([]),latestEntry.set(void 0)}function getActiveMarks(r){if(r.selection.empty){const e=r.selection.$from,n=r.storedMarks;return n?n.map(A=>A.type.name):e.marks().map(A=>A.type.name)}else{const e=r.selection.$head,n=r.selection.$anchor,A=new Set;return e.marks().forEach(o=>A.add(o.type.name)),n.marks().forEach(o=>A.add(o.type.name)),Array.from(A)}}const defaultProperties=["jsonID","empty","anchor","from","head","to"],resolvedPosProperties=["$anchor","$head","$cursor","$to","$from"],resolvedPosSubProperties=["nodeAfter","nodeBefore","textOffset"];function createSelection(r){return defaultProperties.reduce((e,n)=>(e[n]=r[n],e),{})}function createFullSelection(r){return defaultProperties.concat(resolvedPosProperties).reduce((e,n)=>{let A=r[n];if(A&&resolvedPosProperties.includes(n)){const o={};resolvedPosSubProperties.forEach(s=>{o[s]=A[s]}),A=Object.assign(Object.assign({},A),o)}return e[n]=A,e},{})}function createNode(r,e,n,A,o){const s=o?[...o.path,r]:[];return{id:"[".concat(s.join(","),"]"),index:r,key:e,value:n,depth:A,collapsed:!0,type:getValueType(n),path:s,parentId:o?o.id:null,circularOfId:null,children:[]}}function getValueType(r){return Array.isArray(r)?"array":r instanceof Map?"map":r instanceof Set?"set":r instanceof Date?"date":r===null?"null":typeof r}function getChildren(r,e){switch(e){case"array":return r.map((A,o)=>[o.toString(),A]);case"map":return Array.from(r.entries()).map((A,o)=>{let[s,a]=A;return["[map entry ".concat(o,"]"),{"[key]":s,"[value]":a}]});case"set":return Array.from(r.values()).map((A,o)=>["[set entry ".concat(o,"]"),A]);case"object":return Object.entries(r);default:return[]}}function shouldRecurseChildren(r,e,n,A){if(e){if(r.collapsed&&e?.collapsed)return!1;if(A.stopCircularRecursion){if(A.isCircularNode)return A.isCircularNode(r,n);if(r.type==="object"||r.type==="array"){const o=n.get(r.value);if(o&&r.id!==o.id)return r.circularOfId=o.id,!1;n.set(r.value,r)}}else return!0}else return!0;return!0}function recurseObjectProperties(r,e,n,A,o,s,a,l,c,g,h){var d;if(!((d=h.omitKeys)===null||d===void 0)&&d.includes(e)||h.maxDepth&&A>h.maxDepth)return null;const u=createNode(r,e,n,A,s),f=l.get(u.id);if(o?u.collapsed=!1:f&&!g?u.collapsed=f.collapsed:h.shouldExpandNode&&(u.collapsed=!h.shouldExpandNode(u)),a.set(u.id,u),shouldRecurseChildren(u,s,c,h)){const I=h.mapChildren&&h.mapChildren(n,getValueType(n),u),p=I??getChildren(n,getValueType(n));u.children=p.map((m,E)=>{let[B,Q]=m;return recurseObjectProperties(E,B,Q,A+1,!1,u,a,l,c,g,h)}).filter(m=>m!==null)}return u}function recomputeTree(r,e,n,A){const o=new Map,s=new Map,a=recurseObjectProperties(-1,"root",r,0,!0,null,o,e,s,A,n);return{treeMap:o,tree:a,iteratedValues:s}}const createPropsStore=r=>{const e=writable(r),n=derived(e,A=>A.recursionOpts);return{props:e,recursionOpts:n,setProps(A){e.set(A)},formatValue(A,o){const{valueFormatter:s}=get_store_value(e),a=s?s(A,o):void 0;if(a)return a;switch(o.type){case"array":return"".concat(o.circularOfId?"circular":""," [] ").concat(A.length," items");case"object":return"".concat(o.circularOfId?"circular":""," {} ").concat(Object.keys(A).length," keys");case"map":case"set":return"".concat(o.circularOfId?"circular":""," () ").concat(A.size," entries");case"date":return"".concat(A.toISOString());case"string":return'"'.concat(A,'"');case"boolean":return A?"true":"false";case"symbol":return String(A);default:return A}}}},createRootElementStore=()=>{const r=writable(null);return{set:r.set,subscribe:r.subscribe}},createTreeStore=r=>{const e=createNode(0,"root",[],0,null),n=writable(e),A=writable(new Map),o=writable(new Map);return{tree:n,treeMap:A,defaultRootNode:e,init(s,a,l){s?n.set(s):n.set(e),A.set(a),o.set(l)},getNode(s){return get_store_value(A).get(s)},toggleCollapse(s){const a=get_store_value(A).get(s);if(!a){console.warn("Attempted to collapse non-existent node: ".concat(s));return}const l=Object.assign(Object.assign({},a),{collapsed:!a.collapsed});A.update(g=>new Map(g.set(a.id,l)));const c=get_store_value(r.recursionOpts);c&&this.expandNodeChildren(l,c)},expandNodeChildren(s,a){const l=this.getNode(s?.parentId||"")||null;if(!l)throw Error("No parent in expandNodeChildren for node: "+s);const c=new Map(get_store_value(A)),g=get_store_value(A),h=get_store_value(o),d=recurseObjectProperties(s.index,s.key,s.value,s.depth,!s.collapsed,l,c,g,h,!1,a);d&&(l.children=l.children.map(u=>u.id===d.id?d:u),c.set(d.id,d),c.set(l.id,l),A.set(c),o.set(h))},expandAllNodesToNode(s){function a(c,g){g&&(c.set(g.id,Object.assign(Object.assign({},g),{collapsed:!1})),g.parentId&&a(c,c.get(g.parentId)))}const l=new Map(get_store_value(A));a(l,l.get(s)),A.set(l)}}};function add_css$h(r){append_styles(r,"svelte-ngcjq5","ul.svelte-ngcjq5.svelte-ngcjq5{display:flex;flex-direction:column;height:max-content;list-style:none;padding:0;padding-left:var(--tree-view-left-indent);margin:0;width:100%}li.svelte-ngcjq5.svelte-ngcjq5{align-items:baseline;display:flex;height:max-content;line-height:var(--tree-view-line-height);list-style:none;width:100%}li.svelte-ngcjq5+li.svelte-ngcjq5{margin-top:0.25em}.empty-block.svelte-ngcjq5.svelte-ngcjq5{visibility:hidden}.node-key.svelte-ngcjq5.svelte-ngcjq5{color:var(--tree-view-base0D);margin-right:var(--tree-view-key-margin-right)}.node-key.has-children.svelte-ngcjq5.svelte-ngcjq5{cursor:pointer}.node-key.p-left.svelte-ngcjq5.svelte-ngcjq5{padding-left:1.1em}.node-value.svelte-ngcjq5.svelte-ngcjq5{color:var(--tree-view-base0B);margin-right:0.5em;word-break:break-all}.node-value[data-type=number].svelte-ngcjq5.svelte-ngcjq5,.node-value[data-type=boolean].svelte-ngcjq5.svelte-ngcjq5{color:var(--tree-view-base09)}.node-value[data-type=null].svelte-ngcjq5.svelte-ngcjq5,.node-value[data-type=undefined].svelte-ngcjq5.svelte-ngcjq5{color:var(--tree-view-base08)}.node-value.expanded.svelte-ngcjq5.svelte-ngcjq5{color:var(--tree-view-base03)}.node-value.has-children.svelte-ngcjq5.svelte-ngcjq5{cursor:pointer}.arrow-btn.svelte-ngcjq5.svelte-ngcjq5{background:transparent;border:0;color:var(--tree-view-base0D);cursor:pointer;margin-right:0.7em;padding:0;transition:all 150ms ease 0s;transform:rotateZ(90deg);transform-origin:47% 43%;position:relative;line-height:1.1em;font-size:0.75em}.arrow-btn.collapsed.svelte-ngcjq5.svelte-ngcjq5{transform:rotateZ(0deg)}.buttons.svelte-ngcjq5.svelte-ngcjq5{display:flex;flex-wrap:wrap}.log-copy-button.svelte-ngcjq5.svelte-ngcjq5{background:transparent;border:0;color:var(--tree-view-base0D);cursor:pointer;margin:0;padding:0 0.5em}.log-copy-button.svelte-ngcjq5.svelte-ngcjq5:hover{background:rgba(255, 162, 177, 0.4);border-radius:2px;color:var(--tree-view-base07)}")}function get_each_context$7(r,e,n){const A=r.slice();return A[14]=e[n],A}function create_if_block_4$3(r){let e,n,A,o,s;return{c(){e=element("button"),n=text("▶"),attr(e,"class",A=null_to_empty("arrow-btn ".concat(r[0].collapsed?"collapsed":""))+" svelte-ngcjq5")},m(a,l){insert(a,e,l),append(e,n),o||(s=listen(e,"click",r[9]),o=!0)},p(a,l){l&1&&A!==(A=null_to_empty("arrow-btn ".concat(a[0].collapsed?"collapsed":""))+" svelte-ngcjq5")&&attr(e,"class",A)},d(a){a&&detach(e),o=!1,s()}}}function create_else_block$8(r){let e=r[5].formatValue(r[0].value,r[0])+"",n;return{c(){n=text(e)},m(A,o){insert(A,n,o)},p(A,o){o&1&&e!==(e=A[5].formatValue(A[0].value,A[0])+"")&&set_data(n,e)},i:noop,o:noop,d(A){A&&detach(n)}}}function create_if_block_3$4(r){let e,n,A;var o=r[3];function s(a,l){return{props:{value:a[0].value,node:a[0],defaultFormatter:a[10]}}}return o&&(e=construct_svelte_component(o,s(r))),{c(){e&&create_component(e.$$.fragment),n=empty()},m(a,l){e&&mount_component(e,a,l),insert(a,n,l),A=!0},p(a,l){if(l&8&&o!==(o=a[3])){if(e){group_outros();const c=e;transition_out(c.$$.fragment,1,0,()=>{destroy_component(c,1)}),check_outros()}o?(e=construct_svelte_component(o,s(a)),create_component(e.$$.fragment),transition_in(e.$$.fragment,1),mount_component(e,n.parentNode,n)):e=null}else if(o){const c={};l&1&&(c.value=a[0].value),l&1&&(c.node=a[0]),e.$set(c)}},i(a){A||(e&&transition_in(e.$$.fragment,a),A=!0)},o(a){e&&transition_out(e.$$.fragment,a),A=!1},d(a){a&&detach(n),e&&destroy_component(e,a)}}}function create_if_block_2$5(r){let e,n,A;return{c(){e=element("button"),e.textContent="log",attr(e,"class","log-copy-button svelte-ngcjq5")},m(o,s){insert(o,e,s),n||(A=listen(e,"click",r[7]),n=!0)},p:noop,d(o){o&&detach(e),n=!1,A()}}}function create_if_block_1$6(r){let e,n,A;return{c(){e=element("button"),e.textContent="copy",attr(e,"class","log-copy-button svelte-ngcjq5")},m(o,s){insert(o,e,s),n||(A=listen(e,"click",r[8]),n=!0)},p:noop,d(o){o&&detach(e),n=!1,A()}}}function create_if_block$9(r){let e,n,A,o=ensure_array_like(r[0].children),s=[];for(let l=0;l<o.length;l+=1)s[l]=create_each_block$7(get_each_context$7(r,o,l));const a=l=>transition_out(s[l],1,1,()=>{s[l]=null});return{c(){e=element("li"),n=element("ul");for(let l=0;l<s.length;l+=1)s[l].c();attr(n,"class","svelte-ngcjq5"),attr(e,"class","row svelte-ngcjq5")},m(l,c){insert(l,e,c),append(e,n);for(let g=0;g<s.length;g+=1)s[g]&&s[g].m(n,null);A=!0},p(l,c){if(c&1){o=ensure_array_like(l[0].children);let g;for(g=0;g<o.length;g+=1){const h=get_each_context$7(l,o,g);s[g]?(s[g].p(h,c),transition_in(s[g],1)):(s[g]=create_each_block$7(h),s[g].c(),transition_in(s[g],1),s[g].m(n,null))}for(group_outros(),g=o.length;g<s.length;g+=1)a(g);check_outros()}},i(l){if(!A){for(let c=0;c<o.length;c+=1)transition_in(s[c]);A=!0}},o(l){s=s.filter(Boolean);for(let c=0;c<s.length;c+=1)transition_out(s[c]);A=!1},d(l){l&&detach(e),destroy_each(s,l)}}}function create_each_block$7(r){let e,n;return e=new TreeViewNode({props:{id:r[14].id}}),{c(){create_component(e.$$.fragment)},m(A,o){mount_component(e,A,o),n=!0},p(A,o){const s={};o&1&&(s.id=A[14].id),e.$set(s)},i(A){n||(transition_in(e.$$.fragment,A),n=!0)},o(A){transition_out(e.$$.fragment,A),n=!1},d(A){destroy_component(e,A)}}}function create_fragment$h(r){let e,n,A,o=r[0].key+"",s,a,l,c,g,h,d,u,f,I,p,m,E,B,Q,w,y=r[2]&&create_if_block_4$3(r);const S=[create_if_block_3$4,create_else_block$8],D=[];function _(R,N){return R[3]?0:1}g=_(r),h=D[g]=S[g](r);let M=r[1].showLogButton&&create_if_block_2$5(r),v=r[1].showCopyButton&&create_if_block_1$6(r),F=!r[0].collapsed&&r[2]&&create_if_block$9(r);return{c(){e=element("li"),y&&y.c(),n=space(),A=element("div"),s=text(o),a=text(":"),l=space(),c=element("div"),h.c(),u=space(),f=element("div"),M&&M.c(),I=space(),v&&v.c(),m=space(),F&&F.c(),E=empty(),attr(A,"class","node-key svelte-ngcjq5"),attr(A,"role","presentation"),toggle_class(A,"has-children",r[2]),toggle_class(A,"p-left",!r[2]),attr(c,"class","node-value svelte-ngcjq5"),attr(c,"data-type",d=r[0].type),attr(c,"role","presentation"),toggle_class(c,"expanded",!r[0].collapsed&&r[2]),toggle_class(c,"has-children",r[2]),attr(f,"class","buttons svelte-ngcjq5"),attr(e,"class","row svelte-ngcjq5"),attr(e,"data-tree-id",p=r[0].id),toggle_class(e,"collapsed",r[0].collapsed&&r[2])},m(R,N){insert(R,e,N),y&&y.m(e,null),append(e,n),append(e,A),append(A,s),append(A,a),append(e,l),append(e,c),D[g].m(c,null),append(e,u),append(e,f),M&&M.m(f,null),append(f,I),v&&v.m(f,null),insert(R,m,N),F&&F.m(R,N),insert(R,E,N),B=!0,Q||(w=[listen(A,"click",r[9]),listen(c,"click",r[9])],Q=!0)},p(R,N){let[L]=N;R[2]?y?y.p(R,L):(y=create_if_block_4$3(R),y.c(),y.m(e,n)):y&&(y.d(1),y=null),(!B||L&1)&&o!==(o=R[0].key+"")&&set_data(s,o),(!B||L&4)&&toggle_class(A,"has-children",R[2]),(!B||L&4)&&toggle_class(A,"p-left",!R[2]);let G=g;g=_(R),g===G?D[g].p(R,L):(group_outros(),transition_out(D[G],1,1,()=>{D[G]=null}),check_outros(),h=D[g],h?h.p(R,L):(h=D[g]=S[g](R),h.c()),transition_in(h,1),h.m(c,null)),(!B||L&1&&d!==(d=R[0].type))&&attr(c,"data-type",d),(!B||L&5)&&toggle_class(c,"expanded",!R[0].collapsed&&R[2]),(!B||L&4)&&toggle_class(c,"has-children",R[2]),R[1].showLogButton?M?M.p(R,L):(M=create_if_block_2$5(R),M.c(),M.m(f,I)):M&&(M.d(1),M=null),R[1].showCopyButton?v?v.p(R,L):(v=create_if_block_1$6(R),v.c(),v.m(f,null)):v&&(v.d(1),v=null),(!B||L&1&&p!==(p=R[0].id))&&attr(e,"data-tree-id",p),(!B||L&5)&&toggle_class(e,"collapsed",R[0].collapsed&&R[2]),!R[0].collapsed&&R[2]?F?(F.p(R,L),L&5&&transition_in(F,1)):(F=create_if_block$9(R),F.c(),transition_in(F,1),F.m(E.parentNode,E)):F&&(group_outros(),transition_out(F,1,1,()=>{F=null}),check_outros())},i(R){B||(transition_in(h),transition_in(F),B=!0)},o(R){transition_out(h),transition_out(F),B=!1},d(R){R&&(detach(e),detach(m),detach(E)),y&&y.d(),D[g].d(),M&&M.d(),v&&v.d(),F&&F.d(R),Q=!1,run_all(w)}}}function instance$h(r,e,n){let A,o,s,a,l,c=noop,g=()=>(c(),c=subscribe(o,Q=>n(1,l=Q)),o);r.$$.on_destroy.push(()=>c());let{id:h}=e;const{treeStore:d,propsStore:u,rootElementStore:f}=getContext$1("svelte-tree-view");component_subscribe(r,f,Q=>n(12,a=Q));let I;d.treeMap.subscribe(Q=>{const w=Q.get(h);w&&I!==w&&n(0,I=w)});function p(){console.info("%c [svelte-tree-view]: Property added to window._node","color: #b8e248"),console.log(I.value);try{typeof window<"u"&&(window._node=I.value)}catch{console.error("Failed to set _node, window was undefined")}}function m(){try{navigator.clipboard.writeText(JSON.stringify(I.value))}catch(Q){console.error("Copying node to clipboard failed: ",Q)}}function E(){var Q;A?d.toggleCollapse(I.id):I.circularOfId&&(d.expandAllNodesToNode(I.circularOfId),(Q=a?.querySelector('li[data-tree-id="'.concat(I.circularOfId,'"]')))===null||Q===void 0||Q.scrollIntoView())}function B(Q){return u.formatValue(Q,I)}return r.$$set=Q=>{"id"in Q&&n(11,h=Q.id)},r.$$.update=()=>{if(r.$$.dirty&2048){let Q=d.getNode(h);if(!Q)throw Error("[svelte-tree-view] TreeViewNode.svelte received undefined node from treeMapStore whereas it should be already unmounted!");n(0,I=Q)}r.$$.dirty&1&&n(2,A=I&&I.children.length>0),r.$$.dirty&2&&n(3,s=l.valueComponent)},g(n(4,o=u.props)),[I,l,A,s,o,u,f,p,m,E,B,h]}class TreeViewNode extends SvelteComponent{constructor(e){super(),init$1(this,e,instance$h,create_fragment$h,safe_not_equal,{id:11},add_css$h)}}function add_css$g(r){append_styles(r,"svelte-167awo5",":root{--tree-view-font-family:'Helvetica Neue', 'Calibri Light', Roboto, sans-serif;--tree-view-font-size:13px;--tree-view-left-indent:0.875em;--tree-view-line-height:1.1;--tree-view-key-margin-right:0.5em}ul.svelte-167awo5{background:var(--tree-view-base00);font-family:var(--tree-view-font-family);font-size:var(--tree-view-font-size);height:max-content;list-style:none;margin:0;padding:0;width:max-content}")}function get_each_context$6(r,e,n){const A=r.slice();return A[18]=e[n],A}function create_each_block$6(r){let e,n;return e=new TreeViewNode({props:{id:r[18].id}}),{c(){create_component(e.$$.fragment)},m(A,o){mount_component(e,A,o),n=!0},p(A,o){const s={};o&4&&(s.id=A[18].id),e.$set(s)},i(A){n||(transition_in(e.$$.fragment,A),n=!0)},o(A){transition_out(e.$$.fragment,A),n=!1},d(A){destroy_component(e,A)}}}function create_fragment$g(r){let e,n,A,o=ensure_array_like(r[2].children),s=[];for(let l=0;l<o.length;l+=1)s[l]=create_each_block$6(get_each_context$6(r,o,l));const a=l=>transition_out(s[l],1,1,()=>{s[l]=null});return{c(){e=element("ul");for(let l=0;l<s.length;l+=1)s[l].c();attr(e,"class",n=null_to_empty("".concat(r[3].class||""," svelte-tree-view"))+" svelte-167awo5")},m(l,c){insert(l,e,c);for(let g=0;g<s.length;g+=1)s[g]&&s[g].m(e,null);r[13](e),A=!0},p(l,c){let[g]=c;if(g&4){o=ensure_array_like(l[2].children);let h;for(h=0;h<o.length;h+=1){const d=get_each_context$6(l,o,h);s[h]?(s[h].p(d,g),transition_in(s[h],1)):(s[h]=create_each_block$6(d),s[h].c(),transition_in(s[h],1),s[h].m(e,null))}for(group_outros(),h=o.length;h<s.length;h+=1)a(h);check_outros()}(!A||g&8&&n!==(n=null_to_empty("".concat(l[3].class||""," svelte-tree-view"))+" svelte-167awo5"))&&attr(e,"class",n)},i(l){if(!A){for(let c=0;c<o.length;c+=1)transition_in(s[c]);A=!0}},o(l){s=s.filter(Boolean);for(let c=0;c<s.length;c+=1)transition_out(s[c]);A=!1},d(l){l&&detach(e),destroy_each(s,l),r[13](null)}}}function instance$g(r,e,n){let A,o,s=noop,a=()=>(s(),s=subscribe(A,S=>n(2,o=S)),A);r.$$.on_destroy.push(()=>s());var l;let{data:c,theme:g=void 0,showLogButton:h=!1,showCopyButton:d=!1,valueComponent:u=void 0,recursionOpts:f={},valueFormatter:I=void 0}=e,p=null;const m={maxDepth:16,omitKeys:[],stopCircularRecursion:!1,shouldExpandNode:()=>!1};let E={showLogButton:h,showCopyButton:d,valueComponent:u,recursionOpts:{...m,...f},valueFormatter:I};const B=createPropsStore(E),Q=createRootElementStore(),w=createTreeStore(B);setContext$1("svelte-tree-view",{propsStore:B,rootElementStore:Q,treeStore:w}),onMount(()=>{Q.set(p)});function y(S){binding_callbacks[S?"unshift":"push"](()=>{p=S,n(0,p)})}return r.$$set=S=>{n(3,e=assign(assign({},e),exclude_internal_props(S))),"data"in S&&n(4,c=S.data),"theme"in S&&n(5,g=S.theme),"showLogButton"in S&&n(6,h=S.showLogButton),"showCopyButton"in S&&n(7,d=S.showCopyButton),"valueComponent"in S&&n(8,u=S.valueComponent),"recursionOpts"in S&&n(9,f=S.recursionOpts),"valueFormatter"in S&&n(10,I=S.valueFormatter)},r.$$.update=()=>{if(r.$$.dirty&5568&&n(12,E={showLogButton:h,showCopyButton:d,valueComponent:u,valueFormatter:I,recursionOpts:E.recursionOpts}),r.$$.dirty&6672){const S={...m,...f},D=(n(11,l=E?.recursionOpts)===null||l===void 0?void 0:l.shouldExpandNode)!==S.shouldExpandNode,_=get_store_value(w.treeMap),{treeMap:M,tree:v,iteratedValues:F}=recomputeTree(c,_,S,D);w.init(v,M,F),n(12,E.recursionOpts=S,E),B.setProps(E)}if(r.$$.dirty&33&&g&&p){let S;for(S in g){const D=g[S];p&&S.includes("base")&&D&&p.style.setProperty("--tree-view-".concat(S),D)}}},a(n(1,A=w.tree)),e=exclude_internal_props(e),[p,A,o,e,c,g,h,d,u,f,I,l,E,y]}class TreeView extends SvelteComponent{constructor(e){super(),init$1(this,e,instance$g,create_fragment$g,safe_not_equal,{data:4,theme:5,showLogButton:6,showCopyButton:7,valueComponent:8,recursionOpts:9,valueFormatter:10},add_css$g)}}function add_css$f(r){append_styles(r,"svelte-fdudio",".split-view.svelte-fdudio{border-top:1px solid rgba(255, 162, 177, 0.2);color:#fff;display:flex;height:calc(100% - var(--height-tabs-menu));width:100%}.split-view h2{color:rgb(187, 145, 163);font-family:var(--font-sans);font-size:var(--font-medium);font-weight:400;letter-spacing:1px;margin:0;text-transform:uppercase}.split-view > .left-panel{display:flex;flex-direction:column;flex-grow:1;overflow:scroll;padding:1em}.split-view > .right-panel{border-left:1px solid rgba(255, 162, 177, 0.2);display:flex;flex-direction:column;flex-grow:1;overflow:scroll;padding:1em}.split-view .hidden{visibility:hidden}")}const get_right_slot_changes=r=>({}),get_right_slot_context=r=>({class:"right-panel"}),get_left_slot_changes=r=>({}),get_left_slot_context=r=>({class:"left-panel"});function create_fragment$f(r){let e,n,A;const o=r[1].left,s=create_slot(o,r,r[0],get_left_slot_context),a=r[1].right,l=create_slot(a,r,r[0],get_right_slot_context);return{c(){e=element("section"),s&&s.c(),n=space(),l&&l.c(),attr(e,"class","split-view svelte-fdudio")},m(c,g){insert(c,e,g),s&&s.m(e,null),append(e,n),l&&l.m(e,null),A=!0},p(c,g){let[h]=g;s&&s.p&&(!A||h&1)&&update_slot_base(s,o,c,c[0],A?get_slot_changes(o,c[0],h,get_left_slot_changes):get_all_dirty_from_scope(c[0]),get_left_slot_context),l&&l.p&&(!A||h&1)&&update_slot_base(l,a,c,c[0],A?get_slot_changes(a,c[0],h,get_right_slot_changes):get_all_dirty_from_scope(c[0]),get_right_slot_context)},i(c){A||(transition_in(s,c),transition_in(l,c),A=!0)},o(c){transition_out(s,c),transition_out(l,c),A=!1},d(c){c&&detach(e),s&&s.d(c),l&&l.d(c)}}}function instance$f(r,e,n){let{$$slots:A={},$$scope:o}=e;return r.$$set=s=>{"$$scope"in s&&n(0,o=s.$$scope)},[o,A]}class SplitView extends SvelteComponent{constructor(e){super(),init$1(this,e,instance$f,create_fragment$f,safe_not_equal,{},add_css$f)}}function add_css$e(r){append_styles(r,"svelte-it3v6s","button.svelte-it3v6s{background:transparent;border:0;border-radius:2px;color:#d3d3d9;cursor:pointer;font-family:var(--font-family);font-size:var(--font-small);font-weight:400;padding:6px 10px;text-transform:uppercase}button.svelte-it3v6s:hover{background:rgba(255, 162, 177, 0.4);color:#fff}button.selected.svelte-it3v6s{background:rgba(255, 162, 177, 0.4)}")}function create_fragment$e(r){let e,n,A,o,s;const a=r[3].default,l=create_slot(a,r,r[2],null);return{c(){e=element("button"),l&&l.c(),attr(e,"class",n=null_to_empty("".concat(r[1].class||""))+" svelte-it3v6s"),toggle_class(e,"selected",r[0])},m(c,g){insert(c,e,g),l&&l.m(e,null),A=!0,o||(s=[listen(e,"click",r[4]),listen(e,"mouseover",r[5]),listen(e,"mouseenter",r[6]),listen(e,"mouseleave",r[7]),listen(e,"focus",r[8])],o=!0)},p(c,g){let[h]=g;l&&l.p&&(!A||h&4)&&update_slot_base(l,a,c,c[2],A?get_slot_changes(a,c[2],h,null):get_all_dirty_from_scope(c[2]),null),(!A||h&2&&n!==(n=null_to_empty("".concat(c[1].class||""))+" svelte-it3v6s"))&&attr(e,"class",n),(!A||h&3)&&toggle_class(e,"selected",c[0])},i(c){A||(transition_in(l,c),A=!0)},o(c){transition_out(l,c),A=!1},d(c){c&&detach(e),l&&l.d(c),o=!1,run_all(s)}}}function instance$e(r,e,n){let{$$slots:A={},$$scope:o}=e,{selected:s=!1}=e;function a(d){bubble.call(this,r,d)}function l(d){bubble.call(this,r,d)}function c(d){bubble.call(this,r,d)}function g(d){bubble.call(this,r,d)}function h(d){bubble.call(this,r,d)}return r.$$set=d=>{n(1,e=assign(assign({},e),exclude_internal_props(d))),"selected"in d&&n(0,s=d.selected),"$$scope"in d&&n(2,o=d.$$scope)},e=exclude_internal_props(e),[s,e,o,A,a,l,c,g,h]}class Button extends SvelteComponent{constructor(e){super(),init$1(this,e,instance$e,create_fragment$e,safe_not_equal,{selected:0},add_css$e)}}function add_css$d(r){append_styles(r,"svelte-8c7oqn",'@charset "UTF-8";.top-row.svelte-8c7oqn{align-items:center;display:flex;justify-content:space-between}.left-panel[slot=left].svelte-8c7oqn{overflow:scroll}.right-panel[slot=right].svelte-8c7oqn{border-left:1px solid rgba(255, 162, 177, 0.2);flex-grow:0;min-width:200px;width:200px}.split-view .selection-btn{height:24px;width:35px}.caret-icon.svelte-8c7oqn::before{content:"▶"}.caret-icon.expanded.svelte-8c7oqn::before{content:"▼"}.no-marks.svelte-8c7oqn{color:#85d9ef;margin:0.5em 0 1.25em 1em}.split-view .tree-view{margin:0.5em 0 1.25em 0}')}function create_default_slot_1$4(r){let e;return{c(){e=text("log")},m(n,A){insert(n,e,A)},d(n){n&&detach(e)}}}function create_left_slot$4(r){let e,n,A,o,s,a,l,c;return s=new Button({props:{$$slots:{default:[create_default_slot_1$4]},$$scope:{ctx:r}}}),s.$on("click",r[6]),l=new TreeView({props:{class:"tree-view",data:r[0],showLogButton:!0,showCopyButton:!0,valueFormatter:formatDocNodeValue}}),{c(){e=element("div"),n=element("div"),A=element("h2"),A.textContent="Current doc",o=space(),create_component(s.$$.fragment),a=space(),create_component(l.$$.fragment),attr(n,"class","top-row svelte-8c7oqn"),attr(e,"slot","left"),attr(e,"class","left-panel svelte-8c7oqn")},m(g,h){insert(g,e,h),append(e,n),append(n,A),append(n,o),mount_component(s,n,null),append(e,a),mount_component(l,e,null),c=!0},p(g,h){const d={};h&1024&&(d.$$scope={dirty:h,ctx:g}),s.$set(d);const u={};h&1&&(u.data=g[0]),l.$set(u)},i(g){c||(transition_in(s.$$.fragment,g),transition_in(l.$$.fragment,g),c=!0)},o(g){transition_out(s.$$.fragment,g),transition_out(l.$$.fragment,g),c=!1},d(g){g&&detach(e),destroy_component(s),destroy_component(l)}}}function create_default_slot$4(r){let e;return{c(){e=element("span"),attr(e,"class","caret-icon svelte-8c7oqn"),toggle_class(e,"expanded",r[5])},m(n,A){insert(n,e,A)},p(n,A){A&32&&toggle_class(e,"expanded",n[5])},d(n){n&&detach(e)}}}function create_else_block$7(r){let e,n;return e=new TreeView({props:{class:"tree-view",data:r[2]}}),{c(){create_component(e.$$.fragment)},m(A,o){mount_component(e,A,o),n=!0},p(A,o){const s={};o&4&&(s.data=A[2]),e.$set(s)},i(A){n||(transition_in(e.$$.fragment,A),n=!0)},o(A){transition_out(e.$$.fragment,A),n=!1},d(A){destroy_component(e,A)}}}function create_if_block$8(r){let e;return{c(){e=element("div"),e.textContent="No active marks",attr(e,"class","no-marks svelte-8c7oqn")},m(n,A){insert(n,e,A)},p:noop,i:noop,o:noop,d(n){n&&detach(e)}}}function create_right_slot$5(r){let e,n,A,o,s,a,l,c,g,h,d,u,f,I,p,m,E,B,Q;s=new Button({props:{class:"selection-btn",$$slots:{default:[create_default_slot$4]},$$scope:{ctx:r}}}),s.$on("click",r[7]),l=new TreeView({props:{class:"tree-view",data:r[1]}});const w=[create_if_block$8,create_else_block$7],y=[];function S(D,_){return D[2].length===0?0:1}return u=S(r),f=y[u]=w[u](r),B=new TreeView({props:{class:"tree-view",data:{nodeSize:r[3],childCount:r[4]}}}),{c(){e=element("div"),n=element("div"),A=element("h2"),A.textContent="Selection",o=space(),create_component(s.$$.fragment),a=space(),create_component(l.$$.fragment),c=space(),g=element("div"),h=element("h2"),h.textContent="Active marks",d=space(),f.c(),I=space(),p=element("div"),m=element("h2"),m.textContent="Document stats",E=space(),create_component(B.$$.fragment),attr(n,"class","top-row svelte-8c7oqn"),attr(e,"slot","right"),attr(e,"class","right-panel svelte-8c7oqn")},m(D,_){insert(D,e,_),append(e,n),append(n,A),append(n,o),mount_component(s,n,null),append(e,a),mount_component(l,e,null),append(e,c),append(e,g),append(g,h),append(g,d),y[u].m(g,null),append(e,I),append(e,p),append(p,m),append(p,E),mount_component(B,p,null),Q=!0},p(D,_){const M={};_&1056&&(M.$$scope={dirty:_,ctx:D}),s.$set(M);const v={};_&2&&(v.data=D[1]),l.$set(v);let F=u;u=S(D),u===F?y[u].p(D,_):(group_outros(),transition_out(y[F],1,1,()=>{y[F]=null}),check_outros(),f=y[u],f?f.p(D,_):(f=y[u]=w[u](D),f.c()),transition_in(f,1),f.m(g,null));const R={};_&24&&(R.data={nodeSize:D[3],childCount:D[4]}),B.$set(R)},i(D){Q||(transition_in(s.$$.fragment,D),transition_in(l.$$.fragment,D),transition_in(f),transition_in(B.$$.fragment,D),Q=!0)},o(D){transition_out(s.$$.fragment,D),transition_out(l.$$.fragment,D),transition_out(f),transition_out(B.$$.fragment,D),Q=!1},d(D){D&&detach(e),destroy_component(s),destroy_component(l),y[u].d(),destroy_component(B)}}}function create_fragment$d(r){let e,n;return e=new SplitView({props:{$$slots:{right:[create_right_slot$5],left:[create_left_slot$4]},$$scope:{ctx:r}}}),{c(){create_component(e.$$.fragment)},m(A,o){mount_component(e,A,o),n=!0},p(A,o){let[s]=o;const a={};s&1087&&(a.$$scope={dirty:s,ctx:A}),e.$set(a)},i(A){n||(transition_in(e.$$.fragment,A),n=!0)},o(A){transition_out(e.$$.fragment,A),n=!1},d(A){destroy_component(e,A)}}}function formatDocNodeValue(r,e){if(e.type==="object"&&r.type)return"{} ".concat(r.type)}function instance$d(r,e,n){const{view:A}=getContext("editor-view");let o=A.state.doc.toJSON(),s=createSelection(A.state.selection),a=A.state,l=[],c=A.state.doc.nodeSize,g=A.state.doc.childCount,h=!1;latestEntry.subscribe(f=>{if(!f)return;const{state:I}=f;a=I,n(0,o=I.doc.toJSON()),n(1,s=h?createFullSelection(I.selection):createSelection(I.selection)),n(2,l=getActiveMarks(I)),n(3,c=I.doc.nodeSize),n(4,g=I.doc.childCount)});function d(){console.log(o),window._doc=o}function u(){n(5,h=!h),h?n(1,s=createFullSelection(a.selection)):n(1,s=createSelection(a.selection))}return[o,s,l,c,g,h,d,u]}class StateTab extends SvelteComponent{constructor(e){super(),init$1(this,e,instance$d,create_fragment$d,safe_not_equal,{},add_css$d)}}function mapSelectionDeltaChildren(r,e,n){if(e==="array")return[]}function mapDocDeltaChildren(r,e){if(e==="array"&&r[1]===0&&r[2]===0)return[];if(e==="array"&&typeof r[0]=="string"&&r[1]===0&&r[2]===2)return[];if(e==="array"&&r.length===1&&typeof r[0]=="object")return[];if(e!=="object"||r._t!=="a")return;const n=[];for(const A in r)A!=="_t"&&(A.charAt(0)==="_"?n.push([A.substr(1),r[A]]):n.push([A,r[A]]));return n}function add_css$c(r){append_styles(r,"svelte-vbjxb8",'@charset "UTF-8";ul.svelte-vbjxb8.svelte-vbjxb8{color:#fff;list-style:none;margin:0;padding:0;height:100%;width:100%}li.svelte-vbjxb8.svelte-vbjxb8{transition:background 0.7s ease}li.svelte-vbjxb8.svelte-vbjxb8:hover{background:rgba(255, 162, 177, 0.4);color:#fff}li.selected.svelte-vbjxb8.svelte-vbjxb8{background:rgba(255, 162, 177, 0.4)}li.svelte-vbjxb8+li.svelte-vbjxb8{border-top:1px solid rgb(96, 76, 104)}button.svelte-vbjxb8.svelte-vbjxb8{background:transparent;border:0;color:#d3d3d9;cursor:pointer;display:flex;font-family:monospace;font-size:var(--font-medium);justify-content:space-between;padding:6px 18px;text-transform:uppercase;width:100%}button.p-left.svelte-vbjxb8.svelte-vbjxb8{margin-left:1em}.caret-icon.svelte-vbjxb8.svelte-vbjxb8::before{content:"▶"}.caret-icon.expanded.svelte-vbjxb8.svelte-vbjxb8::before{content:"▼"}')}function get_each_context$5(r,e,n){const A=r.slice();return A[6]=e[n],A[8]=n,A}function get_each_context_1(r,e,n){const A=r.slice();return A[9]=e[n],A}function create_if_block_3$3(r){let e,n=r[6].entries.length+"",A,o;return{c(){e=text("["),A=text(n),o=text("]")},m(s,a){insert(s,e,a),insert(s,A,a),insert(s,o,a)},p(s,a){a&1&&n!==(n=s[6].entries.length+"")&&set_data(A,n)},d(s){s&&(detach(e),detach(A),detach(o))}}}function create_if_block_2$4(r){let e,n=r[6].topEntry.trs.length-1+"",A;return{c(){e=text("+"),A=text(n)},m(o,s){insert(o,e,s),insert(o,A,s)},p(o,s){s&1&&n!==(n=o[6].topEntry.trs.length-1+"")&&set_data(A,n)},d(o){o&&(detach(e),detach(A))}}}function create_if_block_1$5(r){let e;return{c(){e=element("span"),attr(e,"class","caret-icon svelte-vbjxb8"),toggle_class(e,"expanded",r[6].expanded)},m(n,A){insert(n,e,A)},p(n,A){A&1&&toggle_class(e,"expanded",n[6].expanded)},d(n){n&&detach(e)}}}function create_if_block$7(r){let e=[],n=new Map,A,o=ensure_array_like(r[6].entries);const s=a=>{var l;return(l=a[9])===null||l===void 0?void 0:l.id};for(let a=0;a<o.length;a+=1){let l=get_each_context_1(r,o,a),c=s(l);n.set(c,e[a]=create_each_block_1(c,l))}return{c(){for(let a=0;a<e.length;a+=1)e[a].c();A=empty()},m(a,l){for(let c=0;c<e.length;c+=1)e[c]&&e[c].m(a,l);insert(a,A,l)},p(a,l){l&7&&(o=ensure_array_like(a[6].entries),e=update_keyed_each(e,l,s,1,a,o,n,A.parentNode,destroy_block,create_each_block_1,A,get_each_context_1))},d(a){a&&detach(A);for(let l=0;l<e.length;l+=1)e[l].d(a)}}}function create_each_block_1(r,e){var n;let A,o,s=((n=e[9])===null||n===void 0?void 0:n.timeStr)+"",a,l,c,g;function h(){return e[5](e[9],e[8])}return{key:r,first:null,c(){var d;A=element("li"),o=element("button"),a=text(s),l=space(),attr(o,"class","p-left svelte-vbjxb8"),attr(A,"class","svelte-vbjxb8"),toggle_class(A,"selected",e[1]===((d=e[9])===null||d===void 0?void 0:d.id)),this.first=A},m(d,u){insert(d,A,u),append(A,o),append(o,a),append(A,l),c||(g=listen(o,"click",h),c=!0)},p(d,u){var f;if(e=d,u&1&&s!==(s=((f=e[9])===null||f===void 0?void 0:f.timeStr)+"")&&set_data(a,s),u&3){var I;toggle_class(A,"selected",e[1]===((I=e[9])===null||I===void 0?void 0:I.id))}},d(d){d&&detach(A),c=!1,g()}}}function create_each_block$5(r,e){var n;let A,o,s,a=((n=e[6])===null||n===void 0||(n=n.topEntry)===null||n===void 0?void 0:n.timeStr)+"",l,c,g,h,d,u,f,I,p=e[6].isGroup&&create_if_block_3$3(e),m=e[6].topEntry&&e[6].topEntry.trs.length>1&&create_if_block_2$4(e),E=e[6].isGroup&&e[6].entries.length>1&&create_if_block_1$5(e);function B(){return e[3](e[6],e[8])}function Q(){return e[4](e[6])}let w=e[6].isGroup&&e[6].expanded&&create_if_block$7(e);return{key:r,first:null,c(){var y;A=element("li"),o=element("button"),s=element("span"),l=text(a),c=space(),p&&p.c(),g=space(),m&&m.c(),h=space(),E&&E.c(),d=space(),w&&w.c(),u=empty(),attr(o,"class","svelte-vbjxb8"),toggle_class(o,"is-group",e[6].isGroup),attr(A,"class","svelte-vbjxb8"),toggle_class(A,"selected",!e[6].expanded&&e[1]===((y=e[6])===null||y===void 0||(y=y.topEntry)===null||y===void 0?void 0:y.id)),this.first=A},m(y,S){insert(y,A,S),append(A,o),append(o,s),append(s,l),append(s,c),p&&p.m(s,null),append(s,g),m&&m.m(s,null),append(o,h),E&&E.m(o,null),insert(y,d,S),w&&w.m(y,S),insert(y,u,S),f||(I=[listen(o,"click",B),listen(o,"dblclick",Q)],f=!0)},p(y,S){var D;if(e=y,S&1&&a!==(a=((D=e[6])===null||D===void 0||(D=D.topEntry)===null||D===void 0?void 0:D.timeStr)+"")&&set_data(l,a),e[6].isGroup?p?p.p(e,S):(p=create_if_block_3$3(e),p.c(),p.m(s,g)):p&&(p.d(1),p=null),e[6].topEntry&&e[6].topEntry.trs.length>1?m?m.p(e,S):(m=create_if_block_2$4(e),m.c(),m.m(s,null)):m&&(m.d(1),m=null),e[6].isGroup&&e[6].entries.length>1?E?E.p(e,S):(E=create_if_block_1$5(e),E.c(),E.m(o,null)):E&&(E.d(1),E=null),S&1&&toggle_class(o,"is-group",e[6].isGroup),S&3){var _;toggle_class(A,"selected",!e[6].expanded&&e[1]===((_=e[6])===null||_===void 0||(_=_.topEntry)===null||_===void 0?void 0:_.id))}e[6].isGroup&&e[6].expanded?w?w.p(e,S):(w=create_if_block$7(e),w.c(),w.m(u.parentNode,u)):w&&(w.d(1),w=null)},d(y){y&&(detach(A),detach(d),detach(u)),p&&p.d(),m&&m.d(),E&&E.d(),w&&w.d(y),f=!1,run_all(I)}}}function create_fragment$c(r){let e,n=[],A=new Map,o=ensure_array_like(r[0]);const s=a=>a[6].id;for(let a=0;a<o.length;a+=1){let l=get_each_context$5(r,o,a),c=s(l);A.set(c,n[a]=create_each_block$5(c,l))}return{c(){e=element("ul");for(let a=0;a<n.length;a+=1)n[a].c();attr(e,"class","svelte-vbjxb8")},m(a,l){insert(a,e,l);for(let c=0;c<n.length;c+=1)n[c]&&n[c].m(e,null)},p(a,l){let[c]=l;c&7&&(o=ensure_array_like(a[0]),n=update_keyed_each(n,c,s,1,a,o,A,e,destroy_block,create_each_block$5,null,get_each_context$5))},i:noop,o:noop,d(a){a&&detach(e);for(let l=0;l<n.length;l+=1)n[l].d()}}}function instance$c(r,e,n){let{listItems:A=[],selectedId:o}=e;const s=createEventDispatcher(),a=(g,h)=>{var d;return s("click-item",{id:g==null||(d=g.topEntry)===null||d===void 0?void 0:d.id,groupIdx:h,wasTopNode:!0})},l=g=>{var h;return s("dblclick-item",{id:g==null||(h=g.topEntry)===null||h===void 0?void 0:h.id})},c=(g,h)=>s("click-item",{id:g?.id,groupIdx:h,wasTopNode:!1});return r.$$set=g=>{"listItems"in g&&n(0,A=g.listItems),"selectedId"in g&&n(1,o=g.selectedId)},[A,o,s,a,l,c]}class HistoryList extends SvelteComponent{constructor(e){super(),init$1(this,e,instance$c,create_fragment$c,safe_not_equal,{listItems:0,selectedId:1},add_css$c)}}function add_css$b(r){append_styles(r,"svelte-1a1oqej",".added.svelte-1a1oqej.svelte-1a1oqej{display:inline-block;background:#87cc86;border-radius:1px;color:green;padding:1px 2px;text-indent:0;min-height:1ex}.deleted.svelte-1a1oqej.svelte-1a1oqej{display:inline-block;background:#d66363;border-radius:1px;color:#222;padding:1px 2px;text-decoration:line-through;text-indent:0;min-height:1ex}.updated.svelte-1a1oqej.svelte-1a1oqej{word-break:break-all}.updated.svelte-1a1oqej .added.svelte-1a1oqej{background:#eaea37}.arrow.svelte-1a1oqej.svelte-1a1oqej{color:#87cc86}")}function get_each_context$4(r,e,n){const A=r.slice();return A[3]=e[n],A}function create_else_block_1$1(r){let e=r[0](r[1])+"",n;return{c(){n=text(e)},m(A,o){insert(A,n,o)},p(A,o){o&3&&e!==(e=A[0](A[1])+"")&&set_data(n,e)},d(A){A&&detach(n)}}}function create_if_block$6(r){let e;function n(s,a){if(s[1].length===1)return create_if_block_1$4;if(s[1].length===2)return create_if_block_2$3;if(s[1].length===3&&s[1][1]===0&&s[1][2]===0)return create_if_block_3$2;if(s[1].length===3&&s[1][2]===2)return create_if_block_4$2}let A=n(r),o=A&&A(r);return{c(){o&&o.c(),e=empty()},m(s,a){o&&o.m(s,a),insert(s,e,a)},p(s,a){A===(A=n(s))&&o?o.p(s,a):(o&&o.d(1),o=A&&A(s),o&&(o.c(),o.m(e.parentNode,e)))},d(s){s&&detach(e),o&&o.d(s)}}}function create_if_block_4$2(r){let e,n=ensure_array_like(parseTextDiff(r[1][0])),A=[];for(let o=0;o<n.length;o+=1)A[o]=create_each_block$4(get_each_context$4(r,n,o));return{c(){e=element("span");for(let o=0;o<A.length;o+=1)A[o].c();attr(e,"class","updated svelte-1a1oqej")},m(o,s){insert(o,e,s);for(let a=0;a<A.length;a+=1)A[a]&&A[a].m(e,null)},p(o,s){if(s&2){n=ensure_array_like(parseTextDiff(o[1][0]));let a;for(a=0;a<n.length;a+=1){const l=get_each_context$4(o,n,a);A[a]?A[a].p(l,s):(A[a]=create_each_block$4(l),A[a].c(),A[a].m(e,null))}for(;a<A.length;a+=1)A[a].d(1);A.length=n.length}},d(o){o&&detach(e),destroy_each(A,o)}}}function create_if_block_3$2(r){let e,n=getValueString(r[1][0])+"",A;return{c(){e=element("span"),A=text(n),attr(e,"class","deleted svelte-1a1oqej")},m(o,s){insert(o,e,s),append(e,A)},p(o,s){s&2&&n!==(n=getValueString(o[1][0])+"")&&set_data(A,n)},d(o){o&&detach(e)}}}function create_if_block_2$3(r){let e,n,A=getValueString(r[1][0])+"",o,s,a,l,c,g=getValueString(r[1][1])+"",h;return{c(){e=element("span"),n=element("span"),o=text(A),s=space(),a=element("span"),a.textContent="=>",l=space(),c=element("span"),h=text(g),attr(n,"class","deleted svelte-1a1oqej"),attr(a,"class","arrow svelte-1a1oqej"),attr(c,"class","added svelte-1a1oqej"),attr(e,"class","updated svelte-1a1oqej")},m(d,u){insert(d,e,u),append(e,n),append(n,o),append(e,s),append(e,a),append(e,l),append(e,c),append(c,h)},p(d,u){u&2&&A!==(A=getValueString(d[1][0])+"")&&set_data(o,A),u&2&&g!==(g=getValueString(d[1][1])+"")&&set_data(h,g)},d(d){d&&detach(e)}}}function create_if_block_1$4(r){let e,n=getValueString(r[1][0])+"",A;return{c(){e=element("span"),A=text(n),attr(e,"class","added svelte-1a1oqej")},m(o,s){insert(o,e,s),append(e,A)},p(o,s){s&2&&n!==(n=getValueString(o[1][0])+"")&&set_data(A,n)},d(o){o&&detach(e)}}}function create_else_block$6(r){let e,n=r[3].raw+"",A;return{c(){e=element("span"),A=text(n)},m(o,s){insert(o,e,s),append(e,A)},p(o,s){s&2&&n!==(n=o[3].raw+"")&&set_data(A,n)},d(o){o&&detach(e)}}}function create_if_block_6(r){let e,n=r[3].add+"",A;return{c(){e=element("span"),A=text(n),attr(e,"class","added svelte-1a1oqej")},m(o,s){insert(o,e,s),append(e,A)},p(o,s){s&2&&n!==(n=o[3].add+"")&&set_data(A,n)},d(o){o&&detach(e)}}}function create_if_block_5$2(r){let e,n=r[3].delete+"",A;return{c(){e=element("span"),A=text(n),attr(e,"class","deleted svelte-1a1oqej")},m(o,s){insert(o,e,s),append(e,A)},p(o,s){s&2&&n!==(n=o[3].delete+"")&&set_data(A,n)},d(o){o&&detach(e)}}}function create_each_block$4(r){let e;function n(s,a){return s[3].delete?create_if_block_5$2:s[3].add?create_if_block_6:create_else_block$6}let A=n(r),o=A(r);return{c(){o.c(),e=empty()},m(s,a){o.m(s,a),insert(s,e,a)},p(s,a){A===(A=n(s))&&o?o.p(s,a):(o.d(1),o=A(s),o&&(o.c(),o.m(e.parentNode,e)))},d(s){s&&detach(e),o.d(s)}}}function create_fragment$b(r){let e,n;function A(a,l){return l&2&&(e=null),e==null&&(e=!!Array.isArray(a[1])),e?create_if_block$6:create_else_block_1$1}let o=A(r,-1),s=o(r);return{c(){s.c(),n=empty()},m(a,l){s.m(a,l),insert(a,n,l)},p(a,l){let[c]=l;o===(o=A(a,c))&&s?s.p(a,c):(s.d(1),s=o(a),s&&(s.c(),s.m(n.parentNode,n)))},i:noop,o:noop,d(a){a&&detach(n),s.d(a)}}}function replaceSpacesWithNonBreakingSpace(r){return r.replace(/\s/gm," ")}function parseTextDiff(r){return r.split(/\n/gm).slice(1).map(n=>({[n.startsWith("-")?"delete":n.startsWith("+")?"add":"raw"]:replaceSpacesWithNonBreakingSpace(n.slice(1))}))}function stringifyAndShrink(r){if(r===null)return"null";const e=JSON.stringify(r);return typeof e>"u"?"undefined":e.length>22?"".concat(e.slice(0,15),"…").concat(e.slice(-5)):e}function getValueString(r){return typeof r=="string"?r:stringifyAndShrink(r)}function instance$b(r,e,n){let A,{node:o,defaultFormatter:s}=e;return r.$$set=a=>{"node"in a&&n(2,o=a.node),"defaultFormatter"in a&&n(0,s=a.defaultFormatter)},r.$$.update=()=>{r.$$.dirty&4&&n(1,A=o.value)},[s,A,o]}class DiffValue extends SvelteComponent{constructor(e){super(),init$1(this,e,instance$b,create_fragment$b,safe_not_equal,{node:2,defaultFormatter:0},add_css$b)}}function add_css$a(r){append_styles(r,"svelte-r7zw98",".left-panel.svelte-r7zw98.svelte-r7zw98{flex-grow:0;padding:0;min-width:190px;width:190px}.title-container.svelte-r7zw98.svelte-r7zw98{align-items:center;display:flex}.transaction-buttons.svelte-r7zw98.svelte-r7zw98{margin-left:2rem}.entry-row.svelte-r7zw98+.entry-row.svelte-r7zw98{margin-top:1em}.selection-html.svelte-r7zw98.svelte-r7zw98{font-weight:100;margin:0.5em 0 0 0;padding:0}.equal-diff.svelte-r7zw98.svelte-r7zw98{align-items:center;color:rgb(255, 162, 177);display:flex;font-size:14px;height:100%;justify-content:center;width:100%}")}function get_each_context$3(r,e,n){const A=r.slice();return A[13]=e[n],A}function create_left_slot$3(r){var e;let n,A,o;return A=new HistoryList({props:{listItems:r[4],selectedId:((e=r[0])===null||e===void 0?void 0:e.id)||""}}),A.$on("click-item",r[7]),A.$on("dblclick-item",r[8]),{c(){n=element("div"),create_component(A.$$.fragment),attr(n,"slot","left"),attr(n,"class","left-panel svelte-r7zw98")},m(s,a){insert(s,n,a),mount_component(A,n,null),o=!0},p(s,a){var l;const c={};a&16&&(c.listItems=s[4]),a&1&&(c.selectedId=((l=s[0])===null||l===void 0?void 0:l.id)||""),A.$set(c)},i(s){o||(transition_in(A.$$.fragment,s),o=!0)},o(s){transition_out(A.$$.fragment,s),o=!1},d(s){s&&detach(n),destroy_component(A)}}}function create_else_block$5(r){let e;return{c(){e=element("div"),e.textContent="Docs are equal.",attr(e,"class","equal-diff svelte-r7zw98")},m(n,A){insert(n,e,A)},p:noop,i:noop,o:noop,d(n){n&&detach(e)}}}function create_if_block$5(r){let e,n,A,o,s,a,l,c,g,h,d,u,f,I=r[0].contentDiff&&create_if_block_5$1(r),p=r[0].selectionDiff&&create_if_block_4$1(r),m=r[0].selectionHtml.length>0&&create_if_block_3$1(r),E=r[1]&&create_if_block_2$2(r);d=new Button({props:{$$slots:{default:[create_default_slot$3]},$$scope:{ctx:r}}}),d.$on("click",r[5]);let B=r[1]&&create_if_block_1$3(r);return{c(){e=element("div"),I&&I.c(),n=space(),p&&p.c(),A=space(),m&&m.c(),o=space(),s=element("div"),a=element("div"),l=element("h2"),l.textContent="Transactions",c=space(),g=element("div"),E&&E.c(),h=space(),create_component(d.$$.fragment),u=space(),B&&B.c(),attr(g,"class","transaction-buttons svelte-r7zw98"),attr(a,"class","title-container svelte-r7zw98"),attr(s,"class","entry-row svelte-r7zw98")},m(Q,w){insert(Q,e,w),I&&I.m(e,null),append(e,n),p&&p.m(e,null),append(e,A),m&&m.m(e,null),append(e,o),append(e,s),append(s,a),append(a,l),append(a,c),append(a,g),E&&E.m(g,null),append(g,h),mount_component(d,g,null),append(s,u),B&&B.m(s,null),f=!0},p(Q,w){Q[0].contentDiff?I?(I.p(Q,w),w&1&&transition_in(I,1)):(I=create_if_block_5$1(Q),I.c(),transition_in(I,1),I.m(e,n)):I&&(group_outros(),transition_out(I,1,1,()=>{I=null}),check_outros()),Q[0].selectionDiff?p?(p.p(Q,w),w&1&&transition_in(p,1)):(p=create_if_block_4$1(Q),p.c(),transition_in(p,1),p.m(e,A)):p&&(group_outros(),transition_out(p,1,1,()=>{p=null}),check_outros()),Q[0].selectionHtml.length>0?m?(m.p(Q,w),w&1&&transition_in(m,1)):(m=create_if_block_3$1(Q),m.c(),transition_in(m,1),m.m(e,o)):m&&(group_outros(),transition_out(m,1,1,()=>{m=null}),check_outros()),Q[1]?E?(E.p(Q,w),w&2&&transition_in(E,1)):(E=create_if_block_2$2(Q),E.c(),transition_in(E,1),E.m(g,h)):E&&(group_outros(),transition_out(E,1,1,()=>{E=null}),check_outros());const y={};w&65538&&(y.$$scope={dirty:w,ctx:Q}),d.$set(y),Q[1]?B?(B.p(Q,w),w&2&&transition_in(B,1)):(B=create_if_block_1$3(Q),B.c(),transition_in(B,1),B.m(s,null)):B&&(group_outros(),transition_out(B,1,1,()=>{B=null}),check_outros())},i(Q){f||(transition_in(I),transition_in(p),transition_in(m),transition_in(E),transition_in(d.$$.fragment,Q),transition_in(B),f=!0)},o(Q){transition_out(I),transition_out(p),transition_out(m),transition_out(E),transition_out(d.$$.fragment,Q),transition_out(B),f=!1},d(Q){Q&&detach(e),I&&I.d(),p&&p.d(),m&&m.d(),E&&E.d(),destroy_component(d),B&&B.d()}}}function create_if_block_5$1(r){let e,n,A,o,s,a,l,c;return s=new Button({props:{class:"hidden",$$slots:{default:[create_default_slot_5]},$$scope:{ctx:r}}}),l=new TreeView({props:{class:"tree-view",data:r[0].contentDiff,showLogButton:!0,showCopyButton:!0,valueComponent:DiffValue,recursionOpts:{maxDepth:12,mapChildren:mapDocDeltaChildren,shouldExpandNode:func$1}}}),{c(){e=element("div"),n=element("div"),A=element("h2"),A.textContent="Doc diff",o=space(),create_component(s.$$.fragment),a=space(),create_component(l.$$.fragment),attr(n,"class","title-container svelte-r7zw98"),attr(e,"class","entry-row svelte-r7zw98")},m(g,h){insert(g,e,h),append(e,n),append(n,A),append(n,o),mount_component(s,n,null),append(e,a),mount_component(l,e,null),c=!0},p(g,h){const d={};h&65536&&(d.$$scope={dirty:h,ctx:g}),s.$set(d);const u={};h&1&&(u.data=g[0].contentDiff),l.$set(u)},i(g){c||(transition_in(s.$$.fragment,g),transition_in(l.$$.fragment,g),c=!0)},o(g){transition_out(s.$$.fragment,g),transition_out(l.$$.fragment,g),c=!1},d(g){g&&detach(e),destroy_component(s),destroy_component(l)}}}function create_default_slot_5(r){let e;return{c(){e=text("log")},m(n,A){insert(n,e,A)},d(n){n&&detach(e)}}}function create_if_block_4$1(r){let e,n,A,o,s,a,l,c;return s=new Button({props:{class:"hidden",$$slots:{default:[create_default_slot_4]},$$scope:{ctx:r}}}),l=new TreeView({props:{class:"tree-view",data:r[0].selectionDiff,valueComponent:DiffValue,recursionOpts:{mapChildren:mapSelectionDeltaChildren,shouldExpandNode:func_1}}}),{c(){e=element("div"),n=element("div"),A=element("h2"),A.textContent="Selection diff",o=space(),create_component(s.$$.fragment),a=space(),create_component(l.$$.fragment),attr(n,"class","title-container svelte-r7zw98"),attr(e,"class","entry-row svelte-r7zw98")},m(g,h){insert(g,e,h),append(e,n),append(n,A),append(n,o),mount_component(s,n,null),append(e,a),mount_component(l,e,null),c=!0},p(g,h){const d={};h&65536&&(d.$$scope={dirty:h,ctx:g}),s.$set(d);const u={};h&1&&(u.data=g[0].selectionDiff),l.$set(u)},i(g){c||(transition_in(s.$$.fragment,g),transition_in(l.$$.fragment,g),c=!0)},o(g){transition_out(s.$$.fragment,g),transition_out(l.$$.fragment,g),c=!1},d(g){g&&detach(e),destroy_component(s),destroy_component(l)}}}function create_default_slot_4(r){let e;return{c(){e=text("log")},m(n,A){insert(n,e,A)},d(n){n&&detach(e)}}}function create_if_block_3$1(r){let e,n,A,o,s,a,l,c,g=r[0].selectionHtml+"",h;return s=new Button({props:{class:"hidden",$$slots:{default:[create_default_slot_3]},$$scope:{ctx:r}}}),{c(){e=element("div"),n=element("div"),A=element("h2"),A.textContent="Selection content",o=space(),create_component(s.$$.fragment),a=space(),l=element("pre"),c=element("code"),attr(n,"class","title-container svelte-r7zw98"),attr(l,"class","selection-html svelte-r7zw98"),attr(e,"class","entry-row svelte-r7zw98")},m(d,u){insert(d,e,u),append(e,n),append(n,A),append(n,o),mount_component(s,n,null),append(e,a),append(e,l),append(l,c),c.innerHTML=g,h=!0},p(d,u){const f={};u&65536&&(f.$$scope={dirty:u,ctx:d}),s.$set(f),(!h||u&1)&&g!==(g=d[0].selectionHtml+"")&&(c.innerHTML=g)},i(d){h||(transition_in(s.$$.fragment,d),h=!0)},o(d){transition_out(s.$$.fragment,d),h=!1},d(d){d&&detach(e),destroy_component(s)}}}function create_default_slot_3(r){let e;return{c(){e=text("log")},m(n,A){insert(n,e,A)},d(n){n&&detach(e)}}}function create_if_block_2$2(r){let e,n,A,o;return e=new Button({props:{$$slots:{default:[create_default_slot_2]},$$scope:{ctx:r}}}),e.$on("click",r[9]),A=new Button({props:{$$slots:{default:[create_default_slot_1$3]},$$scope:{ctx:r}}}),A.$on("click",r[6]),{c(){create_component(e.$$.fragment),n=space(),create_component(A.$$.fragment)},m(s,a){mount_component(e,s,a),insert(s,n,a),mount_component(A,s,a),o=!0},p(s,a){const l={};a&65540&&(l.$$scope={dirty:a,ctx:s}),e.$set(l);const c={};a&65536&&(c.$$scope={dirty:a,ctx:s}),A.$set(c)},i(s){o||(transition_in(e.$$.fragment,s),transition_in(A.$$.fragment,s),o=!0)},o(s){transition_out(e.$$.fragment,s),transition_out(A.$$.fragment,s),o=!1},d(s){s&&detach(n),destroy_component(e,s),destroy_component(A,s)}}}function create_default_slot_2(r){let e=r[2]?"collapse":"expand",n;return{c(){n=text(e)},m(A,o){insert(A,n,o)},p(A,o){o&4&&e!==(e=A[2]?"collapse":"expand")&&set_data(n,e)},d(A){A&&detach(n)}}}function create_default_slot_1$3(r){let e;return{c(){e=text("log")},m(n,A){insert(n,e,A)},d(n){n&&detach(e)}}}function create_default_slot$3(r){let e=r[1]?"hide":"show",n;return{c(){n=text(e)},m(A,o){insert(A,n,o)},p(A,o){o&2&&e!==(e=A[1]?"hide":"show")&&set_data(n,e)},d(A){A&&detach(n)}}}function create_if_block_1$3(r){let e,n,A=ensure_array_like(r[0].trs),o=[];for(let a=0;a<A.length;a+=1)o[a]=create_each_block$3(get_each_context$3(r,A,a));const s=a=>transition_out(o[a],1,1,()=>{o[a]=null});return{c(){for(let a=0;a<o.length;a+=1)o[a].c();e=empty()},m(a,l){for(let c=0;c<o.length;c+=1)o[c]&&o[c].m(a,l);insert(a,e,l),n=!0},p(a,l){if(l&9){A=ensure_array_like(a[0].trs);let c;for(c=0;c<A.length;c+=1){const g=get_each_context$3(a,A,c);o[c]?(o[c].p(g,l),transition_in(o[c],1)):(o[c]=create_each_block$3(g),o[c].c(),transition_in(o[c],1),o[c].m(e.parentNode,e))}for(group_outros(),c=A.length;c<o.length;c+=1)s(c);check_outros()}},i(a){if(!n){for(let l=0;l<A.length;l+=1)transition_in(o[l]);n=!0}},o(a){o=o.filter(Boolean);for(let l=0;l<o.length;l+=1)transition_out(o[l]);n=!1},d(a){a&&detach(e),destroy_each(o,a)}}}function create_each_block$3(r){let e,n;return e=new TreeView({props:{class:"tree-view",data:r[13],showLogButton:!0,showCopyButton:!0,recursionOpts:r[3]}}),{c(){create_component(e.$$.fragment)},m(A,o){mount_component(e,A,o),n=!0},p(A,o){const s={};o&1&&(s.data=A[13]),o&8&&(s.recursionOpts=A[3]),e.$set(s)},i(A){n||(transition_in(e.$$.fragment,A),n=!0)},o(A){transition_out(e.$$.fragment,A),n=!1},d(A){destroy_component(e,A)}}}function create_right_slot$4(r){let e,n,A,o;const s=[create_if_block$5,create_else_block$5],a=[];function l(c,g){return c[0]?0:1}return n=l(r),A=a[n]=s[n](r),{c(){e=element("div"),A.c(),attr(e,"slot","right"),attr(e,"class","right-panel")},m(c,g){insert(c,e,g),a[n].m(e,null),o=!0},p(c,g){let h=n;n=l(c),n===h?a[n].p(c,g):(group_outros(),transition_out(a[h],1,1,()=>{a[h]=null}),check_outros(),A=a[n],A?A.p(c,g):(A=a[n]=s[n](c),A.c()),transition_in(A,1),A.m(e,null))},i(c){o||(transition_in(A),o=!0)},o(c){transition_out(A),o=!1},d(c){c&&detach(e),a[n].d()}}}function create_fragment$a(r){let e,n;return e=new SplitView({props:{$$slots:{right:[create_right_slot$4],left:[create_left_slot$3]},$$scope:{ctx:r}}}),{c(){create_component(e.$$.fragment)},m(A,o){mount_component(e,A,o),n=!0},p(A,o){let[s]=o;const a={};s&65567&&(a.$$scope={dirty:s,ctx:A}),e.$set(a)},i(A){n||(transition_in(e.$$.fragment,A),n=!0)},o(A){transition_out(e.$$.fragment,A),n=!1},d(A){destroy_component(e,A)}}}const func$1=()=>!0,func_1=()=>!0;function instance$a(r,e,n){let A,o,s;component_subscribe(r,stateHistory,m=>n(10,o=m)),component_subscribe(r,shownHistoryGroups,m=>n(11,s=m));let a,l=!1;const{replaceEditorContent:c}=getContext("editor-view");let g=!1,h={maxDepth:24,stopCircularRecursion:!0,omitKeys:["schema"],shouldExpandNode:()=>g};latestEntry.subscribe(m=>{m&&n(0,a=m)});function d(){n(1,l=!l)}function u(){console.info("%c [prosemirror-dev-toolkit]: Property added to window._trs","color: #b8e248"),console.log(a?.trs),window._trs=a?.trs}function f(m){const{id:E="",groupIdx:B,wasTopNode:Q}=m.detail;if(n(0,a=o.get(E)),!a)return;const w=A[B];w.isGroup&&w.entries.length>1&&Q&&shownHistoryGroups.update(y=>y.map((S,D)=>D!==B?S:Object.assign(Object.assign({},S),{expanded:!S.expanded})))}function I(m){n(0,a=o.get(m.detail.id||"")),a&&c(a.state)}function p(){n(2,g=!g),n(3,h=Object.assign(Object.assign({},h),{shouldExpandNode:()=>g}))}return r.$$.update=()=>{r.$$.dirty&3072&&n(4,A=s.map(m=>({id:m.id,isGroup:m.isGroup,topEntry:o.get(m.topEntryId),entries:m.entryIds.map(E=>o.get(E)),expanded:m.expanded})))},[a,l,g,h,A,d,u,f,I,p,o,s]}class HistoryTab extends SvelteComponent{constructor(e){super(),init$1(this,e,instance$a,create_fragment$a,safe_not_equal,{},add_css$a)}}function add_css$9(r){append_styles(r,"svelte-1fq2hhi","ul.svelte-1fq2hhi.svelte-1fq2hhi{color:#fff;list-style:none;margin:0;padding:0;height:100%;width:100%}li.svelte-1fq2hhi+li.svelte-1fq2hhi{border-top:1px solid rgb(96, 76, 104)}button.svelte-1fq2hhi.svelte-1fq2hhi{background:transparent;border:0;color:#d3d3d9;cursor:pointer;display:flex;font-family:monospace;font-size:var(--font-medium);font-weight:100;padding:6px 18px;text-transform:uppercase;width:100%}button.svelte-1fq2hhi.svelte-1fq2hhi:hover{background:rgba(255, 162, 177, 0.4);color:#fff}button:hover.empty.svelte-1fq2hhi.svelte-1fq2hhi{background:rgb(80, 68, 93)}button.selected.svelte-1fq2hhi.svelte-1fq2hhi{background:rgba(255, 162, 177, 0.4)}button.selected.empty.svelte-1fq2hhi.svelte-1fq2hhi{background:rgb(80, 68, 93)}button.empty.svelte-1fq2hhi.svelte-1fq2hhi{color:#727288}")}function get_each_context$2(r,e,n){const A=r.slice();return A[4]=e[n],A}function create_each_block$2(r){let e,n,A=r[4].value+"",o,s,a,l;function c(){return r[3](r[4])}return{c(){e=element("li"),n=element("button"),o=text(A),s=space(),attr(n,"class","svelte-1fq2hhi"),toggle_class(n,"selected",r[1]===r[4].key),toggle_class(n,"empty",r[4].empty),attr(e,"class","svelte-1fq2hhi")},m(g,h){insert(g,e,h),append(e,n),append(n,o),append(e,s),a||(l=listen(n,"click",c),a=!0)},p(g,h){r=g,h&1&&A!==(A=r[4].value+"")&&set_data(o,A),h&3&&toggle_class(n,"selected",r[1]===r[4].key),h&1&&toggle_class(n,"empty",r[4].empty)},d(g){g&&detach(e),a=!1,l()}}}function create_fragment$9(r){let e,n=ensure_array_like(r[0]),A=[];for(let o=0;o<n.length;o+=1)A[o]=create_each_block$2(get_each_context$2(r,n,o));return{c(){e=element("ul");for(let o=0;o<A.length;o+=1)A[o].c();attr(e,"class","svelte-1fq2hhi")},m(o,s){insert(o,e,s);for(let a=0;a<A.length;a+=1)A[a]&&A[a].m(e,null)},p(o,s){let[a]=s;if(a&7){n=ensure_array_like(o[0]);let l;for(l=0;l<n.length;l+=1){const c=get_each_context$2(o,n,l);A[l]?A[l].p(c,a):(A[l]=create_each_block$2(c),A[l].c(),A[l].m(e,null))}for(;l<A.length;l+=1)A[l].d(1);A.length=n.length}},i:noop,o:noop,d(o){o&&detach(e),destroy_each(A,o)}}}function instance$9(r,e,n){let{listItems:A=[],selectedKey:o,onSelect:s}=e;const a=l=>s(l);return r.$$set=l=>{"listItems"in l&&n(0,A=l.listItems),"selectedKey"in l&&n(1,o=l.selectedKey),"onSelect"in l&&n(2,s=l.onSelect)},[A,o,s,a]}class List extends SvelteComponent{constructor(e){super(),init$1(this,e,instance$9,create_fragment$9,safe_not_equal,{listItems:0,selectedKey:1,onSelect:2},add_css$9)}}function add_css$8(r){append_styles(r,"svelte-9l897d",".top-row.svelte-9l897d{align-items:center;display:flex;justify-content:space-between;margin-bottom:0.5em}.left-panel[slot=left].svelte-9l897d{flex-grow:0;overflow:scroll;padding:0;min-width:190px;width:190px}.right-panel[slot=right].svelte-9l897d{border-left:1px solid rgba(255, 162, 177, 0.2)}.empty-state.svelte-9l897d{align-items:center;color:rgb(255, 162, 177);display:flex;font-size:14px;height:100%;justify-content:center;width:100%}")}function create_left_slot$2(r){var e;let n,A,o;return A=new List({props:{listItems:r[4],selectedKey:(e=r[0])===null||e===void 0?void 0:e.key,onSelect:r[5]}}),{c(){n=element("div"),create_component(A.$$.fragment),attr(n,"slot","left"),attr(n,"class","left-panel svelte-9l897d")},m(s,a){insert(s,n,a),mount_component(A,n,null),o=!0},p(s,a){var l;const c={};a&16&&(c.listItems=s[4]),a&1&&(c.selectedKey=(l=s[0])===null||l===void 0?void 0:l.key),A.$set(c)},i(s){o||(transition_in(A.$$.fragment,s),o=!0)},o(s){transition_out(A.$$.fragment,s),o=!1},d(s){s&&detach(n),destroy_component(A)}}}function create_if_block_1$2(r){let e,n,A,o,s,a,l,c;return s=new Button({props:{$$slots:{default:[create_default_slot_1$2]},$$scope:{ctx:r}}}),s.$on("click",r[6]),l=new Button({props:{$$slots:{default:[create_default_slot$2]},$$scope:{ctx:r}}}),l.$on("click",r[7]),{c(){e=element("div"),n=element("h2"),n.textContent="Plugin state",A=space(),o=element("div"),create_component(s.$$.fragment),a=space(),create_component(l.$$.fragment),attr(e,"class","top-row svelte-9l897d")},m(g,h){insert(g,e,h),append(e,n),append(e,A),append(e,o),mount_component(s,o,null),append(o,a),mount_component(l,o,null),c=!0},p(g,h){const d={};h&2050&&(d.$$scope={dirty:h,ctx:g}),s.$set(d);const u={};h&2048&&(u.$$scope={dirty:h,ctx:g}),l.$set(u)},i(g){c||(transition_in(s.$$.fragment,g),transition_in(l.$$.fragment,g),c=!0)},o(g){transition_out(s.$$.fragment,g),transition_out(l.$$.fragment,g),c=!1},d(g){g&&detach(e),destroy_component(s),destroy_component(l)}}}function create_default_slot_1$2(r){let e=r[1]?"collapse":"expand",n;return{c(){n=text(e)},m(A,o){insert(A,n,o)},p(A,o){o&2&&e!==(e=A[1]?"collapse":"expand")&&set_data(n,e)},d(A){A&&detach(n)}}}function create_default_slot$2(r){let e;return{c(){e=text("log")},m(n,A){insert(n,e,A)},d(n){n&&detach(e)}}}function create_else_block$4(r){let e;return{c(){e=element("div"),e.textContent="Plugin has no state",attr(e,"class","empty-state svelte-9l897d")},m(n,A){insert(n,e,A)},p:noop,i:noop,o:noop,d(n){n&&detach(e)}}}function create_if_block$4(r){let e,n;return e=new TreeView({props:{data:r[3],showLogButton:!0,showCopyButton:!0,recursionOpts:r[2]}}),{c(){create_component(e.$$.fragment)},m(A,o){mount_component(e,A,o),n=!0},p(A,o){const s={};o&8&&(s.data=A[3]),o&4&&(s.recursionOpts=A[2]),e.$set(s)},i(A){n||(transition_in(e.$$.fragment,A),n=!0)},o(A){transition_out(e.$$.fragment,A),n=!1},d(A){destroy_component(e,A)}}}function create_right_slot$3(r){let e,n,A,o,s,a=r[3]&&create_if_block_1$2(r);const l=[create_if_block$4,create_else_block$4],c=[];function g(h,d){return h[3]?0:1}return A=g(r),o=c[A]=l[A](r),{c(){e=element("div"),a&&a.c(),n=space(),o.c(),attr(e,"slot","right"),attr(e,"class","right-panel svelte-9l897d")},m(h,d){insert(h,e,d),a&&a.m(e,null),append(e,n),c[A].m(e,null),s=!0},p(h,d){h[3]?a?(a.p(h,d),d&8&&transition_in(a,1)):(a=create_if_block_1$2(h),a.c(),transition_in(a,1),a.m(e,n)):a&&(group_outros(),transition_out(a,1,1,()=>{a=null}),check_outros());let u=A;A=g(h),A===u?c[A].p(h,d):(group_outros(),transition_out(c[u],1,1,()=>{c[u]=null}),check_outros(),o=c[A],o?o.p(h,d):(o=c[A]=l[A](h),o.c()),transition_in(o,1),o.m(e,null))},i(h){s||(transition_in(a),transition_in(o),s=!0)},o(h){transition_out(a),transition_out(o),s=!1},d(h){h&&detach(e),a&&a.d(),c[A].d()}}}function create_fragment$8(r){let e,n;return e=new SplitView({props:{$$slots:{right:[create_right_slot$3],left:[create_left_slot$2]},$$scope:{ctx:r}}}),{c(){create_component(e.$$.fragment)},m(A,o){mount_component(e,A,o),n=!0},p(A,o){let[s]=o;const a={};s&2079&&(a.$$scope={dirty:s,ctx:A}),e.$set(a)},i(A){n||(transition_in(e.$$.fragment,A),n=!0)},o(A){transition_out(e.$$.fragment,A),n=!1},d(A){destroy_component(e,A)}}}function instance$8(r,e,n){let A,o;const{view:s}=getContext("editor-view");let a=!1,l={maxDepth:10,stopCircularRecursion:!0,shouldExpandNode:()=>a},c=s.state,g=c.plugins,h=g[0];latestEntry.subscribe(I=>{I&&(n(8,c=I.state),n(9,g=c.plugins),n(0,h=g.find(p=>p.key===h?.key)))});function d(I){n(0,h=g.find(p=>p.key===I.key))}function u(){n(1,a=!a),n(2,l=Object.assign(Object.assign({},l),{shouldExpandNode:()=>a}))}function f(){window._plugin=[h,A],console.info("%c [prosemirror-dev-toolkit]: Property added to window._plugin","color: #b8e248"),console.log(h),console.log(A)}return r.$$.update=()=>{r.$$.dirty&257&&n(3,A=h?.getState?h.getState(c):void 0),r.$$.dirty&768&&n(4,o=g.map(I=>({key:I.key,value:I.key.toUpperCase(),empty:!(I.getState&&I.getState(c))})))},[h,a,l,A,o,d,u,f,c,g]}class PluginsTab extends SvelteComponent{constructor(e){super(),init$1(this,e,instance$8,create_fragment$8,safe_not_equal,{},add_css$8)}}function add_css$7(r){append_styles(r,"svelte-1u2reu1",".top-row.svelte-1u2reu1{align-items:center;display:flex;justify-content:space-between}.left-panel[slot=left].svelte-1u2reu1{overflow:scroll;padding:1em}.right-panel[slot=right].svelte-1u2reu1{border-left:1px solid rgba(255, 162, 177, 0.2);overflow:scroll;padding:1em}")}function create_default_slot_1$1(r){let e;return{c(){e=text("log")},m(n,A){insert(n,e,A)},d(n){n&&detach(e)}}}function create_left_slot$1(r){let e,n,A,o,s,a,l,c;return s=new Button({props:{class:"hidden",$$slots:{default:[create_default_slot_1$1]},$$scope:{ctx:r}}}),l=new TreeView({props:{class:"tree-view",data:r[0],showLogButton:!0,showCopyButton:!0,recursionOpts:{stopCircularRecursion:!0}}}),{c(){e=element("div"),n=element("div"),A=element("h2"),A.textContent="Nodes",o=space(),create_component(s.$$.fragment),a=space(),create_component(l.$$.fragment),attr(n,"class","top-row svelte-1u2reu1"),attr(e,"slot","left"),attr(e,"class","left-panel svelte-1u2reu1")},m(g,h){insert(g,e,h),append(e,n),append(n,A),append(n,o),mount_component(s,n,null),append(e,a),mount_component(l,e,null),c=!0},p(g,h){const d={};h&8&&(d.$$scope={dirty:h,ctx:g}),s.$set(d)},i(g){c||(transition_in(s.$$.fragment,g),transition_in(l.$$.fragment,g),c=!0)},o(g){transition_out(s.$$.fragment,g),transition_out(l.$$.fragment,g),c=!1},d(g){g&&detach(e),destroy_component(s),destroy_component(l)}}}function create_default_slot$1(r){let e;return{c(){e=text("log")},m(n,A){insert(n,e,A)},d(n){n&&detach(e)}}}function create_right_slot$2(r){let e,n,A,o,s,a,l,c;return s=new Button({props:{class:"hidden",$$slots:{default:[create_default_slot$1]},$$scope:{ctx:r}}}),l=new TreeView({props:{class:"tree-view",data:r[1],showLogButton:!0,showCopyButton:!0,recursionOpts:{stopCircularRecursion:!0}}}),{c(){e=element("div"),n=element("div"),A=element("h2"),A.textContent="Marks",o=space(),create_component(s.$$.fragment),a=space(),create_component(l.$$.fragment),attr(n,"class","top-row svelte-1u2reu1"),attr(e,"slot","right"),attr(e,"class","right-panel svelte-1u2reu1")},m(g,h){insert(g,e,h),append(e,n),append(n,A),append(n,o),mount_component(s,n,null),append(e,a),mount_component(l,e,null),c=!0},p(g,h){const d={};h&8&&(d.$$scope={dirty:h,ctx:g}),s.$set(d)},i(g){c||(transition_in(s.$$.fragment,g),transition_in(l.$$.fragment,g),c=!0)},o(g){transition_out(s.$$.fragment,g),transition_out(l.$$.fragment,g),c=!1},d(g){g&&detach(e),destroy_component(s),destroy_component(l)}}}function create_fragment$7(r){let e,n;return e=new SplitView({props:{$$slots:{right:[create_right_slot$2],left:[create_left_slot$1]},$$scope:{ctx:r}}}),{c(){create_component(e.$$.fragment)},m(A,o){mount_component(e,A,o),n=!0},p(A,o){let[s]=o;const a={};s&8&&(a.$$scope={dirty:s,ctx:A}),e.$set(a)},i(A){n||(transition_in(e.$$.fragment,A),n=!0)},o(A){transition_out(e.$$.fragment,A),n=!1},d(A){destroy_component(e,A)}}}function instance$7(r){const{view:e}=getContext("editor-view");let n=e.state.schema.nodes,A=e.state.schema.marks;return[n,A]}class SchemaTab extends SvelteComponent{constructor(e){super(),init$1(this,e,instance$7,create_fragment$7,safe_not_equal,{},add_css$7)}}function add_css$6(r){append_styles(r,"svelte-1un819s",".doc-node.svelte-1un819s{border-left:1px solid #363755;border-right:1px solid #363755;display:flex;flex-direction:column;padding:0 12px}.doc-node.root.svelte-1un819s{border:0;padding:0}.doc-node-body.svelte-1un819s{background:#363755;color:#222;display:flex;font-size:13px;margin-top:3px}.number-box.svelte-1un819s{padding:3px 6px;background:rgba(255, 255, 255, 0.3)}.node-name.svelte-1un819s{width:100%}button.svelte-1un819s{align-items:center;background:transparent;border:0;color:#222;cursor:pointer;display:flex;height:100%;white-space:pre;width:100%}button.svelte-1un819s:hover{background:rgba(255, 162, 177, 0.4);color:#fff}button.selected.svelte-1un819s{background:rgba(255, 162, 177, 0.4)}ul.svelte-1un819s{list-style:none;margin:0;padding:0}ul.show-borders.svelte-1un819s{border-left:1px solid rgb(96, 76, 104);border-right:1px solid rgb(96, 76, 104)}.inline-children.svelte-1un819s{border-left:1px solid rgb(96, 76, 104);border-right:1px solid rgb(96, 76, 104);display:flex;flex-wrap:wrap;padding:0 12px}.inline-children.svelte-1un819s>.doc-node{flex-grow:1;padding:0}")}function get_each_context$1(r,e,n){const A=r.slice();return A[15]=e[n],A[17]=n,A}function create_each_block$1(r){let e,n;return e=new DocNode({props:{node:r[15],startPos:r[5][r[17]],depth:r[1]+1}}),{c(){create_component(e.$$.fragment)},m(A,o){mount_component(e,A,o),n=!0},p(A,o){const s={};o&4&&(s.node=A[15]),o&32&&(s.startPos=A[5][A[17]]),o&2&&(s.depth=A[1]+1),e.$set(s)},i(A){n||(transition_in(e.$$.fragment,A),n=!0)},o(A){transition_out(e.$$.fragment,A),n=!1},d(A){destroy_component(e,A)}}}function create_fragment$6(r){let e,n,A,o,s,a,l,c,g,h,d,u,f,I,p,m,E,B,Q=ensure_array_like(r[2].content),w=[];for(let S=0;S<Q.length;S+=1)w[S]=create_each_block$1(get_each_context$1(r,Q,S));const y=S=>transition_out(w[S],1,1,()=>{w[S]=null});return{c(){e=element("li"),n=element("div"),A=element("div"),o=text(r[0]),s=space(),a=element("div"),l=element("button"),c=text(r[6]),g=space(),h=element("div"),d=text(r[4]),f=space(),I=element("ul");for(let S=0;S<w.length;S+=1)w[S].c();attr(A,"class","number-box svelte-1un819s"),attr(l,"aria-label","Show node info button"),attr(l,"class","svelte-1un819s"),toggle_class(l,"selected",!1),attr(a,"class","node-name svelte-1un819s"),attr(h,"class","number-box svelte-1un819s"),attr(n,"class","doc-node-body svelte-1un819s"),attr(n,"style",u="background: ".concat(r[7])),attr(I,"class","svelte-1un819s"),toggle_class(I,"inline-children",r[3]),toggle_class(I,"show-borders",r[1]>=1),attr(e,"class",p=null_to_empty("".concat(r[11].class||""," doc-node"))+" svelte-1un819s"),toggle_class(e,"root",r[8])},m(S,D){insert(S,e,D),append(e,n),append(n,A),append(A,o),append(n,s),append(n,a),append(a,l),append(l,c),append(n,g),append(n,h),append(h,d),append(e,f),append(e,I);for(let _=0;_<w.length;_+=1)w[_]&&w[_].m(I,null);m=!0,E||(B=[listen(l,"click",r[9]),listen(l,"dblclick",r[10])],E=!0)},p(S,D){let[_]=D;if((!m||_&1)&&set_data(o,S[0]),(!m||_&64)&&set_data(c,S[6]),(!m||_&16)&&set_data(d,S[4]),(!m||_&128&&u!==(u="background: ".concat(S[7])))&&attr(n,"style",u),_&38){Q=ensure_array_like(S[2].content);let M;for(M=0;M<Q.length;M+=1){const v=get_each_context$1(S,Q,M);w[M]?(w[M].p(v,_),transition_in(w[M],1)):(w[M]=create_each_block$1(v),w[M].c(),transition_in(w[M],1),w[M].m(I,null))}for(group_outros(),M=Q.length;M<w.length;M+=1)y(M);check_outros()}(!m||_&8)&&toggle_class(I,"inline-children",S[3]),(!m||_&2)&&toggle_class(I,"show-borders",S[1]>=1),(!m||_&2048&&p!==(p=null_to_empty("".concat(S[11].class||""," doc-node"))+" svelte-1un819s"))&&attr(e,"class",p),(!m||_&2304)&&toggle_class(e,"root",S[8])},i(S){if(!m){for(let D=0;D<Q.length;D+=1)transition_in(w[D]);m=!0}},o(S){w=w.filter(Boolean);for(let D=0;D<w.length;D+=1)transition_out(w[D]);m=!1},d(S){S&&detach(e),destroy_each(w,S),E=!1,run_all(B)}}}function instance$6(r,e,n){let A,o,s,a,l,c;const{colors:g,handleNodeClick:h}=getContext("doc-view");let{node:d,startPos:u,depth:f}=e;const I=f===0;function p(){h(d,u)}function m(){h(d,u,!0)}return r.$$set=E=>{n(11,e=assign(assign({},e),exclude_internal_props(E))),"node"in E&&n(12,d=E.node),"startPos"in E&&n(0,u=E.startPos),"depth"in E&&n(1,f=E.depth)},r.$$.update=()=>{r.$$.dirty&4096&&n(2,A=d.content),r.$$.dirty&4096&&n(7,o=g[d.type.name]),r.$$.dirty&4096&&n(6,s=d.isText&&d.marks.length>0?"".concat(d.type.name," - [").concat(d.marks.map(E=>E.type.name).join(", "),"]"):d.type.name),r.$$.dirty&4097&&n(5,a=Array(d.childCount).fill(void 0).reduce((E,B,Q)=>{if(Q===0)return[I?0:u+1];let w=E[Q-1],y=d.child(Q-1);return[...E,w+y.nodeSize]},[])),r.$$.dirty&4097&&n(4,l=u+d.nodeSize),r.$$.dirty&4&&n(3,c=A.content.every(E=>E.isInline))},e=exclude_internal_props(e),[u,f,A,c,l,a,s,o,I,p,m,e,d]}class DocNode extends SvelteComponent{constructor(e){super(),init$1(this,e,instance$6,create_fragment$6,safe_not_equal,{node:12,startPos:0,depth:1},add_css$6)}}const nodeColors=["#EA7C7F","#67B0C6","#94BB7F","#CA9EDB","#DCDC5D","#B9CC7C","#DD97D8","#FFB761","#4D8FD1","#F36E98","#E45F44","#A6A4AE","#FCC047","#FFC129","#D3929C","#4CBCD4","#8D7BC0"];function calculateSafeIndex(r,e){const n=r/e;return Math.round(e*(n-Math.floor(n)))}function buildColors(r){return Object.keys(r.nodes).reduce((e,n,A)=>{const o=A>=nodeColors.length?calculateSafeIndex(A,nodeColors.length):A;return e[n]=nodeColors[o],e},{})}function add_css$5(r){append_styles(r,"svelte-is7zuw","ul.svelte-is7zuw{list-style:none;margin:0;padding:0}")}function create_fragment$5(r){let e,n,A;return n=new DocNode({props:{class:r[1].class,node:r[0],startPos:0,depth:0}}),{c(){e=element("ul"),create_component(n.$$.fragment),attr(e,"class","svelte-is7zuw")},m(o,s){insert(o,e,s),mount_component(n,e,null),A=!0},p(o,s){let[a]=s;const l={};a&2&&(l.class=o[1].class),a&1&&(l.node=o[0]),n.$set(l)},i(o){A||(transition_in(n.$$.fragment,o),A=!0)},o(o){transition_out(n.$$.fragment,o),A=!1},d(o){o&&detach(e),destroy_component(n)}}}function instance$5(r,e,n){let{doc:A,schema:o,selected:s={type:"",start:0,end:0},handleNodeSelect:a}=e;return setContext("doc-view",{selected:s,colors:buildColors(o),handleNodeClick:a}),r.$$set=l=>{n(1,e=assign(assign({},e),exclude_internal_props(l))),"doc"in l&&n(0,A=l.doc),"schema"in l&&n(2,o=l.schema),"selected"in l&&n(3,s=l.selected),"handleNodeSelect"in l&&n(4,a=l.handleNodeSelect)},e=exclude_internal_props(e),[A,e,o,s,a]}class DocView extends SvelteComponent{constructor(e){super(),init$1(this,e,instance$5,create_fragment$5,safe_not_equal,{doc:0,schema:2,selected:3,handleNodeSelect:4},add_css$5)}}function add_css$4(r){append_styles(r,"svelte-15i66m0",".top-row.svelte-15i66m0{align-items:center;display:flex;justify-content:space-between}.right-panel[slot=right].svelte-15i66m0{border-left:1px solid rgba(255, 162, 177, 0.2);flex-grow:0;min-width:220px;width:220px}.split-view .m-top{margin-top:0.75em}")}function create_default_slot_1(r){let e;return{c(){e=text("log")},m(n,A){insert(n,e,A)},d(n){n&&detach(e)}}}function create_left_slot(r){let e,n,A,o,s,a,l,c;return s=new Button({props:{class:"hidden",$$slots:{default:[create_default_slot_1]},$$scope:{ctx:r}}}),l=new DocView({props:{class:"m-top",doc:r[0],schema:r[2],handleNodeSelect:r[3]}}),{c(){e=element("div"),n=element("div"),A=element("h2"),A.textContent="Current doc",o=space(),create_component(s.$$.fragment),a=space(),create_component(l.$$.fragment),attr(n,"class","top-row svelte-15i66m0"),attr(e,"slot","left"),attr(e,"class","left-panel")},m(g,h){insert(g,e,h),append(e,n),append(n,A),append(n,o),mount_component(s,n,null),append(e,a),mount_component(l,e,null),c=!0},p(g,h){const d={};h&256&&(d.$$scope={dirty:h,ctx:g}),s.$set(d);const u={};h&1&&(u.doc=g[0]),l.$set(u)},i(g){c||(transition_in(s.$$.fragment,g),transition_in(l.$$.fragment,g),c=!0)},o(g){transition_out(s.$$.fragment,g),transition_out(l.$$.fragment,g),c=!1},d(g){g&&detach(e),destroy_component(s),destroy_component(l)}}}function create_default_slot(r){let e;return{c(){e=text("log")},m(n,A){insert(n,e,A)},d(n){n&&detach(e)}}}function create_right_slot$1(r){let e,n,A,o,s,a,l,c;return s=new Button({props:{$$slots:{default:[create_default_slot]},$$scope:{ctx:r}}}),s.$on("click",r[4]),l=new TreeView({props:{class:"m-top",data:r[1],recursionOpts:{shouldExpandNode:func}}}),{c(){e=element("div"),n=element("div"),A=element("h2"),A.textContent="Node info",o=space(),create_component(s.$$.fragment),a=space(),create_component(l.$$.fragment),attr(n,"class","top-row svelte-15i66m0"),attr(e,"slot","right"),attr(e,"class","right-panel svelte-15i66m0")},m(g,h){insert(g,e,h),append(e,n),append(n,A),append(n,o),mount_component(s,n,null),append(e,a),mount_component(l,e,null),c=!0},p(g,h){const d={};h&256&&(d.$$scope={dirty:h,ctx:g}),s.$set(d);const u={};h&2&&(u.data=g[1]),l.$set(u)},i(g){c||(transition_in(s.$$.fragment,g),transition_in(l.$$.fragment,g),c=!0)},o(g){transition_out(s.$$.fragment,g),transition_out(l.$$.fragment,g),c=!1},d(g){g&&detach(e),destroy_component(s),destroy_component(l)}}}function create_fragment$4(r){let e,n;return e=new SplitView({props:{$$slots:{right:[create_right_slot$1],left:[create_left_slot]},$$scope:{ctx:r}}}),{c(){create_component(e.$$.fragment)},m(A,o){mount_component(e,A,o),n=!0},p(A,o){let[s]=o;const a={};s&259&&(a.$$scope={dirty:s,ctx:A}),e.$set(a)},i(A){n||(transition_in(e.$$.fragment,A),n=!0)},o(A){transition_out(e.$$.fragment,A),n=!1},d(A){destroy_component(e,A)}}}function getScrollableParent(r){if(!(!r||r===document.body))return r.scrollHeight!==r.clientHeight?r:getScrollableParent(r.parentElement)}const func=r=>r.type!=="array"||r.value.length<=50;function instance$4(r,e,n){let A;const{view:o}=getContext("editor-view");let s=o.state.doc,a={node:o.state.doc,pos:0},l=o.state.schema,c;latestEntry.subscribe(d=>{d&&(d.trs.forEach(u=>{n(5,a.pos=u.mapping.map(a.pos),a)}),clearTimeout(c),c=setTimeout(()=>{n(0,s=d.state.doc);const u=a.pos;try{const f=s.nodeAt(u);n(5,a={node:f||s,pos:f?u:0})}catch{}},100))});function g(d,u){let f=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;var I;if(n(5,a={node:d,pos:u}),!f)return;let p=o.nodeDOM(u);for(;p&&!(p instanceof HTMLElement);)p=p.parentElement;if(!p||getComputedStyle(p).display==="none")return;const m=getScrollableParent(o.dom);if(m){const Q=m.scrollTop,w=m.offsetTop-window.scrollY,y=m.getBoundingClientRect().top-w,S=p.getBoundingClientRect().top-w,D=m.clientHeight/2;m.scroll(0,Q+y+S-D)}const E=o.coordsAtPos(u).top,B=((I=document.querySelector(".floating-dock"))===null||I===void 0?void 0:I.clientHeight)||0;window.scroll(0,E-B+p.clientHeight+window.scrollY)}function h(){console.log(a),window._node=a,console.info("%c [prosemirror-dev-toolkit]: Property added to window._node","color: #b8e248")}return r.$$.update=()=>{r.$$.dirty&32&&n(1,A=a.node.toJSON())},[s,A,l,g,h,a]}class StructureTab extends SvelteComponent{constructor(e){super(),init$1(this,e,instance$4,create_fragment$4,safe_not_equal,{},add_css$4)}}function add_css$3(r){append_styles(r,"svelte-969ox4","ul.svelte-969ox4.svelte-969ox4{color:#fff;list-style:none;margin:0;padding:0;height:100%;width:100%}li.svelte-969ox4+li.svelte-969ox4{border-top:1px solid rgb(96, 76, 104)}li.svelte-969ox4.svelte-969ox4{align-items:center;display:flex;font-family:monospace;padding:6px 18px}input.svelte-969ox4.svelte-969ox4{background:transparent;border:0;color:#fff;height:100%;margin:0;padding:2px;width:100%}.unstyled-btn.svelte-969ox4.svelte-969ox4{background:transparent;border:0;color:#fff;cursor:pointer;display:block;font-family:monospace;margin:0;padding:0;text-align:start;width:100%}.snapshot-btn.svelte-969ox4.svelte-969ox4{background:transparent;border:0;border-radius:3px;color:#d3d3d9;cursor:pointer;display:flex;font-size:11px;padding:6px 18px;text-transform:uppercase}.snapshot-btn.svelte-969ox4.svelte-969ox4:hover{background:rgba(255, 162, 177, 0.4);color:#fff}.ml-2.svelte-969ox4.svelte-969ox4{margin-left:1rem}")}function get_each_context(r,e,n){const A=r.slice();return A[23]=e[n],A}function create_else_block_2(r){let e,n=r[23].name+"",A,o,s;function a(){return r[16](r[23])}return{c(){e=element("button"),A=text(n),attr(e,"class","unstyled-btn svelte-969ox4"),attr(e,"aria-label","Edit snapshot name button")},m(l,c){insert(l,e,c),append(e,A),o||(s=listen(e,"dblclick",a),o=!0)},p(l,c){r=l,c&1&&n!==(n=r[23].name+"")&&set_data(A,n)},d(l){l&&detach(e),o=!1,s()}}}function create_if_block_2$1(r){let e,n,A,o;return{c(){e=element("input"),e.value=n=r[2].name,attr(e,"class","svelte-969ox4")},m(s,a){insert(s,e,a),A||(o=[listen(e,"input",r[5]),listen(e,"keypress",r[6])],A=!0)},p(s,a){a&4&&n!==(n=s[2].name)&&e.value!==n&&(e.value=n)},d(s){s&&detach(e),A=!1,run_all(o)}}}function create_else_block_1(r){let e;return{c(){e=text("Show")},m(n,A){insert(n,e,A)},d(n){n&&detach(e)}}}function create_if_block_1$1(r){let e;return{c(){e=text("Hide")},m(n,A){insert(n,e,A)},d(n){n&&detach(e)}}}function create_else_block$3(r){let e;return{c(){e=text("Delete")},m(n,A){insert(n,e,A)},d(n){n&&detach(e)}}}function create_if_block$3(r){let e;return{c(){e=text("Confirm Delete")},m(n,A){insert(n,e,A)},d(n){n&&detach(e)}}}function create_each_block(r){let e,n,A,o,s,a,l,c,g,h,d,u;function f(v,F){return v[2]&&v[2].timestamp===v[23].timestamp?create_if_block_2$1:create_else_block_2}let I=f(r),p=I(r);function m(v,F){var R;return((R=v[1])===null||R===void 0?void 0:R.timestamp)===v[23].timestamp?create_if_block_1$1:create_else_block_1}let E=m(r),B=E(r);function Q(){return r[17](r[23])}function w(){return r[18](r[23])}function y(){return r[19](r[23])}function S(v,F){var R;return((R=v[3])===null||R===void 0?void 0:R.timestamp)===v[23].timestamp?create_if_block$3:create_else_block$3}let D=S(r),_=D(r);function M(){return r[20](r[23])}return{c(){e=element("li"),p.c(),n=space(),A=element("button"),B.c(),o=space(),s=element("button"),s.textContent="Restore",a=space(),l=element("button"),l.textContent="Export",c=space(),g=element("button"),_.c(),h=space(),attr(A,"class","snapshot-btn ml-2 svelte-969ox4"),attr(s,"class","snapshot-btn svelte-969ox4"),attr(l,"class","snapshot-btn svelte-969ox4"),attr(g,"class","snapshot-btn svelte-969ox4"),attr(e,"class","svelte-969ox4")},m(v,F){insert(v,e,F),p.m(e,null),append(e,n),append(e,A),B.m(A,null),append(e,o),append(e,s),append(e,a),append(e,l),append(e,c),append(e,g),_.m(g,null),append(e,h),d||(u=[listen(A,"click",Q),listen(s,"click",w),listen(l,"click",y),listen(g,"click",M)],d=!0)},p(v,F){r=v,I===(I=f(r))&&p?p.p(r,F):(p.d(1),p=I(r),p&&(p.c(),p.m(e,n))),E!==(E=m(r))&&(B.d(1),B=E(r),B&&(B.c(),B.m(A,null))),D!==(D=S(r))&&(_.d(1),_=D(r),_&&(_.c(),_.m(g,null)))},d(v){v&&detach(e),p.d(),B.d(),_.d(),d=!1,run_all(u)}}}function create_fragment$3(r){let e,n=ensure_array_like(r[0]),A=[];for(let o=0;o<n.length;o+=1)A[o]=create_each_block(get_each_context(r,n,o));return{c(){e=element("ul");for(let o=0;o<A.length;o+=1)A[o].c();attr(e,"class","svelte-969ox4")},m(o,s){insert(o,e,s);for(let a=0;a<A.length;a+=1)A[a]&&A[a].m(e,null)},p(o,s){let[a]=s;if(a&2047){n=ensure_array_like(o[0]);let l;for(l=0;l<n.length;l+=1){const c=get_each_context(o,n,l);A[l]?A[l].p(c,a):(A[l]=create_each_block(c),A[l].c(),A[l].m(e,null))}for(;l<A.length;l+=1)A[l].d(1);A.length=n.length}},i:noop,o:noop,d(o){o&&detach(e),destroy_each(A,o)}}}function instance$3(r,e,n){let{snapshots:A=[],selectedSnapshot:o=void 0,onUpdate:s,onView:a,onRestore:l,onExport:c,onDelete:g}=e,h,d,u;const f=()=>{clearTimeout(u),u=setTimeout(()=>{s(h)},150)};function I(v){n(2,h=v),n(3,d=void 0)}function p(v){h&&(n(2,h.name=v.currentTarget.value,h),f())}function m(v){v.key==="Enter"&&h&&(s(h),clearTimeout(u),n(2,h=void 0),n(3,d=void 0))}function E(v){o?.timestamp===v.timestamp?a():a(v),n(3,d=void 0)}function B(v){l(v),n(3,d=void 0)}function Q(v){c(v),n(3,d=void 0)}function w(v){!d||d.timestamp!==v.timestamp?n(3,d=v):(g(v),n(3,d=void 0))}const y=v=>I(v),S=v=>E(v),D=v=>B(v),_=v=>Q(v),M=v=>w(v);return r.$$set=v=>{"snapshots"in v&&n(0,A=v.snapshots),"selectedSnapshot"in v&&n(1,o=v.selectedSnapshot),"onUpdate"in v&&n(11,s=v.onUpdate),"onView"in v&&n(12,a=v.onView),"onRestore"in v&&n(13,l=v.onRestore),"onExport"in v&&n(14,c=v.onExport),"onDelete"in v&&n(15,g=v.onDelete)},[A,o,h,d,I,p,m,E,B,Q,w,s,a,l,c,g,y,S,D,_,M]}class SnapshotsList extends SvelteComponent{constructor(e){super(),init$1(this,e,instance$3,create_fragment$3,safe_not_equal,{snapshots:0,selectedSnapshot:1,onUpdate:11,onView:12,onRestore:13,onExport:14,onDelete:15},add_css$3)}}function add_css$2(r){append_styles(r,"svelte-3jdj5c",".right-panel[slot=right].svelte-3jdj5c{padding:0}.no-snapshots.svelte-3jdj5c{align-items:center;color:rgb(255, 162, 177);display:flex;font-size:14px;height:100%;justify-content:center;width:100%}")}function create_else_block$2(r){let e,n;return e=new SnapshotsList({props:{snapshots:r[0],selectedSnapshot:r[1],onUpdate:updateSnapshot,onView:r[4],onRestore:r[3],onExport:exportSnapshot,onDelete:deleteSnapshot}}),{c(){create_component(e.$$.fragment)},m(A,o){mount_component(e,A,o),n=!0},p(A,o){const s={};o&1&&(s.snapshots=A[0]),o&2&&(s.selectedSnapshot=A[1]),e.$set(s)},i(A){n||(transition_in(e.$$.fragment,A),n=!0)},o(A){transition_out(e.$$.fragment,A),n=!1},d(A){destroy_component(e,A)}}}function create_if_block$2(r){let e;return{c(){e=element("div"),e.textContent='Save snapshots by clicking "Save" button.',attr(e,"class","no-snapshots svelte-3jdj5c")},m(n,A){insert(n,e,A)},p:noop,i:noop,o:noop,d(n){n&&detach(e)}}}function create_right_slot(r){let e,n,A,o;const s=[create_if_block$2,create_else_block$2],a=[];function l(c,g){return c[0].length===0?0:1}return n=l(r),A=a[n]=s[n](r),{c(){e=element("div"),A.c(),attr(e,"slot","right"),attr(e,"class","right-panel svelte-3jdj5c")},m(c,g){insert(c,e,g),a[n].m(e,null),o=!0},p(c,g){let h=n;n=l(c),n===h?a[n].p(c,g):(group_outros(),transition_out(a[h],1,1,()=>{a[h]=null}),check_outros(),A=a[n],A?A.p(c,g):(A=a[n]=s[n](c),A.c()),transition_in(A,1),A.m(e,null))},i(c){o||(transition_in(A),o=!0)},o(c){transition_out(A),o=!1},d(c){c&&detach(e),a[n].d()}}}function create_fragment$2(r){let e,n;return e=new SplitView({props:{$$slots:{right:[create_right_slot]},$$scope:{ctx:r}}}),{c(){create_component(e.$$.fragment)},m(A,o){mount_component(e,A,o),n=!0},p(A,o){let[s]=o;const a={};s&35&&(a.$$scope={dirty:s,ctx:A}),e.$set(a)},i(A){n||(transition_in(e.$$.fragment,A),n=!0)},o(A){transition_out(e.$$.fragment,A),n=!1},d(A){destroy_component(e,A)}}}function instance$2(r,e,n){let A,o;component_subscribe(r,snapshots,c=>n(0,A=c)),component_subscribe(r,selectedSnapshot,c=>n(1,o=c));const{view:s}=getContext("editor-view");function a(c){restoreSnapshot(s,c),resetHistory()}return[A,o,s,a,c=>toggleViewSnapshot(s,c)]}class SnapshotsTab extends SvelteComponent{constructor(e){super(),init$1(this,e,instance$2,create_fragment$2,safe_not_equal,{},add_css$2)}}function add_css$1(r){append_styles(r,"svelte-1quf800",".floating-dock-wrapper.svelte-1quf800{position:fixed;width:0px;height:0px;top:0px;left:0px;z-index:99999999}.floating-dock.svelte-1quf800{background-color:#363755;position:fixed;z-index:1;box-shadow:rgba(34, 34, 34, 0.3) 0px 0px 4px 0px;left:0px;top:50%;width:100%;height:50%}.resizing-div.svelte-1quf800{position:absolute;z-index:2;opacity:0;top:-5px;height:10px;left:0px;width:100%;cursor:row-resize}.floating-dock-body.svelte-1quf800{height:100%}button.svelte-1quf800{background:rgba(255, 162, 177, 0.6);border:0;border-radius:3px;color:#fff;cursor:pointer;font-size:12px;height:24px;line-height:25px;padding:0 6px;position:absolute}button.svelte-1quf800:hover{background:rgba(255, 162, 177, 0.8)}.copy-btn.svelte-1quf800{right:173px;top:-28px}.save-btn.svelte-1quf800{right:129px;top:-28px}.import-btn.svelte-1quf800{right:79px;top:-28px}.paste-btn.svelte-1quf800{right:32px;top:-28px}.close-btn.svelte-1quf800{font-size:var(--font-medium);right:4px;top:-28px;width:24px}")}function create_else_block$1(r){let e;return{c(){e=element("p"),e.textContent="nuting here"},m(n,A){insert(n,e,A)},i:noop,o:noop,d(n){n&&detach(e)}}}function create_if_block_5(r){let e,n;return e=new SnapshotsTab({}),{c(){create_component(e.$$.fragment)},m(A,o){mount_component(e,A,o),n=!0},i(A){n||(transition_in(e.$$.fragment,A),n=!0)},o(A){transition_out(e.$$.fragment,A),n=!1},d(A){destroy_component(e,A)}}}function create_if_block_4(r){let e,n;return e=new StructureTab({}),{c(){create_component(e.$$.fragment)},m(A,o){mount_component(e,A,o),n=!0},i(A){n||(transition_in(e.$$.fragment,A),n=!0)},o(A){transition_out(e.$$.fragment,A),n=!1},d(A){destroy_component(e,A)}}}function create_if_block_3(r){let e,n;return e=new SchemaTab({}),{c(){create_component(e.$$.fragment)},m(A,o){mount_component(e,A,o),n=!0},i(A){n||(transition_in(e.$$.fragment,A),n=!0)},o(A){transition_out(e.$$.fragment,A),n=!1},d(A){destroy_component(e,A)}}}function create_if_block_2(r){let e,n;return e=new PluginsTab({}),{c(){create_component(e.$$.fragment)},m(A,o){mount_component(e,A,o),n=!0},i(A){n||(transition_in(e.$$.fragment,A),n=!0)},o(A){transition_out(e.$$.fragment,A),n=!1},d(A){destroy_component(e,A)}}}function create_if_block_1(r){let e,n;return e=new HistoryTab({}),{c(){create_component(e.$$.fragment)},m(A,o){mount_component(e,A,o),n=!0},i(A){n||(transition_in(e.$$.fragment,A),n=!0)},o(A){transition_out(e.$$.fragment,A),n=!1},d(A){destroy_component(e,A)}}}function create_if_block$1(r){let e,n;return e=new StateTab({}),{c(){create_component(e.$$.fragment)},m(A,o){mount_component(e,A,o),n=!0},i(A){n||(transition_in(e.$$.fragment,A),n=!0)},o(A){transition_out(e.$$.fragment,A),n=!1},d(A){destroy_component(e,A)}}}function create_fragment$1(r){let e,n,A,o,s,a,l,c,g,h,d,u,f,I,p,m,E,B,Q,w,y,S,D,_,M,v,F,R;n=new PasteModal({props:{isOpen:r[5]}}),n.$on("submit",r[12]),n.$on("close",r[11]),y=new TabsMenu({props:{onClickTab:r[14],active:r[1]}});const N=[create_if_block$1,create_if_block_1,create_if_block_2,create_if_block_3,create_if_block_4,create_if_block_5,create_else_block$1],L=[];function G(K,O){return K[1]==="state"?0:K[1]==="history"?1:K[1]==="plugins"?2:K[1]==="schema"?3:K[1]==="structure"?4:K[1]==="snapshots"?5:6}return D=G(r),_=L[D]=N[D](r),{c(){e=element("div"),create_component(n.$$.fragment),A=space(),o=element("div"),s=element("div"),a=space(),l=element("div"),c=element("div"),g=element("button"),g.textContent="Copy",h=space(),d=element("button"),d.textContent="Save",u=space(),f=element("button"),f.textContent="Import",I=space(),p=element("button"),p.textContent="Paste",m=space(),E=element("button"),E.textContent="X",B=space(),Q=element("input"),w=space(),create_component(y.$$.fragment),S=space(),_.c(),attr(s,"class","resizing-div svelte-1quf800"),attr(s,"role","button"),attr(s,"tabindex","-1"),attr(g,"class","copy-btn svelte-1quf800"),attr(d,"class","save-btn svelte-1quf800"),attr(f,"class","import-btn svelte-1quf800"),attr(p,"class","paste-btn svelte-1quf800"),attr(E,"class","close-btn svelte-1quf800"),attr(E,"aria-label","Close dev-toolkit"),set_style(Q,"display","none"),attr(Q,"type","file"),attr(Q,"accept",".json"),Q.multiple=!0,attr(l,"class","floating-dock-body svelte-1quf800"),attr(o,"class","floating-dock svelte-1quf800"),attr(o,"style",M="top: ".concat(r[2],"%; height: ").concat(r[3],"%;")),attr(e,"class","floating-dock-wrapper svelte-1quf800")},m(K,O){insert(K,e,O),mount_component(n,e,null),append(e,A),append(e,o),append(o,s),append(o,a),append(o,l),append(l,c),append(c,g),append(c,h),append(c,d),append(c,u),append(c,f),append(c,I),append(c,p),append(c,m),append(c,E),append(l,B),append(l,Q),r[15](Q),append(l,w),mount_component(y,l,null),append(l,S),L[D].m(l,null),v=!0,F||(R=[listen(s,"mousedown",r[6]),listen(g,"click",r[7]),listen(d,"click",r[8]),listen(f,"click",r[9]),listen(p,"click",r[10]),listen(E,"click",function(){is_function(r[0])&&r[0].apply(this,arguments)}),listen(Q,"change",r[13])],F=!0)},p(K,O){let[oe]=O;r=K;const j={};oe&32&&(j.isOpen=r[5]),n.$set(j);const Ae={};oe&2&&(Ae.active=r[1]),y.$set(Ae);let z=D;D=G(r),D!==z&&(group_outros(),transition_out(L[z],1,1,()=>{L[z]=null}),check_outros(),_=L[D],_||(_=L[D]=N[D](r),_.c()),transition_in(_,1),_.m(l,null)),(!v||oe&12&&M!==(M="top: ".concat(r[2],"%; height: ").concat(r[3],"%;")))&&attr(o,"style",M)},i(K){v||(transition_in(n.$$.fragment,K),transition_in(y.$$.fragment,K),transition_in(_),v=!0)},o(K){transition_out(n.$$.fragment,K),transition_out(y.$$.fragment,K),transition_out(_),v=!1},d(K){K&&detach(e),destroy_component(n),r[15](null),destroy_component(y),L[D].d(),F=!1,run_all(R)}}}function instance$1(r,e,n){let{onClose:A}=e;const{view:o}=getContext("editor-view");let s="state",a=50,l=50,c,g=!1;onDestroy(()=>{document.removeEventListener("mousemove",d),document.removeEventListener("mouseup",u)});function h(){document.addEventListener("mousemove",d),document.addEventListener("mouseup",u)}function d(S){S.preventDefault(),n(2,a=100*S.clientY/window.innerHeight),n(3,l=100*(1-S.clientY/window.innerHeight))}function u(S){S.preventDefault(),document.removeEventListener("mousemove",d),document.removeEventListener("mouseup",u)}function f(){navigator.clipboard.writeText(JSON.stringify(o.state.doc.toJSON()))}function I(){const S=new Date().toLocaleString("sv"),D=prompt("Enter snapshot name",S);D&&saveSnapshot(D,o.state.doc.toJSON())}function p(){c.click()}function m(){n(5,g=!g)}function E(){n(5,g=!1)}function B(S){const D=saveSnapshot(new Date().toLocaleString("sv"),S.detail.doc);restoreSnapshot(o,D),n(5,g=!1)}function Q(S){Array.from(S.currentTarget.files||[]).forEach(D=>{const _=new FileReader;_.readAsText(D),_.onload=M=>{var v,F;const R=typeof((v=M.target)===null||v===void 0?void 0:v.result)=="string"?(F=M.target)===null||F===void 0?void 0:F.result:"";try{const N=JSON.parse(R);if(!N||typeof N!="object")throw Error("Imported snapshot was not a JSON object"+N);const L=D.name.slice(0,D.name.lastIndexOf("."));importSnapshot(L,N,o.state.schema)}catch(N){console.error("Failed to import snapshot: "+N)}}})}function w(S){n(1,s=S)}function y(S){binding_callbacks[S?"unshift":"push"](()=>{c=S,n(4,c)})}return r.$$set=S=>{"onClose"in S&&n(0,A=S.onClose)},[A,s,a,l,c,g,h,f,I,p,m,E,B,Q,w,y]}class FloatingDock extends SvelteComponent{constructor(e){super(),init$1(this,e,instance$1,create_fragment$1,safe_not_equal,{onClose:0},add_css$1)}}function add_css(r){append_styles(r,"svelte-pr6kw9",'.dev-tools.svelte-pr6kw9{font-family:var(--font-sans);font-size:var(--font-medium);font-weight:400;--font-sans:Helvetica Neue, Calibri Light, Roboto, sans-serif;--font-small:11px;--font-medium:13px;--font-large:16px;--height-tabs-menu:48px;--tree-view-font-family:"Helvetica Neue", "Calibri Light", Roboto, sans-serif;--tree-view-font-size:13px;--tree-view-left-indent:0.875em;--tree-view-line-height:1.1;--tree-view-key-margin-right:0.5em;--tree-view-base00:#363755;--tree-view-base01:#604d49;--tree-view-base02:#6d5a55;--tree-view-base03:#d1929b;--tree-view-base04:#b79f8d;--tree-view-base05:#f9f8f2;--tree-view-base06:#f7f4f1;--tree-view-base07:#faf8f5;--tree-view-base08:#fa3e7e;--tree-view-base09:#fd993c;--tree-view-base0A:#f6bf81;--tree-view-base0B:#b8e248;--tree-view-base0C:#b4efe4;--tree-view-base0D:#85d9ef;--tree-view-base0E:#be87ff;--tree-view-base0F:#d6724c}.dev-tools.svelte-pr6kw9 .svelte-tree-view *{box-sizing:border-box}.dev-tools.svelte-pr6kw9 .hidden{opacity:0;visibility:hidden}')}function create_else_block(r){let e,n;return e=new FloatingBtn({props:{buttonPosition:r[1]}}),e.$on("click",r[2]),{c(){create_component(e.$$.fragment)},m(A,o){mount_component(e,A,o),n=!0},p(A,o){const s={};o&2&&(s.buttonPosition=A[1]),e.$set(s)},i(A){n||(transition_in(e.$$.fragment,A),n=!0)},o(A){transition_out(e.$$.fragment,A),n=!1},d(A){destroy_component(e,A)}}}function create_if_block(r){let e,n;return e=new FloatingDock({props:{onClose:r[3]}}),{c(){create_component(e.$$.fragment)},m(A,o){mount_component(e,A,o),n=!0},p:noop,i(A){n||(transition_in(e.$$.fragment,A),n=!0)},o(A){transition_out(e.$$.fragment,A),n=!1},d(A){destroy_component(e,A)}}}function create_fragment(r){let e,n,A,o;const s=[create_if_block,create_else_block],a=[];function l(c,g){return c[0]?0:1}return n=l(r),A=a[n]=s[n](r),{c(){e=element("section"),A.c(),attr(e,"class","dev-tools svelte-pr6kw9")},m(c,g){insert(c,e,g),a[n].m(e,null),o=!0},p(c,g){let[h]=g,d=n;n=l(c),n===d?a[n].p(c,h):(group_outros(),transition_out(a[d],1,1,()=>{a[d]=null}),check_outros(),A=a[n],A?A.p(c,h):(A=a[n]=s[n](c),A.c()),transition_in(A,1),A.m(e,null))},i(c){o||(transition_in(A),o=!0)},o(c){transition_out(A),o=!1},d(c){c&&detach(e),a[n].d()}}}function instance(r,e,n){let{view:A,devToolsExpanded:o=!1,buttonPosition:s="bottom-right"}=e;setContext("editor-view",{view:A,execCmd(c){c(A.state,A.dispatch)},replaceEditorContent(c){const g=A.state.tr;g.replaceWith(0,A.state.doc.nodeSize-2,c.doc.content),A.dispatch(g)}}),onMount(()=>{const c=document&&document.querySelector("html");o&&c&&(c.style.paddingBottom="341px")});function a(){n(0,o=!0);const c=document&&document.querySelector("html");c&&(c.style.paddingBottom="341px")}function l(){n(0,o=!1);const c=document&&document.querySelector("html");c&&(c.style.paddingBottom="")}return r.$$set=c=>{"view"in c&&n(4,A=c.view),"devToolsExpanded"in c&&n(0,o=c.devToolsExpanded),"buttonPosition"in c&&n(1,s=c.buttonPosition)},[o,s,a,l,A]}class DevTools extends SvelteComponent{constructor(e){super(),init$1(this,e,instance,create_fragment,safe_not_equal,{view:4,devToolsExpanded:0,buttonPosition:1},add_css)}}let active=!1,resetDispatch;const handleDispatch=(r,e)=>n=>{const A=r.state,o=r.state.applyTransaction(n);if(e){const s=r.state.applyTransaction.bind(r.state);r.state.applyTransaction=function(a){return a!==n?(r.state.applyTransaction=s,Reflect.apply(s,r.state,arguments)):o},e(n)}else r.updateState(o.state);active&&o.transactions.length>0&&appendNewHistoryEntry(o.transactions,r.state,A)};function subscribeToDispatchTransaction(r){var e;active=!0;const n=(e=(r.props||r._props).dispatchTransaction)===null||e===void 0?void 0:e.bind(r);r.setProps({dispatchTransaction:handleDispatch(r,n)}),resetDispatch=()=>r.setProps({dispatchTransaction:n})}function unsubscribeDispatchTransaction(){active=!1,resetDispatch&&resetDispatch(),resetDispatch=void 0}const DEVTOOLS_CSS_CLASS="__prosemirror-dev-toolkit__";function createOrFindPlace(){let r=document.querySelector(`.${DEVTOOLS_CSS_CLASS}`);return r||(r=document.createElement("div"),r.className=DEVTOOLS_CSS_CLASS,document.body.appendChild(r)),r}class ProseMirrorDevToolkit extends HTMLElement{constructor(){super();const e=this.attachShadow({mode:"open"});this.addEventListener("init-dev-toolkit",n=>{const{detail:{view:A,opts:o}}=n;this.component=new DevTools({target:e,props:Object.assign({view:A},o)})})}disconnectedCallback(){var e;(e=this.component)===null||e===void 0||e.$destroy()}}customElements.get("prosemirror-dev-toolkit")||customElements.define("prosemirror-dev-toolkit",ProseMirrorDevToolkit);typeof window<"u"&&(window.applyDevTools=applyDevTools);let removeCallback;function applyDevTools(r,e={}){const n=createOrFindPlace();if(removeDevTools(),r.isDestroyed)return;let A;const{disableWebComponent:o}=e,s=__rest(e,["disableWebComponent"]);if(o)A=new DevTools({target:n,props:Object.assign({view:r},s)});else{const l=document.createElement("prosemirror-dev-toolkit");l.dispatchEvent(new CustomEvent("init-dev-toolkit",{detail:{view:r,opts:s}})),n.appendChild(l)}typeof window<"u"&&(window.editorView=r,window.pmCmd=l=>{const c=r.state;return l(c,r.dispatch,r)});const a=r.destroy.bind(r);r.destroy=()=>{removeDevTools(),a()},subscribeToDispatchTransaction(r),removeCallback=()=>{resetHistory(),unsubscribeDispatchTransaction(),A?.$destroy();const l=n.firstChild;l&&n.removeChild(l)}}function removeDevTools(){removeCallback&&removeCallback(),removeCallback=void 0}class ExtensionDevToolkit extends Extension{constructor(e={}){super(e),this.config=e,this.name="dev_toolkit",this.visible=!1}getCommandFactories(e){return{toggleDevToolkit:()=>()=>(this.visible?(removeDevTools(),this.visible=!this.visible):e.view instanceof EditorView$1&&(applyDevTools(e.view,{devToolsExpanded:!0}),this.visible=!this.visible),!0)}}getKeyboardShortcuts(){return{"Ctrl-`":"toggleDevToolkit"}}}const NESTING_OPENING=1,NESTING_SELF_CLOSING=0,NESTING_CLOSING=-1;class Token{constructor(e,n,A){this.type=e,this.tag=n,this.nesting=A,this.attrs=null,this.map=null,this.level=0,this.children=null,this.content="",this.markup="",this.info="",this.meta=null,this.block=!1,this.hidden=!1}attrIndex(e){if(!this.attrs)return-1;const n=this.attrs;for(let A=0,o=n.length;A<o;A++)if(n[A][0]===e)return A;return-1}attrPush(e){this.attrs?this.attrs.push(e):this.attrs=[e]}attrSet(e,n){const A=this.attrIndex(e),o=[e,n];A<0||!this.attrs?this.attrPush(o):this.attrs[A]=o}attrGet(e){const n=this.attrIndex(e);let A=null;return n>=0&&this.attrs&&(A=this.attrs[n][1]),A}attrJoin(e,n){const A=this.attrIndex(e);A<0||!this.attrs?this.attrPush([e,n]):this.attrs[A][1]=this.attrs[A][1]+" "+n}}const Brackets={left:["(","[","{","|","‖","⟨","⌊","⌈","⌜"],right:[")","]","}","|","‖","⟩","⌋","⌉","⌝"],isPair:function(r,e){const n=this.left.indexOf(r);return e===this.right[n]},contains:function(r){return this.isLeft(r)||this.isRight(r)},isLeft:function(r){return this.left.indexOf(r)>-1},isRight:function(r){return this.right.indexOf(r)>-1},parseLeft:function(r,e=!0){if(this.left.indexOf(r)<0)return r;let n="";switch(r){case"(":case"[":case"|":n=`\\left${r}`;break;case"‖":n="\\left\\|";break;case"{":n="\\left\\{";break;case"⟨":n="\\left\\langle ";break;case"⌊":n="\\left\\lfloor ";break;case"⌈":n="\\left\\lceil ";break;case"⌜":n="\\left\\ulcorner ";break}return e?n:n.replace("\\left","")},parseRight:function(r,e=!0){if(this.right.indexOf(r)<0)return r;let n="";switch(r){case")":case"]":case"|":n=`\\right${r}`;break;case"‖":n="\\right\\|";break;case"}":n="\\right\\}";break;case"⟩":n=" \\right\\rangle";break;case"⌋":n=" \\right\\rfloor";break;case"⌉":n=" \\right\\rceil";break;case"⌝":n=" \\right\\urcorner";break}return e?n:n.replace("\\right","")}},MathSymbol={parseIdentifier:function(r){if(r.length===0)return"";if(r.length===1){const e=r.charCodeAt(0);let n=this.greekLetter.decimals.indexOf(e);return n>-1?this.greekLetter.scripts[n]+" ":r}else return this.parseMathFunction(r)},parseOperator:function(r){if(r.length===0)return"";if(r.length===1){const e=r.charCodeAt(0),n=[this.bigCommand,this.relation,this.binaryOperation,this.setAndLogic,this.delimiter,this.other],A=[!1,!0,!0,!1,!1,!1];for(let o=0;o<n.length;o++){const s=n[o],a=s.decimals.indexOf(e);if(a>-1)return A[o]?[" ",s.scripts[a]," "].join(""):s.scripts[a]+" "}return r}else return this.parseMathFunction(r)},parseMathFunction:function(r){const e=T.createMarker(),n=[];return this.mathFunction.names.forEach((A,o)=>{const s=new RegExp(A,"g");r.match(s)&&(n.push(this.mathFunction.scripts[o]),r=r.replace(s,e.next()+" "))}),e.replaceBack(r,n)},overScript:{decimals:[9182],templates:["\\overbrace{@v}"]},underScript:{decimals:[9183],templates:["\\underbrace{@v}"]},bigCommand:{decimals:[8721,8719,8720,10753,10754,10752,8899,8898,10756,10758,8897,8896,8747,8750,8748,8749,10764,8747],scripts:["\\sum","\\prod","\\coprod","\\bigoplus","\\bigotimes","\\bigodot","\\bigcup","\\bigcap","\\biguplus","\\bigsqcup","\\bigvee","\\bigwedge","\\int","\\oint","\\iint","\\iiint","\\iiiint","\\idotsint"]},relation:{decimals:[60,62,61,8741,8742,8804,8805,8784,8781,8904,8810,8811,8801,8866,8867,8834,8835,8776,8712,8715,8838,8839,8773,8995,8994,8840,8841,8771,8872,8713,8847,8848,126,8764,8869,8739,8849,8850,8733,8826,8827,10927,10928,8800,8738,8737],scripts:["<",">","=","\\parallel","\\nparallel","\\leq","\\geq","\\doteq","\\asymp","\\bowtie","\\ll","\\gg","\\equiv","\\vdash","\\dashv","\\subset","\\supset","\\approx","\\in","\\ni","\\subseteq","\\supseteq","\\cong","\\smile","\\frown","\\nsubseteq","\\nsupseteq","\\simeq","\\models","\\notin","\\sqsubset","\\sqsupset","\\sim","\\sim","\\perp","\\mid","\\sqsubseteq","\\sqsupseteq","\\propto","\\prec","\\succ","\\preceq","\\succeq","\\neq","\\sphericalangle","\\measuredangle"]},binaryOperation:{decimals:[43,45,177,8745,8900,8853,8723,8746,9651,8854,215,8846,9661,8855,247,8851,9667,8856,8727,8852,9657,8857,8902,8744,9711,8728,8224,8743,8729,8726,8225,8901,8768,10815],scripts:["+","-","\\pm","\\cap","\\diamond","\\oplus","\\mp","\\cup","\\bigtriangleup","\\ominus","\\times","\\uplus","\\bigtriangledown","\\otimes","\\div","\\sqcap","\\triangleleft","\\oslash","\\ast","\\sqcup","\\triangleright","\\odot","\\star","\\vee","\\bigcirc","\\circ","\\dagger","\\wedge","\\bullet","\\setminus","\\ddagger","\\cdot","\\wr","\\amalg"]},setAndLogic:{decimals:[8707,8594,8594,8708,8592,8592,8704,8614,172,10233,8834,8658,10233,8835,8596,8712,10234,8713,8660,8715,8868,8743,8869,8744,8709,8709],scripts:["\\exists","\\rightarrow","\\to","\\nexists","\\leftarrow","\\gets","\\forall","\\mapsto","\\neg","\\implies","\\subset","\\Rightarrow","\\implies","\\supset","\\leftrightarrow","\\in","\\iff","\\notin","\\Leftrightarrow","\\ni","\\top","\\land","\\bot","\\lor","\\emptyset","\\varnothing"]},delimiter:{decimals:[124,8739,8214,47,8726,123,125,10216,10217,8593,8657,8968,8969,8595,8659,8970,8971],scripts:["|","\\mid","\\|","/","\\backslash","\\{","\\}","\\langle","\\rangle","\\uparrow","\\Uparrow","\\lceil","\\rceil","\\downarrow","\\Downarrow","\\lfloor","\\rfloor"]},greekLetter:{decimals:[913,945,925,957,914,946,926,958,915,947,927,959,916,948,928,960,982,917,1013,949,929,961,1009,918,950,931,963,962,919,951,932,964,920,952,977,933,965,921,953,934,981,966,922,954,1008,935,967,923,955,936,968,924,956,937,969],scripts:["A","\\alpha","N","\\nu","B","\\beta","\\Xi","\\xi","\\Gamma","\\gamma","O","o","\\Delta","\\delta","\\Pi","\\pi","\\varpi","E","\\epsilon","\\varepsilon","P","\\rho","\\varrho","Z","\\zeta","\\Sigma","\\sigma","\\varsigma","H","\\eta","T","\\tau","\\Theta","\\theta","\\vartheta","\\Upsilon","\\upsilon","I","\\iota","\\Phi","\\phi","\\varphi","K","\\kappa","\\varkappa","X","\\chi","\\Lambda","\\lambda","\\Psi","\\psi","M","\\mu","\\Omega","\\omega"]},other:{decimals:[8706,305,8476,8711,8501,240,567,8465,9723,8502,8463,8467,8472,8734,8503],scripts:["\\partial","\\imath","\\Re","\\nabla","\\aleph","\\eth","\\jmath","\\Im","\\Box","\\beth","\\hbar","\\ell","\\wp","\\infty","\\gimel"]},mathFunction:{names:["arcsin","sinh","sin","sec","arccos","cosh","cos","csc","arctan","tanh","tan","arccot","coth","cot","limsup","liminf","exp","ker","deg","gcd","lg","ln","Pr","sup","det","hom","lim","log","arg","dim","inf","max","min"],scripts:["\\arcsin","\\sinh","\\sin","\\sec","\\arccos","\\cosh","\\cos","\\csc","\\arctan","\\tanh","\\tan","\\arccot","\\coth","\\cot","\\limsup","\\liminf","\\exp","\\ker","\\deg","\\gcd","\\lg","\\ln","\\Pr","\\sup","\\det","\\hom","\\lim","\\log","\\arg","\\dim","\\inf","\\max","\\min"]}},T={};T.createMarker=function(){return{idx:-1,reReplace:/@\[\[(\d+)\]\]/mg,next:function(){return`@[[${++this.idx}]]`},replaceBack:function(r,e){return r.replace(this.reReplace,(n,A)=>{const o=parseInt(A);return e[o]})}}};const root=typeof window<"u"?window:{};function canParseHTMLNatively(){const r=root.DOMParser;let e=!1;try{new r().parseFromString("","text/html")&&(e=!0)}catch{}return e}function createHTMLParser(){const r=function(){};return shouldUseActiveX()?r.prototype.parseFromString=function(e){const n=new window.ActiveXObject("htmlfile");return n.designMode="on",n.open(),n.write(e),n.close(),n}:r.prototype.parseFromString=function(e){const n=document.implementation.createHTMLDocument("");return n.open(),n.write(e),n.close(),n},r}function shouldUseActiveX(){let r=!1;try{document.implementation.createHTMLDocument("").open()}catch{window.ActiveXObject&&(r=!0)}return r}var HTMLParser=canParseHTMLNatively()?root.DOMParser:createHTMLParser();const NodeTool={parseMath:function(r){return new HTMLParser().parseFromString(r,"text/html").querySelector("math")},getChildren:function(r){return r.children},getNodeName:function(r){return r.tagName.toLowerCase()},getNodeText:function(r){return r.textContent},getAttr:function(r,e,n){const A=r.getAttribute(e);return A===null?n:A},getPrevNode:function(r){return r.previousElementSibling},getNextNode:function(r){return r.nextElementSibling}};function convert(r){const e=NodeTool.parseMath(r);return toLatex(parse(e))}function toLatex(r){return r=r.replace(/\\left\(\\DELETE_BRACKET_L/g,""),r=r.replace(/\\DELETE_BRACKET_R\\right\)/g,""),r=r.replace(/\\DELETE_BRACKET_L/g,""),r=r.replace(/\\DELETE_BRACKET_R/g,""),r}function parse(r){const e=NodeTool.getChildren(r);return!e||e.length===0?parseLeaf(r):parseContainer(r,e)}function parseLeaf(r){let e="";switch(NodeTool.getNodeName(r)){case"mi":e=parseElementMi(r);break;case"mn":e=parseElementMn(r);break;case"mo":e=parseOperator(r);break;case"ms":e=parseElementMs(r);break;case"mtext":e=parseElementMtext(r);break;case"mglyph":e=parseElementMglyph(r);break;case"mprescripts":e="";break;case"mspace":e=parseElementMspace();case"none":e="\\:";break;default:e=escapeSpecialChars(NodeTool.getNodeText(r).trim());break}return e}function parseOperator(r){let e=NodeTool.getNodeText(r).trim();return e=MathSymbol.parseOperator(e),escapeSpecialChars(e)}function parseElementMi(r){let e=NodeTool.getNodeText(r).trim();return e=MathSymbol.parseIdentifier(e),escapeSpecialChars(e)}function parseElementMn(r){let e=NodeTool.getNodeText(r).trim();return escapeSpecialChars(e)}function parseElementMs(r){const e=NodeTool.getNodeText(r).trimRight();return['"',escapeSpecialChars(e),'"'].join("")}function parseElementMtext(r){const e=NodeTool.getNodeText(r);return`\\text{${escapeSpecialChars(e)}}`}function parseElementMglyph(r){const e=['"',NodeTool.getAttr(r,"alt",""),'"'].join("");return escapeSpecialChars(e)}function parseElementMspace(r){return""}function escapeSpecialChars(r){const e=/\$|%|_|&|#|\{|\}/g;return r=r.replace(e,n=>`\\${n}`),r}function parseContainer(r,e){const n=getRender(r);if(n)return n(r,e);throw new Error(`Couldn't get render function for container node: ${NodeTool.getNodeName(r)}`)}function renderChildren(r){const e=[];let n=[];if(Array.prototype.forEach.call(r,A=>{if(NodeTool.getNodeName(A)==="mo"){const o=NodeTool.getNodeText(A).trim();if(Brackets.contains(o)){let s=NodeTool.getAttr(A,"stretchy","true");if(s=["","true"].indexOf(s)>-1,Brackets.isRight(o)){const a=n[n.length-1];a&&Brackets.isPair(a,o)?(e.push(Brackets.parseRight(o,s)),n.pop()):Brackets.isLeft(o)?(e.push(Brackets.parseLeft(o,s)),n.push(o)):console.error("bracket not match")}else e.push(Brackets.parseLeft(o,s)),n.push(o)}else e.push(parseOperator(A))}else e.push(parse(A))}),n.length>0)for(let A=0;A<n.length;A++)e.push("\\right.");return n=void 0,e}function getRender(r){let e;switch(NodeTool.getNodeName(r)){case"msub":e=getRender_default("@1_{@2}");break;case"msup":e=getRender_default("@1^{@2}");break;case"msubsup":e=getRender_default("@1_{@2}^{@3}");break;case"mover":e=renderMover;break;case"munder":e=renderMunder;break;case"munderover":e=getRender_default("@1\\limits_{@2}^{@3}");break;case"mmultiscripts":e=renderMmultiscripts;break;case"mroot":e=getRender_default("\\sqrt[@2]{@1}");break;case"msqrt":e=getRender_joinSeparator("\\sqrt{@content}");break;case"mtable":e=renderTable;break;case"mtr":e=getRender_joinSeparator("@content \\\\ "," & ");break;case"mtd":e=getRender_joinSeparator("@content");break;case"mfrac":e=renderMfrac;break;case"mfenced":e=renderMfenced;break;case"mi":case"mn":case"mo":case"ms":case"mtext":e=getRender_joinSeparator("@content");break;case"mphantom":e=renderMphantom;break;default:e=getRender_joinSeparator("@content");break}return e}function renderTable(r,e){return getRender_joinSeparator("\\begin{matrix} @content \\end{matrix}")(r,e)}function renderMfrac(r,e){const[n,A]=[NodeTool.getAttr(r,"linethickness","medium"),NodeTool.getAttr(r,"bevelled","false")];let o=null;if(A==="true")o=getRender_default("{}^{@1}/_{@2}");else if(["0","0px"].indexOf(n)>-1){const[s,a]=[NodeTool.getPrevNode(r),NodeTool.getNextNode(r)];s&&NodeTool.getNodeText(s).trim()==="("&&a&&NodeTool.getNodeText(a).trim()===")"?o=getRender_default("\\DELETE_BRACKET_L\\binom{@1}{@2}\\DELETE_BRACKET_R"):o=getRender_default("{}_{@2}^{@1}")}else o=getRender_default("\\frac{@1}{@2}");return o(r,e)}function renderMfenced(r,e){const[n,A,o]=[NodeTool.getAttr(r,"open","("),NodeTool.getAttr(r,"close",")"),NodeTool.getAttr(r,"separators",",")],[s,a]=[Brackets.parseLeft(n),Brackets.parseRight(A)],l=o.split("").filter(h=>h.trim().length===1),c=`${s}@content${a}`;return getRender_joinSeparators(c,l)(r,e)}function renderMmultiscripts(r,e){if(e.length===0)return"";let n=-1,A=null;Array.prototype.forEach.call(e,h=>{NodeTool.getNodeName(h)==="mprescripts"&&(A=h)}),A&&(n=Array.prototype.indexOf.call(e,A));const o=renderChildren(e),s=(h,d)=>[h.slice(0,d),h.slice(d+1,h.length)],a=h=>{if(h.length>0){const d=[],u=[];return h.forEach((f,I)=>{(I+1)%2===0?u.push(f):d.push(f)}),[d.length>0?`_{${d.join(" ")}}`:"",u.length>0?`^{${u.join(" ")}}`:""].join("")}else return""},l=o.shift();let c=[],g=[];return n===-1?g=o:[g,c]=s(o,n-1),[a(c),l,a(g)].join("")}function renderMover(r,e){const n=flattenNodeTreeByNodeName(r,"mover");let A;for(let o=0;o<n.length-1;o++){A||(A=parse(n[o]));const s=parse(n[o+1]),a=getMatchValueByChar({decimals:MathSymbol.overScript.decimals,values:MathSymbol.overScript.templates,judgeChar:s,defaultValue:"@1\\limits^{@2}"});A=renderTemplate(a.replace("@v","@1"),[A,s])}return A}function renderMunder(r,e){const n=flattenNodeTreeByNodeName(r,"munder");let A;for(let o=0;o<n.length-1;o++){A||(A=parse(n[o]));const s=parse(n[o+1]),a=getMatchValueByChar({decimals:MathSymbol.underScript.decimals,values:MathSymbol.underScript.templates,judgeChar:s,defaultValue:"@1\\limits_{@2}"});A=renderTemplate(a.replace("@v","@1"),[A,s])}return A}function flattenNodeTreeByNodeName(r,e){let n=[];const A=NodeTool.getChildren(r);return Array.prototype.forEach.call(A,o=>{NodeTool.getNodeName(o)===e?n=n.concat(flattenNodeTreeByNodeName(o,e)):n.push(o)}),n}function getMatchValueByChar(r){const{decimals:e,values:n,judgeChar:A,defaultValue:o=null}=r;if(A&&A.length===1){const s=e.indexOf(A.charCodeAt(0));if(s>-1)return n[s]}return o}function renderMphantom(r,e){return""}function getRender_default(r){return function(e,n){const A=renderChildren(n);return renderTemplate(r,A)}}function renderTemplate(r,e){return r.replace(/\@\d+/g,n=>{const A=parseInt(n.substring(1,n.length))-1;return e[A]})}function getRender_joinSeparator(r,e=""){return function(n,A){const o=renderChildren(A);return r.replace("@content",o.join(e))}}function getRender_joinSeparators(r,e){return function(n,A){const o=renderChildren(A);let s="";return e.length===0?s=o.join(""):s=o.reduce((a,l,c)=>(a+=l,c<o.length-1&&(a+=e[c]||e[e.length-1]),a),""),r.replace("@content",s)}}var mathml2latex={convert};function fixCharacters(r){return r.replace(/’/g,"'").replace(/“/g,'"').replace(/”/g,'"').replace(/\x0b/g," ").replace(/\u201d/g,'"').replace(/\u201c/g,'"')}function numberString(r,e="1"){return["a"].includes(e)?String.fromCharCode(97+r-1)+". ":["A"].includes(e)?String.fromCharCode(65+r-1)+". ":["I"].includes(e)?`${romanize(r)}. `:["i"].includes(e)?`${romanize(r).toLowerCase()}. `:["1"].includes(e)?`${r}. `:`${r}. `}function romanize(r){const e=[["M",1e3],["CM",900],["D",500],["CD",400],["C",100],["XC",90],["L",50],["XL",40],["X",10],["IX",9],["V",5],["IV",4],["I",1]];let n="";for(const[A,o]of e)for(;r>=o;)n+=A,r-=o;return n}function escapeMarkdown(r){const e=[{char:"\\",escape:"\\\\"},{char:"#",escape:"\\#"},{char:"<",escape:"\\<"},{char:"…",escape:"..."},{char:"©",escape:"(c)"},{char:"®",escape:"(r)"},{char:"™",escape:"(tm)"},{char:"±",escape:"+-"},{char:"—",escape:"---"}],n=r.map&&r.map.length>0?r.map[0]:0;if(!n){let h=fixCharacters(r.content);for(const{char:d,escape:u}of e)h=h.replaceAll(d,u);return[[h,r]]}const A=fixCharacters(r.content).split(""),o=[],s=Object.fromEntries(e.map(h=>[h.char,h.escape]));let a=0,l="",c="";const g=()=>{if(c.length>0){const h=structuredClone(r);h.map=[n+a],o.push([c,h]),a=l.length}c=""};for(let h=0;h<A.length;h++){const d=A[h];l+=d,s[d]&&g(),c+=s[d]||d,s[d]&&g()}return g(),o}function getLinkTokensHandlers(){return{text:[(r,e)=>{e.current.meta.link_text+=r.content,r.content&&!e.current.meta.link_token_token&&(e.current.meta.link_token_token=r)}],link_close:[(r,e)=>{{const n=e.current.meta.link_open_token,A=n.attrGet("href")||"",o=n.attrGet("title")||"",s=n.attrGet("origUrl")||A;let a=e.current.meta.link_text;s===a&&(a=A);let l=n.attrGet("mdTemplate");if(l){const c=A.split("/").pop();l=l.replaceAll("$href",A),l=l.replaceAll("$basename",c||""),l=l.replaceAll("$label",e.current.meta.link_text),l=l.replaceAll("$title",o||""),e.current.log(l,r)}else!o&&a===A?e.current.log(A,r):!o&&!A?(e.current.log("[",r),e.current.log(a,e.current.meta.link_token_token),e.current.log(`]${o}`,r)):(e.current.log("[",r),e.current.log(a,e.current.meta.link_token_token),o?e.current.log(`](${A} ${o})`,r):e.current.log(`](${A})`,r));e.unstash("getLinkTokensHandlers.link_close")}}],default:[(r,e)=>{}]}}function getInlineTokensHandlers(){return{text:[(r,e)=>{if(r.meta==="noEscText")e.current.log(r.content);else for(const n of escapeMarkdown(r))e.current.log(n[0],n[1])}],strong_open:[(r,e)=>{e.current.log(r.markup||"**",r)}],strong_close:[(r,e)=>{e.current.log(r.markup||"**",r)}],em_open:[(r,e)=>{e.current.log(r.markup||"*",r)}],em_close:[(r,e)=>{e.current.log(r.markup||"*",r)}],underline_open:[(r,e)=>{e.current.log(r.markup||"_",r)}],underline_close:[(r,e)=>{e.current.log(r.markup||"_",r)}],strike_open:[(r,e)=>{e.current.log(r.markup||"~",r)}],strike_close:[(r,e)=>{e.current.log(r.markup||"~",r)}],link_open:[(r,e)=>{e.stash("getInlineTokensHandlers.link_open"),e.current.handlers=getLinkTokensHandlers(),e.current.meta.link_open_token=r,e.current.meta.link_text="",e.current.meta.link_token_token=null}],code_open:[(r,e)=>{e.current.log("`",r)}],code_close:[(r,e)=>{e.current.log("`",r)}],code_inline:[(r,e)=>{e.current.log("`"+r.content+"`",r)}],math:[(r,e)=>{let n=r.content;if(r.attrGet("lang")==="mathml"){const A=n.replace(/<annotation[\s\S]*?<\/annotation>/g,"");n=mathml2latex.convert(A)}e.current.log("$"+n+"$",r)}],hardbreak:[(r,e)=>{e.current.log(e.current.lineBreak+`
116
+ `,r)}],softbreak:[(r,e)=>{e.current.log(`
117
+ `,r)}],image:[(r,e)=>{{const n=r.attrGet("src");let o=r.attrGet("alt")||"";if(r.children)for(const l of r.children)l.type==="text"&&(o+=l.content);let s="![$alt]";const a=r.attrGet("title");n&&(a?s+="($src $title)":s+="($src)"),s=r.attrGet("mdTemplate")||s,s=s.replaceAll("$alt",o),s=s.replaceAll("$label",o),s=s.replaceAll("$src",n||""),s=s.replaceAll("$title",a||""),e.current.log(s,r)}}],html_block:[(r,e)=>{e.current.log(r.content,r)}],footnote_ref:[(r,e)=>{r.meta.label?e.current.log(`[^${r.meta.label}]`,r):e.current.log(`[^footnote_${r.meta.id}]`,r)}],shortcode_inline:[(r,e)=>{e.current.log("{{"+r.content+"}}",r)}],bookmark:[(r,e)=>{e.current.log(`<a id="${r.attrGet("id")}"></a>`,r)}]}}function escapeHtml(r){return r}function getHtmlInlineFormatTokensHandlers(){return{strong_open:[(r,e)=>{const n=r.tag||"strong";e.current.log(`<${n}>`,r)}],strong_close:[(r,e)=>{const n=r.tag||"strong";e.current.log(`</${n}>`,r)}],em_open:[(r,e)=>{const n=r.tag||"em";e.current.log(`<${n}>`,r)}],em_close:[(r,e)=>{const n=r.tag||"em";e.current.log(`</${n}>`,r)}],strike_open:[(r,e)=>{const n=r.tag||"strike";e.current.log(`<${n}>`,r)}],strike_close:[(r,e)=>{const n=r.tag||"strike";e.current.log(`</${n}>`,r)}],underline_open:[(r,e)=>{const n=r.tag||"u";e.current.log(`<${n}>`,r)}],underline_close:[(r,e)=>{const n=r.tag||"u";e.current.log(`</${n}>`,r)}]}}function getHtmlInlineTokensHandlers(){return{text:[(r,e)=>{e.current.log(r.content,r)}],...getHtmlInlineFormatTokensHandlers(),link_open:[(r,e)=>{e.stash("getHtmlInlineTokensHandlers.link_open");const n=r.attrGet("href")||"";r.attrGet("title"),e.current.log(`<a href="${n}">`,r)}],link_close:[(r,e)=>{e.current.log("</a>",r),e.unstash("getHtmlInlineTokensHandlers.link_close")}],code_open:[(r,e)=>{const n=r.tag||"code";e.current.log(`<${n}>`,r)}],code_close:[(r,e)=>{const n=r.tag||"code";e.current.log(`<${n}>`,r)}],math:[(r,e)=>{e.current.log('<math xmlns="http://www.w3.org/1998/Math/MathML">',r),e.current.log(r.content,r),e.current.log("</math>",r)}],hardbreak:[(r,e)=>{const n=r.tag||"br";e.current.log(`<${n} />`,r)}],softbreak:[(r,e)=>{const n=r.tag||"wbr";e.current.log(`<${n} />`,r)}],image:[(r,e)=>{{let n="";if(r.children)for(const o of r.children)o.type==="text"&&(n+=o.content);const A=r.tag||"img";e.current.log(`<${A} />`,r)}}],html_block:[(r,e)=>{e.current.log(r.content,r)}],footnote_ref:[(r,e)=>{}],shortcode_inline:[(r,e)=>{e.current.log("{{"+r.content+"}}",r)}],bookmark:[(r,e)=>{e.current.log(`<a id="${r.attrGet("id")}"></a>`,r)}]}}function getHtmlBasicTokensHandlers(){return{frontmatter:[],heading_open:[(r,e)=>{e.current.log(`<${r.tag}>`,r)}],heading_close:[(r,e)=>{e.current.log(`</${r.tag}>
118
+ `,r)}],paragraph_open:[(r,e)=>{e.current.log("<p>",r)}],paragraph_close:[(r,e)=>{e.current.log(`</p>
119
+ `,r)}],fence:[(r,e)=>{e.current.log("<pre>"+r.content+`</pre>
120
+ `,r)}],code_block:[(r,e)=>{e.current.log("<pre>"+r.content+`</pre>
121
+ `,r)}],hr:[(r,e)=>{e.current.log(`<hr />
122
+ `,r)}],html_block:[(r,e)=>{e.current.log(r.content,r)}]}}function getHeaderTokensHandlers(){const r=Object.entries(getBasicTokensHandlers()).filter(n=>["heading_close"].includes(n[0])),e=Object.entries(getInlineTokensHandlers()).filter(n=>["text","link_open","link_close"].includes(n[0]));return{...Object.fromEntries(e),...Object.fromEntries(r),default:[]}}function getBasicTokensHandlers(){return{frontmatter:[(r,e)=>{e.current.log(`---
123
+ `+r.content+`
124
+ ---
125
+
126
+ `,r)}],heading_open:[(r,e)=>{e.stash("getBasicTokensHandlers.heading_open"),e.current.handlers=getHeaderTokensHandlers(),r.markup!=="---"&&e.current.log("#".repeat(+r.tag.substring(1))+" ",r)}],heading_close:[(r,e)=>{r.markup==="---"&&e.current.log(`
127
+ `+r.markup+`
128
+ `,r),e.current.log(`
129
+ `,r),e.unstash("getBasicTokensHandlers.heading_close")}],paragraph_open:[(r,e)=>{e.current.log("",r)}],paragraph_close:[(r,e)=>{e.output.colPos!==0&&e.current.log(`
130
+ `,r)}],fence:[(r,e)=>{let n=r.content,A=r.attrGet("lang")||"";if(A==="mathml"){A="math";const o=n.replace(/<annotation[\s\S]*?<\/annotation>/g,"");n=mathml2latex.convert(o)}n.endsWith(`
131
+ `)||(n+=`
132
+ `),A==="latex"?e.current.log(`$$
133
+ `+n+`$$
134
+
135
+ `,r):e.current.log("```"+A+`
136
+ `+n+"```\n\n",r)}],code_block:[(r,e)=>{const n=+(r.attrGet("indent")||0);let A=r.content,o=r.attrGet("lang")||"";if(n===0){if(o==="mathml"){o="math";const s=A.replace(/<annotation[\s\S]*?<\/annotation>/g,"");A=mathml2latex.convert(s)}A.endsWith(`
137
+ `)||(A+=`
138
+ `),o==="rawmd"?e.current.log(A,r):o==="latex"?e.current.log(`$$
139
+ `+A+`$$
140
+
141
+ `,r):e.current.log("```"+o+`
142
+ `+A+"```\n",r);return}e.current.log(r.content.split(`
143
+ `).map(s=>s?" ".repeat(n)+s:"").join(`
144
+ `),r)}],hr:[(r,e)=>{e.current.log((r.markup||"___")+`
145
+ `,r)}],html_block:[(r,e)=>{e.current.log(r.content,r)}]}}function getFootnoteTokensHandlers(){return{footnote_block_open:[(r,e)=>{}],footnote_block_close:[(r,e)=>{}],footnote_open:[(r,e)=>{r.meta.label?e.current.log(`[^${r.meta.label}]: `,r):e.current.log(`[^footnote_${r.meta.id}]: `,r),e.stash("getFootnoteTokensHandlers.footnote_open"),e.current.footnoteCnt++,e.current.itemRow=0}],footnote_close:[(r,e)=>{e.unstash("getFootnoteTokensHandlers.footnote_close")}],footnote_anchor:[(r,e)=>{}]}}class TokenSource{constructor(e){this.tokens=e,this.currentPos=0}get pos(){return this.currentPos}iterate(e,n){for(this.currentPos=e;this.currentPos<this.tokens.length;this.currentPos++){const A=this.tokens[this.currentPos];n(A,this.currentPos)}}append(e){return this.tokens.push(...e),this.tokens.length-e.length}trim(e){this.tokens.splice(e)}rewind(e=-1){if(e<0)throw new RangeError("Invalid rewind pos: "+e);this.currentPos=e}}function writeIndented$1(r,e,n,A){const o=e.split(`
146
+ `),s={ul:2,ol:4,dl:2,tl:4};let a=0;const l=A&&A.map&&A.map.length>0?A.map[0]:0;for(let c=0;c<o.length;c++){const g=o[c];if(c===o.length-1&&g.length===0)continue;let h="";if(r.colPos===0&&(h+="> ".repeat(n.blockquoteCnt)),r.colPos===0&&g.length>0){h+=" ".repeat(n.footnoteCnt);const m=n.listPath.slice(0,n.listPath.length-1).map(E=>s[E]).reduce((E,B)=>E+B,0);switch(n.listType){case"tl":h+=" ".repeat(m),n.itemRow===0?(h+="- ",n.itemSymbol?h+="[x] ":h+="[ ] "):h+=" ";break;case"ul":h+=" ".repeat(m),n.itemRow===0?h+=n.itemSymbol+" ":h+=" ";break;case"ol":h+=" ".repeat(m),n.itemRow===0?h+=n.itemSymbol:h+=" ".repeat(4);break;case"dl":n.itemSymbol&&(n.itemRow===0?h+=`${n.itemSymbol}`:h+=" ".repeat(n.itemSymbol.length));break}}const d=structuredClone(A);l&&d&&(d.map=[l+a]),g.length>0&&n.blockquoteCnt>0&&r.colPos===n.blockquoteCnt*2-1&&(h+=" ");const u=c>=o.length-1,f=new RegExp(n.lineBreak+"$"),I=g.match(new RegExp(n.lineBreak+"$")),p=g.replace(f,"").replace(/[ \t\u00A0]+$/g,"");if(u?I?(r.log(p?h:h.trim()),r.log(p+(I?" ":""),d),a+=(p+(I?" ":"")).length):(r.log(g?h:h.trim()),r.log(g,d),a+=g.length):(r.log(p?h:h.trim()),r.log(p+(I?" ":""),d),a+=(p+(I?" ":"")).length),!u){n.itemRow++;const m=structuredClone(A);l&&m&&(m.map=[l+a]),r.log(`
147
+ `,m),a++}}}function getLongDefinitionTokensHandlers(){return{...getInlineTokensHandlers(),hardbreak:[(r,e)=>{e.current.log(`
148
+ `),e.current.meta.para_hidden&&(e.current.itemSymbol=""),e.current.itemRow++}],code_block:[(r,e)=>{e.current.itemRow===0&&e.current.itemRow++,e.output.colPos>0&&e.current.log(`
149
+ `),e.output.endsWith(`
150
+
151
+ `)||e.current.log(`
152
+ `),e.stash("getLongDefinitionTokensHandlers.code_block"),e.current.log=n=>{writeIndented$1(e.output,n,e.current,r)},e.current.log(r.content.split(`
153
+ `).map(n=>n.trim()?" "+n:"").join(`
154
+ `)+`
155
+ `),e.unstash("getLongDefinitionTokensHandlers.code_block"),e.current.itemRow++}],paragraph_open:[(r,e)=>{e.stash("getLongDefinitionTokensHandlers.paragraph_open"),e.current.meta.para_hidden=r.hidden}],paragraph_close:[(r,e)=>{e.unstash("getLongDefinitionTokensHandlers.paragraph_close"),e.output.colPos,e.current.itemRow++}],dt_open:[(r,e)=>{e.current.itemSymbol="",e.current.itemRow=0}],dt_close:[(r,e)=>{e.output.colPos!==0&&e.current.log(`
156
+ `)}],dd_open:[(r,e)=>{e.output.endsWith(`
157
+
158
+ `)||e.current.log(`
159
+ `),e.current.itemSymbol=": ",e.current.itemRow=0}],dd_close:[(r,e)=>{e.output.colPos!==0&&e.current.log(`
160
+ `)}],dl_open:[(r,e)=>{e.stash("getLongDefinitionTokensHandlers.dl_open"),e.current.listPath.push("dl"),e.current.listType="dl"}],dl_close:[(r,e)=>{e.unstash("getLongDefinitionTokensHandlers.dl_close")}]}}function getShortDefinitionTokensHandlers(){const r=(e,n,A)=>{const o=n.current.meta.def_rollback;if(!n.current.meta.def_token_start)throw new Error("No def_token_start");const s=n.current.meta.def_output_pos;if(!n.current.meta.def_output_pos)throw new Error("No def_output_pos");A.rewind(n.current.meta.def_token_start),n.rollback(o,"rollbackList, "+e.type),n.output.rollback(s),n.stash("getShortDefinitionTokensHandlers.rollbackList"),n.current.listPath.push("dl"),n.current.listType="dl",n.current.handlers=getLongDefinitionTokensHandlers()};return{dl_open:[(e,n,A)=>{const o=n.stash("getShortDefinitionTokensHandlers.dl_open");n.current.meta.def_rollback=o,n.current.meta.def_token_start=A.pos,n.current.meta.def_output_pos=n.output.chunkPos,n.current.listPath.push("dl"),n.current.listType="dl",n.current.handlers=getShortDefinitionTokensHandlers()}],dl_close:[(e,n)=>{n.unstash("getShortDefinitionTokensHandlers.dl_close")}],...getInlineTokensHandlers(),hardbreak:[r],code_block:[r],paragraph_open:[(e,n)=>{}],paragraph_close:[(e,n)=>{n.output.colPos}],dt_open:[(e,n)=>{n.current.itemSymbol="",n.current.itemRow=0}],dt_close:[(e,n)=>{n.output.colPos!==0&&n.current.log(`
161
+ `)}],dd_open:[(e,n)=>{n.current.itemSymbol=" ~ ",n.current.itemRow=0}],dd_close:[(e,n)=>{n.output.colPos!==0&&n.current.log(`
162
+ `)}]}}function getListsTokensHandlers(){return{dl_open:getShortDefinitionTokensHandlers().dl_open,paragraph_close:[(r,e)=>{e.output.colPos!==0&&e.current.log(`
163
+ `,r),e.current.itemRow++}],task_list_open:[(r,e)=>{e.stash("getListsTokensHandlers.task_list_open"),e.current.listPath.push("tl"),e.current.listType="tl",e.current.itemSymbol="",e.current.itemNumber=0}],task_list_close:[(r,e)=>{e.unstash("getListsTokensHandlers.task_list_close"),e.output.colPos!==0&&e.current.log(`
164
+ `)}],task_item_open:[(r,e)=>{e.current.itemRow=0,e.current.itemNumber++,e.current.itemSymbol=r.attrGet("checked")?"x":"",e.output.colPos!==0&&e.current.log(`
165
+ `)}],task_item_close:[(r,e)=>{e.output.colPos!==0&&e.current.log(`
166
+ `)}],bullet_list_open:[(r,e)=>{e.stash("getListsTokensHandlers.bullet_list_open"),e.current.listPath.push("ul"),e.current.listType="ul",e.current.handlers={...e.current.handlers,...getHtmlInlineFormatTokensHandlers()},e.current.itemSymbol="",e.current.itemNumber=0}],bullet_list_close:[(r,e)=>{e.unstash("getListsTokensHandlers.bullet_list_close"),e.output.colPos!==0&&e.current.log(`
167
+ `)}],ordered_list_open:[(r,e)=>{{e.stash("getListsTokensHandlers.ordered_list_open"),e.current.listPath.push("ol"),e.current.listType="ol",e.current.handlers={...e.current.handlers,...getHtmlInlineFormatTokensHandlers()},e.current.itemSymbol="";const n=r.attrGet("symbol");n?e.current.meta.list_symbol=n:e.current.meta.list_symbol="1";const A=r.attrGet("start");A?e.current.itemNumber=(+A||1)-1:e.current.itemNumber=0}}],ordered_list_close:[(r,e)=>{e.unstash("getListsTokensHandlers.ordered_list_close"),e.output.colPos!==0&&e.current.log(`
168
+ `)}],list_item_open:[(r,e)=>{e.current.itemRow=0,r.attrGet("type")!=="none"&&e.current.itemNumber++,e.current.itemSymbol=r.info||r.markup,e.current.itemSymbol||(e.current.itemSymbol=numberString(e.current.itemNumber,e.current.meta.list_symbol||"1")),e.output.colPos!==0&&e.current.log(`
169
+ `)}],list_item_close:[(r,e)=>{e.output.colPos!==0&&e.current.log(`
170
+ `)}],blockquote_open:[(r,e)=>{e.stash("getListsTokensHandlers.blockquote_open"),e.current.blockquoteCnt++,e.output.colPos!==0&&e.current.log(`
171
+ `)}],blockquote_close:[(r,e)=>{e.unstash("getListsTokensHandlers.blockquote_close")}]}}function getHtmlListsTokensHandlers(){return{bullet_list_open:[(r,e)=>{r.attrGet("not_first_para")&&e.current.log(`<br />
172
+ `,r),e.current.log(`<ul>
173
+ `,r)}],bullet_list_close:[(r,e)=>{e.current.log(`</ul>
174
+ `,r)}],ordered_list_open:[(r,e)=>{{r.attrGet("not_first_para")&&e.current.log(`<br />
175
+ `,r),e.current.listPath.push("ol"),e.current.listType="ol",e.current.itemSymbol="";const n=r.attrGet("symbol");n?e.current.meta.list_symbol=n:e.current.meta.list_symbol="1";const A=r.attrGet("start");A?(e.current.itemNumber=(+A||1)-1,e.current.log(`<ol start="${A}">
176
+ `,r)):(e.current.itemNumber=0,e.current.log(`<ol>
177
+ `,r))}}],ordered_list_close:[(r,e)=>{e.current.log(`</ol>
178
+ `,r)}],list_item_open:[(r,e)=>{e.current.itemSymbol=r.info||r.markup,e.current.itemSymbol||(e.current.itemSymbol=numberString(e.current.itemNumber,e.current.meta.list_symbol||"1")),e.current.log(`<li>
179
+ `,r),r.attrGet("type")!=="none"&&e.current.itemNumber++}],list_item_close:[(r,e)=>{e.current.log(`</li>
180
+ `,r)}]}}function getHtmlTableTokensHandlers(){return{...getHtmlInlineTokensHandlers(),...getHtmlBasicTokensHandlers(),...getHtmlListsTokensHandlers(),paragraph_open:[(r,e)=>{r.attrGet("not_first_para")&&e.current.log(`<br />
181
+ `,r)}],paragraph_close:[],table_open:[(r,e)=>{e.stash("getHtmlTableTokensHandlers.table_open"),e.current.meta.html_mode=!0,e.current.log(`<table>
182
+ `,r)}],table_close:[(r,e)=>{e.current.log(`</table>
183
+ `,r),e.unstash("getHtmlTableTokensHandlers.table_close")}],thead_open:[(r,e)=>{e.current.log(`<thead>
184
+ `,r)}],thead_close:[(r,e)=>{e.current.log(`</thead>
185
+ `,r)}],tr_open:[(r,e)=>{e.current.log(`<tr>
186
+ `,r)}],tr_close:[(r,e)=>{e.current.log(`</tr>
187
+ `,r)}],th_open:[(r,e)=>{e.current.log("<th>",r)}],th_close:[(r,e)=>{e.current.log(`</th>
188
+ `,r)}],tbody_open:[(r,e)=>{e.current.log(`<tbody>
189
+ `,r)}],tbody_close:[(r,e)=>{e.current.log(`</tbody>
190
+ `,r)}],td_open:[(r,e)=>{e.current.log("<td>",r)}],td_close:[(r,e)=>{e.current.log(`</td>
191
+ `,r)}]}}class TableBuilder{constructor(){this.currentType="body",this.rows=[]}appendRow(){this.rows.push({type:this.currentType,cells:[]})}appendCell(e,n){const A=this.rows[this.rows.length-1],o=n.map&&n.map.length>0?n.map[0]:0;A.cells.push({value:[],startPos:o,align:e})}appendText(e,n){const A=this.rows[this.rows.length-1];A.cells.length>0&&A.cells[A.cells.length-1].value.push([e,n])}render(e){let n="",A=[];const o=[];for(let s=0;s<this.rows.length;s++){const a=this.rows[s];for(let l=0;l<a.cells.length;l++){for(;o.length<=l;)o.push(1);A[l];const g=a.cells[l].value.reduce((h,d)=>h+d[0].length,0);o[l]<g+1&&(o[l]=g+1)}}for(let s=0;s<this.rows.length;s++){const a=this.rows[s];if(n==="header"&&n!==a.type){e("|");for(let l=0;l<A.length;l++){const c=A[l];e(" "),c.align==="right"?(e("-".repeat(o[l]-2)),e(": |")):(e("-".repeat(o[l]-1)),e(" |"))}e(`
192
+ `)}e("|");for(let l=0;l<a.cells.length;l++){const c=a.cells[l],g=c.value.reduce((h,d)=>h+d[0].length,0);c.align==="right"?g===0&&c.startPos?e(" ".repeat(o[l]-g),{map:[c.startPos+2]}):e(" ".repeat(o[l]-g)):e(" ".repeat(1));for(const h of c.value)e(h[0],h[1]);g<o[l]&&(c.align==="right"?e(" ".repeat(1)):g===0&&c.startPos?e(" ".repeat(o[l]-g),{map:[c.startPos+2]}):e(" ".repeat(o[l]-g))),e("|")}e(`
193
+ `),a.type==="header"&&(A=a.cells),n=a.type}}}function getMdTableTokensHandler(){const r=(e,n,A)=>{if(!n.current.meta.html_rollback)throw new Error("No html_rollback");const o=n.current.meta.html_rollback;A.rewind(o.sourcePos),n.rollback(o.ctxDepth,"rollbackMdTable, "+e.type),n.output.rollback(o.outputPos),n.stash("getMdTableTokensHandler.rollbackTable"),n.current.meta.html_mode=!0,n.current.log(`<table>
194
+ `,e),n.current.handlers=getHtmlTableTokensHandlers()};return{text:[(e,n)=>{n.current.metaObj.table_builder.appendText(e.content,e)}],paragraph_open:[],paragraph_close:[(e,n,A)=>{n.current.meta.table_cell_para_count=+n.current.meta.table_cell_para_count+1,n.current.meta.table_cell_para_count>1&&r(e,n,A)}],default:[r],table_open:[(e,n,A)=>{const o=n.stash("getMdTableTokensHandler.table_open");if(!n.current.meta.html_rollback){const s={sourcePos:A.pos,outputPos:n.output.chunkPos,ctxDepth:o};n.current.meta.html_rollback=s}n.current.metaObj.table_builder=new TableBuilder,n.current.handlers=getMdTableTokensHandler()}],table_close:[(e,n)=>{n.current.metaObj.table_builder.render(n.current.log),n.unstash("getMdTableTokensHandler.table_close")}],thead_open:[(e,n)=>{const A=n.current.metaObj.table_builder;A.currentType="header"}],thead_close:[(e,n)=>{const A=n.current.metaObj.table_builder;A.currentType="body"}],tr_open:[(e,n)=>{n.current.metaObj.table_builder.appendRow()}],tr_close:[(e,n)=>{}],th_open:[(e,n)=>{const A=e.attrGet("align")||"left";n.current.metaObj.table_builder.appendCell(A,e),n.current.meta.table_cell_para_count=0}],th_close:[(e,n)=>{}],tbody_open:[(e,n)=>{const A=n.current.metaObj.table_builder;A.currentType="body"}],tbody_close:[(e,n)=>{}],td_open:[(e,n)=>{const A=e.attrGet("align")||"left";n.current.metaObj.table_builder.appendCell(A,e),n.current.meta.table_cell_para_count=0}],td_close:[(e,n)=>{}]}}function getTableTokensHandlers(){return{table_open:getMdTableTokensHandler().table_open}}function writeIndented(r,e,n,A){const o=e.split(`
195
+ `),s={ul:2,ol:4,dl:2,tl:4};let a=0;const l=A&&A.map&&A.map.length>0?A.map[0]:0;for(let c=0;c<o.length;c++){const g=o[c];if(c===o.length-1&&g.length===0)continue;let h="";if(r.colPos===0&&(h+="> ".repeat(n.blockquoteCnt)),r.colPos===0&&g.length>0){h+=" ".repeat(n.footnoteCnt);const m=n.listPath.slice(0,n.listPath.length-1).map(E=>s[E]).reduce((E,B)=>E+B,0);switch(n.listType){case"tl":h+=" ".repeat(m),n.itemRow===0?(h+="- ",n.itemSymbol?h+="[x] ":h+="[ ] "):h+=" ";break;case"ul":h+=" ".repeat(m),n.itemRow===0?h+=n.itemSymbol+" ":h+=" ";break;case"ol":h+=" ".repeat(m),n.itemRow===0?h+=n.itemSymbol:h+=" ".repeat(4);break;case"dl":n.itemSymbol&&(n.itemRow===0?h+=`${n.itemSymbol}`:h+=" ".repeat(n.itemSymbol.length));break}}const d=structuredClone(A);l&&d&&(d.map=[l+a]),g.length>0&&n.blockquoteCnt>0&&r.colPos===n.blockquoteCnt*2-1&&(h+=" ");const u=c>=o.length-1,f=new RegExp(n.lineBreak+"$"),I=g.match(new RegExp(n.lineBreak+"$")),p=g.replace(f,"").replace(/[ \t\u00A0]+$/g,"");if(u?I?(r.log(p?h:h.trim()),r.log(p+(I?" ":""),d),a+=(p+(I?" ":"")).length):(r.log(g?h:h.trim()),r.log(g,d),a+=g.length):(r.log(p?h:h.trim()),r.log(p+(I?" ":""),d),a+=(p+(I?" ":"")).length),!u){n.itemRow++;const m=structuredClone(A);l&&m&&(m.map=[l+a]),r.log(`
196
+ `,m),a++}}}class ContextStash{constructor(e){this.ctxStash=[],this.output=new SmartOutput,this.currentCtx={lineBreak:"\r",meta:{},metaObj:{},blockquoteCnt:0,footnoteCnt:0,itemRow:0,listPath:[],itemNumber:0,itemSymbol:"",handlers:e,log:(n,A)=>this.output.log(n,A),debug:()=>{},level:0},this.stash("ContextStash.constructor()")}stash(e){this.currentCtx.debug(" ".repeat(this.ctxStash.length)+"stash: "+e),this.ctxStash.push(this.currentCtx);const n={log:this.currentCtx.log,debug:this.currentCtx.debug},A={...this.currentCtx.handlers},o={...this.currentCtx.metaObj};return this.currentCtx={...structuredClone({...this.currentCtx,log:void 0,debug:void 0,handlers:void 0}),metaObj:o,...n,handlers:A,level:this.currentCtx.level+1},this.ctxStash.length-1}unstash(e){const n=this.ctxStash.pop();if(this.currentCtx.debug(" ".repeat(this.ctxStash.length)+"unstash: "+e),!n)throw new Error("Unstash failed");this.currentCtx=n}rollback(e,n){if(!this.ctxStash[e])throw new RangeError("Invalid rollbackPos: "+e);this.currentCtx.debug("rollback "+n,e),this.ctxStash.splice(e),this.currentCtx=this.ctxStash[this.ctxStash.length-1]}get current(){return this.currentCtx}}function serializeInlineTokens(r,e,n){const A=e.append(n),o=e.pos;e.rewind(A);try{e.iterate(A,(s,a)=>{const l=r.current.handlers[s.type]||r.current.handlers.default;if(!l)throw new Error(`Unknown inline token: ${s.type} `+JSON.stringify(s)+`, available hadlers: ${Object.keys(r.current.handlers)}`);for(const c of l)if(c(s,r,e))break;if(e.pos+1<A)throw new RangeError("Rewinded before inline tokens")}),e.rewind(o)}finally{e.trim(A)}}class MarkdownSerializer{constructor(e={}){this.ctx=new ContextStash({...getInlineTokensHandlers(),...getTableTokensHandlers(),...getBasicTokensHandlers(),...getFootnoteTokensHandlers(),...getListsTokensHandlers()}),e.debug&&(this.ctx.current.debug=e.debug)}get endsWithEmptyLine(){return this.ctx.output.endsWith(`
197
+
198
+ `)}serialize(e){const n={},A=new TokenSource(e);return A.iterate(0,(o,s)=>{if(!this.ctx.current.meta.html_mode&&(o.level===0&&o.nesting!==NESTING_CLOSING&&this.ctx.output.colPos!==0&&this.ctx.current.log(`
199
+ `),!this.endsWithEmptyLine)){if(o.nesting!==NESTING_CLOSING&&o.level===0){const l=n[o.level];if((l?.type||"")&&l.attrGet("margin_after")&&o.attrGet("margin_before")){const g=l.type.endsWith("_list_close")&&o.type.endsWith("_list_open"),h=l.type==="bullet_list_close"&&o.type==="bullet_list_open",d=o.attrGet("first_level_type")==="none",u=l?.attrGet("first_level_type")==="none";(!d&&!u&&!h||!g)&&this.ctx.current.log(`
200
+ `)}}else if(o.nesting!==NESTING_CLOSING&&o.level===1&&o.type==="dt_open"){const c=n[o.level]?.type||"";["dt_close","dd_close"].includes(c)&&this.ctx.current.log(`
201
+ `)}}if(o.nesting!==NESTING_CLOSING&&o.level>0){const c=n[o.level]?.type||"";["paragraph_close"].includes(c)&&this.ctx.current.blockquoteCnt===o.level&&writeIndented(this.ctx.output,`
202
+ `,this.ctx.current,o)}const a=this.ctx.current.handlers[o.type]||this.ctx.current.handlers.default;if(o.type==="inline"){if(o.children){this.ctx.stash("serializeInlineTokens()"),this.ctx.current.log=(l,c)=>{writeIndented(this.ctx.output,l,this.ctx.current,c)};try{serializeInlineTokens(this.ctx,A,o.children),this.ctx.unstash("serializeInlineTokens()")}catch(l){if(this.ctx.current.debug(l.message),l.message==="Rewinded before inline tokens")return;throw l}}}else if(a){for(const l of a)if(l(o,this.ctx,A))break}else throw this.ctx.current.debug("current.handlers",Object.keys(this.ctx.current.handlers).sort()),new Error(`Unknown token: ${o.type} `+JSON.stringify(o));n[o.level]=o,o.nesting===NESTING_CLOSING&&(n[o.level+1]=new Token("","",o.nesting))}),this.ctx.output}}const blankMark={open:"",close:"",mixable:!0},blankNode$1={open:"",close:""};function generateInlineTokens(r){const e=[];let n=-1,A="";for(const[o,s]of r){{if(A.length>0){const a=new Token("text","",0);a.meta="generateInline1",a.map=[n],a.content=A,e.push(a)}A="",n=s}A+=o}if(A.length>0){const o=new Token("text","",0);o.meta="generateInline2",o.map=[n],o.content=A,e.push(o)}return e}class DocumentMarkdownInlineTokenizer{constructor(e,n,A){this.nodes=e,this.marks=n,this.options=A}getMark(e){let n=this.marks[e];return n||blankMark}async renderInline(e,n,A){const o=[],s=[],a=[],l=async(g,h,d)=>{const u=n+h;let f=g?g.marks:[];g&&g.type.name===this.options.hardBreakNodeName&&(f=f.filter(Q=>{if(d+1==e.childCount)return!1;let w=e.child(d+1);return Q.isInSet(w.marks)&&(!w.isText||/\S/.test(w.text))}));const I=s.splice(0,s.length);if(g.isText&&f.some(Q=>{let w=this.getMark(Q.type.name);return w&&w.expelEnclosingWhitespace&&!Q.isInSet(o)})){let[Q,w,y]=/^(\s*)(.*)$/m.exec(g.text);w&&(I.push([w,u]),g=y?g.withText(y):null,g||(f=o))}if(g.isText&&f.some(Q=>{let w=this.getMark(Q.type.name);return w&&w.expelEnclosingWhitespace&&(d==e.childCount-1||!Q.isInSet(e.child(d+1).marks))})){let[Q,w,y]=/^(.*?)(\s*)$/m.exec(g.text);y&&(s.push([y,u]),g=w?g.withText(w):null,g||(f=o))}let p=f.length?f[f.length-1]:null,m=p&&this.getMark(p.type.name).escape===!1,E=f.length-(m?1:0);e:for(let Q=0;Q<E;Q++){let w=f[Q];if(!this.getMark(w.type.name).mixable)break;for(let y=0;y<o.length;y++){let S=o[y];if(!this.getMark(S.type.name).mixable)break;if(w.eq(S)){Q>y?f=f.slice(0,y).concat(w).concat(f.slice(y,Q)).concat(f.slice(Q+1,E)):y>Q&&(f=f.slice(0,Q).concat(f.slice(Q+1,y)).concat(w).concat(f.slice(y,E)));continue e}}}let B=0;for(;B<Math.min(o.length,E)&&f[B].eq(o[B]);)++B;for(;B<o.length;){const Q=o.pop();await this.markString(Q,!1,a)}for(a.push(...generateInlineTokens(I.splice(0,I.length)));o.length<E;){let Q=f[o.length];o.push(Q),await this.markString(Q,!0,a)}if(m&&g.isText){if(await this.markString(p,!0,a),g.text){const Q=new Token("text","",0);Q.meta="noEscText",Q.map=[u],Q.content=g.text,a.push(Q)}await this.markString(p,!1,a)}else{const Q=this.nodes[g.type.name]?this.nodes[g.type.name](g,n):blankNode$1;let w="";if(g.type.spec.toDOM){const y=g.type.spec.toDOM(g);Array.isArray(y)&&y.length>0&&(w=y[0])}if(Q.selfClose)if(typeof Q.selfClose=="string"){const y=new Token(Q.selfClose,w,0);y.meta="nodeSpec.selfClose",y.level=A,y.map=[u],a.push(y)}else{const y=await Q.selfClose(g,u,d);y.meta="!nodeSpec.selfClose",y.level=A,y.map=[u],a.push(y)}}};let c=0;for(let g=0;g<e.childCount;g++){const h=e.child(g);await l(h,c,g),c+=h.nodeSize}for(;o.length>0;){const g=o.pop();await this.markString(g,!1,a)}return a.push(...generateInlineTokens(s.splice(0,s.length))),a}async markString(e,n,A){let o=this.getMark(e.type.name),s=n?o.open:o.close;if(!s){console.warn("Unsupported mark type for markdown: "+e.type.name+", available types: "+Object.keys(this.marks).join(", ")+". Mark will be ignored.");return}typeof s=="string"||s(e);let a="";if(e.type.spec.toDOM){const l=e.type.spec.toDOM(e,!0);Array.isArray(l)&&l.length>0&&(a=l[0])}if(typeof s=="string"){const l=new Token(s,a,n?1:-1);l.meta="markString",A.push(l)}else{const l=await s(e);l&&(l.meta=l.meta||"markString()",A.push(l))}}}const blankNode={open:"",close:""};class DocumentMarkdownTokenizer{constructor(e,n,A={hardBreakNodeName:"hard_break"}){this.nodes=e,this.marks=n,this.options=A,this.tokens=[],this.inlineTokenizer=new DocumentMarkdownInlineTokenizer(e,n,A)}async iterateNode(e,n,A=0,o=-1){const s=this.nodes[e.type.name]?this.nodes[e.type.name](e,n):blankNode;let a="";if(e.type.spec.toDOM){const c=e.type.spec.toDOM(e);Array.isArray(c)&&c.length>0&&(a=c[0])}if(s.selfClose){let c;if(typeof s.selfClose=="string"){const g=new Token(s.selfClose,a,0);g.level=o,g.map=[n],this.tokens.push(g),c=g}else{const g=await s.selfClose(e,n,A);g.level=o,g.map=[n],this.tokens.push(g),c=g}["before","both"].includes(s.margin||"")&&c.attrSet("margin_before","1"),["after","both"].includes(s.margin||"")&&c.attrSet("margin_after","1");return}let l;if(s.open){if(typeof s.open=="string"){const c=new Token(s.open,a,1);c.level=o,c.meta="nodeSpec.open",c.map=[n],this.tokens.push(c),l=c}else{const c=await s.open(e,n,A);c.level=o,c.meta="nodeSpec.open()",c.map=[n],this.tokens.push(c),l=c}["before","both"].includes(s.margin||"")&&l.attrSet("margin_before","1")}if(e.inlineContent){const c=new Token("inline","",0);c.level=o+1,c.map=[n],this.tokens.push(c),c.children=await this.inlineTokenizer.renderInline(e,n+1,o+1)}else if(e.childCount>0){let c=0;for(let g=0;g<e.childCount;g++){const h=e.child(g);await this.iterateNode(h,n+c+1,g,o+1),c+=h.nodeSize}}if(s.close){if(!l)throw new Error("No openToken");let c;if(typeof s.close=="string"){const g=new Token(s.close,a,-1);g.meta="nodeSpec.close",g.level=o,this.tokens.push(g),c=g}else{const g=await s.close(e,n,A,l);g.meta="nodeSpec.close()",g.level=o,this.tokens.push(g),c=g}["after","both"].includes(s.margin||"")&&c.attrSet("margin_after","1")}}async serialize(e,n={}){return await this.iterateNode(e,-1,0),this.tokens}}class MdStashContext{constructor(){this.ctxStash=[],this.currentCtx={meta:{}},this.stash()}stash(){return this.ctxStash.push(this.currentCtx),this.currentCtx={...structuredClone({...this.currentCtx})},this.ctxStash.length-1}unstash(){const e=this.ctxStash.pop();if(!e)throw new Error("Unstash failed");this.currentCtx=e}get current(){return this.currentCtx}}async function pmToMdConverter(r,e,n,A){const o=await extPmToMdConverter(r,e,n,A);return new TextEncoder().encode(o.content)}async function extPmToMdConverter(r,e,n,A){const o=new MdStashContext;let s;const a=new DocumentMarkdownTokenizer({paragraph(B){return{open:async(Q,w,y)=>{const S=new Token("paragraph_open","p",NESTING_OPENING);return s.resolve(w).parent?.type.name==="table_cell"&&y>0&&S.attrSet("not_first_para","1"),S},close:async(Q,w,y,S)=>{const D=new Token("paragraph_close","p",NESTING_CLOSING);let _;return Q.children.length===1&&Q.children[0].type.name==="shortcode_inline"&&(_=Q.children[0]),_?(_.attrs.nesting!==NESTING_CLOSING&&S.attrSet("margin_before","1"),_.attrs.nesting!==NESTING_OPENING&&D.attrSet("margin_after","1")):(S.attrSet("margin_before","1"),D.attrSet("margin_after","1")),D}}},hr(B){return{selfClose:"hr",margin:"both"}},heading(B){return{open:async Q=>{if(!Q.attrs.level)throw new Error("No heading level");return new Token("heading_open","h"+Q.attrs.level,1)},close:"heading_close",margin:"both"}},blockquote(B){return{open:"blockquote_open",close:"blockquote_close"}},math(){return{selfClose:async B=>{const Q=new Token("math","math",0);return Q.content=B.attrs.content,Q.attrSet("lang",B.attrs.lang),Q.meta="noEscText",Q}}},task_list(B){return{open:async Q=>{o.stash(),o.current.meta.list_type="tl",o.current.meta.list_type_symbol="";const w=new Token("task_list_open","ul",1);return w.attrSet("symbol","*"),w},close:async Q=>(o.unstash(),new Token("task_list_close","ul",-1)),margin:"both"}},bullet_list(B){return{open:async(Q,w,y)=>{o.stash(),o.current.meta.list_type="ul",o.current.meta.list_type_symbol="*";const S=new Token("bullet_list_open","ul",1);S.attrSet("symbol","*");const D=s.nodeAt(w+1);D?.type.name==="list_item"&&S.attrSet("first_level_type",D.attrs.type);const _=s.resolve(w),M=_.parent;return _.node(_.depth-1),M?.type.name==="table_cell"&&y>0&&S.attrSet("not_first_para","1"),S},close:async(Q,w)=>{o.unstash();const y=new Token("bullet_list_close","ul",-1),S=s.nodeAt(w+1);return S?.type.name==="list_item"&&y.attrSet("first_level_type",S.attrs.type),y},margin:"both"}},ordered_list(B){return{open:async(Q,w,y)=>{o.stash(),o.current.meta.list_type="ol",o.current.meta.list_type_symbol=Q.attrs.type||"1";const S=new Token("ordered_list_open","ol",1);S.attrSet("symbol",Q.attrs.type||"1"),S.attrSet("start",Q.attrs.start);const D=s.nodeAt(w+1);return D?.type.name==="list_item"&&S.attrSet("first_level_type",D.attrs.type),s.resolve(w).parent?.type.name==="table_cell"&&y>0&&S.attrSet("not_first_para","1"),S},close:async(Q,w)=>{o.unstash();const y=new Token("ordered_list_close","ol",-1),S=s.nodeAt(w+1);return S?.type.name==="list_item"&&y.attrSet("first_level_type",S.attrs.type),y},margin:"both"}},list_item(B){return{open:async Q=>{const w=new Token("list_item_open","li",1);return Q.attrs.value&&w.attrSet("value",Q.attrs.value),Q.attrs.type&&w.attrSet("type",Q.attrs.type),o.current.meta.list_type==="ul"&&(w.markup=o.current.meta.list_type_symbol||"-"),w},close:"list_item_close"}},task_item(B){return{open:async Q=>{const w=new Token("task_item_open","li",1);return w.attrSet("checked",Q.attrs.checked?"checked":""),w},close:"task_item_close"}},table(B){return{open:"table_open",close:"table_close",margin:"both"}},table_row(B){return{open:"tr_open",close:"tr_close"}},table_cell(B){return{open:"td_open",close:"td_close"}},table_header(B){return{open:"th_open",close:"th_close"}},br(B){return{selfClose:"hardbreak"}},softbreak(B){return{selfClose:"softbreak"}},text(B){return{selfClose:Q=>{const w=new Token("text","",0);return w.content=Q.text||"",Promise.resolve(w)}}},code_block(B){return{selfClose:Q=>{const w=new Token("code_block","code",0);return w.meta="noEscText",w.attrSet("lang",Q.attrs.lang),w.content=Q.textContent,Promise.resolve(w)},margin:"both"}},image(B){return{selfClose:Q=>{let w=Q.attrs.src,y=Q.attrs.alt;const S=new Token("image","img",0);return S.attrSet("src",w),S.attrSet("alt",y),S.attrSet("origUrl",Q.attrs.origUrl),Q.attrs.title&&S.attrSet("title",Q.attrs.title),S.attrSet("mdTemplate",Q.attrs.mdTemplate),Promise.resolve(S)}}},shortcode_inline(B){return{selfClose:Q=>{const w=new Token("shortcode_inline","shortcode_inline",0);return w.content=Q.attrs.content,Promise.resolve(w)}}},node_bookmark(B){return{selfClose:Q=>{const w=new Token("bookmark","bookmark",NESTING_SELF_CLOSING);return w.content=Q.attrs.content,w.attrSet("id",Q.attrs.id),Promise.resolve(w)}}}},{em:{open:"em_open",close:"em_close",mixable:!0,expelEnclosingWhitespace:!0},underline:{open:"underline_open",close:"underline_close",mixable:!0,expelEnclosingWhitespace:!0},strong:{open:"strong_open",close:"strong_close",mixable:!0,expelEnclosingWhitespace:!0},strike:{open:"strike_open",close:"strike_close",mixable:!0,expelEnclosingWhitespace:!0},math:{open:"math_inline_open",close:"math_inline_close"},link:{open:async B=>{const Q=new Token("link_open","a",1);return Q.attrSet("href",B.attrs.href),Q.attrSet("origUrl",B.attrs.origUrl),Q.attrSet("mdTemplate",B.attrs.mdTemplate),Q},close:"link_close",mixable:!0},code:{open:"code_open",close:"code_close",escape:!1}}),l=[...A.hooks["pm2md.pre"]];let c=EditorState$1.create({doc:r});const g=B=>{c=c.apply(B)};if(l.length>0)for(const B of l)await B(c,Q=>g(Q));s=c.doc;const h=await a.serialize(s);if(e.debugTokens){const B=new CustomEvent("md:tokens",{detail:{tokens:h}});A.dispatchEvent(B)}const d={debug:e.serializerDebug},f=await new MarkdownSerializer(d).serialize(h),I=new CustomEvent("md:output",{detail:{output:f}});A.dispatchEvent(I);const p={},m=[];let E;if(e.sourceMap){const B=new SmartOutput;nodeToTreeStringOutput(B,r),B.getSourceMap((Q,w,y,S)=>{S&&(p[S.pos]={targetRow:Q,targetCol:w})}),E=f.getSourceMap((Q,w,y,S)=>{if(S?.map){const D=S.map[0],_=S.map[2];if(m.push({nodeIdx:D,targetPos:y,targetRow:Q,targetCol:w,sourceCol:_}),p[D])return{sourceNo:0,sourceRowPos:p[D].targetRow,sourceColPos:p[D].targetCol}}}),E.file="target.md",E.sources=["debug.txt"],E.sourcesContent=[B.toString()]}if(e.dispatchSourceMap){const B=new CustomEvent("md:sourcemap",{detail:{sourceMap:E,debugMap:p,rawTextMap:m}});A.dispatchEvent(B)}return{content:f.toString(),sourceMap:E,debugMap:p,rawTextMap:m}}const removeWhitespaces=r=>{const e=r.childNodes;for(let n=e.length-1;n>=0;n-=1){const A=e[n];A.nodeType===3&&A.nodeValue&&/^(\n\s\s|\n)$/.test(A.nodeValue)?r.removeChild(A):A.nodeType===1&&removeWhitespaces(A)}return r};function elementFromString(r){const e=`<html lang="en"><body>${r}</body></html>`,n=new globalThis.DOMParser().parseFromString(e,"text/html").body;return removeWhitespaces(n)}function maybeMerge(r,e){if(r.isText&&e.isText&&Mark$1.sameSet(r.marks,e.marks))return r.withText(r.text+e.text)}class MarkdownParseState{constructor(e,n){this.schema=e,this.tokenHandlers=n,this.stack=[{type:e.topNodeType,attrs:null,content:[],marks:Mark$1.none}]}top(){return this.stack[this.stack.length-1]}push(e){this.stack.length&&this.top().content.push(e)}addText(e){if(!e)return;let n=this.top(),A=n.content,o=A[A.length-1],s=this.schema.text(e,n.marks),a;o&&(a=maybeMerge(o,s))?A[A.length-1]=a:A.push(s)}openMark(e){let n=this.top();n.marks=e.addToSet(n.marks)}closeMark(e){let n=this.top();n.marks=e.removeFromSet(n.marks)}parseTokens(e){for(let n=0;n<e.length;n++){let A=e[n],o=this.tokenHandlers[A.type];if(!o)throw console.log(Object.keys(this.tokenHandlers)),new Error("Token type `"+A.type+"` not supported by Markdown parser");o(this,A,e,n)}}addNode(e,n,A){let o=this.top(),s=e.createAndFill(n,A,o?o.marks:[]);return s?(this.push(s),s):null}openNode(e,n){this.stack.push({type:e,attrs:n,content:[],marks:Mark$1.none})}closeNode(){let e=this.stack.pop();return this.addNode(e.type,e.attrs,e.content)}importNodes(e){for(const n of e)this.push(n)}}function attrs(r,e,n,A){return r.getAttrs?r.getAttrs(e,n,A):r.attrs instanceof Function?r.attrs(e):r.attrs}function noCloseToken(r,e){return r.noCloseToken||e=="code_block"||e=="fence"}function withoutTrailingNewline(r){return r[r.length-1]==`
203
+ `?r.slice(0,r.length-1):r}function noOp(){}function tokenHandlers(r,e){let n=Object.create(null);for(let A in e){let o=e[A];if(o.block){let s=r.nodes[o.block];noCloseToken(o,A)?n[A]=(a,l,c,g)=>{a.openNode(s,attrs(o,l,c,g)),a.addText(withoutTrailingNewline(l.content)),a.closeNode()}:(n[A+"_open"]=(a,l,c,g)=>a.openNode(s,attrs(o,l,c,g)),n[A+"_close"]=a=>a.closeNode())}else if(o.node){let s=r.nodes[o.node];n[A]=(a,l,c,g)=>a.addNode(s,attrs(o,l,c,g))}else if(o.mark){let s=r.marks[o.mark];noCloseToken(o,A)?n[A]=(a,l,c,g)=>{a.openMark(s.create(attrs(o,l,c,g))),a.addText(withoutTrailingNewline(l.content)),a.closeMark(s)}:(n[A+"_open"]=(a,l,c,g)=>a.openMark(s.create(attrs(o,l,c,g))),n[A+"_close"]=a=>a.closeMark(s))}else if(o.custom){const s=o.custom;n[A]=(a,l,c,g)=>{s(a,l,c,g)}}else if(o.ignore)noCloseToken(o,A)?n[A]=noOp:(n[A+"_open"]=noOp,n[A+"_close"]=noOp);else throw new RangeError("Unrecognized parsing spec "+JSON.stringify(o))}return n.text=(A,o)=>A.addText(o.content),n.inline=(A,o)=>A.parseTokens(o.children),n.softbreak=n.softbreak||(A=>A.addText(" ")),n}class MarkdownParser{constructor(e,n,A){this.schema=e,this.tokenizer=n,this.tokens=A,this.tokenHandlers=tokenHandlers(e,A)}parse(e,n={}){const A=new MarkdownParseState(this.schema,this.tokenHandlers),o=this.tokenizer.parse(e,n);A.parseTokens(o);let s;do s=A.closeNode();while(A.stack.length);return s||this.schema.topNodeType.createAndFill()}}var __defProp=Object.defineProperty,__name=(r,e)=>__defProp(r,"name",{value:e,configurable:!0});(class{static{__name(this,"Edit")}startPosition;oldEndPosition;newEndPosition;startIndex;oldEndIndex;newEndIndex;constructor({startIndex:r,oldEndIndex:e,newEndIndex:n,startPosition:A,oldEndPosition:o,newEndPosition:s}){this.startIndex=r>>>0,this.oldEndIndex=e>>>0,this.newEndIndex=n>>>0,this.startPosition=A,this.oldEndPosition=o,this.newEndPosition=s}editPoint(r,e){let n=e;const A={...r};if(e>=this.oldEndIndex){n=this.newEndIndex+(e-this.oldEndIndex);const o=r.row;A.row=this.newEndPosition.row+(r.row-this.oldEndPosition.row),A.column=o===this.oldEndPosition.row?this.newEndPosition.column+(r.column-this.oldEndPosition.column):r.column}else e>this.startIndex&&(n=this.newEndIndex,A.row=this.newEndPosition.row,A.column=this.newEndPosition.column);return{point:A,index:n}}editRange(r){const e={startIndex:r.startIndex,startPosition:{...r.startPosition},endIndex:r.endIndex,endPosition:{...r.endPosition}};return r.endIndex>=this.oldEndIndex?r.endIndex!==Number.MAX_SAFE_INTEGER&&(e.endIndex=this.newEndIndex+(r.endIndex-this.oldEndIndex),e.endPosition={row:this.newEndPosition.row+(r.endPosition.row-this.oldEndPosition.row),column:r.endPosition.row===this.oldEndPosition.row?this.newEndPosition.column+(r.endPosition.column-this.oldEndPosition.column):r.endPosition.column},e.endIndex<this.newEndIndex&&(e.endIndex=Number.MAX_SAFE_INTEGER,e.endPosition={row:Number.MAX_SAFE_INTEGER,column:Number.MAX_SAFE_INTEGER})):r.endIndex>this.startIndex&&(e.endIndex=this.startIndex,e.endPosition={...this.startPosition}),r.startIndex>=this.oldEndIndex?(e.startIndex=this.newEndIndex+(r.startIndex-this.oldEndIndex),e.startPosition={row:this.newEndPosition.row+(r.startPosition.row-this.oldEndPosition.row),column:r.startPosition.row===this.oldEndPosition.row?this.newEndPosition.column+(r.startPosition.column-this.oldEndPosition.column):r.startPosition.column},e.startIndex<this.newEndIndex&&(e.startIndex=Number.MAX_SAFE_INTEGER,e.startPosition={row:Number.MAX_SAFE_INTEGER,column:Number.MAX_SAFE_INTEGER})):r.startIndex>this.startIndex&&(e.startIndex=this.startIndex,e.startPosition={...this.startPosition}),e}});var SIZE_OF_SHORT=2,SIZE_OF_INT=4,SIZE_OF_CURSOR=4*SIZE_OF_INT,SIZE_OF_NODE=5*SIZE_OF_INT,SIZE_OF_POINT=2*SIZE_OF_INT,SIZE_OF_RANGE=2*SIZE_OF_INT+2*SIZE_OF_POINT,ZERO_POINT={row:0,column:0},INTERNAL=Symbol("INTERNAL");function assertInternal(r){if(r!==INTERNAL)throw new Error("Illegal constructor")}__name(assertInternal,"assertInternal");function isPoint(r){return!!r&&typeof r.row=="number"&&typeof r.column=="number"}__name(isPoint,"isPoint");function setModule(r){C=r}__name(setModule,"setModule");var C,LookaheadIterator=class{static{__name(this,"LookaheadIterator")}0=0;language;constructor(r,e,n){assertInternal(r),this[0]=e,this.language=n}get currentTypeId(){return C._ts_lookahead_iterator_current_symbol(this[0])}get currentType(){return this.language.types[this.currentTypeId]||"ERROR"}delete(){C._ts_lookahead_iterator_delete(this[0]),this[0]=0}reset(r,e){return C._ts_lookahead_iterator_reset(this[0],r[0],e)?(this.language=r,!0):!1}resetState(r){return!!C._ts_lookahead_iterator_reset_state(this[0],r)}[Symbol.iterator](){return{next:__name(()=>C._ts_lookahead_iterator_next(this[0])?{done:!1,value:this.currentType}:{done:!0,value:""},"next")}}};function getText(r,e,n,A){const o=n-e;let s=r.textCallback(e,A);if(s){for(e+=s.length;e<n;){const a=r.textCallback(e,A);if(a&&a.length>0)e+=a.length,s+=a;else break}e>n&&(s=s.slice(0,o))}return s??""}__name(getText,"getText");var Tree=class dt{static{__name(this,"Tree")}0=0;textCallback;language;constructor(e,n,A,o){assertInternal(e),this[0]=n,this.language=A,this.textCallback=o}copy(){const e=C._ts_tree_copy(this[0]);return new dt(INTERNAL,e,this.language,this.textCallback)}delete(){C._ts_tree_delete(this[0]),this[0]=0}get rootNode(){return C._ts_tree_root_node_wasm(this[0]),unmarshalNode(this)}rootNodeWithOffset(e,n){const A=TRANSFER_BUFFER+SIZE_OF_NODE;return C.setValue(A,e,"i32"),marshalPoint(A+SIZE_OF_INT,n),C._ts_tree_root_node_with_offset_wasm(this[0]),unmarshalNode(this)}edit(e){marshalEdit(e),C._ts_tree_edit_wasm(this[0])}walk(){return this.rootNode.walk()}getChangedRanges(e){if(!(e instanceof dt))throw new TypeError("Argument must be a Tree");C._ts_tree_get_changed_ranges_wasm(this[0],e[0]);const n=C.getValue(TRANSFER_BUFFER,"i32"),A=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),o=new Array(n);if(n>0){let s=A;for(let a=0;a<n;a++)o[a]=unmarshalRange(s),s+=SIZE_OF_RANGE;C._free(A)}return o}getIncludedRanges(){C._ts_tree_included_ranges_wasm(this[0]);const e=C.getValue(TRANSFER_BUFFER,"i32"),n=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),A=new Array(e);if(e>0){let o=n;for(let s=0;s<e;s++)A[s]=unmarshalRange(o),o+=SIZE_OF_RANGE;C._free(n)}return A}},TreeCursor=class mt{static{__name(this,"TreeCursor")}0=0;1=0;2=0;3=0;tree;constructor(e,n){assertInternal(e),this.tree=n,unmarshalTreeCursor(this)}copy(){const e=new mt(INTERNAL,this.tree);return C._ts_tree_cursor_copy_wasm(this.tree[0]),unmarshalTreeCursor(e),e}delete(){marshalTreeCursor(this),C._ts_tree_cursor_delete_wasm(this.tree[0]),this[0]=this[1]=this[2]=0}get currentNode(){return marshalTreeCursor(this),C._ts_tree_cursor_current_node_wasm(this.tree[0]),unmarshalNode(this.tree)}get currentFieldId(){return marshalTreeCursor(this),C._ts_tree_cursor_current_field_id_wasm(this.tree[0])}get currentFieldName(){return this.tree.language.fields[this.currentFieldId]}get currentDepth(){return marshalTreeCursor(this),C._ts_tree_cursor_current_depth_wasm(this.tree[0])}get currentDescendantIndex(){return marshalTreeCursor(this),C._ts_tree_cursor_current_descendant_index_wasm(this.tree[0])}get nodeType(){return this.tree.language.types[this.nodeTypeId]||"ERROR"}get nodeTypeId(){return marshalTreeCursor(this),C._ts_tree_cursor_current_node_type_id_wasm(this.tree[0])}get nodeStateId(){return marshalTreeCursor(this),C._ts_tree_cursor_current_node_state_id_wasm(this.tree[0])}get nodeId(){return marshalTreeCursor(this),C._ts_tree_cursor_current_node_id_wasm(this.tree[0])}get nodeIsNamed(){return marshalTreeCursor(this),C._ts_tree_cursor_current_node_is_named_wasm(this.tree[0])===1}get nodeIsMissing(){return marshalTreeCursor(this),C._ts_tree_cursor_current_node_is_missing_wasm(this.tree[0])===1}get nodeText(){marshalTreeCursor(this);const e=C._ts_tree_cursor_start_index_wasm(this.tree[0]),n=C._ts_tree_cursor_end_index_wasm(this.tree[0]);C._ts_tree_cursor_start_position_wasm(this.tree[0]);const A=unmarshalPoint(TRANSFER_BUFFER);return getText(this.tree,e,n,A)}get startPosition(){return marshalTreeCursor(this),C._ts_tree_cursor_start_position_wasm(this.tree[0]),unmarshalPoint(TRANSFER_BUFFER)}get endPosition(){return marshalTreeCursor(this),C._ts_tree_cursor_end_position_wasm(this.tree[0]),unmarshalPoint(TRANSFER_BUFFER)}get startIndex(){return marshalTreeCursor(this),C._ts_tree_cursor_start_index_wasm(this.tree[0])}get endIndex(){return marshalTreeCursor(this),C._ts_tree_cursor_end_index_wasm(this.tree[0])}gotoFirstChild(){marshalTreeCursor(this);const e=C._ts_tree_cursor_goto_first_child_wasm(this.tree[0]);return unmarshalTreeCursor(this),e===1}gotoLastChild(){marshalTreeCursor(this);const e=C._ts_tree_cursor_goto_last_child_wasm(this.tree[0]);return unmarshalTreeCursor(this),e===1}gotoParent(){marshalTreeCursor(this);const e=C._ts_tree_cursor_goto_parent_wasm(this.tree[0]);return unmarshalTreeCursor(this),e===1}gotoNextSibling(){marshalTreeCursor(this);const e=C._ts_tree_cursor_goto_next_sibling_wasm(this.tree[0]);return unmarshalTreeCursor(this),e===1}gotoPreviousSibling(){marshalTreeCursor(this);const e=C._ts_tree_cursor_goto_previous_sibling_wasm(this.tree[0]);return unmarshalTreeCursor(this),e===1}gotoDescendant(e){marshalTreeCursor(this),C._ts_tree_cursor_goto_descendant_wasm(this.tree[0],e),unmarshalTreeCursor(this)}gotoFirstChildForIndex(e){marshalTreeCursor(this),C.setValue(TRANSFER_BUFFER+SIZE_OF_CURSOR,e,"i32");const n=C._ts_tree_cursor_goto_first_child_for_index_wasm(this.tree[0]);return unmarshalTreeCursor(this),n===1}gotoFirstChildForPosition(e){marshalTreeCursor(this),marshalPoint(TRANSFER_BUFFER+SIZE_OF_CURSOR,e);const n=C._ts_tree_cursor_goto_first_child_for_position_wasm(this.tree[0]);return unmarshalTreeCursor(this),n===1}reset(e){marshalNode(e),marshalTreeCursor(this,TRANSFER_BUFFER+SIZE_OF_NODE),C._ts_tree_cursor_reset_wasm(this.tree[0]),unmarshalTreeCursor(this)}resetTo(e){marshalTreeCursor(this,TRANSFER_BUFFER),marshalTreeCursor(e,TRANSFER_BUFFER+SIZE_OF_CURSOR),C._ts_tree_cursor_reset_to_wasm(this.tree[0],e.tree[0]),unmarshalTreeCursor(this)}},Node=class{static{__name(this,"Node")}0=0;_children;_namedChildren;constructor(r,{id:e,tree:n,startIndex:A,startPosition:o,other:s}){assertInternal(r),this[0]=s,this.id=e,this.tree=n,this.startIndex=A,this.startPosition=o}id;startIndex;startPosition;tree;get typeId(){return marshalNode(this),C._ts_node_symbol_wasm(this.tree[0])}get grammarId(){return marshalNode(this),C._ts_node_grammar_symbol_wasm(this.tree[0])}get type(){return this.tree.language.types[this.typeId]||"ERROR"}get grammarType(){return this.tree.language.types[this.grammarId]||"ERROR"}get isNamed(){return marshalNode(this),C._ts_node_is_named_wasm(this.tree[0])===1}get isExtra(){return marshalNode(this),C._ts_node_is_extra_wasm(this.tree[0])===1}get isError(){return marshalNode(this),C._ts_node_is_error_wasm(this.tree[0])===1}get isMissing(){return marshalNode(this),C._ts_node_is_missing_wasm(this.tree[0])===1}get hasChanges(){return marshalNode(this),C._ts_node_has_changes_wasm(this.tree[0])===1}get hasError(){return marshalNode(this),C._ts_node_has_error_wasm(this.tree[0])===1}get endIndex(){return marshalNode(this),C._ts_node_end_index_wasm(this.tree[0])}get endPosition(){return marshalNode(this),C._ts_node_end_point_wasm(this.tree[0]),unmarshalPoint(TRANSFER_BUFFER)}get text(){return getText(this.tree,this.startIndex,this.endIndex,this.startPosition)}get parseState(){return marshalNode(this),C._ts_node_parse_state_wasm(this.tree[0])}get nextParseState(){return marshalNode(this),C._ts_node_next_parse_state_wasm(this.tree[0])}equals(r){return this.tree===r.tree&&this.id===r.id}child(r){return marshalNode(this),C._ts_node_child_wasm(this.tree[0],r),unmarshalNode(this.tree)}namedChild(r){return marshalNode(this),C._ts_node_named_child_wasm(this.tree[0],r),unmarshalNode(this.tree)}childForFieldId(r){return marshalNode(this),C._ts_node_child_by_field_id_wasm(this.tree[0],r),unmarshalNode(this.tree)}childForFieldName(r){const e=this.tree.language.fields.indexOf(r);return e!==-1?this.childForFieldId(e):null}fieldNameForChild(r){marshalNode(this);const e=C._ts_node_field_name_for_child_wasm(this.tree[0],r);return e?C.AsciiToString(e):null}fieldNameForNamedChild(r){marshalNode(this);const e=C._ts_node_field_name_for_named_child_wasm(this.tree[0],r);return e?C.AsciiToString(e):null}childrenForFieldName(r){const e=this.tree.language.fields.indexOf(r);return e!==-1&&e!==0?this.childrenForFieldId(e):[]}childrenForFieldId(r){marshalNode(this),C._ts_node_children_by_field_id_wasm(this.tree[0],r);const e=C.getValue(TRANSFER_BUFFER,"i32"),n=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),A=new Array(e);if(e>0){let o=n;for(let s=0;s<e;s++)A[s]=unmarshalNode(this.tree,o),o+=SIZE_OF_NODE;C._free(n)}return A}firstChildForIndex(r){marshalNode(this);const e=TRANSFER_BUFFER+SIZE_OF_NODE;return C.setValue(e,r,"i32"),C._ts_node_first_child_for_byte_wasm(this.tree[0]),unmarshalNode(this.tree)}firstNamedChildForIndex(r){marshalNode(this);const e=TRANSFER_BUFFER+SIZE_OF_NODE;return C.setValue(e,r,"i32"),C._ts_node_first_named_child_for_byte_wasm(this.tree[0]),unmarshalNode(this.tree)}get childCount(){return marshalNode(this),C._ts_node_child_count_wasm(this.tree[0])}get namedChildCount(){return marshalNode(this),C._ts_node_named_child_count_wasm(this.tree[0])}get firstChild(){return this.child(0)}get firstNamedChild(){return this.namedChild(0)}get lastChild(){return this.child(this.childCount-1)}get lastNamedChild(){return this.namedChild(this.namedChildCount-1)}get children(){if(!this._children){marshalNode(this),C._ts_node_children_wasm(this.tree[0]);const r=C.getValue(TRANSFER_BUFFER,"i32"),e=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32");if(this._children=new Array(r),r>0){let n=e;for(let A=0;A<r;A++)this._children[A]=unmarshalNode(this.tree,n),n+=SIZE_OF_NODE;C._free(e)}}return this._children}get namedChildren(){if(!this._namedChildren){marshalNode(this),C._ts_node_named_children_wasm(this.tree[0]);const r=C.getValue(TRANSFER_BUFFER,"i32"),e=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32");if(this._namedChildren=new Array(r),r>0){let n=e;for(let A=0;A<r;A++)this._namedChildren[A]=unmarshalNode(this.tree,n),n+=SIZE_OF_NODE;C._free(e)}}return this._namedChildren}descendantsOfType(r,e=ZERO_POINT,n=ZERO_POINT){Array.isArray(r)||(r=[r]);const A=[],o=this.tree.language.types;for(const g of r)g=="ERROR"&&A.push(65535);for(let g=0,h=o.length;g<h;g++)r.includes(o[g])&&A.push(g);const s=C._malloc(SIZE_OF_INT*A.length);for(let g=0,h=A.length;g<h;g++)C.setValue(s+g*SIZE_OF_INT,A[g],"i32");marshalNode(this),C._ts_node_descendants_of_type_wasm(this.tree[0],s,A.length,e.row,e.column,n.row,n.column);const a=C.getValue(TRANSFER_BUFFER,"i32"),l=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),c=new Array(a);if(a>0){let g=l;for(let h=0;h<a;h++)c[h]=unmarshalNode(this.tree,g),g+=SIZE_OF_NODE}return C._free(l),C._free(s),c}get nextSibling(){return marshalNode(this),C._ts_node_next_sibling_wasm(this.tree[0]),unmarshalNode(this.tree)}get previousSibling(){return marshalNode(this),C._ts_node_prev_sibling_wasm(this.tree[0]),unmarshalNode(this.tree)}get nextNamedSibling(){return marshalNode(this),C._ts_node_next_named_sibling_wasm(this.tree[0]),unmarshalNode(this.tree)}get previousNamedSibling(){return marshalNode(this),C._ts_node_prev_named_sibling_wasm(this.tree[0]),unmarshalNode(this.tree)}get descendantCount(){return marshalNode(this),C._ts_node_descendant_count_wasm(this.tree[0])}get parent(){return marshalNode(this),C._ts_node_parent_wasm(this.tree[0]),unmarshalNode(this.tree)}childWithDescendant(r){return marshalNode(this),marshalNode(r,1),C._ts_node_child_with_descendant_wasm(this.tree[0]),unmarshalNode(this.tree)}descendantForIndex(r,e=r){if(typeof r!="number"||typeof e!="number")throw new Error("Arguments must be numbers");marshalNode(this);const n=TRANSFER_BUFFER+SIZE_OF_NODE;return C.setValue(n,r,"i32"),C.setValue(n+SIZE_OF_INT,e,"i32"),C._ts_node_descendant_for_index_wasm(this.tree[0]),unmarshalNode(this.tree)}namedDescendantForIndex(r,e=r){if(typeof r!="number"||typeof e!="number")throw new Error("Arguments must be numbers");marshalNode(this);const n=TRANSFER_BUFFER+SIZE_OF_NODE;return C.setValue(n,r,"i32"),C.setValue(n+SIZE_OF_INT,e,"i32"),C._ts_node_named_descendant_for_index_wasm(this.tree[0]),unmarshalNode(this.tree)}descendantForPosition(r,e=r){if(!isPoint(r)||!isPoint(e))throw new Error("Arguments must be {row, column} objects");marshalNode(this);const n=TRANSFER_BUFFER+SIZE_OF_NODE;return marshalPoint(n,r),marshalPoint(n+SIZE_OF_POINT,e),C._ts_node_descendant_for_position_wasm(this.tree[0]),unmarshalNode(this.tree)}namedDescendantForPosition(r,e=r){if(!isPoint(r)||!isPoint(e))throw new Error("Arguments must be {row, column} objects");marshalNode(this);const n=TRANSFER_BUFFER+SIZE_OF_NODE;return marshalPoint(n,r),marshalPoint(n+SIZE_OF_POINT,e),C._ts_node_named_descendant_for_position_wasm(this.tree[0]),unmarshalNode(this.tree)}walk(){return marshalNode(this),C._ts_tree_cursor_new_wasm(this.tree[0]),new TreeCursor(INTERNAL,this.tree)}edit(r){if(this.startIndex>=r.oldEndIndex){this.startIndex=r.newEndIndex+(this.startIndex-r.oldEndIndex);let e,n;this.startPosition.row>r.oldEndPosition.row?(e=this.startPosition.row-r.oldEndPosition.row,n=this.startPosition.column):(e=0,n=this.startPosition.column,this.startPosition.column>=r.oldEndPosition.column&&(n=this.startPosition.column-r.oldEndPosition.column)),e>0?(this.startPosition.row+=e,this.startPosition.column=n):this.startPosition.column+=n}else this.startIndex>r.startIndex&&(this.startIndex=r.newEndIndex,this.startPosition.row=r.newEndPosition.row,this.startPosition.column=r.newEndPosition.column)}toString(){marshalNode(this);const r=C._ts_node_to_string_wasm(this.tree[0]),e=C.AsciiToString(r);return C._free(r),e}};function unmarshalCaptures(r,e,n,A,o){for(let s=0,a=o.length;s<a;s++){const l=C.getValue(n,"i32");n+=SIZE_OF_INT;const c=unmarshalNode(e,n);n+=SIZE_OF_NODE,o[s]={patternIndex:A,name:r.captureNames[l],node:c}}return n}__name(unmarshalCaptures,"unmarshalCaptures");function marshalNode(r,e=0){let n=TRANSFER_BUFFER+e*SIZE_OF_NODE;C.setValue(n,r.id,"i32"),n+=SIZE_OF_INT,C.setValue(n,r.startIndex,"i32"),n+=SIZE_OF_INT,C.setValue(n,r.startPosition.row,"i32"),n+=SIZE_OF_INT,C.setValue(n,r.startPosition.column,"i32"),n+=SIZE_OF_INT,C.setValue(n,r[0],"i32")}__name(marshalNode,"marshalNode");function unmarshalNode(r,e=TRANSFER_BUFFER){const n=C.getValue(e,"i32");if(e+=SIZE_OF_INT,n===0)return null;const A=C.getValue(e,"i32");e+=SIZE_OF_INT;const o=C.getValue(e,"i32");e+=SIZE_OF_INT;const s=C.getValue(e,"i32");e+=SIZE_OF_INT;const a=C.getValue(e,"i32");return new Node(INTERNAL,{id:n,tree:r,startIndex:A,startPosition:{row:o,column:s},other:a})}__name(unmarshalNode,"unmarshalNode");function marshalTreeCursor(r,e=TRANSFER_BUFFER){C.setValue(e+0*SIZE_OF_INT,r[0],"i32"),C.setValue(e+1*SIZE_OF_INT,r[1],"i32"),C.setValue(e+2*SIZE_OF_INT,r[2],"i32"),C.setValue(e+3*SIZE_OF_INT,r[3],"i32")}__name(marshalTreeCursor,"marshalTreeCursor");function unmarshalTreeCursor(r){r[0]=C.getValue(TRANSFER_BUFFER+0*SIZE_OF_INT,"i32"),r[1]=C.getValue(TRANSFER_BUFFER+1*SIZE_OF_INT,"i32"),r[2]=C.getValue(TRANSFER_BUFFER+2*SIZE_OF_INT,"i32"),r[3]=C.getValue(TRANSFER_BUFFER+3*SIZE_OF_INT,"i32")}__name(unmarshalTreeCursor,"unmarshalTreeCursor");function marshalPoint(r,e){C.setValue(r,e.row,"i32"),C.setValue(r+SIZE_OF_INT,e.column,"i32")}__name(marshalPoint,"marshalPoint");function unmarshalPoint(r){return{row:C.getValue(r,"i32")>>>0,column:C.getValue(r+SIZE_OF_INT,"i32")>>>0}}__name(unmarshalPoint,"unmarshalPoint");function marshalRange(r,e){marshalPoint(r,e.startPosition),r+=SIZE_OF_POINT,marshalPoint(r,e.endPosition),r+=SIZE_OF_POINT,C.setValue(r,e.startIndex,"i32"),r+=SIZE_OF_INT,C.setValue(r,e.endIndex,"i32"),r+=SIZE_OF_INT}__name(marshalRange,"marshalRange");function unmarshalRange(r){const e={};return e.startPosition=unmarshalPoint(r),r+=SIZE_OF_POINT,e.endPosition=unmarshalPoint(r),r+=SIZE_OF_POINT,e.startIndex=C.getValue(r,"i32")>>>0,r+=SIZE_OF_INT,e.endIndex=C.getValue(r,"i32")>>>0,e}__name(unmarshalRange,"unmarshalRange");function marshalEdit(r,e=TRANSFER_BUFFER){marshalPoint(e,r.startPosition),e+=SIZE_OF_POINT,marshalPoint(e,r.oldEndPosition),e+=SIZE_OF_POINT,marshalPoint(e,r.newEndPosition),e+=SIZE_OF_POINT,C.setValue(e,r.startIndex,"i32"),e+=SIZE_OF_INT,C.setValue(e,r.oldEndIndex,"i32"),e+=SIZE_OF_INT,C.setValue(e,r.newEndIndex,"i32"),e+=SIZE_OF_INT}__name(marshalEdit,"marshalEdit");function unmarshalLanguageMetadata(r){const e=C.getValue(r,"i32"),n=C.getValue(r+=SIZE_OF_INT,"i32"),A=C.getValue(r+=SIZE_OF_INT,"i32");return{major_version:e,minor_version:n,patch_version:A}}__name(unmarshalLanguageMetadata,"unmarshalLanguageMetadata");var LANGUAGE_FUNCTION_REGEX=/^tree_sitter_\w+$/,Language=class Et{static{__name(this,"Language")}0=0;types;fields;constructor(e,n){assertInternal(e),this[0]=n,this.types=new Array(C._ts_language_symbol_count(this[0]));for(let A=0,o=this.types.length;A<o;A++)C._ts_language_symbol_type(this[0],A)<2&&(this.types[A]=C.UTF8ToString(C._ts_language_symbol_name(this[0],A)));this.fields=new Array(C._ts_language_field_count(this[0])+1);for(let A=0,o=this.fields.length;A<o;A++){const s=C._ts_language_field_name_for_id(this[0],A);s!==0?this.fields[A]=C.UTF8ToString(s):this.fields[A]=null}}get name(){const e=C._ts_language_name(this[0]);return e===0?null:C.UTF8ToString(e)}get abiVersion(){return C._ts_language_abi_version(this[0])}get metadata(){return C._ts_language_metadata_wasm(this[0]),C.getValue(TRANSFER_BUFFER,"i32")===0?null:unmarshalLanguageMetadata(TRANSFER_BUFFER+SIZE_OF_INT)}get fieldCount(){return this.fields.length-1}get stateCount(){return C._ts_language_state_count(this[0])}fieldIdForName(e){const n=this.fields.indexOf(e);return n!==-1?n:null}fieldNameForId(e){return this.fields[e]??null}idForNodeType(e,n){const A=C.lengthBytesUTF8(e),o=C._malloc(A+1);C.stringToUTF8(e,o,A+1);const s=C._ts_language_symbol_for_name(this[0],o,A,n?1:0);return C._free(o),s||null}get nodeTypeCount(){return C._ts_language_symbol_count(this[0])}nodeTypeForId(e){const n=C._ts_language_symbol_name(this[0],e);return n?C.UTF8ToString(n):null}nodeTypeIsNamed(e){return!!C._ts_language_type_is_named_wasm(this[0],e)}nodeTypeIsVisible(e){return!!C._ts_language_type_is_visible_wasm(this[0],e)}get supertypes(){C._ts_language_supertypes_wasm(this[0]);const e=C.getValue(TRANSFER_BUFFER,"i32"),n=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),A=new Array(e);if(e>0){let o=n;for(let s=0;s<e;s++)A[s]=C.getValue(o,"i16"),o+=SIZE_OF_SHORT}return A}subtypes(e){C._ts_language_subtypes_wasm(this[0],e);const n=C.getValue(TRANSFER_BUFFER,"i32"),A=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),o=new Array(n);if(n>0){let s=A;for(let a=0;a<n;a++)o[a]=C.getValue(s,"i16"),s+=SIZE_OF_SHORT}return o}nextState(e,n){return C._ts_language_next_state(this[0],e,n)}lookaheadIterator(e){const n=C._ts_lookahead_iterator_new(this[0],e);return n?new LookaheadIterator(INTERNAL,n,this):null}static async load(e){let n;if(e instanceof Uint8Array)n=e;else if(globalThis.process?.versions.node)n=await(await Promise.resolve().then(()=>__viteBrowserExternal)).readFile(e);else{const l=await fetch(e);if(!l.ok){const g=await l.text();throw new Error(`Language.load failed with status ${l.status}.
204
+
205
+ ${g}`)}const c=l.clone();try{n=await WebAssembly.compileStreaming(l)}catch(g){console.error("wasm streaming compile failed:",g),console.error("falling back to ArrayBuffer instantiation"),n=new Uint8Array(await c.arrayBuffer())}}const A=await C.loadWebAssemblyModule(n,{loadAsync:!0}),o=Object.keys(A),s=o.find(l=>LANGUAGE_FUNCTION_REGEX.test(l)&&!l.includes("external_scanner_"));if(!s)throw console.log(`Couldn't find language function in Wasm file. Symbols:
206
+ ${JSON.stringify(o,null,2)}`),new Error("Language.load failed: no language function found in Wasm file");const a=A[s]();return new Et(INTERNAL,a)}};async function Module2(moduleArg={}){var moduleRtn,Module=moduleArg,ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof WorkerGlobalScope<"u",ENVIRONMENT_IS_NODE=typeof process=="object"&&process.versions?.node&&process.type!="renderer";if(ENVIRONMENT_IS_NODE){const{createRequire:r}=await Promise.resolve().then(()=>__viteBrowserExternal);var require$1=r(typeof document>"u"?require("url").pathToFileURL(__filename).href:_documentCurrentScript&&_documentCurrentScript.tagName.toUpperCase()==="SCRIPT"&&_documentCurrentScript.src||new URL("__vite-browser-external-D37bwR0X.cjs",document.baseURI).href)}Module.currentQueryProgressCallback=null,Module.currentProgressCallback=null,Module.currentLogCallback=null,Module.currentParseCallback=null;var arguments_=[],thisProgram="./this.program",quit_=__name((r,e)=>{throw e},"quit_"),_scriptName=typeof document>"u"?require("url").pathToFileURL(__filename).href:_documentCurrentScript&&_documentCurrentScript.tagName.toUpperCase()==="SCRIPT"&&_documentCurrentScript.src||new URL("__vite-browser-external-D37bwR0X.cjs",document.baseURI).href,scriptDirectory="";function locateFile(r){return Module.locateFile?Module.locateFile(r,scriptDirectory):scriptDirectory+r}__name(locateFile,"locateFile");var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require$1("fs");_scriptName.startsWith("file:")&&(scriptDirectory=require$1("path").dirname(require$1("url").fileURLToPath(_scriptName))+"/"),readBinary=__name(r=>{r=isFileURI(r)?new URL(r):r;var e=fs.readFileSync(r);return e},"readBinary"),readAsync=__name(async(r,e=!0)=>{r=isFileURI(r)?new URL(r):r;var n=fs.readFileSync(r,e?void 0:"utf8");return n},"readAsync"),process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),quit_=__name((r,e)=>{throw process.exitCode=r,e},"quit_")}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}ENVIRONMENT_IS_WORKER&&(readBinary=__name(r=>{var e=new XMLHttpRequest;return e.open("GET",r,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)},"readBinary")),readAsync=__name(async r=>{if(isFileURI(r))return new Promise((n,A)=>{var o=new XMLHttpRequest;o.open("GET",r,!0),o.responseType="arraybuffer",o.onload=()=>{if(o.status==200||o.status==0&&o.response){n(o.response);return}A(o.status)},o.onerror=A,o.send(null)});var e=await fetch(r,{credentials:"same-origin"});if(e.ok)return e.arrayBuffer();throw new Error(e.status+" : "+e.url)},"readAsync")}var out=console.log.bind(console),err=console.error.bind(console),dynamicLibraries=[],wasmBinary,ABORT=!1,EXITSTATUS,isFileURI=__name(r=>r.startsWith("file://"),"isFileURI"),readyPromiseResolve,readyPromiseReject,wasmMemory,HEAP8,HEAPU8,HEAPU16,HEAPU32,HEAP_DATA_VIEW,runtimeInitialized=!1;function updateMemoryViews(){var r=wasmMemory.buffer;Module.HEAP8=HEAP8=new Int8Array(r),Module.HEAP16=new Int16Array(r),Module.HEAPU8=HEAPU8=new Uint8Array(r),Module.HEAPU16=HEAPU16=new Uint16Array(r),Module.HEAP32=new Int32Array(r),Module.HEAPU32=HEAPU32=new Uint32Array(r),Module.HEAPF32=new Float32Array(r),Module.HEAPF64=new Float64Array(r),Module.HEAP64=new BigInt64Array(r),Module.HEAPU64=new BigUint64Array(r),Module.HEAP_DATA_VIEW=HEAP_DATA_VIEW=new DataView(r),LE_HEAP_UPDATE()}__name(updateMemoryViews,"updateMemoryViews");function initMemory(){if(Module.wasmMemory)wasmMemory=Module.wasmMemory;else{var r=Module.INITIAL_MEMORY||33554432;wasmMemory=new WebAssembly.Memory({initial:r/65536,maximum:32768})}updateMemoryViews()}__name(initMemory,"initMemory");var __RELOC_FUNCS__=[];function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(onPreRuns)}__name(preRun,"preRun");function initRuntime(){runtimeInitialized=!0,callRuntimeCallbacks(__RELOC_FUNCS__),wasmExports.__wasm_call_ctors(),callRuntimeCallbacks(onPostCtors)}__name(initRuntime,"initRuntime");function preMain(){}__name(preMain,"preMain");function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(onPostRuns)}__name(postRun,"postRun");function abort(r){Module.onAbort?.(r),r="Aborted("+r+")",err(r),ABORT=!0,r+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(r);throw readyPromiseReject?.(e),e}__name(abort,"abort");var wasmBinaryFile;function findWasmBinary(){return Module.locateFile?locateFile("web-tree-sitter.wasm"):new URL("data:application/wasm;base64,AGFzbQEAAAAAEAhkeWxpbmsuMAEFnFsEHgABswEXYAF/AX9gAn9/AX9gAX8AYAN/f38AYAN/f38Bf2ACf38AYAR/f39/AX9gBX9/f39/AGAEf39/fwBgAABgBX9/f39/AX9gAAF/YAh/f39/f39/fwF/YAd/f39/f39/AGAGf3x/f39/AX9gEH9/f39/f39/f39/f39/f38AYAZ/f39/f38AYAJ+fwF/YAd/f39/f39/AX9gAnx/AXxgBH9/f38BfmAEf35/fwF/YAN/fn8BfgLbAxEWd2FzaV9zbmFwc2hvdF9wcmV2aWV3MQhmZF93cml0ZQAGA2VudhZlbXNjcmlwdGVuX3Jlc2l6ZV9oZWFwAAAWd2FzaV9zbmFwc2hvdF9wcmV2aWV3MQdmZF9zZWVrABUDZW52CV9hYm9ydF9qcwAJFndhc2lfc25hcHNob3RfcHJldmlldzEIZmRfY2xvc2UAAANlbnYjdHJlZV9zaXR0ZXJfcXVlcnlfcHJvZ3Jlc3NfY2FsbGJhY2sAAANlbnYddHJlZV9zaXR0ZXJfcHJvZ3Jlc3NfY2FsbGJhY2sAAQNlbnYadHJlZV9zaXR0ZXJfcGFyc2VfY2FsbGJhY2sABwNlbnYYdHJlZV9zaXR0ZXJfbG9nX2NhbGxiYWNrAAUDZW52D19fc3RhY2tfcG9pbnRlcgN/AQNlbnYNX19tZW1vcnlfYmFzZQN/AANlbnYMX190YWJsZV9iYXNlA38AB0dPVC5tZW0LX19zdGFja19sb3cDfwEHR09ULm1lbQxfX3N0YWNrX2hpZ2gDfwEHR09ULm1lbQtfX2hlYXBfYmFzZQN/AQNlbnYGbWVtb3J5AgGABICAAgNlbnYZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQFwAB4DlQKTAgUFBgACAwcFBQQABQUCBwMQAwQAAwYKAwAAEQQEBQMCAgEEAAQBAQwBAgQABQgHBAIBAwgAAAUCBQAJAQMBAAQLAgIIDAMFAQYDBAcNBwgDAwAABQEBBggAEhMEAAAABAUEBAQAFAAFBwUKBAgFAQEDAwUDAQEBAQEEBAQEAAAACgEBAgMBAQUCAAAAAAEABAQAAwQAAAsAAgAAAAAFBAAFDgQBBBYADwACDwAAAAAAAAAADQECAgAAAAICAgICCQICAgACAgICBQUBBQAAAAICBQEBAAIAAAAAAAICAAAAAAAABQAAAAAAAQAFAgICAgUCAgICBQICAQECAAYKAAMFCQsEBAQAAgAEAAEBAQEAAAkJBjkIfwFByNMAC38BQcDTAAt/AUHM0wALfwFBxNMAC38BQYjVAAt/AUGQ1QALfwFBlNsAC38BQZjbAAsHhiGYARFfX3dhc21fY2FsbF9jdG9ycwCbAgZtYWxsb2MAIgZjYWxsb2MAKgdyZWFsbG9jAF0EZnJlZQAyDXRzX3JhbmdlX2VkaXQATwZtZW1jbXAAEhh0c19sYW5ndWFnZV9zeW1ib2xfY291bnQAmQIXdHNfbGFuZ3VhZ2Vfc3RhdGVfY291bnQAmAIXdHNfbGFuZ3VhZ2VfYWJpX3ZlcnNpb24AkwIQdHNfbGFuZ3VhZ2VfbmFtZQCPAhd0c19sYW5ndWFnZV9maWVsZF9jb3VudACHAhZ0c19sYW5ndWFnZV9uZXh0X3N0YXRlACsXdHNfbGFuZ3VhZ2Vfc3ltYm9sX25hbWUA8gEbdHNfbGFuZ3VhZ2Vfc3ltYm9sX2Zvcl9uYW1lAB4Hc3RybmNtcAAbF3RzX2xhbmd1YWdlX3N5bWJvbF90eXBlAEQddHNfbGFuZ3VhZ2VfZmllbGRfbmFtZV9mb3JfaWQA0wEZdHNfbG9va2FoZWFkX2l0ZXJhdG9yX25ldwC9ARx0c19sb29rYWhlYWRfaXRlcmF0b3JfZGVsZXRlALIBIXRzX2xvb2thaGVhZF9pdGVyYXRvcl9yZXNldF9zdGF0ZQCsARt0c19sb29rYWhlYWRfaXRlcmF0b3JfcmVzZXQAqwEadHNfbG9va2FoZWFkX2l0ZXJhdG9yX25leHQAqAEkdHNfbG9va2FoZWFkX2l0ZXJhdG9yX2N1cnJlbnRfc3ltYm9sAKUBDXRzX3BvaW50X2VkaXQAjQEQdHNfcGFyc2VyX2RlbGV0ZQCMAQ90c19wYXJzZXJfcmVzZXQAKRZ0c19wYXJzZXJfc2V0X2xhbmd1YWdlAIsBHXRzX3BhcnNlcl9zZXRfaW5jbHVkZWRfcmFuZ2VzADgMdHNfcXVlcnlfbmV3AIkBD3RzX3F1ZXJ5X2RlbGV0ZQBLCGlzd3NwYWNlAGYIaXN3YWxudW0AExZ0c19xdWVyeV9wYXR0ZXJuX2NvdW50AIgBFnRzX3F1ZXJ5X2NhcHR1cmVfY291bnQAhwEVdHNfcXVlcnlfc3RyaW5nX2NvdW50AIYBHHRzX3F1ZXJ5X2NhcHR1cmVfbmFtZV9mb3JfaWQAhQEidHNfcXVlcnlfY2FwdHVyZV9xdWFudGlmaWVyX2Zvcl9pZACEARx0c19xdWVyeV9zdHJpbmdfdmFsdWVfZm9yX2lkAIMBH3RzX3F1ZXJ5X3ByZWRpY2F0ZXNfZm9yX3BhdHRlcm4AggEfdHNfcXVlcnlfc3RhcnRfYnl0ZV9mb3JfcGF0dGVybgCBAR10c19xdWVyeV9lbmRfYnl0ZV9mb3JfcGF0dGVybgCAARp0c19xdWVyeV9pc19wYXR0ZXJuX3Jvb3RlZAB/HXRzX3F1ZXJ5X2lzX3BhdHRlcm5fbm9uX2xvY2FsAH4mdHNfcXVlcnlfaXNfcGF0dGVybl9ndWFyYW50ZWVkX2F0X3N0ZXAAfRh0c19xdWVyeV9kaXNhYmxlX2NhcHR1cmUAfBh0c19xdWVyeV9kaXNhYmxlX3BhdHRlcm4Aewx0c190cmVlX2NvcHkAkQIOdHNfdHJlZV9kZWxldGUAkAIHdHNfaW5pdACLAhJ0c19wYXJzZXJfbmV3X3dhc20AigIcdHNfcGFyc2VyX2VuYWJsZV9sb2dnZXJfd2FzbQCJAhR0c19wYXJzZXJfcGFyc2Vfd2FzbQCGAh50c19wYXJzZXJfaW5jbHVkZWRfcmFuZ2VzX3dhc20AgwIedHNfbGFuZ3VhZ2VfdHlwZV9pc19uYW1lZF93YXNtAIICIHRzX2xhbmd1YWdlX3R5cGVfaXNfdmlzaWJsZV93YXNtAIECGXRzX2xhbmd1YWdlX21ldGFkYXRhX3dhc20AgAIbdHNfbGFuZ3VhZ2Vfc3VwZXJ0eXBlc193YXNtAP8BGXRzX2xhbmd1YWdlX3N1YnR5cGVzX3dhc20A/gEWdHNfdHJlZV9yb290X25vZGVfd2FzbQD9ASJ0c190cmVlX3Jvb3Rfbm9kZV93aXRoX29mZnNldF93YXNtAPwBEXRzX3RyZWVfZWRpdF93YXNtAPsBHHRzX3RyZWVfaW5jbHVkZWRfcmFuZ2VzX3dhc20A+gEfdHNfdHJlZV9nZXRfY2hhbmdlZF9yYW5nZXNfd2FzbQD5ARd0c190cmVlX2N1cnNvcl9uZXdfd2FzbQD4ARh0c190cmVlX2N1cnNvcl9jb3B5X3dhc20A9wEadHNfdHJlZV9jdXJzb3JfZGVsZXRlX3dhc20A9gEZdHNfdHJlZV9jdXJzb3JfcmVzZXRfd2FzbQD1ARx0c190cmVlX2N1cnNvcl9yZXNldF90b193YXNtAPQBJHRzX3RyZWVfY3Vyc29yX2dvdG9fZmlyc3RfY2hpbGRfd2FzbQDzASN0c190cmVlX2N1cnNvcl9nb3RvX2xhc3RfY2hpbGRfd2FzbQDxAS50c190cmVlX2N1cnNvcl9nb3RvX2ZpcnN0X2NoaWxkX2Zvcl9pbmRleF93YXNtAPABMXRzX3RyZWVfY3Vyc29yX2dvdG9fZmlyc3RfY2hpbGRfZm9yX3Bvc2l0aW9uX3dhc20A7wEldHNfdHJlZV9jdXJzb3JfZ290b19uZXh0X3NpYmxpbmdfd2FzbQDuASl0c190cmVlX2N1cnNvcl9nb3RvX3ByZXZpb3VzX3NpYmxpbmdfd2FzbQDtASN0c190cmVlX2N1cnNvcl9nb3RvX2Rlc2NlbmRhbnRfd2FzbQDsAR90c190cmVlX2N1cnNvcl9nb3RvX3BhcmVudF93YXNtAOsBKHRzX3RyZWVfY3Vyc29yX2N1cnJlbnRfbm9kZV90eXBlX2lkX3dhc20A6gEpdHNfdHJlZV9jdXJzb3JfY3VycmVudF9ub2RlX3N0YXRlX2lkX3dhc20A6QEpdHNfdHJlZV9jdXJzb3JfY3VycmVudF9ub2RlX2lzX25hbWVkX3dhc20A6AErdHNfdHJlZV9jdXJzb3JfY3VycmVudF9ub2RlX2lzX21pc3Npbmdfd2FzbQDnASN0c190cmVlX2N1cnNvcl9jdXJyZW50X25vZGVfaWRfd2FzbQDmASJ0c190cmVlX2N1cnNvcl9zdGFydF9wb3NpdGlvbl93YXNtAOUBIHRzX3RyZWVfY3Vyc29yX2VuZF9wb3NpdGlvbl93YXNtAOQBH3RzX3RyZWVfY3Vyc29yX3N0YXJ0X2luZGV4X3dhc20A4wEddHNfdHJlZV9jdXJzb3JfZW5kX2luZGV4X3dhc20A4gEkdHNfdHJlZV9jdXJzb3JfY3VycmVudF9maWVsZF9pZF93YXNtAOEBIXRzX3RyZWVfY3Vyc29yX2N1cnJlbnRfZGVwdGhfd2FzbQDgASx0c190cmVlX2N1cnNvcl9jdXJyZW50X2Rlc2NlbmRhbnRfaW5kZXhfd2FzbQDfASB0c190cmVlX2N1cnNvcl9jdXJyZW50X25vZGVfd2FzbQDeARN0c19ub2RlX3N5bWJvbF93YXNtAN0BIXRzX25vZGVfZmllbGRfbmFtZV9mb3JfY2hpbGRfd2FzbQDcASd0c19ub2RlX2ZpZWxkX25hbWVfZm9yX25hbWVkX2NoaWxkX3dhc20A2wEhdHNfbm9kZV9jaGlsZHJlbl9ieV9maWVsZF9pZF93YXNtANoBIXRzX25vZGVfZmlyc3RfY2hpbGRfZm9yX2J5dGVfd2FzbQDZASd0c19ub2RlX2ZpcnN0X25hbWVkX2NoaWxkX2Zvcl9ieXRlX3dhc20A2AEbdHNfbm9kZV9ncmFtbWFyX3N5bWJvbF93YXNtANcBGHRzX25vZGVfY2hpbGRfY291bnRfd2FzbQDWAR50c19ub2RlX25hbWVkX2NoaWxkX2NvdW50X3dhc20A1QESdHNfbm9kZV9jaGlsZF93YXNtANQBGHRzX25vZGVfbmFtZWRfY2hpbGRfd2FzbQDSAR50c19ub2RlX2NoaWxkX2J5X2ZpZWxkX2lkX3dhc20A0QEZdHNfbm9kZV9uZXh0X3NpYmxpbmdfd2FzbQDQARl0c19ub2RlX3ByZXZfc2libGluZ193YXNtAM8BH3RzX25vZGVfbmV4dF9uYW1lZF9zaWJsaW5nX3dhc20AzgEfdHNfbm9kZV9wcmV2X25hbWVkX3NpYmxpbmdfd2FzbQDNAR10c19ub2RlX2Rlc2NlbmRhbnRfY291bnRfd2FzbQDMARN0c19ub2RlX3BhcmVudF93YXNtAMsBInRzX25vZGVfY2hpbGRfd2l0aF9kZXNjZW5kYW50X3dhc20AygEhdHNfbm9kZV9kZXNjZW5kYW50X2Zvcl9pbmRleF93YXNtAMkBJ3RzX25vZGVfbmFtZWRfZGVzY2VuZGFudF9mb3JfaW5kZXhfd2FzbQDHASR0c19ub2RlX2Rlc2NlbmRhbnRfZm9yX3Bvc2l0aW9uX3dhc20AxgEqdHNfbm9kZV9uYW1lZF9kZXNjZW5kYW50X2Zvcl9wb3NpdGlvbl93YXNtAMUBGHRzX25vZGVfc3RhcnRfcG9pbnRfd2FzbQDEARZ0c19ub2RlX2VuZF9wb2ludF93YXNtAMMBGHRzX25vZGVfc3RhcnRfaW5kZXhfd2FzbQDCARZ0c19ub2RlX2VuZF9pbmRleF93YXNtAMEBFnRzX25vZGVfdG9fc3RyaW5nX3dhc20AwAEVdHNfbm9kZV9jaGlsZHJlbl93YXNtAL8BG3RzX25vZGVfbmFtZWRfY2hpbGRyZW5fd2FzbQC+ASB0c19ub2RlX2Rlc2NlbmRhbnRzX29mX3R5cGVfd2FzbQC8ARV0c19ub2RlX2lzX25hbWVkX3dhc20AuwEYdHNfbm9kZV9oYXNfY2hhbmdlc193YXNtALoBFnRzX25vZGVfaGFzX2Vycm9yX3dhc20AuQEVdHNfbm9kZV9pc19lcnJvcl93YXNtALgBF3RzX25vZGVfaXNfbWlzc2luZ193YXNtALcBFXRzX25vZGVfaXNfZXh0cmFfd2FzbQC2ARh0c19ub2RlX3BhcnNlX3N0YXRlX3dhc20AtQEddHNfbm9kZV9uZXh0X3BhcnNlX3N0YXRlX3dhc20AtAEVdHNfcXVlcnlfbWF0Y2hlc193YXNtALMBFnRzX3F1ZXJ5X2NhcHR1cmVzX3dhc20AsAEGbWVtc2V0ADMGbWVtY3B5ACQHbWVtbW92ZQCZAQhpc3dhbHBoYQBnCGlzd2JsYW5rAJ0BCGlzd2RpZ2l0AKIBCGlzd2xvd2VyAJ4BCGlzd3VwcGVyAJoBCWlzd3hkaWdpdACXAQZtZW1jaHIAZAZzdHJsZW4AZQZzdHJjbXAAlgEHc3RybmNhdACcAQdzdHJuY3B5AJgBCHRvd2xvd2VyAKQBCHRvd3VwcGVyAKMBCHNldFRocmV3AKYBGV9lbXNjcmlwdGVuX3N0YWNrX3Jlc3RvcmUAoQEXX2Vtc2NyaXB0ZW5fc3RhY2tfYWxsb2MAoAEcZW1zY3JpcHRlbl9zdGFja19nZXRfY3VycmVudACfARhfX3dhc21fYXBwbHlfZGF0YV9yZWxvY3MAmgIIAsgBCUABACMCCx6bAZUBlAGSAZEBkAGKAZcClQKWApQCJZICkwGPAY4BMo4CjQKMAogChQKEArEBrwGtAa4BqgGpAacBDAEBCtSBC5MC0AEBA38CQCABKAJMIgJBAE4EQCACRQ0BIwFBlNYAaigCGCACQf////8DcUcNAQsCQCAAQf8BcSIDIAEoAlBG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IAQgCy8BSk0NASALIAQ7AUogACgCPCAEQRRsaiEHDAALAAsgGigCFCAQSw0ACwwACwALIBVBAWoiFSADKAIETw0BIAMoAhAhBAwACwALIAsgAygCCDYCECALIAMpAgA3AwggAyARKAIINgIIIAMgESkCADcCACARIAsoAhA2AgggESALKQMINwIACyAjQQFqIiNBgAJHDQALIANBAToASAsgC0HQAGokAAu5IAIZfwF+IwBBgAJrIggkACAAKAKECSIJKAIEIRogCCADNgLYASAIQYQBaiAJIAEjAkEHaiAIQdgBaiADEBkgACgChAkiAygCBCILBH8gAygCACERQQAhCUEAIQMgC0EETwRAIAtBfHEhDANAIAkgESADQQV0aiIQKAIcQQJGaiAQKAI8QQJGaiAQKAJcQQJGaiAQKAJ8QQJGaiEJIANBBGohAyANQQRqIg0gDEcNAAsLIAtBA3EiEARAA0AgCSARIANBBXRqKAIcQQJGaiEJIANBAWohAyAKQQFqIgogEEcNAAsLIAlBCmoFQQoLIRsgCCgCiAEiEgRAQRhBACACQf3/A0sbIRwgAEGEAWohESAAQYgJaiEXIABBvAlqIR0gAkEDbCEeQQAhEANAIAgoAoQBIg4gEEEEdGoiAygCBCEKIAMoAgAhCQJAIBsgAygCDCIUIBhrIhlJBEAgACgChAkgGRARQQAhAyAKBEADQCAIIAkgA0EDdGopAgA3AwggFyAIQQhqEAogA0EBaiIDIApHDQALCyAJBEAgCSMIKAIAEQIACyAYQQFqIRggEEEBaiIDIBJPDQEDQCADIQoCQAJAIAAoAmAiCUUEQCAAKAKMCkUNAiARIwEiAykAnQM3AAAgESADKQC8AzcAHyARIAMpALUDNwAYIBEgAykArQM3ABAgESADKQClAzcACAwBCyARIwEiAykAnQM3AAAgESADKQC8AzcAHyARIAMpALUDNwAYIBEgAykArQM3ABAgESADKQClAzcACCAAKAJcQQAgESAJEQMAIAAoAowKRQ0BCyARIQkDQAJAAkAgCS0AACIDQSJGDQAgA0HcAEYNACADDQEMAwtB3AAgACgCjAoQCSAJLQAAIQMLIAPAIAAoAowKEAkgCUEBaiEJDAALAAsgDiAKQQR0aiIMKAIMIBRHDQIgDCgCACEJQQAhAyAMKAIEIhAEQANA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BEF/NgJMIAQjAkEdajYCJCAEQX82AlAgBCAEQZ8BajYCLCAEIARBlAFqNgJUIAZBADoAACMAQdABayIFJAAgBSADNgLMASAFQaABaiIAQQBBKPwLACAFIAUoAswBNgLIAQJAQQAgAiAFQcgBaiAFQdAAaiAAIwIiAEEbaiIGIABBHGoiABBiQQBIBEBBfyEADAELIAQoAkxBAEggBCAEKAIAIgFBX3E2AgACfwJAAkAgBCgCMEUEQCAEQdAANgIwIARBADYCHCAEQgA3AxAgBCgCLCEHIAQgBTYCLAwBCyAEKAIQDQELQX8gBBBCDQEaCyAEIAIgBUHIAWogBUHQAGogBUGgAWogBiAAEGILIQIgBwRAIARBAEEAIAQoAiQRBAAaIARBADYCMCAEIAc2AiwgBEEANgIcIAQoAhQhACAEQgA3AxAgAkF/IAAbIQILIAQgBCgCACIAIAFBIHFyNgIAQX8gAiAAQSBxGyEADQALIAVB0AFqJAAgBEGgAWokACAAC7wCAAJAAkACQAJAAkACQAJAAkACQAJAAkAgAUEJaw4SAAgJCggJAQIDBAoJCgoICQUGBwsgAiACKAIAIgFBBGo2AgAgACABKAIANgIADwsgAiACKAIAIgFBBGo2AgAgACABMgEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMwEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMAAANwMADwsgAiACKAIAIgFBBGo2AgAgACABMQAANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRBQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC28BBX8gACgCACIDLAAAQTBrIgFBCUsEQEEADwsDQEF/IQQgAkHMmbPmAE0EQEF/IAEgAkEKbCIFaiABIAVB/////wdzSxshBAsgACADQQFqIgU2AgAgAywAASAEIQIgBSEDQTBrIgFBCkkNAAsgAgucEwITfwJ+IwBBQGoiCCQAIAggATYCPCAIQSlqIRcgCEEnaiEYIAhBKGohEgJAAkACQAJAA0BBACEHA0AgASENIAcgDkH/////B3NKDQIgByAO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QQALMwEBfyAAECkgAEEANgKgCQJAIAEEQCABKAIAQRBrQX1JDQELIAAgATYCoAlBASECCyACC+wHAQp/IwBBIGsiAyQAIAAEQCAAECkgAEEANgKgCSAAKAKECSEBIwBBEGsiBiQAIAEoAgwiAgRAIAIjCCgCABECACABQQA2AhQgAUIANwIMCyABKAIYIgIEQCACIwgoAgARAgAgAUEANgIgIAFCADcCGAsgASgCMCABQSRqIgggASgCNBAaIAEoAgQiAgRAA0AgASgCACAFQQV0aiIEKAIABEAgASgCNCEHIAQoAgwEQCAGIAQpAgw3AwggByAGQQhqEAoLIAQoAhQEQCAGIAQpAhQ3AwAgByAGEAoLIAQoAgQiAgRAIAIoAgAiCgRAIAojCCgCABECACAEKAIEIQILIAJBADYCCCACQgA3AgAgAiMIKAIAEQIACyAEKAIAIAggBxAaIAEoAgQhAgsgBUEBaiIFIAJJDQALC0EAIQIgAUEANgIEIAEoAiQiBQRAAkAgASgCKARAA0AgASgCJCACQQJ0aigCACMIKAIAEQIAIAJBAWoiAiABKAIoSQ0ACyAIKAIAIgVFDQELIAUjCCgCABECAAsgAUEANgIsIAFCADcCJAsgASgCACICBEAgAiMIKAIAEQIACyABQQA2AgggAUIANwIAIAEjCCgCABECACAGQRBqJAAgACgCqAkiAQRAIAEjCCgCABECACAAQQA2ArAJIABCADcCqAkLIAAoAqAKIgEEQCABIwgoAgARAgAgAEEANgKoCiAAQgA3AqAKCyAAKAKYCgRAIAMgAEGYCmopAgA3AxggAEGICWogA0EYahAKIABCADcCmAoLIAAoAkQjCCgCABECACAAQeAJaiEBIAAoAuAJBEAgAyABKQIANwMQIABBiAlqIANBEGoQCgsgACgC6AkEQCADIABB6AlqKQIANwMIIABBiAlqIANBCGoQCgsgAUIANwIAIAFBADYCECABQgA3AgggACgCiAkiAQRAAkAgACgCjAkEQANAIAAoAogJIAlBA3RqKAIAIwgoAgARAgAgCUEBaiIJIAAoAowJSQ0ACyAAKAKICSIBRQ0BCyABIwgoAgARAgALIABBADYCkAkgAEIANwKICQsgACgClAkiAQRAIAEjCCgCABECACAAQQA2ApwJIABCADcClAkLIAAoAvQJIgEEQCABIwgoAgARAgALIABBADYC/AkgAEIANwL0CSAAKAK8CSIBBEAgASMIKAIAEQIACyAAQQA2AsQJIABCADcCvAkgACgCyAkiAQRAIAEjCCgCABECAAsgAEEANgLQCSAAQgA3AsgJIAAoAtQJIgEEQCABIwgoAgARAgALIABBADYC3AkgAEIANwLUCSAAIwgoAgARAgALIANBIGokAAuzAQIFfwF+IAApAgAiCEIgiKchAyAIpyEEAkAgASgCACIFIAIoAgQiB08EQCADIAIoAiAgAyACKAIYayIGQQAgAyAGTxtqIAQgAigCFCIGSxshAyACKAIcIAQgBmsiBkEAIAQgBk8baiEEIAIoAgggBSAHa2ohBQwBCyAFIAIoAgBNDQAgAikCHCIIQiCIpyEDIAIoAgghBSAIpyEECyAAIAStIAOtQiCGhDcCACABIAU2AgALGwAgACABEF0hAAJAIAFFDQAgAA0AEEMACyAACxsAIAAgARAqIQECQCAARQ0AIAENABBDAAsgAQvAAQEDfyMAQSBrIgMkACAAKAJIBEAgACgCYCECAkAgAQRAIAJFDQEgAyAAKAIAIgI2AgAgAEGEAWoiBEGACCMBQZoLQf0IIAJBIGtB3wBJG2ogAxALGiAAKAJcQQEgBCAAKAJgEQMADAELIAJFDQAgAyAAKAIAIgI2AhAgAEGEAWoiBEGACCMBQa4LQY8JIAJBIGtB3wBJG2ogA0EQahALGiAAKAJcQQEgBCAAKAJgEQMACyAAIAEQQQsgA0EgaiQAC2kBAn8CQCAAKAJoIgEgACgCZEYNACABRQ0AIAAoAiAgACgCRCABQRhsaiIBKAIQRw0AIAFBBGsoAgAhAiAAIAFBEGspAgA3AjwgACACNgI4DwsgACAAKQIgNwI4IABBQGsgACgCKDYCAAv6BQIJfwF+IwBBEGsiBSQAIABBAToAeAJAIAAtAIABDQAgACgCICIIIAAoAigiA2shASAAKAIkIQQgAwRAIABBADYCfCAAQQA6AIABCyAAQQA2AiggACAENgIkIAAgATYCICAAKAJEIQYCQAJ/IAAoAmQiBARAA0ACQCAGIAJBGGxqIgcoAhQiCSABTQ0AIAkgBygCECIDTQ0AIAEgA00EQCAAIAcpAgA3AiQgACADNgIgIAMhAQsgACACNgJoQQAhAiAAKAJIRQ0EIAAoAmwiAyABTQRAIAEgACgCcCADakkNBQsgAEEANgJIQQAMAwsgAkEBaiICIARHDQALCyAAIAQ2AmggBiAEQRhsaiIDQQRrKAIAIQEgA0EQaykCACEKIABBADYCSCAAIAo3AiQgACABNgIgQQELIQIgAEEANgJwCyAAQQE6AIABIABBADYCACAAIAI2AnQgAEEANgJ8IAAgATYCbCAAKAJQIQMgACgCTCECIAUgACkCJDcDCCAAIAIgASAFQQhqIABB8ABqIgQgAxEGACICNgJIIAAoAnAiAUUEQCAAQQA2AkggACAAKAJkNgJoDAELIAAoAmggACgCZEYNAAJAIAAoAiAgACgCbGsiAyABRgRAIABBADYCACAAQQE2AnQMAQsgACACIANqIAEgA2siASAAIwFB0NMAaiAAKAJUIgNBAnRqIABB2ABqIANBA0kbKAIAIgMRBAA2AnQgACgCACECAkAgAUEDSw0AIAJBf0cNACAAIAAoAiAiATYCbCAAKAJQIQIgACgCTCEGIAUgACkCJDcDACAAIAYgASAFIAQgAhEGACICNgJIIAAgACgCcCIBBH8gAgUgAEEANgJIIAAgACgCZDYCaEEACyABIAAgAxEEADYCdCAAKAIAIQILIAJBf0cNACAAQQE2AnQLA0AgACgCICAITw0BIAAoAmggACgCZEYNASAAKAJIRQ0BIABBABBBIAAoAmggACgCZEcNAAsLIAAoAnwgBUEQaiQACxsBAX8gABAiIQECQCAARQ0AIAENABBDAAsgAQsrAQJ/IAAoAmgiAiAAKAJkSQR/IAAoAiAgACgCRCACQRhsaigCEEYFQQALCw0AIAAoAmggACgCZEYLTQECfyABLQAAIQICQCAALQAAIgNFDQAgAiADRw0AA0AgAS0AASECIAAtAAEiA0UNASABQQFqIQEgAEEBaiEAIAIgA0YNAAsLIAMgAmsLFwAgAEEwa0EKSSAAQSByQeEAa0EGSXILggIBAn8CQAJAAkACQCABIAAiA3NBA3ENACACQQBHIQQCQCABQQNxRQ0AIAJFDQADQCADIAEtAAAiBDoAACAERQ0FIANBAWohAyACQQFrIgJBAEchBCABQQFqIgFBA3FFDQEgAg0ACwsgBEUNAiABLQAARQ0DIAJBBEkNAANAQYCChAggASgCACIEayAEckGAgYKEeHFB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ICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwACfyABKAIQKAIAIgBBAXEEQCAAQQV2QQFxDAELIAAvASxBCXZBAXELIAFBMGokAAveAQECfyMAQTBrIgEkACABIwsiAigCADYCKCABIAIoAgxBAXQ2AiAgASAANgIsIAEgASkCKDcDECABIAIoAhA2AiQgASABKQIgNwMIIAEgAigCCDYCHCABIAIoAgRBAXQ2AhggASABKQIYNwMAAn8CQCABKAIMIgBB//8DcUUEQCABKAIQKAIAIgBBAXEEQCAAQYD+A3FBCHYhAAwCCyAALwEoIQALIABB//8DcUH//wNHDQBBAQwBCyABKAIUKAIIKAJMIABB//8DcUEBdGovAQBB//8DRgsgAUEwaiQAC6oBAQJ/IwBBMGsiASQAIAEjCyICKAIANgIoIAEgAigCDEEBdDYCICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwACfyABKAIQKAIAIgBBAXEEQCAAQRp0QR91QeIEcQwBC0HiBCAALQAtQQJxDQAaIAAoAiALQQBHIAFBMGokAAubAQECfyMAQTBrIgEkACABIwsiAigCADYCKCABIAIoAgxBAXQ2AiAgASAANgIsIAEgASkCKDcDECABIAIoAhA2AiQgASABKQIgNwMIIAEgAigCCDYCHCABIAIoAgRBAXQ2AhggASABKQIYNwMAAn8gASgCECgCACIAQQFxBEAgAEEEdkEBcQwBCyAALwEsQQV2QQFxCyABQTBqJAALdwECfyMAQTBrIgEkACABIwsiAigCADYCKCABIAIoAgxBAXQ2AiAgASAANgIsIAEgASkCKDcDECABIAIoAhA2AiQgASABKQIgNwMIIAEgAigCCDYCHCABIAIoAgRBAXQ2AhggASABKQIYNwMAIAEQPSABQTBqJAAL0QYBCH8jAEGgAWsiByQAIAcjCyIIKAIANgKYASAHIAgoAgxBAXQ2ApABIAcgADYCnAEgByAHKQKYATcDWCAHIAgoAhA2ApQBIAcgBykCkAE3A1AgByAIKAIINgKMASAHIAgoAgRBAXQ2AogB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NgIAIAFBgAFqJAALrAICB38BfiMAQTBrIgEkACABIwsiAigCADYCKCABIAIoAgxBAXQ2AiAgASAANgIsIAEgASkCKDcDECABIAIoAhA2AiQgASABKQIgNwMIIAEgAigCCDYCHCABIAIoAgRBAXQ2AhggASABKQIYNwMAIwBBIGsiACQAIAEoAhQoAgghAiABKAIQKQIAIQhBASEDAkACQAJAIAEvAQwiBEH+/wNrDgIAAgELQQAhAwwBCyACKAJIIARBA2xqLQAAIQMLIAAgCDcDECAAIAg3AwggAEEIaiAAQR9qQQEgAkEAIAQgA0EBcSIFIwFBoQpqIgYQMEEBaiIHIwcoAgARAAAhAyAAIAApAxA3AwAgACADIAcgAkEAIAQgBSAGEDAaIABBIGokACABQTBqJAAgAwt6AQJ/IwBBMGsiASQAIAEjCyICKAIANgIoIAEgAigCDEEBdDYCICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwAgARBbIAFBMGokAEEBdgt7AQJ/IwBBMGsiASQAIAEjCyICKAIANgIoIAEgAigCDEEBdDYCICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwAgASgCACABQTBqJABBAXYLlgEBAn8jAEFAaiIBJAAgASMLIgIoAgA2AjggASACKAIMQQF0NgIwIAEgADYCPCABIAEpAjg3AxggASACKAIQNgI0IAEgASkCMDcDECABIAIoAgg2AiwgASACKAIEQQF0NgIoIAEgASkCKDcDCCABQSBqIAFBCGoQPyACIAEoAiA2AgAgAiABKAIkQQF2NgIEIAFBQGskAAueAQECfyMAQUBqIgEkACABIwsiAigCADYCOCABIAIoAgxBAXQ2AjAgASAANgI8IAEgASkCODcDGCABIAIoAhA2AjQgASABKQIwNwMQIAEgAigCCDYCLCABIAIoAgRBAXQ2AiggASABKQIoNwMIIAEgASgCDDYCICABIAEoAhA2AiQgAiABKAIgNgIAIAIgASgCJEEBdjYCBCABQUBrJAAL1wIBBn8jAEHwAGsiASQAIAEjCyICKAIANgJoIAEgAigCDEEBdDYCYCABIAA2AmwgASACKAIINgJcIAEgAigCEDYCZCABIAIoAgRBAXQ2AlggASACKAIYQQF0NgJUIAEgAigCFDYCUCACKAIgIQAgAigCHCEDIAEgASkCaDcDKCABIAEpAmA3AyAgASADNgJIIAEgASkCWDcDGCABIABBAXQ2AkwgASABKQJQNwMQIAEgASkCSDcDCCMAQSBrIgAkACABKAIMIQMgASgCCCEEIAEoAhQhBSABKAIQIQYgACABKQIoNwMYIAAgASkCIDcDECAAIAEpAhg3AwggAUEwaiAAQQhqIAYgBSAEIANBABBVIABBIGokACACIAEoAjw2AhAgAiABKAI0NgIIIAIgASgCQDYCACACIAEoAjhBAXY2AgwgAiABKAIwQQF2NgIEIAFB8ABqJAAL1wIBBn8jAEHwAGsiASQAIAEjCyICKAIANgJoIAEgAigCDEEBdDYCYCABIAA2AmwgASACKAIINgJcIAEgAigCEDYCZCABIAIoAgRBAXQ2AlggASACKAIYQQF0NgJUIAEgAigCFDYCUCACKAIgIQAgAigCHCEDIAEgASkCaDcDKCABIAEpAmA3AyAgASADNgJIIAEgASkCWDcDGCABIABBAXQ2AkwgASABKQJQNwMQIAEgASkCSDcDCCMAQSBrIgAkACABKAIMIQMgASgCCCEEIAEoAhQhBSABKAIQIQYgACABKQIoNwMYIAAgASkCIDcDECAAIAEpAhg3AwggAUEwaiAAQQhqIAYgBSAEIANBARBVIABBIGokACACIAEoAjw2AhAgAiABKAI0NgIIIAIgASgCQDYCACACIAEoAjhBAXY2AgwgAiABKAIwQQF2NgIEIAFB8ABqJAALhgIBBH8jAEHQAGsiASQAIAEjCyICKAIANgJIIAFBQGsiAyACKAIMQQF0NgIAIAEgADYCTCABIAEpAkg3AxggASACKAIQNgJEIAEgAykCADcDECABIAIoAgg2AjwgASACKAIEQQF0NgI4IAEgASkCODcDCCACKAIUQQF0IQMgAigCGEEBdCEEIwBBIGsiACQAIAAgASkCGDcDGCAAIAEpAhA3AxAgACABKQIINwMIIAFBIGogAEEIaiADIARBABBWIABBIGokACACIAEoAiw2AhAgAiABKAIkNgIIIAIgASgCMDYCACACIAEoAihBAXY2AgwgAiABKAIgQQF2NgIEIAFB0ABqJAALWAEBfyMBQcjTAGokBiMBQcDTAGokByMBQczTAGokCCMBQcTTAGokCSMBQYjVAGokCiMBQZDVAGoiACQLIwFBlNsAaiQMIwFBmNsAaiQNIABBAEGMBvwLAAuGAgEEfyMAQdAAayIBJAAgASMLIgIoAgA2AkggAUFAayIDIAIoAgxBAXQ2AgAgASAANgJMIAEgASkCSDcDGCABIAIoAhA2AkQgASADKQIANwMQIAEgAigCCDYCPCABIAIoAgRBAXQ2AjggASABKQI4NwMIIAIoAhRBAXQhAyACKAIYQQF0IQQjAEEgayIAJAAgACABKQIYNwMYIAAgASkCEDcDECAAIAEpAgg3AwggAUEgaiAAQQhqIAMgBEEBEFYgAEEgaiQAIAIgASgCLDYCECACIAEoAiQ2AgggAiABKAIwNgIAIAIgASgCKEEBdjYCDCACIAEoAiBBAXY2AgQgAUHQAGokAAufAgEDfyMAQYABayIBJAAgASMLIgIoAgA2AnggASACKAIMQQF0NgJwIAEgADYCfCABIAIoAgg2AmwgASACKAIQNgJ0IAEgAigCBEEBdDYCaCABIAIoAhQ2AmAgASACKAIYQQF0NgJQIAEgAigCHDYCVCABIAIoAiBBAXQ2AlggAigCJCEDIAEgASkCeDcDMCABIAEpAnA3AyggASAANgJkIAEgASkCaDcDICABIAM2AlwgASABKQJgNwMYIAEgASkCWDcDECABIAEpAlA3AwggAUE4aiABQSBqIAFBCGoQGCACIAEoAkQ2AhAgAiABKAI8NgIIIAIgASgCSDYCACACIAEoAkBBAXY2AgwgAiABKAI4QQF2NgIEIAFBgAFqJAAL4AQCBn8CfiMAQdAAayIBJAAgASMLIgMoAgA2AkggAUFAayICIAMoAgxBAXQ2AgAgASAANgJMIAEgASkCSDcDGCABIAMoAhA2AkQgASACKQIANwMQIAEgAygCCDYCPCABIAMoAgRBAXQ2AjggASABKQI4NwMIIwBBkAFrIgAkAAJ/IAEoAhwiAigCACIEQQFxBEAgAi0ABUEPcSEFIAItAAQhBiACLQAGDAELIAQoAgwhBiAEKAIIIQUgBCgCBAshBCAAIAI2AowBIAAgAjYCiAEgAEEANgKEASAAIAY2AoABIAAgBTYCfCAAIAQ2AngCQCACIAEoAhgiBEcEQCAAIAApAoABNwNQIAAgACkCiAE3A1ggACAAKQJ4NwNIIAAgASkCEDcDOCAAQUBrIAEpAhg3AwAgACABKQIINwMwIABB4ABqIABByABqIABBMGoQGAJAIAAoAnAiAiAERg0AIAJFDQADQCAAIAApAnAiBzcDiAEgACAAKQJoIgg3A4ABIAAgCDcDICAAIAc3AyggACAAKQJgIgc3A3ggACAHNwMYIAAgASkCEDcDCCAAIAEpAhg3AxAgACABKQIINwMAIABB4ABqIABBGGogABAYIAAoAnAiAiAERg0BIAINAAsLIAEgACkDeDcCICABIAApA4gBNwIwIAEgACkDgAE3AigMAQsgAUIANwIgIAFCADcCMCABQgA3AigLIABBkAFqJAAgAyABKAIsNgIQIAMgASgCJDYCCCADIAEoAjA2AgAgAyABKAIoQQF2NgIMIAMgASgCIEEBdjYCBCABQdAAaiQAC50BAQJ/IwBBMGsiASQAIAEjCyICKAIANgIoIAEgAigCDEEBdDYCICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwBBASEAAkAgASgCECgCACICQQFxDQAgAigCJEUNACACKAI4QQFqIQALIAFBMGokACAAC+4BAQN/IwBB0ABrIgEkACABIwsiAigCADYCSCABQUBrIgMgAigCDEEBdDYCACABIAA2AkwgASABKQJINwMYIAEgAigCEDYCRCABIAMpAgA3AxAgASACKAIINgI8IAEgAigCBEEBdDYCOCABIAEpAjg3AwgjAEEgayIAJAAgACABKQIYNwMYIAAgASkCEDcDECAAIAEpAgg3AwggAUEgaiAAQQhqQQAQWCAAQSBqJAAgAiABKAIsNgIQIAIgASgCJDYCCCACIAEoAjA2AgAgAiABKAIoQQF2NgIMIAIgASgCIEEBdjYCBCABQdAAaiQAC+4BAQN/IwBB0ABrIgEkACABIwsiAigCADYCSCABQUBrIgMgAigCDEEBdDYCACABIAA2AkwgASABKQJINwMYIAEgAigCEDYCRCABIAMpAgA3AxAgASACKAIINgI8IAEgAigCBEEBdDYCOCABIAEpAjg3AwgjAEEgayIAJAAgACABKQIYNwMYIAAgASkCEDcDECAAIAEpAgg3AwggAUEgaiAAQQhqQQAQWSAAQSBqJAAgAiABKAIsNgIQIAIgASgCJDYCCCACIAEoAjA2AgAgAiABKAIoQQF2NgIMIAIgASgCIEEBdjYCBCABQdAAaiQAC+4BAQN/IwBB0ABrIgEkACABIwsiAigCADYCSCABQUBrIgMgAigCDEEBdDYCACABIAA2AkwgASABKQJINwMYIAEgAigCEDYCRCABIAMpAgA3AxAgASACKAIINgI8IAEgAigCBEEBdDYCOCABIAEpAjg3AwgjAEEgayIAJAAgACABKQIYNwMYIAAgASkCEDcDECAAIAEpAgg3AwggAUEgaiAAQQhqQQEQWCAAQSBqJAAgAiABKAIsNgIQIAIgASgCJDYCCCACIAEoAjA2AgAgAiABKAIoQQF2NgIMIAIgASgCIEEBdjYCBCABQdAAaiQAC+4BAQN/IwBB0ABrIgEkACABIwsiAigCADYCSCABQUBrIgMgAigCDEEBdDYCACABIAA2AkwgASABKQJINwMYIAEgAigCEDYCRCABIAMpAgA3AxAgASACKAIINgI8IAEgAigCBEEBdDYCOCABIAEpAjg3AwgjAEEgayIAJAAgACABKQIYNwMYIAAgASkCEDcDECAAIAEpAgg3AwggAUEgaiAAQQhqQQEQWSAAQSBqJAAgAiABKAIsNgIQIAIgASgCJDYCCCACIAEoAjA2AgAgAiABKAIoQQF2NgIMIAIgASgCIEEBdjYCBCABQdAAaiQAC8UBAQN/IwBB0ABrIgIkACACIwsiAygCADYCSCACQUBrIgQgAygCDEEBdDYCACACIAA2AkwgAiACKQJINwMYIAIgAygCEDYCRCACIAQpAgA3AxAgAiADKAIINgI8IAIgAygCBEEBdDYCOCACIAIpAjg3AwggAkEgaiACQQhqIAFB//8DcRA7IAMgAigCLDYCECADIAIoAiQ2AgggAyACKAIwNgIAIAMgAigCKEEBdjYCDCADIAIoAiBBAXY2AgQgAkHQAGokAAvwAQEDfyMAQdAAayICJAAgAiMLIgMoAgA2AkggAkFAayIEIAMoAgxBAXQ2AgAgAiAANgJMIAIgAikCSDcDGCACIAMoAhA2AkQgAiAEKQIANwMQIAIgAygCCDYCPCACIAMoAgRBAXQ2AjggAiACKQI4NwMIIwBBIGsiACQAIAAgAikCGDcDGCAAIAIpAhA3AxAgACACKQIINwMIIAJBIGogAEEIaiABQQAQPCAAQSBqJAAgAyACKAIsNgIQIAMgAigCJDYCCCADIAIoAjA2AgAgAyACKAIoQQF2NgIMIAMgAigCIEEBdjYCBCACQdAAaiQACyoBAn8CQCAAKAIgIgNFDQAgASADSw0AIAAoAjwgAUECdGooAgAhAgsgAgvwAQEDfyMAQdAAayICJAAgAiMLIgMoAgA2AkggAkFAayIEIAMoAgxBAXQ2AgAgAiAANgJMIAIgAikCSDcDGCACIAMoAhA2AkQgAiAEKQIANwMQIAIgAygCCDYCPCACIAMoAgRBAXQ2AjggAiACKQI4NwMIIwBBIGsiACQAIAAgAikCGDcDGCAAIAIpAhA3AxAgACACKQIINwMIIAJBIGogAEEIaiABQQEQPCAAQSBqJAAgAyACKAIsNgIQIAMgAigCJDYCCCADIAIoAjA2AgAgAyACKAIoQQF2NgIMIAMgAigCIEEBdjYCBCACQdAAaiQAC5oBAQJ/IwBBMGsiASQAIAEjCyICKAIANgIoIAEgAigCDEEBdDYCICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwBBACEAAkAgASgCECgCACICQQFxDQAgAigCJEUNACACKAI0IQALIAFBMGokACAAC5oBAQJ/IwBBMGsiASQAIAEjCyICKAIANgIoIAEgAigCDEEBdDYCICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwBBACEAAkAgASgCECgCACICQQFxDQAgAigCJEUNACACKAIwIQALIAFBMGokACAAC5wBAQJ/IwBBMGsiASQAIAEjCyICKAIANgIoIAEgAigCDEEBdDYCICABIAA2AiwgASABKQIoNwMQIAEgAigCEDYCJCABIAEpAiA3AwggASACKAIINgIcIAEgAigCBEEBdDYCGCABIAEpAhg3AwACfyABKAIQKAIAIgBBAXEEQCAAQYD+A3FBCHYMAQsgAC8BKAtB//8DcSABQTBqJAAL+gEBA38jAEHQAGsiASQAIAEjCyICKAIANgJIIAFBQGsiAyACKAIMQQF0NgIAIAEgADYCTCABIAEpAkg3AxggASACKAIQNgJEIAEgAykCADcDECABIAIoAgg2AjwgASACKAIEQQF0NgI4IAEgASkCODcDCCACKAIUQQF0IQMjAEEgayIAJAAgACABKQIYNwMYIAAgASkCEDcDECAAIAEpAgg3AwggAUEgaiAAQQhqIANBABBXIABBIGokACACIAEoAiw2AhAgAiABKAIkNgIIIAIgASgCMDYCACACIAEoAihBAXY2AgwgAiABKAIgQQF2NgIEIAFB0ABqJAAL+gEBA38jAEHQAGsiASQAIAEjCyICKAIANgJIIAFBQGsiAyACKAIMQQF0NgIAIAEgADYCTCABIAEpAkg3AxggASACKAIQNgJEIAEgAykCADcDECABIAIoAgg2AjwgASACKAIEQQF0NgI4IAEgASkCODcDCCACKAIUQQF0IQMjAEEgayIAJAAgACABKQIYNwMYIAAgASkCEDcDECAAIAEpAgg3AwggAUEgaiAAQQhqIANBARBXIABBIGokACACIAEoAiw2AhAgAiABKAIkNgIIIAIgASgCMDYCACACIAEoAihBAXY2AgwgAiABKAIgQQF2NgIEIAFB0ABqJAALiQQBCX8jAEGAAWsiAiQAIAIjCyIDKAIANgJ4IAIgAygCDEEBdDYCcCACIAA2AnwgAiACKQJ4NwMwIAIgAygCEDYCdCACIAIpAnA3AyggAiADKAIINgJsIAIgAygCBEEBdDYCaCACIAIpAmg3AyAgAkHUAGogAkEgahBwAkAgAUUEQEEAIQMMAQsgAiACKQJ4NwMYIAIgAikCcDcDECACIAIpAmg3AwggAkHUAGoiACACQQhqECYgABAsGkEAIQBBACEDA0AgAyEEAkADQCACQdQAaiIDEG0gAUYNASADEBwNAAsgBCEDDAILIAJBPGogAkHUAGoiAxAQIAMQHAJAIARBBWoiAyAATQ0AQQggAEEBdCIAIAMgACADSxsiACAAQQhNGyIAQQJ0IQYgBQRAIAUgBiMGKAIAEQEAIQUMAQsgBiMHKAIAEQAAIQULIAUgBEECdGoiBEIANwIAIARBADYCECAEQgA3AgggAigCPCEGIAIoAkQhCCACKAJMIQkgAigCQCEKIAUgA0ECdGoiBEEE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IAA2AgwgASMLIgApAwA3AhAgASAAKQMINwIYIAFBDGoQbSABQSBqJAALZwEBfyMAQdAAayIBJAAgASAANgI8IAEjCyIAKQMANwJAIAEgACkDCDcCSCABQSRqIAFBPGoQECABIAEpAjQ3AxggASABKQIsNwMQIAEgASkCJDcDCCABQQhqEFsgAUHQAGokAEEBdgtlAQF/IwBB0ABrIgEkACABIAA2AjwgASMLIgApAwA3AkAgASAAKQMINwJIIAFBJGogAUE8ahAQIAEgASkCNDcDGCABIAEpAiw3AxAgASABKQIkNwMIIAEoAgggAUHQAGokAEEBdgt9AQF/IwBB0ABrIgEkACABIAA2AjwgASMLIgApAwA3AkAgASAAKQMINwJIIAFBJGogAUE8ahAQIAEgASkCNDcDECABIAEpAiw3AwggASABKQIkNwMAIAFBHGogARA/IAAgASgCHDYCACAAIAEoAiBBAXY2AgQgAUHQAGokAAuIAQEBfyMAQdAAayIBJAAgASAANgI8IAEjCyIAKQMANwJAIAEgACkDCDcCSCABQSRqIAFBPGoQECABIAEpAjQ3AxAgASABKQIsNwMIIAEgASkCJDcDACABIAEoAgQ2AhwgASABKAIINgIgIAAgASgCHDYCACAAIAEoAiBBAXY2AgQgAUHQAGokAAtCAQF/IwBBMGsiASQAIAEgADYCHCABIwsiACkDADcCICABIAApAwg3AiggAUEEaiABQRxqEBAgASgCFCABQTBqJAALhQEBAX8jAEHQAGsiASQAIAEgADYCPCABIwsiACkDADcCQCABIAApAwg3AkggAUEkaiABQTxqEBAgASABKQI0NwMYIAEgASkCLDcDECABIAEpAiQ3AwgCfyABKAIYKAIAIgBBAXEEQCAAQQV2QQFxDAELIAAvASxBCXZBAXELIAFB0ABqJAALZAEBfyMAQdAAayIBJAAgASAANgI8IAEjCyIAKQMANwJAIAEgACkDCDcCSCABQSRqIAFBPGoQECABIAEpAjQ3AxggASABKQIsNwMQIAEgASkCJDcDCCABQQhqED0gAUHQAGokAAtkAQF/IwBB0ABrIgEkACABIAA2AjwgASMLIgApAwA3AkAgASAAKQMINwJIIAFBJGogAUE8ahAQIAEgASkCNDcDGCABIAEpAiw3AxAgASABKQIkNwMI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AEEgayIBJAAgASAANgIMIAEjCyIAKQMANwIQIAEgACkDCDcCGCABQQxqEBwgACABKQIQNwMAIAAgASkCGDcDCCABQSBqJAALhwECAn8BfiMAQTBrIgEkACABIAA2AhwgASMLIgAoAgA2AiAgASAAKQIENwIkIAEgACgCDCICNgIsIAEgACgCEEEBdDYCGCABIAI2AhQgASABKQIUNwMIIAFBHGpBACABKAIIIAEoAgwQbiAAIAEpAiA3AwAgACABKQIoNwMIIAFBMGokAEIAUgtmAgJ/AX4jAEEgayIBJAAgASAANgIMIAEjCyIAKAIANgIQIAEgACkCBDcCFCABIAAoAgwiAjYCHCABQQxqIAJBAXRBAEEAEG4gACABKQIQNwMAIAAgASkCGDcDCCABQSBqJABCAFILXwEDfyMAQSBrIgEkACABIAA2AgwgASMLIgApAwA3AhAgASAAKQMINwIYIAFBDGohAgNAIAIQbyIDQQFGDQALIANBAkYgACABKQIQNwMAIAAgASkCGDcDCCABQSBqJAALTgEBfyMBQasKaiECAkACQAJAIAFB/v8Daw4CAAIBCyMBQaoKag8LQQAhAiAAKAIIIAAoAgRqIAFNDQAgACgCOCABQQJ0aigCACECCyACC0wBAn8jAEEgayIBJAAgASAANgIMIAEjCyIAKQMANwIQIAEgACkDCDcCGCABQQxqECwgACABKQIQNwMAIAAgASkCGDcDCCABQSBqJAALugIBBX8jAEEwayICJAAgAiAANgIcIAIjCyIDKQMANwIgIAIgAykDCDcCKCACIAMpAxA3AgwgAiADKQMYNwIUIAIgATYCCCACIAIoAgg2AhwgAi8BGCEAIAJBADYCJCACIAA7ASwgAigCICEAIAIoAgwhBgJAAkAgAigCECIEIAIoAihLBEAgBEEcbCEBAn8gAARAIAAgASMGKAIAEQEADAELIAEjBygCABEAAAshACACIAQ2AiggAigCJCIFRQ0BIAVBHGwiBUUNASAAIAFqIAAgBfwKAAAMAQsgBEUNASAEQRxsIQELIAYEQCABRQ0BIAAgBiAB/AoAAAwBCyABRQ0AIABBACAB/AsACyACIAA2AiAgAiACKAIkIARqNgIkIAMgAikCIDcDACADIAIpAig3AwggAkEwaiQAC9kBAgh/AX4jAEHQAGsiASQAIAEjCyICKAIANgJIIAFBQGsiAyACKAIMQQF0NgIAIAEgADYCTCACKAIgIQQgAikDGCEJIAIoAhQhBSACKAIEIQYgAigCCCEHIAIoAhAhCCABIAEpAkg3AxggASAINgJEIAEgAykCADcDECABIAc2AjwgASAGQQF0NgI4IAEgBTYCKCABIAk3AiwgASAENgI0IAEgADYCJCABIAEpAjg3AwggAUEkaiABQQhqECYgAiABKQIoNwMAIAIgASkCMDcDCCABQdAAaiQAC1MBAX8jAEEgayIBJAAgASAANgIMIAEjCyIAKQMANwIQIAEgACkDCDcCGCABKAIQIgAEQCAAIwgoAgARAgALIAFBADYCGCABQgA3AhAgAUEgaiQAC80BAQV/IwBBMGsiASQAIAEgADYCHCABIwsiAykDADcCICABIAMpAwg3AihBACEAIAFBADYCGCABIAEoAhw2AgggAS8BLCECIAFBADYCFCABIAI7ARgCQCABKAIkIgRFDQAgASgCICEFIARBHGwiAiMHKAIAEQAAIQAgASAENgIUIAUEQCACRQ0BIAAgBSAC/AoAAAwBCyACRQ0AIABBACAC/AsACyABIAA2AgwgASAENgIQIAMgASkCDDcDACADIAEpAhQ3AwggAUEwaiQAC5oBAQN/IwBB0ABrIgEkACABIwsiAigCADYCSCABQUBrIgMgAigCDEEBdDYCACABIAA2AkwgASABKQJINwMYIAEgAigCEDYCRCABIAMpAgA3AxAgASACKAIINgI8IAEgAigCBEEBdDYCOCABIAEpAjg3AwggAUEkaiABQQhqEHAgAiABKQIoNwMAIAIgASkCMDcDCCABQdAAaiQAC84wAht/A34jAEEQayIYJAAjAEFAaiIHJAAgB0EANgI8IAdCADcCJCAHQgA3AhwCfyAAKAIAIgJBAXEEQCAALQAEIQ0gAC0ABiEMIAAtAAVBD3EMAQsgAigCDCENIAIoAgQhDCACKAIICyEIIAdBADsBPCAHIAA2AiwgB0HgASMHKAIAEQAAIgI2AjAgB0KBgICAgAE3AjQgAkEANgIYIAJCADcCECACIA02AgwgAiAINgIIIAIgDDYCBCACIAA2AgACfyABKAIAIgJBAXEEQCABLQAEIQ0gAS0ABiEMIAEtAAVBD3EMAQsgAigCDCENIAIoAgQhDCACKAIICyEC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NgKIAiAKIDg3A4ACIApBADYC+AEgCkEANgL0ASAKQQA2AvABIAogBzYC7AEgCkEANgLoASAKQQA2AuQBIAogETsB4AEgCkEAOwHeASAKQQA7AdoBIApCADcDuAEgCkEBNgKMAiAKIANBAXQgAmpB/wFxOwHcASABIAooAowCNgIAIAEgCigCiAI2AgQgASAKKQOAAjcCCCABIAooAvgBNgIQIAEgCigC9AE2AhQgASAKKALwATYCGCABIAooAuwBNgIcIAEgCigC6AE2AiAgASAKKALkATYCJCABIAovAeABOwEoIAEgCi8B3gE7ASogASAKLwHcATsBLCABIAovAdoBOwEuIAEgCigC0AE2AkggAUFAayAKKQPIATcCACABIAopA8ABNwI4IAEgCikDuAE3AjBCAAshOCAEQQFrIRgCQCABQQFxBEAgAUEgciEBDAELIAEgAS8BLEGABHI7ASwLIBhBBXQiECAFKAKECSICKAIAaiIHKAIAIQMCfyACKAIoIgAEQCACIABBAWsiADYCKCACKAIkIABBAnRqKAIADAELQaQBIwcoAgARAAALIhQgDzsBACAUQQJqQQBBkgH8CwAgFEIANwKYASAUQQE2ApQBIBRBADYCoAECQAJ/AkAgAwRAIBQgOCABrYQ3AhQgFCADNgIQIBRBATsBkAEgFCADKQIENwIEIBQgAygCDDYCDCAUIAMoApgBIgA2ApgBIBQgAygCoAEiBDYCoAEgFCADKAKcASITNgKcASABQQFxIgMNASAUIAEtAC1BAnEEf0HiBAUgASgCIAsgAGo2ApgBQQAgASgCDCABKAIUIgIbIQAgASgCECABKAIEaiENIAIgASgCCGohDiABKAIYDAILIBRCADcCBCAUQQA2AgwMAgsgFCAAIAFBGnRBH3VB4gRxajYCmAEgOEIgiKdB/wFxIQAgOEIoiKdBD3EhDiA4QjCIpyENQQALIQIgFCAUKAIEIA1qNgIEIBQgFCgCCCAOaq0gACACakEAIBQoAgwgDhtqrUIghoQ3AggCQCADRQRAQQAhDiAUIAEoAiQiAAR/IAEoAjgFQQALIBNqIAEvASxBAXFqIAEvAShB/v8DRmo2ApwBIABFDQEgASgCPCEODAELIBQgEyABQQF2QQFxajYCnAFBACEOCyAUIAQgDmo2AqABCyAHIBQ2AgAgBSAY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AgwgACABQQVqNgIIIABCADcCACAAQSBqQQBB5Aj8CwAgAEEAQRgjBigCABEBACIBNgJEIAEjAUH8C2oiAikCEDcCECABIAIpAgg3AgggASACKQIANwIAIABBATYCZAJAAkAgACgCRCIDKAIUIgQgACgCICIBTQ0AIAQgAygCECICTQ0AIAEgAk0EQCAAIAMpAgA3AiQgACACNgIgIAIhAQtBACECIABBADYCaCAAKAJIRQ0BIAAoAmwiAyABTQRAIAEgACgCcCADakkNAgsgAEEANgJIIABCADcCbAwBC0EBIQIgAEEBNgJoIAMpAgghByAAQQA2AkggACAHNwIkIAAgBDYCICAAQgA3AmwLIABBADYCsAkgAEEANgIAIAAgAjYCdCAAQgA3AqgJIABBwAAjByIBKAIAEQAANgKoCSAAQQQ2ArAJQYACIAEoAgARAAAhASAAQgA3ApQJIABCgICAgIAENwKMCSAAIAE2AogJIABBnAlqQQA2AgBBAUE4IwkoAgARAQAiAUIANwIAIAFCADcCKCABQgA3AiAgAUIANwIYIAFCADcCECABQgA3AgggAUGAASMHKAIAEQAANgIAIAFBBDYCCCABKAIMIQIgASgCFEEDTQRAAn8gAgRAIAJBwAAjBigCABEBAAwBC0HAACMHKAIAEQAACyECIAFBBDYCFAsgASACNgIMIAEoAhghAiABKAIgQQNNBEACfyACBEAgAkHgACMGKAIAEQEADAELQeAAIwcoAgARAAALIQIgAUEENgIgCyABIAI2AhggASgCJCECIAEoAixBMU0EQAJ/IAIEQCACQcgBIwYoAgARAQAMAQtByAEjBygCABEAAAshAiABQTI2AiwLIAEgAEGICWoiAzYCNCABIAI2AiQCfyABKAIoIgQEQCABIARBAWsiBDYCKCACIARBAnRqKAIADAELQaQBIwcoAgARAAALIgJBATsBACACQQJqQQBBkgH8CwAgAkIANwIEIAJBATYClAEgAkEANgIMIAJCADcCmAEgAkEANgKgASABIAI2AjAgARA5IABCADcC9AkgAEIANwK0CSAAIAE2AoQJIABB/AlqQgA3AgAgAEGECmpBADYCACAAQgA3ApQKIABCADcCiAogAEEANgKgCSAAQZwKakIANwIAIABBpApqQgA3AgAgAEEANgLACiAAQcMKakEA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IHN5bTolcwBzZWxlY3Rfc21hbGxlcl9lcnJvciBzeW1ib2w6JXMsIG92ZXJfc3ltYm9sOiVzAHNlbGVjdF9lYXJsaWVyIHN5bWJvbDolcywgb3Zlcl9zeW1ib2w6JXMAc2VsZWN0X2V4aXN0aW5nIHN5bWJvbDolcywgb3Zlcl9zeW1ib2w6JXMAY2FudF9yZXVzZV9ub2RlIHN5bWJvbDolcywgZmlyc3RfbGVhZl9zeW1ib2w6JXMAc2tpcF90b2tlbiBzeW1ib2w6JXMAaWdub3JlX2VtcHR5X2V4dGVybmFsX3Rva2VuIHN5bWJvbDolcwByZXVzYWJsZV9ub2RlX2hhc19kaWZmZXJlbnRfZXh0ZXJuYWxfc2Nhbm5lcl9zdGF0ZSBzeW1ib2w6JXMAcmV1c2Vfbm9kZSBzeW1ib2w6JXMAcGFzdF9yZXVzYWJsZV9ub2RlIHN5bWJvbDolcwBiZWZvcmVfcmV1c2FibGVfbm9kZSBzeW1ib2w6JXMAY2FudF9yZXVzZV9ub2RlXyVzIHRyZWU6JXMAYnJlYWtkb3duX3RvcF9vZl9zdGFjayB0cmVlOiVzAGRldGVjdF9lcnJvciBsb29rYWhlYWQ6JXMAKCVzAGlzX2Vycm9yAHNraXBfdW5yZWNvZ25pemVkX2NoYXJhY3RlcgBuYW4AXG4AaXNfbWlzc2luZwByZXN1bWVfcGFyc2luZwByZWNvdmVyX2VvZgBpbmYAbmV3X3BhcnNlAGNvbmRlbnNlAGRvbmUAaXNfZnJhZ2lsZQBjb250YWluc19kaWZmZXJlbnRfaW5jbHVkZWRfcmFuZ2UAc2tpcCBjaGFyYWN0ZXI6JWQAY29uc3VtZSBjaGFyYWN0ZXI6JWQAc2VsZWN0X2hpZ2hlcl9wcmVjZWRlbmNlIHN5bWJvbDolcywgcHJlYzolZCwgb3Zlcl9zeW1ib2w6JXMsIG90aGVyX3ByZWM6JWQAc2hpZnRfZXh0cmEAbm9fbG9va2FoZWFkX2FmdGVyX25vbl90ZXJtaW5hbF9leHRyYQBfX1JPT1RfXwBfRVJST1IATkFOAE1JU1NJTkcASU5GAElOVkFMSUQAbGV4ZWRfbG9va2FoZWFkIHN5bToAIDAwMDAwMDAwMDAwMBAwMAAuACglcykAKG51bGwpAChOVUxMKQAoIiVzIikAJ1x0JwAnXHInACdcbicAc2tpcCBjaGFyYWN0ZXI6JyVjJwBjb25zdW1lIGNoYXJhY3RlcjonJWMnACdcMCcAIiVzIgAoTUlTU0lORyAAKFVORVhQRUNURUQgACVzOiAACgoAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAP//////////AAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeDw8PAAAAAAAAAAABAAAAAQAAAAIAAAABAAAAAgAAAAEAAAACAAAAAQAAAAIAAAAAAAAAAAAAABIRExQVFhcYGRobHB0eHyAhESIjJBElJicoKSorLBEtLi8QEDAQEBAQEBAQMTIzEDQ1EBARERERERERERERERERERERERERERERERERNhERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERETcREREROBE5Ojs8PT4RERERERERERERERERERERERERERERERERERERERERERERERERERERERERPxAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBFAQRFCQ0RFRkdISUoRS0xNTk9QURBSU1RVVldYWVpbXF0QXl9gEBEREWFiYxAQEBAQEBAQEBARERERZBAQEBAQEBAQEBAQEBAQEBERZRAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBERZmcQEGhpERERERERERERERERERERERERERERERFqERFrEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBFsbRAQEBAQEBAQEG4QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEG9wcXIQEBAQEBAQEHN0dRAQEBAQdncQEBAQeBAQeRAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////////////////////////////////wAAAAAAAAAA/v//B/7//wcAAAAAAAQgBP//f////3//////////////////////////////////w/8DAB9QAAAAAAAAAAAAACAAAAAAAN+8QNf///v///////////+///////////////////////8D/P///////////////////////////v///38C//////8BAAAAAP+/tgD///+HBwAAAP8H//////////7/w////////////////+8f/uH/nwAA////////AOD///////////////8DAP//////BzAE/////P8fAAD///8B/wcAAAAAAAD//98/AADw//gD////////////7//f4f/P//7/75/5///9xeOfWYCwz/8DEO6H+f///W3DhxkCXsD/PwDuv/v///3t478bAQDP/wAe7p/5///97eOfGcCwz/8CAOzHPdYYx//Dxx2BAMD/AADv3/3///3/498dYAfP/wAA79/9///97+PfHWBAz/8GAO/f/f/////n313wgM//APzs/3/8///7L3+AX//A/wwA/v////9//wc/IP8DAAAAANb3//+v//87XyD/8wAAAAABAAAA/wMAAP/+////H/7/A////v///x8AAAAAAAAAAP///////3/5/wP///////////8//////78g///////3////////////PX89//////89/////z1/Pf9//////////z3//////////wcAAAAA//8AAP////////////8/P/7//////////////////////////////////////////////////////////5////7//wf////////////H/wH/3w8A//8PAP//DwD/3w0A////////z///AYAQ/wMAAAAA/wP//////////////wH//////wf//////////z8A////f/8P/wHA/////z8fAP//////D////wP/AwAAAAD///8P/////////3/+/x8A/wP/A4AAAAAAAAAAAAAAAP///////+//7w//AwAAAAD///////P///////+//wMA////////fwD/4///////P/8B///////nAAAAAADebwT///////////////////////////////8AAAAAgP8fAP//Pz//////Pz//qv///z/////////fX9wfzw//H9wfAAAAAAAAAAAAAAAAAAACgAAA/x8AAAAAAAAAAAAAAACE/C8+UL3/8+BDAAD//////wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADA////////AwAA//////9///////9//////////////////////x94DAD/////vyD/////////gAAA//9/AH9/f39/f39//////wAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAP4DPh/+////////////f+D+//////////////fg///////+/////////////38AAP///wcAAAAAAAD///////////////////////////////8/AAAAAAAAAAAA////////////////////////////////////////AAD//////////////////////x8AAAAAAAAAAP//////P/8f////DwAA//////9/8I///////////////////wAAAACA//z////////////////5////////fAAAAAAAgP+//////wAAAP///////w8A//////////8vAP8DAAD86P//////B/////8HAP///x/////////3/wCA/wP///9/////////fwD/P/8D//9//P////////9/BQAAOP//PAB+fn4Af3////////f/AP///////////////////wf/A///////////////////////////DwD//3/4//////8P/////////////////z//////////////////AwAAAAB/APjg//1/X9v/////////////////AwAAAPj///////////////8/AAD///////////z///////8AAAAAAP8PAAAAAAAAAAAAAAAAAADf/////////////////////x8AAP8D/v//B/7//wfA/////////////3/8/PwcAAAAAP/v//9///+3/z//PwAAAAD///////////////////8HAAAAAAAAAAD///////8fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////H////////wEAAAAAAP////8A4P///wf//////wf///8//////w//PgAAAAAA/////////////////////////z//A/////8P/////w///////wD///////8PAAAAAAAAAAAAAAAAAAAAAAAAAP///////38A//8/AP8AAAAAAAAAAAAAAAAAAAAAAAAAP/3/////v5H//z8A//9/AP///38AAAAAAAAAAP//NwD//z8A////AwAAAAAAAAAA/////////8AAAAAAAAAAAG/w7/7//z8AAAAAAP///x////8fAAAAAP/+//8fAAAA////////PwD//z8A//8HAP//AwAAAAAAAAAAAAAAAAD///////////8BAAAAAAAA////////BwD///////8HAP//////AP8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////H4AA//8/AAAAAAAAAAAAAAAAAAAAAAAAAP//fwD//////////z8AAADA/wAA/P///////wEAAP///wH/A////////8f/cAD/////RwD//////////x4A/xcAAAAA///7////n0AAAAAAAAAAAH+9/7//Af////////8B/wPvn/n///3t458ZgeAPAAAAAAAAAAAAAAAAAAAAAAAAAP//////////uwf/gwAAAAD//////////7MA/wMAAAAAAAAAAAAAAAAAAAAAAAAAAP///////z9/AAAAPwAAAAD/////////fxEA/wMAAAAA////////PwH/AwAAAAAAAP///+f/B/8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////wEAAAAAAAAAAAAAAAD///////////8DAIAAAAAAAAAAAAAAAAAAAAAAAAAAAP/8///////8GgAAAP///////+d/AAD///////////8gAAAAAP////////8B//3/////f38BAP8DAAD8/////P///n8AAAAAAAAAAAB/+/////9/tMsA/wO//f///397Af8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//38A/////////////////////////wMAAAAAAAAAAAAAAAD/////////////////fwAA////////////////////////////////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////9/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////8B////f/8DAAAAAAAAAAAAAAAA////PwAA////////AAAPAP8D+P//4P//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////AAAAAAAAAAAAAAAAAAAAAP///////////4f/////////gP//AAAAAAAAAAALAAAA/////////////////////////////////////////wD///////////////////////////////////////8HAP///38AAAAAAAAHAPAA/////////////////////////////////////////////////////////////////w//////////////////B/8f/wH/QwAAAAAAAAAAAAAAAP/////////////f///////////fZN7/6+//////////v+ff3////3tf/P3//////////////////////////////////////////////////////z/////9///3////9///3////9///3////9//////f////3///fP////////f///+dsHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////x+AP/9DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////D/8D////////////////////////////////HwAAAAAAAAD//////////48I/wMAAAAAAAAAAAAAAAAAAAAAAAAAAO////+W/vcKhOqWqpb3917/+/8P7vv/DwAAAAAAAAAAAAAAAAAA////A////wP///8DAAAAAAAAAAAAAAAAAAAgAAAACQAAAAoAAAANAAAACwAAAAwAAACFAAAAACAAAAEgAAACIAAAAyAAAAQgAAAFIAAABiAAAAggAAAJIAAACiAAACggAAApIAAAXyAAAAAwAAAAAAAAAAAAAAAAAAAZAAsAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkACgoZGRkDCgcAAQAJCxgAAAkGCwAACwAGGQAAABkZGQAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAZAAsNGRkZAA0AAAIACQ4AAAAJAA4AAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAEwAAAAATAAAAAAkMAAAAAAAMAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA8AAAAEDwAAAAAJEAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAARAAAAABEAAAAACRIAAAAAABIAABIAABoAAAAaGhoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAABoaGgAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAABcAAAAAFwAAAAAJFAAAAAAAFAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAAAAAAAAAVAAAAABUAAAAACRYAAAAAABYAABYAADAxMjM0NTY3ODlBQkNERUYACAAAVgEAADkAAAAAAAAAAAAAAAEgAAAA4P//AL8dAADnAgAAeQAAAiQAAAEBAAAA////AAAAAAECAAAA/v//ATn//wAY//8Bh///ANT+/wDDAAAB0gAAAc4AAAHNAAABTwAAAcoAAAHLAAABzwAAAGEAAAHTAAAB0QAAAKMAAAHVAAAAggAAAdYAAAHaAAAB2QAAAdsAAAA4AAADAAAAALH//wGf//8ByP//AigkAAAAAAABAQAAAP///wAz//8AJv//AX7//wErKgABXf//ASgqAAA/KgABPf//AUUAAAFHAAAAHyoAABwqAAAeKgAALv//ADL//wA2//8ANf//AE+lAABLpQAAMf//ACilAABEpQAAL///AC3//wD3KQAAQaUAAP0pAAAr//8AKv//AOcpAABDpQAAKqUAALv//wAn//8Auf//ACX//wAVpQAAEqUAAiRMAAAAAAABIAAAAOD//wEBAAAA////AFQAAAF0AAABJgAAASUAAAFAAAABPwAAANr//wDb//8A4f//AMD//wDB//8BCAAAAML//wDH//8A0f//AMr//wD4//8Aqv//ALD//wAHAAAAjP//AcT//wCg//8B+f//AhpwAAEBAAAA////ASAAAADg//8BUAAAAQ8AAADx//8AAAAAATAAAADQ//8BAQAAAP///wAAAAAAwAsAAWAcAAAAAAAB0JcAAQgAAAD4//8CBYoAAAAAAAFA9P8Anuf/AMKJAADb5/8Akuf/AJPn/wCc5/8Anef/AKTn/wAAAAAAOIoAAASKAADmDgABAQAAAP///wAAAAAAxf//AUHi/wIdjwAACAAAAfj//wAAAAAAVgAAAar//wBKAAAAZAAAAIAAAABwAAAAfgAAAAkAAAG2//8B9///ANvj/wGc//8BkP//AYD//wGC//8CBawAAAAAAAEQAAAA8P//ARwAAAEBAAABo+L/AUHf/wG63/8A5P//AguxAAEBAAAA////ATAAAADQ//8AAAAAAQnW/wEa8f8BGdb/ANXV/wDY1f8B5NX/AQPW/wHh1f8B4tX/AcHV/wAAAAAAoOP/AAAAAAEBAAAA////Agy8AAAAAAABAQAAAP///wG8Wv8BoAMAAfx1/wHYWv8AMAAAAbFa/wG1Wv8Bv1r/Ae5a/wHWWv8B61r/AdD//wG9Wv8ByHX/AAAAAAAwaP8AYPz/AAAAAAEgAAAA4P//AAAAAAEoAAAA2P//AAAAAAFAAAAAwP//AAAAAAEgAAAA4P//AAAAAAEgAAAA4P//AAAAAAEiAAAA3v//MAwxDXgOfw+AEIERhhKJE4oTjhSPFZAWkxOUF5UYlhmXGpobnBmdHJ4dnx6mH6kfrh+xILIgtyG/IsUjyCPLI90k8iP2JfcmIC06Lj0vPjA/MUAxQzJEM0U0UDVRNlI3UzhUOVk6WztcPGE9Yz5lP2ZAaEFpQmpAa0NsRG9CcUVyRnVHfUiCSYdKiUuKTItMjE2STp1PnlBFV3sdfB19HX9YhlmIWolailqMW45cj1ysXa1erl6vXsJfzGDNYc5hz2LQY9Fk1WXWZtdn8GjxafJq82v0bPVt+W79Lf4t/y1QaVFpUmlTaVRpVWlWaVdpWGlZaVppW2lcaV1pXmlfaYIAgwCEAIUAhgCHAIgAiQDAdc92gImBioKLhYyGjXCdcZ12nneeeJ95n3qge6B8oX2hs6K6o7ujvKS+pcOizKTaptum5Wrqp+un7G7zovio+aj6qfup/KQmsCqxK7JOs4QIYrpju2S8Zb1mvm2/bsBvwXDCfsN/w33PjdCU0avSrNOt1LDVsday18TYxdnG2gcICQoLDAYGBgYGBgYGBgYNBgYOBgYGBgYGBgYPEBESBhMGBgYGBgYGBgYGFBUGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYWFwYGBhgGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhkGBgYGGgYGBgYGBgYbBgYGBgYGBgYGBgYcBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBh0GBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBh4GBgYGBgYGBgYGBgYGBgYGBgYGBgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCsrKysrKysrAQBUVlZWVlZWVlYAAAAAAAAAAAAAAAAAAAAAAAAAGAAAACsrKysrKysHKytbVlZWVlZWVkpWVgUxUDFQMVAxUDFQMVAxUDFQJFB5MVAxUDE4UDFQMVAxUDFQMVAxUDFQTjECTg0NTgNOACRuAE4xJm5RTiRQTjkUgRsdHVMxUDFQDTFQMVAxUBtTJFAxAlx7XHtce1x7XHsUeVx7XHtcLStJA0gDeFx7FACWCgErKAYGACoGKiorB7u1Kx4AKwcrKysBKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysBKysrKysrKysrKysrKysrKysrKysrKysqKysrKysrKysrKysrK81GzSsAJSsHAQYBVVZWVlZWVVZWAiSBgYGBgRWBgYEAACsAstGy0bLRstEAAM3MAQDX19fX14OBgYGBgYGBgYGBrKysrKysrKysrBwAAAAAADFQMVAxUDFQMVAxAgAAMVAxUDFQMVAxUDFQMVAxUDFQTjFQMVBOMVAxUDFQMVAxUDFQMVAxAoemh6aHpoemh6aHpoemh6YqKysrKysrKysrKysrAAAAVFZWVlZWVlZWVlZWVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUVlZWVlZWVlZWVlZWDAAMKisrKysrKysrKysrKysHKgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACorKysrKysrKysrKysrKysrKysrKysrKysrK1ZWbIEVACsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwdsA0ErK1ZWVlZWVlZWVlZWVlZWLFYrKysrKysrKysrKysrKysrKysrKysBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxsAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJQYlBiUGJQYlBiUGJQYlBiUGJQYlBiUGJQYlBiUGJQYlBiUGJQYlBiUGJQYlBiUGJVZ6niYGJQYlBiUGJQYlBiUGJQYlBiUGJQYlBiUGJQYlBiUGASsrT1ZWLCt/VlY5KytVVlYrK09WViwrf1ZWgTd1W3tcKytPVlYCrAQAADkrK1VWVisrT1ZWLCsrVlYyE4FXAG+BfsnXfi2BgQ5+OX9vVwCBgX4VAH4DKysrKysrKysrKysrByskK5crKysrKysrKysqKysrKytWVlZWVoCBgYGBObsqKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwGBgYGBgYGBgYGBgYGBgYHJrKysrKysrKysrKysrKys0A0ATjECtMHB19ckUDFQMVAxUDFQMVAxUDFQMVAxUDFQMVAxUDFQMVAxUDFQ19dTwUfU19fXBSsrKysrKysrKysrKwcBAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATjFQMVAxUDFQMVAxUDFQDQAAAAAAJFAxUDFQMVAxUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysrKysrKysrK3lce1x7T3tce1x7XHtce1x7XHtce1x7XHtcLSsreRRce1wteSpcJ1x7XHtce6QACrRce1x7TwMqKysrKysrKysrKysrKysrKysrAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAqKysrKysrKysrKysrKysrKysrKysrKysrKysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysrKysrKwcASFZWVlZWVlZWAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysrKysrKysrKysrVVZWVlZWVlZWVlZWVg4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCsrKysrKysrKysrBwBWVlZWVlZWVlZWVlYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQrKysrKysrKysrKysrKysrBwAAAABWVlZWVlZWVlZWVlZWVlZWVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKysrKysrKysrK1ZWVlZWVlZWVlYOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKysrKysrKysrK1ZWVlZWVlZWVlYOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKysrKysrKysrVVZWVlZWVlZWVlYOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYnUW93AAAAAAAAAAAAAHwAAH8AAAAAAAAAAIOOkpcAqgAAAAAAAAAAAAC0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMbJAAAA2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3gAAAADhAAAAAAAAAOQAAAAAAAAAAAAAAOcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAAAAAABYAAAAAAAAAAAAAABcAAAAAIAAAAAAAAAUAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAAAAaAAAApCsAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPgpAAAAAAAAACoQc291cmNlTWFwcGluZ1VSTBh3ZWItdHJlZS1zaXR0ZXIud2FzbS5tYXA=",typeof document>"u"?require("url").pathToFileURL(__filename).href:_documentCurrentScript&&_documentCurrentScript.tagName.toUpperCase()==="SCRIPT"&&_documentCurrentScript.src||new URL("__vite-browser-external-D37bwR0X.cjs",document.baseURI).href).href}__name(findWasmBinary,"findWasmBinary");function getBinarySync(r){if(r==wasmBinaryFile&&wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(r);throw"both async and sync fetching of the wasm failed"}__name(getBinarySync,"getBinarySync");async function getWasmBinary(r){if(!wasmBinary)try{var e=await readAsync(r);return new Uint8Array(e)}catch{}return getBinarySync(r)}__name(getWasmBinary,"getWasmBinary");async function instantiateArrayBuffer(r,e){try{var n=await getWasmBinary(r),A=await WebAssembly.instantiate(n,e);return A}catch(o){err(`failed to asynchronously prepare wasm: ${o}`),abort(o)}}__name(instantiateArrayBuffer,"instantiateArrayBuffer");async function instantiateAsync(r,e,n){if(!r&&!isFileURI(e)&&!ENVIRONMENT_IS_NODE)try{var A=fetch(e,{credentials:"same-origin"}),o=await WebAssembly.instantiateStreaming(A,n);return o}catch(s){err(`wasm streaming compile failed: ${s}`),err("falling back to ArrayBuffer instantiation")}return instantiateArrayBuffer(e,n)}__name(instantiateAsync,"instantiateAsync");function getWasmImports(){return{env:wasmImports,wasi_snapshot_preview1:wasmImports,"GOT.mem":new Proxy(wasmImports,GOTHandler),"GOT.func":new Proxy(wasmImports,GOTHandler)}}__name(getWasmImports,"getWasmImports");async function createWasm(){function r(s,a){wasmExports=s.exports,wasmExports=relocateExports(wasmExports,1024);var l=getDylinkMetadata(a);return l.neededDynlibs&&(dynamicLibraries=l.neededDynlibs.concat(dynamicLibraries)),mergeLibSymbols(wasmExports,"main"),LDSO.init(),loadDylibs(),__RELOC_FUNCS__.push(wasmExports.__wasm_apply_data_relocs),assignWasmExports(wasmExports),wasmExports}__name(r,"receiveInstance");function e(s){return r(s.instance,s.module)}__name(e,"receiveInstantiationResult");var n=getWasmImports();if(Module.instantiateWasm)return new Promise((s,a)=>{Module.instantiateWasm(n,(l,c)=>{s(r(l,c))})});wasmBinaryFile??=findWasmBinary();var A=await instantiateAsync(wasmBinary,wasmBinaryFile,n),o=e(A);return o}__name(createWasm,"createWasm");class ExitStatus{static{__name(this,"ExitStatus")}name="ExitStatus";constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var GOT={},currentModuleWeakSymbols=new Set([]),GOTHandler={get(r,e){var n=GOT[e];return n||(n=GOT[e]=new WebAssembly.Global({value:"i32",mutable:!0})),currentModuleWeakSymbols.has(e)||(n.required=!0),n}},LE_HEAP_LOAD_F32=__name(r=>HEAP_DATA_VIEW.getFloat32(r,!0),"LE_HEAP_LOAD_F32"),LE_HEAP_LOAD_F64=__name(r=>HEAP_DATA_VIEW.getFloat64(r,!0),"LE_HEAP_LOAD_F64"),LE_HEAP_LOAD_I16=__name(r=>HEAP_DATA_VIEW.getInt16(r,!0),"LE_HEAP_LOAD_I16"),LE_HEAP_LOAD_I32=__name(r=>HEAP_DATA_VIEW.getInt32(r,!0),"LE_HEAP_LOAD_I32"),LE_HEAP_LOAD_I64=__name(r=>HEAP_DATA_VIEW.getBigInt64(r,!0),"LE_HEAP_LOAD_I64"),LE_HEAP_LOAD_U32=__name(r=>HEAP_DATA_VIEW.getUint32(r,!0),"LE_HEAP_LOAD_U32"),LE_HEAP_STORE_F32=__name((r,e)=>HEAP_DATA_VIEW.setFloat32(r,e,!0),"LE_HEAP_STORE_F32"),LE_HEAP_STORE_F64=__name((r,e)=>HEAP_DATA_VIEW.setFloat64(r,e,!0),"LE_HEAP_STORE_F64"),LE_HEAP_STORE_I16=__name((r,e)=>HEAP_DATA_VIEW.setInt16(r,e,!0),"LE_HEAP_STORE_I16"),LE_HEAP_STORE_I32=__name((r,e)=>HEAP_DATA_VIEW.setInt32(r,e,!0),"LE_HEAP_STORE_I32"),LE_HEAP_STORE_I64=__name((r,e)=>HEAP_DATA_VIEW.setBigInt64(r,e,!0),"LE_HEAP_STORE_I64"),LE_HEAP_STORE_U32=__name((r,e)=>HEAP_DATA_VIEW.setUint32(r,e,!0),"LE_HEAP_STORE_U32"),callRuntimeCallbacks=__name(r=>{for(;r.length>0;)r.shift()(Module)},"callRuntimeCallbacks"),onPostRuns=[],addOnPostRun=__name(r=>onPostRuns.push(r),"addOnPostRun"),onPreRuns=[],addOnPreRun=__name(r=>onPreRuns.push(r),"addOnPreRun"),UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder:void 0,findStringEnd=__name((r,e,n,A)=>{var o=e+n;if(A)return o;for(;r[e]&&!(e>=o);)++e;return e},"findStringEnd"),UTF8ArrayToString=__name((r,e=0,n,A)=>{var o=findStringEnd(r,e,n,A);if(o-e>16&&r.buffer&&UTF8Decoder)return UTF8Decoder.decode(r.subarray(e,o));for(var s="";e<o;){var a=r[e++];if(!(a&128)){s+=String.fromCharCode(a);continue}var l=r[e++]&63;if((a&224)==192){s+=String.fromCharCode((a&31)<<6|l);continue}var c=r[e++]&63;if((a&240)==224?a=(a&15)<<12|l<<6|c:a=(a&7)<<18|l<<12|c<<6|r[e++]&63,a<65536)s+=String.fromCharCode(a);else{var g=a-65536;s+=String.fromCharCode(55296|g>>10,56320|g&1023)}}return s},"UTF8ArrayToString"),getDylinkMetadata=__name(r=>{var e=0,n=0;function A(){return r[e++]}__name(A,"getU8");function o(){for(var F=0,R=1;;){var N=r[e++];if(F+=(N&127)*R,R*=128,!(N&128))break}return F}__name(o,"getLEB");function s(){var F=o();return e+=F,UTF8ArrayToString(r,e-F,F)}__name(s,"getString");function a(){for(var F=o(),R=[];F--;)R.push(s());return R}__name(a,"getStringList");function l(F,R){if(F)throw new Error(R)}if(__name(l,"failIf"),r instanceof WebAssembly.Module){var c=WebAssembly.Module.customSections(r,"dylink.0");l(c.length===0,"need dylink section"),r=new Uint8Array(c[0]),n=r.length}else{var g=new Uint32Array(new Uint8Array(r.subarray(0,24)).buffer),h=g[0]==1836278016||g[0]==6386541;l(!h,"need to see wasm magic number"),l(r[8]!==0,"need the dylink section to be first"),e=9;var d=o();n=e+d;var u=s();l(u!=="dylink.0")}for(var f={neededDynlibs:[],tlsExports:new Set,weakImports:new Set,runtimePaths:[]},I=1,p=2,m=3,E=4,B=5,Q=256,w=3,y=1;e<n;){var S=A(),D=o();if(S===I)f.memorySize=o(),f.memoryAlign=o(),f.tableSize=o(),f.tableAlign=o();else if(S===p)f.neededDynlibs=a();else if(S===m)for(var _=o();_--;){var M=s(),v=o();v&Q&&f.tlsExports.add(M)}else if(S===E)for(var _=o();_--;){s();var M=s(),v=o();(v&w)==y&&f.weakImports.add(M)}else S===B?f.runtimePaths=a():e+=D}return f},"getDylinkMetadata");function getValue(r,e="i8"){switch(e.endsWith("*")&&(e="*"),e){case"i1":return HEAP8[r];case"i8":return HEAP8[r];case"i16":return LE_HEAP_LOAD_I16((r>>1)*2);case"i32":return LE_HEAP_LOAD_I32((r>>2)*4);case"i64":return LE_HEAP_LOAD_I64((r>>3)*8);case"float":return LE_HEAP_LOAD_F32((r>>2)*4);case"double":return LE_HEAP_LOAD_F64((r>>3)*8);case"*":return LE_HEAP_LOAD_U32((r>>2)*4);default:abort(`invalid type for getValue: ${e}`)}}__name(getValue,"getValue");var newDSO=__name((r,e,n)=>{var A={refcount:1/0,name:r,exports:n,global:!0};return LDSO.loadedLibsByName[r]=A,e!=null&&(LDSO.loadedLibsByHandle[e]=A),A},"newDSO"),LDSO={loadedLibsByName:{},loadedLibsByHandle:{},init(){newDSO("__main__",0,wasmImports)}},___heap_base=78240,alignMemory=__name((r,e)=>Math.ceil(r/e)*e,"alignMemory"),getMemory=__name(r=>{if(runtimeInitialized)return _calloc(r,1);var e=___heap_base,n=e+alignMemory(r,16);return ___heap_base=n,GOT.__heap_base.value=n,e},"getMemory"),isInternalSym=__name(r=>["__cpp_exception","__c_longjmp","__wasm_apply_data_relocs","__dso_handle","__tls_size","__tls_align","__set_stack_limits","_emscripten_tls_init","__wasm_init_tls","__wasm_call_ctors","__start_em_asm","__stop_em_asm","__start_em_js","__stop_em_js"].includes(r)||r.startsWith("__em_js__"),"isInternalSym"),uleb128EncodeWithLen=__name(r=>{const e=r.length;return[e%128|128,e>>7,...r]},"uleb128EncodeWithLen"),wasmTypeCodes={i:127,p:127,j:126,f:125,d:124,e:111},generateTypePack=__name(r=>uleb128EncodeWithLen(Array.from(r,e=>{var n=wasmTypeCodes[e];return n})),"generateTypePack"),convertJsFunctionToWasm=__name((r,e)=>{var n=Uint8Array.of(0,97,115,109,1,0,0,0,1,...uleb128EncodeWithLen([1,96,...generateTypePack(e.slice(1)),...generateTypePack(e[0]==="v"?"":e[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),A=new WebAssembly.Module(n),o=new WebAssembly.Instance(A,{e:{f:r}}),s=o.exports.f;return s},"convertJsFunctionToWasm"),wasmTableMirror=[],wasmTable=new WebAssembly.Table({initial:31,element:"anyfunc"}),getWasmTableEntry=__name(r=>{var e=wasmTableMirror[r];return e||(wasmTableMirror[r]=e=wasmTable.get(r)),e},"getWasmTableEntry"),updateTableMap=__name((r,e)=>{if(functionsInTableMap)for(var n=r;n<r+e;n++){var A=getWasmTableEntry(n);A&&functionsInTableMap.set(A,n)}},"updateTableMap"),functionsInTableMap,getFunctionAddress=__name(r=>(functionsInTableMap||(functionsInTableMap=new WeakMap,updateTableMap(0,wasmTable.length)),functionsInTableMap.get(r)||0),"getFunctionAddress"),freeTableIndexes=[],getEmptyTableSlot=__name(()=>freeTableIndexes.length?freeTableIndexes.pop():wasmTable.grow(1),"getEmptyTableSlot"),setWasmTableEntry=__name((r,e)=>{wasmTable.set(r,e),wasmTableMirror[r]=wasmTable.get(r)},"setWasmTableEntry"),addFunction=__name((r,e)=>{var n=getFunctionAddress(r);if(n)return n;var A=getEmptyTableSlot();try{setWasmTableEntry(A,r)}catch(s){if(!(s instanceof TypeError))throw s;var o=convertJsFunctionToWasm(r,e);setWasmTableEntry(A,o)}return functionsInTableMap.set(r,A),A},"addFunction"),updateGOT=__name((r,e)=>{for(var n in r)if(!isInternalSym(n)){var A=r[n];GOT[n]||=new WebAssembly.Global({value:"i32",mutable:!0}),(e||GOT[n].value==0)&&(typeof A=="function"?GOT[n].value=addFunction(A):typeof A=="number"?GOT[n].value=A:err(`unhandled export type for '${n}': ${typeof A}`))}},"updateGOT"),relocateExports=__name((r,e,n)=>{var A={};for(var o in r){var s=r[o];typeof s=="object"&&(s=s.value),typeof s=="number"&&(s+=e),A[o]=s}return updateGOT(A,n),A},"relocateExports"),isSymbolDefined=__name(r=>{var e=wasmImports[r];return!(!e||e.stub)},"isSymbolDefined"),dynCall=__name((r,e,n=[],A=!1)=>{var o=getWasmTableEntry(e),s=o(...n);function a(l){return l}return __name(a,"convert"),s},"dynCall"),stackSave=__name(()=>_emscripten_stack_get_current(),"stackSave"),stackRestore=__name(r=>__emscripten_stack_restore(r),"stackRestore"),createInvokeFunction=__name(r=>(e,...n)=>{var A=stackSave();try{return dynCall(r,e,n)}catch(o){if(stackRestore(A),o!==o+0)throw o;if(_setThrew(1,0),r[0]=="j")return 0n}},"createInvokeFunction"),resolveGlobalSymbol=__name((r,e=!1)=>{var n;return isSymbolDefined(r)?n=wasmImports[r]:r.startsWith("invoke_")&&(n=wasmImports[r]=createInvokeFunction(r.split("_")[1])),{sym:n,name:r}},"resolveGlobalSymbol"),onPostCtors=[],addOnPostCtor=__name(r=>onPostCtors.push(r),"addOnPostCtor"),UTF8ToString=__name((r,e,n)=>r?UTF8ArrayToString(HEAPU8,r,e,n):"","UTF8ToString"),loadWebAssemblyModule=__name((binary,flags,libName,localScope,handle)=>{var metadata=getDylinkMetadata(binary);function loadModule(){var memAlign=Math.pow(2,metadata.memoryAlign),memoryBase=metadata.memorySize?alignMemory(getMemory(metadata.memorySize+memAlign),memAlign):0,tableBase=metadata.tableSize?wasmTable.length:0;handle&&(HEAP8[handle+8]=1,LE_HEAP_STORE_U32((handle+12>>2)*4,memoryBase),LE_HEAP_STORE_I32((handle+16>>2)*4,metadata.memorySize),LE_HEAP_STORE_U32((handle+20>>2)*4,tableBase),LE_HEAP_STORE_I32((handle+24>>2)*4,metadata.tableSize)),metadata.tableSize&&wasmTable.grow(metadata.tableSize);var moduleExports;function resolveSymbol(r){var e=resolveGlobalSymbol(r).sym;return!e&&localScope&&(e=localScope[r]),e||(e=moduleExports[r]),e}__name(resolveSymbol,"resolveSymbol");var proxyHandler={get(r,e){switch(e){case"__memory_base":return memoryBase;case"__table_base":return tableBase}if(e in wasmImports&&!wasmImports[e].stub){var n=wasmImports[e];return n}if(!(e in r)){var A;r[e]=(...o)=>(A||=resolveSymbol(e),A(...o))}return r[e]}},proxy=new Proxy({},proxyHandler);currentModuleWeakSymbols=metadata.weakImports;var info={"GOT.mem":new Proxy({},GOTHandler),"GOT.func":new Proxy({},GOTHandler),env:proxy,wasi_snapshot_preview1:proxy};function postInstantiation(module,instance){updateTableMap(tableBase,metadata.tableSize),moduleExports=relocateExports(instance.exports,memoryBase),flags.allowUndefined||reportUndefinedSymbols();function addEmAsm(addr,body){for(var args=[],arity=0;arity<16&&body.indexOf("$"+arity)!=-1;arity++)args.push("$"+arity);args=args.join(",");var func=`(${args}) => { ${body} };`;eval(func)}if(__name(addEmAsm,"addEmAsm"),"__start_em_asm"in moduleExports)for(var start=moduleExports.__start_em_asm,stop=moduleExports.__stop_em_asm;start<stop;){var jsString=UTF8ToString(start);addEmAsm(start,jsString),start=HEAPU8.indexOf(0,start)+1}function addEmJs(name,cSig,body){var jsArgs=[];if(cSig=cSig.slice(1,-1),cSig!="void"){cSig=cSig.split(",");for(var i in cSig){var jsArg=cSig[i].split(" ").pop();jsArgs.push(jsArg.replace("*",""))}}var func=`(${jsArgs}) => ${body};`;moduleExports[name]=eval(func)}__name(addEmJs,"addEmJs");for(var name in moduleExports)if(name.startsWith("__em_js__")){var start=moduleExports[name],jsString=UTF8ToString(start),parts=jsString.split("<::>");addEmJs(name.replace("__em_js__",""),parts[0],parts[1]),delete moduleExports[name]}var applyRelocs=moduleExports.__wasm_apply_data_relocs;applyRelocs&&(runtimeInitialized?applyRelocs():__RELOC_FUNCS__.push(applyRelocs));var init=moduleExports.__wasm_call_ctors;return init&&(runtimeInitialized?init():addOnPostCtor(init)),moduleExports}if(__name(postInstantiation,"postInstantiation"),flags.loadAsync)return(async()=>{var r;return binary instanceof WebAssembly.Module?r=new WebAssembly.Instance(binary,info):{module:binary,instance:r}=await WebAssembly.instantiate(binary,info),postInstantiation(binary,r)})();var module=binary instanceof WebAssembly.Module?binary:new WebAssembly.Module(binary),instance=new WebAssembly.Instance(module,info);return postInstantiation(module,instance)}return __name(loadModule,"loadModule"),flags={...flags,rpath:{parentLibPath:libName,paths:metadata.runtimePaths}},flags.loadAsync?metadata.neededDynlibs.reduce((r,e)=>r.then(()=>loadDynamicLibrary(e,flags,localScope)),Promise.resolve()).then(loadModule):(metadata.neededDynlibs.forEach(r=>loadDynamicLibrary(r,flags,localScope)),loadModule())},"loadWebAssemblyModule"),mergeLibSymbols=__name((r,e)=>{for(var[n,A]of Object.entries(r)){const o=__name(a=>{isSymbolDefined(a)||(wasmImports[a]=A)},"setImport");o(n);const s="__main_argc_argv";n=="main"&&o(s),n==s&&o("main")}},"mergeLibSymbols"),asyncLoad=__name(async r=>{var e=await readAsync(r);return new Uint8Array(e)},"asyncLoad");function loadDynamicLibrary(r,e={global:!0,nodelete:!0},n,A){var o=LDSO.loadedLibsByName[r];if(o)return e.global?o.global||(o.global=!0,mergeLibSymbols(o.exports,r)):n&&Object.assign(n,o.exports),e.nodelete&&o.refcount!==1/0&&(o.refcount=1/0),o.refcount++,A&&(LDSO.loadedLibsByHandle[A]=o),e.loadAsync?Promise.resolve(!0):!0;o=newDSO(r,A,"loading"),o.refcount=e.nodelete?1/0:1,o.global=e.global;function s(){if(A){var c=LE_HEAP_LOAD_U32((A+28>>2)*4),g=LE_HEAP_LOAD_U32((A+32>>2)*4);if(c&&g){var h=HEAP8.slice(c,c+g);return e.loadAsync?Promise.resolve(h):h}}var d=locateFile(r);if(e.loadAsync)return asyncLoad(d);if(!readBinary)throw new Error(`${d}: file not found, and synchronous loading of external files is not available`);return readBinary(d)}__name(s,"loadLibData");function a(){return e.loadAsync?s().then(c=>loadWebAssemblyModule(c,e,r,n,A)):loadWebAssemblyModule(s(),e,r,n,A)}__name(a,"getExports");function l(c){o.global?mergeLibSymbols(c,r):n&&Object.assign(n,c),o.exports=c}return __name(l,"moduleLoaded"),e.loadAsync?a().then(c=>(l(c),!0)):(l(a()),!0)}__name(loadDynamicLibrary,"loadDynamicLibrary");var reportUndefinedSymbols=__name(()=>{for(var[r,e]of Object.entries(GOT))if(e.value==0){var n=resolveGlobalSymbol(r,!0).sym;if(!n&&!e.required)continue;if(typeof n=="function")e.value=addFunction(n,n.sig);else if(typeof n=="number")e.value=n;else throw new Error(`bad export type for '${r}': ${typeof n}`)}},"reportUndefinedSymbols"),runDependencies=0,dependenciesFulfilled=null,removeRunDependency=__name(r=>{if(runDependencies--,Module.monitorRunDependencies?.(runDependencies),runDependencies==0&&dependenciesFulfilled){var e=dependenciesFulfilled;dependenciesFulfilled=null,e()}},"removeRunDependency"),addRunDependency=__name(r=>{runDependencies++,Module.monitorRunDependencies?.(runDependencies)},"addRunDependency"),loadDylibs=__name(async()=>{if(!dynamicLibraries.length){reportUndefinedSymbols();return}addRunDependency("loadDylibs");for(var r of dynamicLibraries)await loadDynamicLibrary(r,{loadAsync:!0,global:!0,nodelete:!0,allowUndefined:!0});reportUndefinedSymbols(),removeRunDependency("loadDylibs")},"loadDylibs"),noExitRuntime=!0;function setValue(r,e,n="i8"){switch(n.endsWith("*")&&(n="*"),n){case"i1":HEAP8[r]=e;break;case"i8":HEAP8[r]=e;break;case"i16":LE_HEAP_STORE_I16((r>>1)*2,e);break;case"i32":LE_HEAP_STORE_I32((r>>2)*4,e);break;case"i64":LE_HEAP_STORE_I64((r>>3)*8,BigInt(e));break;case"float":LE_HEAP_STORE_F32((r>>2)*4,e);break;case"double":LE_HEAP_STORE_F64((r>>3)*8,e);break;case"*":LE_HEAP_STORE_U32((r>>2)*4,e);break;default:abort(`invalid type for setValue: ${n}`)}}__name(setValue,"setValue");var ___memory_base=new WebAssembly.Global({value:"i32",mutable:!1},1024),___stack_high=78240,___stack_low=12704,___stack_pointer=new WebAssembly.Global({value:"i32",mutable:!0},78240),___table_base=new WebAssembly.Global({value:"i32",mutable:!1},1),__abort_js=__name(()=>abort(""),"__abort_js");__abort_js.sig="v";var getHeapMax=__name(()=>2147483648,"getHeapMax"),growMemory=__name(r=>{var e=wasmMemory.buffer.byteLength,n=(r-e+65535)/65536|0;try{return wasmMemory.grow(n),updateMemoryViews(),1}catch{}},"growMemory"),_emscripten_resize_heap=__name(r=>{var e=HEAPU8.length;r>>>=0;var n=getHeapMax();if(r>n)return!1;for(var A=1;A<=4;A*=2){var o=e*(1+.2/A);o=Math.min(o,r+100663296);var s=Math.min(n,alignMemory(Math.max(r,o),65536)),a=growMemory(s);if(a)return!0}return!1},"_emscripten_resize_heap");_emscripten_resize_heap.sig="ip";var _fd_close=__name(r=>52,"_fd_close");_fd_close.sig="ii";var INT53_MAX=9007199254740992,INT53_MIN=-9007199254740992,bigintToI53Checked=__name(r=>r<INT53_MIN||r>INT53_MAX?NaN:Number(r),"bigintToI53Checked");function _fd_seek(r,e,n,A){return e=bigintToI53Checked(e),70}__name(_fd_seek,"_fd_seek"),_fd_seek.sig="iijip";var printCharBuffers=[null,[],[]],printChar=__name((r,e)=>{var n=printCharBuffers[r];e===0||e===10?((r===1?out:err)(UTF8ArrayToString(n)),n.length=0):n.push(e)},"printChar"),_fd_write=__name((r,e,n,A)=>{for(var o=0,s=0;s<n;s++){var a=LE_HEAP_LOAD_U32((e>>2)*4),l=LE_HEAP_LOAD_U32((e+4>>2)*4);e+=8;for(var c=0;c<l;c++)printChar(r,HEAPU8[a+c]);o+=l}return LE_HEAP_STORE_U32((A>>2)*4,o),0},"_fd_write");_fd_write.sig="iippp";function _tree_sitter_log_callback(r,e){if(Module.currentLogCallback){const n=UTF8ToString(e);Module.currentLogCallback(n,r!==0)}}__name(_tree_sitter_log_callback,"_tree_sitter_log_callback");function _tree_sitter_parse_callback(r,e,n,A,o){const a=Module.currentParseCallback(e,{row:n,column:A});typeof a=="string"?(setValue(o,a.length,"i32"),stringToUTF16(a,r,10240)):setValue(o,0,"i32")}__name(_tree_sitter_parse_callback,"_tree_sitter_parse_callback");function _tree_sitter_progress_callback(r,e){return Module.currentProgressCallback?Module.currentProgressCallback({currentOffset:r,hasError:e}):!1}__name(_tree_sitter_progress_callback,"_tree_sitter_progress_callback");function _tree_sitter_query_progress_callback(r){return Module.currentQueryProgressCallback?Module.currentQueryProgressCallback({currentOffset:r}):!1}__name(_tree_sitter_query_progress_callback,"_tree_sitter_query_progress_callback");var runtimeKeepaliveCounter=0,keepRuntimeAlive=__name(()=>noExitRuntime||runtimeKeepaliveCounter>0,"keepRuntimeAlive"),_proc_exit=__name(r=>{EXITSTATUS=r,keepRuntimeAlive()||(Module.onExit?.(r),ABORT=!0),quit_(r,new ExitStatus(r))},"_proc_exit");_proc_exit.sig="vi";var exitJS=__name((r,e)=>{EXITSTATUS=r,_proc_exit(r)},"exitJS"),handleException=__name(r=>{if(r instanceof ExitStatus||r=="unwind")return EXITSTATUS;quit_(1,r)},"handleException"),lengthBytesUTF8=__name(r=>{for(var e=0,n=0;n<r.length;++n){var A=r.charCodeAt(n);A<=127?e++:A<=2047?e+=2:A>=55296&&A<=57343?(e+=4,++n):e+=3}return e},"lengthBytesUTF8"),stringToUTF8Array=__name((r,e,n,A)=>{if(!(A>0))return 0;for(var o=n,s=n+A-1,a=0;a<r.length;++a){var l=r.codePointAt(a);if(l<=127){if(n>=s)break;e[n++]=l}else if(l<=2047){if(n+1>=s)break;e[n++]=192|l>>6,e[n++]=128|l&63}else if(l<=65535){if(n+2>=s)break;e[n++]=224|l>>12,e[n++]=128|l>>6&63,e[n++]=128|l&63}else{if(n+3>=s)break;e[n++]=240|l>>18,e[n++]=128|l>>12&63,e[n++]=128|l>>6&63,e[n++]=128|l&63,a++}}return e[n]=0,n-o},"stringToUTF8Array"),stringToUTF8=__name((r,e,n)=>stringToUTF8Array(r,HEAPU8,e,n),"stringToUTF8"),stackAlloc=__name(r=>__emscripten_stack_alloc(r),"stackAlloc"),stringToUTF8OnStack=__name(r=>{var e=lengthBytesUTF8(r)+1,n=stackAlloc(e);return stringToUTF8(r,n,e),n},"stringToUTF8OnStack"),AsciiToString=__name(r=>{for(var e="";;){var n=HEAPU8[r++];if(!n)return e;e+=String.fromCharCode(n)}},"AsciiToString"),stringToUTF16=__name((r,e,n)=>{if(n??=2147483647,n<2)return 0;n-=2;for(var A=e,o=n<r.length*2?n/2:r.length,s=0;s<o;++s){var a=r.charCodeAt(s);LE_HEAP_STORE_I16((e>>1)*2,a),e+=2}return LE_HEAP_STORE_I16((e>>1)*2,0),e-A},"stringToUTF16");new Int8Array(new Int16Array([1]).buffer)[0];function LE_HEAP_UPDATE(){HEAPU16.unsigned=(r=>r&65535),HEAPU32.unsigned=(r=>r>>>0)}if(__name(LE_HEAP_UPDATE,"LE_HEAP_UPDATE"),initMemory(),Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),Module.print&&(out=Module.print),Module.printErr&&(err=Module.printErr),Module.dynamicLibraries&&(dynamicLibraries=Module.dynamicLibraries),Module.wasmBinary&&(wasmBinary=Module.wasmBinary),Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.shift()();Module.setValue=setValue,Module.getValue=getValue,Module.UTF8ToString=UTF8ToString,Module.stringToUTF8=stringToUTF8,Module.lengthBytesUTF8=lengthBytesUTF8,Module.AsciiToString=AsciiToString,Module.stringToUTF16=stringToUTF16,Module.loadWebAssemblyModule=loadWebAssemblyModule,Module.LE_HEAP_STORE_I64=LE_HEAP_STORE_I64;var _calloc,_setThrew,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current;function assignWasmExports(r){Module._malloc=r.malloc,Module._calloc=_calloc=r.calloc,Module._realloc=r.realloc,Module._free=r.free,Module._ts_range_edit=r.ts_range_edit,Module._memcmp=r.memcmp,Module._ts_language_symbol_count=r.ts_language_symbol_count,Module._ts_language_state_count=r.ts_language_state_count,Module._ts_language_abi_version=r.ts_language_abi_version,Module._ts_language_name=r.ts_language_name,Module._ts_language_field_count=r.ts_language_field_count,Module._ts_language_next_state=r.ts_language_next_state,Module._ts_language_symbol_name=r.ts_language_symbol_name,Module._ts_language_symbol_for_name=r.ts_language_symbol_for_name,Module._strncmp=r.strncmp,Module._ts_language_symbol_type=r.ts_language_symbol_type,Module._ts_language_field_name_for_id=r.ts_language_field_name_for_id,Module._ts_lookahead_iterator_new=r.ts_lookahead_iterator_new,Module._ts_lookahead_iterator_delete=r.ts_lookahead_iterator_delete,Module._ts_lookahead_iterator_reset_state=r.ts_lookahead_iterator_reset_state,Module._ts_lookahead_iterator_reset=r.ts_lookahead_iterator_reset,Module._ts_lookahead_iterator_next=r.ts_lookahead_iterator_next,Module._ts_lookahead_iterator_current_symbol=r.ts_lookahead_iterator_current_symbol,Module._ts_point_edit=r.ts_point_edit,Module._ts_parser_delete=r.ts_parser_delete,Module._ts_parser_reset=r.ts_parser_reset,Module._ts_parser_set_language=r.ts_parser_set_language,Module._ts_parser_set_included_ranges=r.ts_parser_set_included_ranges,Module._ts_query_new=r.ts_query_new,Module._ts_query_delete=r.ts_query_delete,Module._iswspace=r.iswspace,Module._iswalnum=r.iswalnum,Module._ts_query_pattern_count=r.ts_query_pattern_count,Module._ts_query_capture_count=r.ts_query_capture_count,Module._ts_query_string_count=r.ts_query_string_count,Module._ts_query_capture_name_for_id=r.ts_query_capture_name_for_id,Module._ts_query_capture_quantifier_for_id=r.ts_query_capture_quantifier_for_id,Module._ts_query_string_value_for_id=r.ts_query_string_value_for_id,Module._ts_query_predicates_for_pattern=r.ts_query_predicates_for_pattern,Module._ts_query_start_byte_for_pattern=r.ts_query_start_byte_for_pattern,Module._ts_query_end_byte_for_pattern=r.ts_query_end_byte_for_pattern,Module._ts_query_is_pattern_rooted=r.ts_query_is_pattern_rooted,Module._ts_query_is_pattern_non_local=r.ts_query_is_pattern_non_local,Module._ts_query_is_pattern_guaranteed_at_step=r.ts_query_is_pattern_guaranteed_at_step,Module._ts_query_disable_capture=r.ts_query_disable_capture,Module._ts_query_disable_pattern=r.ts_query_disable_pattern,Module._ts_tree_copy=r.ts_tree_copy,Module._ts_tree_delete=r.ts_tree_delete,Module._ts_init=r.ts_init,Module._ts_parser_new_wasm=r.ts_parser_new_wasm,Module._ts_parser_enable_logger_wasm=r.ts_parser_enable_logger_wasm,Module._ts_parser_parse_wasm=r.ts_parser_parse_wasm,Module._ts_parser_included_ranges_wasm=r.ts_parser_included_ranges_wasm,Module._ts_language_type_is_named_wasm=r.ts_language_type_is_named_wasm,Module._ts_language_type_is_visible_wasm=r.ts_language_type_is_visible_wasm,Module._ts_language_metadata_wasm=r.ts_language_metadata_wasm,Module._ts_language_supertypes_wasm=r.ts_language_supertypes_wasm,Module._ts_language_subtypes_wasm=r.ts_language_subtypes_wasm,Module._ts_tree_root_node_wasm=r.ts_tree_root_node_wasm,Module._ts_tree_root_node_with_offset_wasm=r.ts_tree_root_node_with_offset_wasm,Module._ts_tree_edit_wasm=r.ts_tree_edit_wasm,Module._ts_tree_included_ranges_wasm=r.ts_tree_included_ranges_wasm,Module._ts_tree_get_changed_ranges_wasm=r.ts_tree_get_changed_ranges_wasm,Module._ts_tree_cursor_new_wasm=r.ts_tree_cursor_new_wasm,Module._ts_tree_cursor_copy_wasm=r.ts_tree_cursor_copy_wasm,Module._ts_tree_cursor_delete_wasm=r.ts_tree_cursor_delete_wasm,Module._ts_tree_cursor_reset_wasm=r.ts_tree_cursor_reset_wasm,Module._ts_tree_cursor_reset_to_wasm=r.ts_tree_cursor_reset_to_wasm,Module._ts_tree_cursor_goto_first_child_wasm=r.ts_tree_cursor_goto_first_child_wasm,Module._ts_tree_cursor_goto_last_child_wasm=r.ts_tree_cursor_goto_last_child_wasm,Module._ts_tree_cursor_goto_first_child_for_index_wasm=r.ts_tree_cursor_goto_first_child_for_index_wasm,Module._ts_tree_cursor_goto_first_child_for_position_wasm=r.ts_tree_cursor_goto_first_child_for_position_wasm,Module._ts_tree_cursor_goto_next_sibling_wasm=r.ts_tree_cursor_goto_next_sibling_wasm,Module._ts_tree_cursor_goto_previous_sibling_wasm=r.ts_tree_cursor_goto_previous_sibling_wasm,Module._ts_tree_cursor_goto_descendant_wasm=r.ts_tree_cursor_goto_descendant_wasm,Module._ts_tree_cursor_goto_parent_wasm=r.ts_tree_cursor_goto_parent_wasm,Module._ts_tree_cursor_current_node_type_id_wasm=r.ts_tree_cursor_current_node_type_id_wasm,Module._ts_tree_cursor_current_node_state_id_wasm=r.ts_tree_cursor_current_node_state_id_wasm,Module._ts_tree_cursor_current_node_is_named_wasm=r.ts_tree_cursor_current_node_is_named_wasm,Module._ts_tree_cursor_current_node_is_missing_wasm=r.ts_tree_cursor_current_node_is_missing_wasm,Module._ts_tree_cursor_current_node_id_wasm=r.ts_tree_cursor_current_node_id_wasm,Module._ts_tree_cursor_start_position_wasm=r.ts_tree_cursor_start_position_wasm,Module._ts_tree_cursor_end_position_wasm=r.ts_tree_cursor_end_position_wasm,Module._ts_tree_cursor_start_index_wasm=r.ts_tree_cursor_start_index_wasm,Module._ts_tree_cursor_end_index_wasm=r.ts_tree_cursor_end_index_wasm,Module._ts_tree_cursor_current_field_id_wasm=r.ts_tree_cursor_current_field_id_wasm,Module._ts_tree_cursor_current_depth_wasm=r.ts_tree_cursor_current_depth_wasm,Module._ts_tree_cursor_current_descendant_index_wasm=r.ts_tree_cursor_current_descendant_index_wasm,Module._ts_tree_cursor_current_node_wasm=r.ts_tree_cursor_current_node_wasm,Module._ts_node_symbol_wasm=r.ts_node_symbol_wasm,Module._ts_node_field_name_for_child_wasm=r.ts_node_field_name_for_child_wasm,Module._ts_node_field_name_for_named_child_wasm=r.ts_node_field_name_for_named_child_wasm,Module._ts_node_children_by_field_id_wasm=r.ts_node_children_by_field_id_wasm,Module._ts_node_first_child_for_byte_wasm=r.ts_node_first_child_for_byte_wasm,Module._ts_node_first_named_child_for_byte_wasm=r.ts_node_first_named_child_for_byte_wasm,Module._ts_node_grammar_symbol_wasm=r.ts_node_grammar_symbol_wasm,Module._ts_node_child_count_wasm=r.ts_node_child_count_wasm,Module._ts_node_named_child_count_wasm=r.ts_node_named_child_count_wasm,Module._ts_node_child_wasm=r.ts_node_child_wasm,Module._ts_node_named_child_wasm=r.ts_node_named_child_wasm,Module._ts_node_child_by_field_id_wasm=r.ts_node_child_by_field_id_wasm,Module._ts_node_next_sibling_wasm=r.ts_node_next_sibling_wasm,Module._ts_node_prev_sibling_wasm=r.ts_node_prev_sibling_wasm,Module._ts_node_next_named_sibling_wasm=r.ts_node_next_named_sibling_wasm,Module._ts_node_prev_named_sibling_wasm=r.ts_node_prev_named_sibling_wasm,Module._ts_node_descendant_count_wasm=r.ts_node_descendant_count_wasm,Module._ts_node_parent_wasm=r.ts_node_parent_wasm,Module._ts_node_child_with_descendant_wasm=r.ts_node_child_with_descendant_wasm,Module._ts_node_descendant_for_index_wasm=r.ts_node_descendant_for_index_wasm,Module._ts_node_named_descendant_for_index_wasm=r.ts_node_named_descendant_for_index_wasm,Module._ts_node_descendant_for_position_wasm=r.ts_node_descendant_for_position_wasm,Module._ts_node_named_descendant_for_position_wasm=r.ts_node_named_descendant_for_position_wasm,Module._ts_node_start_point_wasm=r.ts_node_start_point_wasm,Module._ts_node_end_point_wasm=r.ts_node_end_point_wasm,Module._ts_node_start_index_wasm=r.ts_node_start_index_wasm,Module._ts_node_end_index_wasm=r.ts_node_end_index_wasm,Module._ts_node_to_string_wasm=r.ts_node_to_string_wasm,Module._ts_node_children_wasm=r.ts_node_children_wasm,Module._ts_node_named_children_wasm=r.ts_node_named_children_wasm,Module._ts_node_descendants_of_type_wasm=r.ts_node_descendants_of_type_wasm,Module._ts_node_is_named_wasm=r.ts_node_is_named_wasm,Module._ts_node_has_changes_wasm=r.ts_node_has_changes_wasm,Module._ts_node_has_error_wasm=r.ts_node_has_error_wasm,Module._ts_node_is_error_wasm=r.ts_node_is_error_wasm,Module._ts_node_is_missing_wasm=r.ts_node_is_missing_wasm,Module._ts_node_is_extra_wasm=r.ts_node_is_extra_wasm,Module._ts_node_parse_state_wasm=r.ts_node_parse_state_wasm,Module._ts_node_next_parse_state_wasm=r.ts_node_next_parse_state_wasm,Module._ts_query_matches_wasm=r.ts_query_matches_wasm,Module._ts_query_captures_wasm=r.ts_query_captures_wasm,Module._memset=r.memset,Module._memcpy=r.memcpy,Module._memmove=r.memmove,Module._iswalpha=r.iswalpha,Module._iswblank=r.iswblank,Module._iswdigit=r.iswdigit,Module._iswlower=r.iswlower,Module._iswupper=r.iswupper,Module._iswxdigit=r.iswxdigit,Module._memchr=r.memchr,Module._strlen=r.strlen,Module._strcmp=r.strcmp,Module._strncat=r.strncat,Module._strncpy=r.strncpy,Module._towlower=r.towlower,Module._towupper=r.towupper,_setThrew=r.setThrew,__emscripten_stack_restore=r._emscripten_stack_restore,__emscripten_stack_alloc=r._emscripten_stack_alloc,_emscripten_stack_get_current=r.emscripten_stack_get_current,r.__wasm_apply_data_relocs}__name(assignWasmExports,"assignWasmExports");var wasmImports={__heap_base:___heap_base,__indirect_function_table:wasmTable,__memory_base:___memory_base,__stack_high:___stack_high,__stack_low:___stack_low,__stack_pointer:___stack_pointer,__table_base:___table_base,_abort_js:__abort_js,emscripten_resize_heap:_emscripten_resize_heap,fd_close:_fd_close,fd_seek:_fd_seek,fd_write:_fd_write,memory:wasmMemory,tree_sitter_log_callback:_tree_sitter_log_callback,tree_sitter_parse_callback:_tree_sitter_parse_callback,tree_sitter_progress_callback:_tree_sitter_progress_callback,tree_sitter_query_progress_callback:_tree_sitter_query_progress_callback};function callMain(r=[]){var e=resolveGlobalSymbol("main").sym;if(e){r.unshift(thisProgram);var n=r.length,A=stackAlloc((n+1)*4),o=A;r.forEach(a=>{LE_HEAP_STORE_U32((o>>2)*4,stringToUTF8OnStack(a)),o+=4}),LE_HEAP_STORE_U32((o>>2)*4,0);try{var s=e(n,A);return exitJS(s,!0),s}catch(a){return handleException(a)}}}__name(callMain,"callMain");function run(r=arguments_){if(runDependencies>0){dependenciesFulfilled=run;return}if(preRun(),runDependencies>0){dependenciesFulfilled=run;return}function e(){if(Module.calledRun=!0,!ABORT){initRuntime(),readyPromiseResolve?.(Module),Module.onRuntimeInitialized?.();var n=Module.noInitialRun||!1;n||callMain(r),postRun()}}__name(e,"doRun"),Module.setStatus?(Module.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>Module.setStatus(""),1),e()},1)):e()}__name(run,"run");var wasmExports;return wasmExports=await createWasm(),run(),runtimeInitialized?moduleRtn=Module:moduleRtn=new Promise((r,e)=>{readyPromiseResolve=r,readyPromiseReject=e}),moduleRtn}__name(Module2,"Module");var web_tree_sitter_default=Module2,Module3=null;async function initializeBinding(r){return Module3??=await web_tree_sitter_default(r)}__name(initializeBinding,"initializeBinding");function checkModule(){return!!Module3}__name(checkModule,"checkModule");var TRANSFER_BUFFER,LANGUAGE_VERSION,MIN_COMPATIBLE_VERSION,Parser=class{static{__name(this,"Parser")}0=0;1=0;logCallback=null;language=null;static async init(r){setModule(await initializeBinding(r)),TRANSFER_BUFFER=C._ts_init(),LANGUAGE_VERSION=C.getValue(TRANSFER_BUFFER,"i32"),MIN_COMPATIBLE_VERSION=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32")}constructor(){this.initialize()}initialize(){if(!checkModule())throw new Error("cannot construct a Parser before calling `init()`");C._ts_parser_new_wasm(),this[0]=C.getValue(TRANSFER_BUFFER,"i32"),this[1]=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32")}delete(){C._ts_parser_delete(this[0]),C._free(this[1]),this[0]=0,this[1]=0}setLanguage(r){let e;if(!r)e=0,this.language=null;else if(r.constructor===Language){e=r[0];const n=C._ts_language_abi_version(e);if(n<MIN_COMPATIBLE_VERSION||LANGUAGE_VERSION<n)throw new Error(`Incompatible language version ${n}. Compatibility range ${MIN_COMPATIBLE_VERSION} through ${LANGUAGE_VERSION}.`);this.language=r}else throw new Error("Argument must be a Language");return C._ts_parser_set_language(this[0],e),this}parse(r,e,n){if(typeof r=="string")C.currentParseCallback=l=>r.slice(l);else if(typeof r=="function")C.currentParseCallback=r;else throw new Error("Argument must be a string or a function");n?.progressCallback?C.currentProgressCallback=n.progressCallback:C.currentProgressCallback=null,this.logCallback?(C.currentLogCallback=this.logCallback,C._ts_parser_enable_logger_wasm(this[0],1)):(C.currentLogCallback=null,C._ts_parser_enable_logger_wasm(this[0],0));let A=0,o=0;if(n?.includedRanges){A=n.includedRanges.length,o=C._calloc(A,SIZE_OF_RANGE);let l=o;for(let c=0;c<A;c++)marshalRange(l,n.includedRanges[c]),l+=SIZE_OF_RANGE}const s=C._ts_parser_parse_wasm(this[0],this[1],e?e[0]:0,o,A);if(!s)return C.currentParseCallback=null,C.currentLogCallback=null,C.currentProgressCallback=null,null;if(!this.language)throw new Error("Parser must have a language to parse");const a=new Tree(INTERNAL,s,this.language,C.currentParseCallback);return C.currentParseCallback=null,C.currentLogCallback=null,C.currentProgressCallback=null,a}reset(){C._ts_parser_reset(this[0])}getIncludedRanges(){C._ts_parser_included_ranges_wasm(this[0]);const r=C.getValue(TRANSFER_BUFFER,"i32"),e=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),n=new Array(r);if(r>0){let A=e;for(let o=0;o<r;o++)n[o]=unmarshalRange(A),A+=SIZE_OF_RANGE;C._free(e)}return n}setLogger(r){if(!r)this.logCallback=null;else{if(typeof r!="function")throw new Error("Logger callback must be a function");this.logCallback=r}return this}getLogger(){return this.logCallback}},PREDICATE_STEP_TYPE_CAPTURE=1,PREDICATE_STEP_TYPE_STRING=2,QUERY_WORD_REGEX=/[\w-]+/g,isCaptureStep=__name(r=>r.type==="capture","isCaptureStep"),isStringStep=__name(r=>r.type==="string","isStringStep"),QueryErrorKind={Syntax:1,NodeName:2,FieldName:3,CaptureName:4,PatternStructure:5},QueryError$1=class Bt extends Error{constructor(e,n,A,o){super(Bt.formatMessage(e,n)),this.kind=e,this.info=n,this.index=A,this.length=o,this.name="QueryError"}static{__name(this,"QueryError")}static formatMessage(e,n){switch(e){case QueryErrorKind.NodeName:return`Bad node name '${n.word}'`;case QueryErrorKind.FieldName:return`Bad field name '${n.word}'`;case QueryErrorKind.CaptureName:return`Bad capture name @${n.word}`;case QueryErrorKind.PatternStructure:return`Bad pattern structure at offset ${n.suffix}`;case QueryErrorKind.Syntax:return`Bad syntax at offset ${n.suffix}`}}};function parseAnyPredicate(r,e,n,A){if(r.length!==3)throw new Error(`Wrong number of arguments to \`#${n}\` predicate. Expected 2, got ${r.length-1}`);if(!isCaptureStep(r[1]))throw new Error(`First argument of \`#${n}\` predicate must be a capture. Got "${r[1].value}"`);const o=n==="eq?"||n==="any-eq?",s=!n.startsWith("any-");if(isCaptureStep(r[2])){const a=r[1].name,l=r[2].name;A[e].push(c=>{const g=[],h=[];for(const u of c)u.name===a&&g.push(u.node),u.name===l&&h.push(u.node);const d=__name((u,f,I)=>I?u.text===f.text:u.text!==f.text,"compare");return s?g.every(u=>h.some(f=>d(u,f,o))):g.some(u=>h.some(f=>d(u,f,o)))})}else{const a=r[1].name,l=r[2].value,c=__name(h=>h.text===l,"matches"),g=__name(h=>h.text!==l,"doesNotMatch");A[e].push(h=>{const d=[];for(const f of h)f.name===a&&d.push(f.node);const u=o?c:g;return s?d.every(u):d.some(u)})}}__name(parseAnyPredicate,"parseAnyPredicate");function parseMatchPredicate(r,e,n,A){if(r.length!==3)throw new Error(`Wrong number of arguments to \`#${n}\` predicate. Expected 2, got ${r.length-1}.`);if(r[1].type!=="capture")throw new Error(`First argument of \`#${n}\` predicate must be a capture. Got "${r[1].value}".`);if(r[2].type!=="string")throw new Error(`Second argument of \`#${n}\` predicate must be a string. Got @${r[2].name}.`);const o=n==="match?"||n==="any-match?",s=!n.startsWith("any-"),a=r[1].name,l=new RegExp(r[2].value);A[e].push(c=>{const g=[];for(const d of c)d.name===a&&g.push(d.node.text);const h=__name((d,u)=>u?l.test(d):!l.test(d),"test");return g.length===0?!o:s?g.every(d=>h(d,o)):g.some(d=>h(d,o))})}__name(parseMatchPredicate,"parseMatchPredicate");function parseAnyOfPredicate(r,e,n,A){if(r.length<2)throw new Error(`Wrong number of arguments to \`#${n}\` predicate. Expected at least 1. Got ${r.length-1}.`);if(r[1].type!=="capture")throw new Error(`First argument of \`#${n}\` predicate must be a capture. Got "${r[1].value}".`);const o=n==="any-of?",s=r[1].name,a=r.slice(2);if(!a.every(isStringStep))throw new Error(`Arguments to \`#${n}\` predicate must be strings.".`);const l=a.map(c=>c.value);A[e].push(c=>{const g=[];for(const h of c)h.name===s&&g.push(h.node.text);return g.length===0?!o:g.every(h=>l.includes(h))===o})}__name(parseAnyOfPredicate,"parseAnyOfPredicate");function parseIsPredicate(r,e,n,A,o){if(r.length<2||r.length>3)throw new Error(`Wrong number of arguments to \`#${n}\` predicate. Expected 1 or 2. Got ${r.length-1}.`);if(!r.every(isStringStep))throw new Error(`Arguments to \`#${n}\` predicate must be strings.".`);const s=n==="is?"?A:o;s[e]||(s[e]={}),s[e][r[1].value]=r[2]?.value??null}__name(parseIsPredicate,"parseIsPredicate");function parseSetDirective(r,e,n){if(r.length<2||r.length>3)throw new Error(`Wrong number of arguments to \`#set!\` predicate. Expected 1 or 2. Got ${r.length-1}.`);if(!r.every(isStringStep))throw new Error('Arguments to `#set!` predicate must be strings.".');n[e]||(n[e]={}),n[e][r[1].value]=r[2]?.value??null}__name(parseSetDirective,"parseSetDirective");function parsePattern(r,e,n,A,o,s,a,l,c,g,h){if(e===PREDICATE_STEP_TYPE_CAPTURE){const d=A[n];s.push({type:"capture",name:d})}else if(e===PREDICATE_STEP_TYPE_STRING)s.push({type:"string",value:o[n]});else if(s.length>0){if(s[0].type!=="string")throw new Error("Predicates must begin with a literal value");const d=s[0].value;switch(d){case"any-not-eq?":case"not-eq?":case"any-eq?":case"eq?":parseAnyPredicate(s,r,d,a);break;case"any-not-match?":case"not-match?":case"any-match?":case"match?":parseMatchPredicate(s,r,d,a);break;case"not-any-of?":case"any-of?":parseAnyOfPredicate(s,r,d,a);break;case"is?":case"is-not?":parseIsPredicate(s,r,d,g,h);break;case"set!":parseSetDirective(s,r,c);break;default:l[r].push({operator:d,operands:s.slice(1)})}s.length=0}}__name(parsePattern,"parsePattern");var Query=class{static{__name(this,"Query")}0=0;exceededMatchLimit;textPredicates;captureNames;captureQuantifiers;predicates;setProperties;assertedProperties;refutedProperties;matchLimit;constructor(r,e){const n=C.lengthBytesUTF8(e),A=C._malloc(n+1);C.stringToUTF8(e,A,n+1);const o=C._ts_query_new(r[0],A,n,TRANSFER_BUFFER,TRANSFER_BUFFER+SIZE_OF_INT);if(!o){const m=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),E=C.getValue(TRANSFER_BUFFER,"i32"),B=C.UTF8ToString(A,E).length,Q=e.slice(B,B+100).split(`
207
+ `)[0],w=Q.match(QUERY_WORD_REGEX)?.[0]??"";switch(C._free(A),m){case QueryErrorKind.Syntax:throw new QueryError$1(QueryErrorKind.Syntax,{suffix:`${B}: '${Q}'...`},B,0);case QueryErrorKind.NodeName:throw new QueryError$1(m,{word:w},B,w.length);case QueryErrorKind.FieldName:throw new QueryError$1(m,{word:w},B,w.length);case QueryErrorKind.CaptureName:throw new QueryError$1(m,{word:w},B,w.length);case QueryErrorKind.PatternStructure:throw new QueryError$1(m,{suffix:`${B}: '${Q}'...`},B,0)}}const s=C._ts_query_string_count(o),a=C._ts_query_capture_count(o),l=C._ts_query_pattern_count(o),c=new Array(a),g=new Array(l),h=new Array(s);for(let m=0;m<a;m++){const E=C._ts_query_capture_name_for_id(o,m,TRANSFER_BUFFER),B=C.getValue(TRANSFER_BUFFER,"i32");c[m]=C.UTF8ToString(E,B)}for(let m=0;m<l;m++){const E=new Array(a);for(let B=0;B<a;B++){const Q=C._ts_query_capture_quantifier_for_id(o,m,B);E[B]=Q}g[m]=E}for(let m=0;m<s;m++){const E=C._ts_query_string_value_for_id(o,m,TRANSFER_BUFFER),B=C.getValue(TRANSFER_BUFFER,"i32");h[m]=C.UTF8ToString(E,B)}const d=new Array(l),u=new Array(l),f=new Array(l),I=new Array(l),p=new Array(l);for(let m=0;m<l;m++){const E=C._ts_query_predicates_for_pattern(o,m,TRANSFER_BUFFER),B=C.getValue(TRANSFER_BUFFER,"i32");I[m]=[],p[m]=[];const Q=new Array;let w=E;for(let y=0;y<B;y++){const S=C.getValue(w,"i32");w+=SIZE_OF_INT;const D=C.getValue(w,"i32");w+=SIZE_OF_INT,parsePattern(m,S,D,c,h,Q,p,I,d,u,f)}Object.freeze(p[m]),Object.freeze(I[m]),Object.freeze(d[m]),Object.freeze(u[m]),Object.freeze(f[m])}C._free(A),this[0]=o,this.captureNames=c,this.captureQuantifiers=g,this.textPredicates=p,this.predicates=I,this.setProperties=d,this.assertedProperties=u,this.refutedProperties=f,this.exceededMatchLimit=!1}delete(){C._ts_query_delete(this[0]),this[0]=0}matches(r,e={}){const n=e.startPosition??ZERO_POINT,A=e.endPosition??ZERO_POINT,o=e.startIndex??0,s=e.endIndex??0,a=e.startContainingPosition??ZERO_POINT,l=e.endContainingPosition??ZERO_POINT,c=e.startContainingIndex??0,g=e.endContainingIndex??0,h=e.matchLimit??4294967295,d=e.maxStartDepth??4294967295,u=e.progressCallback;if(typeof h!="number")throw new Error("Arguments must be numbers");if(this.matchLimit=h,s!==0&&o>s)throw new Error("`startIndex` cannot be greater than `endIndex`");if(A!==ZERO_POINT&&(n.row>A.row||n.row===A.row&&n.column>A.column))throw new Error("`startPosition` cannot be greater than `endPosition`");if(g!==0&&c>g)throw new Error("`startContainingIndex` cannot be greater than `endContainingIndex`");if(l!==ZERO_POINT&&(a.row>l.row||a.row===l.row&&a.column>l.column))throw new Error("`startContainingPosition` cannot be greater than `endContainingPosition`");u&&(C.currentQueryProgressCallback=u),marshalNode(r),C._ts_query_matches_wasm(this[0],r.tree[0],n.row,n.column,A.row,A.column,o,s,a.row,a.column,l.row,l.column,c,g,h,d);const f=C.getValue(TRANSFER_BUFFER,"i32"),I=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),p=C.getValue(TRANSFER_BUFFER+2*SIZE_OF_INT,"i32"),m=new Array(f);this.exceededMatchLimit=!!p;let E=0,B=I;for(let Q=0;Q<f;Q++){const w=C.getValue(B,"i32");B+=SIZE_OF_INT;const y=C.getValue(B,"i32");B+=SIZE_OF_INT;const S=new Array(y);if(B=unmarshalCaptures(this,r.tree,B,w,S),this.textPredicates[w].every(D=>D(S))){m[E]={patternIndex:w,captures:S};const D=this.setProperties[w];m[E].setProperties=D;const _=this.assertedProperties[w];m[E].assertedProperties=_;const M=this.refutedProperties[w];m[E].refutedProperties=M,E++}}return m.length=E,C._free(I),C.currentQueryProgressCallback=null,m}captures(r,e={}){const n=e.startPosition??ZERO_POINT,A=e.endPosition??ZERO_POINT,o=e.startIndex??0,s=e.endIndex??0,a=e.startContainingPosition??ZERO_POINT,l=e.endContainingPosition??ZERO_POINT,c=e.startContainingIndex??0,g=e.endContainingIndex??0,h=e.matchLimit??4294967295,d=e.maxStartDepth??4294967295,u=e.progressCallback;if(typeof h!="number")throw new Error("Arguments must be numbers");if(this.matchLimit=h,s!==0&&o>s)throw new Error("`startIndex` cannot be greater than `endIndex`");if(A!==ZERO_POINT&&(n.row>A.row||n.row===A.row&&n.column>A.column))throw new Error("`startPosition` cannot be greater than `endPosition`");if(g!==0&&c>g)throw new Error("`startContainingIndex` cannot be greater than `endContainingIndex`");if(l!==ZERO_POINT&&(a.row>l.row||a.row===l.row&&a.column>l.column))throw new Error("`startContainingPosition` cannot be greater than `endContainingPosition`");u&&(C.currentQueryProgressCallback=u),marshalNode(r),C._ts_query_captures_wasm(this[0],r.tree[0],n.row,n.column,A.row,A.column,o,s,a.row,a.column,l.row,l.column,c,g,h,d);const f=C.getValue(TRANSFER_BUFFER,"i32"),I=C.getValue(TRANSFER_BUFFER+SIZE_OF_INT,"i32"),p=C.getValue(TRANSFER_BUFFER+2*SIZE_OF_INT,"i32"),m=new Array;this.exceededMatchLimit=!!p;const E=new Array;let B=I;for(let Q=0;Q<f;Q++){const w=C.getValue(B,"i32");B+=SIZE_OF_INT;const y=C.getValue(B,"i32");B+=SIZE_OF_INT;const S=C.getValue(B,"i32");if(B+=SIZE_OF_INT,E.length=y,B=unmarshalCaptures(this,r.tree,B,w,E),this.textPredicates[w].every(D=>D(E))){const D=E[S],_=this.setProperties[w];D.setProperties=_;const M=this.assertedProperties[w];D.assertedProperties=M;const v=this.refutedProperties[w];D.refutedProperties=v,m.push(D)}}return C._free(I),C.currentQueryProgressCallback=null,m}predicatesForPattern(r){return this.predicates[r]}disableCapture(r){const e=C.lengthBytesUTF8(r),n=C._malloc(e+1);C.stringToUTF8(r,n,e+1),C._ts_query_disable_capture(this[0],n,e),C._free(n)}disablePattern(r){if(r>=this.predicates.length)throw new Error(`Pattern index is ${r} but the pattern count is ${this.predicates.length}`);C._ts_query_disable_pattern(this[0],r)}didExceedMatchLimit(){return this.exceededMatchLimit}startIndexForPattern(r){if(r>=this.predicates.length)throw new Error(`Pattern index is ${r} but the pattern count is ${this.predicates.length}`);return C._ts_query_start_byte_for_pattern(this[0],r)}endIndexForPattern(r){if(r>=this.predicates.length)throw new Error(`Pattern index is ${r} but the pattern count is ${this.predicates.length}`);return C._ts_query_end_byte_for_pattern(this[0],r)}patternCount(){return C._ts_query_pattern_count(this[0])}captureIndexForName(r){return this.captureNames.indexOf(r)}isPatternRooted(r){return C._ts_query_is_pattern_rooted(this[0],r)===1}isPatternNonLocal(r){return C._ts_query_is_pattern_non_local(this[0],r)===1}isPatternGuaranteedAtStep(r){return C._ts_query_is_pattern_guaranteed_at_step(this[0],r)===1}};const _shadows={};class BaseNode{constructor(e){Object.assign(this,e)}get depth(){return this._depth==null&&(this.parent==null?this._depth=0:this._depth=this.parent.depth+1),this._depth}get length(){return this.children?.length||0}*[Symbol.iterator](){yield*this.children||[]}get hasChildren(){return(this.children?.length||0)>0}get hardChildren(){return(this.children||[]).filter(e=>e instanceof Node)}get fields(){return{}}get fieldNames(){return[]}get indent(){return this.tree.codeString.match(new RegExp(`^(?:.*\\r?\\n){${this.startPosition.row}}(\\s*)`))[1]}toJSON(){const e={};return this.children?.length?{type:this.type,typeId:this.typeId,fieldNames:this.fieldNames,startPosition:this.startPosition,startIndex:this.startIndex,endPosition:this.endPosition,indent:this.indent,...e,children:this.children.map(n=>n.toJSON())}:{type:this.type,typeId:this.typeId,fieldNames:this.fieldNames,startPosition:this.startPosition,startIndex:this.startIndex,endPosition:this.endPosition,indent:this.indent,...e,text:this.text,children:[]}}[Symbol.for("Deno.customInspect")](e,n){const A={};let o;try{o=this.text}catch{o=void 0}return o==null?this:e({"":o.length<60?o:o.slice(0,30)+"..."+o.slice(-27),type:this.type,typeId:this.typeId,fieldNames:this.fieldNames,startPosition:this.startPosition,startIndex:this.startIndex,endPosition:this.endPosition,indent:this.indent,...A,hasChildren:this.hasChildren,children:[...this.children||[]]},n)}*iterFlattened(){}flattened(){return[]}replaceInnards(e){const n=this.tree,A=this.tree.codeString,o=_shadows[this.id]||this;o._children=[],o._fields={};const{startPosition:s,endPosition:a,startIndex:l,endIndex:c}=o,g=e.match(/\n/g)?.length||0;let h=s.column;g==0?h=s.column+e.length:h=e.split(`
208
+ `).slice(-1)[0].length,n.edit({startIndex:l,oldEndIndex:c,newEndIndex:l+e.length,startPosition:s,oldEndPosition:a,newEndPosition:{row:s.row+g,column:h}}),this.tree.codeString=A.slice(0,l)+e+A.slice(c)}}class SoftNode extends BaseNode{constructor(e){super(e),this.children=[]}get startIndex(){return this._startIndexOffset+this.getReferencePoint().index}get startPosition(){return{row:this._startRowOffset+this.getReferencePoint().position.row,column:this._startColOffset+this.getReferencePoint().position.column}}get endIndex(){return this._endIndexOffset+this.getReferencePoint().index}get endPosition(){return{row:this._endRowOffset+this.getReferencePoint().position.row,column:this._endColOffset+this.getReferencePoint().position.column}}}class WhitespaceNode extends SoftNode{constructor({parent:e,...n}){super({...n,type:"whitespace",typeId:-1}),this._parent=e}get parent(){return this._parent}}class SoftTextNode extends SoftNode{constructor({parent:e,...n}){super({...n,type:"text",typeId:-2}),this._parent=e}get parent(){return this._parent}}function _getQueryCaptureTargets(r){return r.includes("@")?r.replace(/"(?:\\(?:[^xu0-7]|[0-7]{1,3}|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]+})|[^\"\\])*"/g,"").match(/(?<=@)([a-zA-Z0-9.\-_\$]+)/g):[]}const realRootNodeGetter=Object.getOwnPropertyDescriptor(Tree.prototype,"rootNode").get;Object.defineProperty(Tree.prototype,"rootNode",{get(){const r=realRootNodeGetter.call(this),e={};Object.setPrototypeOf(e,Object.getPrototypeOf(r));const n=Object.assign(Object.getOwnPropertyDescriptors(Node.prototype),Object.getOwnPropertyDescriptors(r)),A={};for(const[o,s]of Object.entries(n))o=="startIndex"||o=="startPosition"||(o=="text"||o=="replaceInnards"?A[o]=s:A[o]={get:()=>{const a=r[o];return typeof a=="function"?(...l)=>a.apply(r,l):a},set:a=>r[o]=a,enumerable:s.enumerable,configurable:s.configurable});return Object.setPrototypeOf(e,Node.prototype),Object.defineProperties(e,A),e.startIndex=0,e.startPosition={row:0,column:0},e.children.length==0&&e.endIndex!=0&&(e._children=_childrenWithSoftNodes(e,[{startIndex:e.endIndex,endIndex:e.endIndex,endPosition:e.endPosition}],r.tree.codeString).slice(0,-1)),_shadows[r.id]=e,e}});const originalDescriptors=Object.getOwnPropertyDescriptors(Node.prototype),originalChildrenGetter=originalDescriptors.children.get,originalEndIndex=originalDescriptors.endIndex.get,originalEndPosition=originalDescriptors.endPosition.get,originalParent=originalDescriptors.parent.get,originalTextGetter=originalDescriptors.text.get,originalEquals=originalDescriptors.equals.value,originalToString=originalDescriptors.toString.value;class HardNode extends BaseNode{constructor(){super(...arguments),this.equals=originalEquals}get parent(){const e=originalParent.call(this);return _shadows[e?.id]||e}get text(){return originalTextGetter.call(_shadows[this.id]||this)}get endIndex(){return this.depth==0?this.tree.codeString.length:originalEndIndex.call(this)}get endPosition(){if(this.depth==0){const e=(this.tree.codeString.match(/\n/g)||[]).length,n=this.tree.codeString.match(new RegExp(`^(?:.*\\r?\\n){${e}}(.*)`))[1].length;return{row:e,column:n}}return originalEndPosition.call(this)}get children(){return this._children||(this._children=originalChildrenGetter.call(this),this.tree._enableSoftNodes&&(this._children=_childrenWithSoftNodes(this,this._children||[],this.tree.codeString))),this._children||[]}set children(e){this._children=e}*traverse(e={_parentNodes:[]}){const{_parentNodes:n}=e,A=[this,...n];if(this.children?.length==0)yield[n,this,"-"];else{yield[n,this,"->"];for(const o of this.children||[])if(o instanceof Node)for(const s of o.traverse({_parentNodes:A}))yield s;else yield[A,o,"-"];yield[n,this,"<-"]}}*iterFlattened({filter:e,includeSelf:n=!1}={}){if(n&&(yield this),typeof e=="function")for(const A of this.children||[]){e(A)&&(yield A);for(const o of A.iterFlattened({filter:e}))yield o}else for(const A of this.children||[]){yield A;for(const o of A.iterFlattened({filter:e}))yield o}}iterFlatten(){throw Error("did you mean iterFlattened instead of iterFlatten?")}flattened({filter:e,includeSelf:n=!1}={}){return[...this.iterFlattened({filter:e,includeSelf:n})]}flatten(){throw Error("did you mean flattened instead of flatten?")}query(e,n){const{matchLimit:A,startPosition:o,endPosition:s,maxResultDepth:a}=n||{},l=a??1/0;let c;try{c=new Query(this.tree.language,e)}catch(u){throw u instanceof QueryError&&(u.message=`${u.message} in the following query: ${JSON.stringify(e)}`),u}const g=c.matches(this,o||this.startPosition,s||this.endPosition,A),h=g.filter(u=>u.captures.every(f=>f.node.depth-this.depth<=l)),d=this.tree.codeString;for(const u of h)for(const f of u.captures)f.node.children=_childrenWithSoftNodes(f.node,f.node.children,d);return g.filter(u=>u.captures.every(f=>f.node.depth-this.depth<=l))}quickQuery(e,n){const A=_getQueryCaptureTargets(e);let o="_";for(;A.includes(o);)o=`${o}_`;return e=`${e} @${o}`,this.query(e,n).map(a=>{const l=Object.fromEntries(a.captures.map(c=>[c.name,c.node]));return A.length==0?l[o]:(l[0]=l[o],delete l[o],l)})}quickQueryFirst(e,n){return this.quickQuery(e,{...n,matchLimit:1})[0]}get fields(){if(!this._fields){this._fields={};let e=-1;for(let n of this.children||[]){if(n.typeId<=0)continue;e++;const A=this.fieldNameForChild(e);A&&(this._fields[A]=n)}}return this._fields}get fieldNames(){return Object.keys(this.fields)}getQueryForSelf(){let e=this,n=[];for(;e;)e.type&&(e.isNamed&&e.type.match(/^([a-zA-Z0-9.\-_\$]+)$/)?n.push(e.type):n.push(JSON.stringify(e.type))),e=e.parent;return"("+n.reverse().join(" (")+")".repeat(n.length)}asLispString(){return originalToString.call(this)}}const descriptors=Object.getOwnPropertyDescriptors(HardNode.prototype);delete descriptors.constructor;Object.defineProperties(Node.prototype,descriptors);Object.setPrototypeOf(Node.prototype,BaseNode.prototype);const _childrenWithSoftNodes=(r,e,n)=>{if(e?.length>0){const A=[],o=[...e];let s=o.shift();const a=(c,g,h)=>{const{index:d,position:u}=g();let f=d,I=u;const p=c.split(/(?<!\s)(?=\s+)/g);let m=I.column,E=I.row;for(const B of p){if(B.length==0)continue;const Q=f+B.length;if(B.match(/^\s/)){const w=E,y=m;E+=(B.match(/\n/g)||[]).length,w!=E?m=B.split(`
209
+ `).slice(-1)[0].length:m+=B.length,A.push(new WhitespaceNode({tree:r.tree,parent:h,getReferencePoint:g,text:B,_startIndexOffset:f-d,_startRowOffset:w-u.row,_startColOffset:y-u.column,_endIndexOffset:Q-d,_endRowOffset:E-u.row,_endColOffset:m-u.column,children:[]}))}else{const w=m;m+=B.length,A.push(new SoftTextNode({tree:r.tree,parent:h,getReferencePoint:g,text:B,_startIndexOffset:f-d,_startRowOffset:E-u.row,_startColOffset:w-u.column,_endIndexOffset:Q-d,_endRowOffset:E-u.row,_endColOffset:m-u.column,children:[]}))}f=Q}};if(r.startIndex!=s.startIndex){const c=n.slice(r.startIndex,s.startIndex),g=r;a(c,()=>({index:g.startIndex,position:g.startPosition}),r)}A.push(s);let l=s;for(const c of o){if(l.endIndex!=c.startIndex){const g=n.slice(l.endIndex,c.startIndex),h=l;a(g,()=>({index:h.endIndex,position:h.endPosition}),r)}A.push(c),l=c}if(l.endIndex!=r.endIndex){const c=n.slice(l.endIndex,r.endIndex),g=l;a(c,()=>({index:g.endIndex,position:g.endPosition}),r)}return A}};class ExtendedParser extends Parser{constructor(){super(...arguments),this.disableSoftNodes=!1}parse(e,n,A){typeof e=="function"&&(console.warn("When calling .parse() the source code was a function instead of a string. The original tree sitter supports giving a function as a means of supporting edits (see: https://github.com/tree-sitter/tree-sitter/discussions/2553 ).\nHowever, this library supports edits directly (use node.replaceInnards(``))\nThe downside of making edits easy is that .parse() doesn't really accept a function argument. I'm just going to evaluate that function to grab the string once at the beginning. Use tree.codeString if you want to get the full string after a .replaceInnards() call."),e=e(0,{row:0,column:0})||"");let o=null;return o=super.parse.apply(this,[s=>(o?.codeString??e).slice(s),n,A]),o.codeString=e,o._enableSoftNodes=!this.disableSoftNodes,o}}let hasBeenLoaded=!1;async function createParser(r,{disableSoftNodes:e=!1,moduleOptions:n}={}){await Parser.init(),hasBeenLoaded||(hasBeenLoaded=!0,await Parser.init(n));const A=new ExtendedParser,o=await Language.load(r);return A.setLanguage(o),A.disableSoftNodes=e,A}const manifest=[{repo:"tree-sitter/tree-sitter",version:"latest",files:["web-tree-sitter.tar.gz/web-tree-sitter.wasm","web-tree-sitter.tar.gz/web-tree-sitter.js"]},{repo:"ggodlewski/tree-sitter-mermaid",version:"latest",files:["tree-sitter-mermaid.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm"}},{repo:"tree-sitter-grammars/tree-sitter-markdown",version:"latest",files:["tree-sitter-markdown.wasm","tree-sitter-markdown_inline.wasm"],queries:{"highlights.scm":"split_parser/tree-sitter-markdown/queries/highlights.scm","injections.scm":"split_parser/tree-sitter-markdown/queries/injections.scm","highlights-inline.scm":"split_parser/tree-sitter-markdown-inline/queries/highlights.scm","injections-inline.scm":"split_parser/tree-sitter-markdown-inline/queries/injections.scm"}},{repo:"tree-sitter-grammars/tree-sitter-diff",version:"latest",files:["tree-sitter-diff.wasm"],queries:{"highlights.scm":"main/queries/highlights.scm"}},{repo:"tree-sitter-grammars/tree-sitter-xml",version:"latest",files:["tree-sitter-xml.wasm","tree-sitter-dtd.wasm"],queries:{"highlights.scm":"master/queries/xml/highlights.scm","highlights-dtd.scm":"master/queries/dtd/highlights.scm"}},{repo:"tree-sitter/tree-sitter-html",version:"latest",files:["tree-sitter-html.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm","injections.scm":"master/queries/injections.scm"}},{repo:"tree-sitter/tree-sitter-css",version:"latest",files:["tree-sitter-css.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm"}},{repo:"tree-sitter-grammars/tree-sitter-toml",version:"latest",files:["tree-sitter-toml.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm"}},{repo:"tree-sitter/tree-sitter-json",version:"latest",files:["tree-sitter-json.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm"}},{repo:"tree-sitter/tree-sitter-regex",version:"latest",files:["tree-sitter-regex.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm"}},{repo:"tree-sitter/tree-sitter-rust",version:"latest",files:["tree-sitter-rust.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm","injections.scm":"master/queries/injections.scm","tags.scm":"master/queries/tags.scm"}},{repo:"tree-sitter/tree-sitter-typescript",version:"latest",files:["tree-sitter-typescript.wasm","tree-sitter-tsx.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm","locals.scm":"master/queries/locals.scm","tags.scm":"master/queries/tags.scm"}},{repo:"tree-sitter/tree-sitter-java",version:"latest",files:["tree-sitter-java.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm","tags.scm":"master/queries/tags.scm"}},{repo:"tree-sitter/tree-sitter-javascript",version:"latest",files:["tree-sitter-javascript.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm","highlights-jsx.scm":"master/queries/highlights-jsx.scm","highlights-params.scm":"master/queries/highlights-params.scm","injections.scm":"master/queries/injections.scm","locals.scm":"master/queries/locals.scm","tags.scm":"master/queries/tags.scm"}},{repo:"tree-sitter-grammars/tree-sitter-yaml",files:["tree-sitter-yaml.wasm"],queries:{"highlights.scm":"master/queries/highlights.scm"}}];function getLangTreeSitter(r){const e=manifest.find(A=>A.repo.endsWith("-"+r));if(!e)throw new Error("No grammar for: "+r);const n=e.repo.split("/")[1];return{lang:r,dir:n,repo:e.repo,files:e.files,queries:e.queries}}function treeToTokens(r,e,n){const A=[];let o=0;const s=g=>{if(g)return n.substring(g.startIndex,g.endIndex)},a=(g,h)=>{const d=A[A.length-1];if(d?.type==="inline"){d.children||(d.children=[]),d.children.push(g),d.content=g.content;return}const u=new Token("inline","",NESTING_SELF_CLOSING);u.info=h,u.level=o,u.children=[g],u.content=u.children.map(f=>f.content||"").join(""),A.push(u)},l=(g,h,d={row:0,column:0})=>{const u=f=>{if(f)return h.substring(f.startIndex,f.endIndex)};for(const f of g){const I=[d.row+f.startPosition?.row,d.row+f.endPosition?.row,d.column+f.startPosition?.column,(+f.endPosition.row==+f.startPosition.row?d.column:0)+f.endPosition?.column];if(f.type.length===1){const p=new Token("text","",NESTING_SELF_CLOSING);p.map=I,p.meta="noEscText",p.content=u(f)||"",a(p,"walkInline");continue}switch(f.type){case"block_continuation":case"emphasis_delimiter":case"code_span_delimiter":break;case"text":{const p=new Token("text","",NESTING_SELF_CLOSING);p.map=I,p.meta="noEscText",p.content=u(f)??"",a(p,"text")}break;case"latex_block":{const p=f.children.find(E=>E?.type==="latex_span_delimiter"),m=f.children.filter(E=>E?.type!=="latex_span_delimiter").map(E=>u(E)).join("");if(u(p)==="$$"){const E=new Token("fence","pre",NESTING_SELF_CLOSING);E.level=o,E.markup="$$",E.meta="noEscText",E.attrSet("lang","latex"),E.content=m.trim(),A.push(E)}else{const E=new Token("math","",NESTING_SELF_CLOSING);E.attrSet("lang","mathml"),E.map=I,E.meta="noEscText",E.content=m,a(E,"latex_block")}}break;case"whitespace":{const p=u(f)||"";if(p===`
210
+ `){const m=new Token("softbreak","br",NESTING_SELF_CLOSING);m.map=I,m.content=p??"",a(m,`whitespace
211
+ `);break}if(p&&p.match(/^\s+$/)){if(p.endsWith(`
212
+ `)){const m=new Token("hardbreak","wbr",NESTING_SELF_CLOSING);m.map=I,m.meta="noEscText",m.content=p??"",a(m,"whitespace hardbreak")}else{const m=new Token("text","br",NESTING_SELF_CLOSING);m.map=I,m.meta="noEscText",m.content=p??"",a(m,"whitespace space")}break}if(p?.trim().length>0){const m=new Token("text","",NESTING_SELF_CLOSING);m.map=I,m.meta="noEscText",m.content=p??"",a(m,"whitespace other");break}}break;case"shortcut_link":{const p="link",E=new Token(p+"_open","a",NESTING_OPENING),B=f.children.find(y=>y?.type==="link_destination");E.attrSet("href",u(B)||"");const Q=f.children.find(y=>y?.type==="link_title");Q&&E.attrSet("title",u(Q)||""),a(E,"shortcut_link"),f.children.filter(y=>y.type==="link_text").forEach(y=>{const S=new Token("text","",NESTING_SELF_CLOSING);S.map=I,S.meta="noEscText",S.content=u(y)??"",a(S,"link_text")});const w=new Token(p+"_close","a",NESTING_CLOSING);a(w,"/shortcut_link")}break;case"inline_link":{const p="link",E=new Token(p+"_open","a",NESTING_OPENING),B=f.children.find(y=>y.type==="link_destination");E.attrSet("href",B?.text||"");const Q=f.children.find(y=>y.type==="link_title");Q&&E.attrSet("title",Q.text||""),a(E,"inline_link"),f.children.filter(y=>y.type==="link_text").forEach(y=>{const S=new Token("text","",NESTING_SELF_CLOSING);S.map=I,S.meta="noEscText",S.content=u(y)??"",a(S,"inline_link_txt")});const w=new Token(p+"_close","a",NESTING_CLOSING);a(w,"/inline_link")}break;case"image":{const p="image",E=new Token(p,"img",NESTING_SELF_CLOSING),B=f.children.find(y=>y.type==="image_description");E.attrSet("alt",B?.text||"");const Q=f.children.find(y=>y.type==="link_destination");E.attrSet("src",Q?.text||"");const w=f.children.find(y=>y.type==="link_title");w&&E.attrSet("title",w.text||""),a(E,"image")}break;case"strong_emphasis":{const p=f.children.find(w=>w.type==="emphasis_delimiter"),m=p?.text==="_"?"underline":"strong",E=p?.text==="_"?"u":"strong",B=new Token(m+"_open",E,NESTING_OPENING);p?.text==="_"&&(B.markup="__"),a(B,"strongem"),l(f.children,h);const Q=new Token(m+"_close",E,NESTING_CLOSING);u(p)==="_"&&(Q.markup="__"),a(Q,"/strongem")}break;case"emphasis":{const p=f.children.find(y=>y.type==="emphasis_delimiter"),m=f.children.filter(y=>y.type!=="emphasis_delimiter"),E=p?.text==="_"?"underline":"em",B=p?.text==="_"?"u":"em",Q=new Token(E+"_open",B,NESTING_OPENING);a(Q,"em"),l(m.filter(y=>!!y),h);const w=new Token(E+"_close",B,NESTING_CLOSING);a(w,"/em")}break;case"strikethrough":{const p="strike",m="strike",E=new Token(p+"_open",m,NESTING_OPENING);a(E,"s"),l(f.children.filter(Q=>!!Q),h);const B=new Token(p+"_close",m,NESTING_CLOSING);a(B,"/s")}break;case"code_span":{const p="code",m="code",E=new Token(p+"_open",m,NESTING_OPENING);a(E,"code"),l(f.children.filter(Q=>!!Q),h);const B=new Token(p+"_close",m,NESTING_CLOSING);a(B,"/code")}break;case"html_tag":{const p="html_block",E=new Token(p,"",NESTING_SELF_CLOSING);E.content=u(f)||"",a(E,"html_block")}break;default:throw console.debug("inline_node",f),new Error(`Unhandled inline node type: ${f.type}`)}}},c=(g,h={tableRowType:"tbody",cellNo:0,cellAlign:[]})=>{if(g){if(g.type==="inline"){const d=s(g);if(!d)throw new Error("!inlineText");if(g.children.length>0)l(g.children,n,g.startPosition);else{const u=e.parse(d);if(!u)throw new Error("!inlineTree");l(u?.rootNode.children,d,g.startPosition)}return}if(!g.children||g.children.length===0){if(g.type==="text"||g.type.length===1){const d=new Token("text","",NESTING_SELF_CLOSING);d.map=[+g.startPosition?.row,+g.endPosition?.row,+g.startPosition?.column,+g.endPosition?.column],d.meta="noEscText",d.content=s(g)??"",a(d,"txt2");return}if(g.type==="whitespace"){if(o===0||(s(g)||"").match(/^\n+$/))return;const d=s(g)||"";if(d&&d.match(/^\s+$/)){const u=new Token("text","br",NESTING_SELF_CLOSING);u.map=[+g.startPosition?.row,+g.endPosition?.row,+g.startPosition?.column,+g.endPosition?.column],u.meta="noEscText",u.content=s(g)??"",a(u,"txt3");return}if(d.trim().length>0){const u=new Token("text","",NESTING_SELF_CLOSING);u.map=[+g.startPosition?.row,+g.endPosition?.row,+g.startPosition?.column,+g.endPosition?.column],u.meta="noEscText",u.content=d??"",a(u,"txt4");return}}}switch(g.type){case"block_continuation":break;case"document":case"section":g.children.filter(d=>!!d).forEach(d=>c(d,h));break;case"thematic_break":{const d=new Token("hr","hr",NESTING_SELF_CLOSING);d.level=o,d.map=[+g.startPosition?.row,+g.endPosition?.row,+g.startPosition?.column,+g.endPosition?.column],d.markup=s(g)||"",d.attrSet("margin_before","1"),d.attrSet("margin_after","1"),A.push(d)}break;case"setext_heading":{const d="heading",u=g.children.filter(E=>!!E).find(E=>E.type.startsWith("setext_")&&E.type.endsWith("_underline")),f=u?.type.substring(7,9)||"h1",I=new Token(d+"_open",f,NESTING_OPENING);I.level=o,I.markup=s(u)||"#",I.attrSet("margin_before","1"),A.push(I);const p=g.children.filter(E=>!!E).filter(E=>!E.type.startsWith("setext_"));o++,p.forEach(E=>c(E,h)),o--;const m=new Token(d+"_close",f,NESTING_CLOSING);m.level=o,m.markup=s(u)||"",m.attrSet("margin_after","1"),A.push(m)}break;case"atx_heading":{const d="heading",u=g.children.filter(E=>!!E).find(E=>E.type.startsWith("atx_")&&E.type.endsWith("_marker")),f=u?.type.substring(4,6)||"h1",I=new Token(d+"_open",f,NESTING_OPENING);I.level=o,I.markup=s(u)||"#",I.attrSet("margin_before","1"),A.push(I);const p=[...g.children.filter(E=>!!E)];p.length>0&&p[0].type.endsWith("_marker")&&p.splice(0,1),p.length>0&&p[0].type==="whitespace"&&p.splice(0,1),p.length>0&&p[p.length-1].type==="whitespace"&&p.splice(p.length-1,1),o++,p.forEach(E=>c(E,h)),o--;const m=new Token(d+"_close",f,NESTING_CLOSING);m.level=o,m.attrSet("margin_after","1"),A.push(m)}break;case"minus_metadata":{const d="frontmatter",u="frontmatter",f=new Token(d,u,NESTING_SELF_CLOSING);f.level=o,f.content=s(g)||"",A.push(f)}break;case"fenced_code_block":{const d="fence",f=g.children.filter(E=>!!E).find(E=>E.type==="info_string"),I=new Token(d,"pre",NESTING_SELF_CLOSING);I.meta="noEscText",I.level=o,I.markup="```",f&&I.attrSet("lang",s(f)||"");const m=[...g.children.filter(E=>!!E).filter(E=>E?.type==="code_fence_content")].map(E=>s(E)||"").join("");I.content=m,I.attrSet("margin_before","1"),I.attrSet("margin_after","1"),A.push(I)}break;case"block_quote":{const d="blockquote",u="blockquote",f=new Token(d+"_open",u,NESTING_OPENING);f.level=o,f.attrSet("margin_before","1"),A.push(f),o++,g.children?.filter(p=>!["block_quote_marker"].includes(p.type)).forEach(p=>c(p,h)),o--;const I=new Token(d+"_close",u,NESTING_CLOSING);I.level=o,I.attrSet("margin_after","1"),A.push(I)}break;case"indented_code_block":{const d="code_block",u="code_block",f=new Token(d,u,NESTING_SELF_CLOSING);f.level=o;let I=80;"indent"in g&&(I=g.indent.length);const p=g.text.split(`
213
+ `);for(const E of p){if(E.trim().length===0)continue;const B=E.match(/^ +/);B?I>B[0].length&&(I=B[0].length):I=0}const m=p.map(E=>E.substring(I)).join(`
214
+ `);f.attrSet("indent",""+I),f.content=m,f.attrSet("margin_before","1"),f.attrSet("margin_after","1"),A.push(f)}break;case"paragraph":{const d="paragraph",f=new Token(d+"_open","p",NESTING_OPENING);f.level=o,f.attrSet("margin_before","1"),A.push(f),o++,g.children?.forEach(p=>c(p,h)),o--;const I=new Token(d+"_close","p",NESTING_CLOSING);I.level=o,I.attrSet("margin_after","1"),A.push(I)}break;case"pipe_table_cell":{const d=h.tableRowType==="thead"?"th":"td",u=h.tableRowType==="thead"?"th":"td",f=new Token(d+"_open",u,NESTING_OPENING);f.attrSet("align",h.cellAlign[h.cellNo]||"left"),f.level=o,A.push(f),o++;{const p="paragraph",E=new Token(p+"_open","p",NESTING_OPENING);E.level=o,A.push(E);const B=[...g.children];for(;B.length>0&&B[B.length-1].type==="whitespace";)B.splice(B.length-1,1);if(B.length>0)B.forEach(w=>c(w,h));else{const w=[g.startPosition?.row,g.endPosition?.row,g.startPosition?.column,g.endPosition?.column],y=new Token("text","",NESTING_SELF_CLOSING);y.map=w,y.meta="noEscText",y.content=g.text?.replace(/\s+$/,"")??"",a(y,"txt5")}const Q=new Token(p+"_close","p",NESTING_CLOSING);Q.level=o,A.push(Q)}o--;const I=new Token(d+"_close",u,NESTING_CLOSING);I.level=o,A.push(I),h.cellNo++}break;case"pipe_table_header":case"pipe_table_row":{const f=new Token("tr_open","tr",NESTING_OPENING);f.level=o,A.push(f),o++,g.children.filter(p=>!!p).filter(p=>p.type==="pipe_table_cell").forEach(p=>c(p,h)),o--;const I=new Token("tr_close","tr",NESTING_CLOSING);I.level=o,A.push(I)}break;case"pipe_table":{const d="table",u="table",f=new Token(d+"_open",u,NESTING_OPENING);f.level=o,f.attrSet("margin_before","1"),A.push(f),o++;const I=g.children.filter(Q=>!!Q).filter(Q=>Q.type==="pipe_table_delimiter_row"),p=[];if(I.length>0){const w=I[0].children.filter(y=>!!y).filter(y=>y.type==="pipe_table_delimiter_cell");for(let y=0;y<w.length;y++)w[y].children.filter(D=>!!D).find(D=>D.type==="pipe_table_align_right")?p.push("right"):p.push("left")}const m=g.children.filter(Q=>!!Q).filter(Q=>Q.type==="pipe_table_header");if(m.length>0){const Q="thead",w="thead",y=new Token(Q+"_open",w,NESTING_OPENING);y.level=o,A.push(y),o++,m.forEach(D=>c(D,{...h,tableRowType:"thead",cellNo:0,cellAlign:p})),o--;const S=new Token(Q+"_close",w,NESTING_CLOSING);S.level=o,A.push(S)}const E=g.children?.filter(Q=>Q?.type==="pipe_table_row");E.length>0&&(o++,E.filter(Q=>!!Q).forEach(Q=>c(Q,{...h,tableRowType:"tbody",cellAlign:p})),o--),o--;const B=new Token(d+"_close",u,NESTING_CLOSING);B.level=o,B.attrSet("margin_after","1"),A.push(B)}break;case"list":{let d="bullet_list",u="ul",f="";const I=g.children.filter(E=>!!E).find(E=>E.type==="list_item");if(I){const E=I.children.filter(Q=>!!Q).find(Q=>Q.type.startsWith("task_list_marker")),B=I.children.filter(Q=>!!Q).find(Q=>Q.type.startsWith("list_marker_dot"));E?(d="task_list",u="ul"):B&&(d="ordered_list",u="ol",f=(s(B)||"").trim().replace(".",""))}const p=new Token(d+"_open",u,NESTING_OPENING);p.level=o,p.markup=u==="ol"?".":"*",p.attrSet("symbol",u==="ol"?"1":"*"),f&&p.attrSet("start",f),p.attrSet("margin_before","1"),A.push(p),o++,g.children.filter(E=>!!E).forEach(E=>c(E,h)),o--;const m=new Token(d+"_close",u,NESTING_CLOSING);m.level=o,m.attrSet("margin_after","1"),A.push(m)}break;case"list_item":{const d=g.children.filter(B=>!!B).find(B=>B.type.startsWith("task_list_marker_")),u=g.children.filter(B=>!!B).find(B=>B.type.startsWith("list_marker_"));if(!u)break;let f=d?"task_item":"list_item";const I="li",p=new Token(f+"_open",I,NESTING_OPENING);p.level=o,p.markup=(s(u)||"").trim(),u.type==="list_marker_dot"&&(p.info="",p.markup=""),d&&(d.type,p.attrSet("checked",d.type==="task_list_marker_checked"?"checked":"")),A.push(p),o++,c(g.children.filter(B=>!!B).find(B=>B.type==="paragraph"),h);const m=g.children.filter(B=>!!B).filter(B=>B.type==="list");for(const B of m)c(B,h);o--;const E=new Token(f+"_close",I,NESTING_CLOSING);E.level=o,A.push(E)}break;case"html_block":{const d=new Token("html_block","",NESTING_SELF_CLOSING);d.level=o,d.content=s(g)??"",d.attrSet("margin_before","1"),d.attrSet("margin_after","1"),A.push(d)}break;case"text":{const d=new Token("text","",NESTING_SELF_CLOSING);d.level=o,d.content=s(g)??"",A.push(d)}break;default:throw console.warn(`Unhandled node type: ${g.type}, children: ${g.children.map(d=>d.type).join(", ")}`,{...g,children:void 0,_children:void 0,tree:void 0}),new Error(`Unhandled node type: ${g.type}`)}}};return c(r.rootNode),A}async function sitterTokenizer(r){const e=getLangTreeSitter("markdown"),n=e.files.find(c=>c.indexOf("_inline")===-1),A=e.files.find(c=>c.indexOf("_inline")>-1),o=await r(e.dir+"/"+n),s=await r(e.dir+"/"+A),a=await createParser(o),l=await createParser(s);return{parse:c=>{const g=a.parse(c);if(!g)throw new Error("Tree is null");return treeToTokens(g,l,c)}}}function listIsTight(r,e){for(;++e<r.length;)if(r[e].type!="list_item_open")return r[e].hidden;return!1}async function mdToPmConverter(r,e,n){const A=new TextDecoder().decode(r);return mdToPmConverterText(A,e,n)}async function mdToPmConverterText(r,e,n){if(!e.assetLoad)throw new Error("No config.assetLoad");const A=await sitterTokenizer(e.assetLoad);return new MarkdownParser(n,A,{frontmatter:{node:"frontmatter"},blockquote:{block:"blockquote"},paragraph:{block:"paragraph"},task_item:{block:"task_item"},task_list:{block:"task_list"},list_item:{block:"list_item"},bullet_list:{block:"bullet_list",getAttrs:(s,a,l)=>({tight:listIsTight(a,l)})},ordered_list:{block:"ordered_list",getAttrs:(s,a,l)=>({start:+s.attrGet("start")||1,tight:listIsTight(a,l)})},dl:{block:"dl"},dt:{block:"dt"},dd:{block:"dd"},heading:{block:"heading",getAttrs:s=>({level:+s.tag.slice(1)})},code_block:{block:"code_block",getAttrs:s=>({lang:s.attrGet("lang")||void 0}),noCloseToken:!0},fence:{block:"code_block",getAttrs:s=>({lang:s.attrGet("lang")||void 0}),noCloseToken:!0},hr:{node:"hr"},image:{node:"image",getAttrs:s=>{const a=s.children?s.children[0]:void 0;return{src:s.attrGet("src"),title:s.attrGet("title")||null,alt:a?.content||null}}},hardbreak:{node:"br"},em:{mark:"em"},underline:{mark:"underline"},strong:{mark:"strong"},strike:{mark:"strike"},link:{mark:"link",getAttrs:s=>({href:s.attrGet("href"),title:s.attrGet("title")||null})},code:{mark:"code"},html_block:{custom:(s,a,l,c)=>{const h=DOMParser$1.fromSchema(n).parse(elementFromString(a.content));s.importNodes(h.children)}},footnote_ref:{block:"code_block"},table:{block:"table"},tr:{block:"table_row"},td:{block:"table_cell"},th:{block:"table_header"},thead:{ignore:!0}}).parse(r)}const addEmptyLines=(r,e)=>{let n=r.tr;const A=r.schema.nodes.br,o=r.schema.nodes.softbreak;function s(a,l=0,c=0){a.forEach((g,h,d)=>{if(g.type.name==="image"&&d>1){const u=a.child(d-1);if(u.type===A)n=n.setNodeMarkup(l+h-u.nodeSize,o);else{const f=o.createAndFill();f&&(n=n.insert(n.mapping.map(l),f))}}s(g,l+h+1,c+1)})}return s(r.doc),e&&e(n),n.docChanged},fixIdLinks=(r,e)=>{let n=r.tr;const A=r.schema.marks.link;return r.doc.descendants((o,s)=>{o.marks.forEach(a=>{if(a.type===A&&a.attrs.href.startsWith("#")){const c=(o.text||o.textBetween(0,o.content.size)).toLowerCase().replace(/[^\w]+/g," ").trim().replaceAll(" ","-");c&&(n=n.removeMark(s,s+o.nodeSize,A).addMark(s,s+o.nodeSize,A.create({...a.attrs,href:"#"+c})))}})}),e&&e(n),n.docChanged},fixShortCodes=(r,e)=>{const n=r.doc;let A=r.tr;const o=r.schema.nodes.br,s=r.schema.nodes.softbreak;if(!o)throw new Error("No hardbreak type in schema");if(!s)throw new Error("No softbreak type in schema");function a(l,c=0,g=0){l.forEach((h,d,u)=>{if(h.type.name==="shortcode_inline"){if(u>1){const f=l.child(u-1);f.type===o&&(A=A.setNodeMarkup(c+d-f.nodeSize,s))}u<l.childCount-1&&l.child(u+1).type===o&&(A=A.setNodeMarkup(c+d+h.nodeSize,s))}a(h,c+d+1,g+1)})}return a(n),e&&e(A),A.steps.length>0},removeEmptyTags=(r,e)=>{let n=r.tr;return r.doc.descendants((A,o)=>{["paragraph","heading"].includes(A.type.name)&&A.childCount===0&&(n=n.deleteRange(n.mapping.map(o),n.mapping.map(o+A.nodeSize)))}),e&&e(n),n.docChanged},removeSuggest=(r,e)=>{const n={},A=r.tr,o=r.doc,s="comment";o.descendants((a,l)=>{if(a.type.name===s&&a.attrs.id){const c=a.attrs.id;n[c]||(n[c]=[]),a.attrs.nesting===NESTING_OPENING$1&&(n[c][0]={node:a,pos:l}),a.attrs.nesting===NESTING_CLOSING$1&&(n[c][1]={node:a,pos:l})}});for(const a in n){const l=n[a][0],c=n[a][1];if(l&&c){const g=l.pos,h=c.pos+c.node.nodeSize;A.replace(A.mapping.map(g),A.mapping.map(h))}}return e&&e(A),A.docChanged},rewriteUrls=r=>async(e,n)=>{if(!r)return!1;const A=e.tr,o=e.schema.marks.link,s=e.schema.nodes.image,a=[],l=[];e.doc.descendants((c,g)=>{c.marks.forEach(h=>{h.type===o&&a.push([h,g,g+c.nodeSize])}),c.type===s&&l.push([c,g])});for(const[c,g,h]of a){const d=c.attrs.href,u={},f=await r(d,{type:"A",dest:"md",setMeta:(I,p)=>{u[I]=p}});if(f!==d||u.mdTemplate){const I=u.mdTemplate;A.removeMark(A.mapping.map(g),A.mapping.map(h),c);const p=e.schema.mark("link",{...c.attrs,href:f,origUrl:d,mdTemplate:I});A.addMark(A.mapping.map(g),A.mapping.map(h),p)}}for(const[c,g]of l){const h=c.attrs.src,d={},u=await r(h,{type:"IMG",dest:"md",setMeta:(f,I)=>{d[f]=I}});if(u!==h||d.mdTemplate){const f=d.mdTemplate;A.setNodeMarkup(A.mapping.map(g),null,{...c.attrs,src:u,origUrl:h,mdTemplate:f})}}return n&&n(A),A.docChanged},trimLines=(r,e)=>{const n=r.doc,A=r.schema,o=r.tr,s=r.schema.nodes.br,a=r.schema.nodes.softbreak,l=r.schema.nodes.paragraph;function c(g,h,d=0,u=0){let f=0;function I(m,E){let B=d+E;for(let Q=m-1;Q>=0;Q--){const w=g[Q];if(w?.type.name!=="text")break;const y=w.text||"",S=y.replace(/[ \t\u00A0]+$/,"");if(S!==y){const D=B-w.nodeSize;S.length>0?o.replaceRangeWith(o.mapping.map(D),o.mapping.map(B),A.text(S)):o.replace(o.mapping.map(D),o.mapping.map(B))}else break;B-=w.nodeSize;break}}let p=!1;for(let m=0;m<g.length;m++){const E=g[m];if(E.isText){let B=E.text||"";if(B.match(/^([ \t\u00A0]+)/)&&!p&&l!==h.type){B=B.replace(/^[ \t\u00A0]+/,"");const Q=d+f,w=Q+E.nodeSize;B?o.replaceRangeWith(o.mapping.map(Q),o.mapping.map(w),A.text(B)):o.replace(o.mapping.map(Q),o.mapping.map(w))}B&&(p=!0)}s===E.type&&(I(m,f),m+1<g.length&&(g[m+1].type===s||g[m+1].type===a)&&o.setNodeMarkup(o.mapping.map(d+f),a)),c(E.children,E,d+f+1,u+1),f+=E.nodeSize}I(g.length,f)}return c(n.children,n),e&&e(o),o.docChanged},insertToc=(r,e)=>{const n=r.doc;let A=r.tr;const o=r.schema.nodes.br,s=r.schema.nodes.softbreak;if(!o)throw new Error("No hardbreak type in schema");if(!s)throw new Error("No softbreak type in schema");return n.forEach((a,l,c)=>{if(a.type.name==="bullet_list"&&a.attrs.toc){const g=a.copy(Fragment.from(a.content));A.insert(0,g)}}),e&&e(A),A.steps.length>0},addEnterAfterImage=(r,e)=>{const n=r.tr,A=r.schema.nodes.image,o=r.schema.nodes.br,s=r.schema.nodes.softbreak;function a(l,c=0,g=0){l.forEach((h,d,u)=>{if(h.type!==A)return;const f=l.nodeAt(u+1);if(f?.type===o&&f?.type===s)return;const I=c+d+h.nodeSize;n.insert(n.mapping.map(I),Fragment.from([r.schema.node("softbreak"),r.schema.node("softbreak")])),a(h,c+d+1,g+1)})}return a(r.doc),e&&e(n),n.docChanged},fixParaEnding=(r,e)=>{const n=r.doc,A=r.tr,o=r.schema.nodes.br,s=r.schema.nodes.paragraph;function a(l,c,g=0,h=0){if(c.type===s){let u=c.content.size;for(let f=l.length-1;f>=0;f--){const I=l[f];if(I.type!==o)break;u-=I.nodeSize;const p=g+u,m=p+I.nodeSize;A.replace(A.mapping.map(p),A.mapping.map(m))}return}let d=0;for(let u=0;u<l.length;u++){const f=l[u];a(f.children,f,g+d+1,h+1),d+=f.nodeSize}}return a(n.children,n),e&&e(A),A.docChanged};function getDefaultsPreProcessFilters({urlRewriter:r}){return[insertToc,fixShortCodes,removeSuggest,removeEmptyTags,fixIdLinks,fixParaEnding,trimLines,addEnterAfterImage,addEmptyLines,rewriteUrls(r)]}class ExtensionMarkdown extends Extension{constructor(e={}){super(e),this.config=e,this.name="markdown"}getConverters(e,n){return{"text/x-markdown":{fromDoc:A=>pmToMdConverter(A,{assetLoad:this.editor.config.assetLoad,...this.config,urlRewriter:this.urlToRewriter},n,e),toDoc:A=>mdToPmConverter(A,{assetLoad:this.editor.config.assetLoad,...this.config,urlRewriter:this.urlFromRewriter},n)}}}toMarkdown(e){return extPmToMdConverter(e,{sourceMap:!0},this.editor.schema,this.editor)}async fromMarkdown(e){const A=(await mdToPmConverterText(e,{assetLoad:this.editor.config.assetLoad,...this.config},this.editor.schema)).content;if(A.content.length===1){const o=A.content[0];if(o.type.name==="paragraph")return new Slice(o.content,0,0)}return new Slice(A,0,0)}created(){this.editor.hooks["pm2md.pre"]||(this.editor.hooks["pm2md.pre"]=getDefaultsPreProcessFilters({urlRewriter:this.config.urlRewriter}))}}const SVG="http://www.w3.org/2000/svg",XLINK="http://www.w3.org/1999/xlink",prefix="kb-icon";function hashPath(r){const e=Array.isArray(r)?r.map(A=>typeof A=="string"?A:A.d+(A.fill||"")).join(""):r;let n=0;for(let A=0;A<e.length;A++)n=(n<<5)-n+e.charCodeAt(A)|0;return n.toString(16)}function getIcon(r,e){let n=(r.nodeType==9?r:r.ownerDocument)||document,A=n.createElement("div");if(A.className=prefix,e.path){let{path:o,width:s,height:a}=e,l="pm-icon-"+hashPath(o);n.getElementById(l)||buildSVG(r,l,e);let c=A.appendChild(n.createElementNS(SVG,"svg"));c.style.width=s/a+"em",c.appendChild(n.createElementNS(SVG,"use")).setAttributeNS(XLINK,"href",/([^#]*)/.exec(n.location.toString())[1]+"#"+l)}else if(e.dom)A.appendChild(e.dom.cloneNode(!0));else{let{text:o,css:s}=e;A.appendChild(n.createElement("span")).textContent=o||"",s&&(A.firstChild.style.cssText=s)}return A}function buildSVG(r,e,n){let[A,o]=r.nodeType==9?[r,r.body]:[r.ownerDocument||document,r],s=A.getElementById(prefix+"-collection");s||(s=A.createElementNS(SVG,"svg"),s.id=prefix+"-collection",s.style.display="none",o.insertBefore(s,o.firstChild));let a=A.createElementNS(SVG,"symbol");a.id=e,a.setAttribute("viewBox","0 0 "+n.width+" "+n.height);const l=Array.isArray(n.path)?n.path:[n.path];for(const c of l){let g=a.appendChild(A.createElementNS(SVG,"path"));typeof c=="string"?g.setAttribute("d",c):(g.setAttribute("d",c.d),c.fill&&g.setAttribute("fill",c.fill))}s.appendChild(a)}const icons={selectParentNode:{width:24,height:24,path:"M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2z"},undo:{width:24,height:24,path:"M12.5 8c-2.65 0-5.05 1-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"},redo:{width:24,height:24,path:"M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z"},strong:{width:24,height:24,path:"M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z"},em:{width:24,height:24,path:"M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z"},underline:{width:24,height:24,path:"M12 17c3.31 0 6-2.69 6-6V3h-2.5v8c0 1.93-1.57 3.5-3.5 3.5S8.5 12.93 8.5 11V3H6v8c0 3.31 2.69 6 6 6zm-7 2v2h14v-2H5z"},code:{width:24,height:24,path:"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"},link:{width:24,height:24,path:"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"},bulletList:{width:24,height:24,path:"M4 10.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-6c-.83 0-1.5.67-1.5 1.5S3.17 7.5 4 7.5 5.5 6.83 5.5 6 4.83 4.5 4 4.5zm0 12c-.83 0-1.5.68-1.5 1.5s.68 1.5 1.5 1.5 1.5-.68 1.5-1.5-.67-1.5-1.5-1.5zM7 19h14v-2H7v2zm0-6h14v-2H7v2zm0-8v2h14V5H7z"},orderedList:{width:24,height:24,path:"M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z"},taskList:{width:24,height:24,path:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"},blockquote:{width:24,height:24,path:"M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z"},type:{width:24,height:24,path:"M5 4v3h5.5v12h3V7H19V4H5z"},table:{width:24,height:24,path:"M3 3v18h18V3H3zm8 16H5v-6h6v6zm0-8H5V5h6v6zm8 8h-6v-6h6v6zm0-8h-6V5h6v6z"},image:{width:24,height:24,path:"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"},horizontalRule:{width:24,height:24,path:"M4 11h16v2H4z"},heading:{width:24,height:24,path:"M6 4v16h2v-7h8v7h2V4h-2v7H8V4H6z"},strike:{width:24,height:24,path:"M10 19h4v-3h-4v3zM5 4v3h5v3h4V7h5V4H5zM3 14h18v-2H3v2z"},highlight:{width:24,height:24,path:["M17.75 7L14 3.25l-10 10V17h3.75l10-10zm2.96-2.96a.996.996 0 0 0 0-1.41L18.37.29a.996.996 0 0 0-1.41 0L15 2.25 18.75 6l1.96-1.96z",{d:"M2 20h20v4H2z",fill:"#FFEB3B"}]},outdent:{width:24,height:24,path:"M3 21h18v-2H3v2zM7 8v8l-4-4 4-4zm4 9h10v-2H11v2zM3 3v2h18V3H3zm8 6h10V7H11v2zm0 4h10v-2H11v2z"},superscript:{width:24,height:24,path:"M22 7h-2v1h3v1h-4V7c0-.55.45-1 1-1h2V5h-3V4h3c.55 0 1 .45 1 1v1c0 .55-.45 1-1 1zM5.88 20h2.66l3.4-5.42h.12l3.4 5.42h2.66l-4.65-7.27L17.81 6h-2.68l-3.07 4.99h-.12L8.87 6H6.19l4.32 6.73L5.88 20z"},subscript:{width:24,height:24,path:"M22 18h-2v1h3v1h-4v-2c0-.55.45-1 1-1h2v-1h-3v-1h3c.55 0 1 .45 1 1v1c0 .55-.45 1-1 1zM5.88 18h2.66l3.4-5.42h.12l3.4 5.42h2.66l-4.65-7.27L17.81 4h-2.68l-3.07 4.99h-.12L8.87 4H6.19l4.32 6.73L5.88 18z"},alignLeft:{width:24,height:24,path:"M15 15H3v2h12v-2zm0-8H3v2h12V7zM3 13h18v-2H3v2zm0 8h18v-2H3v2zM3 3v2h18V3H3z"},alignCenter:{width:24,height:24,path:"M7 15v2h10v-2H7zm-4 6h18v-2H3v2zm0-8h18v-2H3v2zm4-6v2h10V7H7zM3 3v2h18V3H3z"},alignRight:{width:24,height:24,path:"M3 21h18v-2H3v2zm6-4h12v-2H9v2zm-6-4h18v-2H3v2zm6-4h12V7H9v2zM3 3v2h18V3H3z"},alignJustify:{width:24,height:24,path:"M3 21h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18V7H3v2zm0-6v2h18V3H3z"},folderOpen:{width:24,height:24,path:"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z"}};class MenuItem{constructor(e){this.spec=e,this.CSS_PREFIX="kb-menu__button"}render(e){let n=this.spec,A=n.render?n.render(e):null;if(!A){if(A=document.createElement("button"),A.setAttribute("type","button"),A.classList.add(this.CSS_PREFIX),n.icon){const s=getIcon(e.root,n.icon);A.appendChild(s),A.classList.add(this.CSS_PREFIX+"--icon-only")}if(n.label){const s=document.createElement("span");s.appendChild(document.createTextNode(translate(e,n.label))),A.appendChild(s),n.icon&&A.classList.remove(this.CSS_PREFIX+"--icon-only")}if(!n.icon&&!n.label)throw new RangeError("MenuItem without icon or label property")}if(n.title){const s=typeof n.title=="function"?n.title(e.state):n.title;A.setAttribute("title",translate(e,s)),A.setAttribute("aria-label",translate(e,s))}return n.class&&A.classList.add(n.class),n.css&&(A.style.cssText+=n.css),A.addEventListener("mousedown",s=>{s.preventDefault(),A.classList.contains(this.CSS_PREFIX+"--disabled")||n.run(e.state,e.dispatch)}),{dom:A,update:s=>{if(n.select){let l=n.select(s);if(A.style.display=l?"":"none",!l)return!1}let a=!0;if(n.enable&&(a=n.enable(s)||!1,setClass(A,this.CSS_PREFIX+"--disabled",!a),A.setAttribute("aria-disabled",(!a).toString())),n.active){let l=a&&n.active(s)||!1;setClass(A,this.CSS_PREFIX+"--active",l),A.setAttribute("aria-pressed",l.toString())}return!0}}}}function translate(r,e){return r._props.translate?r._props.translate(e):e}let lastMenuEvent={time:0,node:null};function markMenuEvent(r){lastMenuEvent.time=Date.now(),lastMenuEvent.node=r.target}function isMenuEvent(r){return Date.now()-100<lastMenuEvent.time&&lastMenuEvent.node&&r.contains(lastMenuEvent.node)}class Dropdown{constructor(e,n={}){this.options=n,this.CSS_PREFIX="kb-dropdown",this.options=n||{},this.content=Array.isArray(e)?e:[e]}render(e){let n=renderDropdownItems(this.content,e),A=e.dom.ownerDocument.defaultView,o=document.createElement("button");if(o.setAttribute("type","button"),o.classList.add(this.CSS_PREFIX+"__label"),this.options.class&&o.classList.add(this.options.class),this.options.css&&o.setAttribute("style",this.options.css),this.options.icon){const u=getIcon(e.root,this.options.icon);o.appendChild(u)}const s=translate(e,this.options.label||"");if(s){const u=document.createElement("span");u.classList.add(this.CSS_PREFIX+"__label-text"),u.textContent=s,o.appendChild(u)}const a=this.options.title?translate(e,this.options.title):s;a&&(o.setAttribute("title",a),o.setAttribute("aria-label",a)),o.setAttribute("aria-haspopup","true"),o.setAttribute("aria-expanded","false");let l=document.createElement("div");l.classList.add(this.CSS_PREFIX),l.appendChild(o);let c=null,g=null,h=()=>{c&&c.close()&&(c=null,A?.removeEventListener("mousedown",g))};o.addEventListener("mousedown",u=>{u.preventDefault(),markMenuEvent(u),c?(h(),l.classList.remove("kb-dropdown--open")):(c=this.expand(l,n.dom),l.classList.add("kb-dropdown--open"),A?.addEventListener("mousedown",g=()=>{isMenuEvent(l)||h()}))});function d(u){let f=n.update(u);return l.style.display=f?"":"none",f}return{dom:l,update:d}}expand(e,n){const A=document.createElement("div");A.classList.add("kb-dropdown__menu"),A.setAttribute("role","menu"),this.options.class&&A.classList.add(this.options.class),n.forEach(a=>A.appendChild(a));let o=!1;function s(){return o?!1:(o=!0,e.removeChild(A),!0)}return e.appendChild(A),{close:s,node:A}}}function renderDropdownItems(r,e){let n=[],A=[];for(let o=0;o<r.length;o++){let{dom:s,update:a}=r[o].render(e);const l=document.createElement("div");l.classList.add("kb-dropdown__item"),l.appendChild(s),n.push(l),A.push(a)}return{dom:n,update:combineUpdates(A,n)}}function combineUpdates(r,e){return n=>{let A=!1;for(let o=0;o<r.length;o++){let s=r[o](n);e[o].style.display=s?"":"none",s&&(A=!0)}return A}}function setClass(r,e,n){n?r.classList.add(e):r.classList.remove(e)}const CSS_PREFIX$1="kb-prompt";function openPrompt(r){let e=document.body.appendChild(document.createElement("div"));e.className=CSS_PREFIX$1+"-backdrop";let n=document.body.appendChild(document.createElement("div"));n.className=CSS_PREFIX$1;let A=()=>{e.parentNode&&e.parentNode.removeChild(e),n.parentNode&&n.parentNode.removeChild(n)};e.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),A()});let o=[];for(let u in r.fields)o.push(r.fields[u].render());let s=document.createElement("button");s.type="submit",s.className=CSS_PREFIX$1+"--submit",s.textContent="OK";let a=document.createElement("button");a.type="button",a.className=CSS_PREFIX$1+"--cancel",a.textContent="Cancel",a.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),A()});let l=n.appendChild(document.createElement("form"));r.title&&(l.appendChild(document.createElement("h5")).textContent=r.title),o.forEach(u=>{l.appendChild(document.createElement("div")).appendChild(u)});let c=l.appendChild(document.createElement("div"));c.className=CSS_PREFIX$1+"__buttons",c.appendChild(s),c.appendChild(document.createTextNode(" ")),c.appendChild(a);let g=n.getBoundingClientRect();n.style.top=(globalThis.innerHeight-g.height)/2+"px",n.style.left=(globalThis.innerWidth-g.width)/2+"px";let h=()=>{let u=getValues(r.fields,o);u&&(A(),r.callback(u))};l.addEventListener("submit",u=>{u.preventDefault(),h()}),l.addEventListener("keydown",u=>{u.keyCode==27?(u.preventDefault(),A()):u.keyCode==13&&!(u.ctrlKey||u.metaKey||u.shiftKey)?(u.preventDefault(),h()):u.keyCode==9&&globalThis.setTimeout(()=>{n.contains(document.activeElement)||A()},500)});let d=l.elements[0];d&&d.focus()}function getValues(r,e){let n=Object.create(null),A=0;for(let o in r){let s=r[o],a=e[A++],l=s.read(a),c=s.validate(l);if(c)return reportInvalid(a,c),null;n[o]=s.clean(l)}return n}function reportInvalid(r,e){let n=r.parentNode,A=n.appendChild(document.createElement("div"));A.style.left=r.offsetLeft+r.offsetWidth+2+"px",A.style.top=r.offsetTop-5+"px",A.className="kb-invalid",A.textContent=e,setTimeout(()=>n.removeChild(A),1500)}class Field{constructor(e){this.options=e}read(e){return e.value}validateType(e){return null}validate(e){return!e&&this.options.required?"Required field":this.validateType(e)||(this.options.validate?this.options.validate(e):null)}clean(e){return this.options.clean?this.options.clean(e):e}}class TextField extends Field{render(){let e=document.createElement("input");return e.type="text",e.placeholder=this.options.label,e.value=this.options.value||"",e.autocomplete="off",e}}class FileField extends Field{constructor(){super(...arguments),this.dataUrl=""}render(){const e=document.createElement("div");e.className=CSS_PREFIX$1+"__file-field";const n=document.createElement("input");n.type="file",n.accept=this.options.accept||"image/*",n.className=CSS_PREFIX$1+"__file-input";const A=document.createElement("label");A.className=CSS_PREFIX$1+"__file-label",A.textContent=this.options.label;const o=document.createElement("span");return o.className=CSS_PREFIX$1+"__file-name",o.textContent="No file selected",this.options.value&&(this.dataUrl=this.options.value,o.textContent="Current image"),n.addEventListener("change",()=>{const s=n.files?.[0];if(s){o.textContent=s.name;const a=new FileReader;a.onload=l=>{this.dataUrl=l.target?.result,e._dataUrl=this.dataUrl},a.readAsDataURL(s)}}),e.appendChild(A),e.appendChild(n),e.appendChild(o),e._dataUrl=this.dataUrl,e}read(e){return e._dataUrl||""}validateType(e){return this.options.required&&!e?"Please select a file":null}}function canInsert(r,e){let n=r.selection.$from;for(let A=n.depth;A>=0;A--){let o=n.index(A);if(n.node(A).canReplaceWith(o,o,e))return!0}return!1}function cmdItem(r,e){let n={label:e.title,run:r};for(let A in e)n[A]=e[A];return!e.enable&&!e.select&&(n[e.enable?"enable":"select"]=A=>r(A)),new MenuItem(n)}function markActive(r,e){let{from:n,$from:A,to:o,empty:s}=r.selection;return s?!!e.isInSet(r.storedMarks||A.marks()):r.doc.rangeHasMark(n,o,e)}function buildMenu(r,e){function n(E,B){let Q={active(w){return markActive(w,E)}};for(let w in B)Q[w]=B[w];return cmdItem(r.commandFactories.toggleMark(E),Q)}function A(E,B){let Q={run(w,y){return r.commandFactories.wrapIn(E,B.attrs)(w,y)},select(w){return r.commandFactories.wrapIn(E,B.attrs)(w)}};for(let w in B)Q[w]=B[w];return new MenuItem(Q)}function o(E,B){return cmdItem(r.commandFactories.wrapInList(E,B.attrs),B)}function s(E,B){let Q=r.commandFactories.setBlockType(E,B.attrs),w={run:Q,enable(y){return Q(y)},active(y){let{$from:S,to:D,node:_}=y.selection;return _?_.hasMarkup(E,B.attrs):D<=S.end()&&S.parent.hasMarkup(E,B.attrs)}};for(let y in B)w[y]=B[y];return new MenuItem(w)}const a=[];a.push(new MenuItem({title:"Load document",icon:icons.folderOpen,run(){const E=document.createElement("input");return E.type="file",E.accept=".odt,application/vnd.oasis.opendocument.text,.md,text/markdown,text/x-markdown",E.onchange=async B=>{const Q=B.target.files?.[0];if(Q)try{const w=await Q.arrayBuffer();let y=Q.type;if(!y||y===""){const S=Q.name.split(".").pop()?.toLowerCase();S==="odt"?y="application/vnd.oasis.opendocument.text":S==="md"&&(y="text/x-markdown")}y?await r.loadDocument(y,new Uint8Array(w)):console.error("Could not determine file type for:",Q.name)}catch(w){console.error("Failed to load document:",w)}},E.click(),!0},enable:()=>!0}));const l=[];l.push(new MenuItem({title:"Undo last change",run:(E,B)=>{const Q=r.commandFactories.undo?.();return Q?Q(E,B):!1},enable:E=>{const B=r.commandFactories.undo?.();return B?B(E):!1},icon:icons.undo})),l.push(new MenuItem({title:"Redo last undone change",run:(E,B)=>{const Q=r.commandFactories.redo?.();return Q?Q(E,B):!1},enable:E=>{const B=r.commandFactories.redo?.();return B?B(E):!1},icon:icons.redo}));const c=[],g=[];if(e.nodes.paragraph&&g.push(s(e.nodes.paragraph,{title:"Change to paragraph",label:"Plain"})),e.nodes.code_block&&g.push(s(e.nodes.code_block,{title:"Change to code block",label:"Code"})),g.length>0&&c.push(new Dropdown(g,{label:"Type",icon:icons.type})),e.nodes.heading){const E=[];for(let B=1;B<=6;B++)E.push(s(e.nodes.heading,{title:"Change to heading "+B,label:"Heading "+B,attrs:{level:B}}));c.push(new Dropdown(E,{label:"Heading",icon:icons.heading}))}const h=[];e.nodes.bullet_list&&h.push(o(e.nodes.bullet_list,{title:"Wrap in bullet list",label:"Bullet List",icon:icons.bulletList})),e.nodes.ordered_list&&h.push(o(e.nodes.ordered_list,{title:"Wrap in ordered list",label:"Ordered List",icon:icons.orderedList})),e.nodes.task_list&&h.push(o(e.nodes.task_list,{title:"Wrap in task list",label:"Task List",icon:icons.taskList})),h.length>0&&c.push(new Dropdown(h,{label:"Lists",icon:icons.bulletList})),c.push(new MenuItem({title:"Lift out of enclosing block",run:()=>r.chain().lift().run(),select:()=>r.can().lift().run(),icon:icons.outdent})),e.nodes.blockquote&&c.push(A(e.nodes.blockquote,{title:"Wrap in block quote",icon:icons.blockquote}));const d=[];if(e.marks.strong&&d.push(new MenuItem({title:"Toggle bold",run:()=>r.chain().toggleStrong().run(),enable:E=>r.can().toggleStrong().run(),icon:icons.strong})),e.marks.em&&d.push(new MenuItem({title:"Toggle italic",run:()=>r.chain().toggleItalic().run(),enable:E=>r.can().toggleItalic().run(),icon:icons.em})),e.marks.strike&&d.push(n(e.marks.strike,{title:"Toggle strikethrough",icon:icons.strike})),e.marks.code&&d.push(n(e.marks.code,{title:"Toggle code font",icon:icons.code})),e.marks.underline&&d.push(new MenuItem({title:"Toggle underline",run:()=>r.chain().toggleUnderline().run(),enable:E=>r.can().toggleUnderline().run(),icon:icons.underline})),e.marks.highlight&&d.push(n(e.marks.highlight,{title:"Toggle highlight",icon:icons.highlight})),e.marks.link){const E=e.marks.link;d.push(new MenuItem({title:"Add or remove link",icon:icons.link,active(B){return markActive(B,E)},enable(B){return!B.selection.empty},run(B,Q){return markActive(B,E)?(r.commandFactories.toggleMark(E)(B,Q),!0):(openPrompt({title:"Create a link",fields:{href:new TextField({label:"Link target",required:!0}),title:new TextField({label:"Title"})},callback(w){r.commandFactories.toggleMark(E,w)(r.view.state,r.view.dispatch),r.view.focus()}}),!0)}}))}const u=[];e.marks.superscript&&u.push(n(e.marks.superscript,{title:"Toggle superscript",icon:icons.superscript})),e.marks.subscript&&u.push(n(e.marks.subscript,{title:"Toggle subscript",icon:icons.subscript}));const f=[];e.nodes.paragraph?.spec?.attrs?.textAlign!==void 0&&(f.push(new MenuItem({title:"Align left",icon:icons.alignLeft,run:()=>r.chain().setTextAlignLeft().run(),enable:()=>r.can().setTextAlignLeft().run()})),f.push(new MenuItem({title:"Align center",icon:icons.alignCenter,run:()=>r.chain().setTextAlignCenter().run(),enable:()=>r.can().setTextAlignCenter().run()})),f.push(new MenuItem({title:"Align right",icon:icons.alignRight,run:()=>r.chain().setTextAlignRight().run(),enable:()=>r.can().setTextAlignRight().run()})),f.push(new MenuItem({title:"Justify",icon:icons.alignJustify,run:()=>r.chain().setTextAlignJustify().run(),enable:()=>r.can().setTextAlignJustify().run()})));const I=[];if(e.nodes.image){const E=e.nodes.image;I.push(new MenuItem({title:"Insert image",icon:icons.image,enable:B=>canInsert(B,E),run(B,Q){let{from:w,to:y}=B.selection,S=null;return B.selection instanceof NodeSelection&&B.selection.node.type==E&&(S=B.selection.node.attrs),openPrompt({title:"Insert image",fields:{src:new FileField({label:"Choose image",required:!0,value:S&&S.src}),title:new TextField({label:"Title",value:S&&S.title}),alt:new TextField({label:"Description",value:S?S.alt:B.doc.textBetween(w,y," ")})},callback(D){r.view.dispatch(r.view.state.tr.replaceSelectionWith(E.createAndFill(D))),r.view.focus()}}),!0}}))}if(e.nodes.hr&&I.push(new MenuItem({title:"Insert horizontal rule",icon:icons.horizontalRule,run:()=>r.chain().setHorizontalRule().run(),enable:E=>r.can().setHorizontalRule().run()})),e.nodes.table){const E=(Q,w)=>new MenuItem({label:Q,enable:()=>r.can()[w]().run(),run:()=>r.chain()[w]().run()}),B=[E("Insert table","insertTable"),E("Insert column before","addColumnBefore"),E("Insert column after","addColumnAfter"),E("Delete column","deleteColumn"),E("Insert row before","addRowBefore"),E("Insert row after","addRowAfter"),E("Delete row","deleteRow"),E("Delete table","deleteTable"),E("Merge cells","mergeCells"),E("Split cell","splitCell"),E("Toggle header column","toggleHeaderColumn"),E("Toggle header row","toggleHeaderRow"),E("Toggle header cells","toggleHeaderCell")];I.push(new Dropdown(B,{label:"Table",icon:icons.table}))}const p=[];return p.push(new MenuItem({title:"Select parent node",run:()=>r.chain().selectParentNode().run(),select:()=>r.can().selectParentNode().run(),icon:icons.selectParentNode})),[a,l,c,d,u,f,I,p].filter(E=>E.length>0)}const CSS_PREFIX="kb-custom-menu",STORAGE_KEY="kb-custom-menu-order",OVERFLOW_BUTTON_WIDTH=48,DRAG_START_DELAY=2e3;class CustomMenuView{constructor(e,n,A){this.editorView=e,this.editor=n,this.content=A,this.pinnedDropdownMenu=null,this.tools=[],this.closeOverflowHandler=null,this.closePinnedDropdownHandler=null,this.keydownHandler=null,this.submenuStack=[],this.pinnedDropdownStack=[],this.resizeObserver=null,this.draggedItem=null,this.dragStartTimer=null,this.isDragging=!1,this.isDraggingFromOverflow=!1,this.dragPlaceholder=null,this.dragGhost=null,this.dragSourceWrapper=null,this.currentOverflowTools=[],this.defaultOrder=[],this.focusedToolbarIndex=-1,this.root=e.root,this.wrapper=document.createElement("div"),this.wrapper.classList.add(CSS_PREFIX+"__wrapper"),this.toolbar=document.createElement("div"),this.toolbar.classList.add(CSS_PREFIX),this.toolbar.setAttribute("role","toolbar"),this.editorContainer=document.createElement("div"),this.editorContainer.classList.add(CSS_PREFIX+"__editor-container"),this.editorContainer.style.height="50vh",this.resizeHandle=document.createElement("div"),this.resizeHandle.classList.add(CSS_PREFIX+"__resize-handle"),this.resizeHandle.innerHTML='<div class="'+CSS_PREFIX+'__resize-handle-bar"></div>',this.wrapper.appendChild(this.toolbar),e.dom.parentNode&&e.dom.parentNode.replaceChild(this.wrapper,e.dom),this.editorContainer.appendChild(e.dom),this.editorContainer.appendChild(this.resizeHandle),this.wrapper.appendChild(this.editorContainer),this.overflowMenu=document.createElement("div"),this.overflowMenu.classList.add(CSS_PREFIX+"__overflow-menu"),this.overflowMenu.style.display="none",this.wrapper.insertBefore(this.overflowMenu,this.editorContainer),this.initializeTools(),this.loadOrderState(),this.setupResize(),this.render(),typeof ResizeObserver<"u"&&(this.resizeObserver=new ResizeObserver(()=>{this.render()}),this.resizeObserver.observe(this.toolbar)),this.setupKeyboardNavigation()}closeAllMenus(e){if(this.overflowMenu.style.display!=="none"){this.overflowMenu.style.display="none",this.submenuStack=[];const n=this.toolbar.querySelector("."+CSS_PREFIX+"__overflow-toggle");n&&n.setAttribute("aria-expanded","false")}this.pinnedDropdownMenu&&(this.pinnedDropdownMenu.remove(),this.pinnedDropdownMenu=null,this.pinnedDropdownStack=[]),e&&e.focus()}getToolbarButtons(){const e=[];this.toolbar.querySelectorAll("."+CSS_PREFIX+"__item").forEach(o=>{const s=o.querySelector("button");s&&e.push(s)});const A=this.toolbar.querySelector("."+CSS_PREFIX+"__overflow-toggle");return A&&e.push(A),e}setupKeyboardNavigation(){this.keydownHandler=e=>{const n=document.activeElement,A=this.toolbar.contains(n),o=this.overflowMenu.contains(n),s=this.pinnedDropdownMenu?.contains(n);if(e.key==="Escape"){if(s||this.pinnedDropdownMenu){e.preventDefault();const a=this.toolbar.querySelector('[data-last-focused="true"]');this.closeAllMenus(a||void 0);return}if(o||this.overflowMenu.style.display!=="none"){e.preventDefault();const a=this.toolbar.querySelector("."+CSS_PREFIX+"__overflow-toggle");this.closeAllMenus(a||void 0);return}}if(A&&!o&&!s){const a=this.getToolbarButtons(),l=a.indexOf(n);if(e.key==="ArrowRight"){e.preventDefault();const c=(l+1)%a.length;a[c]?.focus()}else if(e.key==="ArrowLeft"){e.preventDefault();const c=(l-1+a.length)%a.length;a[c]?.focus()}else e.key==="Home"?(e.preventDefault(),a[0]?.focus()):e.key==="End"&&(e.preventDefault(),a[a.length-1]?.focus())}if(o){const a=Array.from(this.overflowMenu.querySelectorAll('button, [role="menuitem"], .'+CSS_PREFIX+"__overflow-item")),l=a.indexOf(n);if(e.key==="ArrowDown"){e.preventDefault();const c=(l+1)%a.length;a[c]?.focus()}else if(e.key==="ArrowUp"){e.preventDefault();const c=(l-1+a.length)%a.length;a[c]?.focus()}}},document.addEventListener("keydown",this.keydownHandler)}initializeTools(){let e=0;this.content.forEach((n,A)=>{n.forEach(o=>{const{dom:s,update:a}=o.render(this.editorView);let l;const c=o;c.options&&c.options.label?l=c.options.label:l=this.extractLabel(s);const g=this.generateStableId(l,s);this.tools.push({id:g,label:l,element:o,order:e++,groupIndex:A})})}),this.defaultOrder=this.tools.map(n=>n.id)}generateStableId(e,n){const A=n.getAttribute("aria-label"),o=n.getAttribute("data-id");if(o)return`tool-${o}`;const s=A||e,a=s.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"");return a?`tool-${a}`:`tool-${this.simpleHash(s)}`}simpleHash(e){let n=0;for(let A=0;A<e.length;A++){const o=e.charCodeAt(A);n=(n<<5)-n+o,n=n&n}return Math.abs(n).toString(36)}extractLabel(e){const n=e.querySelector("span")?.textContent?.trim();if(n)return n;const A=e.querySelector(".kb-dropdown__label")?.textContent?.trim();if(A)return A;const o=e.getAttribute("aria-label");if(o)return o;const s=e.getAttribute("title");if(s)return s;const a=e.querySelector("svg title")?.textContent?.trim();return a||"Unknown Tool"}loadOrderState(){try{const e=localStorage.getItem(STORAGE_KEY);if(e){const n=JSON.parse(e);this.tools.forEach(A=>{const o=n.indexOf(A.id);o!==-1?A.order=o:A.order=n.length+A.order}),this.tools.sort((A,o)=>A.order-o.order)}}catch(e){console.error("Failed to load order state:",e)}}saveOrderState(){try{const e=this.tools.map(n=>n.id);localStorage.setItem(STORAGE_KEY,JSON.stringify(e))}catch(e){console.error("Failed to save order state:",e)}}hasCustomOrder(){const e=this.tools.map(n=>n.id);return e.length!==this.defaultOrder.length?!0:e.some((n,A)=>n!==this.defaultOrder[A])}resetToDefault(){try{localStorage.removeItem(STORAGE_KEY)}catch(e){console.error("Failed to clear order state:",e)}this.tools.forEach(e=>{const n=this.defaultOrder.indexOf(e.id);n!==-1&&(e.order=n)}),this.tools.sort((e,n)=>e.order-n.order),this.closeAllMenus(),this.render()}createResetButton(e){const n=document.createElement("button");n.type="button",n.classList.add(CSS_PREFIX+"__reset-button"),e?(n.classList.add(CSS_PREFIX+"__reset-button--icon-only"),n.setAttribute("role","button")):n.setAttribute("role","menuitem"),n.setAttribute("tabindex","0"),n.setAttribute("aria-label","Reset toolbar to default order"),n.title="Reset toolbar to default order";const A=`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
215
+ <path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/>
216
+ <path d="M3 3v5h5"/>
217
+ </svg>`;return e?n.innerHTML=A:n.innerHTML=`${A}<span>Reset to Default</span>`,n.addEventListener("click",o=>{o.preventDefault(),o.stopPropagation(),this.resetToDefault()}),n.addEventListener("keydown",o=>{(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),o.stopPropagation(),this.resetToDefault())}),n}showSubmenu(e){const n=e.element;if(!n.content)return;const A=n.content.map((o,s)=>{const{dom:a}=o.render(this.editorView);let l;const c=o;return c.options&&c.options.label?l=c.options.label:l=this.extractLabel(a),{id:`${e.id}-sub-${s}`,label:l,element:o,isPinned:!1}});this.submenuStack.push({title:e.label,tools:A}),this.renderOverflowMenu()}goBack(){this.submenuStack.pop(),this.renderOverflowMenu()}showPinnedDropdown(e,n){if(this.overflowMenu.style.display!=="none"){this.overflowMenu.style.display="none",this.submenuStack=[];const s=this.toolbar.querySelector("."+CSS_PREFIX+"__overflow-toggle");s&&s.setAttribute("aria-expanded","false")}this.pinnedDropdownMenu&&(this.pinnedDropdownMenu.remove(),this.pinnedDropdownMenu=null),this.toolbar.querySelectorAll("[data-last-focused]").forEach(s=>{s.removeAttribute("data-last-focused")}),n.setAttribute("data-last-focused","true");const A=e.element;if(!A.content)return;const o=A.content.map((s,a)=>{const{dom:l}=s.render(this.editorView);let c;const g=s;return g.options&&g.options.label?c=g.options.label:c=this.extractLabel(l),{id:`${e.id}-sub-${a}`,label:c,element:s,isPinned:!1}});this.pinnedDropdownStack=[{title:e.label,tools:o,rootTool:e}],this.renderPinnedDropdown(n)}pinnedDropdownGoBack(){if(this.pinnedDropdownStack.pop(),this.pinnedDropdownStack.length===0){this.pinnedDropdownMenu&&(this.pinnedDropdownMenu.remove(),this.pinnedDropdownMenu=null);return}const e=this.toolbar.querySelector(`[data-tool-id="${this.pinnedDropdownStack[0].rootTool.id}"]`);e&&this.renderPinnedDropdown(e)}pinnedDropdownShowSubmenu(e,n){const A=e.element;if(!A.content)return;const o=A.content.map((s,a)=>{const{dom:l}=s.render(this.editorView);let c;const g=s;return g.options&&g.options.label?c=g.options.label:c=this.extractLabel(l),{id:`${e.id}-sub-${a}`,label:c,element:s,isPinned:!1}});this.pinnedDropdownStack.push({title:e.label,tools:o,rootTool:this.pinnedDropdownStack[0].rootTool}),this.renderPinnedDropdown(n)}renderPinnedDropdown(e){this.pinnedDropdownMenu&&this.pinnedDropdownMenu.remove();const n=this.pinnedDropdownStack[this.pinnedDropdownStack.length-1],A=this.pinnedDropdownStack.length>1;this.pinnedDropdownMenu=document.createElement("div"),this.pinnedDropdownMenu.classList.add(CSS_PREFIX+"__pinned-dropdown"),this.pinnedDropdownMenu.setAttribute("role","menu"),this.pinnedDropdownMenu.setAttribute("aria-label",n.title);const o=e.getBoundingClientRect();this.pinnedDropdownMenu.style.position="absolute",this.pinnedDropdownMenu.style.top=`${o.bottom+4}px`,this.pinnedDropdownMenu.style.left=`${o.left}px`,this.pinnedDropdownMenu.style.zIndex="1000";const s=document.createElement("div");if(s.classList.add(CSS_PREFIX+"__overflow-content"),A){const l=document.createElement("div");l.classList.add(CSS_PREFIX+"__overflow-submenu-header");const c=document.createElement("button");c.type="button",c.classList.add(CSS_PREFIX+"__overflow-back-button"),c.setAttribute("aria-label","Go back to "+n.title),c.innerHTML='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M15 19l-7-7 7-7"/></svg>',c.addEventListener("click",h=>{h.preventDefault(),h.stopPropagation(),this.pinnedDropdownGoBack()});const g=document.createElement("span");g.classList.add(CSS_PREFIX+"__overflow-submenu-title"),g.textContent=n.title,l.appendChild(c),l.appendChild(g),s.appendChild(l)}n.tools.forEach(l=>{const c=l.element.content!==void 0,g=document.createElement("div");if(g.classList.add(CSS_PREFIX+"__overflow-item"),g.setAttribute("data-tool-id",l.id),g.setAttribute("role","menuitem"),g.setAttribute("tabindex","0"),c){const h=document.createElement("span");h.classList.add(CSS_PREFIX+"__overflow-item-label"),h.textContent=l.label,g.appendChild(h);const d=document.createElement("span");d.classList.add(CSS_PREFIX+"__overflow-item-chevron"),d.innerHTML='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 5l7 7-7 7"/></svg>',g.appendChild(d),g.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),this.pinnedDropdownShowSubmenu(l,e)})}else{const{dom:h}=l.element.render(this.editorView);h.querySelectorAll("span").forEach(f=>{const I=f.closest(".kb-icon")!==null,p=f.parentElement===h;f.textContent&&f.textContent.trim()&&!I&&p&&!f.querySelector("svg")&&!f.classList.contains("kb-icon")&&(f.style.display="none")});const u=document.createElement("span");u.classList.add(CSS_PREFIX+"__overflow-item-label"),u.textContent=l.label,g.appendChild(h),g.appendChild(u),g.addEventListener("mousedown",f=>{if(f.target!==h){f.preventDefault();const I=new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window});h.dispatchEvent(I)}this.pinnedDropdownMenu&&(this.pinnedDropdownMenu.remove(),this.pinnedDropdownMenu=null,this.pinnedDropdownStack=[])})}s.appendChild(g)}),this.pinnedDropdownMenu.appendChild(s),document.body.appendChild(this.pinnedDropdownMenu);const a=this.editorView.dom.ownerDocument||document;setTimeout(()=>{this.closePinnedDropdownHandler&&a.removeEventListener("click",this.closePinnedDropdownHandler),this.closePinnedDropdownHandler=l=>{const c=l.target;this.pinnedDropdownMenu&&!this.pinnedDropdownMenu.contains(c)&&!e.contains(c)&&(this.pinnedDropdownMenu.remove(),this.pinnedDropdownMenu=null,this.pinnedDropdownStack=[],this.closePinnedDropdownHandler&&a.removeEventListener("click",this.closePinnedDropdownHandler))},a.addEventListener("click",this.closePinnedDropdownHandler)},0)}renderOverflowMenu(){this.overflowMenu.innerHTML="",this.overflowMenu.setAttribute("role","menu"),this.overflowMenu.setAttribute("aria-label","More tools");const e=this.submenuStack.length>0,n=e?this.submenuStack[this.submenuStack.length-1]:null,A=document.createElement("div");if(A.classList.add(CSS_PREFIX+"__overflow-content"),e||A.classList.add(CSS_PREFIX+"__overflow-content--grid"),e&&n){const o=document.createElement("div");o.classList.add(CSS_PREFIX+"__overflow-submenu-header");const s=document.createElement("button");s.type="button",s.classList.add(CSS_PREFIX+"__overflow-back-button"),s.setAttribute("aria-label","Go back to previous menu"),s.innerHTML='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M15 19l-7-7 7-7"/></svg>',s.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),this.goBack()});const a=document.createElement("span");a.classList.add(CSS_PREFIX+"__overflow-submenu-title"),a.textContent=n.title,o.appendChild(s),o.appendChild(a),A.appendChild(o),n.tools.forEach(l=>{const c=l.element.content!==void 0,g=document.createElement("div");if(g.classList.add(CSS_PREFIX+"__overflow-item"),g.setAttribute("role","menuitem"),g.setAttribute("tabindex","0"),c){g.setAttribute("aria-haspopup","true");const h=document.createElement("span");h.classList.add(CSS_PREFIX+"__overflow-item-label"),h.textContent=l.label,g.appendChild(h);const d=document.createElement("span");d.classList.add(CSS_PREFIX+"__overflow-item-chevron"),d.setAttribute("aria-hidden","true"),d.innerHTML='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 5l7 7-7 7"/></svg>',g.appendChild(d);const u=f=>{f.preventDefault(),f.stopPropagation(),this.showSubmenu(l)};g.addEventListener("click",u),g.addEventListener("keydown",f=>{(f.key==="Enter"||f.key===" ")&&u(f)})}else{const{dom:h,update:d}=l.element.render(this.editorView),u=h.querySelector("span");u&&(u.style.display="none");const f=document.createElement("span");f.classList.add(CSS_PREFIX+"__overflow-item-label"),f.textContent=l.label,g.appendChild(h),g.appendChild(f),g.addEventListener("mousedown",I=>{if(I.target!==h){I.preventDefault();const p=new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window});h.dispatchEvent(p)}}),g.addEventListener("keydown",I=>{if(I.key==="Enter"||I.key===" "){I.preventDefault();const p=new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window});h.dispatchEvent(p)}})}A.appendChild(g)})}else this.currentOverflowTools.forEach(s=>{if(!s.label||s.label.trim()===""||s.label==="Unknown Tool")return;const a=s.element.content!==void 0,l=document.createElement("div");if(l.classList.add(CSS_PREFIX+"__overflow-item"),l.classList.add(CSS_PREFIX+"__overflow-item--grid"),l.setAttribute("title",s.label),l.setAttribute("role","menuitem"),l.setAttribute("tabindex","0"),l.setAttribute("aria-label",s.label),a){l.classList.add(CSS_PREFIX+"__overflow-item--dropdown"),l.setAttribute("aria-haspopup","true");const c=document.createElement("button");c.type="button",c.classList.add("kb-menu__button"),c.setAttribute("tabindex","-1"),c.setAttribute("aria-hidden","true");const g=s.element;if(g.options?.icon){const d=getIcon(this.root,g.options.icon);c.appendChild(d)}l.appendChild(c);const h=document.createElement("span");h.classList.add(CSS_PREFIX+"__overflow-item-indicator"),h.setAttribute("aria-hidden","true"),l.appendChild(h),l.addEventListener("click",d=>{d.preventDefault(),d.stopPropagation(),this.showSubmenu(s)}),l.addEventListener("keydown",d=>{(d.key==="Enter"||d.key===" ")&&(d.preventDefault(),d.stopPropagation(),this.showSubmenu(s))})}else{const{dom:c,update:g}=s.element.render(this.editorView);c.querySelectorAll("span").forEach(d=>{!(d.closest(".kb-icon")!==null)&&!d.querySelector("svg")&&(d.style.display="none")}),c.style.pointerEvents="none",l.appendChild(c),l.dataset.hasButton="true",l._buttonDom=c,l.addEventListener("keydown",d=>{(d.key==="Enter"||d.key===" ")&&(d.preventDefault(),this.closeAllMenus(),requestAnimationFrame(()=>{const u=s.element;u.spec&&typeof u.spec.run=="function"&&u.spec.run(this.editorView.state,this.editorView.dispatch)}))})}!e&&!a&&this.setupOverflowDragHandlers(l,s),A.appendChild(l)});if(this.overflowMenu.appendChild(A),!e&&this.hasCustomOrder()){const o=document.createElement("div");o.classList.add(CSS_PREFIX+"__overflow-footer");const s=this.createResetButton(!1);o.appendChild(s),this.overflowMenu.appendChild(o)}}render(){if(this.isDragging)return;this.toolbar.innerHTML="",this.overflowMenu.innerHTML="";const n=(this.toolbar.offsetWidth||this.wrapper.offsetWidth)-OVERFLOW_BUTTON_WIDTH-16,A=[];this.tools.forEach(d=>{const u=document.createElement("span");if(u.classList.add(CSS_PREFIX+"__item"),u.setAttribute("data-tool-id",d.id),u.setAttribute("draggable","false"),d.element.content!==void 0){const{dom:p}=d.element.render(this.editorView),m=p.querySelector(".kb-dropdown__content");m&&(m.style.display="none"),u.appendChild(p)}else{const{dom:p}=d.element.render(this.editorView);u.appendChild(p)}this.toolbar.appendChild(u);const I=u.getBoundingClientRect().width;A.push({tool:d,wrapper:u,width:I})});const o=4,s=9;let a=0,l;const c=[],g=[];for(const d of A){let u=0;c.length>0&&(u+=o,l!==void 0&&d.tool.groupIndex!==l&&(u+=s+o)),a+u+d.width<=n?(c.push(d),a+=u+d.width,l=d.tool.groupIndex):g.push(d)}this.toolbar.innerHTML="";let h;if(c.forEach(({tool:d,wrapper:u})=>{if(h!==void 0&&d.groupIndex!==h){const I=document.createElement("div");I.classList.add(CSS_PREFIX+"__separator"),this.toolbar.appendChild(I)}if(h=d.groupIndex,d.element.content!==void 0){const I=u.querySelector("button"),p=u.querySelector(".kb-dropdown__label"),m=B=>{if(this.isDragging){B.preventDefault(),B.stopPropagation(),B.stopImmediatePropagation();return}B.preventDefault(),B.stopPropagation(),B.stopImmediatePropagation(),this.showPinnedDropdown(d,u)},E=B=>{B.stopImmediatePropagation(),this.isDragging&&B.stopPropagation()};I&&(I.addEventListener("click",m,{capture:!0}),I.addEventListener("mousedown",E,{capture:!0})),p&&(p.addEventListener("click",m,{capture:!0}),p.addEventListener("mousedown",E,{capture:!0}))}this.setupDragHandlers(u,d),this.toolbar.appendChild(u)}),this.currentOverflowTools=g.map(d=>d.tool),this.currentOverflowTools.length>0){const d=document.createElement("div");d.classList.add(CSS_PREFIX+"__separator"),this.toolbar.appendChild(d)}if(this.currentOverflowTools.length>0){const d=document.createElement("button");d.type="button",d.className=CSS_PREFIX+"__overflow-toggle",d.setAttribute("aria-haspopup","menu"),d.setAttribute("aria-expanded","false"),d.setAttribute("aria-label","More tools"),d.title="More tools",d.innerHTML=`
218
+ <svg viewBox="0 0 24 24" aria-hidden="true">
219
+ <circle cx="5" cy="12" r="2"/>
220
+ <circle cx="12" cy="12" r="2"/>
221
+ <circle cx="19" cy="12" r="2"/>
222
+ </svg>
223
+ `,d.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),this.pinnedDropdownMenu&&(this.pinnedDropdownMenu.remove(),this.pinnedDropdownMenu=null,this.pinnedDropdownStack=[]);const f=this.overflowMenu.style.display!=="none";this.overflowMenu.style.display=f?"none":"block",d.setAttribute("aria-expanded",String(!f));const I=this.editorView.dom.ownerDocument||document;f?(this.closeOverflowHandler&&I.removeEventListener("click",this.closeOverflowHandler),this.submenuStack=[]):(this.submenuStack=[],this.renderOverflowMenu(),setTimeout(()=>{this.closeOverflowHandler&&I.removeEventListener("click",this.closeOverflowHandler),this.closeOverflowHandler=p=>{const m=p.target;this.editorView.dom.contains(m)||!this.overflowMenu.contains(m)&&!this.toolbar.contains(m)&&(this.overflowMenu.style.display="none",d.setAttribute("aria-expanded","false"),this.submenuStack=[],this.closeOverflowHandler&&I.removeEventListener("click",this.closeOverflowHandler))},I.addEventListener("click",this.closeOverflowHandler)},0))}),this.toolbar.appendChild(d)}else if(this.hasCustomOrder()){const d=document.createElement("div");d.classList.add(CSS_PREFIX+"__separator"),this.toolbar.appendChild(d);const u=this.createResetButton(!0);this.toolbar.appendChild(u)}this.renderOverflowMenu()}setupDragHandlers(e,n){let A=0,o=0;const s=a=>{if(a.button!==0)return;A=a.clientX,o=a.clientY,this.dragStartTimer=setTimeout(()=>{this.startDrag(e,n,a)},DRAG_START_DELAY);const l=()=>{this.dragStartTimer&&(clearTimeout(this.dragStartTimer),this.dragStartTimer=null),document.removeEventListener("mouseup",l),document.removeEventListener("mousemove",c)},c=g=>{const h=Math.abs(g.clientX-A),d=Math.abs(g.clientY-o);(h>5||d>5)&&this.dragStartTimer&&(clearTimeout(this.dragStartTimer),this.dragStartTimer=null)};document.addEventListener("mouseup",l),document.addEventListener("mousemove",c)};e.addEventListener("mousedown",s,{capture:!0})}setupOverflowDragHandlers(e,n){let A=0,o=0,s=!1;const a=l=>{if(l.button!==0)return;A=l.clientX,o=l.clientY,s=!1,l.preventDefault(),this.dragStartTimer=setTimeout(()=>{s=!0,this.startOverflowDrag(e,n,l)},DRAG_START_DELAY);const c=()=>{this.dragStartTimer&&(clearTimeout(this.dragStartTimer),this.dragStartTimer=null),s||(this.closeAllMenus(),requestAnimationFrame(()=>{const h=n.element;h.spec&&typeof h.spec.run=="function"&&h.spec.run(this.editorView.state,this.editorView.dispatch)})),document.removeEventListener("mouseup",c),document.removeEventListener("mousemove",g)},g=h=>{const d=Math.abs(h.clientX-A),u=Math.abs(h.clientY-o);(d>5||u>5)&&this.dragStartTimer&&(clearTimeout(this.dragStartTimer),this.dragStartTimer=null)};document.addEventListener("mouseup",c),document.addEventListener("mousemove",g)};e.addEventListener("mousedown",a,{capture:!0})}startOverflowDrag(e,n,A){this.isDragging=!0,this.isDraggingFromOverflow=!0,this.draggedItem=n,this.dragSourceWrapper=e,e.classList.add(CSS_PREFIX+"__overflow-item--dragging"),this.wrapper.classList.add(CSS_PREFIX+"__wrapper--dragging"),this.closeOverflowMenu();const o=e.getBoundingClientRect();this.dragGhost=e.cloneNode(!0),this.dragGhost.classList.add(CSS_PREFIX+"__drag-ghost"),this.dragGhost.style.position="fixed",this.dragGhost.style.left=`${o.left}px`,this.dragGhost.style.top=`${o.top}px`,this.dragGhost.style.width=`${o.width}px`,this.dragGhost.style.height=`${o.height}px`,this.dragGhost.style.pointerEvents="none",this.dragGhost.style.zIndex="10000",document.body.appendChild(this.dragGhost),this.dragPlaceholder=document.createElement("span"),this.dragPlaceholder.classList.add(CSS_PREFIX+"__drop-placeholder");const s=l=>{if(!this.isDragging||!this.dragGhost)return;const c=this.dragGhost.getBoundingClientRect();this.dragGhost.style.left=`${l.clientX-c.width/2}px`,this.dragGhost.style.top=`${l.clientY-c.height/2}px`;const g=this.toolbar.getBoundingClientRect(),h=l.clientY>=g.top&&l.clientY<=g.bottom&&l.clientX>=g.left&&l.clientX<=g.right,d=Array.from(this.toolbar.querySelectorAll("."+CSS_PREFIX+"__item"));let u=null;if(h)for(let f=0;f<d.length;f++){const I=d[f],p=I.getBoundingClientRect(),m=p.left+p.width/2;l.clientX<m&&u===null&&(u=I)}if(this.dragPlaceholder&&this.dragPlaceholder.parentNode&&this.dragPlaceholder.remove(),h&&this.dragPlaceholder)if(u)u.parentNode?.insertBefore(this.dragPlaceholder,u);else{const f=this.toolbar.querySelector("."+CSS_PREFIX+"__separator");if(f)f.parentNode?.insertBefore(this.dragPlaceholder,f);else{const I=this.toolbar.querySelector("."+CSS_PREFIX+"__overflow-toggle");I?I.parentNode?.insertBefore(this.dragPlaceholder,I):this.toolbar.appendChild(this.dragPlaceholder)}}},a=l=>{if(this.isDragging){if(this.dragPlaceholder&&this.dragPlaceholder.parentNode){let c=0;for(let h=0;h<this.toolbar.children.length;h++){const d=this.toolbar.children[h];if(d===this.dragPlaceholder)break;d.classList.contains(CSS_PREFIX+"__item")&&c++}const g=this.tools.indexOf(n);g!==-1&&(this.tools.splice(g,1),this.tools.splice(c,0,n),this.tools.forEach((h,d)=>{h.order=d}),this.saveOrderState())}this.cleanupOverflowDrag(),document.removeEventListener("mousemove",s),document.removeEventListener("mouseup",a),setTimeout(()=>{this.render()},0)}};document.addEventListener("mousemove",s),document.addEventListener("mouseup",a)}closeOverflowMenu(){this.overflowMenu&&(this.overflowMenu.style.display="none");const e=this.toolbar.querySelector("."+CSS_PREFIX+"__overflow-toggle");e&&e.setAttribute("aria-expanded","false"),this.submenuStack=[];const n=this.editorView.dom.ownerDocument||document;this.closeOverflowHandler&&(n.removeEventListener("click",this.closeOverflowHandler),this.closeOverflowHandler=null)}cleanupOverflowDrag(){this.isDragging=!1,this.isDraggingFromOverflow=!1,this.draggedItem=null,this.dragSourceWrapper&&(this.dragSourceWrapper.classList.remove(CSS_PREFIX+"__overflow-item--dragging"),this.dragSourceWrapper=null),this.wrapper.classList.remove(CSS_PREFIX+"__wrapper--dragging"),this.dragGhost&&(this.dragGhost.remove(),this.dragGhost=null);const e=document.querySelector("."+CSS_PREFIX+"__drag-ghost");e&&e.remove(),this.dragPlaceholder&&(this.dragPlaceholder.remove(),this.dragPlaceholder=null),this.dragStartTimer&&(clearTimeout(this.dragStartTimer),this.dragStartTimer=null)}startDrag(e,n,A){this.isDragging=!0,this.draggedItem=n,e.classList.add(CSS_PREFIX+"__item--dragging"),this.wrapper.classList.add(CSS_PREFIX+"__wrapper--dragging");const o=e.getBoundingClientRect();this.dragGhost=e.cloneNode(!0),this.dragGhost.classList.add(CSS_PREFIX+"__drag-ghost"),this.dragGhost.style.position="fixed",this.dragGhost.style.left=`${o.left}px`,this.dragGhost.style.top=`${o.top}px`,this.dragGhost.style.width=`${o.width}px`,this.dragGhost.style.height=`${o.height}px`,this.dragGhost.style.pointerEvents="none",this.dragGhost.style.zIndex="10000",document.body.appendChild(this.dragGhost),this.dragPlaceholder=document.createElement("span"),this.dragPlaceholder.classList.add(CSS_PREFIX+"__drop-placeholder");const s=l=>{if(!this.isDragging||!this.dragGhost)return;const c=this.dragGhost.getBoundingClientRect();this.dragGhost.style.left=`${l.clientX-c.width/2}px`,this.dragGhost.style.top=`${l.clientY-c.height/2}px`;const g=Array.from(this.toolbar.querySelectorAll("."+CSS_PREFIX+"__item"));let h=null;for(let d=0;d<g.length;d++){const u=g[d];if(u===e)continue;const f=u.getBoundingClientRect(),I=f.left+f.width/2;l.clientX<I&&h===null&&(h=u)}if(this.dragPlaceholder&&this.dragPlaceholder.parentNode&&this.dragPlaceholder.remove(),h&&this.dragPlaceholder)h.parentNode?.insertBefore(this.dragPlaceholder,h);else if(this.dragPlaceholder){const d=this.toolbar.querySelector("."+CSS_PREFIX+"__separator");if(d)d.parentNode?.insertBefore(this.dragPlaceholder,d);else{const u=this.toolbar.querySelector("."+CSS_PREFIX+"__overflow-toggle");u?u.parentNode?.insertBefore(this.dragPlaceholder,u):this.toolbar.appendChild(this.dragPlaceholder)}}},a=l=>{if(this.isDragging){if(this.dragPlaceholder&&this.dragPlaceholder.parentNode){const c=Array.from(this.toolbar.querySelectorAll("."+CSS_PREFIX+"__item"));Array.from(this.toolbar.children).indexOf(this.dragPlaceholder),c.indexOf(e);let g=0;for(let d=0;d<this.toolbar.children.length;d++){const u=this.toolbar.children[d];if(u===this.dragPlaceholder)break;u.classList.contains(CSS_PREFIX+"__item")&&g++}const h=this.tools.indexOf(n);if(h!==-1&&g!==h){this.tools.splice(h,1);const d=g>h?g-1:g;this.tools.splice(d,0,n),this.tools.forEach((u,f)=>{u.order=f}),this.saveOrderState()}}this.cleanupDrag(e),document.removeEventListener("mousemove",s),document.removeEventListener("mouseup",a),setTimeout(()=>{this.render()},0)}};document.addEventListener("mousemove",s),document.addEventListener("mouseup",a)}cleanupDrag(e){this.isDragging=!1,this.draggedItem=null,e.classList.remove(CSS_PREFIX+"__item--dragging"),this.wrapper.classList.remove(CSS_PREFIX+"__wrapper--dragging"),this.dragGhost&&(this.dragGhost.remove(),this.dragGhost=null);const n=document.querySelector("."+CSS_PREFIX+"__drag-ghost");n&&n.remove(),this.dragPlaceholder&&(this.dragPlaceholder.remove(),this.dragPlaceholder=null),this.dragStartTimer&&(clearTimeout(this.dragStartTimer),this.dragStartTimer=null)}setupResize(){let e=!1,n=0,A=0;const o=l=>{e=!0,n=l.clientY,A=this.editorContainer.offsetHeight,this.wrapper.classList.add(CSS_PREFIX+"__wrapper--resizing"),l.preventDefault(),document.addEventListener("mousemove",s),document.addEventListener("mouseup",a)},s=l=>{if(!e)return;const c=l.clientY-n,g=A+c,h=200,d=window.innerHeight-100;g>=h&&g<=d&&(this.editorContainer.style.height=g+"px")},a=()=>{e&&(e=!1,this.wrapper.classList.remove(CSS_PREFIX+"__wrapper--resizing"),document.removeEventListener("mousemove",s),document.removeEventListener("mouseup",a))};this.resizeHandle.addEventListener("mousedown",o)}update(e,n){this.tools.forEach(A=>{A.element.render(this.editorView)})}destroy(){const e=this.editorView.dom.ownerDocument||document;this.closeOverflowHandler&&(e.removeEventListener("click",this.closeOverflowHandler),this.closeOverflowHandler=null),this.closePinnedDropdownHandler&&(e.removeEventListener("click",this.closePinnedDropdownHandler),this.closePinnedDropdownHandler=null),this.keydownHandler&&(document.removeEventListener("keydown",this.keydownHandler),this.keydownHandler=null),this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),this.pinnedDropdownMenu&&(this.pinnedDropdownMenu.remove(),this.pinnedDropdownMenu=null),this.dragGhost&&(this.dragGhost.remove(),this.dragGhost=null),this.dragPlaceholder&&(this.dragPlaceholder.remove(),this.dragPlaceholder=null),this.dragStartTimer&&(clearTimeout(this.dragStartTimer),this.dragStartTimer=null),this.wrapper.parentNode&&this.wrapper.parentNode.replaceChild(this.editorView.dom,this.wrapper)}}class CustomMenuPlugin extends Plugin{constructor(e,n){super({key:new PluginKey("custom-menu"),view(A){return new CustomMenuView(A,e,n.content)}})}}class ExtensionCustomMenu extends Extension{constructor(){super(...arguments),this.name="customMenu"}getProseMirrorPlugins(){if(!this.editor.config.element)return[];const e=buildMenu(this.editor,this.editor.schema);return[new CustomMenuPlugin(this.editor,{content:e})]}}function inchesToMm(r){return r?r.endsWith("pt")?parseFloat(r.substring(0,r.length-2))*.3528:r.endsWith("in")?parseFloat(r.substring(0,r.length-2))*25.4:r.endsWith("em")?parseFloat(r.substring(0,r.length-2))/.125*25.4:0:0}function getInlineNodesHandlers(){return{$text:(r,e)=>{if(r.current.marks.length>0){const A=e.match(/^([ \t\u00A0]*)(.*)([ \t\u00A0]*)$/);A[1]&&r.current.content.push(r.schema.text(A[1]));const o=r.createText(A[2]);o&&r.current.content.push(o),A[3]&&r.current.content.push(r.schema.text(A[3]));return}const n=r.createText(e);n&&r.current.content.push(n)},s:(r,e)=>{const n=e["@c"]||1,A=" ".repeat(n),o=r.createText(A);o&&r.current.content.push(o)},tab:(r,e)=>{const n=r.createText(" ");n&&r.current.content.push(n)},rect:(r,e)=>{e["@rel-width"]==="100%"&&(r.openNode(),r.closeNode("hr"))},"line-break":(r,e)=>{r.openNode(),r.closeNode("br")},"soft-page-break":(r,e)=>{},bookmark:(r,e)=>{r.openNode(),r.closeNode("node_bookmark",{id:e["@name"]})},"bookmark-start":(r,e)=>{},"bookmark-end":(r,e)=>{},"change-start":(r,e)=>{r.openNode(),r.closeNode("comment",{id:e["@change-id"],nesting:NESTING_OPENING$1})},"change-end":(r,e)=>{r.openNode(),r.closeNode("comment",{id:e["@change-id"],nesting:NESTING_CLOSING$1})}}}function getBasicNodesHandlers(){return{body:(r,e)=>{r.handle("text",e.text)},text:(r,e)=>{iterateChildren(e.$value,n=>r.handle(n.tag,n.value))},p:(r,e)=>{const n={},A=r.getElementStyle(e),o=A.styles.find(l=>l.startsWith("Heading_20_"));o&&(n.level=parseInt(o.substring(11)));let s="paragraph";A.styles.find(l=>l.startsWith("Heading_20_"))&&(s="heading"),r.openNode();const a=r.styleToMarks(A);a.length>0&&(r.current.marks=[...r.current.marks,...a]),iterateChildren(e.$value,l=>{r.handle(l.tag,l.value)}),r.closeNode(s,n)},"table-of-content":(r,e)=>{const n=[];let A=-1;for(const o of e["index-body"].p){const s=r.getElementStyle(o);let a=0;if("paragraph-properties"in s&&(a=inchesToMm(s["paragraph-properties"]["@margin-left"])),A<a)n.length>0&&r.openNode(),r.openNode(),n.push(a);else for(let l=n.length-1;l>=0&&n[l]>a;l--)r.closeNode("bullet_list",{odtMarginLeft:a}),l>0&&r.closeNode("list_item"),n.pop();r.openNode(),r.handle("p",o),r.closeNode("list_item"),A=a}for(let o=n.length-1;o>=0;o--){const s=n.pop();o>0?(r.closeNode("bullet_list",{odtMarginLeft:s}),r.closeNode("list_item")):r.closeNode("bullet_list",{odtMarginLeft:s,toc:!0})}},span:(r,e)=>{const n=r.getElementStyle(e),A=r.styleToMarks(n);A.length>0&&(r.stash(),r.current.marks=[...r.current.marks,...A]),iterateChildren(e.$value,o=>{r.handle(o.tag,o.value)}),A.length>0&&r.unstash()},a:(r,e)=>{const n={href:e["@href"]},o=[r.schema.mark("link",n)];o.length>0&&(r.stash(),r.current.marks=[...r.current.marks,...o]),iterateChildren(e.$value,s=>{r.handle(s.tag,s.value)}),o.length>0&&r.unstash()}}}function processListStyle(r,e){const n=r.listTracker,A={};let o=resolveListStyle(r.stylesTree,r.automaticStyles,"");for(let a=n.listStack.length-1;a>=0;a--){const l=n.listStack[a];o["@name"]||(o=resolveListStyle(r.stylesTree,r.automaticStyles,l.styleName))}let s="bullet_list";if(o){const a=o["list-level-style-number"].find(c=>parseInt(String(c["@level"]))===e);if(a){A.type=a["@num-format"]||"1",a["@start-value"]&&(A.start=String(a["@start-value"])),s="ordered_list";const c=a["list-level-properties"]["list-level-label-alignment"]["@margin-left"];c&&(A.odtMarginLeft=inchesToMm(c))}const l=o["list-level-style-bullet"].find(c=>parseInt(String(c["@level"]))===e);if(l){const c=l["list-level-properties"]["list-level-label-alignment"]["@margin-left"];c&&(A.odtMarginLeft=inchesToMm(c))}}return{attrs:A,nodeTypeName:s}}function getListNodesHandlers(){return{list:(r,e)=>{const n=r.listTracker;n.pushList(e["@xml:id"],e["@style-name"]);const{nodeTypeName:A,attrs:o}=processListStyle(r,n.getCurrentList().level);r.current.meta.list_type=A,e["@xml:id"]&&(o.id=e["@xml:id"]),e["@continue-list"]&&(o.continue=e["@continue-list"]),e["@continue-numbering"]&&(o.continue="_last"),r.openNode();const s=e["list-item"].map(a=>({"list-item":a}));iterateChildren(s,a=>{r.handle(a.tag,a.value)}),r.current.content.length===0?r.dropNode():r.closeNode(A,o),n.listStack.pop()},"list-item":(r,e)=>{r.openNode(),iterateChildren(e.$value,A=>r.handle(A.tag,A.value));const n={};n.markup="* ",r.closeNode("list_item",n)}}}function getTableNodesHandlers(){return{table:(r,e)=>{r.openNode();for(const n of e["table-row"])r.handle("table-row",n);r.closeNode("table")},"table-row":(r,e)=>{r.openNode();for(const n of e["table-cell"])r.handle("table-cell",n);r.closeNode("table_row")},"table-cell":(r,e)=>{r.openNode(),iterateChildren(e.$value,n=>r.handle(n.tag,n.value)),r.closeNode("table_cell")}}}class ListNumbering{constructor(e){this.id=e,this.levels={},this.forceStart={};for(let n=0;n<20;n++)this.levels[n]=1}clearAbove(e){for(let n=e+1;n<20;n++)this.levels[n]=1}clone(e){const n=new ListNumbering(e);return n.levels=structuredClone(n.levels),n.forceStart=structuredClone(n.forceStart),n}}class ListTracker{constructor(){this.listStack=[]}pushList(e,n=""){const A={id:e,styleName:n,level:this.listStack.length+1};return this.listStack.push(A),A}getCurrentList(){return this.listStack[this.listStack.length-1]}}const COURIER_FONTS=["Courier New","Courier","Roboto Mono"];function resolveListStyle(r,e,n){let A;return A=r.styles["list-style"].find(o=>o["@name"]===n),A||(A={"@name":n,"list-level-style-number":[],"list-level-style-bullet":[]}),A}function resolveStyle(r,e,n){let A;if(A||(A=r.styles.style.find(o=>o["@name"]===n)),A||(A=e.style.find(o=>o["@name"]===n)),A||(A={"@name":n,styles:[]}),A.styles=[n],A["@parent-style-name"]){const o=resolveStyle(r,e,A["@parent-style-name"]);if(o){const s=[...A.styles,...o.styles];for(const a of Object.keys(A))typeof A[a]>"u"&&delete A[a];A={...o,...A,styles:s}}}return A}function tagEnum(r){if(typeof r=="string")return{tag:r,value:r};if(typeof r=="object"){const e=Object.entries(r);if(e.length===1)return{tag:e[0][0],value:e[0][1]}}throw new Error("Incorrect enum: "+JSON.stringify(r))}function iterateChildren(r,e){for(const n of r){if(n==="Unknown")continue;const A=tagEnum(n);e(A)}}class OdtStashContext{constructor(e,n,A,o){this.schema=e,this.stylesTree=A,this.automaticStyles=o,this.ctxStash=[],this.listTracker=new ListTracker,this.currentCtx={handlers:n,content:[],marks:[],meta:{}},this.stash()}stash(){this.ctxStash.push(this.currentCtx);const e={},n={...this.currentCtx.handlers},A=this.currentCtx.content,o=this.currentCtx.marks;return this.currentCtx={...structuredClone({...this.currentCtx,content:void 0,marks:void 0,handlers:void 0}),...e,content:A,marks:o,handlers:n},this.ctxStash.length-1}unstash(){const e=this.ctxStash.pop();if(!e)throw new Error("Unstash failed");this.currentCtx=e}openNode(){this.stash(),this.current.content=[]}dropNode(){this.unstash()}closeNode(e,n={},A=Mark$1.none){const o=this.createNode(e,n,A);return this.unstash(),o&&this.current.content.push(o),o}createNode(e,n={},A=Mark$1.none){const o=this.schema.nodes[e];if(!o)throw new Error("Invalid node type: "+e);const s=o.createAndFill(n,this.current.content,A);if(!s)throw new Error("Error creating node: "+e);return s}createText(e){if(!e)return;const n=uniqMarks(this.current.marks);return this.schema.text(e,n)}styleToMarks(e){const n=[],A=e&&e["text-properties"]||{};if(COURIER_FONTS.indexOf(A["@font-name"]||"")>-1){const o=this.schema.mark("code");n.push(o)}if(A["@font-style"]==="italic"){const o=this.schema.mark("em");n.push(o)}if(A["@font-weight"]==="bold"){const o=this.schema.mark("strong");n.push(o)}return n}handle(e,n){if(!this.current.handlers[e])throw new Error("No handler for node: "+e);if(typeof this.current.handlers[e]!="function")throw new Error("Invalid handler for node: "+e);this.current.handlers[e](this,n)}getElementStyle(e){return typeof e=="object"&&e["@style-name"]?resolveStyle(this.stylesTree,this.automaticStyles,e["@style-name"]):{styles:[]}}get current(){return this.currentCtx}}class OdtParser{constructor(e,n={}){this.schema=e,this.config=n}parse(e){const n=e.contentTree,A=e.stylesTree,o={...getInlineNodesHandlers(),...getBasicNodesHandlers(),...getListNodesHandlers(),...getTableNodesHandlers(),g:()=>{const a=s.createText("INSTEAD OF EMBEDDED DIAGRAM ABOVE USE EMBEDDED DIAGRAM FROM DRIVE AND PUT LINK TO IT IN THE DESCRIPTION. See: https://github.com/mieweb/wikiGDrive/issues/353");a&&s.current.content.push(a)},frame:(a,l)=>{if(l.object&&l.object["@href"]){const c=l.object["@href"].replace(/^\.\//,"")+"/content.xml";if(e[c]){const g=new TextDecoder().decode(e[c]);a.openNode(),a.closeNode("math",{lang:"mathml",content:g});return}}if(l.image&&l.image["@href"]){const c=l.desc?.$value||"",g=l.image["@href"];a.openNode(),a.closeNode("image",{src:g,alt:c})}},annotation:()=>{},note:(a,l)=>{const c=l["note-citation"],g=l["note-body"];if(!(!c||!g)){a.handle("text",{$value:[{$text:c.$value}]});for(const h of g.p)iterateChildren(h.$value,d=>a.handle(d.tag,d.value)),a.closeNode("paragraph"),a.openNode()}}},s=new OdtStashContext(this.schema,o,A,n["automatic-styles"]);return s.openNode(),s.handle("body",n.body),s.closeNode("doc")}}function uniqMarks(r){const e=[];for(const n of r)["strong","italic","underline","subscript","superscript","code"].includes(n.type.name)&&e.find(A=>A.type===n.type)||e.push(n);return e}const convertCodeParagraphsToCodeBlocks=(r,e)=>{const n=r.doc,A=r.schema;let o=r.tr;const s=A.marks.code;return n.descendants((a,l)=>{if(a.type.name==="paragraph"){let c="",g=0;for(let h=0;h<a.childCount;h++){const d=a.child(h),u=d.marks.some(f=>f.type===s);if(d.type.name==="node_bookmark"){c+=`
224
+ `,g+=d.nodeSize;continue}if(d.type.name==="br"){c+=`
225
+ `,g+=d.nodeSize;continue}if(u){c+=d.text||d.textBetween(0,d.content.size),g+=d.nodeSize;continue}break}if(g>0){const h=o.mapping.map(l),d=o.mapping.map(l+1+g);if(c){const u=A.text(c),f=A.nodes.code_block.createAndFill(null,[u]);f&&o.replaceRangeWith(h,d,f)}else o.replace(h,d)}g>0&&(g+2,a.nodeSize)}}),e&&e(o),o.docChanged},ANY_LIST$1=["ordered_list","bullet_list"],fixContinuedLists=(r,e)=>{const n=r.doc;let A=r.tr;const o=new Map;let s="";function a(h){let d=null;s&&o.has(s)&&(d=o.get(s));const u=h.attrs.continue;return u&&(d=o.get(u)),d||(d=new ListNumbering(s)),o.set(s,d),{listNumbering:d}}let l=!0,c=0;function g(h,d=0,u=0){if(h.type.name==="list_item"){const f=o.get("_current"),I=h.content.firstChild;I&&f&&(I.type.name==="paragraph"&&I.content.childCount>0?(f.forceStart[c]&&(delete f.forceStart[c],A=A.setNodeMarkup(A.mapping.map(d-1),h.type,{...h.attrs,value:f.levels[c]})),f.levels[c]++):(A=A.setNodeMarkup(A.mapping.map(d-1),h.type,{...h.attrs,type:"none"}),f.forceStart[c]=!0))}if(!ANY_LIST$1.includes(h.type.name))h.forEach((f,I)=>{g(f,d+I+1,u+1)});else{c++,c===1&&(s=h.attrs.id,l=!0);const{listNumbering:f}=a(h);o.set("_current",f),l||(f.levels[c]=1),h.attrs.start&&(f.levels[c]=h.attrs.start),h.type.name==="ordered_list"&&1<f.levels[c]&&(A=A.setNodeMarkup(A.mapping.map(d-1),h.type,{...h.attrs,start:f.levels[c],continue:void 0})),h.forEach((I,p)=>{g(I,d+p+1,u+1)}),c===1&&o.set("_last",f),c--,l=!1}}return g(n),e&&e(A),A.steps.length>0},convertMathMl=(r,e)=>{const n=r.doc,A=r.schema,o=A.nodes.math,s=A.nodes.code_block;if(!o||!s)return!1;let a=!1;const l=r.tr;return n.forEach((c,g,h)=>{if(c.childCount!==1)return;const d=g,u=c.child(0);if(u.type!==o||u.attrs.content.length===0)return;const f=s.create({lang:u.attrs.lang},A.text(u.attrs.content));l.replaceWith(l.mapping.map(d),l.mapping.map(d+c.nodeSize),f),a=!0}),a?(e&&e(l),l.docChanged):!1},CODEBLOCK_START="",CODEBLOCK_END="",mergeCodeBlocks=(r,e)=>{const n=r.schema;let A=r.tr;const o=n.nodes.code_block,s=n.nodes.paragraph,a=r.doc;let l=0;for(let c=0;c<a.childCount;c++){const g=a.nodeAt(l);if(!g)continue;if(g.type!==o){l+=g.nodeSize;continue}let h=[],d=0;{d+=g.nodeSize;const f=g.text||g.textBetween(0,g.content.size);h.push(f.endsWith(`
226
+ `)?f:f+`
227
+ `)}let u=l+g.nodeSize;for(;;){const f=r.doc.nodeAt(u);if(!f)break;if(u+=f.nodeSize,f.type===s&&f.childCount===0){h.push(`
228
+ `),d+=f.nodeSize;continue}if(f.type===o&&g.attrs.lang===f.attrs.lang&&g.attrs.lang!=="mathml"){const I=f.text||f.textBetween(0,f.content.size);h.push(I.endsWith(`
229
+ `)?I:I+`
230
+ `),d+=f.nodeSize;continue}break}if(h.length>1){const f=A.mapping.map(l),I=A.mapping.map(l+d);let p=h.join("").replace(/\n+$/gm,`
231
+ `);const m=p.split(`
232
+ `);let E=0;for(E=0;E<m.length&&!m[E].trim();E++);m.splice(0,E),p=m.join(`
233
+ `);const B=n.text(p),Q=n.nodes.code_block.createAndFill({lang:g.attrs.lang},[B]);Q&&(A=A.replaceRangeWith(f,I,Q))}l+=d}return r.doc.descendants((c,g)=>{c.type===s&&[CODEBLOCK_START,CODEBLOCK_END].includes(c.textBetween(0,c.content.size))&&(A=A.deleteRange(A.mapping.map(g),A.mapping.map(g+c.nodeSize)))}),e&&e(A),A.docChanged},ANY_LIST=["ordered_list","bullet_list"],fixListsLevels=(r,e)=>{const n=r.doc,A=r.schema,o=A.nodes.bullet_list,s=A.nodes.list_item,a=A.nodes.paragraph,l=r.tr;let c=0,g=[],h=[],d=0;function u(f,I=0,p=0){let m=0;for(let E=0;E<f.length;E++){const B=f[E];if(!ANY_LIST.includes(B.type.name))u(B.children,I+m+1,p+1);else{const Q=B.attrs.odtMarginLeft||0;if(c===0&&(h=[],d=0,g.length>=c))for(let w=0;w<g.length;w++)d<g.length&&Q>g[d]&&(h[c+d]=g[d],d++);if(h[c+d]=Q,c++,u(B.children,I+m,p+1),c--,c===0&&!B.attrs.toc){g=h;for(let w=0;w<d;w++){const y=o.create({type:"none"},s.create(null,Fragment.from([a.create(),B])));l.replaceWith(l.mapping.map(I+m),l.mapping.map(I+m+B.nodeSize),y)}}}m+=B.nodeSize}}return u(n.children),e&&e(l),l.docChanged};function getDefaultsPostProcessFilters({doc:r,filesMap:e}){return[convertCodeParagraphsToCodeBlocks,fixListsLevels,fixContinuedLists,convertMathMl,mergeCodeBlocks]}async function urlRewrite(r,e,n,A){const o=[];n.doc.descendants((l,c)=>{l.type.name==="image"&&o.push({node:l,pos:c})});const s=[];n.doc.descendants((l,c)=>{l.marks.find(g=>g.type.name==="link")&&s.push({node:l,pos:c})});const a=n.tr;for(const{node:l,pos:c}of s){const g=l.marks.find(d=>d.type.name==="link");if(!g)continue;let h=g.attrs.href||"";if(h=await r(h,{type:"A",dest:"kerebron"}),h!==g.attrs.href){const d=l.marks.map(I=>I.type.name==="link"?n.schema.marks.link.create({...I.attrs,href:h}):I),u=n.schema.nodes[l.type.name];let f;u.isText?f=n.schema.text(l.text||"",d):f=u.create(l.attrs,l.content,d),a.replaceWith(a.mapping.map(c),a.mapping.map(c+l.nodeSize),f)}}for(const{node:l,pos:c}of o){let g=l.attrs.src||"";if(g=await r(g,{type:"IMG",dest:"kerebron",filesMap:e}),g!==l.attrs.src){const d=n.schema.nodes[l.type.name].create({...l.attrs,src:g},l.content,l.marks);a.replaceWith(a.mapping.map(c),a.mapping.map(c+l.nodeSize),d)}}return A(a),a.docChanged}async function init(r){const e=await Promise.resolve().then(()=>require("./odt_parser.internal-C8Sm3VVG.cjs")),n=await WebAssembly.instantiate(r,{"./odt_parser.internal.js":e});return e.__wbg_set_wasm(n.instance.exports),n.instance.exports.__wbindgen_start(),e.init_debug(),n.instance,e}let odtWasm;class ExtensionOdt extends Extension{constructor(e={}){super(e),this.config=e,this.name="odt"}getConverters(e,n){const A={fromDoc:async o=>{throw new Error("Not implemented")},toDoc:async o=>{const s=e.config.assetLoad;if(!s)throw new Error("No assetLoad");if(!odtWasm){const d=this.config.debug?await s("odt-wasm/odt-parser-debug.wasm"):await s("odt-wasm/odt-parser.wasm");odtWasm=await init(d)}const{doc:a,filesMap:l}=A.odtToJson(o,odtWasm),c=getDefaultsPostProcessFilters({doc:a,filesMap:l}).concat(this.config.postProcessCommands||[]);let g=EditorState$1.create({doc:a});const h=d=>{g=g.apply(d)};if(this.urlFromRewriter&&await urlRewrite(this.urlFromRewriter,l,g,h),c.length>0)for(const d of c)d(g,u=>h(u));if(this.config.debug){const d=new CustomEvent("odt:pmdoc:filtered",{detail:{doc:g.doc}});this.editor.dispatchEvent(d)}return g.doc},odtToJson:(o,s)=>{const a=s.unzip(o),l={};for(const u of a.keys())l[u]=Uint8Array.from(a.get(u));const c=s.parse_styles(a.get("styles.xml")),g=s.parse_content(a.get("content.xml"));if(this.config.debug){const u=new CustomEvent("odt:parsed",{detail:{stylesTree:c,contentTree:g,filesMap:l}});this.editor.dispatchEvent(u)}const h=new OdtParser(e.schema,this.config);h.filesMap=l;const d=h.parse({...l,contentTree:g,stylesTree:c});if(this.config.debug){const u=new CustomEvent("odt:pmdoc",{detail:{doc:d}});this.editor.dispatchEvent(u)}return{doc:d,stylesTree:c,contentTree:g,filesMap:l}}};return{"application/vnd.oasis.opendocument.text":A}}}function createCell(r,e){return r.createAndFill()}function getTableNodeTypes(r){if(r.cached.tableNodeTypes)return r.cached.tableNodeTypes;const e={};return Object.keys(r.nodes).forEach(n=>{const A=r.nodes[n];A.spec.tableRole&&(e[A.spec.tableRole]=A)}),r.cached.tableNodeTypes=e,e}function createTable(r,e,n,A,o){const s=getTableNodeTypes(r),a=[],l=[];for(let d=0;d<n;d+=1){const u=createCell(s.cell);if(u&&l.push(u),A){const f=createCell(s.header_cell);f&&a.push(f)}}const c=[];for(let d=0;d<e;d+=1)c.push(s.row.createChecked(null,A&&d===0?a:l));const g={},h=r.spec.nodes.get("table");for(const[d,u]of Object.entries(h.attrs||{}))typeof u.default<"u"&&(g[d]=u.default);return s.table.createChecked(g,c)}let readFromCache,addToCache;if(typeof WeakMap<"u"){const r=new WeakMap;readFromCache=e=>r.get(e),addToCache=(e,n)=>(r.set(e,n),n)}else{const r=[];let n=0;readFromCache=A=>{for(let o=0;o<r.length;o+=2)if(r[o]==A)return r[o+1]},addToCache=(A,o)=>(n==10&&(n=0),r[n++]=A,r[n++]=o)}class TableMap{constructor(e,n,A,o){this.width=e,this.height=n,this.map=A,this.problems=o}findCell(e){for(let n=0;n<this.map.length;n++){const A=this.map[n];if(A!=e)continue;const o=n%this.width,s=n/this.width|0;let a=o+1,l=s+1;for(let c=1;a<this.width&&this.map[n+c]==A;c++)a++;for(let c=1;l<this.height&&this.map[n+this.width*c]==A;c++)l++;return{left:o,top:s,right:a,bottom:l}}throw new RangeError(`No cell with offset ${e} found`)}colCount(e){for(let n=0;n<this.map.length;n++)if(this.map[n]==e)return n%this.width;throw new RangeError(`No cell with offset ${e} found`)}nextCell(e,n,A){const{left:o,right:s,top:a,bottom:l}=this.findCell(e);return n=="horiz"?(A<0?o==0:s==this.width)?null:this.map[a*this.width+(A<0?o-1:s)]:(A<0?a==0:l==this.height)?null:this.map[o+this.width*(A<0?a-1:l)]}rectBetween(e,n){const{left:A,right:o,top:s,bottom:a}=this.findCell(e),{left:l,right:c,top:g,bottom:h}=this.findCell(n);return{left:Math.min(A,l),top:Math.min(s,g),right:Math.max(o,c),bottom:Math.max(a,h)}}cellsInRect(e){const n=[],A={};for(let o=e.top;o<e.bottom;o++)for(let s=e.left;s<e.right;s++){const a=o*this.width+s,l=this.map[a];A[l]||(A[l]=!0,!(s==e.left&&s&&this.map[a-1]==l||o==e.top&&o&&this.map[a-this.width]==l)&&n.push(l))}return n}positionAt(e,n,A){for(let o=0,s=0;;o++){const a=s+A.child(o).nodeSize;if(o==e){let l=n+e*this.width;const c=(e+1)*this.width;for(;l<c&&this.map[l]<s;)l++;return l==c?a-1:this.map[l]}s=a}}static get(e){return readFromCache(e)||addToCache(e,computeMap(e))}}function computeMap(r){if(r.type.spec.tableRole!="table")throw new RangeError("Not a table node: "+r.type.name);const e=findWidth(r),n=r.childCount,A=[];let o=0,s=null;const a=[];for(let g=0,h=e*n;g<h;g++)A[g]=0;for(let g=0,h=0;g<n;g++){const d=r.child(g);h++;for(let I=0;;I++){for(;o<A.length&&A[o]!=0;)o++;if(I==d.childCount)break;const p=d.child(I),{colspan:m,rowspan:E,colwidth:B}=p.attrs;for(let Q=0;Q<E;Q++){if(Q+g>=n){(s||(s=[])).push({type:"overlong_rowspan",pos:h,n:E-Q});break}const w=o+Q*e;for(let y=0;y<m;y++){A[w+y]==0?A[w+y]=h:(s||(s=[])).push({type:"collision",row:g,pos:h,n:m-y});const S=B&&B[y];if(S){const D=(w+y)%e*2,_=a[D];_==null||_!=S&&a[D+1]==1?(a[D]=S,a[D+1]=1):_==S&&a[D+1]++}}}o+=m,h+=p.nodeSize}const u=(g+1)*e;let f=0;for(;o<u;)A[o++]==0&&f++;f&&(s||(s=[])).push({type:"missing",row:g,n:f}),h++}(e===0||n===0)&&(s||(s=[])).push({type:"zero_sized"});const l=new TableMap(e,n,A,s);let c=!1;for(let g=0;!c&&g<a.length;g+=2)a[g]!=null&&a[g+1]<n&&(c=!0);return c&&findBadColWidths(l,a,r),l}function findWidth(r){let e=-1,n=!1;for(let A=0;A<r.childCount;A++){const o=r.child(A);let s=0;if(n)for(let a=0;a<A;a++){const l=r.child(a);for(let c=0;c<l.childCount;c++){const g=l.child(c);a+g.attrs.rowspan>A&&(s+=g.attrs.colspan)}}for(let a=0;a<o.childCount;a++){const l=o.child(a);s+=l.attrs.colspan,l.attrs.rowspan>1&&(n=!0)}e==-1?e=s:e!=s&&(e=Math.max(e,s))}return e}function findBadColWidths(r,e,n){r.problems||(r.problems=[]);const A={};for(let o=0;o<r.map.length;o++){const s=r.map[o];if(A[s])continue;A[s]=!0;const a=n.nodeAt(s);if(!a)throw new RangeError(`No cell with offset ${s} found`);let l=null;const c=a.attrs;for(let g=0;g<c.colspan;g++){const h=(o+g)%r.width,d=e[h*2];d!=null&&(!c.colwidth||c.colwidth[g]!=d)&&((l||(l=freshColWidth(c)))[g]=d)}l&&r.problems.unshift({type:"colwidth mismatch",pos:s,colwidth:l})}}function freshColWidth(r){if(r.colwidth)return r.colwidth.slice();const e=[];for(let n=0;n<r.colspan;n++)e.push(0);return e}function tableNodeTypes(r){let e=r.cached.tableNodeTypes;if(!e){e=r.cached.tableNodeTypes={};for(const n in r.nodes){const A=r.nodes[n],o=A.spec.tableRole;o&&(e[o]=A)}}return e}const tableEditingKey=new PluginKey("selectingCells");function cellAround(r){for(let e=r.depth-1;e>0;e--)if(r.node(e).type.spec.tableRole=="row")return r.node(0).resolve(r.before(e+1));return null}function cellWrapping(r){for(let e=r.depth;e>0;e--){const n=r.node(e).type.spec.tableRole;if(n==="cell"||n==="header_cell")return r.node(e)}return null}function isInTable(r){const e=r.selection.$head;for(let n=e.depth;n>0;n--)if(e.node(n).type.spec.tableRole=="row")return!0;return!1}function selectionCell(r){const e=r.selection;if("$anchorCell"in e&&e.$anchorCell)return e.$anchorCell.pos>e.$headCell.pos?e.$anchorCell:e.$headCell;if("node"in e&&e.node&&e.node.type.spec.tableRole=="cell")return e.$anchor;const n=cellAround(e.$head)||cellNear(e.$head);if(n)return n;throw new RangeError(`No cell found around position ${e.head}`)}function cellNear(r){for(let e=r.nodeAfter,n=r.pos;e;e=e.firstChild,n++){const A=e.type.spec.tableRole;if(A=="cell"||A=="header_cell")return r.doc.resolve(n)}for(let e=r.nodeBefore,n=r.pos;e;e=e.lastChild,n--){const A=e.type.spec.tableRole;if(A=="cell"||A=="header_cell")return r.doc.resolve(n-e.nodeSize)}}function pointsAtCell(r){return r.parent.type.spec.tableRole=="row"&&!!r.nodeAfter}function moveCellForward(r){return r.node(0).resolve(r.pos+r.nodeAfter.nodeSize)}function inSameTable(r,e){return r.depth==e.depth&&r.pos>=e.start(-1)&&r.pos<=e.end(-1)}function nextCell(r,e,n){const A=r.node(-1),o=TableMap.get(A),s=r.start(-1),a=o.nextCell(r.pos-s,e,n);return a==null?null:r.node(0).resolve(s+a)}function removeColSpan(r,e,n=1){const A={...r,colspan:r.colspan-n};return A.colwidth&&(A.colwidth=A.colwidth.slice(),A.colwidth.splice(e,n),A.colwidth.some(o=>o>0)||(A.colwidth=null)),A}function addColSpan(r,e,n=1){const A={...r,colspan:r.colspan+n};if(A.colwidth){A.colwidth=A.colwidth.slice();for(let o=0;o<n;o++)A.colwidth.splice(e,0,0)}return A}function columnIsHeader(r,e,n){const A=tableNodeTypes(e.type.schema).header_cell;for(let o=0;o<r.height;o++)if(e.nodeAt(r.map[n+o*r.width]).type!=A)return!1;return!0}class CellSelection extends Selection{constructor(e,n=e){const A=e.node(-1),o=TableMap.get(A),s=e.start(-1),a=o.rectBetween(e.pos-s,n.pos-s),l=e.node(0),c=o.cellsInRect(a).filter(h=>h!=n.pos-s);c.unshift(n.pos-s);const g=c.map(h=>{const d=A.nodeAt(h);if(!d)throw RangeError(`No cell with offset ${h} found`);const u=s+h+1;return new SelectionRange$2(l.resolve(u),l.resolve(u+d.content.size))});super(g[0].$from,g[0].$to,g),this.$anchorCell=e,this.$headCell=n}map(e,n){const A=e.resolve(n.map(this.$anchorCell.pos)),o=e.resolve(n.map(this.$headCell.pos));if(pointsAtCell(A)&&pointsAtCell(o)&&inSameTable(A,o)){const s=this.$anchorCell.node(-1)!=A.node(-1);return s&&this.isRowSelection()?CellSelection.rowSelection(A,o):s&&this.isColSelection()?CellSelection.colSelection(A,o):new CellSelection(A,o)}return TextSelection.between(A,o)}content(){const e=this.$anchorCell.node(-1),n=TableMap.get(e),A=this.$anchorCell.start(-1),o=n.rectBetween(this.$anchorCell.pos-A,this.$headCell.pos-A),s={},a=[];for(let c=o.top;c<o.bottom;c++){const g=[];for(let h=c*n.width+o.left,d=o.left;d<o.right;d++,h++){const u=n.map[h];if(s[u])continue;s[u]=!0;const f=n.findCell(u);let I=e.nodeAt(u);if(!I)throw RangeError(`No cell with offset ${u} found`);const p=o.left-f.left,m=f.right-o.right;if(p>0||m>0){let E=I.attrs;if(p>0&&(E=removeColSpan(E,0,p)),m>0&&(E=removeColSpan(E,E.colspan-m,m)),f.left<o.left){if(I=I.type.createAndFill(E),!I)throw RangeError(`Could not create cell with attrs ${JSON.stringify(E)}`)}else I=I.type.create(E,I.content)}if(f.top<o.top||f.bottom>o.bottom){const E={...I.attrs,rowspan:Math.min(f.bottom,o.bottom)-Math.max(f.top,o.top)};f.top<o.top?I=I.type.createAndFill(E):I=I.type.create(E,I.content)}g.push(I)}a.push(e.child(c).copy(Fragment.from(g)))}const l=this.isColSelection()&&this.isRowSelection()?e:a;return new Slice(Fragment.from(l),1,1)}replace(e,n=Slice.empty){const A=e.steps.length,o=this.ranges;for(let a=0;a<o.length;a++){const{$from:l,$to:c}=o[a],g=e.mapping.slice(A);e.replace(g.map(l.pos),g.map(c.pos),a?Slice.empty:n)}const s=Selection.findFrom(e.doc.resolve(e.mapping.slice(A).map(this.to)),-1);s&&e.setSelection(s)}replaceWith(e,n){this.replace(e,new Slice(Fragment.from(n),0,0))}forEachCell(e){const n=this.$anchorCell.node(-1),A=TableMap.get(n),o=this.$anchorCell.start(-1),s=A.cellsInRect(A.rectBetween(this.$anchorCell.pos-o,this.$headCell.pos-o));for(let a=0;a<s.length;a++)e(n.nodeAt(s[a]),o+s[a])}isColSelection(){const e=this.$anchorCell.index(-1),n=this.$headCell.index(-1);if(Math.min(e,n)>0)return!1;const A=e+this.$anchorCell.nodeAfter.attrs.rowspan,o=n+this.$headCell.nodeAfter.attrs.rowspan;return Math.max(A,o)==this.$headCell.node(-1).childCount}static colSelection(e,n=e){const A=e.node(-1),o=TableMap.get(A),s=e.start(-1),a=o.findCell(e.pos-s),l=o.findCell(n.pos-s),c=e.node(0);return a.top<=l.top?(a.top>0&&(e=c.resolve(s+o.map[a.left])),l.bottom<o.height&&(n=c.resolve(s+o.map[o.width*(o.height-1)+l.right-1]))):(l.top>0&&(n=c.resolve(s+o.map[l.left])),a.bottom<o.height&&(e=c.resolve(s+o.map[o.width*(o.height-1)+a.right-1]))),new CellSelection(e,n)}isRowSelection(){const e=this.$anchorCell.node(-1),n=TableMap.get(e),A=this.$anchorCell.start(-1),o=n.colCount(this.$anchorCell.pos-A),s=n.colCount(this.$headCell.pos-A);if(Math.min(o,s)>0)return!1;const a=o+this.$anchorCell.nodeAfter.attrs.colspan,l=s+this.$headCell.nodeAfter.attrs.colspan;return Math.max(a,l)==n.width}eq(e){return e instanceof CellSelection&&e.$anchorCell.pos==this.$anchorCell.pos&&e.$headCell.pos==this.$headCell.pos}static rowSelection(e,n=e){const A=e.node(-1),o=TableMap.get(A),s=e.start(-1),a=o.findCell(e.pos-s),l=o.findCell(n.pos-s),c=e.node(0);return a.left<=l.left?(a.left>0&&(e=c.resolve(s+o.map[a.top*o.width])),l.right<o.width&&(n=c.resolve(s+o.map[o.width*(l.top+1)-1]))):(l.left>0&&(n=c.resolve(s+o.map[l.top*o.width])),a.right<o.width&&(e=c.resolve(s+o.map[o.width*(a.top+1)-1]))),new CellSelection(e,n)}toJSON(){return{type:"cell",anchor:this.$anchorCell.pos,head:this.$headCell.pos}}static fromJSON(e,n){return new CellSelection(e.resolve(n.anchor),e.resolve(n.head))}static create(e,n,A=n){return new CellSelection(e.resolve(n),e.resolve(A))}getBookmark(){return new CellBookmark(this.$anchorCell.pos,this.$headCell.pos)}}CellSelection.prototype.visible=!1;Selection.jsonID("cell",CellSelection);class CellBookmark{constructor(e,n){this.anchor=e,this.head=n}map(e){return new CellBookmark(e.map(this.anchor),e.map(this.head))}resolve(e){const n=e.resolve(this.anchor),A=e.resolve(this.head);return n.parent.type.spec.tableRole=="row"&&A.parent.type.spec.tableRole=="row"&&n.index()<n.parent.childCount&&A.index()<A.parent.childCount&&inSameTable(n,A)?new CellSelection(n,A):Selection.near(A,1)}}function drawCellSelection(r){if(!(r.selection instanceof CellSelection))return null;const e=[];return r.selection.forEachCell((n,A)=>{e.push(Decoration$1.node(A,A+n.nodeSize,{class:"selectedCell"}))}),DecorationSet.create(r.doc,e)}function isCellBoundarySelection({$from:r,$to:e}){if(r.pos==e.pos||r.pos<e.pos-6)return!1;let n=r.pos,A=e.pos,o=r.depth;for(;o>=0&&!(r.after(o+1)<r.end(o));o--,n++);for(let s=e.depth;s>=0&&!(e.before(s+1)>e.start(s));s--,A--);return n==A&&/row|table/.test(r.node(o).type.spec.tableRole)}function isTextSelectionAcrossCells({$from:r,$to:e}){let n,A;for(let o=r.depth;o>0;o--){const s=r.node(o);if(s.type.spec.tableRole==="cell"||s.type.spec.tableRole==="header_cell"){n=s;break}}for(let o=e.depth;o>0;o--){const s=e.node(o);if(s.type.spec.tableRole==="cell"||s.type.spec.tableRole==="header_cell"){A=s;break}}return n!==A&&e.parentOffset===0}function normalizeSelection(r,e,n){const A=(e||r).selection,o=(e||r).doc;let s,a;if(A instanceof NodeSelection&&(a=A.node.type.spec.tableRole)){if(a=="cell"||a=="header_cell")s=CellSelection.create(o,A.from);else if(a=="row"){const l=o.resolve(A.from+1);s=CellSelection.rowSelection(l,l)}else if(!n){const l=TableMap.get(A.node),c=A.from+1,g=c+l.map[l.width*l.height-1];s=CellSelection.create(o,c+1,g)}}else A instanceof TextSelection&&isCellBoundarySelection(A)?s=TextSelection.create(o,A.from):A instanceof TextSelection&&isTextSelectionAcrossCells(A)&&(s=TextSelection.create(o,A.$from.start(),A.$from.end()));return s&&(e||(e=r.tr)).setSelection(s),e}class TableView{constructor(e,n){this.node=e,this.defaultCellMinWidth=n,this.dom=document.createElement("div"),this.dom.className="tableWrapper",this.table=this.dom.appendChild(document.createElement("table")),this.table.style.setProperty("--default-cell-min-width",`${n}px`),this.colgroup=this.table.appendChild(document.createElement("colgroup")),updateColumnsOnResize(e,this.colgroup,this.table,n),this.contentDOM=this.table.appendChild(document.createElement("tbody"))}update(e){return e.type!=this.node.type?!1:(this.node=e,updateColumnsOnResize(e,this.colgroup,this.table,this.defaultCellMinWidth),!0)}ignoreMutation(e){return e.type=="attributes"&&(e.target==this.table||this.colgroup.contains(e.target))}}function updateColumnsOnResize(r,e,n,A,o,s){let a=0,l=!0,c=e.firstChild;const g=r.firstChild;if(g){for(let h=0,d=0;h<g.childCount;h++){const{colspan:u,colwidth:f}=g.child(h).attrs;for(let I=0;I<u;I++,d++){const p=o==d?s:f&&f[I],m=p?p+"px":"";if(a+=p||A,p||(l=!1),c)c.style.width!=m&&(c.style.width=m),c=c.nextSibling;else{const E=document.createElement("col");E.style.width=m,e.appendChild(E)}}}for(;c;){const h=c.nextSibling;c.parentNode?.removeChild(c),c=h}l?(n.style.width=a+"px",n.style.minWidth=""):(n.style.width="",n.style.minWidth=a+"px")}}const columnResizingPluginKey=new PluginKey("tableColumnResizing");function columnResizing({handleWidth:r=5,cellMinWidth:e=25,defaultCellMinWidth:n=100,View:A=TableView,lastColumnResizable:o=!0}={}){const s=new Plugin({key:columnResizingPluginKey,state:{init(a,l){const c=s.spec?.props?.nodeViews,g=tableNodeTypes(l.schema).table.name;return A&&c&&(c[g]=(h,d)=>new A(h,n,d)),new ResizeState(-1,!1)},apply(a,l){return l.apply(a)}},props:{attributes:a=>{const l=columnResizingPluginKey.getState(a);return l&&l.activeHandle>-1?{class:"resize-cursor"}:{}},handleDOMEvents:{mousemove:(a,l)=>{handleMouseMove(a,l,r,o)},mouseleave:a=>{handleMouseLeave(a)},mousedown:(a,l)=>{handleMouseDown$1(a,l,e,n)}},decorations:a=>{const l=columnResizingPluginKey.getState(a);if(l&&l.activeHandle>-1)return handleDecorations(a,l.activeHandle)},nodeViews:{}}});return s}class ResizeState{constructor(e,n){this.activeHandle=e,this.dragging=n}apply(e){const n=e.getMeta(columnResizingPluginKey);if(n&&n.setHandle!=null)return new ResizeState(n.setHandle,!1);if(n&&n.setDragging!==void 0)return new ResizeState(this.activeHandle,n.setDragging);if(this.activeHandle>-1&&e.docChanged){let A=e.mapping.map(this.activeHandle,-1);return pointsAtCell(e.doc.resolve(A))||(A=-1),new ResizeState(A,this.dragging)}return this}}function handleMouseMove(r,e,n,A){if(!r.editable)return;const o=columnResizingPluginKey.getState(r.state);if(o&&!o.dragging){const s=domCellAround(e.target);let a=-1;if(s){const{left:l,right:c}=s.getBoundingClientRect();e.clientX-l<=n?a=edgeCell(r,e,"left",n):c-e.clientX<=n&&(a=edgeCell(r,e,"right",n))}if(a!=o.activeHandle){if(!A&&a!==-1){const l=r.state.doc.resolve(a),c=l.node(-1),g=TableMap.get(c),h=l.start(-1);if(g.colCount(l.pos-h)+l.nodeAfter.attrs.colspan-1==g.width-1)return}updateHandle(r,a)}}}function handleMouseLeave(r){if(!r.editable)return;const e=columnResizingPluginKey.getState(r.state);e&&e.activeHandle>-1&&!e.dragging&&updateHandle(r,-1)}function handleMouseDown$1(r,e,n,A){if(!r.editable)return!1;const o=r.dom.ownerDocument.defaultView||globalThis,s=columnResizingPluginKey.getState(r.state);if(!s||s.activeHandle==-1||s.dragging)return!1;const a=r.state.doc.nodeAt(s.activeHandle),l=currentColWidth(r,s.activeHandle,a.attrs);r.dispatch(r.state.tr.setMeta(columnResizingPluginKey,{setDragging:{startX:e.clientX,startWidth:l}}));function c(h){o.removeEventListener("mouseup",c),o.removeEventListener("mousemove",g);const d=columnResizingPluginKey.getState(r.state);d?.dragging&&(updateColumnWidth(r,d.activeHandle,draggedWidth(d.dragging,h,n)),r.dispatch(r.state.tr.setMeta(columnResizingPluginKey,{setDragging:null})))}function g(h){if(!h.which)return c(h);const d=columnResizingPluginKey.getState(r.state);if(d&&d.dragging){const u=draggedWidth(d.dragging,h,n);displayColumnWidth(r,d.activeHandle,u,A)}}return displayColumnWidth(r,s.activeHandle,l,A),o.addEventListener("mouseup",c),o.addEventListener("mousemove",g),e.preventDefault(),!0}function currentColWidth(r,e,{colspan:n,colwidth:A}){const o=A&&A[A.length-1];if(o)return o;const s=r.domAtPos(e);let l=s.node.childNodes[s.offset].offsetWidth,c=n;if(A)for(let g=0;g<n;g++)A[g]&&(l-=A[g],c--);return l/c}function domCellAround(r){for(;r&&r.nodeName!="TD"&&r.nodeName!="TH";)r=r.classList&&r.classList.contains("ProseMirror")?null:r.parentNode;return r}function edgeCell(r,e,n,A){const o=n=="right"?-A:A,s=r.posAtCoords({left:e.clientX+o,top:e.clientY});if(!s)return-1;const{pos:a}=s,l=cellAround(r.state.doc.resolve(a));if(!l)return-1;if(n=="right")return l.pos;const c=TableMap.get(l.node(-1)),g=l.start(-1),h=c.map.indexOf(l.pos-g);return h%c.width==0?-1:g+c.map[h-1]}function draggedWidth(r,e,n){const A=e.clientX-r.startX;return Math.max(n,r.startWidth+A)}function updateHandle(r,e){r.dispatch(r.state.tr.setMeta(columnResizingPluginKey,{setHandle:e}))}function updateColumnWidth(r,e,n){const A=r.state.doc.resolve(e),o=A.node(-1),s=TableMap.get(o),a=A.start(-1),l=s.colCount(A.pos-a)+A.nodeAfter.attrs.colspan-1,c=r.state.tr;for(let g=0;g<s.height;g++){const h=g*s.width+l;if(g&&s.map[h]==s.map[h-s.width])continue;const d=s.map[h],u=o.nodeAt(d).attrs,f=u.colspan==1?0:l-s.colCount(d);if(u.colwidth&&u.colwidth[f]==n)continue;const I=u.colwidth?u.colwidth.slice():zeroes(u.colspan);I[f]=n,c.setNodeMarkup(a+d,null,{...u,colwidth:I})}c.docChanged&&r.dispatch(c)}function displayColumnWidth(r,e,n,A){const o=r.state.doc.resolve(e),s=o.node(-1),a=o.start(-1),l=TableMap.get(s).colCount(o.pos-a)+o.nodeAfter.attrs.colspan-1;let c=r.domAtPos(o.start(-1)).node;for(;c&&c.nodeName!="TABLE";)c=c.parentNode;c&&updateColumnsOnResize(s,c.firstChild,c,A,l,n)}function zeroes(r){return Array(r).fill(0)}function handleDecorations(r,e){const n=[],A=r.doc.resolve(e),o=A.node(-1);if(!o)return DecorationSet.empty;const s=TableMap.get(o),a=A.start(-1),l=s.colCount(A.pos-a)+A.nodeAfter.attrs.colspan-1;for(let c=0;c<s.height;c++){const g=l+c*s.width;if((l==s.width-1||s.map[g]!=s.map[g+1])&&(c==0||s.map[g]!=s.map[g-s.width])){const h=s.map[g],d=a+h+o.nodeAt(h).nodeSize-1,u=document.createElement("div");u.className="column-resize-handle",columnResizingPluginKey.getState(r)?.dragging&&n.push(Decoration$1.node(a+h,a+h+o.nodeAt(h).nodeSize,{class:"column-resize-dragging"})),n.push(Decoration$1.widget(d,u))}}return DecorationSet.create(r.doc,n)}const fixTablesKey=new PluginKey("fix-tables");function changedDescendants(r,e,n,A){const o=r.childCount,s=e.childCount;e:for(let a=0,l=0;a<s;a++){const c=e.child(a);for(let g=l,h=Math.min(o,a+3);g<h;g++)if(r.child(g)==c){l=g+1,n+=c.nodeSize;continue e}A(c,n),l<o&&r.child(l).sameMarkup(c)?changedDescendants(r.child(l),c,n+1,A):c.nodesBetween(0,c.content.size,A,n+1),n+=c.nodeSize}}function fixTables(r,e){let n;const A=(o,s)=>{o.type.spec.tableRole=="table"&&(n=fixTable(r,o,s,n))};return e?e.doc!=r.doc&&changedDescendants(e.doc,r.doc,0,A):r.doc.descendants(A),n}function fixTable(r,e,n,A){const o=TableMap.get(e);if(!o.problems)return A;A||(A=r.tr);const s=[];for(let c=0;c<o.height;c++)s.push(0);for(let c=0;c<o.problems.length;c++){const g=o.problems[c];if(g.type=="collision"){const h=e.nodeAt(g.pos);if(!h)continue;const d=h.attrs;for(let u=0;u<d.rowspan;u++)s[g.row+u]+=g.n;A.setNodeMarkup(A.mapping.map(n+1+g.pos),null,removeColSpan(d,d.colspan-g.n,g.n))}else if(g.type=="missing")s[g.row]+=g.n;else if(g.type=="overlong_rowspan"){const h=e.nodeAt(g.pos);if(!h)continue;A.setNodeMarkup(A.mapping.map(n+1+g.pos),null,{...h.attrs,rowspan:h.attrs.rowspan-g.n})}else if(g.type=="colwidth mismatch"){const h=e.nodeAt(g.pos);if(!h)continue;A.setNodeMarkup(A.mapping.map(n+1+g.pos),null,{...h.attrs,colwidth:g.colwidth})}else if(g.type=="zero_sized"){const h=A.mapping.map(n);A.delete(h,h+e.nodeSize)}}let a,l;for(let c=0;c<s.length;c++)s[c]&&(a==null&&(a=c),l=c);for(let c=0,g=n+1;c<o.height;c++){const h=e.child(c),d=g+h.nodeSize,u=s[c];if(u>0){let f="cell";h.firstChild&&(f=h.firstChild.type.spec.tableRole);const I=[];for(let m=0;m<u;m++){const E=tableNodeTypes(r.schema)[f].createAndFill();E&&I.push(E)}const p=(c==0||a==c-1)&&l==c?g+1:d-1;A.insert(A.mapping.map(p),I)}g=d}return A.setMeta(fixTablesKey,{fixTables:!0})}function selectedRect(r){const e=r.selection,n=selectionCell(r),A=n.node(-1),o=n.start(-1),s=TableMap.get(A);return{...e instanceof CellSelection?s.rectBetween(e.$anchorCell.pos-o,e.$headCell.pos-o):s.findCell(n.pos-o),tableStart:o,map:s,table:A}}function addColumn(r,{map:e,tableStart:n,table:A},o){let s=o>0?-1:0;columnIsHeader(e,A,o+s)&&(s=o==0||o==e.width?null:0);for(let a=0;a<e.height;a++){const l=a*e.width+o;if(o>0&&o<e.width&&e.map[l-1]==e.map[l]){const c=e.map[l],g=A.nodeAt(c);r.setNodeMarkup(r.mapping.map(n+c),null,addColSpan(g.attrs,o-e.colCount(c))),a+=g.attrs.rowspan-1}else{const c=s==null?tableNodeTypes(A.type.schema).cell:A.nodeAt(e.map[l+s]).type,g=e.positionAt(a,o,A);r.insert(r.mapping.map(n+g),c.createAndFill())}}return r}function addColumnBefore(r,e){if(!isInTable(r))return!1;if(e){const n=selectedRect(r);e(addColumn(r.tr,n,n.left))}return!0}function addColumnAfter(r,e){if(!isInTable(r))return!1;if(e){const n=selectedRect(r);e(addColumn(r.tr,n,n.right))}return!0}function removeColumn(r,{map:e,table:n,tableStart:A},o){const s=r.mapping.maps.length;for(let a=0;a<e.height;){const l=a*e.width+o,c=e.map[l],g=n.nodeAt(c),h=g.attrs;if(o>0&&e.map[l-1]==c||o<e.width-1&&e.map[l+1]==c)r.setNodeMarkup(r.mapping.slice(s).map(A+c),null,removeColSpan(h,o-e.colCount(c)));else{const d=r.mapping.slice(s).map(A+c);r.delete(d,d+g.nodeSize)}a+=h.rowspan}}function deleteColumn(r,e){if(!isInTable(r))return!1;if(e){const n=selectedRect(r),A=r.tr;if(n.left==0&&n.right==n.map.width)return!1;for(let o=n.right-1;removeColumn(A,n,o),o!=n.left;o--){const s=n.tableStart?A.doc.nodeAt(n.tableStart-1):A.doc;if(!s)throw RangeError("No table found");n.table=s,n.map=TableMap.get(s)}e(A)}return!0}function rowIsHeader(r,e,n){const A=tableNodeTypes(e.type.schema).header_cell;for(let o=0;o<r.width;o++)if(e.nodeAt(r.map[o+n*r.width])?.type!=A)return!1;return!0}function addRow(r,{map:e,tableStart:n,table:A},o){let s=n;for(let c=0;c<o;c++)s+=A.child(c).nodeSize;const a=[];let l=o>0?-1:0;rowIsHeader(e,A,o+l)&&(l=o==0||o==e.height?null:0);for(let c=0,g=e.width*o;c<e.width;c++,g++)if(o>0&&o<e.height&&e.map[g]==e.map[g-e.width]){const h=e.map[g],d=A.nodeAt(h).attrs;r.setNodeMarkup(n+h,null,{...d,rowspan:d.rowspan+1}),c+=d.colspan-1}else{const d=(l==null?tableNodeTypes(A.type.schema).cell:A.nodeAt(e.map[g+l*e.width])?.type)?.createAndFill();d&&a.push(d)}return r.insert(s,tableNodeTypes(A.type.schema).row.create(null,a)),r}function addRowBefore(r,e){if(!isInTable(r))return!1;if(e){const n=selectedRect(r);e(addRow(r.tr,n,n.top))}return!0}function addRowAfter(r,e){if(!isInTable(r))return!1;if(e){const n=selectedRect(r);e(addRow(r.tr,n,n.bottom))}return!0}function removeRow(r,{map:e,table:n,tableStart:A},o){let s=0;for(let g=0;g<o;g++)s+=n.child(g).nodeSize;const a=s+n.child(o).nodeSize,l=r.mapping.maps.length;r.delete(s+A,a+A);const c=new Set;for(let g=0,h=o*e.width;g<e.width;g++,h++){const d=e.map[h];if(!c.has(d)){if(c.add(d),o>0&&d==e.map[h-e.width]){const u=n.nodeAt(d).attrs;r.setNodeMarkup(r.mapping.slice(l).map(d+A),null,{...u,rowspan:u.rowspan-1}),g+=u.colspan-1}else if(o<e.height&&d==e.map[h+e.width]){const u=n.nodeAt(d),f=u.attrs,I=u.type.create({...f,rowspan:u.attrs.rowspan-1},u.content),p=e.positionAt(o+1,g,n);r.insert(r.mapping.slice(l).map(A+p),I),g+=f.colspan-1}}}}function deleteRow(r,e){if(!isInTable(r))return!1;if(e){const n=selectedRect(r),A=r.tr;if(n.top==0&&n.bottom==n.map.height)return!1;for(let o=n.bottom-1;removeRow(A,n,o),o!=n.top;o--){const s=n.tableStart?A.doc.nodeAt(n.tableStart-1):A.doc;if(!s)throw RangeError("No table found");n.table=s,n.map=TableMap.get(n.table)}e(A)}return!0}function isEmpty(r){const e=r.content;return e.childCount==1&&e.child(0).isTextblock&&e.child(0).childCount==0}function cellsOverlapRectangle({width:r,height:e,map:n},A){let o=A.top*r+A.left,s=o,a=(A.bottom-1)*r+A.left,l=o+(A.right-A.left-1);for(let c=A.top;c<A.bottom;c++){if(A.left>0&&n[s]==n[s-1]||A.right<r&&n[l]==n[l+1])return!0;s+=r,l+=r}for(let c=A.left;c<A.right;c++){if(A.top>0&&n[o]==n[o-r]||A.bottom<e&&n[a]==n[a+r])return!0;o++,a++}return!1}function mergeCells(r,e){const n=r.selection;if(!(n instanceof CellSelection)||n.$anchorCell.pos==n.$headCell.pos)return!1;const A=selectedRect(r),{map:o}=A;if(cellsOverlapRectangle(o,A))return!1;if(e){const s=r.tr,a={};let l=Fragment.empty,c,g;for(let h=A.top;h<A.bottom;h++)for(let d=A.left;d<A.right;d++){const u=o.map[h*o.width+d],f=A.table.nodeAt(u);if(!(a[u]||!f))if(a[u]=!0,c==null)c=u,g=f;else{isEmpty(f)||(l=l.append(f.content));const I=s.mapping.map(u+A.tableStart);s.delete(I,I+f.nodeSize)}}if(c==null||g==null)return!0;if(s.setNodeMarkup(c+A.tableStart,null,{...addColSpan(g.attrs,g.attrs.colspan,A.right-A.left-g.attrs.colspan),rowspan:A.bottom-A.top}),l.size){const h=c+1+g.content.size,d=isEmpty(g)?c+1:h;s.replaceWith(d+A.tableStart,h+A.tableStart,l)}s.setSelection(new CellSelection(s.doc.resolve(c+A.tableStart))),e(s)}return!0}function splitCell(r,e){const n=tableNodeTypes(r.schema);return splitCellWithType(({node:A})=>n[A.type.spec.tableRole])(r,e)}const splitCellWithType=r=>(e,n)=>{const A=e.selection;let o,s;if(A instanceof CellSelection){if(A.$anchorCell.pos!=A.$headCell.pos)return!1;o=A.$anchorCell.nodeAfter,s=A.$anchorCell.pos}else{if(o=cellWrapping(A.$from),!o)return!1;s=cellAround(A.$from)?.pos}if(o==null||s==null||o.attrs.colspan==1&&o.attrs.rowspan==1)return!1;if(n){let a=o.attrs;const l=[],c=a.colwidth;a.rowspan>1&&(a={...a,rowspan:1}),a.colspan>1&&(a={...a,colspan:1});const g=selectedRect(e),h=e.tr;for(let u=0;u<g.right-g.left;u++)l.push(c?{...a,colwidth:c&&c[u]?[c[u]]:null}:a);let d;for(let u=g.top;u<g.bottom;u++){let f=g.map.positionAt(u,g.left,g.table);u==g.top&&(f+=o.nodeSize);for(let I=g.left,p=0;I<g.right;I++,p++)I==g.left&&u==g.top||h.insert(d=h.mapping.map(f+g.tableStart,1),r({node:o,row:u,col:I}).createAndFill(l[p]))}h.setNodeMarkup(s,r({node:o,row:g.top,col:g.left}),l[0]),A instanceof CellSelection&&h.setSelection(new CellSelection(h.doc.resolve(A.$anchorCell.pos),d?h.doc.resolve(d):void 0)),n(h)}return!0},setCellAttr=(r,e)=>function(n,A){if(!isInTable(n))return!1;const o=selectionCell(n);if(o.nodeAfter.attrs[r]===e)return!1;if(A){const s=n.tr;n.selection instanceof CellSelection?n.selection.forEachCell((a,l)=>{a.attrs[r]!==e&&s.setNodeMarkup(l,null,{...a.attrs,[r]:e})}):s.setNodeMarkup(o.pos,null,{...o.nodeAfter.attrs,[r]:e}),A(s)}return!0};function deprecated_toggleHeader(r){return function(e,n){if(!isInTable(e))return!1;if(n){const A=tableNodeTypes(e.schema),o=selectedRect(e),s=e.tr,a=o.map.cellsInRect(r=="column"?{left:o.left,top:0,right:o.right,bottom:o.map.height}:r=="row"?{left:0,top:o.top,right:o.map.width,bottom:o.bottom}:o),l=a.map(c=>o.table.nodeAt(c));for(let c=0;c<a.length;c++)l[c].type==A.header_cell&&s.setNodeMarkup(o.tableStart+a[c],A.cell,l[c].attrs);if(s.steps.length==0)for(let c=0;c<a.length;c++)s.setNodeMarkup(o.tableStart+a[c],A.header_cell,l[c].attrs);n(s)}return!0}}function isHeaderEnabledByType(r,e,n){const A=e.map.cellsInRect({left:0,top:0,right:r=="row"?e.map.width:1,bottom:r=="column"?e.map.height:1});for(let o=0;o<A.length;o++){const s=e.table.nodeAt(A[o]);if(s&&s.type!==n.header_cell)return!1}return!0}const toggleHeader=(r,e)=>(e=e||{useDeprecatedLogic:!1},e.useDeprecatedLogic?deprecated_toggleHeader(r):function(n,A){if(!isInTable(n))return!1;if(A){const o=tableNodeTypes(n.schema),s=selectedRect(n),a=n.tr,l=isHeaderEnabledByType("row",s,o),c=isHeaderEnabledByType("column",s,o),h=(r==="column"?l:r==="row"?c:!1)?1:0,d=r=="column"?{left:0,top:h,right:1,bottom:s.map.height}:r=="row"?{left:h,top:0,right:s.map.width,bottom:1}:s,u=r=="column"?c?o.cell:o.header_cell:r=="row"?l?o.cell:o.header_cell:o.cell;s.map.cellsInRect(d).forEach(f=>{const I=f+s.tableStart,p=a.doc.nodeAt(I);p&&a.setNodeMarkup(I,u,p.attrs)}),A(a)}return!0}),toggleHeaderRow=toggleHeader("row",{useDeprecatedLogic:!0}),toggleHeaderColumn=toggleHeader("column",{useDeprecatedLogic:!0}),toggleHeaderCell=toggleHeader("cell",{useDeprecatedLogic:!0});function findNextCell(r,e){if(e<0){const n=r.nodeBefore;if(n)return r.pos-n.nodeSize;for(let A=r.index(-1)-1,o=r.before();A>=0;A--){const s=r.node(-1).child(A),a=s.lastChild;if(a)return o-1-a.nodeSize;o-=s.nodeSize}}else{if(r.index()<r.parent.childCount-1)return r.pos+r.nodeAfter.nodeSize;const n=r.node(-1);for(let A=r.indexAfter(-1),o=r.after();A<n.childCount;A++){const s=n.child(A);if(s.childCount)return o+1;o+=s.nodeSize}}return null}const goToNextCell=r=>function(e,n){if(!isInTable(e))return!1;const A=findNextCell(selectionCell(e),r);if(A==null)return!1;if(n){const o=e.doc.resolve(A);n(e.tr.setSelection(TextSelection.between(o,moveCellForward(o))).scrollIntoView())}return!0};function deleteTable(r,e){const n=r.selection.$anchor;for(let A=n.depth;A>0;A--)if(n.node(A).type.spec.tableRole=="table")return e&&e(r.tr.delete(n.before(A),n.after(A)).scrollIntoView()),!0;return!1}function deleteCellSelection(r,e){const n=r.selection;if(!(n instanceof CellSelection))return!1;if(e){const A=r.tr,o=tableNodeTypes(r.schema).cell.createAndFill().content;n.forEachCell((s,a)=>{s.content.eq(o)||A.replace(A.mapping.map(a+1),A.mapping.map(a+s.nodeSize-1),new Slice(o,0,0))}),A.docChanged&&e(A)}return!0}function pastedCells(r){if(!r.size)return null;let{content:e,openStart:n,openEnd:A}=r;for(;e.childCount==1&&(n>0&&A>0||e.child(0).type.spec.tableRole=="table");)n--,A--,e=e.child(0).content;const o=e.child(0),s=o.type.spec.tableRole,a=o.type.schema,l=[];if(s=="row")for(let c=0;c<e.childCount;c++){let g=e.child(c).content;const h=c?0:Math.max(0,n-1),d=c<e.childCount-1?0:Math.max(0,A-1);(h||d)&&(g=fitSlice(tableNodeTypes(a).row,new Slice(g,h,d)).content),l.push(g)}else if(s=="cell"||s=="header_cell")l.push(n||A?fitSlice(tableNodeTypes(a).row,new Slice(e,n,A)).content:e);else return null;return ensureRectangular(a,l)}function ensureRectangular(r,e){const n=[];for(let o=0;o<e.length;o++){const s=e[o];for(let a=s.childCount-1;a>=0;a--){const{rowspan:l,colspan:c}=s.child(a).attrs;for(let g=o;g<o+l;g++)n[g]=(n[g]||0)+c}}let A=0;for(let o=0;o<n.length;o++)A=Math.max(A,n[o]);for(let o=0;o<n.length;o++)if(o>=e.length&&e.push(Fragment.empty),n[o]<A){const s=tableNodeTypes(r).cell.createAndFill(),a=[];for(let l=n[o];l<A;l++)a.push(s);e[o]=e[o].append(Fragment.from(a))}return{height:e.length,width:A,rows:e}}function fitSlice(r,e){const n=r.createAndFill();return new Transform(n).replace(0,n.content.size,e).doc}function clipCells({width:r,height:e,rows:n},A,o){if(r!=A){const s=[],a=[];for(let l=0;l<n.length;l++){const c=n[l],g=[];for(let h=s[l]||0,d=0;h<A;d++){let u=c.child(d%c.childCount);h+u.attrs.colspan>A&&(u=u.type.createChecked(removeColSpan(u.attrs,u.attrs.colspan,h+u.attrs.colspan-A),u.content)),g.push(u),h+=u.attrs.colspan;for(let f=1;f<u.attrs.rowspan;f++)s[l+f]=(s[l+f]||0)+u.attrs.colspan}a.push(Fragment.from(g))}n=a,r=A}if(e!=o){const s=[];for(let a=0,l=0;a<o;a++,l++){const c=[],g=n[l%e];for(let h=0;h<g.childCount;h++){let d=g.child(h);a+d.attrs.rowspan>o&&(d=d.type.create({...d.attrs,rowspan:Math.max(1,o-d.attrs.rowspan)},d.content)),c.push(d)}s.push(Fragment.from(c))}n=s,e=o}return{width:r,height:e,rows:n}}function growTable(r,e,n,A,o,s,a){const l=r.doc.type.schema,c=tableNodeTypes(l);let g,h;if(o>e.width)for(let d=0,u=0;d<e.height;d++){const f=n.child(d);u+=f.nodeSize;const I=[];let p;f.lastChild==null||f.lastChild.type==c.cell?p=g||(g=c.cell.createAndFill()):p=h||(h=c.header_cell.createAndFill());for(let m=e.width;m<o;m++)I.push(p);r.insert(r.mapping.slice(a).map(u-1+A),I)}if(s>e.height){const d=[];for(let I=0,p=(e.height-1)*e.width;I<Math.max(e.width,o);I++){const m=I>=e.width?!1:n.nodeAt(e.map[p+I]).type==c.header_cell;d.push(m?h||(h=c.header_cell.createAndFill()):g||(g=c.cell.createAndFill()))}const u=c.row.create(null,Fragment.from(d)),f=[];for(let I=e.height;I<s;I++)f.push(u);r.insert(r.mapping.slice(a).map(A+n.nodeSize-2),f)}return!!(g||h)}function isolateHorizontal(r,e,n,A,o,s,a,l){if(a==0||a==e.height)return!1;let c=!1;for(let g=o;g<s;g++){const h=a*e.width+g,d=e.map[h];if(e.map[h-e.width]==d){c=!0;const u=n.nodeAt(d),{top:f,left:I}=e.findCell(d);r.setNodeMarkup(r.mapping.slice(l).map(d+A),null,{...u.attrs,rowspan:a-f}),r.insert(r.mapping.slice(l).map(e.positionAt(a,I,n)),u.type.createAndFill({...u.attrs,rowspan:f+u.attrs.rowspan-a})),g+=u.attrs.colspan-1}}return c}function isolateVertical(r,e,n,A,o,s,a,l){if(a==0||a==e.width)return!1;let c=!1;for(let g=o;g<s;g++){const h=g*e.width+a,d=e.map[h];if(e.map[h-1]==d){c=!0;const u=n.nodeAt(d),f=e.colCount(d),I=r.mapping.slice(l).map(d+A);r.setNodeMarkup(I,null,removeColSpan(u.attrs,a-f,u.attrs.colspan-(a-f))),r.insert(I+u.nodeSize,u.type.createAndFill(removeColSpan(u.attrs,0,a-f))),g+=u.attrs.rowspan-1}}return c}function insertCells(r,e,n,A,o){let s=n?r.doc.nodeAt(n-1):r.doc;if(!s)throw new Error("No table found");let a=TableMap.get(s);const{top:l,left:c}=A,g=c+o.width,h=l+o.height,d=r.tr;let u=0;function f(){if(s=n?d.doc.nodeAt(n-1):d.doc,!s)throw new Error("No table found");a=TableMap.get(s),u=d.mapping.maps.length}growTable(d,a,s,n,g,h,u)&&f(),isolateHorizontal(d,a,s,n,c,g,l,u)&&f(),isolateHorizontal(d,a,s,n,c,g,h,u)&&f(),isolateVertical(d,a,s,n,l,h,c,u)&&f(),isolateVertical(d,a,s,n,l,h,g,u)&&f();for(let I=l;I<h;I++){const p=a.positionAt(I,c,s),m=a.positionAt(I,g,s);d.replace(d.mapping.slice(u).map(p+n),d.mapping.slice(u).map(m+n),new Slice(o.rows[I-l],0,0))}f(),d.setSelection(new CellSelection(d.doc.resolve(n+a.positionAt(l,c,s)),d.doc.resolve(n+a.positionAt(h-1,g-1,s)))),e(d)}const handleKeyDown=keydownHandler({ArrowLeft:arrow("horiz",-1),ArrowRight:arrow("horiz",1),"Shift-ArrowLeft":shiftArrow("horiz",-1),"Shift-ArrowRight":shiftArrow("horiz",1),"Shift-ArrowUp":shiftArrow("vert",-1),"Shift-ArrowDown":shiftArrow("vert",1),Backspace:deleteCellSelection,"Mod-Backspace":deleteCellSelection,Delete:deleteCellSelection,"Mod-Delete":deleteCellSelection});function maybeSetSelection(r,e,n){return n.eq(r.selection)?!1:(e&&e(r.tr.setSelection(n).scrollIntoView()),!0)}function arrow(r,e){return(n,A,o)=>{if(!o)return!1;const s=n.selection;return s instanceof CellSelection?maybeSetSelection(n,A,Selection.near(s.$headCell,e)):atEndOfCell(o,r,e)==null?!1:maybeSetSelection(n,A,Selection.near(n.doc.resolve(s.head+e),e))}}function shiftArrow(r,e){return(n,A,o)=>{if(!o)return!1;const s=n.selection;let a;if(s instanceof CellSelection)a=s;else{const c=atEndOfCell(o,r,e);if(c==null)return!1;a=new CellSelection(n.doc.resolve(c))}const l=nextCell(a.$headCell,r,e);return l?maybeSetSelection(n,A,new CellSelection(a.$anchorCell,l)):!1}}function handleTripleClick(r,e){const n=r.state.doc,A=cellAround(n.resolve(e));return A?(r.dispatch(r.state.tr.setSelection(new CellSelection(A))),!0):!1}function handlePaste(r,e,n){if(!isInTable(r.state))return!1;let A=pastedCells(n);const o=r.state.selection;if(o instanceof CellSelection){A||(A={width:1,height:1,rows:[Fragment.from(fitSlice(tableNodeTypes(r.state.schema).cell,n))]});const s=o.$anchorCell.node(-1),a=o.$anchorCell.start(-1),l=TableMap.get(s).rectBetween(o.$anchorCell.pos-a,o.$headCell.pos-a);return A=clipCells(A,l.right-l.left,l.bottom-l.top),insertCells(r.state,r.dispatch,a,l,A),!0}else if(A){const s=selectionCell(r.state),a=s.start(-1);return insertCells(r.state,r.dispatch,a,TableMap.get(s.node(-1)).findCell(s.pos-a),A),!0}else return!1}function handleMouseDown(r,e){if(e.ctrlKey||e.metaKey)return;const n=domInCell(r,e.target);let A;if(e.shiftKey&&r.state.selection instanceof CellSelection)o(r.state.selection.$anchorCell,e),e.preventDefault();else if(e.shiftKey&&n&&(A=cellAround(r.state.selection.$anchor))!=null&&cellUnderMouse(r,e)?.pos!=A.pos)o(A,e),e.preventDefault();else if(!n)return;function o(l,c){let g=cellUnderMouse(r,c);const h=tableEditingKey.getState(r.state)==null;if(!g||!inSameTable(l,g))if(h)g=l;else return;const d=new CellSelection(l,g);if(h||!r.state.selection.eq(d)){const u=r.state.tr.setSelection(d);h&&u.setMeta(tableEditingKey,l.pos),r.dispatch(u)}}function s(){r.root.removeEventListener("mouseup",s),r.root.removeEventListener("dragstart",s),r.root.removeEventListener("mousemove",a),tableEditingKey.getState(r.state)!=null&&r.dispatch(r.state.tr.setMeta(tableEditingKey,-1))}function a(l){const c=l,g=tableEditingKey.getState(r.state);let h;if(g!=null)h=r.state.doc.resolve(g);else if(domInCell(r,c.target)!=n&&(h=cellUnderMouse(r,e),!h))return s();h&&o(h,c)}r.root.addEventListener("mouseup",s),r.root.addEventListener("dragstart",s),r.root.addEventListener("mousemove",a)}function atEndOfCell(r,e,n){if(!(r.state.selection instanceof TextSelection))return null;const{$head:A}=r.state.selection;for(let o=A.depth-1;o>=0;o--){const s=A.node(o);if((n<0?A.index(o):A.indexAfter(o))!=(n<0?0:s.childCount))return null;if(s.type.spec.tableRole=="cell"||s.type.spec.tableRole=="header_cell"){const l=A.before(o),c=e=="vert"?n>0?"down":"up":n>0?"right":"left";return r.endOfTextblock(c)?l:null}}return null}function domInCell(r,e){for(;e&&e!=r.dom;e=e.parentNode)if(e.nodeName=="TD"||e.nodeName=="TH")return e;return null}function cellUnderMouse(r,e){const n=r.posAtCoords({left:e.clientX,top:e.clientY});return n&&n?cellAround(r.state.doc.resolve(n.pos)):null}function tableEditing({allowTableNodeSelection:r=!1}={}){return new Plugin({key:tableEditingKey,state:{init(){return null},apply(e,n){const A=e.getMeta(tableEditingKey);if(A!=null)return A==-1?null:A;if(n==null||!e.docChanged)return n;const{deleted:o,pos:s}=e.mapping.mapResult(n);return o?null:s}},props:{decorations:drawCellSelection,handleDOMEvents:{mousedown:handleMouseDown},createSelectionBetween(e){return tableEditingKey.getState(e.state)!=null?e.state.selection:null},handleTripleClick,handleKeyDown,handlePaste},appendTransaction(e,n,A){return normalizeSelection(A,fixTables(A,n),r)}})}class NodeTable extends Node$1{constructor(){super(...arguments),this.name="table",this.requires=["doc"],this.attributes={class:{default:"table",fromDom(e){return e.hasAttribute("class")?e.getAttribute("class"):void 0}}}}getNodeSpec(){return{content:"table_row+",tableRole:"table",isolating:!0,group:"block",parseDOM:[{tag:"table",getAttrs:e=>setHtmlAttributes(this,e)}],toDOM:e=>["table",getHtmlAttributes(this,e),["tbody",0]]}}getCommandFactories(e,n){return{addColumnAfter:()=>(o,s)=>addColumnAfter(o,s),addColumnBefore:()=>(o,s)=>addColumnBefore(o,s),addRowAfter:()=>(o,s)=>addRowAfter(o,s),addRowBefore:()=>(o,s)=>addRowBefore(o,s),deleteColumn:()=>(o,s)=>deleteColumn(o,s),deleteRow:()=>(o,s)=>deleteRow(o,s),deleteTable:()=>(o,s)=>deleteTable(o,s),goToNextCell:o=>goToNextCell(o),mergeCells:()=>(o,s)=>mergeCells(o,s),setCellAttr:(...o)=>setCellAttr(...o),splitCell:()=>(o,s)=>splitCell(o,s),toggleHeader:(...o)=>toggleHeader(...o),toggleHeaderCell:()=>(o,s)=>toggleHeaderCell(o,s),toggleHeaderRow:()=>(o,s)=>toggleHeaderRow(o,s),toggleHeaderColumn:()=>(o,s)=>toggleHeaderColumn(o,s),insertTable:({rows:o=3,cols:s=3,withHeaderRow:a=!0}={})=>(l,c)=>{const g=l.tr,h=createTable(e.schema,o,s,a);if(c){const d=g.selection.from+1;g.replaceSelectionWith(h).scrollIntoView().setSelection(TextSelection.near(g.doc.resolve(d)))}return!0},setCellSelection:o=>(s,a)=>{if(a){const l=CellSelection.create(s.doc,o.anchorCell,o.headCell);s.tr.setSelection(l)}return!0}}}getKeyboardShortcuts(){return{}}getProseMirrorPlugins(){return[columnResizing(),tableEditing()]}}class NodeTableRow extends Node$1{constructor(){super(...arguments),this.name="table_row",this.requires=["table"]}getNodeSpec(){return{content:"(table_cell | table_header)*",tableRole:"row",parseDOM:[{tag:"tr"}],toDOM(){return["tr",0]}}}getCommandFactories(e,n){return{}}getKeyboardShortcuts(){return{}}}function getCellAttrs$1(r){if(typeof r=="string")return{};const e=r.getAttribute("data-colwidth"),n=e&&/^\d+(,\d+)*$/.test(e)?e.split(",").map(o=>Number(o)):null,A=Number(r.getAttribute("colspan")||1);return{colspan:A,rowspan:Number(r.getAttribute("rowspan")||1),colwidth:n&&n.length==A?n:null}}function setCellAttrs$1(r){return{colspan:r.attrs.colspan!=1?r.attrs.colspan:void 0,rowspan:r.attrs.rowspan!=1?r.attrs.rowspan:void 0,"data-colwidth":r.attrs.colwidth?.join(",")}}class NodeTableHeader extends Node$1{constructor(){super(...arguments),this.name="table_header",this.requires=["table"]}getNodeSpec(){return{content:"block+",attrs:{colspan:{default:1},rowspan:{default:1},colwidth:{default:void 0}},tableRole:"header_cell",isolating:!0,parseDOM:[{tag:"th",getAttrs:e=>getCellAttrs$1(e)}],toDOM:e=>["th",setCellAttrs$1(e),0]}}}function getCellAttrs(r){if(typeof r=="string")return{};const e=r.getAttribute("data-colwidth"),n=e&&/^\d+(,\d+)*$/.test(e)?e.split(",").map(o=>Number(o)):null,A=Number(r.getAttribute("colspan")||1);return{colspan:A,rowspan:Number(r.getAttribute("rowspan")||1),colwidth:n&&n.length==A?n:null}}function setCellAttrs(r){return{colspan:r.attrs.colspan!=1?r.attrs.colspan:void 0,rowspan:r.attrs.rowspan!=1?r.attrs.rowspan:void 0,"data-colwidth":r.attrs.colwidth?.join(",")}}class NodeTableCell extends Node$1{constructor(){super(...arguments),this.name="table_cell",this.requires=["table_row"]}getNodeSpec(){return{content:"block+",attrs:{colspan:{default:1},rowspan:{default:1},colwidth:{default:void 0}},tableRole:"cell",isolating:!0,parseDOM:[{tag:"td",getAttrs:e=>getCellAttrs(e)}],toDOM(e){return["td",setCellAttrs(e),0]}}}getCommandFactories(e,n){return{}}getKeyboardShortcuts(){return{}}}class ExtensionTables extends Extension{constructor(){super(...arguments),this.name="extension-tables",this.requires=[new NodeTable,new NodeTableHeader,new NodeTableRow,new NodeTableCell]}}class AdvancedEditorKit{constructor(e){this.menu=e}name="advanced-editor";getExtensions(){return[new ExtensionBasicEditor,new ExtensionMarkdown,new ExtensionOdt,new ExtensionTables,new ExtensionDevToolkit,new ExtensionCustomMenu(this.menu),new ExtensionCodeMirror({theme:[dracula]})]}}const createAssetLoad=r=>async e=>{const A=r.toString()+"/"+e,o=await fetch(A);if(o.status>=400)throw new Error(`Error fetching ${o.status}`);return new Uint8Array(await o.arrayBuffer())},__viteBrowserExternal=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));exports.AdvancedEditorKit=AdvancedEditorKit;exports.CompletionContext=CompletionContext;exports.CoreEditor=CoreEditor;exports.DefaultBufferLength=DefaultBufferLength;exports.EditorSelection=EditorSelection;exports.EditorState=EditorState;exports.EditorView=EditorView;exports.LRLanguage=LRLanguage;exports.Language=Language$1;exports.LanguageDescription=LanguageDescription;exports.LanguageSupport=LanguageSupport;exports.NodeProp=NodeProp;exports.NodeSet=NodeSet;exports.NodeType=NodeType;exports.NodeWeakMap=NodeWeakMap;exports.ParseContext=ParseContext;exports.Parser=Parser$1;exports.Prec=Prec;exports.Tag=Tag;exports.Tree=Tree$1;exports.bracketMatchingHandle=bracketMatchingHandle;exports.completeFromList=completeFromList;exports.continuedIndent=continuedIndent;exports.countColumn=countColumn;exports.createAssetLoad=createAssetLoad;exports.defineLanguageFacet=defineLanguageFacet;exports.delimitedIndent=delimitedIndent;exports.flatIndent=flatIndent;exports.foldInside=foldInside;exports.foldNodeProp=foldNodeProp;exports.foldService=foldService;exports.ifNotIn=ifNotIn;exports.indentNodeProp=indentNodeProp;exports.indentUnit=indentUnit;exports.keymap=keymap;exports.languageDataProp=languageDataProp;exports.parseMixed=parseMixed;exports.snippetCompletion=snippetCompletion;exports.styleTags=styleTags;exports.sublanguageProp=sublanguageProp;exports.syntaxTree=syntaxTree;exports.tags=tags;
234
+ //# sourceMappingURL=__vite-browser-external-D37bwR0X.cjs.map