@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.
- package/dist/assets/{ConnectedDataExplorerComponent-2wVcyvDj.js → ConnectedDataExplorerComponent-B5cPvWoQ.js} +1 -1
- package/dist/assets/{ImageComparisonComponent-D2j6i0hv.js → ImageComparisonComponent-CqR26LSv.js} +1 -1
- package/dist/assets/{VegaLite-BckFaf2D.js → VegaLite-DvQDATwI.js} +1 -1
- package/dist/assets/_baseEach--KDTwKbG.js +1 -0
- package/dist/assets/_baseMap-Cu3o-eyO.js +1 -0
- package/dist/assets/{_baseUniq-BKktIGQ1.js → _baseUniq-y7ZXnMo1.js} +1 -1
- package/dist/assets/{_createAggregator-C5CVY-0t.js → _createAggregator-ZcHkHPNJ.js} +1 -1
- package/dist/assets/{agent-panel-RGLNjkYe.js → agent-panel-B91RoLct.js} +6 -6
- package/dist/assets/{any-language-editor-DjuXwGCA.js → any-language-editor-CxfHcm5h.js} +1 -1
- package/dist/assets/{architectureDiagram-W76B3OCA-Dyj4ds_R.js → architectureDiagram-W76B3OCA-BQsvK8uR.js} +1 -1
- package/dist/assets/{between-horizontal-start-Dt2aKpPf.js → between-horizontal-start-BmYToIaM.js} +1 -1
- package/dist/assets/{blockDiagram-QIGZ2CNN-o-i7DDvN.js → blockDiagram-QIGZ2CNN-r3HgCj4w.js} +1 -1
- package/dist/assets/{c4Diagram-FPNF74CW-DGHEwWrx.js → c4Diagram-FPNF74CW-BJbPNt41.js} +1 -1
- package/dist/assets/channel-DFaEx1fu.js +1 -0
- package/dist/assets/{chat-panel-9alr8FS4.js → chat-panel-IoPMv8e2.js} +3 -3
- package/dist/assets/{chunk-4BX2VUAB-BJecb-Ri.js → chunk-4BX2VUAB-Dv4MZ9Hj.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-CAATkc4w.js → chunk-55IACEB6-CM4AHquB.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-DPuNbQ-f.js → chunk-FMBD7UC4-C_Zz0ENB.js} +1 -1
- package/dist/assets/{chunk-K7UQS3LO-C8TWVLiH.js → chunk-K7UQS3LO-DYSmiXYq.js} +1 -1
- package/dist/assets/{chunk-QN33PNHL-DiZZ09q4.js → chunk-QN33PNHL-QM4OPuQP.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-BIUM7usu.js → chunk-QZHKN3VN-CfAsGyeB.js} +1 -1
- package/dist/assets/{chunk-TVAH2DTR-vGTArPBG.js → chunk-TVAH2DTR-6j_Cpjsi.js} +1 -1
- package/dist/assets/{chunk-TZMSLE5B-D2KRqp_x.js → chunk-TZMSLE5B-BHslFJQE.js} +1 -1
- package/dist/assets/{circle-play-cjeNez0N.js → circle-play-CK3UZRYQ.js} +1 -1
- package/dist/assets/classDiagram-KNZD7YFC-BsZtvV5O.js +1 -0
- package/dist/assets/classDiagram-v2-RKCZMP56-BsZtvV5O.js +1 -0
- package/dist/assets/{clear-button-C97JtAez.js → clear-button-C4fDVSv8.js} +1 -1
- package/dist/assets/clone-YBEvPE-s.js +1 -0
- package/dist/assets/command-palette-D7hOfvf6.js +1 -0
- package/dist/assets/{common-Du9rSOwD.js → common-D-lbuUwz.js} +1 -1
- package/dist/assets/{compile-CZXqyOxa.js → compile-DVQe1Mzk.js} +1 -1
- package/dist/assets/{cose-bilkent-S5V4N54A-CqUN5Y9b.js → cose-bilkent-S5V4N54A-D-IS7WC8.js} +1 -1
- package/dist/assets/{dagre-5GWH7T2D-RJqTI9DM.js → dagre-5GWH7T2D-lYu-tEWT.js} +1 -1
- package/dist/assets/{data-grid-overlay-editor-DZN0q1LV.js → data-grid-overlay-editor-C5peOCit.js} +1 -1
- package/dist/assets/datasources-panel-D3NA20uZ.js +1 -0
- package/dist/assets/{dependency-graph-panel-CEog_O7V.js → dependency-graph-panel-BGVYOfkV.js} +1 -1
- package/dist/assets/{diagram-N5W7TBWH-D-l4zZ9d.js → diagram-N5W7TBWH-BnvIuYUp.js} +1 -1
- package/dist/assets/{diagram-QEK2KX5R-CCOmBUt-.js → diagram-QEK2KX5R-DemedRK3.js} +1 -1
- package/dist/assets/{diagram-S2PKOQOG-C_I_9jnZ.js → diagram-S2PKOQOG-iiY7AuyH.js} +1 -1
- package/dist/assets/{documentation-panel-C1BtMZ3M.js → documentation-panel-C3dSwOSQ.js} +1 -1
- package/dist/assets/{edit-page-B-oevUZ9.js → edit-page-C5TsEeSo.js} +17 -17
- package/dist/assets/{ellipsis-vertical-BEb-J8z6.js → ellipsis-vertical-CazJl8M7.js} +1 -1
- package/dist/assets/{empty-state-C99UyDE3.js → empty-state-DW308mFO.js} +1 -1
- package/dist/assets/{erDiagram-AWTI2OKA-BePOLi5M.js → erDiagram-AWTI2OKA-6wQ8Ugg0.js} +1 -1
- package/dist/assets/{error-panel-Bs34jXFh.js → error-panel-D1VnJ1yP.js} +1 -1
- package/dist/assets/{file-explorer-panel-Ck6UL861.js → file-explorer-panel-0oVd4t-D.js} +1 -1
- package/dist/assets/{flowDiagram-PVAE7QVJ-BgjFu5l7.js → flowDiagram-PVAE7QVJ-C55IUWjm.js} +1 -1
- package/dist/assets/{ganttDiagram-OWAHRB6G-YOPb3XSV.js → ganttDiagram-OWAHRB6G-DmqCM6ME.js} +1 -1
- package/dist/assets/{gitGraphDiagram-NY62KEGX-CGhqaDTy.js → gitGraphDiagram-NY62KEGX-DBvhAeM_.js} +1 -1
- package/dist/assets/{glide-data-editor-9QUH6iso.js → glide-data-editor-CHNuHidQ.js} +11 -11
- package/dist/assets/{graph-DQQFGrho.js → graph-CG6BgUWQ.js} +1 -1
- package/dist/assets/{home-page-DRKpPCrF.js → home-page-dgivXuSR.js} +3 -3
- package/dist/assets/{index-SGLNXrGP.js → index-BTGpssVX.js} +1 -1
- package/dist/assets/{index-Aeo6WiK7.js → index-BYVZlBF8.js} +1 -1
- package/dist/assets/{index-CUFv_thQ.js → index-BelfnXwL.js} +1 -1
- package/dist/assets/{index-DdnKZNxM.js → index-BneyUujp.js} +1 -1
- package/dist/assets/{index-BJNCMUmG.js → index-C02SqeRj.js} +1 -1
- package/dist/assets/{index-aE43R74q.js → index-C7dtgr9A.js} +1 -1
- package/dist/assets/{index-C2MD0vgD.js → index-CAQvMTzM.js} +1 -1
- package/dist/assets/index-CGDMlQfO.css +1 -0
- package/dist/assets/index-CelXfcd8.js +580 -0
- package/dist/assets/{index-C_tkBKNO.js → index-Csd6QrCV.js} +1 -1
- package/dist/assets/{index-BAbIIxHU.js → index-CtPksxf0.js} +1 -1
- package/dist/assets/{index-2252nrk6.js → index-Cxyk7pt-.js} +1 -1
- package/dist/assets/{index-BW3k9Gss.js → index-DAZ-9ri2.js} +1 -1
- package/dist/assets/{index-ClzeQrN7.js → index-DONRrmA2.js} +1 -1
- package/dist/assets/{index-B8jXZ12t.js → index-Db36XTG_.js} +1 -1
- package/dist/assets/{index-BprjMYH5.js → index-DdIhdEVw.js} +1 -1
- package/dist/assets/{index-CFKO7WXI.js → index-M_pBKDSe.js} +1 -1
- package/dist/assets/{index-CfaDbEdi.js → index-_luCZMLM.js} +1 -1
- package/dist/assets/{index-BjgnbONl.js → index-mkubqy9-.js} +1 -1
- package/dist/assets/{index-C1ez98sk.js → index-sbO9UaUU.js} +1 -1
- package/dist/assets/{index-G5QZppK2.js → index-z4krxQ4j.js} +1 -1
- package/dist/assets/infoDiagram-STP46IZ2-wTALjfPc.js +2 -0
- package/dist/assets/{isEmpty-D-4c7sMv.js → isEmpty-CqX_YTIf.js} +1 -1
- package/dist/assets/{journeyDiagram-BIP6EPQ6-C94u3Mv3.js → journeyDiagram-BIP6EPQ6-Y5w_Tqe_.js} +1 -1
- package/dist/assets/{kanban-definition-6OIFK2YF-BEXYFzz7.js → kanban-definition-6OIFK2YF-DbXs5Rxi.js} +1 -1
- package/dist/assets/{layout-Bz2BJ2ru.js → layout-BCNPDACj.js} +1 -1
- package/dist/assets/{linear-D8s7K76e.js → linear-uO6UVhXt.js} +1 -1
- package/dist/assets/{links-BpXlz1GG.js → links-Drv7cJgN.js} +3 -3
- package/dist/assets/{logs-panel-DC7wpmPz.js → logs-panel-BEQ1eRUp.js} +1 -1
- package/dist/assets/{markdown-renderer-DRdSWR9X.js → markdown-renderer-Dmzbb00W.js} +3 -3
- package/dist/assets/{mermaid-Y3x4hmD0.js → mermaid-qRc4MXIj.js} +1 -1
- package/dist/assets/{mermaid.core-DzthE35Y.js → mermaid.core-CvvJtCRj.js} +4 -4
- package/dist/assets/min-DYUOb1RR.js +1 -0
- package/dist/assets/{mindmap-definition-Q6HEUPPD-DktvuLe1.js → mindmap-definition-Q6HEUPPD-G5NognM-.js} +1 -1
- package/dist/assets/{number-overlay-editor-BEfwI1IT.js → number-overlay-editor-DPr5sHFu.js} +1 -1
- package/dist/assets/{outline-panel-CdsnAy2w.js → outline-panel-gxQXvVi4.js} +1 -1
- package/dist/assets/{packages-panel-DiTA-d_D.js → packages-panel-B1T0VPlg.js} +1 -1
- package/dist/assets/{pieDiagram-ADFJNKIX-DQDNQ-de.js → pieDiagram-ADFJNKIX-DK9SHkfc.js} +1 -1
- package/dist/assets/{quadrantDiagram-LMRXKWRM-0kgIXc2-.js → quadrantDiagram-LMRXKWRM-D1DdWF8C.js} +1 -1
- package/dist/assets/{react-plotly-DJqqfM7c.js → react-plotly-CTwajqCb.js} +1 -1
- package/dist/assets/{requirementDiagram-4UW4RH46-B5rb0ypd.js → requirementDiagram-4UW4RH46-DnjDAypr.js} +1 -1
- package/dist/assets/{run-page-CFmLrv1R.js → run-page-CQY9im22.js} +1 -1
- package/dist/assets/{sankeyDiagram-GR3RE2ED-Dom7IlnF.js → sankeyDiagram-GR3RE2ED-B67Va-ER.js} +1 -1
- package/dist/assets/{scratchpad-panel-CuHWpHO8.js → scratchpad-panel-DlDfcDtW.js} +1 -1
- package/dist/assets/{secrets-panel-CfHc5YD0.js → secrets-panel-BDGyuGZA.js} +1 -1
- package/dist/assets/{sequenceDiagram-C3RYC4MD-PNJWXQbw.js → sequenceDiagram-C3RYC4MD-DiWgZPtN.js} +1 -1
- package/dist/assets/{slides-component-CJgaTRZ0.js → slides-component-DhpPRtQp.js} +1 -1
- package/dist/assets/{snippets-panel-B2EC1txM.js → snippets-panel-CLkBXhJ2.js} +1 -1
- package/dist/assets/{sortBy-DZnlX29-.js → sortBy-D4OG7w4O.js} +1 -1
- package/dist/assets/{state-CWict9RU.js → state-Dz_3JyED.js} +1 -1
- package/dist/assets/{stateDiagram-KXAO66HF-BE58aJnr.js → stateDiagram-KXAO66HF-ByF2AULw.js} +1 -1
- package/dist/assets/stateDiagram-v2-UMBNRL4Z-CtBJqosP.js +1 -0
- package/dist/assets/{storage-DRaR04wR.js → storage-Dr0CC44z.js} +6 -6
- package/dist/assets/{terminal-BX3Su5q7.js → terminal-BtdissBf.js} +1 -1
- package/dist/assets/{time-hUzZfpNE.js → time-DKdOTnQg.js} +1 -1
- package/dist/assets/{timeline-definition-XQNQX7LJ-CqQP9t51.js → timeline-definition-XQNQX7LJ-DzER9bf6.js} +1 -1
- package/dist/assets/{tracing-B10Q1n-L.js → tracing-Dpx5M-u3.js} +2 -2
- package/dist/assets/{tracing-panel-Du8WCnno.js → tracing-panel-hCjBkSER.js} +2 -2
- package/dist/assets/{trash-B81GTiv6.js → trash-C6Ko-g5q.js} +1 -1
- package/dist/assets/{tree-6vW2ogkh.js → tree-BHN2gcCF.js} +6 -6
- package/dist/assets/{treemap-75Q7IDZK-CdwDwwsz.js → treemap-75Q7IDZK-DR79Mhzt.js} +1 -1
- package/dist/assets/{variable-panel-D5qgJI7k.js → variable-panel-PFBCFz36.js} +1 -1
- package/dist/assets/{vega-component-DJaJWMJM.js → vega-component-Db6-uY4C.js} +1 -1
- package/dist/assets/{xychartDiagram-6GGTOJPD-WFtXqaM9.js → xychartDiagram-6GGTOJPD-DWzBP3tZ.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +3 -3
- package/src/__mocks__/requests.ts +1 -0
- package/src/components/data-table/__tests__/columns.test.tsx +38 -0
- package/src/components/data-table/cell-hover-template/feature.ts +1 -1
- package/src/components/data-table/cell-hover-template/types.ts +1 -1
- package/src/components/data-table/columns.tsx +21 -2
- package/src/components/data-table/renderers.tsx +16 -8
- package/src/components/data-table/schemas.ts +16 -0
- package/src/components/editor/Cell.tsx +2 -0
- package/src/components/editor/errors/sql-validation-errors.tsx +34 -0
- package/src/components/editor/output/ConsoleOutput.tsx +13 -1
- package/src/components/editor/output/MarimoErrorOutput.tsx +60 -1
- package/src/core/ai/context/providers/cell-output.ts +1 -18
- package/src/core/codemirror/language/__tests__/extension.test.ts +24 -0
- package/src/core/codemirror/language/__tests__/sql-validation.test.ts +133 -0
- package/src/core/codemirror/language/languages/sql/sql-mode.ts +20 -0
- package/src/core/codemirror/language/languages/sql/sql.ts +90 -3
- package/src/core/codemirror/language/languages/sql/validation-errors.ts +79 -0
- package/src/core/codemirror/language/panel/panel.tsx +8 -2
- package/src/core/codemirror/language/panel/sql.tsx +81 -4
- package/src/core/config/feature-flag.tsx +3 -1
- package/src/core/datasets/request-registry.ts +17 -1
- package/src/core/islands/bridge.ts +1 -0
- package/src/core/islands/main.ts +1 -0
- package/src/core/kernel/messages.ts +1 -0
- package/src/core/network/requests-network.ts +7 -0
- package/src/core/network/requests-static.ts +1 -0
- package/src/core/network/requests-toasting.ts +1 -0
- package/src/core/network/types.ts +2 -0
- package/src/core/wasm/bridge.ts +5 -0
- package/src/core/websocket/useMarimoWebSocket.tsx +4 -0
- package/src/plugins/core/registerReactComponent.tsx +23 -19
- package/src/plugins/impl/DataTablePlugin.tsx +11 -4
- package/src/plugins/impl/data-frames/DataFramePlugin.tsx +17 -5
- package/src/stories/dataframe.stories.tsx +2 -0
- package/src/utils/__tests__/dom.test.ts +167 -0
- package/src/utils/dom.ts +55 -0
- package/dist/assets/_baseEach-CvTX9w0Y.js +0 -1
- package/dist/assets/_baseMap-CtlwA90f.js +0 -1
- package/dist/assets/channel-Co6iMgWq.js +0 -1
- package/dist/assets/classDiagram-KNZD7YFC-BbJ0rY3y.js +0 -1
- package/dist/assets/classDiagram-v2-RKCZMP56-BbJ0rY3y.js +0 -1
- package/dist/assets/clone-BMP0PsTa.js +0 -1
- package/dist/assets/command-palette-B93Pjcky.js +0 -1
- package/dist/assets/datasources-panel-v7H3cR0p.js +0 -1
- package/dist/assets/index-C7CoaNFb.js +0 -578
- package/dist/assets/index-DadI618h.css +0 -1
- package/dist/assets/infoDiagram-STP46IZ2-CJLOpSAf.js +0 -2
- package/dist/assets/min-BBO3-1Hg.js +0 -1
- 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
|
|
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{
|
|
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};
|
package/dist/assets/{xychartDiagram-6GGTOJPD-WFtXqaM9.js → xychartDiagram-6GGTOJPD-DWzBP3tZ.js}
RENAMED
|
@@ -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-
|
|
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]&<>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-
|
|
63
|
-
<link rel="stylesheet" crossorigin href="./assets/index-
|
|
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.
|
|
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.
|
|
249
|
-
"vite": "^6.3.
|
|
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", () => {
|
|
@@ -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
|
|
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={
|
|
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.
|
|
109
|
+
return template.replaceAll(variableRegex, (_substr, varName: string) => {
|
|
110
110
|
const val = idToValue.get(varName);
|
|
111
|
-
return val
|
|
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
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
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) =>
|
|
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
|
}}
|