@marimo-team/frontend 0.16.1 → 0.16.2

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 (167) hide show
  1. package/dist/assets/{ConnectedDataExplorerComponent-2wVcyvDj.js → ConnectedDataExplorerComponent-B5cPvWoQ.js} +1 -1
  2. package/dist/assets/{ImageComparisonComponent-D2j6i0hv.js → ImageComparisonComponent-CqR26LSv.js} +1 -1
  3. package/dist/assets/{VegaLite-BckFaf2D.js → VegaLite-DvQDATwI.js} +1 -1
  4. package/dist/assets/_baseEach--KDTwKbG.js +1 -0
  5. package/dist/assets/_baseMap-Cu3o-eyO.js +1 -0
  6. package/dist/assets/{_baseUniq-BKktIGQ1.js → _baseUniq-y7ZXnMo1.js} +1 -1
  7. package/dist/assets/{_createAggregator-C5CVY-0t.js → _createAggregator-ZcHkHPNJ.js} +1 -1
  8. package/dist/assets/{agent-panel-RGLNjkYe.js → agent-panel-B91RoLct.js} +6 -6
  9. package/dist/assets/{any-language-editor-DjuXwGCA.js → any-language-editor-CxfHcm5h.js} +1 -1
  10. package/dist/assets/{architectureDiagram-W76B3OCA-Dyj4ds_R.js → architectureDiagram-W76B3OCA-BQsvK8uR.js} +1 -1
  11. package/dist/assets/{between-horizontal-start-Dt2aKpPf.js → between-horizontal-start-BmYToIaM.js} +1 -1
  12. package/dist/assets/{blockDiagram-QIGZ2CNN-o-i7DDvN.js → blockDiagram-QIGZ2CNN-r3HgCj4w.js} +1 -1
  13. package/dist/assets/{c4Diagram-FPNF74CW-DGHEwWrx.js → c4Diagram-FPNF74CW-BJbPNt41.js} +1 -1
  14. package/dist/assets/channel-DFaEx1fu.js +1 -0
  15. package/dist/assets/{chat-panel-9alr8FS4.js → chat-panel-IoPMv8e2.js} +3 -3
  16. package/dist/assets/{chunk-4BX2VUAB-BJecb-Ri.js → chunk-4BX2VUAB-Dv4MZ9Hj.js} +1 -1
  17. package/dist/assets/{chunk-55IACEB6-CAATkc4w.js → chunk-55IACEB6-CM4AHquB.js} +1 -1
  18. package/dist/assets/{chunk-FMBD7UC4-DPuNbQ-f.js → chunk-FMBD7UC4-C_Zz0ENB.js} +1 -1
  19. package/dist/assets/{chunk-K7UQS3LO-C8TWVLiH.js → chunk-K7UQS3LO-DYSmiXYq.js} +1 -1
  20. package/dist/assets/{chunk-QN33PNHL-DiZZ09q4.js → chunk-QN33PNHL-QM4OPuQP.js} +1 -1
  21. package/dist/assets/{chunk-QZHKN3VN-BIUM7usu.js → chunk-QZHKN3VN-CfAsGyeB.js} +1 -1
  22. package/dist/assets/{chunk-TVAH2DTR-vGTArPBG.js → chunk-TVAH2DTR-6j_Cpjsi.js} +1 -1
  23. package/dist/assets/{chunk-TZMSLE5B-D2KRqp_x.js → chunk-TZMSLE5B-BHslFJQE.js} +1 -1
  24. package/dist/assets/{circle-play-cjeNez0N.js → circle-play-CK3UZRYQ.js} +1 -1
  25. package/dist/assets/classDiagram-KNZD7YFC-BsZtvV5O.js +1 -0
  26. package/dist/assets/classDiagram-v2-RKCZMP56-BsZtvV5O.js +1 -0
  27. package/dist/assets/{clear-button-C97JtAez.js → clear-button-C4fDVSv8.js} +1 -1
  28. package/dist/assets/clone-YBEvPE-s.js +1 -0
  29. package/dist/assets/command-palette-D7hOfvf6.js +1 -0
  30. package/dist/assets/{common-Du9rSOwD.js → common-D-lbuUwz.js} +1 -1
  31. package/dist/assets/{compile-CZXqyOxa.js → compile-DVQe1Mzk.js} +1 -1
  32. package/dist/assets/{cose-bilkent-S5V4N54A-CqUN5Y9b.js → cose-bilkent-S5V4N54A-D-IS7WC8.js} +1 -1
  33. package/dist/assets/{dagre-5GWH7T2D-RJqTI9DM.js → dagre-5GWH7T2D-lYu-tEWT.js} +1 -1
  34. package/dist/assets/{data-grid-overlay-editor-DZN0q1LV.js → data-grid-overlay-editor-C5peOCit.js} +1 -1
  35. package/dist/assets/datasources-panel-D3NA20uZ.js +1 -0
  36. package/dist/assets/{dependency-graph-panel-CEog_O7V.js → dependency-graph-panel-BGVYOfkV.js} +1 -1
  37. package/dist/assets/{diagram-N5W7TBWH-D-l4zZ9d.js → diagram-N5W7TBWH-BnvIuYUp.js} +1 -1
  38. package/dist/assets/{diagram-QEK2KX5R-CCOmBUt-.js → diagram-QEK2KX5R-DemedRK3.js} +1 -1
  39. package/dist/assets/{diagram-S2PKOQOG-C_I_9jnZ.js → diagram-S2PKOQOG-iiY7AuyH.js} +1 -1
  40. package/dist/assets/{documentation-panel-C1BtMZ3M.js → documentation-panel-C3dSwOSQ.js} +1 -1
  41. package/dist/assets/{edit-page-B-oevUZ9.js → edit-page-C5TsEeSo.js} +17 -17
  42. package/dist/assets/{ellipsis-vertical-BEb-J8z6.js → ellipsis-vertical-CazJl8M7.js} +1 -1
  43. package/dist/assets/{empty-state-C99UyDE3.js → empty-state-DW308mFO.js} +1 -1
  44. package/dist/assets/{erDiagram-AWTI2OKA-BePOLi5M.js → erDiagram-AWTI2OKA-6wQ8Ugg0.js} +1 -1
  45. package/dist/assets/{error-panel-Bs34jXFh.js → error-panel-D1VnJ1yP.js} +1 -1
  46. package/dist/assets/{file-explorer-panel-Ck6UL861.js → file-explorer-panel-0oVd4t-D.js} +1 -1
  47. package/dist/assets/{flowDiagram-PVAE7QVJ-BgjFu5l7.js → flowDiagram-PVAE7QVJ-C55IUWjm.js} +1 -1
  48. package/dist/assets/{ganttDiagram-OWAHRB6G-YOPb3XSV.js → ganttDiagram-OWAHRB6G-DmqCM6ME.js} +1 -1
  49. package/dist/assets/{gitGraphDiagram-NY62KEGX-CGhqaDTy.js → gitGraphDiagram-NY62KEGX-DBvhAeM_.js} +1 -1
  50. package/dist/assets/{glide-data-editor-9QUH6iso.js → glide-data-editor-CHNuHidQ.js} +11 -11
  51. package/dist/assets/{graph-DQQFGrho.js → graph-CG6BgUWQ.js} +1 -1
  52. package/dist/assets/{home-page-DRKpPCrF.js → home-page-dgivXuSR.js} +3 -3
  53. package/dist/assets/{index-SGLNXrGP.js → index-BTGpssVX.js} +1 -1
  54. package/dist/assets/{index-Aeo6WiK7.js → index-BYVZlBF8.js} +1 -1
  55. package/dist/assets/{index-CUFv_thQ.js → index-BelfnXwL.js} +1 -1
  56. package/dist/assets/{index-DdnKZNxM.js → index-BneyUujp.js} +1 -1
  57. package/dist/assets/{index-BJNCMUmG.js → index-C02SqeRj.js} +1 -1
  58. package/dist/assets/{index-aE43R74q.js → index-C7dtgr9A.js} +1 -1
  59. package/dist/assets/{index-C2MD0vgD.js → index-CAQvMTzM.js} +1 -1
  60. package/dist/assets/index-CGDMlQfO.css +1 -0
  61. package/dist/assets/index-CelXfcd8.js +580 -0
  62. package/dist/assets/{index-C_tkBKNO.js → index-Csd6QrCV.js} +1 -1
  63. package/dist/assets/{index-BAbIIxHU.js → index-CtPksxf0.js} +1 -1
  64. package/dist/assets/{index-2252nrk6.js → index-Cxyk7pt-.js} +1 -1
  65. package/dist/assets/{index-BW3k9Gss.js → index-DAZ-9ri2.js} +1 -1
  66. package/dist/assets/{index-ClzeQrN7.js → index-DONRrmA2.js} +1 -1
  67. package/dist/assets/{index-B8jXZ12t.js → index-Db36XTG_.js} +1 -1
  68. package/dist/assets/{index-BprjMYH5.js → index-DdIhdEVw.js} +1 -1
  69. package/dist/assets/{index-CFKO7WXI.js → index-M_pBKDSe.js} +1 -1
  70. package/dist/assets/{index-CfaDbEdi.js → index-_luCZMLM.js} +1 -1
  71. package/dist/assets/{index-BjgnbONl.js → index-mkubqy9-.js} +1 -1
  72. package/dist/assets/{index-C1ez98sk.js → index-sbO9UaUU.js} +1 -1
  73. package/dist/assets/{index-G5QZppK2.js → index-z4krxQ4j.js} +1 -1
  74. package/dist/assets/infoDiagram-STP46IZ2-wTALjfPc.js +2 -0
  75. package/dist/assets/{isEmpty-D-4c7sMv.js → isEmpty-CqX_YTIf.js} +1 -1
  76. package/dist/assets/{journeyDiagram-BIP6EPQ6-C94u3Mv3.js → journeyDiagram-BIP6EPQ6-Y5w_Tqe_.js} +1 -1
  77. package/dist/assets/{kanban-definition-6OIFK2YF-BEXYFzz7.js → kanban-definition-6OIFK2YF-DbXs5Rxi.js} +1 -1
  78. package/dist/assets/{layout-Bz2BJ2ru.js → layout-BCNPDACj.js} +1 -1
  79. package/dist/assets/{linear-D8s7K76e.js → linear-uO6UVhXt.js} +1 -1
  80. package/dist/assets/{links-BpXlz1GG.js → links-Drv7cJgN.js} +3 -3
  81. package/dist/assets/{logs-panel-DC7wpmPz.js → logs-panel-BEQ1eRUp.js} +1 -1
  82. package/dist/assets/{markdown-renderer-DRdSWR9X.js → markdown-renderer-Dmzbb00W.js} +3 -3
  83. package/dist/assets/{mermaid-Y3x4hmD0.js → mermaid-qRc4MXIj.js} +1 -1
  84. package/dist/assets/{mermaid.core-DzthE35Y.js → mermaid.core-CvvJtCRj.js} +4 -4
  85. package/dist/assets/min-DYUOb1RR.js +1 -0
  86. package/dist/assets/{mindmap-definition-Q6HEUPPD-DktvuLe1.js → mindmap-definition-Q6HEUPPD-G5NognM-.js} +1 -1
  87. package/dist/assets/{number-overlay-editor-BEfwI1IT.js → number-overlay-editor-DPr5sHFu.js} +1 -1
  88. package/dist/assets/{outline-panel-CdsnAy2w.js → outline-panel-gxQXvVi4.js} +1 -1
  89. package/dist/assets/{packages-panel-DiTA-d_D.js → packages-panel-B1T0VPlg.js} +1 -1
  90. package/dist/assets/{pieDiagram-ADFJNKIX-DQDNQ-de.js → pieDiagram-ADFJNKIX-DK9SHkfc.js} +1 -1
  91. package/dist/assets/{quadrantDiagram-LMRXKWRM-0kgIXc2-.js → quadrantDiagram-LMRXKWRM-D1DdWF8C.js} +1 -1
  92. package/dist/assets/{react-plotly-DJqqfM7c.js → react-plotly-CTwajqCb.js} +1 -1
  93. package/dist/assets/{requirementDiagram-4UW4RH46-B5rb0ypd.js → requirementDiagram-4UW4RH46-DnjDAypr.js} +1 -1
  94. package/dist/assets/{run-page-CFmLrv1R.js → run-page-CQY9im22.js} +1 -1
  95. package/dist/assets/{sankeyDiagram-GR3RE2ED-Dom7IlnF.js → sankeyDiagram-GR3RE2ED-B67Va-ER.js} +1 -1
  96. package/dist/assets/{scratchpad-panel-CuHWpHO8.js → scratchpad-panel-DlDfcDtW.js} +1 -1
  97. package/dist/assets/{secrets-panel-CfHc5YD0.js → secrets-panel-BDGyuGZA.js} +1 -1
  98. package/dist/assets/{sequenceDiagram-C3RYC4MD-PNJWXQbw.js → sequenceDiagram-C3RYC4MD-DiWgZPtN.js} +1 -1
  99. package/dist/assets/{slides-component-CJgaTRZ0.js → slides-component-DhpPRtQp.js} +1 -1
  100. package/dist/assets/{snippets-panel-B2EC1txM.js → snippets-panel-CLkBXhJ2.js} +1 -1
  101. package/dist/assets/{sortBy-DZnlX29-.js → sortBy-D4OG7w4O.js} +1 -1
  102. package/dist/assets/{state-CWict9RU.js → state-Dz_3JyED.js} +1 -1
  103. package/dist/assets/{stateDiagram-KXAO66HF-BE58aJnr.js → stateDiagram-KXAO66HF-ByF2AULw.js} +1 -1
  104. package/dist/assets/stateDiagram-v2-UMBNRL4Z-CtBJqosP.js +1 -0
  105. package/dist/assets/{storage-DRaR04wR.js → storage-Dr0CC44z.js} +6 -6
  106. package/dist/assets/{terminal-BX3Su5q7.js → terminal-BtdissBf.js} +1 -1
  107. package/dist/assets/{time-hUzZfpNE.js → time-DKdOTnQg.js} +1 -1
  108. package/dist/assets/{timeline-definition-XQNQX7LJ-CqQP9t51.js → timeline-definition-XQNQX7LJ-DzER9bf6.js} +1 -1
  109. package/dist/assets/{tracing-B10Q1n-L.js → tracing-Dpx5M-u3.js} +2 -2
  110. package/dist/assets/{tracing-panel-Du8WCnno.js → tracing-panel-hCjBkSER.js} +2 -2
  111. package/dist/assets/{trash-B81GTiv6.js → trash-C6Ko-g5q.js} +1 -1
  112. package/dist/assets/{tree-6vW2ogkh.js → tree-BHN2gcCF.js} +6 -6
  113. package/dist/assets/{treemap-75Q7IDZK-CdwDwwsz.js → treemap-75Q7IDZK-DR79Mhzt.js} +1 -1
  114. package/dist/assets/{variable-panel-D5qgJI7k.js → variable-panel-PFBCFz36.js} +1 -1
  115. package/dist/assets/{vega-component-DJaJWMJM.js → vega-component-Db6-uY4C.js} +1 -1
  116. package/dist/assets/{xychartDiagram-6GGTOJPD-WFtXqaM9.js → xychartDiagram-6GGTOJPD-DWzBP3tZ.js} +1 -1
  117. package/dist/index.html +2 -2
  118. package/package.json +3 -3
  119. package/src/__mocks__/requests.ts +1 -0
  120. package/src/components/data-table/__tests__/columns.test.tsx +38 -0
  121. package/src/components/data-table/cell-hover-template/feature.ts +1 -1
  122. package/src/components/data-table/cell-hover-template/types.ts +1 -1
  123. package/src/components/data-table/columns.tsx +21 -2
  124. package/src/components/data-table/renderers.tsx +16 -8
  125. package/src/components/data-table/schemas.ts +16 -0
  126. package/src/components/editor/Cell.tsx +2 -0
  127. package/src/components/editor/errors/sql-validation-errors.tsx +34 -0
  128. package/src/components/editor/output/ConsoleOutput.tsx +13 -1
  129. package/src/components/editor/output/MarimoErrorOutput.tsx +60 -1
  130. package/src/core/ai/context/providers/cell-output.ts +1 -18
  131. package/src/core/codemirror/language/__tests__/extension.test.ts +24 -0
  132. package/src/core/codemirror/language/__tests__/sql-validation.test.ts +133 -0
  133. package/src/core/codemirror/language/languages/sql/sql-mode.ts +20 -0
  134. package/src/core/codemirror/language/languages/sql/sql.ts +90 -3
  135. package/src/core/codemirror/language/languages/sql/validation-errors.ts +79 -0
  136. package/src/core/codemirror/language/panel/panel.tsx +8 -2
  137. package/src/core/codemirror/language/panel/sql.tsx +81 -4
  138. package/src/core/config/feature-flag.tsx +3 -1
  139. package/src/core/datasets/request-registry.ts +17 -1
  140. package/src/core/islands/bridge.ts +1 -0
  141. package/src/core/islands/main.ts +1 -0
  142. package/src/core/kernel/messages.ts +1 -0
  143. package/src/core/network/requests-network.ts +7 -0
  144. package/src/core/network/requests-static.ts +1 -0
  145. package/src/core/network/requests-toasting.ts +1 -0
  146. package/src/core/network/types.ts +2 -0
  147. package/src/core/wasm/bridge.ts +5 -0
  148. package/src/core/websocket/useMarimoWebSocket.tsx +4 -0
  149. package/src/plugins/core/registerReactComponent.tsx +23 -19
  150. package/src/plugins/impl/DataTablePlugin.tsx +11 -4
  151. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +17 -5
  152. package/src/stories/dataframe.stories.tsx +2 -0
  153. package/src/utils/__tests__/dom.test.ts +167 -0
  154. package/src/utils/dom.ts +55 -0
  155. package/dist/assets/_baseEach-CvTX9w0Y.js +0 -1
  156. package/dist/assets/_baseMap-CtlwA90f.js +0 -1
  157. package/dist/assets/channel-Co6iMgWq.js +0 -1
  158. package/dist/assets/classDiagram-KNZD7YFC-BbJ0rY3y.js +0 -1
  159. package/dist/assets/classDiagram-v2-RKCZMP56-BbJ0rY3y.js +0 -1
  160. package/dist/assets/clone-BMP0PsTa.js +0 -1
  161. package/dist/assets/command-palette-B93Pjcky.js +0 -1
  162. package/dist/assets/datasources-panel-v7H3cR0p.js +0 -1
  163. package/dist/assets/index-C7CoaNFb.js +0 -578
  164. package/dist/assets/index-DadI618h.css +0 -1
  165. package/dist/assets/infoDiagram-STP46IZ2-CJLOpSAf.js +0 -2
  166. package/dist/assets/min-BBO3-1Hg.js +0 -1
  167. package/dist/assets/stateDiagram-v2-UMBNRL4Z-CdThjimL.js +0 -1
@@ -1,4 +1,4 @@
1
- var ec=Object.defineProperty;var tc=(n,e,t)=>e in n?ec(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var Ze=(n,e,t)=>tc(n,typeof e!="symbol"?e+"":e,t);var Ut,Ft,Bt,Kt,Vt,Ht,jt,Wt,zt,Yt,qt,Xt,Qt,Jt,Zt,en,tn;import{pC as nc,I as rc,A as Hs,ft as ic,aO as St,fI as sc,fN as ac,fO as oc,aJ as lc,aL as js,aK as Ws,eJ as yi,pD as zs,B as ae,g6 as cc,fC as Ys,pE as qs,cH as uc,fD as Xs,cE as dc,pF as hc,fJ as fc,pG as pc,g8 as we,aN as dt,cG as Qs,eN as mc,pH as z,pI as Ee,a9 as ht}from"./index-C7CoaNFb.js";import{b as Js,a as nn}from"./_baseEach-CvTX9w0Y.js";import{g as gc,v as Y,h as Zs,j as yc,k as Tc,a as ea,c as I,i as He,r as de,f as Ae,n as q}from"./_baseUniq-BKktIGQ1.js";import{m as x,f as It,h as C,d as Ti,l as Ct,c as vc}from"./min-BBO3-1Hg.js";import{i as M}from"./isEmpty-D-4c7sMv.js";import{c as J}from"./clone-BMP0PsTa.js";import{c as Rc}from"./_createAggregator-C5CVY-0t.js";var $c=Object.prototype.hasOwnProperty,ke=nc(function(n,e){if(rc(e)||Hs(e))ic(e,St(e),n);else for(var t in e)$c.call(e,t)&&sc(n,t,e[t])});function rn(n){for(var e=-1,t=n==null?0:n.length,r=0,i=[];++e<t;){var s=n[e];s&&(i[r++]=s)}return i}var er=lc(function(n,e){return js(n)?(function(t,r,i,s){var a=-1,o=gc,l=!0,c=t.length,u=[],h=r.length;if(!c)return u;r.length>=200&&(o=oc,l=!1,r=new ac(r));e:for(;++a<c;){var d=t[a],f=d;if(d=d!==0?d:0,l&&f==f){for(var p=h;p--;)if(r[p]===f)continue e;u.push(d)}else o(r,f,s)||u.push(d)}return u})(n,Ws(e,1,js,!0)):[]});function Z(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:yi(e),zs(n,e<0?0:e,r)):[]}function sn(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:yi(e),zs(n,0,(e=r-e)<0?0:e)):[]}function Ec(n,e){for(var t=-1,r=n==null?0:n.length;++t<r;)if(!e(n[t],t,n))return!1;return!0}function Ac(n,e){var t=!0;return Js(n,function(r,i,s){return t=!!e(r,i,s)}),t}function be(n,e,t){return(ae(n)?Ec:Ac)(n,nn(e))}function Pe(n){return n&&n.length?n[0]:void 0}function xe(n,e){return Ws(x(n,e))}var kc=Object.prototype.hasOwnProperty,xc=Rc(function(n,e,t){kc.call(n,t)?n[t].push(e):cc(n,t,[e])});function ge(n){return typeof n=="string"||!ae(n)&&Ys(n)&&qs(n)=="[object String]"}var Sc=Math.max;function he(n,e,t,r){n=Hs(n)?n:Y(n),t=t?yi(t):0;var i=n.length;return t<0&&(t=Sc(i+t,0)),ge(n)?t<=i&&n.indexOf(e,t)>-1:!!i&&Zs(n,e,t)>-1}function ta(n,e,t){return n!=null&&n.length?Zs(n,e,0):-1}var na=Xs&&Xs.isRegExp,je=na?uc(na):function(n){return Ys(n)&&qs(n)=="[object RegExp]"};function Me(n,e){if(n==null)return{};var t=dc(yc(n),function(r){return[r]});return e=nn(e),hc(n,t,function(r,i){return e(r,i[0])})}function tr(n,e){return(ae(n)?fc:Tc)(n,(function(t){if(typeof t!="function")throw new TypeError("Expected a function");return function(){var r=arguments;switch(r.length){case 0:return!t.call(this);case 1:return!t.call(this,r[0]);case 2:return!t.call(this,r[0],r[1]);case 3:return!t.call(this,r[0],r[1],r[2])}return!t.apply(this,r)}})(nn(e)))}function Ic(n,e){var t;return Js(n,function(r,i,s){return!(t=e(r,i,s))}),!!t}function ra(n,e,t){return(ae(n)?pc:Ic)(n,nn(e))}function vi(n){return n&&n.length?ea(n):[]}function oe(n){return typeof n=="object"&&n!==null&&typeof n.$type=="string"}function Ue(n){return typeof n=="object"&&n!==null&&typeof n.$refText=="string"}function nr(n){return typeof n=="object"&&n!==null&&oe(n.container)&&Ue(n.reference)&&typeof n.message=="string"}class ia{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return oe(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[t];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,t);return r[t]=s,s}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function an(n){return typeof n=="object"&&n!==null&&Array.isArray(n.content)}function sa(n){return typeof n=="object"&&n!==null&&typeof n.tokenType=="object"}function aa(n){return an(n)&&typeof n.fullText=="string"}class re{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let t=0,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){const e=[],t=this.iterator();let r;do r=t.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,t){const r=this.map(i=>[e?e(i):i,t?t(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new re(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),t=>{let r;if(!t.firstDone){do if(r=this.nextFn(t.first),!r.done)return r;while(!r.done);t.firstDone=!0}do if(r=t.iterator.next(),!r.done)return r;while(!r.done);return Se})}join(e=","){const t=this.iterator();let r,i="",s=!1;do r=t.next(),r.done||(s&&(i+=e),i+=Cc(r.value)),s=!0;while(!r.done);return i}indexOf(e,t=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=t&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;)e(i.value,r),i=t.next(),r++}map(e){return new re(this.startFn,t=>{const{done:r,value:i}=this.nextFn(t);return r?Se:{done:!1,value:e(i)}})}filter(e){return new re(this.startFn,t=>{let r;do if(r=this.nextFn(t),!r.done&&e(r.value))return r;while(!r.done);return Se})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){const r=this.iterator();let i=t,s=r.next();for(;!s.done;)i=i===void 0?s.value:e(i,s.value),s=r.next();return i}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,t,r);return s===void 0?i.value:t(s,i.value)}find(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;){if(e(i.value))return r;i=t.next(),r++}return-1}includes(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(e){return new re(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const s=t.iterator.next();if(!s.done)return s;t.iterator=void 0}const{done:r,value:i}=this.nextFn(t.this);if(!r){const s=e(i);if(!rr(s))return{done:!1,value:s};t.iterator=s[Symbol.iterator]()}}while(t.iterator);return Se})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new re(()=>({this:t.startFn()}),r=>{do{if(r.iterator){const a=r.iterator.next();if(!a.done)return a;r.iterator=void 0}const{done:i,value:s}=t.nextFn(r.this);if(!i){if(!rr(s))return{done:!1,value:s};r.iterator=s[Symbol.iterator]()}}while(r.iterator);return Se})}head(){const e=this.iterator().next();if(!e.done)return e.value}tail(e=1){return new re(()=>{const t=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(t).done)return t;return t},this.nextFn)}limit(e){return new re(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?Se:this.nextFn(t.state)))}distinct(e){return new re(()=>({set:new Set,internalState:this.startFn()}),t=>{let r;do if(r=this.nextFn(t.internalState),!r.done){const i=e?e(r.value):r.value;if(!t.set.has(i))return t.set.add(i),r}while(!r.done);return Se})}exclude(e,t){const r=new Set;for(const i of e){const s=t?t(i):i;r.add(s)}return this.filter(i=>{const s=t?t(i):i;return!r.has(s)})}}function Cc(n){return typeof n=="string"?n:n===void 0?"undefined":typeof n.toString=="function"?n.toString():Object.prototype.toString.call(n)}function rr(n){return!!n&&typeof n[Symbol.iterator]=="function"}const Nc=new re(()=>{},()=>Se),Se=Object.freeze({done:!0,value:void 0});function ee(...n){if(n.length===1){const e=n[0];if(e instanceof re)return e;if(rr(e))return new re(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new re(()=>({index:0}),t=>t.index<e.length?{done:!1,value:e[t.index++]}:Se)}return n.length>1?new re(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}if(e.array){if(e.arrIndex<e.array.length)return{done:!1,value:e.array[e.arrIndex++]};e.array=void 0,e.arrIndex=0}if(e.collIndex<n.length){const t=n[e.collIndex++];rr(t)?e.iterator=t[Symbol.iterator]():t&&typeof t.length=="number"&&(e.array=t)}}while(e.iterator||e.array||e.collIndex<n.length);return Se}):Nc}class Ri extends re{constructor(e,t,r){super(()=>({iterators:r!=null&&r.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const s=i.iterators[i.iterators.length-1].next();if(!s.done)return i.iterators.push(t(s.value)[Symbol.iterator]()),s;i.iterators.pop()}return Se})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var $i,We;function Ei(n){return new Ri(n,e=>an(e)?e.content:[],{includeRoot:!0})}function Ai(n){return{start:{character:n.startColumn-1,line:n.startLine-1},end:{character:n.endColumn,line:n.endLine-1}}}function ir(n){if(!n)return;const{offset:e,end:t,range:r}=n;return{range:r,offset:e,end:t,length:t-e}}function wc(n,e){return(function(r,i){if(r.end.line<i.start.line||r.end.line===i.start.line&&r.end.character<=i.start.character)return We.Before;if(r.start.line>i.end.line||r.start.line===i.end.line&&r.start.character>=i.end.character)return We.After;const s=r.start.line>i.start.line||r.start.line===i.start.line&&r.start.character>=i.start.character,a=r.end.line<i.end.line||r.end.line===i.end.line&&r.end.character<=i.end.character;return s&&a?We.Inside:s?We.OverlapBack:a?We.OverlapFront:We.Outside})(n,e)>We.After}(function(n){n.sum=function(e){return e.reduce((t,r)=>t+r,0)},n.product=function(e){return e.reduce((t,r)=>t*r,0)},n.min=function(e){return e.reduce((t,r)=>Math.min(t,r))},n.max=function(e){return e.reduce((t,r)=>Math.max(t,r))}})($i||($i={})),(function(n){n[n.Before=0]="Before",n[n.After=1]="After",n[n.OverlapFront=2]="OverlapFront",n[n.OverlapBack=3]="OverlapBack",n[n.Inside=4]="Inside",n[n.Outside=5]="Outside"})(We||(We={}));const Lc=/^[\w\p{L}]$/u;function Oc(n,e){if(n){const t=(function(r,i=!0){for(;r.container;){const s=r.container;let a=s.content.indexOf(r);for(;a>0;){a--;const o=s.content[a];if(i||!o.hidden)return o}r=s}})(n,!0);if(t&&oa(t,e))return t;if(aa(n))for(let r=n.content.findIndex(i=>!i.hidden)-1;r>=0;r--){const i=n.content[r];if(oa(i,e))return i}}}function oa(n,e){return sa(n)&&e.includes(n.tokenType.name)}class la extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function on(n){throw new Error("Error! The input value was not handled.")}const sr="AbstractRule",ar="AbstractType",ki="Condition",ca="TypeDefinition",xi="ValueLiteral",ln="AbstractElement";function _c(n){return b.isInstance(n,ln)}const or="ArrayLiteral",lr="ArrayType",cn="BooleanLiteral",un="Conjunction",dn="Disjunction",cr="Grammar",Si="GrammarImport",hn="InferredType";function ua(n){return b.isInstance(n,hn)}const fn="Interface";function da(n){return b.isInstance(n,fn)}const Ii="NamedArgument",pn="Negation",ur="NumberLiteral",dr="Parameter",mn="ParameterReference",gn="ParserRule";function Le(n){return b.isInstance(n,gn)}const hr="ReferenceType",fr="ReturnType",yn="SimpleType";function bc(n){return b.isInstance(n,yn)}const pr="StringLiteral",Nt="TerminalRule";function ft(n){return b.isInstance(n,Nt)}const Tn="Type";function ha(n){return b.isInstance(n,Tn)}const Ci="TypeAttribute",mr="UnionType",vn="Action";function gr(n){return b.isInstance(n,vn)}const Rn="Alternatives";function fa(n){return b.isInstance(n,Rn)}const $n="Assignment";function pt(n){return b.isInstance(n,$n)}const En="CharacterRange",An="CrossReference";function Ni(n){return b.isInstance(n,An)}const kn="EndOfFile",xn="Group";function wi(n){return b.isInstance(n,xn)}const Sn="Keyword";function mt(n){return b.isInstance(n,Sn)}const In="NegatedToken",Cn="RegexToken",Nn="RuleCall";function gt(n){return b.isInstance(n,Nn)}const wn="TerminalAlternatives",Ln="TerminalGroup",On="TerminalRuleCall",_n="UnorderedGroup";function pa(n){return b.isInstance(n,_n)}const bn="UntilToken",Pn="Wildcard";class ma extends ia{getAllTypes(){return[ln,sr,ar,vn,Rn,or,lr,$n,cn,En,ki,un,An,dn,kn,cr,Si,xn,hn,fn,Sn,Ii,In,pn,ur,dr,mn,gn,hr,Cn,fr,Nn,yn,pr,wn,Ln,Nt,On,Tn,Ci,ca,mr,_n,bn,xi,Pn]}computeIsSubtype(e,t){switch(e){case vn:case Rn:case $n:case En:case An:case kn:case xn:case Sn:case In:case Cn:case Nn:case wn:case Ln:case On:case _n:case bn:case Pn:return this.isSubtype(ln,t);case or:case ur:case pr:return this.isSubtype(xi,t);case lr:case hr:case yn:case mr:return this.isSubtype(ca,t);case cn:return this.isSubtype(ki,t)||this.isSubtype(xi,t);case un:case dn:case pn:case mn:return this.isSubtype(ki,t);case hn:case fn:case Tn:return this.isSubtype(ar,t);case gn:return this.isSubtype(sr,t)||this.isSubtype(ar,t);case Nt:return this.isSubtype(sr,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return ar;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return sr;case"Grammar:usedGrammars":return cr;case"NamedArgument:parameter":case"ParameterReference:parameter":return dr;case"TerminalRuleCall:rule":return Nt;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case ln:return{name:ln,properties:[{name:"cardinality"},{name:"lookahead"}]};case or:return{name:or,properties:[{name:"elements",defaultValue:[]}]};case lr:return{name:lr,properties:[{name:"elementType"}]};case cn:return{name:cn,properties:[{name:"true",defaultValue:!1}]};case un:return{name:un,properties:[{name:"left"},{name:"right"}]};case dn:return{name:dn,properties:[{name:"left"},{name:"right"}]};case cr:return{name:cr,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case Si:return{name:Si,properties:[{name:"path"}]};case hn:return{name:hn,properties:[{name:"name"}]};case fn:return{name:fn,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case Ii:return{name:Ii,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case pn:return{name:pn,properties:[{name:"value"}]};case ur:return{name:ur,properties:[{name:"value"}]};case dr:return{name:dr,properties:[{name:"name"}]};case mn:return{name:mn,properties:[{name:"parameter"}]};case gn:return{name:gn,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case hr:return{name:hr,properties:[{name:"referenceType"}]};case fr:return{name:fr,properties:[{name:"name"}]};case yn:return{name:yn,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case pr:return{name:pr,properties:[{name:"value"}]};case Nt:return{name:Nt,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case Tn:return{name:Tn,properties:[{name:"name"},{name:"type"}]};case Ci:return{name:Ci,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case mr:return{name:mr,properties:[{name:"types",defaultValue:[]}]};case vn:return{name:vn,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case Rn:return{name:Rn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case $n:return{name:$n,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case En:return{name:En,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case An:return{name:An,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case kn:return{name:kn,properties:[{name:"cardinality"},{name:"lookahead"}]};case xn:return{name:xn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case Sn:return{name:Sn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case In:return{name:In,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Cn:return{name:Cn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case Nn:return{name:Nn,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case wn:return{name:wn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Ln:return{name:Ln,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case On:return{name:On,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case _n:return{name:_n,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case bn:return{name:bn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Pn:return{name:Pn,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const b=new ma;function yr(n,e){let t=n;for(;t;){if(e(t))return t;t=t.$container}}function et(n){const e=Li(n).$document;if(!e)throw new Error("AST node has no document.");return e}function Li(n){for(;n.$container;)n=n.$container;return n}function Oi(n,e){if(!n)throw new Error("Node must be an AstNode.");const t=e==null?void 0:e.range;return new re(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){const i=r.keys[r.keyIndex];if(!i.startsWith("$")){const s=n[i];if(oe(s)){if(r.keyIndex++,ga(s,t))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const a=s[r.arrayIndex++];if(oe(a)&&ga(a,t))return{done:!1,value:a}}r.arrayIndex=0}}r.keyIndex++}return Se})}function Mn(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Ri(n,t=>Oi(t,e))}function wt(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Ri(n,t=>Oi(t,e),{includeRoot:!0})}function ga(n,e){var t;if(!e)return!0;const r=(t=n.$cstNode)===null||t===void 0?void 0:t.range;return!!r&&wc(r,e)}function ya(n){return new re(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const t=e.keys[e.keyIndex];if(!t.startsWith("$")){const r=n[t];if(Ue(r))return e.keyIndex++,{done:!1,value:{reference:r,container:n,property:t}};if(Array.isArray(r)){for(;e.arrayIndex<r.length;){const i=e.arrayIndex++,s=r[i];if(Ue(s))return{done:!1,value:{reference:s,container:n,property:t,index:i}}}e.arrayIndex=0}}e.keyIndex++}return Se})}function Ta(n){return Array.isArray(n)?[...n.map(Ta)]:n}function N(n){return n.charCodeAt(0)}function _i(n,e){Array.isArray(n)?n.forEach(function(t){e.push(t)}):e.push(n)}function Dn(n,e){if(n[e]===!0)throw"duplicate flag "+e;n[e],n[e]=!0}function Lt(n){if(n===void 0)throw Error("Internal Error - Should never get here!");return!0}function va(n){return n.type==="Character"}const Tr=[];for(let n=N("0");n<=N("9");n++)Tr.push(n);const vr=[N("_")].concat(Tr);for(let n=N("a");n<=N("z");n++)vr.push(n);for(let n=N("A");n<=N("Z");n++)vr.push(n);const Ra=[N(" "),N("\f"),N(`
1
+ var ec=Object.defineProperty;var tc=(n,e,t)=>e in n?ec(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var Ze=(n,e,t)=>tc(n,typeof e!="symbol"?e+"":e,t);var Ut,Ft,Bt,Kt,Vt,Ht,jt,Wt,zt,Yt,qt,Xt,Qt,Jt,Zt,en,tn;import{pI as nc,I as rc,A as Hs,fv as ic,aO as St,fK as sc,fP as ac,fQ as oc,aJ as lc,aL as js,aK as Ws,eL as yi,pJ as zs,B as ae,g8 as cc,fE as Ys,pK as qs,cJ as uc,fF as Xs,cG as dc,pL as hc,fL as fc,pM as pc,ga as we,aN as dt,cI as Qs,eP as mc,pN as z,pO as Ee,a9 as ht}from"./index-CelXfcd8.js";import{b as Js,a as nn}from"./_baseEach--KDTwKbG.js";import{g as gc,v as Y,h as Zs,j as yc,k as Tc,a as ea,c as I,i as He,r as de,f as Ae,n as q}from"./_baseUniq-y7ZXnMo1.js";import{m as x,f as It,h as C,d as Ti,l as Ct,c as vc}from"./min-DYUOb1RR.js";import{i as M}from"./isEmpty-CqX_YTIf.js";import{c as J}from"./clone-YBEvPE-s.js";import{c as Rc}from"./_createAggregator-ZcHkHPNJ.js";var $c=Object.prototype.hasOwnProperty,ke=nc(function(n,e){if(rc(e)||Hs(e))ic(e,St(e),n);else for(var t in e)$c.call(e,t)&&sc(n,t,e[t])});function rn(n){for(var e=-1,t=n==null?0:n.length,r=0,i=[];++e<t;){var s=n[e];s&&(i[r++]=s)}return i}var er=lc(function(n,e){return js(n)?(function(t,r,i,s){var a=-1,o=gc,l=!0,c=t.length,u=[],h=r.length;if(!c)return u;r.length>=200&&(o=oc,l=!1,r=new ac(r));e:for(;++a<c;){var d=t[a],f=d;if(d=d!==0?d:0,l&&f==f){for(var p=h;p--;)if(r[p]===f)continue e;u.push(d)}else o(r,f,s)||u.push(d)}return u})(n,Ws(e,1,js,!0)):[]});function Z(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:yi(e),zs(n,e<0?0:e,r)):[]}function sn(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:yi(e),zs(n,0,(e=r-e)<0?0:e)):[]}function Ec(n,e){for(var t=-1,r=n==null?0:n.length;++t<r;)if(!e(n[t],t,n))return!1;return!0}function Ac(n,e){var t=!0;return Js(n,function(r,i,s){return t=!!e(r,i,s)}),t}function be(n,e,t){return(ae(n)?Ec:Ac)(n,nn(e))}function Pe(n){return n&&n.length?n[0]:void 0}function xe(n,e){return Ws(x(n,e))}var kc=Object.prototype.hasOwnProperty,xc=Rc(function(n,e,t){kc.call(n,t)?n[t].push(e):cc(n,t,[e])});function ge(n){return typeof n=="string"||!ae(n)&&Ys(n)&&qs(n)=="[object String]"}var Sc=Math.max;function he(n,e,t,r){n=Hs(n)?n:Y(n),t=t?yi(t):0;var i=n.length;return t<0&&(t=Sc(i+t,0)),ge(n)?t<=i&&n.indexOf(e,t)>-1:!!i&&Zs(n,e,t)>-1}function ta(n,e,t){return n!=null&&n.length?Zs(n,e,0):-1}var na=Xs&&Xs.isRegExp,je=na?uc(na):function(n){return Ys(n)&&qs(n)=="[object RegExp]"};function Me(n,e){if(n==null)return{};var t=dc(yc(n),function(r){return[r]});return e=nn(e),hc(n,t,function(r,i){return e(r,i[0])})}function tr(n,e){return(ae(n)?fc:Tc)(n,(function(t){if(typeof t!="function")throw new TypeError("Expected a function");return function(){var r=arguments;switch(r.length){case 0:return!t.call(this);case 1:return!t.call(this,r[0]);case 2:return!t.call(this,r[0],r[1]);case 3:return!t.call(this,r[0],r[1],r[2])}return!t.apply(this,r)}})(nn(e)))}function Ic(n,e){var t;return Js(n,function(r,i,s){return!(t=e(r,i,s))}),!!t}function ra(n,e,t){return(ae(n)?pc:Ic)(n,nn(e))}function vi(n){return n&&n.length?ea(n):[]}function oe(n){return typeof n=="object"&&n!==null&&typeof n.$type=="string"}function Ue(n){return typeof n=="object"&&n!==null&&typeof n.$refText=="string"}function nr(n){return typeof n=="object"&&n!==null&&oe(n.container)&&Ue(n.reference)&&typeof n.message=="string"}class ia{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return oe(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[t];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,t);return r[t]=s,s}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function an(n){return typeof n=="object"&&n!==null&&Array.isArray(n.content)}function sa(n){return typeof n=="object"&&n!==null&&typeof n.tokenType=="object"}function aa(n){return an(n)&&typeof n.fullText=="string"}class re{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let t=0,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){const e=[],t=this.iterator();let r;do r=t.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,t){const r=this.map(i=>[e?e(i):i,t?t(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new re(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),t=>{let r;if(!t.firstDone){do if(r=this.nextFn(t.first),!r.done)return r;while(!r.done);t.firstDone=!0}do if(r=t.iterator.next(),!r.done)return r;while(!r.done);return Se})}join(e=","){const t=this.iterator();let r,i="",s=!1;do r=t.next(),r.done||(s&&(i+=e),i+=Cc(r.value)),s=!0;while(!r.done);return i}indexOf(e,t=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=t&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;)e(i.value,r),i=t.next(),r++}map(e){return new re(this.startFn,t=>{const{done:r,value:i}=this.nextFn(t);return r?Se:{done:!1,value:e(i)}})}filter(e){return new re(this.startFn,t=>{let r;do if(r=this.nextFn(t),!r.done&&e(r.value))return r;while(!r.done);return Se})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){const r=this.iterator();let i=t,s=r.next();for(;!s.done;)i=i===void 0?s.value:e(i,s.value),s=r.next();return i}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,t,r);return s===void 0?i.value:t(s,i.value)}find(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;){if(e(i.value))return r;i=t.next(),r++}return-1}includes(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(e){return new re(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const s=t.iterator.next();if(!s.done)return s;t.iterator=void 0}const{done:r,value:i}=this.nextFn(t.this);if(!r){const s=e(i);if(!rr(s))return{done:!1,value:s};t.iterator=s[Symbol.iterator]()}}while(t.iterator);return Se})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new re(()=>({this:t.startFn()}),r=>{do{if(r.iterator){const a=r.iterator.next();if(!a.done)return a;r.iterator=void 0}const{done:i,value:s}=t.nextFn(r.this);if(!i){if(!rr(s))return{done:!1,value:s};r.iterator=s[Symbol.iterator]()}}while(r.iterator);return Se})}head(){const e=this.iterator().next();if(!e.done)return e.value}tail(e=1){return new re(()=>{const t=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(t).done)return t;return t},this.nextFn)}limit(e){return new re(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?Se:this.nextFn(t.state)))}distinct(e){return new re(()=>({set:new Set,internalState:this.startFn()}),t=>{let r;do if(r=this.nextFn(t.internalState),!r.done){const i=e?e(r.value):r.value;if(!t.set.has(i))return t.set.add(i),r}while(!r.done);return Se})}exclude(e,t){const r=new Set;for(const i of e){const s=t?t(i):i;r.add(s)}return this.filter(i=>{const s=t?t(i):i;return!r.has(s)})}}function Cc(n){return typeof n=="string"?n:n===void 0?"undefined":typeof n.toString=="function"?n.toString():Object.prototype.toString.call(n)}function rr(n){return!!n&&typeof n[Symbol.iterator]=="function"}const Nc=new re(()=>{},()=>Se),Se=Object.freeze({done:!0,value:void 0});function ee(...n){if(n.length===1){const e=n[0];if(e instanceof re)return e;if(rr(e))return new re(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new re(()=>({index:0}),t=>t.index<e.length?{done:!1,value:e[t.index++]}:Se)}return n.length>1?new re(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}if(e.array){if(e.arrIndex<e.array.length)return{done:!1,value:e.array[e.arrIndex++]};e.array=void 0,e.arrIndex=0}if(e.collIndex<n.length){const t=n[e.collIndex++];rr(t)?e.iterator=t[Symbol.iterator]():t&&typeof t.length=="number"&&(e.array=t)}}while(e.iterator||e.array||e.collIndex<n.length);return Se}):Nc}class Ri extends re{constructor(e,t,r){super(()=>({iterators:r!=null&&r.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const s=i.iterators[i.iterators.length-1].next();if(!s.done)return i.iterators.push(t(s.value)[Symbol.iterator]()),s;i.iterators.pop()}return Se})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var $i,We;function Ei(n){return new Ri(n,e=>an(e)?e.content:[],{includeRoot:!0})}function Ai(n){return{start:{character:n.startColumn-1,line:n.startLine-1},end:{character:n.endColumn,line:n.endLine-1}}}function ir(n){if(!n)return;const{offset:e,end:t,range:r}=n;return{range:r,offset:e,end:t,length:t-e}}function wc(n,e){return(function(r,i){if(r.end.line<i.start.line||r.end.line===i.start.line&&r.end.character<=i.start.character)return We.Before;if(r.start.line>i.end.line||r.start.line===i.end.line&&r.start.character>=i.end.character)return We.After;const s=r.start.line>i.start.line||r.start.line===i.start.line&&r.start.character>=i.start.character,a=r.end.line<i.end.line||r.end.line===i.end.line&&r.end.character<=i.end.character;return s&&a?We.Inside:s?We.OverlapBack:a?We.OverlapFront:We.Outside})(n,e)>We.After}(function(n){n.sum=function(e){return e.reduce((t,r)=>t+r,0)},n.product=function(e){return e.reduce((t,r)=>t*r,0)},n.min=function(e){return e.reduce((t,r)=>Math.min(t,r))},n.max=function(e){return e.reduce((t,r)=>Math.max(t,r))}})($i||($i={})),(function(n){n[n.Before=0]="Before",n[n.After=1]="After",n[n.OverlapFront=2]="OverlapFront",n[n.OverlapBack=3]="OverlapBack",n[n.Inside=4]="Inside",n[n.Outside=5]="Outside"})(We||(We={}));const Lc=/^[\w\p{L}]$/u;function Oc(n,e){if(n){const t=(function(r,i=!0){for(;r.container;){const s=r.container;let a=s.content.indexOf(r);for(;a>0;){a--;const o=s.content[a];if(i||!o.hidden)return o}r=s}})(n,!0);if(t&&oa(t,e))return t;if(aa(n))for(let r=n.content.findIndex(i=>!i.hidden)-1;r>=0;r--){const i=n.content[r];if(oa(i,e))return i}}}function oa(n,e){return sa(n)&&e.includes(n.tokenType.name)}class la extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function on(n){throw new Error("Error! The input value was not handled.")}const sr="AbstractRule",ar="AbstractType",ki="Condition",ca="TypeDefinition",xi="ValueLiteral",ln="AbstractElement";function _c(n){return b.isInstance(n,ln)}const or="ArrayLiteral",lr="ArrayType",cn="BooleanLiteral",un="Conjunction",dn="Disjunction",cr="Grammar",Si="GrammarImport",hn="InferredType";function ua(n){return b.isInstance(n,hn)}const fn="Interface";function da(n){return b.isInstance(n,fn)}const Ii="NamedArgument",pn="Negation",ur="NumberLiteral",dr="Parameter",mn="ParameterReference",gn="ParserRule";function Le(n){return b.isInstance(n,gn)}const hr="ReferenceType",fr="ReturnType",yn="SimpleType";function bc(n){return b.isInstance(n,yn)}const pr="StringLiteral",Nt="TerminalRule";function ft(n){return b.isInstance(n,Nt)}const Tn="Type";function ha(n){return b.isInstance(n,Tn)}const Ci="TypeAttribute",mr="UnionType",vn="Action";function gr(n){return b.isInstance(n,vn)}const Rn="Alternatives";function fa(n){return b.isInstance(n,Rn)}const $n="Assignment";function pt(n){return b.isInstance(n,$n)}const En="CharacterRange",An="CrossReference";function Ni(n){return b.isInstance(n,An)}const kn="EndOfFile",xn="Group";function wi(n){return b.isInstance(n,xn)}const Sn="Keyword";function mt(n){return b.isInstance(n,Sn)}const In="NegatedToken",Cn="RegexToken",Nn="RuleCall";function gt(n){return b.isInstance(n,Nn)}const wn="TerminalAlternatives",Ln="TerminalGroup",On="TerminalRuleCall",_n="UnorderedGroup";function pa(n){return b.isInstance(n,_n)}const bn="UntilToken",Pn="Wildcard";class ma extends ia{getAllTypes(){return[ln,sr,ar,vn,Rn,or,lr,$n,cn,En,ki,un,An,dn,kn,cr,Si,xn,hn,fn,Sn,Ii,In,pn,ur,dr,mn,gn,hr,Cn,fr,Nn,yn,pr,wn,Ln,Nt,On,Tn,Ci,ca,mr,_n,bn,xi,Pn]}computeIsSubtype(e,t){switch(e){case vn:case Rn:case $n:case En:case An:case kn:case xn:case Sn:case In:case Cn:case Nn:case wn:case Ln:case On:case _n:case bn:case Pn:return this.isSubtype(ln,t);case or:case ur:case pr:return this.isSubtype(xi,t);case lr:case hr:case yn:case mr:return this.isSubtype(ca,t);case cn:return this.isSubtype(ki,t)||this.isSubtype(xi,t);case un:case dn:case pn:case mn:return this.isSubtype(ki,t);case hn:case fn:case Tn:return this.isSubtype(ar,t);case gn:return this.isSubtype(sr,t)||this.isSubtype(ar,t);case Nt:return this.isSubtype(sr,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return ar;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return sr;case"Grammar:usedGrammars":return cr;case"NamedArgument:parameter":case"ParameterReference:parameter":return dr;case"TerminalRuleCall:rule":return Nt;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case ln:return{name:ln,properties:[{name:"cardinality"},{name:"lookahead"}]};case or:return{name:or,properties:[{name:"elements",defaultValue:[]}]};case lr:return{name:lr,properties:[{name:"elementType"}]};case cn:return{name:cn,properties:[{name:"true",defaultValue:!1}]};case un:return{name:un,properties:[{name:"left"},{name:"right"}]};case dn:return{name:dn,properties:[{name:"left"},{name:"right"}]};case cr:return{name:cr,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case Si:return{name:Si,properties:[{name:"path"}]};case hn:return{name:hn,properties:[{name:"name"}]};case fn:return{name:fn,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case Ii:return{name:Ii,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case pn:return{name:pn,properties:[{name:"value"}]};case ur:return{name:ur,properties:[{name:"value"}]};case dr:return{name:dr,properties:[{name:"name"}]};case mn:return{name:mn,properties:[{name:"parameter"}]};case gn:return{name:gn,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case hr:return{name:hr,properties:[{name:"referenceType"}]};case fr:return{name:fr,properties:[{name:"name"}]};case yn:return{name:yn,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case pr:return{name:pr,properties:[{name:"value"}]};case Nt:return{name:Nt,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case Tn:return{name:Tn,properties:[{name:"name"},{name:"type"}]};case Ci:return{name:Ci,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case mr:return{name:mr,properties:[{name:"types",defaultValue:[]}]};case vn:return{name:vn,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case Rn:return{name:Rn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case $n:return{name:$n,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case En:return{name:En,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case An:return{name:An,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case kn:return{name:kn,properties:[{name:"cardinality"},{name:"lookahead"}]};case xn:return{name:xn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case Sn:return{name:Sn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case In:return{name:In,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Cn:return{name:Cn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case Nn:return{name:Nn,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case wn:return{name:wn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Ln:return{name:Ln,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case On:return{name:On,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case _n:return{name:_n,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case bn:return{name:bn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Pn:return{name:Pn,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const b=new ma;function yr(n,e){let t=n;for(;t;){if(e(t))return t;t=t.$container}}function et(n){const e=Li(n).$document;if(!e)throw new Error("AST node has no document.");return e}function Li(n){for(;n.$container;)n=n.$container;return n}function Oi(n,e){if(!n)throw new Error("Node must be an AstNode.");const t=e==null?void 0:e.range;return new re(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){const i=r.keys[r.keyIndex];if(!i.startsWith("$")){const s=n[i];if(oe(s)){if(r.keyIndex++,ga(s,t))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const a=s[r.arrayIndex++];if(oe(a)&&ga(a,t))return{done:!1,value:a}}r.arrayIndex=0}}r.keyIndex++}return Se})}function Mn(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Ri(n,t=>Oi(t,e))}function wt(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Ri(n,t=>Oi(t,e),{includeRoot:!0})}function ga(n,e){var t;if(!e)return!0;const r=(t=n.$cstNode)===null||t===void 0?void 0:t.range;return!!r&&wc(r,e)}function ya(n){return new re(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const t=e.keys[e.keyIndex];if(!t.startsWith("$")){const r=n[t];if(Ue(r))return e.keyIndex++,{done:!1,value:{reference:r,container:n,property:t}};if(Array.isArray(r)){for(;e.arrayIndex<r.length;){const i=e.arrayIndex++,s=r[i];if(Ue(s))return{done:!1,value:{reference:s,container:n,property:t,index:i}}}e.arrayIndex=0}}e.keyIndex++}return Se})}function Ta(n){return Array.isArray(n)?[...n.map(Ta)]:n}function N(n){return n.charCodeAt(0)}function _i(n,e){Array.isArray(n)?n.forEach(function(t){e.push(t)}):e.push(n)}function Dn(n,e){if(n[e]===!0)throw"duplicate flag "+e;n[e],n[e]=!0}function Lt(n){if(n===void 0)throw Error("Internal Error - Should never get here!");return!0}function va(n){return n.type==="Character"}const Tr=[];for(let n=N("0");n<=N("9");n++)Tr.push(n);const vr=[N("_")].concat(Tr);for(let n=N("a");n<=N("z");n++)vr.push(n);for(let n=N("A");n<=N("Z");n++)vr.push(n);const Ra=[N(" "),N("\f"),N(`
2
2
  `),N("\r"),N(" "),N("\v"),N(" "),N("\xA0"),N("\u1680"),N("\u2000"),N("\u2001"),N("\u2002"),N("\u2003"),N("\u2004"),N("\u2005"),N("\u2006"),N("\u2007"),N("\u2008"),N("\u2009"),N("\u200A"),N("\u2028"),N("\u2029"),N("\u202F"),N("\u205F"),N("\u3000"),N("\uFEFF")],Pc=/[0-9a-fA-F]/,Rr=/[0-9]/,Mc=/[1-9]/;class $a{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");const t=this.disjunction();this.consumeChar("/");const r={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":Dn(r,"global");break;case"i":Dn(r,"ignoreCase");break;case"m":Dn(r,"multiLine");break;case"u":Dn(r,"unicode");break;case"y":Dn(r,"sticky")}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:t,loc:this.loc(0)}}disjunction(){const e=[],t=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){const e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){const e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":let t;switch(this.consumeChar("?"),this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead"}Lt(t);const r=this.disjunction();return this.consumeChar(")"),{type:t,value:r,loc:this.loc(e)}}return(function(){throw Error("Internal Error - Should never get here!")})()}quantifier(e=!1){let t;const r=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":const i=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:i,atMost:i};break;case",":let s;this.isDigit()?(s=this.integerIncludingZero(),t={atLeast:i,atMost:s}):t={atLeast:i,atMost:1/0},this.consumeChar("}")}if(e===!0&&t===void 0)return;Lt(t)}if(e!==!0||t!==void 0)return Lt(t)?(this.peekChar(0)==="?"?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(r),t):void 0}atom(){let e;const t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group()}if(e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),Lt(e))return e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[N(`
3
3
  `),N("\r"),N("\u2028"),N("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case"d":e=Tr;break;case"D":e=Tr,t=!0;break;case"s":e=Ra;break;case"S":e=Ra,t=!0;break;case"w":e=vr;break;case"W":e=vr,t=!0}if(Lt(e))return{type:"Set",value:e,complement:t}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=N("\f");break;case"n":e=N(`
4
4
  `);break;case"r":e=N("\r");break;case"t":e=N(" ");break;case"v":e=N("\v")}if(Lt(e))return{type:"Character",value:e}}controlLetterEscapeAtom(){this.consumeChar("c");const e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:N("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){return{type:"Character",value:N(this.popChar())}}classPatternCharacterAtom(){switch(this.peekChar()){case`
@@ -1 +1 @@
1
- import{c as O,r as u,d as v,bV as T,bW as D,bX as G,bY as R,bZ as q,b_ as P,j as e,aC as $,a5 as U,T as Y,a3 as Z,Y as _,a4 as z,b$ as F,a6 as E,Z as H,c0 as W,c1 as h,V as C,b8 as X,b9 as A,a as J,c2 as K,ak as L,c3 as Q,__tla as ee}from"./index-C7CoaNFb.js";import{V as re,C as te}from"./common-Du9rSOwD.js";import{s as b}from"./sortBy-DZnlX29-.js";import{a as ae,__tla as oe}from"./edit-page-B-oevUZ9.js";import{P as se}from"./empty-state-C99UyDE3.js";import"./_baseEach-CvTX9w0Y.js";import"./_baseMap-CtlwA90f.js";import"./links-BpXlz1GG.js";import{__tla as ie}from"./storage-DRaR04wR.js";import"./index-Aeo6WiK7.js";import"./index-CfaDbEdi.js";import"./index-BjgnbONl.js";import"./index-CUFv_thQ.js";import"./index-DdnKZNxM.js";import"./index-C_tkBKNO.js";import"./index-BJNCMUmG.js";import"./index-CFKO7WXI.js";import"./index-aE43R74q.js";import"./index-BAbIIxHU.js";import"./index-ClzeQrN7.js";import"./index-G5QZppK2.js";import"./index-C2MD0vgD.js";import"./apl-CXdQSnD-.js";import"./asciiarmor-D5V0T9Cu.js";import"./asn1-DWPaVWf6.js";import"./brainfuck-CtZaYBKt.js";import"./cobol-stawOqaz.js";import"./clike-BgBwzOhw.js";import"./clojure-DiuoqK-z.js";import"./css-ZjFoif2m.js";import"./cmake-DXn5xaP-.js";import"./coffeescript-BTDxI-eT.js";import"./commonlisp-vq6DHwts.js";import"./cypher-gJDei3ni.js";import"./python-DD-Q2bae.js";import"./crystal-CRzZ78HM.js";import"./d-BShv7fp-.js";import"./diff-UJJ5BM9S.js";import"./dtd-DI9Herc-.js";import"./dylan-DkEP81N9.js";import"./ecl-DPFc0Uaf.js";import"./eiffel-DR5c0IrL.js";import"./elm-DompmV0j.js";import"./erlang-BuqgqA5h.js";import"./factor-CFXhaUWb.js";import"./simple-mode-C3vEBAcb.js";import"./forth-POgR1ypr.js";import"./fortran-DL7KluxX.js";import"./mllike-3c2dg9RT.js";import"./gas-bV0CklSb.js";import"./gherkin-B6X1vGSW.js";import"./groovy-DnIzCrpZ.js";import"./haskell-CLQs6EAM.js";import"./haxe-D25e-2l-.js";import"./idl-pcmmZuaN.js";import"./javascript-BpzJj0-u.js";import"./jinja2-DhgKlfW7.js";import"./julia-DjdwvFuI.js";import"./livescript-HO6ttBFx.js";import"./lua-8DXOpKDz.js";import"./mirc-DkvFAiy5.js";import"./mathematica-IIbmv7SK.js";import"./modelica-DSrSSXCg.js";import"./mumps-zvxmGV4l.js";import"./mbox-z_N2Mo3d.js";import"./nsis-BvKfQ9lQ.js";import"./ntriples-BSwWqoLa.js";import"./octave-C4hdQ5Hf.js";import"./oz-qQq7irPq.js";import"./pascal-CafrKXZF.js";import"./perl-tdMlh9QA.js";import"./pig-CwGJVRC4.js";import"./powershell-D1ly3AHC.js";import"./properties-_nPj978X.js";import"./protobuf-B4y9do6W.js";import"./pug-BTvK5tSS.js";import"./puppet-Bc-yJKzi.js";import"./q-B0kTJ4cI.js";import"./r-BA4EbLKE.js";import"./rpm-DI_rRufH.js";import"./ruby-CR-u2WLS.js";import"./sas-Bqaci40L.js";import"./scheme-qjP0V5Ag.js";import"./shell-BLav31RL.js";import"./sieve-r025o_jW.js";import"./smalltalk-C7J3IyEP.js";import"./sparql-BRLJFz69.js";import"./stylus-Bdo_Aemu.js";import"./swift-B_XXVlXX.js";import"./verilog-B4LBqg_1.js";import"./tcl-B2fODqDH.js";import"./textile-BuVhTOzU.js";import"./toml-wcPdHu67.js";import"./troff-Ce85hlLp.js";import"./ttcn-BxnYHtq8.js";import"./ttcn-cfg-CKJxb-l2.js";import"./turtle-BkSuIpt-.js";import"./webidl-CGwyPRYs.js";import"./vb-BHgjm0DN.js";import"./vbscript-Dawdd5GZ.js";import"./velocity-BdD_26Jv.js";import"./vhdl-CWWH2SUo.js";import"./xquery-CVDBqZPY.js";import"./yacas-I8QjZlxf.js";import"./z80-D8p3gKXp.js";import"./mscgen-B2igx18G.js";import"./index-C1ez98sk.js";import"./trash-B81GTiv6.js";import"./_createAggregator-C5CVY-0t.js";import{__tla as le}from"./loro_wasm_bg-C1ks32Vm.js";let k,me=Promise.all([(()=>{try{return ee}catch{}})(),(()=>{try{return oe}catch{}})(),(()=>{try{return ie}catch{}})(),(()=>{try{return le}catch{}})()]).then(async()=>{const B=O("square-equal",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 10h10",key:"1101jm"}],["path",{d:"M7 14h10",key:"1mhdw3"}]]),f="name",g="type-value",x="defs-refs",S=[{id:f,accessorFn:r=>[r.name,r.declaredBy],enableSorting:!0,sortingFn:"alphanumeric",header:({column:r})=>e.jsx(h,{header:"Name",column:r}),cell:({getValue:r})=>{const[t,s]=r();return e.jsx(re,{name:t,declaredBy:s})}},{id:g,accessorFn:r=>[r.dataType,r.value],enableSorting:!0,sortingFn:"alphanumeric",header:({column:r})=>e.jsx(h,{header:e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("span",{children:"Type"}),e.jsx("span",{children:"Value"})]}),column:r}),cell:({getValue:r})=>{const[t,s]=r();return e.jsxs("div",{className:"max-w-[150px]",children:[e.jsx("div",{className:"text-ellipsis overflow-hidden whitespace-nowrap text-muted-foreground font-mono text-xs",children:t}),e.jsx("div",{className:"text-ellipsis overflow-hidden whitespace-nowrap",title:s??"",children:s})]})}},{id:x,accessorFn:r=>[r.declaredBy,r.usedBy,r.name,r.declaredByNames,r.usedByNames],enableSorting:!0,sortingFn:"basic",header:({column:r})=>e.jsx(h,{header:e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("span",{children:"Declared By"}),e.jsx("span",{children:"Used By"})]}),column:r}),cell:({getValue:r})=>{const[t,s,i]=r(),l=m=>{const c=X(m);c&&A(c,i)};return e.jsxs("div",{className:"flex flex-col gap-1 py-1",children:[e.jsxs("div",{className:"flex flex-row overflow-auto gap-2 items-center",children:[e.jsx("span",{title:"Declared by",children:e.jsx(B,{className:"w-3.5 h-3.5 text-muted-foreground"})}),t.length===1?e.jsx(C,{variant:"focus",cellId:t[0],skipScroll:!0,onClick:()=>l(t[0])}):e.jsx("div",{className:"text-destructive flex flex-row gap-2",children:t.slice(0,3).map((m,c)=>e.jsxs("span",{className:"flex",children:[e.jsx(C,{variant:"focus",cellId:m,skipScroll:!0,className:"whitespace-nowrap text-destructive",onClick:()=>l(m)},m),c<t.length-1&&", "]},m))})]}),e.jsxs("div",{className:"flex flex-row overflow-auto gap-2 items-baseline",children:[e.jsx("span",{title:"Used by",children:e.jsx(ae,{className:"w-3.5 h-3.5 text-muted-foreground"})}),e.jsx(te,{maxCount:3,cellIds:s,skipScroll:!0,onClick:l})]})]})}}],j=u.memo(({className:r,cellIds:t,variables:s})=>{const[i,l]=v.useState([]),[m,c]=v.useState(""),y=T(),{locale:I}=D(),w=u.useMemo(()=>{const o=a=>{const p=y[a];return W(p)?`cell-${t.indexOf(a)}`:p??`cell-${t.indexOf(a)}`};return Object.values(s).map(a=>({...a,declaredByNames:a.declaredBy.map(o),usedByNames:a.usedBy.map(o)}))},[s,y,t]),V=u.useMemo(()=>{const o=new Map;return t.forEach((a,p)=>o.set(a,p)),(function({variables:a,sort:p,cellIdToIndex:M}){p||(p={id:x,desc:!1});let n=[];switch(p.id){case f:n=b(a,d=>d.name);break;case g:n=b(a,d=>d.dataType);break;case x:n=b(a,d=>M.get(d.declaredBy[0]))}return p.desc?n.reverse():n})({variables:w,sort:i[0],cellIdToIndex:o})},[w,i,t]),N=G({data:V,columns:S,getCoreRowModel:P(),onGlobalFilterChange:c,getFilteredRowModel:q(),enableFilters:!0,enableGlobalFilter:!0,enableColumnPinning:!1,getColumnCanGlobalFilter:o=>o.columnDef.enableGlobalFilter??!0,globalFilterFn:"auto",manualSorting:!0,locale:I,onSortingChange:l,getSortedRowModel:R(),state:{sorting:i,globalFilter:m}});return e.jsxs(e.Fragment,{children:[e.jsx($,{className:"w-full",placeholder:"Search",value:m,onChange:o=>c(o.target.value)}),e.jsxs(U,{className:Y("w-full text-sm flex-1 border-separate border-spacing-0",r),children:[e.jsx(Z,{children:e.jsx(_,{className:"whitespace-nowrap text-xs",children:N.getFlatHeaders().map(o=>e.jsx(z,{className:"sticky top-0 bg-background border-b",children:F(o.column.columnDef.header,o.getContext())},o.id))})}),e.jsx(E,{children:N.getRowModel().rows.map(o=>e.jsx(_,{className:"hover:bg-accent",children:o.getVisibleCells().map(a=>e.jsx(H,{className:"border-b",children:F(a.column.columnDef.cell,a.getContext())},a.id))},o.id))})]})]})});j.displayName="VariableTable",k=()=>{const r=J.c(4),t=K(),s=L();if(Object.keys(t).length===0){let l;return r[0]===Symbol.for("react.memo_cache_sentinel")?(l=e.jsx(se,{title:"No variables",description:"Global variables will appear here.",icon:e.jsx(Q,{})}),r[0]=l):l=r[0],l}let i;return r[1]!==s.inOrderIds||r[2]!==t?(i=e.jsx(j,{className:"flex-1",cellIds:s.inOrderIds,variables:t}),r[1]=s.inOrderIds,r[2]=t,r[3]=i):i=r[3],i}});export{me as __tla,k as default};
1
+ import{c as V,r as u,d as v,bX as O,bY as D,bZ as G,b_ as R,b$ as q,c0 as P,j as e,aC as $,a5 as U,T as Y,a3 as Z,Y as _,a4 as z,c1 as F,a6 as E,Z as H,c2 as X,c3 as h,V as C,b8 as A,b9 as J,a as K,c4 as L,ak as Q,c5 as W,__tla as ee}from"./index-CelXfcd8.js";import{V as re,C as te}from"./common-D-lbuUwz.js";import{s as b}from"./sortBy-D4OG7w4O.js";import{a as ae,__tla as oe}from"./edit-page-C5TsEeSo.js";import{P as se}from"./empty-state-DW308mFO.js";import"./_baseEach--KDTwKbG.js";import"./_baseMap-Cu3o-eyO.js";import"./links-Drv7cJgN.js";import{__tla as ie}from"./storage-Dr0CC44z.js";import"./index-BYVZlBF8.js";import"./index-_luCZMLM.js";import"./index-mkubqy9-.js";import"./index-BelfnXwL.js";import"./index-BneyUujp.js";import"./index-Csd6QrCV.js";import"./index-C02SqeRj.js";import"./index-M_pBKDSe.js";import"./index-C7dtgr9A.js";import"./index-CtPksxf0.js";import"./index-DONRrmA2.js";import"./index-z4krxQ4j.js";import"./index-CAQvMTzM.js";import"./apl-CXdQSnD-.js";import"./asciiarmor-D5V0T9Cu.js";import"./asn1-DWPaVWf6.js";import"./brainfuck-CtZaYBKt.js";import"./cobol-stawOqaz.js";import"./clike-BgBwzOhw.js";import"./clojure-DiuoqK-z.js";import"./css-ZjFoif2m.js";import"./cmake-DXn5xaP-.js";import"./coffeescript-BTDxI-eT.js";import"./commonlisp-vq6DHwts.js";import"./cypher-gJDei3ni.js";import"./python-DD-Q2bae.js";import"./crystal-CRzZ78HM.js";import"./d-BShv7fp-.js";import"./diff-UJJ5BM9S.js";import"./dtd-DI9Herc-.js";import"./dylan-DkEP81N9.js";import"./ecl-DPFc0Uaf.js";import"./eiffel-DR5c0IrL.js";import"./elm-DompmV0j.js";import"./erlang-BuqgqA5h.js";import"./factor-CFXhaUWb.js";import"./simple-mode-C3vEBAcb.js";import"./forth-POgR1ypr.js";import"./fortran-DL7KluxX.js";import"./mllike-3c2dg9RT.js";import"./gas-bV0CklSb.js";import"./gherkin-B6X1vGSW.js";import"./groovy-DnIzCrpZ.js";import"./haskell-CLQs6EAM.js";import"./haxe-D25e-2l-.js";import"./idl-pcmmZuaN.js";import"./javascript-BpzJj0-u.js";import"./jinja2-DhgKlfW7.js";import"./julia-DjdwvFuI.js";import"./livescript-HO6ttBFx.js";import"./lua-8DXOpKDz.js";import"./mirc-DkvFAiy5.js";import"./mathematica-IIbmv7SK.js";import"./modelica-DSrSSXCg.js";import"./mumps-zvxmGV4l.js";import"./mbox-z_N2Mo3d.js";import"./nsis-BvKfQ9lQ.js";import"./ntriples-BSwWqoLa.js";import"./octave-C4hdQ5Hf.js";import"./oz-qQq7irPq.js";import"./pascal-CafrKXZF.js";import"./perl-tdMlh9QA.js";import"./pig-CwGJVRC4.js";import"./powershell-D1ly3AHC.js";import"./properties-_nPj978X.js";import"./protobuf-B4y9do6W.js";import"./pug-BTvK5tSS.js";import"./puppet-Bc-yJKzi.js";import"./q-B0kTJ4cI.js";import"./r-BA4EbLKE.js";import"./rpm-DI_rRufH.js";import"./ruby-CR-u2WLS.js";import"./sas-Bqaci40L.js";import"./scheme-qjP0V5Ag.js";import"./shell-BLav31RL.js";import"./sieve-r025o_jW.js";import"./smalltalk-C7J3IyEP.js";import"./sparql-BRLJFz69.js";import"./stylus-Bdo_Aemu.js";import"./swift-B_XXVlXX.js";import"./verilog-B4LBqg_1.js";import"./tcl-B2fODqDH.js";import"./textile-BuVhTOzU.js";import"./toml-wcPdHu67.js";import"./troff-Ce85hlLp.js";import"./ttcn-BxnYHtq8.js";import"./ttcn-cfg-CKJxb-l2.js";import"./turtle-BkSuIpt-.js";import"./webidl-CGwyPRYs.js";import"./vb-BHgjm0DN.js";import"./vbscript-Dawdd5GZ.js";import"./velocity-BdD_26Jv.js";import"./vhdl-CWWH2SUo.js";import"./xquery-CVDBqZPY.js";import"./yacas-I8QjZlxf.js";import"./z80-D8p3gKXp.js";import"./mscgen-B2igx18G.js";import"./index-sbO9UaUU.js";import"./trash-C6Ko-g5q.js";import"./_createAggregator-ZcHkHPNJ.js";import{__tla as le}from"./loro_wasm_bg-C1ks32Vm.js";let k,me=Promise.all([(()=>{try{return ee}catch{}})(),(()=>{try{return oe}catch{}})(),(()=>{try{return ie}catch{}})(),(()=>{try{return le}catch{}})()]).then(async()=>{const B=V("square-equal",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 10h10",key:"1101jm"}],["path",{d:"M7 14h10",key:"1mhdw3"}]]),f="name",g="type-value",x="defs-refs",S=[{id:f,accessorFn:r=>[r.name,r.declaredBy],enableSorting:!0,sortingFn:"alphanumeric",header:({column:r})=>e.jsx(h,{header:"Name",column:r}),cell:({getValue:r})=>{const[t,s]=r();return e.jsx(re,{name:t,declaredBy:s})}},{id:g,accessorFn:r=>[r.dataType,r.value],enableSorting:!0,sortingFn:"alphanumeric",header:({column:r})=>e.jsx(h,{header:e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("span",{children:"Type"}),e.jsx("span",{children:"Value"})]}),column:r}),cell:({getValue:r})=>{const[t,s]=r();return e.jsxs("div",{className:"max-w-[150px]",children:[e.jsx("div",{className:"text-ellipsis overflow-hidden whitespace-nowrap text-muted-foreground font-mono text-xs",children:t}),e.jsx("div",{className:"text-ellipsis overflow-hidden whitespace-nowrap",title:s??"",children:s})]})}},{id:x,accessorFn:r=>[r.declaredBy,r.usedBy,r.name,r.declaredByNames,r.usedByNames],enableSorting:!0,sortingFn:"basic",header:({column:r})=>e.jsx(h,{header:e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("span",{children:"Declared By"}),e.jsx("span",{children:"Used By"})]}),column:r}),cell:({getValue:r})=>{const[t,s,i]=r(),l=m=>{const c=A(m);c&&J(c,i)};return e.jsxs("div",{className:"flex flex-col gap-1 py-1",children:[e.jsxs("div",{className:"flex flex-row overflow-auto gap-2 items-center",children:[e.jsx("span",{title:"Declared by",children:e.jsx(B,{className:"w-3.5 h-3.5 text-muted-foreground"})}),t.length===1?e.jsx(C,{variant:"focus",cellId:t[0],skipScroll:!0,onClick:()=>l(t[0])}):e.jsx("div",{className:"text-destructive flex flex-row gap-2",children:t.slice(0,3).map((m,c)=>e.jsxs("span",{className:"flex",children:[e.jsx(C,{variant:"focus",cellId:m,skipScroll:!0,className:"whitespace-nowrap text-destructive",onClick:()=>l(m)},m),c<t.length-1&&", "]},m))})]}),e.jsxs("div",{className:"flex flex-row overflow-auto gap-2 items-baseline",children:[e.jsx("span",{title:"Used by",children:e.jsx(ae,{className:"w-3.5 h-3.5 text-muted-foreground"})}),e.jsx(te,{maxCount:3,cellIds:s,skipScroll:!0,onClick:l})]})]})}}],j=u.memo(({className:r,cellIds:t,variables:s})=>{const[i,l]=v.useState([]),[m,c]=v.useState(""),y=O(),{locale:I}=D(),w=u.useMemo(()=>{const o=a=>{const p=y[a];return X(p)?`cell-${t.indexOf(a)}`:p??`cell-${t.indexOf(a)}`};return Object.values(s).map(a=>({...a,declaredByNames:a.declaredBy.map(o),usedByNames:a.usedBy.map(o)}))},[s,y,t]),M=u.useMemo(()=>{const o=new Map;return t.forEach((a,p)=>o.set(a,p)),(function({variables:a,sort:p,cellIdToIndex:T}){p||(p={id:x,desc:!1});let n=[];switch(p.id){case f:n=b(a,d=>d.name);break;case g:n=b(a,d=>d.dataType);break;case x:n=b(a,d=>T.get(d.declaredBy[0]))}return p.desc?n.reverse():n})({variables:w,sort:i[0],cellIdToIndex:o})},[w,i,t]),N=G({data:M,columns:S,getCoreRowModel:P(),onGlobalFilterChange:c,getFilteredRowModel:q(),enableFilters:!0,enableGlobalFilter:!0,enableColumnPinning:!1,getColumnCanGlobalFilter:o=>o.columnDef.enableGlobalFilter??!0,globalFilterFn:"auto",manualSorting:!0,locale:I,onSortingChange:l,getSortedRowModel:R(),state:{sorting:i,globalFilter:m}});return e.jsxs(e.Fragment,{children:[e.jsx($,{className:"w-full",placeholder:"Search",value:m,onChange:o=>c(o.target.value)}),e.jsxs(U,{className:Y("w-full text-sm flex-1 border-separate border-spacing-0",r),children:[e.jsx(Z,{children:e.jsx(_,{className:"whitespace-nowrap text-xs",children:N.getFlatHeaders().map(o=>e.jsx(z,{className:"sticky top-0 bg-background border-b",children:F(o.column.columnDef.header,o.getContext())},o.id))})}),e.jsx(E,{children:N.getRowModel().rows.map(o=>e.jsx(_,{className:"hover:bg-accent",children:o.getVisibleCells().map(a=>e.jsx(H,{className:"border-b",children:F(a.column.columnDef.cell,a.getContext())},a.id))},o.id))})]})]})});j.displayName="VariableTable",k=()=>{const r=K.c(4),t=L(),s=Q();if(Object.keys(t).length===0){let l;return r[0]===Symbol.for("react.memo_cache_sentinel")?(l=e.jsx(se,{title:"No variables",description:"Global variables will appear here.",icon:e.jsx(W,{})}),r[0]=l):l=r[0],l}let i;return r[1]!==s.inOrderIds||r[2]!==t?(i=e.jsx(j,{className:"flex-1",cellIds:s.inOrderIds,variables:t}),r[1]=s.inOrderIds,r[2]=t,r[3]=i):i=r[3],i}});export{me as __tla,k as default};
@@ -1 +1 @@
1
- import{dM as K,dN as D,a as E,b as F,dO as G,dP as W,j as g,E as $,u as C,r as j,dQ as T,cM as N,dR as R,L as M,ct as z,dS as q,dT as B,aI as Q,dU as U,aB as J,aD as X}from"./index-C7CoaNFb.js";import{M as y}from"./compile-CZXqyOxa.js";import{a as Y}from"./VegaLite-BckFaf2D.js";import"./time-hUzZfpNE.js";import"./timer-Bqd5yn_a.js";import"./linear-D8s7K76e.js";import"./init-DLRA0X12.js";import"./range-CtcPcB_L.js";import"./zoom-COrs4lFh.js";import"./ordinal-DDUp3AbE.js";import"./colors-bszWmPJw.js";import"./step-BwsUM5iJ.js";import"./arc-Cuwikxov.js";import"./index-BEQfoZiP.js";import"./index-B8jXZ12t.js";const V=new Set(["boxplot","errorband","errorbar"]),S={getMarkType(t){const e=typeof t=="string"?t:t.type;if(V.has(e))throw new Error("Not supported");return e},isInteractive(t){const e=typeof t=="string"?t:t.type;return!V.has(e)},makeClickable(t){const e=typeof t=="string"?t:t.type;return e in y?typeof t=="string"?{type:t,cursor:"pointer",tooltip:!0}:{...t,type:e,cursor:"pointer",tooltip:!0}:t},getOpacity:t=>typeof t=="string"?null:"opacity"in t&&typeof t.opacity=="number"?t.opacity:null},tt=new Set(["color","fill","fillOpacity","opacity","shape","size"]);function et(t,e,r,i){const u={and:r.map(d=>({param:d}))};if(t==="opacity"){const d=S.getOpacity(i)||1;return{...e,opacity:{condition:{test:u,value:d},value:d/5}}}return e}const w={point:t=>t==null?"select_point":`select_point_${t}`,interval:t=>t==null?"select_interval":`select_interval_${t}`,legendSelection:t=>`legend_selection_${t}`,HIGHLIGHT:"highlight",PAN_ZOOM:"pan_zoom",hasPoint:t=>t.some(e=>e.startsWith("select_point")),hasInterval:t=>t.some(e=>e.startsWith("select_interval")),hasLegend:t=>t.some(e=>e.startsWith("legend_selection")),hasPanZoom:t=>t.some(e=>e.startsWith("pan_zoom"))},P={highlight:()=>({name:w.HIGHLIGHT,select:{type:"point",on:"mouseover"}}),interval:(t,e)=>({name:w.interval(e),select:{type:"interval",encodings:Z(t),mark:{fill:"#669EFF",fillOpacity:.07,stroke:"#669EFF",strokeOpacity:.4},on:"[mousedown[!event.metaKey], mouseup] > mousemove[!event.metaKey]",translate:"[mousedown[!event.metaKey], mouseup] > mousemove[!event.metaKey]"}}),point:(t,e)=>({name:w.point(e),select:{type:"point",encodings:Z(t),on:"click[!event.metaKey]"}}),legend:t=>({name:w.legendSelection(t),select:{type:"point",fields:[t]},bind:"legend"}),panZoom:()=>({name:w.PAN_ZOOM,bind:"scales",select:{type:"interval",on:"[mousedown[event.metaKey], window:mouseup] > window:mousemove!",translate:"[mousedown[event.metaKey], window:mouseup] > window:mousemove!",zoom:"wheel![event.metaKey]"}})};function Z(t){switch(S.getMarkType(t.mark)){case y.image:case y.trail:return;case y.area:case y.arc:return["color"];case y.bar:{const e=(function(r){var d,l;if(!r||!("mark"in r))return;const i=(d=r.encoding)==null?void 0:d.x,u=(l=r.encoding)==null?void 0:l.y;if(i&&"type"in i&&i.type==="nominal")return"vertical";if(u&&"type"in u&&u.type==="nominal"||i&&"aggregate"in i)return"horizontal";if(u&&"aggregate"in u)return"vertical"})(t);return e==="horizontal"?["y"]:e==="vertical"?["x"]:void 0}case y.circle:case y.geoshape:case y.line:case y.point:case y.rect:case y.rule:case y.square:case y.text:case y.tick:return["x","y"]}}function A(t){return"params"in t&&t.params&&t.params.length>0?t.params.filter(e=>e!=null&&"select"in e&&e.select!==void 0).map(e=>e.name):"layer"in t?[...new Set(t.layer.flatMap(A))]:[]}function at(t,e){var f,v;let{chartSelection:r=!0,fieldSelection:i=!0}=e;if(!r&&!i)return t;if(((f=t.params)==null?void 0:f.some(c=>c.bind==="legend"))&&(i=!1),((v=t.params)==null?void 0:v.some(c=>!c.bind))&&(r=!1),"vconcat"in t){const c=t.vconcat.map(o=>"mark"in o?_(o):o);return{...t,vconcat:c}}if("hconcat"in t){const c=t.hconcat.map(o=>"mark"in o?_(o):o);return{...t,hconcat:c}}if("layer"in t){const c=t.layer.map((o,p)=>{if(!("mark"in o))return o;let s=o;return s=L(s,r,p),s=_(s),p===0&&(s=H(s)),s});return{...t,layer:c}}if(!("mark"in t)||!S.isInteractive(t.mark))return t;let l=t;return l=(function(c,o){if(o===!1)return c;let p=(function(h){if(!h||!("encoding"in h))return[];const{encoding:b}=h;return b?Object.entries(b).flatMap(a=>{const[n,m]=a;return m&&tt.has(n)?"field"in m&&typeof m.field=="string"?[m.field]:"condition"in m&&m.condition&&typeof m.condition=="object"&&"field"in m.condition&&m.condition.field&&typeof m.condition.field=="string"?[m.condition.field]:[]:[]}):[]})(c);Array.isArray(o)&&(p=p.filter(h=>o.includes(h)));const s=p.map(h=>P.legend(h)),x=[...c.params||[],...s];return{...c,params:x}})(l,i),l=L(l,r,void 0),l=_(l),l=H(l),l}function L(t,e,r){if(e===!1)return t;let i;try{i=S.getMarkType(t.mark)}catch{return t}if(i==="geoshape")return t;const u=e===!0?(function(f){switch(f){case"arc":case"area":return["point"];case"text":case"bar":default:return["point","interval"];case"line":return}})(i):[e];if(!u)return t;const d=u.map(f=>f==="interval"?P.interval(t,r):P.point(t,r)),l=[...t.params||[],...d];return{...t,params:l}}function H(t){let e;try{e=S.getMarkType(t.mark)}catch{}if(e==="geoshape")return t;const r=t.params||[];return r.some(i=>i.bind==="scales")?t:{...t,params:[...r,P.panZoom()]}}function _(t){const e="encoding"in t?t.encoding:void 0,r=t.params||[],i=r.map(u=>u.name);return r.length===0?t:S.isInteractive(t.mark)?{...t,mark:S.makeClickable(t.mark),encoding:et("opacity",e||{},i,t.mark)}:t}G("arrow",W);const nt=t=>{const e=E.c(11),{value:r,setValue:i,chartSelection:u,fieldSelection:d,spec:l}=t;let f,v;e[0]!==l?(f=async()=>(async function(s){if(!s)return s;const x="datasets"in s?{...s.datasets}:{},h=async a=>{if(!a)return a;if("layer"in a){const k=await Promise.all(a.layer.map(h));a={...a,layer:k}}if("hconcat"in a){const k=await Promise.all(a.hconcat.map(h));a={...a,hconcat:k}}if("vconcat"in a){const k=await Promise.all(a.vconcat.map(h));a={...a,vconcat:k}}if("spec"in a&&(a={...a,spec:await h(a.spec)}),!a.data||!("url"in a.data))return a;let n;try{n=K(a.data.url)}catch{return a}const m=await D(n.href,a.data.format);return x[n.pathname]=m,{...a,data:{name:n.pathname}}},b=await h(s);return Object.keys(x).length===0?b:{...b,datasets:x}})(l),v=[l],e[0]=l,e[1]=f,e[2]=v):(f=e[1],v=e[2]);const{data:c,error:o}=F(f,v);if(o){let s;return e[3]!==o?(s=g.jsx($,{error:o}),e[3]=o,e[4]=s):s=e[4],s}if(!c)return null;let p;return e[5]!==u||e[6]!==d||e[7]!==c||e[8]!==i||e[9]!==r?(p=g.jsx(rt,{value:r,setValue:i,chartSelection:u,fieldSelection:d,spec:c}),e[5]=u,e[6]=d,e[7]=c,e[8]=i,e[9]=r,e[10]=p):p=e[10],p},rt=({value:t,setValue:e,chartSelection:r,fieldSelection:i,spec:u})=>{const{theme:d}=C(),l=j.useRef(void 0),[f,v]=j.useState(),c=T(u),o=j.useMemo(()=>at((function(n){return n.data&&"url"in n.data&&(n.data.url=K(n.data.url).href),n})(c),{chartSelection:r,fieldSelection:i}),[c,r,i]),p=j.useMemo(()=>A(o),[o]),s=N(n=>{e({...t,...n})}),x=T(p),h=j.useMemo(()=>x.reduce((n,m)=>(w.PAN_ZOOM===m||(n[m]=R((k,I)=>{M.debug("[Vega signal]",k,I);let O=z.mapValues(I,st);O=z.mapValues(O,ot),s({[k]:O})},100)),n),{}),[x,s]),b=N(n=>{M.error(n),M.debug(o),v(n)}),a=N(n=>{M.debug("[Vega view] created",n),l.current=n,v(void 0)});return g.jsxs(g.Fragment,{children:[f&&g.jsxs(q,{variant:"destructive",children:[g.jsx(B,{children:f.message}),g.jsx("div",{className:"text-md",children:f.stack})]}),g.jsxs("div",{className:"relative",onPointerDown:Q.stopPropagation(),children:[g.jsx(Y,{spec:o,theme:d==="dark"?"dark":void 0,actions:it,signalListeners:h,onError:b,onNewView:a}),(()=>{const n=[];return w.hasPoint(p)&&n.push(["Point selection","click to select a point; hold shift for multi-select"]),w.hasInterval(p)&&n.push(["Interval selection","click and drag to select an interval"]),w.hasLegend(p)&&n.push(["Legend selection","click to select a legend item; hold shift for multi-select"]),w.hasPanZoom(p)&&n.push(["Pan","hold the meta key and drag"],["Zoom","hold the meta key and scroll"]),n.length===0?null:g.jsx(J,{delayDuration:300,side:"left",content:g.jsx("div",{className:"text-xs flex flex-col",children:n.map((m,k)=>g.jsxs("div",{children:[g.jsxs("span",{className:"font-bold tracking-wide",children:[m[0],":"]})," ",m[1]]},k))}),children:g.jsx(X,{className:"absolute bottom-1 right-0 m-2 h-4 w-4 cursor-help text-muted-foreground hover:text-foreground"})})})()]})]})},it={source:!1,compiled:!1};function ot(t){return t instanceof Set?[...t]:t}function st(t){return Array.isArray(t)?t.map(e=>e instanceof Date&&U(e)?new Date(e).getTime():e):t}export{nt as default};
1
+ import{dO as K,dP as W,a as D,b as E,dQ as F,dR as G,j as g,E as $,u as C,r as j,dS as T,cO as I,dT as R,L as O,cv as V,dU as q,dV as B,aI as Q,dW as U,aB as J,aD as X}from"./index-CelXfcd8.js";import{M as y}from"./compile-DVQe1Mzk.js";import{a as Y}from"./VegaLite-DvQDATwI.js";import"./time-DKdOTnQg.js";import"./timer-Bqd5yn_a.js";import"./linear-uO6UVhXt.js";import"./init-DLRA0X12.js";import"./range-CtcPcB_L.js";import"./zoom-COrs4lFh.js";import"./ordinal-DDUp3AbE.js";import"./colors-bszWmPJw.js";import"./step-BwsUM5iJ.js";import"./arc-Cuwikxov.js";import"./index-BEQfoZiP.js";import"./index-Db36XTG_.js";const z=new Set(["boxplot","errorband","errorbar"]),S={getMarkType(t){const e=typeof t=="string"?t:t.type;if(z.has(e))throw new Error("Not supported");return e},isInteractive(t){const e=typeof t=="string"?t:t.type;return!z.has(e)},makeClickable(t){const e=typeof t=="string"?t:t.type;return e in y?typeof t=="string"?{type:t,cursor:"pointer",tooltip:!0}:{...t,type:e,cursor:"pointer",tooltip:!0}:t},getOpacity:t=>typeof t=="string"?null:"opacity"in t&&typeof t.opacity=="number"?t.opacity:null},tt=new Set(["color","fill","fillOpacity","opacity","shape","size"]);function et(t,e,r,i){const u={and:r.map(d=>({param:d}))};if(t==="opacity"){const d=S.getOpacity(i)||1;return{...e,opacity:{condition:{test:u,value:d},value:d/5}}}return e}const w={point:t=>t==null?"select_point":`select_point_${t}`,interval:t=>t==null?"select_interval":`select_interval_${t}`,legendSelection:t=>`legend_selection_${t}`,HIGHLIGHT:"highlight",PAN_ZOOM:"pan_zoom",hasPoint:t=>t.some(e=>e.startsWith("select_point")),hasInterval:t=>t.some(e=>e.startsWith("select_interval")),hasLegend:t=>t.some(e=>e.startsWith("legend_selection")),hasPanZoom:t=>t.some(e=>e.startsWith("pan_zoom"))},P={highlight:()=>({name:w.HIGHLIGHT,select:{type:"point",on:"mouseover"}}),interval:(t,e)=>({name:w.interval(e),select:{type:"interval",encodings:Z(t),mark:{fill:"#669EFF",fillOpacity:.07,stroke:"#669EFF",strokeOpacity:.4},on:"[mousedown[!event.metaKey], mouseup] > mousemove[!event.metaKey]",translate:"[mousedown[!event.metaKey], mouseup] > mousemove[!event.metaKey]"}}),point:(t,e)=>({name:w.point(e),select:{type:"point",encodings:Z(t),on:"click[!event.metaKey]"}}),legend:t=>({name:w.legendSelection(t),select:{type:"point",fields:[t]},bind:"legend"}),panZoom:()=>({name:w.PAN_ZOOM,bind:"scales",select:{type:"interval",on:"[mousedown[event.metaKey], window:mouseup] > window:mousemove!",translate:"[mousedown[event.metaKey], window:mouseup] > window:mousemove!",zoom:"wheel![event.metaKey]"}})};function Z(t){switch(S.getMarkType(t.mark)){case y.image:case y.trail:return;case y.area:case y.arc:return["color"];case y.bar:{const e=(function(r){var d,l;if(!r||!("mark"in r))return;const i=(d=r.encoding)==null?void 0:d.x,u=(l=r.encoding)==null?void 0:l.y;if(i&&"type"in i&&i.type==="nominal")return"vertical";if(u&&"type"in u&&u.type==="nominal"||i&&"aggregate"in i)return"horizontal";if(u&&"aggregate"in u)return"vertical"})(t);return e==="horizontal"?["y"]:e==="vertical"?["x"]:void 0}case y.circle:case y.geoshape:case y.line:case y.point:case y.rect:case y.rule:case y.square:case y.text:case y.tick:return["x","y"]}}function A(t){return"params"in t&&t.params&&t.params.length>0?t.params.filter(e=>e!=null&&"select"in e&&e.select!==void 0).map(e=>e.name):"layer"in t?[...new Set(t.layer.flatMap(A))]:[]}function at(t,e){var f,v;let{chartSelection:r=!0,fieldSelection:i=!0}=e;if(!r&&!i)return t;if(((f=t.params)==null?void 0:f.some(c=>c.bind==="legend"))&&(i=!1),((v=t.params)==null?void 0:v.some(c=>!c.bind))&&(r=!1),"vconcat"in t){const c=t.vconcat.map(o=>"mark"in o?_(o):o);return{...t,vconcat:c}}if("hconcat"in t){const c=t.hconcat.map(o=>"mark"in o?_(o):o);return{...t,hconcat:c}}if("layer"in t){const c=t.layer.map((o,p)=>{if(!("mark"in o))return o;let s=o;return s=L(s,r,p),s=_(s),p===0&&(s=H(s)),s});return{...t,layer:c}}if(!("mark"in t)||!S.isInteractive(t.mark))return t;let l=t;return l=(function(c,o){if(o===!1)return c;let p=(function(h){if(!h||!("encoding"in h))return[];const{encoding:b}=h;return b?Object.entries(b).flatMap(a=>{const[n,m]=a;return m&&tt.has(n)?"field"in m&&typeof m.field=="string"?[m.field]:"condition"in m&&m.condition&&typeof m.condition=="object"&&"field"in m.condition&&m.condition.field&&typeof m.condition.field=="string"?[m.condition.field]:[]:[]}):[]})(c);Array.isArray(o)&&(p=p.filter(h=>o.includes(h)));const s=p.map(h=>P.legend(h)),x=[...c.params||[],...s];return{...c,params:x}})(l,i),l=L(l,r,void 0),l=_(l),l=H(l),l}function L(t,e,r){if(e===!1)return t;let i;try{i=S.getMarkType(t.mark)}catch{return t}if(i==="geoshape")return t;const u=e===!0?(function(f){switch(f){case"arc":case"area":return["point"];case"text":case"bar":default:return["point","interval"];case"line":return}})(i):[e];if(!u)return t;const d=u.map(f=>f==="interval"?P.interval(t,r):P.point(t,r)),l=[...t.params||[],...d];return{...t,params:l}}function H(t){let e;try{e=S.getMarkType(t.mark)}catch{}if(e==="geoshape")return t;const r=t.params||[];return r.some(i=>i.bind==="scales")?t:{...t,params:[...r,P.panZoom()]}}function _(t){const e="encoding"in t?t.encoding:void 0,r=t.params||[],i=r.map(u=>u.name);return r.length===0?t:S.isInteractive(t.mark)?{...t,mark:S.makeClickable(t.mark),encoding:et("opacity",e||{},i,t.mark)}:t}F("arrow",G);const nt=t=>{const e=D.c(11),{value:r,setValue:i,chartSelection:u,fieldSelection:d,spec:l}=t;let f,v;e[0]!==l?(f=async()=>(async function(s){if(!s)return s;const x="datasets"in s?{...s.datasets}:{},h=async a=>{if(!a)return a;if("layer"in a){const k=await Promise.all(a.layer.map(h));a={...a,layer:k}}if("hconcat"in a){const k=await Promise.all(a.hconcat.map(h));a={...a,hconcat:k}}if("vconcat"in a){const k=await Promise.all(a.vconcat.map(h));a={...a,vconcat:k}}if("spec"in a&&(a={...a,spec:await h(a.spec)}),!a.data||!("url"in a.data))return a;let n;try{n=K(a.data.url)}catch{return a}const m=await W(n.href,a.data.format);return x[n.pathname]=m,{...a,data:{name:n.pathname}}},b=await h(s);return Object.keys(x).length===0?b:{...b,datasets:x}})(l),v=[l],e[0]=l,e[1]=f,e[2]=v):(f=e[1],v=e[2]);const{data:c,error:o}=E(f,v);if(o){let s;return e[3]!==o?(s=g.jsx($,{error:o}),e[3]=o,e[4]=s):s=e[4],s}if(!c)return null;let p;return e[5]!==u||e[6]!==d||e[7]!==c||e[8]!==i||e[9]!==r?(p=g.jsx(rt,{value:r,setValue:i,chartSelection:u,fieldSelection:d,spec:c}),e[5]=u,e[6]=d,e[7]=c,e[8]=i,e[9]=r,e[10]=p):p=e[10],p},rt=({value:t,setValue:e,chartSelection:r,fieldSelection:i,spec:u})=>{const{theme:d}=C(),l=j.useRef(void 0),[f,v]=j.useState(),c=T(u),o=j.useMemo(()=>at((function(n){return n.data&&"url"in n.data&&(n.data.url=K(n.data.url).href),n})(c),{chartSelection:r,fieldSelection:i}),[c,r,i]),p=j.useMemo(()=>A(o),[o]),s=I(n=>{e({...t,...n})}),x=T(p),h=j.useMemo(()=>x.reduce((n,m)=>(w.PAN_ZOOM===m||(n[m]=R((k,N)=>{O.debug("[Vega signal]",k,N);let M=V.mapValues(N,st);M=V.mapValues(M,ot),s({[k]:M})},100)),n),{}),[x,s]),b=I(n=>{O.error(n),O.debug(o),v(n)}),a=I(n=>{O.debug("[Vega view] created",n),l.current=n,v(void 0)});return g.jsxs(g.Fragment,{children:[f&&g.jsxs(q,{variant:"destructive",children:[g.jsx(B,{children:f.message}),g.jsx("div",{className:"text-md",children:f.stack})]}),g.jsxs("div",{className:"relative",onPointerDown:Q.stopPropagation(),children:[g.jsx(Y,{spec:o,theme:d==="dark"?"dark":void 0,actions:it,signalListeners:h,onError:b,onNewView:a}),(()=>{const n=[];return w.hasPoint(p)&&n.push(["Point selection","click to select a point; hold shift for multi-select"]),w.hasInterval(p)&&n.push(["Interval selection","click and drag to select an interval"]),w.hasLegend(p)&&n.push(["Legend selection","click to select a legend item; hold shift for multi-select"]),w.hasPanZoom(p)&&n.push(["Pan","hold the meta key and drag"],["Zoom","hold the meta key and scroll"]),n.length===0?null:g.jsx(J,{delayDuration:300,side:"left",content:g.jsx("div",{className:"text-xs flex flex-col",children:n.map((m,k)=>g.jsxs("div",{children:[g.jsxs("span",{className:"font-bold tracking-wide",children:[m[0],":"]})," ",m[1]]},k))}),children:g.jsx(X,{className:"absolute bottom-1 right-0 m-2 h-4 w-4 cursor-help text-muted-foreground hover:text-foreground"})})})()]})]})},it={source:!1,compiled:!1};function ot(t){return t instanceof Set?[...t]:t}function st(t){return Array.isArray(t)?t.map(e=>e instanceof Date&&U(e)?new Date(e).getTime():e):t}export{nt as default};
@@ -1,4 +1,4 @@
1
- var G,j,Q,K,q,Z,J,tt,it,et;import{_ as a,s as hi,g as oi,t as It,q as ri,a as li,b as ci,l as $t,K as gi,d as ui,z as xi,G as ft,F as Bt,H as di,M as pi,h as fi,ac as mi}from"./mermaid.core-DzthE35Y.js";import"./transform-D9VCJYws.js";import{i as yi}from"./init-DLRA0X12.js";import{o as bi}from"./ordinal-DDUp3AbE.js";import{r as Ai}from"./range-CtcPcB_L.js";import{l as zt}from"./linear-D8s7K76e.js";import{l as Ot}from"./step-BwsUM5iJ.js";import"./index-C7CoaNFb.js";import"./isEmpty-D-4c7sMv.js";import"./timer-Bqd5yn_a.js";function mt(){var e,t,i=bi().unknown(void 0),s=i.domain,n=i.range,c=0,g=1,p=!1,d=0,_=0,L=.5;function S(){var y=s().length,E=g<c,D=E?g:c,P=E?c:g;e=(P-D)/Math.max(1,y-d+2*_),p&&(e=Math.floor(e)),D+=(P-D-e*(y-d))*L,t=e*(1-d),p&&(D=Math.round(D),t=Math.round(t));var M=Ai(y).map(function(f){return D+e*f});return n(E?M.reverse():M)}return delete i.unknown,i.domain=function(y){return arguments.length?(s(y),S()):s()},i.range=function(y){return arguments.length?([c,g]=y,c=+c,g=+g,S()):[c,g]},i.rangeRound=function(y){return[c,g]=y,c=+c,g=+g,p=!0,S()},i.bandwidth=function(){return t},i.step=function(){return e},i.round=function(y){return arguments.length?(p=!!y,S()):p},i.padding=function(y){return arguments.length?(d=Math.min(1,_=+y),S()):d},i.paddingInner=function(y){return arguments.length?(d=Math.min(1,y),S()):d},i.paddingOuter=function(y){return arguments.length?(_=+y,S()):_},i.align=function(y){return arguments.length?(L=Math.max(0,Math.min(1,y)),S()):L},i.copy=function(){return mt(s(),[c,g]).round(p).paddingInner(d).paddingOuter(_).align(L)},yi.apply(S(),arguments)}var yt=(function(){var e=a(function(h,b,u,x){for(u=u||{},x=h.length;x--;u[h[x]]=b);return u},"o"),t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],n=[1,5],c=[1,6],g=[1,7],p=[1,5,10,12,14,16,18,19,21,23,34,35,36],d=[1,25],_=[1,26],L=[1,28],S=[1,29],y=[1,30],E=[1,31],D=[1,32],P=[1,33],M=[1,34],f=[1,35],k=[1,36],l=[1,37],z=[1,43],O=[1,42],Y=[1,47],F=[1,50],r=[1,10,12,14,16,18,19,21,23,34,35,36],v=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],C=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],T=[1,64],st={trace:a(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:a(function(h,b,u,x,w,o,nt){var m=o.length-1;switch(w){case 5:x.setOrientation(o[m]);break;case 9:x.setDiagramTitle(o[m].text.trim());break;case 12:x.setLineData({text:"",type:"text"},o[m]);break;case 13:x.setLineData(o[m-1],o[m]);break;case 14:x.setBarData({text:"",type:"text"},o[m]);break;case 15:x.setBarData(o[m-1],o[m]);break;case 16:this.$=o[m].trim(),x.setAccTitle(this.$);break;case 17:case 18:this.$=o[m].trim(),x.setAccDescription(this.$);break;case 19:case 27:this.$=o[m-1];break;case 20:this.$=[Number(o[m-2]),...o[m]];break;case 21:this.$=[Number(o[m])];break;case 22:x.setXAxisTitle(o[m]);break;case 23:x.setXAxisTitle(o[m-1]);break;case 24:x.setXAxisTitle({type:"text",text:""});break;case 25:x.setXAxisBand(o[m]);break;case 26:x.setXAxisRangeData(Number(o[m-2]),Number(o[m]));break;case 28:this.$=[o[m-2],...o[m]];break;case 29:this.$=[o[m]];break;case 30:x.setYAxisTitle(o[m]);break;case 31:x.setYAxisTitle(o[m-1]);break;case 32:x.setYAxisTitle({type:"text",text:""});break;case 33:x.setYAxisRangeData(Number(o[m-2]),Number(o[m]));break;case 37:case 38:this.$={text:o[m],type:"text"};break;case 39:this.$={text:o[m],type:"markdown"};break;case 40:this.$=o[m];break;case 41:this.$=o[m-1]+""+o[m]}},"anonymous"),table:[e(t,i,{3:1,4:2,7:4,5:s,34:n,35:c,36:g}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,34:n,35:c,36:g}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:n,35:c,36:g}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(p,[2,34]),e(p,[2,35]),e(p,[2,36]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,34:n,35:c,36:g}),{1:[2,3]},e(p,[2,5]),e(t,[2,7],{4:22,34:n,35:c,36:g}),{11:23,37:24,38:d,39:_,40:27,41:L,42:S,43:y,44:E,45:D,46:P,47:M,48:f,49:k,50:l},{11:39,13:38,24:z,27:O,29:40,30:41,37:24,38:d,39:_,40:27,41:L,42:S,43:y,44:E,45:D,46:P,47:M,48:f,49:k,50:l},{11:45,15:44,27:Y,33:46,37:24,38:d,39:_,40:27,41:L,42:S,43:y,44:E,45:D,46:P,47:M,48:f,49:k,50:l},{11:49,17:48,24:F,37:24,38:d,39:_,40:27,41:L,42:S,43:y,44:E,45:D,46:P,47:M,48:f,49:k,50:l},{11:52,17:51,24:F,37:24,38:d,39:_,40:27,41:L,42:S,43:y,44:E,45:D,46:P,47:M,48:f,49:k,50:l},{20:[1,53]},{22:[1,54]},e(r,[2,18]),{1:[2,2]},e(r,[2,8]),e(r,[2,9]),e(v,[2,37],{40:55,41:L,42:S,43:y,44:E,45:D,46:P,47:M,48:f,49:k,50:l}),e(v,[2,38]),e(v,[2,39]),e(C,[2,40]),e(C,[2,42]),e(C,[2,43]),e(C,[2,44]),e(C,[2,45]),e(C,[2,46]),e(C,[2,47]),e(C,[2,48]),e(C,[2,49]),e(C,[2,50]),e(C,[2,51]),e(r,[2,10]),e(r,[2,22],{30:41,29:56,24:z,27:O}),e(r,[2,24]),e(r,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:d,39:_,40:27,41:L,42:S,43:y,44:E,45:D,46:P,47:M,48:f,49:k,50:l},e(r,[2,11]),e(r,[2,30],{33:60,27:Y}),e(r,[2,32]),{31:[1,61]},e(r,[2,12]),{17:62,24:F},{25:63,27:T},e(r,[2,14]),{17:65,24:F},e(r,[2,16]),e(r,[2,17]),e(C,[2,41]),e(r,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},e(r,[2,31]),{27:[1,69]},e(r,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},e(r,[2,15]),e(r,[2,26]),e(r,[2,27]),{11:59,32:72,37:24,38:d,39:_,40:27,41:L,42:S,43:y,44:E,45:D,46:P,47:M,48:f,49:k,50:l},e(r,[2,33]),e(r,[2,19]),{25:73,27:T},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:a(function(h,b){if(!b.recoverable){var u=new Error(h);throw u.hash=b,u}this.trace(h)},"parseError"),parse:a(function(h){var b=this,u=[0],x=[],w=[null],o=[],nt=this.table,m="",rt=0,Lt=0,ni=o.slice.call(arguments,1),R=Object.create(this.lexer),N={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(N.yy[dt]=this.yy[dt]);R.setInput(h,N.yy),N.yy.lexer=R,N.yy.parser=this,R.yylloc===void 0&&(R.yylloc={});var pt=R.yylloc;o.push(pt);var ai=R.options&&R.options.ranges;function Pt(){var B;return typeof(B=x.pop()||R.lex()||1)!="number"&&(B instanceof Array&&(B=(x=B).pop()),B=b.symbols_[B]||B),B}typeof N.yy.parseError=="function"?this.parseError=N.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,a(function(B){u.length=u.length-2*B,w.length=w.length-B,o.length=o.length-B},"popStack"),a(Pt,"lex");for(var I,V,$,vt,lt,W,Et,ct,H={};;){if(V=u[u.length-1],this.defaultActions[V]?$=this.defaultActions[V]:(I==null&&(I=Pt()),$=nt[V]&&nt[V][I]),$===void 0||!$.length||!$[0]){var Mt="";for(lt in ct=[],nt[V])this.terminals_[lt]&&lt>2&&ct.push("'"+this.terminals_[lt]+"'");Mt=R.showPosition?"Parse error on line "+(rt+1)+`:
1
+ var G,j,Q,K,q,Z,J,tt,it,et;import{_ as a,s as hi,g as oi,t as It,q as ri,a as li,b as ci,l as $t,K as gi,d as ui,z as xi,G as ft,F as Bt,H as di,M as pi,h as fi,ac as mi}from"./mermaid.core-CvvJtCRj.js";import"./transform-D9VCJYws.js";import{i as yi}from"./init-DLRA0X12.js";import{o as bi}from"./ordinal-DDUp3AbE.js";import{r as Ai}from"./range-CtcPcB_L.js";import{l as zt}from"./linear-uO6UVhXt.js";import{l as Ot}from"./step-BwsUM5iJ.js";import"./index-CelXfcd8.js";import"./isEmpty-CqX_YTIf.js";import"./timer-Bqd5yn_a.js";function mt(){var e,t,i=bi().unknown(void 0),s=i.domain,n=i.range,c=0,g=1,p=!1,d=0,_=0,L=.5;function S(){var y=s().length,E=g<c,D=E?g:c,P=E?c:g;e=(P-D)/Math.max(1,y-d+2*_),p&&(e=Math.floor(e)),D+=(P-D-e*(y-d))*L,t=e*(1-d),p&&(D=Math.round(D),t=Math.round(t));var M=Ai(y).map(function(f){return D+e*f});return n(E?M.reverse():M)}return delete i.unknown,i.domain=function(y){return arguments.length?(s(y),S()):s()},i.range=function(y){return arguments.length?([c,g]=y,c=+c,g=+g,S()):[c,g]},i.rangeRound=function(y){return[c,g]=y,c=+c,g=+g,p=!0,S()},i.bandwidth=function(){return t},i.step=function(){return e},i.round=function(y){return arguments.length?(p=!!y,S()):p},i.padding=function(y){return arguments.length?(d=Math.min(1,_=+y),S()):d},i.paddingInner=function(y){return arguments.length?(d=Math.min(1,y),S()):d},i.paddingOuter=function(y){return arguments.length?(_=+y,S()):_},i.align=function(y){return arguments.length?(L=Math.max(0,Math.min(1,y)),S()):L},i.copy=function(){return mt(s(),[c,g]).round(p).paddingInner(d).paddingOuter(_).align(L)},yi.apply(S(),arguments)}var yt=(function(){var e=a(function(h,b,u,x){for(u=u||{},x=h.length;x--;u[h[x]]=b);return u},"o"),t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],n=[1,5],c=[1,6],g=[1,7],p=[1,5,10,12,14,16,18,19,21,23,34,35,36],d=[1,25],_=[1,26],L=[1,28],S=[1,29],y=[1,30],E=[1,31],D=[1,32],P=[1,33],M=[1,34],f=[1,35],k=[1,36],l=[1,37],z=[1,43],O=[1,42],Y=[1,47],F=[1,50],r=[1,10,12,14,16,18,19,21,23,34,35,36],v=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],C=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],T=[1,64],st={trace:a(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:a(function(h,b,u,x,w,o,nt){var m=o.length-1;switch(w){case 5:x.setOrientation(o[m]);break;case 9:x.setDiagramTitle(o[m].text.trim());break;case 12:x.setLineData({text:"",type:"text"},o[m]);break;case 13:x.setLineData(o[m-1],o[m]);break;case 14:x.setBarData({text:"",type:"text"},o[m]);break;case 15:x.setBarData(o[m-1],o[m]);break;case 16:this.$=o[m].trim(),x.setAccTitle(this.$);break;case 17:case 18:this.$=o[m].trim(),x.setAccDescription(this.$);break;case 19:case 27:this.$=o[m-1];break;case 20:this.$=[Number(o[m-2]),...o[m]];break;case 21:this.$=[Number(o[m])];break;case 22:x.setXAxisTitle(o[m]);break;case 23:x.setXAxisTitle(o[m-1]);break;case 24:x.setXAxisTitle({type:"text",text:""});break;case 25:x.setXAxisBand(o[m]);break;case 26:x.setXAxisRangeData(Number(o[m-2]),Number(o[m]));break;case 28:this.$=[o[m-2],...o[m]];break;case 29:this.$=[o[m]];break;case 30:x.setYAxisTitle(o[m]);break;case 31:x.setYAxisTitle(o[m-1]);break;case 32:x.setYAxisTitle({type:"text",text:""});break;case 33:x.setYAxisRangeData(Number(o[m-2]),Number(o[m]));break;case 37:case 38:this.$={text:o[m],type:"text"};break;case 39:this.$={text:o[m],type:"markdown"};break;case 40:this.$=o[m];break;case 41:this.$=o[m-1]+""+o[m]}},"anonymous"),table:[e(t,i,{3:1,4:2,7:4,5:s,34:n,35:c,36:g}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,34:n,35:c,36:g}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:n,35:c,36:g}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(p,[2,34]),e(p,[2,35]),e(p,[2,36]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,34:n,35:c,36:g}),{1:[2,3]},e(p,[2,5]),e(t,[2,7],{4:22,34:n,35:c,36:g}),{11:23,37:24,38:d,39:_,40:27,41:L,42:S,43:y,44:E,45:D,46:P,47:M,48:f,49:k,50:l},{11:39,13:38,24:z,27:O,29:40,30:41,37:24,38:d,39:_,40:27,41:L,42:S,43:y,44:E,45:D,46:P,47:M,48:f,49:k,50:l},{11:45,15:44,27:Y,33:46,37:24,38:d,39:_,40:27,41:L,42:S,43:y,44:E,45:D,46:P,47:M,48:f,49:k,50:l},{11:49,17:48,24:F,37:24,38:d,39:_,40:27,41:L,42:S,43:y,44:E,45:D,46:P,47:M,48:f,49:k,50:l},{11:52,17:51,24:F,37:24,38:d,39:_,40:27,41:L,42:S,43:y,44:E,45:D,46:P,47:M,48:f,49:k,50:l},{20:[1,53]},{22:[1,54]},e(r,[2,18]),{1:[2,2]},e(r,[2,8]),e(r,[2,9]),e(v,[2,37],{40:55,41:L,42:S,43:y,44:E,45:D,46:P,47:M,48:f,49:k,50:l}),e(v,[2,38]),e(v,[2,39]),e(C,[2,40]),e(C,[2,42]),e(C,[2,43]),e(C,[2,44]),e(C,[2,45]),e(C,[2,46]),e(C,[2,47]),e(C,[2,48]),e(C,[2,49]),e(C,[2,50]),e(C,[2,51]),e(r,[2,10]),e(r,[2,22],{30:41,29:56,24:z,27:O}),e(r,[2,24]),e(r,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:d,39:_,40:27,41:L,42:S,43:y,44:E,45:D,46:P,47:M,48:f,49:k,50:l},e(r,[2,11]),e(r,[2,30],{33:60,27:Y}),e(r,[2,32]),{31:[1,61]},e(r,[2,12]),{17:62,24:F},{25:63,27:T},e(r,[2,14]),{17:65,24:F},e(r,[2,16]),e(r,[2,17]),e(C,[2,41]),e(r,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},e(r,[2,31]),{27:[1,69]},e(r,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},e(r,[2,15]),e(r,[2,26]),e(r,[2,27]),{11:59,32:72,37:24,38:d,39:_,40:27,41:L,42:S,43:y,44:E,45:D,46:P,47:M,48:f,49:k,50:l},e(r,[2,33]),e(r,[2,19]),{25:73,27:T},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:a(function(h,b){if(!b.recoverable){var u=new Error(h);throw u.hash=b,u}this.trace(h)},"parseError"),parse:a(function(h){var b=this,u=[0],x=[],w=[null],o=[],nt=this.table,m="",rt=0,Lt=0,ni=o.slice.call(arguments,1),R=Object.create(this.lexer),N={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(N.yy[dt]=this.yy[dt]);R.setInput(h,N.yy),N.yy.lexer=R,N.yy.parser=this,R.yylloc===void 0&&(R.yylloc={});var pt=R.yylloc;o.push(pt);var ai=R.options&&R.options.ranges;function Pt(){var B;return typeof(B=x.pop()||R.lex()||1)!="number"&&(B instanceof Array&&(B=(x=B).pop()),B=b.symbols_[B]||B),B}typeof N.yy.parseError=="function"?this.parseError=N.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError,a(function(B){u.length=u.length-2*B,w.length=w.length-B,o.length=o.length-B},"popStack"),a(Pt,"lex");for(var I,V,$,vt,lt,W,Et,ct,H={};;){if(V=u[u.length-1],this.defaultActions[V]?$=this.defaultActions[V]:(I==null&&(I=Pt()),$=nt[V]&&nt[V][I]),$===void 0||!$.length||!$[0]){var Mt="";for(lt in ct=[],nt[V])this.terminals_[lt]&&lt>2&&ct.push("'"+this.terminals_[lt]+"'");Mt=R.showPosition?"Parse error on line "+(rt+1)+`:
2
2
  `+R.showPosition()+`
3
3
  Expecting `+ct.join(", ")+", got '"+(this.terminals_[I]||I)+"'":"Parse error on line "+(rt+1)+": Unexpected "+(I==1?"end of input":"'"+(this.terminals_[I]||I)+"'"),this.parseError(Mt,{text:R.match,token:this.terminals_[I]||I,line:R.yylineno,loc:pt,expected:ct})}if($[0]instanceof Array&&$.length>1)throw new Error("Parse Error: multiple actions possible at state: "+V+", token: "+I);switch($[0]){case 1:u.push(I),w.push(R.yytext),o.push(R.yylloc),u.push($[1]),I=null,Lt=R.yyleng,m=R.yytext,rt=R.yylineno,pt=R.yylloc;break;case 2:if(W=this.productions_[$[1]][1],H.$=w[w.length-W],H._$={first_line:o[o.length-(W||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(W||1)].first_column,last_column:o[o.length-1].last_column},ai&&(H._$.range=[o[o.length-(W||1)].range[0],o[o.length-1].range[1]]),(vt=this.performAction.apply(H,[m,Lt,rt,N.yy,$[1],w,o].concat(ni)))!==void 0)return vt;W&&(u=u.slice(0,-1*W*2),w=w.slice(0,-1*W),o=o.slice(0,-1*W)),u.push(this.productions_[$[1]][0]),w.push(H.$),o.push(H._$),Et=nt[u[u.length-2]][u[u.length-1]],u.push(Et);break;case 3:return!0}}return!0},"parse")},ot=(function(){return{EOF:1,parseError:a(function(h,b){if(!this.yy.parser)throw new Error(h);this.yy.parser.parseError(h,b)},"parseError"),setInput:a(function(h,b){return this.yy=b||this.yy||{},this._input=h,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:a(function(){var h=this._input[0];return this.yytext+=h,this.yyleng++,this.offset++,this.match+=h,this.matched+=h,h.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),h},"input"),unput:a(function(h){var b=h.length,u=h.split(/(?:\r\n?|\n)/g);this._input=h+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-b),this.offset-=b;var x=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),u.length-1&&(this.yylineno-=u.length-1);var w=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:u?(u.length===x.length?this.yylloc.first_column:0)+x[x.length-u.length].length-u[0].length:this.yylloc.first_column-b},this.options.ranges&&(this.yylloc.range=[w[0],w[0]+this.yyleng-b]),this.yyleng=this.yytext.length,this},"unput"),more:a(function(){return this._more=!0,this},"more"),reject:a(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:a(function(h){this.unput(this.match.slice(h))},"less"),pastInput:a(function(){var h=this.matched.substr(0,this.matched.length-this.match.length);return(h.length>20?"...":"")+h.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:a(function(){var h=this.match;return h.length<20&&(h+=this._input.substr(0,20-h.length)),(h.substr(0,20)+(h.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:a(function(){var h=this.pastInput(),b=new Array(h.length+1).join("-");return h+this.upcomingInput()+`
package/dist/index.html CHANGED
@@ -59,8 +59,8 @@
59
59
  <marimo-server-token data-token="{{ server_token }}" hidden></marimo-server-token>
60
60
  <!-- /TODO -->
61
61
  <title>{{ title }}</title>
62
- <script type="module" crossorigin src="./assets/index-C7CoaNFb.js"></script>
63
- <link rel="stylesheet" crossorigin href="./assets/index-DadI618h.css">
62
+ <script type="module" crossorigin src="./assets/index-CelXfcd8.js"></script>
63
+ <link rel="stylesheet" crossorigin href="./assets/index-CGDMlQfO.css">
64
64
  </head>
65
65
  <body>
66
66
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marimo-team/frontend",
3
- "version": "0.16.1",
3
+ "version": "0.16.2",
4
4
  "main": "dist/main.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -245,8 +245,8 @@
245
245
  "storybook": "^9.1.3",
246
246
  "stylelint": "^16.23.1",
247
247
  "stylelint-config-standard": "^36.0.1",
248
- "tailwindcss": "^4.1.12",
249
- "vite": "^6.3.5",
248
+ "tailwindcss": "^4.1.13",
249
+ "vite": "^6.3.6",
250
250
  "vite-plugin-top-level-await": "^1.6.0",
251
251
  "vite-plugin-wasm": "^3.5.0",
252
252
  "vite-tsconfig-paths": "^5.1.4",
@@ -40,6 +40,7 @@ export const MockRequestClient = {
40
40
  previewSQLTable: vi.fn().mockResolvedValue({}),
41
41
  previewSQLTableList: vi.fn().mockResolvedValue({ tables: [] }),
42
42
  previewDataSourceConnection: vi.fn().mockResolvedValue({}),
43
+ validateSQL: vi.fn().mockResolvedValue({}),
43
44
  openFile: vi.fn().mockResolvedValue({}),
44
45
  getUsageStats: vi.fn().mockResolvedValue({}),
45
46
  sendPdb: vi.fn().mockResolvedValue({}),
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { render } from "@testing-library/react";
4
4
  import { describe, expect, it, test } from "vitest";
5
+ import { TooltipProvider } from "@/components/ui/tooltip";
5
6
  import { generateColumns, inferFieldTypes } from "../columns";
6
7
  import { getMimeValues, isMimeValue, MimeCell } from "../mime-cell";
7
8
  import type { FieldTypesWithExternalType } from "../types";
@@ -245,6 +246,43 @@ describe("generateColumns", () => {
245
246
  expect(columns[0].id).toBe("name");
246
247
  expect(columns[1].id).toBe("age");
247
248
  });
249
+
250
+ it("should render header with tooltip when headerTooltip is provided", () => {
251
+ const columns = generateColumns({
252
+ rowHeaders: [],
253
+ selection: null,
254
+ fieldTypes,
255
+ headerTooltip: { name: "Custom Name Tooltip" },
256
+ });
257
+
258
+ // Get the header function for the first column
259
+ const headerFunction = columns[0].header;
260
+ expect(headerFunction).toBeTypeOf("function");
261
+
262
+ const mockColumn = {
263
+ id: "name",
264
+ getCanSort: () => false,
265
+ getCanFilter: () => false,
266
+ columnDef: {
267
+ meta: {
268
+ dtype: "string",
269
+ dataType: "string",
270
+ },
271
+ },
272
+ };
273
+
274
+ const { container } = render(
275
+ <TooltipProvider>
276
+ {/* @ts-expect-error: mock column and header function */}
277
+ {headerFunction({ column: mockColumn })}
278
+ </TooltipProvider>,
279
+ );
280
+
281
+ expect(container.textContent).toContain("name");
282
+ // The tooltip functionality is tested by verifying that the header renders correctly
283
+ // when headerTooltip is provided.
284
+ expect(container.firstChild).toBeTruthy();
285
+ });
248
286
  });
249
287
 
250
288
  describe("MimeCell", () => {
@@ -1,4 +1,4 @@
1
- /* Copyright 2025 Marimo. All rights reserved. */
1
+ /* Copyright 2024 Marimo. All rights reserved. */
2
2
  "use no memo";
3
3
 
4
4
  import type { InitialTableState, TableFeature } from "@tanstack/react-table";
@@ -1,4 +1,4 @@
1
- /* Copyright 2025 Marimo. All rights reserved. */
1
+ /* Copyright 2024 Marimo. All rights reserved. */
2
2
  /* eslint-disable @typescript-eslint/no-empty-interface */
3
3
 
4
4
  export interface CellHoverTemplateTableState {
@@ -17,6 +17,7 @@ import { JsonOutput } from "../editor/output/JsonOutput";
17
17
  import { Button } from "../ui/button";
18
18
  import { Checkbox } from "../ui/checkbox";
19
19
  import { Popover, PopoverContent, PopoverTrigger } from "../ui/popover";
20
+ import { Tooltip } from "../ui/tooltip";
20
21
  import { DataTableColumnHeader } from "./column-header";
21
22
  import type { ColumnChartSpecModel } from "./column-summary/chart-spec-model";
22
23
  import { TableColumnSummary } from "./column-summary/column-summary";
@@ -103,6 +104,7 @@ export function generateColumns<T>({
103
104
  chartSpecModel,
104
105
  textJustifyColumns,
105
106
  wrappedColumns,
107
+ headerTooltip,
106
108
  showDataTypes,
107
109
  calculateTopKRows,
108
110
  }: {
@@ -112,6 +114,7 @@ export function generateColumns<T>({
112
114
  chartSpecModel?: ColumnChartSpecModel<unknown>;
113
115
  textJustifyColumns?: Record<string, "left" | "center" | "right">;
114
116
  wrappedColumns?: string[];
117
+ headerTooltip?: Record<string, string>;
115
118
  showDataTypes?: boolean;
116
119
  calculateTopKRows?: CalculateTopKRows;
117
120
  }): Array<ColumnDef<T>> {
@@ -165,6 +168,7 @@ export function generateColumns<T>({
165
168
  header: ({ column }) => {
166
169
  const stats = chartSpecModel?.getColumnStats(key);
167
170
  const dtype = column.columnDef.meta?.dtype;
171
+ const headerTitle = headerTooltip?.[key];
168
172
  const dtypeHeader =
169
173
  showDataTypes && dtype ? (
170
174
  <div className="flex flex-row gap-1">
@@ -179,14 +183,29 @@ export function generateColumns<T>({
179
183
 
180
184
  const headerWithType = (
181
185
  <div className="flex flex-col">
182
- <span className="font-bold">{key === "" ? " " : key}</span>
186
+ <span
187
+ className={cn(
188
+ "font-bold",
189
+ headerTitle && "underline decoration-dotted",
190
+ )}
191
+ >
192
+ {key === "" ? " " : key}
193
+ </span>
183
194
  {dtypeHeader}
184
195
  </div>
185
196
  );
186
197
 
198
+ const headerWithTooltip = headerTitle ? (
199
+ <Tooltip content={headerTitle} delayDuration={300}>
200
+ {headerWithType}
201
+ </Tooltip>
202
+ ) : (
203
+ headerWithType
204
+ );
205
+
187
206
  const dataTableColumnHeader = (
188
207
  <DataTableColumnHeader
189
- header={headerWithType}
208
+ header={headerWithTooltip}
190
209
  column={column}
191
210
  calculateTopKRows={calculateTopKRows}
192
211
  />
@@ -106,9 +106,9 @@ export const DataTableBody = <TData,>({
106
106
  const s = renderUnknownValue({ value: v, nullAsEmptyString: true });
107
107
  idToValue.set(c.column.id, s);
108
108
  }
109
- return template.replace(variableRegex, (_substr, varName: string) => {
109
+ return template.replaceAll(variableRegex, (_substr, varName: string) => {
110
110
  const val = idToValue.get(varName);
111
- return val !== undefined ? val : `{{${varName}}}`;
111
+ return val === undefined ? `{{${varName}}}` : val;
112
112
  });
113
113
  }
114
114
 
@@ -154,6 +154,8 @@ export const DataTableBody = <TData,>({
154
154
  }
155
155
  };
156
156
 
157
+ const hoverTemplate = table.getState().cellHoverTemplate || null;
158
+
157
159
  return (
158
160
  <TableBody onKeyDown={handleCellsKeyDown} ref={tableRef}>
159
161
  {table.getRowModel().rows?.length ? (
@@ -165,12 +167,18 @@ export const DataTableBody = <TData,>({
165
167
  const isRowViewedInPanel =
166
168
  rowViewerPanelOpen && viewedRowIdx === rowIndex;
167
169
 
168
- // Compute hover title once per row using this row's cells (visible or hidden)
169
- const hoverTemplate = table.getState().cellHoverTemplate || null;
170
- const rowCells = row.getAllCells();
171
- const rowTitle = hoverTemplate
172
- ? applyHoverTemplate(hoverTemplate, rowCells)
173
- : undefined;
170
+ // Compute hover title once per row using all visible cells
171
+ let rowTitle: string | undefined;
172
+ if (hoverTemplate) {
173
+ const visibleCells = row.getVisibleCells?.() ?? [
174
+ ...row.getLeftVisibleCells(),
175
+ ...row.getCenterVisibleCells(),
176
+ ...row.getRightVisibleCells(),
177
+ ];
178
+ rowTitle = hoverTemplate
179
+ ? applyHoverTemplate(hoverTemplate, visibleCells)
180
+ : undefined;
181
+ }
174
182
 
175
183
  return (
176
184
  <TableRow
@@ -0,0 +1,16 @@
1
+ /* Copyright 2024 Marimo. All rights reserved. */
2
+
3
+ import z from "zod";
4
+ import { rpc } from "@/plugins/core/rpc";
5
+
6
+ export type DownloadAsArgs = (req: {
7
+ format: "csv" | "json" | "parquet";
8
+ }) => Promise<string>;
9
+
10
+ export const DownloadAsSchema = rpc
11
+ .input(
12
+ z.object({
13
+ format: z.enum(["csv", "json", "parquet"]),
14
+ }),
15
+ )
16
+ .output(z.string());
@@ -80,6 +80,7 @@ import { useDeleteCellCallback } from "./cell/useDeleteCell";
80
80
  import { useRunCell } from "./cell/useRunCells";
81
81
  import { HideCodeButton } from "./code/readonly-python-code";
82
82
  import { cellDomProps } from "./common";
83
+ import { SqlValidationErrorBanner } from "./errors/sql-validation-errors";
83
84
  import { useCellNavigationProps } from "./navigation/navigation";
84
85
  import {
85
86
  useTemporarilyShownCode,
@@ -653,6 +654,7 @@ const EditableCellComponent = ({
653
654
  )}
654
655
  </div>
655
656
  </div>
657
+ <SqlValidationErrorBanner cellId={cellId} />
656
658
  {cellOutput === "below" && outputArea}
657
659
  {cellRuntime.serialization && (
658
660
  <div className="py-1 px-2 flex items-center justify-end gap-2 last:rounded-b">
@@ -0,0 +1,34 @@
1
+ /* Copyright 2024 Marimo. All rights reserved. */
2
+
3
+ import { AlertCircleIcon } from "lucide-react";
4
+ import type { CellId } from "@/core/cells/ids";
5
+ import { useSqlValidationErrorsForCell } from "@/core/codemirror/language/languages/sql/validation-errors";
6
+
7
+ export const SqlValidationErrorBanner = ({ cellId }: { cellId: CellId }) => {
8
+ const error = useSqlValidationErrorsForCell(cellId);
9
+
10
+ if (!error) {
11
+ return;
12
+ }
13
+
14
+ return (
15
+ <div className="p-3 text-sm flex flex-col text-muted-foreground gap-1.5 bg-destructive/5">
16
+ <div className="flex items-start gap-1.5">
17
+ <AlertCircleIcon size={13} className="mt-[3px] text-destructive" />
18
+ <p>
19
+ <span className="font-bold text-destructive">{error.errorType}:</span>{" "}
20
+ {error.errorMessage}
21
+ </p>
22
+ </div>
23
+
24
+ {error.codeblock && (
25
+ <pre
26
+ lang="sql"
27
+ className="text-xs bg-muted rounded p-2 pb-0 mx-3 overflow-x-auto font-mono whitespace-pre-wrap"
28
+ >
29
+ {error.codeblock}
30
+ </pre>
31
+ )}
32
+ </div>
33
+ );
34
+ };
@@ -14,6 +14,7 @@ import type { OutputMessage } from "@/core/kernel/messages";
14
14
  import { useSelectAllContent } from "@/hooks/useSelectAllContent";
15
15
  import { cn } from "@/utils/cn";
16
16
  import { copyToClipboard } from "@/utils/copy";
17
+ import { ansiToPlainText, parseHtmlContent } from "@/utils/dom";
17
18
  import { invariant } from "@/utils/invariant";
18
19
  import { Strings } from "@/utils/strings";
19
20
  import { NameCellContentEditable } from "../actions/name-cell-input";
@@ -124,7 +125,18 @@ const ConsoleOutputInternal = (props: Props): React.ReactNode => {
124
125
  onClick={() => {
125
126
  const text = reversedOutputs
126
127
  .filter((output) => output.channel !== "pdb")
127
- .map((output) => Strings.asString(output.data))
128
+ .map((output) => {
129
+ // If starts with `<`, then assume it's HTML
130
+ if (
131
+ typeof output.data === "string" &&
132
+ output.data.startsWith("<")
133
+ ) {
134
+ return parseHtmlContent(output.data);
135
+ }
136
+
137
+ // Otherwise, convert the ANSI to HTML, then parse as HTML
138
+ return ansiToPlainText(Strings.asString(output.data));
139
+ })
128
140
  .join("\n");
129
141
  void copyToClipboard(text);
130
142
  }}