@marimo-team/frontend 0.24.3-dev80 → 0.24.3-dev81

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/dist/assets/{ConnectedDataExplorerComponent-S61Cojer.js → ConnectedDataExplorerComponent-DkTZ7AvX.js} +1 -1
  2. package/dist/assets/{ErrorBoundary-rFJTQttC.js → ErrorBoundary-DTpbqvzY.js} +2 -2
  3. package/dist/assets/{LazyAnyLanguageCodeMirror-DJWWnUeJ.js → LazyAnyLanguageCodeMirror-DYsZfkSk.js} +2 -2
  4. package/dist/assets/{RunButton-DfEJQMZn.js → RunButton-IMtEkRXV.js} +2 -2
  5. package/dist/assets/{abnfDiagram-VCTEODGH-Cp9dE6jg.js → abnfDiagram-VCTEODGH-pTFf_XLR.js} +1 -1
  6. package/dist/assets/{add-cell-with-ai-CY4gzrAg.js → add-cell-with-ai-CSNC0MIy.js} +1 -1
  7. package/dist/assets/{agent-panel-C3RY3rVh.js → agent-panel-DxU4qgxk.js} +1 -1
  8. package/dist/assets/{ai-model-dropdown-Bq7LNfwO.js → ai-model-dropdown-Ct4CTWKe.js} +1 -1
  9. package/dist/assets/{any-language-editor-DyDLZyTa.js → any-language-editor-DBp5CC3w.js} +1 -1
  10. package/dist/assets/{app-config-button-BEUe2niv.js → app-config-button-BjxXAmKd.js} +1 -1
  11. package/dist/assets/{architectureDiagram-5GKGNRK7-Bp0xYQON.js → architectureDiagram-5GKGNRK7-C7t0AR-N.js} +1 -1
  12. package/dist/assets/{blockDiagram-I7D4REHJ-CTdYGlif.js → blockDiagram-I7D4REHJ-DZgXohrV.js} +1 -1
  13. package/dist/assets/{cache-panel-BsWmIJNw.js → cache-panel-DDlfv8BP.js} +1 -1
  14. package/dist/assets/{cells-BY2lhea7.js → cells-C0itXtA7.js} +2 -2
  15. package/dist/assets/{chat-display-CHx8XIBv.js → chat-display-CHxh_MGC.js} +1 -1
  16. package/dist/assets/{chat-panel-akoUJ8qX.js → chat-panel-Ca6yjxkg.js} +1 -1
  17. package/dist/assets/{chat-ui-DZoDkcnO.js → chat-ui-D5zW1hYM.js} +1 -1
  18. package/dist/assets/{chunk-IMKFNOWR-BDUxpkzp.js → chunk-IMKFNOWR-CAmhQu-F.js} +1 -1
  19. package/dist/assets/{chunk-SHT3W25Y-BY2fwZu6.js → chunk-SHT3W25Y-BqEFXoRq.js} +1 -1
  20. package/dist/assets/{chunk-SVP7TREG-BMAK1dM1.js → chunk-SVP7TREG-Dxu0eRzD.js} +1 -1
  21. package/dist/assets/{chunk-TICWLB2K-DYvCP0dC.js → chunk-TICWLB2K-gHNMAWa9.js} +1 -1
  22. package/dist/assets/{classDiagram-ZZMXUADV-DInDmLPP.js → classDiagram-ZZMXUADV-DE3i3SzX.js} +1 -1
  23. package/dist/assets/{classDiagram-v2-VYDZK3BY-DInDmLPP.js → classDiagram-v2-VYDZK3BY-DE3i3SzX.js} +1 -1
  24. package/dist/assets/{code-visibility-C7jb6w0_.js → code-visibility-kUtIY_sH.js} +1 -1
  25. package/dist/assets/{command-palette-3rMZly6z.js → command-palette-BZJRR34P.js} +1 -1
  26. package/dist/assets/{common-Bg00voiB.js → common-DtiDLSXB.js} +1 -1
  27. package/dist/assets/{components-DF5RfdrX.js → components-CHh1MGbL.js} +1 -1
  28. package/dist/assets/{components-Djpop-6Y.js → components-DScgyZ8j.js} +1 -1
  29. package/dist/assets/{cynefinDiagram-5FMLGOSQ-DjGWNvBA.js → cynefinDiagram-5FMLGOSQ-C8RK-PLH.js} +1 -1
  30. package/dist/assets/{dagre-BdadXra2.js → dagre-Be6hV3Qt.js} +1 -1
  31. package/dist/assets/{dagre-GXQ25YYZ-4WrRwKjj.js → dagre-GXQ25YYZ-DZ6JGcBM.js} +1 -1
  32. package/dist/assets/{data-grid-overlay-editor-CdyFyGHp.js → data-grid-overlay-editor-BkZfO-uG.js} +1 -1
  33. package/dist/assets/{dependency-graph-panel-HTfghWvl.js → dependency-graph-panel-DhGTFsO9.js} +1 -1
  34. package/dist/assets/{diagram-S7CK7UJ4-BhNxBPOh.js → diagram-S7CK7UJ4-BN77DDKM.js} +1 -1
  35. package/dist/assets/{diagram-UQ7AKVKN-CpXP5J8O.js → diagram-UQ7AKVKN-BZthP0T4.js} +1 -1
  36. package/dist/assets/{diagram-VX7I27RA-8joParfV.js → diagram-VX7I27RA-D3GF3lRq.js} +1 -1
  37. package/dist/assets/{diagram-Z3DM3KII-Dj4QE7kS.js → diagram-Z3DM3KII-DnsKITpy.js} +1 -1
  38. package/dist/assets/{documentation-panel-BATWKMxI.js → documentation-panel-D8fz9UDV.js} +1 -1
  39. package/dist/assets/{ebnfDiagram-PWID7BFC-bg9GAIDY.js → ebnfDiagram-PWID7BFC-CHqqdhbQ.js} +1 -1
  40. package/dist/assets/{edit-page-Bw_9cD6X.js → edit-page-Cw1A5Rhq.js} +4 -4
  41. package/dist/assets/{erDiagram-RLTQ6QDP-B7AAtDAB.js → erDiagram-RLTQ6QDP-ChDyfc3w.js} +1 -1
  42. package/dist/assets/{error-entries-BGsjaQkq.js → error-entries-Dy7E9tUS.js} +1 -1
  43. package/dist/assets/{error-panel-gEXILkC3.js → error-panel-FYd4Tvsc.js} +1 -1
  44. package/dist/assets/{feedback-button-C_vk_D6i.js → feedback-button-Zjt-Mi38.js} +1 -1
  45. package/dist/assets/{file-explorer-panel-IuDHKOoY.js → file-explorer-panel-BpklXFSu.js} +1 -1
  46. package/dist/assets/{file-name-input-BOEaxkNs.js → file-name-input-DifonhZ7.js} +1 -1
  47. package/dist/assets/{flowDiagram-HODETNUW-CMeIUHlj.js → flowDiagram-HODETNUW-CelwDl0Y.js} +1 -1
  48. package/dist/assets/{gallery-page-CK1bqVLD.js → gallery-page-C0T1oyzr.js} +1 -1
  49. package/dist/assets/{glide-data-editor-DdFVvDaa.js → glide-data-editor-Dqd-if6R.js} +4 -4
  50. package/dist/assets/{graphlib-Czf9KyA4.js → graphlib-6_f7N0YM.js} +1 -1
  51. package/dist/assets/has-D5vyh6J_.js +1 -0
  52. package/dist/assets/{home-page-Da9V4OZH.js → home-page-CN05bwXu.js} +1 -1
  53. package/dist/assets/index-CcaMC2ZX.js +62 -0
  54. package/dist/assets/{infoDiagram-27XIBGKW-CIQ-BWOI.js → infoDiagram-27XIBGKW-Dh0ztpYZ.js} +1 -1
  55. package/dist/assets/{ishikawaDiagram-5VMMS53U-Dv_nv5Nd.js → ishikawaDiagram-5VMMS53U-Yy11Lj-8.js} +1 -1
  56. package/dist/assets/{kanban-definition-UXKFOSKX-XKnaVIBU.js → kanban-definition-UXKFOSKX-_hCm9ITM.js} +1 -1
  57. package/dist/assets/{logs-panel-De3Aixdf.js → logs-panel-D_Ki0PRi.js} +1 -1
  58. package/dist/assets/{mermaid-DxmgGQBY.js → mermaid-DUZOkwYg.js} +4 -4
  59. package/dist/assets/{mindmap-definition-YA3MSWOX-CaE8R-61.js → mindmap-definition-YA3MSWOX-CqKVab9Z.js} +1 -1
  60. package/dist/assets/{number-overlay-editor-DzvkzNgP.js → number-overlay-editor-BFwgibS5.js} +1 -1
  61. package/dist/assets/{outline-panel-C95qN5yF.js → outline-panel-BVLrHsJa.js} +1 -1
  62. package/dist/assets/{packages-panel-sY9qWXae.js → packages-panel-cq-qnvM5.js} +1 -1
  63. package/dist/assets/{panels-CCUm-UiE.js → panels-DwxpnIFf.js} +3 -3
  64. package/dist/assets/{pegDiagram-XKGWAZYB-CciXs9oJ.js → pegDiagram-XKGWAZYB-Cq-QrQFc.js} +1 -1
  65. package/dist/assets/{pieDiagram-E7YTZNPT-BbYR1uGC.js → pieDiagram-E7YTZNPT-DXU0ndOt.js} +1 -1
  66. package/dist/assets/{process-output-CGPaOEF_.js → process-output-B76bPsnA.js} +1 -1
  67. package/dist/assets/{railroadDiagram-O6MQD6OU-CcMt9sHo.js → railroadDiagram-O6MQD6OU-CFI_pgSK.js} +1 -1
  68. package/dist/assets/{requirementDiagram-BXWQKSXE-BCxwwt1G.js → requirementDiagram-BXWQKSXE-DgdygEWz.js} +1 -1
  69. package/dist/assets/{reveal-component-CkEkHMf-.js → reveal-component-BqiZOsW3.js} +1 -1
  70. package/dist/assets/{run-page-DuB25jlR.js → run-page-DVqnr-8x.js} +1 -1
  71. package/dist/assets/{scratchpad-panel-Dotdyqj2.js → scratchpad-panel-BT2lF-Gs.js} +1 -1
  72. package/dist/assets/{secrets-panel-1h46YXtq.js → secrets-panel-CeovmJAu.js} +1 -1
  73. package/dist/assets/{sequenceDiagram-WJ2MYXX4-BDiLUY65.js → sequenceDiagram-WJ2MYXX4-Cq7P3SPg.js} +1 -1
  74. package/dist/assets/{session-panel-C5KxX76R.js → session-panel-CGddxX8c.js} +1 -1
  75. package/dist/assets/{snippets-panel-C4akeu4G.js → snippets-panel-UawnfExC.js} +1 -1
  76. package/dist/assets/{stateDiagram-D77RDMKH-CDTKGawS.js → stateDiagram-D77RDMKH-CO8GuJdh.js} +1 -1
  77. package/dist/assets/{stateDiagram-v2-MP3YSRHH-DoZ64xoP.js → stateDiagram-v2-MP3YSRHH-DA7CflqT.js} +1 -1
  78. package/dist/assets/{swimlanes-42K2YHIH-CTH1Amtr.js → swimlanes-42K2YHIH-Bkf4BWja.js} +1 -1
  79. package/dist/assets/{swimlanesDiagram-VR7AAH4N-BeyRxUpX.js → swimlanesDiagram-VR7AAH4N-Bf0FHwi-.js} +1 -1
  80. package/dist/assets/{swiper-component-CUC6e6Nx.js → swiper-component-Dcb47cI1.js} +1 -1
  81. package/dist/assets/{terminal-C0R4btMV.js → terminal-bvd8BLSi.js} +1 -1
  82. package/dist/assets/{timeline-definition-24CTP7MA-BcRe5OGG.js → timeline-definition-24CTP7MA-CWdT681e.js} +1 -1
  83. package/dist/assets/{tracing-DiHWzXpM.js → tracing-BbV840Cl.js} +1 -1
  84. package/dist/assets/{tracing-panel-DNwBoqbU.js → tracing-panel-AQUl8b58.js} +2 -2
  85. package/dist/assets/{useCellActionButton-CSzUH7xJ.js → useCellActionButton-DIiKKxoN.js} +1 -1
  86. package/dist/assets/{vega-component-C3dqV-HG.js → vega-component-C5LY21OO.js} +1 -1
  87. package/dist/assets/{vega-embed-container-NsunuIaD.js → vega-embed-container-C6Hr9CZj.js} +1 -1
  88. package/dist/assets/{vennDiagram-4TSXK5OY-DT15w8Xq.js → vennDiagram-4TSXK5OY-B3uJF3gV.js} +1 -1
  89. package/dist/assets/{wardleyDiagram-VM6X3IG4-BTCnC8gB.js → wardleyDiagram-VM6X3IG4-DGmcLh5J.js} +1 -1
  90. package/dist/assets/{xychartDiagram-S5SC5T6Z-BtV9PLMA.js → xychartDiagram-S5SC5T6Z-kFxqIAk2.js} +1 -1
  91. package/dist/index.html +4 -4
  92. package/package.json +1 -1
  93. package/src/__mocks__/notebook.ts +1 -0
  94. package/src/components/editor/navigation/clipboard.ts +1 -0
  95. package/src/core/cells/__tests__/__snapshots__/cells.test.ts.snap +37 -0
  96. package/src/core/cells/__tests__/apply-transaction.test.ts +34 -0
  97. package/src/core/cells/__tests__/cells.test.ts +1 -0
  98. package/src/core/cells/__tests__/document-changes.test.ts +39 -1
  99. package/src/core/cells/__tests__/outputs.test.tsx +117 -0
  100. package/src/core/cells/__tests__/session.test.ts +7 -0
  101. package/src/core/cells/cells.ts +6 -1
  102. package/src/core/cells/document-changes.ts +11 -1
  103. package/src/core/cells/outputs.ts +66 -9
  104. package/src/core/cells/session.ts +2 -0
  105. package/src/core/cells/types.ts +2 -0
  106. package/dist/assets/has-Bpddg3XQ.js +0 -1
  107. package/dist/assets/index-BtFkx6qT.js +0 -62
@@ -1,4 +1,4 @@
1
- import{t as e}from"./dagre-BdadXra2.js";import{t}from"./graphlib-Czf9KyA4.js";import"./chunk-75Z2AOVW-DA_lihEi.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{t as r}from"./src-Cyu5G-Tr.js";import{x as i}from"./chunk-DU6HZSFF-J-califE.js";import"./chunk-P2QGCYS3-DsJshZeL.js";import"./chunk-PWAF6VOD-CrFPAGFi.js";import"./chunk-GMAD6QVW-mXoq4V-T.js";import{s as a}from"./chunk-4HAMMTFA-F3WVmmmo.js";import{a as o,i as s,n as c}from"./chunk-GVQU2GXP-B-87l3Xt.js";import{n as l}from"./chunk-L3NEJ4N5-DLeZO9l0.js";import{a as u,c as d,i as f}from"./chunk-OSK3NFVY-PWoOtECb.js";import{c as p,d as m,f as h,l as g,o as _,s as v,u as y}from"./mermaid-DxmgGQBY.js";var b=n((e,t,n)=>Math.max(t,Math.min(n,e)),`clamp`),x=n((e=`TB`)=>{switch(e){case`BT`:return`bottom`;case`LR`:return`right`;case`RL`:return`left`;default:return`top`}},`getDefaultSelfLoopSide`),S=n(e=>e===`flowchart`||e===`flowchart-v2`||e===`stateDiagram`||e===`er`||e===`classDiagram`,`shouldMergeSelfLoopSegments`),C=[`x`,`y`,`width`,`height`,`labelBBox`,`intersect`,`calcIntersect`,`diff`,`clusterNode`],w=n((e,t,n,r,i)=>{let a=[],o=new Set;if(n.forEach(({start:e,end:t})=>{e!==r&&o.add(e),t!==r&&o.add(t)}),o.forEach(t=>{let n=e.node(t);typeof n?.x==`number`&&typeof n?.y==`number`&&a.push(n)}),a.length===0&&n.forEach(({edge:e})=>{(e.points??[]).forEach(e=>{typeof e?.x==`number`&&typeof e?.y==`number`&&a.push(e)})}),a.length===0)return x(i);let s=a.reduce((e,t)=>({x:e.x+t.x/a.length,y:e.y+t.y/a.length}),{x:0,y:0}),c=s.x-t.x,l=s.y-t.y;return Math.abs(c)>Math.abs(l)?c>0?`right`:`left`:Math.abs(l)>0?l>0?`bottom`:`top`:x(i)},`getSelfLoopSide`),T=n((e,t=`top`,n=0,r=0)=>{let i=e.x,a=e.y-n,o=e.width/2,s=e.height/2,c=Math.max(36,Math.min(100,e.width*.8)),l=b(Math.max(r,e.width*.35),36,c),u=b(Math.min(e.width,e.height)*.45,24,48);switch(t){case`bottom`:{let e=a+s;return[{x:i-l/2,y:e},{x:i-l/2,y:e+u},{x:i+l/2,y:e+u},{x:i+l/2,y:e}]}case`right`:{let e=i+o;return[{x:e,y:a-l/2},{x:e+u,y:a-l/2},{x:e+u,y:a+l/2},{x:e,y:a+l/2}]}case`left`:{let e=i-o;return[{x:e,y:a-l/2},{x:e-u,y:a-l/2},{x:e-u,y:a+l/2},{x:e,y:a+l/2}]}default:{let e=a-s;return[{x:i-l/2,y:e},{x:i-l/2,y:e-u},{x:i+l/2,y:e-u},{x:i+l/2,y:e}]}}},`getSelfLoopPoints`),E=n((e,t,n=`top`,r=0,i={})=>{let a=e.x,o=e.y-r,s=i.width??0,c=i.height??0;switch(n){case`bottom`:return{x:a,y:Math.max(...t.map(e=>e.y))+c/2+4};case`right`:return{x:Math.max(...t.map(e=>e.x))+s/2+4,y:o};case`left`:return{x:Math.min(...t.map(e=>e.x))-s/2-4,y:o};default:return{x:a,y:Math.min(...t.map(e=>e.y))-c/2-4}}},`getSelfLoopLabelPosition`),D=n((e,t=0,{mergeSelfLoops:n=!0}={})=>{let r=new Map,i=[],a=e.graph()?.rankdir;return e.edges().forEach(t=>{let a=e.edge(t);if(n&&a.selfLoop){let e=a.selfLoop.id;r.has(e)||r.set(e,[]),r.get(e).push({edge:a,start:t.v,end:t.w})}else i.push({edge:a,start:t.v,end:t.w})}),r.forEach(n=>{if(n.length!==3){n.forEach(e=>i.push(e));return}n.sort((e,t)=>e.edge.selfLoop.order-t.edge.selfLoop.order);let[r,o,s]=n,c=r.edge.originalEdge??o.edge.originalEdge??s.edge.originalEdge??o.edge,l=e.node(c.start);if(!l){n.forEach(e=>i.push(e));return}let u={width:o.edge.width,height:o.edge.height},d=w(e,l,n,c.start,a),f=T(l,d,t,u.width??0),p=E(l,f,d,t,u),m={...o.edge,...c,id:c.id,points:f,start:c.start,end:c.end,x:p.x,y:p.y,width:u.width,height:u.height,labelStyle:o.edge.labelStyle,fromCluster:r.edge.fromCluster??o.edge.fromCluster??s.edge.fromCluster,toCluster:r.edge.toCluster??o.edge.toCluster??s.edge.toCluster};delete m.selfLoop,delete m.originalEdge,i.push({edge:m,start:m.start,end:m.end})}),i},`getEdgesToRender`),O=n(async({element:e,graph:t,diagramType:i,id:s,parentCluster:l,siteConfig:d})=>{let f=t.graph().rankdir;r.trace(`Dir in recursive render - dir:`,f);let{clusters:p,edgePaths:h,edgeLabels:_,nodes:b,rootGroups:x}=g(e,{edgePathsClass:`edgePaths`});t.nodes()?r.info(`Recursive render XXX`,t.nodes()):r.info(`No nodes found for`,t),t.edges().length>0&&r.info(`Recursive edges`,t.edge(t.edges()[0]));let C=S(i);await Promise.all(t.nodes().map(async function(e){let n=t.node(e);if(l!==void 0){let n=JSON.parse(JSON.stringify(l.clusterData));r.trace(`Setting data for parent cluster XXX
1
+ import{t as e}from"./dagre-Be6hV3Qt.js";import{t}from"./graphlib-6_f7N0YM.js";import"./chunk-75Z2AOVW-DA_lihEi.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{t as r}from"./src-Cyu5G-Tr.js";import{x as i}from"./chunk-DU6HZSFF-J-califE.js";import"./chunk-P2QGCYS3-DsJshZeL.js";import"./chunk-PWAF6VOD-CrFPAGFi.js";import"./chunk-GMAD6QVW-mXoq4V-T.js";import{s as a}from"./chunk-4HAMMTFA-F3WVmmmo.js";import{a as o,i as s,n as c}from"./chunk-GVQU2GXP-B-87l3Xt.js";import{n as l}from"./chunk-L3NEJ4N5-DLeZO9l0.js";import{a as u,c as d,i as f}from"./chunk-OSK3NFVY-PWoOtECb.js";import{c as p,d as m,f as h,l as g,o as _,s as v,u as y}from"./mermaid-DUZOkwYg.js";var b=n((e,t,n)=>Math.max(t,Math.min(n,e)),`clamp`),x=n((e=`TB`)=>{switch(e){case`BT`:return`bottom`;case`LR`:return`right`;case`RL`:return`left`;default:return`top`}},`getDefaultSelfLoopSide`),S=n(e=>e===`flowchart`||e===`flowchart-v2`||e===`stateDiagram`||e===`er`||e===`classDiagram`,`shouldMergeSelfLoopSegments`),C=[`x`,`y`,`width`,`height`,`labelBBox`,`intersect`,`calcIntersect`,`diff`,`clusterNode`],w=n((e,t,n,r,i)=>{let a=[],o=new Set;if(n.forEach(({start:e,end:t})=>{e!==r&&o.add(e),t!==r&&o.add(t)}),o.forEach(t=>{let n=e.node(t);typeof n?.x==`number`&&typeof n?.y==`number`&&a.push(n)}),a.length===0&&n.forEach(({edge:e})=>{(e.points??[]).forEach(e=>{typeof e?.x==`number`&&typeof e?.y==`number`&&a.push(e)})}),a.length===0)return x(i);let s=a.reduce((e,t)=>({x:e.x+t.x/a.length,y:e.y+t.y/a.length}),{x:0,y:0}),c=s.x-t.x,l=s.y-t.y;return Math.abs(c)>Math.abs(l)?c>0?`right`:`left`:Math.abs(l)>0?l>0?`bottom`:`top`:x(i)},`getSelfLoopSide`),T=n((e,t=`top`,n=0,r=0)=>{let i=e.x,a=e.y-n,o=e.width/2,s=e.height/2,c=Math.max(36,Math.min(100,e.width*.8)),l=b(Math.max(r,e.width*.35),36,c),u=b(Math.min(e.width,e.height)*.45,24,48);switch(t){case`bottom`:{let e=a+s;return[{x:i-l/2,y:e},{x:i-l/2,y:e+u},{x:i+l/2,y:e+u},{x:i+l/2,y:e}]}case`right`:{let e=i+o;return[{x:e,y:a-l/2},{x:e+u,y:a-l/2},{x:e+u,y:a+l/2},{x:e,y:a+l/2}]}case`left`:{let e=i-o;return[{x:e,y:a-l/2},{x:e-u,y:a-l/2},{x:e-u,y:a+l/2},{x:e,y:a+l/2}]}default:{let e=a-s;return[{x:i-l/2,y:e},{x:i-l/2,y:e-u},{x:i+l/2,y:e-u},{x:i+l/2,y:e}]}}},`getSelfLoopPoints`),E=n((e,t,n=`top`,r=0,i={})=>{let a=e.x,o=e.y-r,s=i.width??0,c=i.height??0;switch(n){case`bottom`:return{x:a,y:Math.max(...t.map(e=>e.y))+c/2+4};case`right`:return{x:Math.max(...t.map(e=>e.x))+s/2+4,y:o};case`left`:return{x:Math.min(...t.map(e=>e.x))-s/2-4,y:o};default:return{x:a,y:Math.min(...t.map(e=>e.y))-c/2-4}}},`getSelfLoopLabelPosition`),D=n((e,t=0,{mergeSelfLoops:n=!0}={})=>{let r=new Map,i=[],a=e.graph()?.rankdir;return e.edges().forEach(t=>{let a=e.edge(t);if(n&&a.selfLoop){let e=a.selfLoop.id;r.has(e)||r.set(e,[]),r.get(e).push({edge:a,start:t.v,end:t.w})}else i.push({edge:a,start:t.v,end:t.w})}),r.forEach(n=>{if(n.length!==3){n.forEach(e=>i.push(e));return}n.sort((e,t)=>e.edge.selfLoop.order-t.edge.selfLoop.order);let[r,o,s]=n,c=r.edge.originalEdge??o.edge.originalEdge??s.edge.originalEdge??o.edge,l=e.node(c.start);if(!l){n.forEach(e=>i.push(e));return}let u={width:o.edge.width,height:o.edge.height},d=w(e,l,n,c.start,a),f=T(l,d,t,u.width??0),p=E(l,f,d,t,u),m={...o.edge,...c,id:c.id,points:f,start:c.start,end:c.end,x:p.x,y:p.y,width:u.width,height:u.height,labelStyle:o.edge.labelStyle,fromCluster:r.edge.fromCluster??o.edge.fromCluster??s.edge.fromCluster,toCluster:r.edge.toCluster??o.edge.toCluster??s.edge.toCluster};delete m.selfLoop,delete m.originalEdge,i.push({edge:m,start:m.start,end:m.end})}),i},`getEdgesToRender`),O=n(async({element:e,graph:t,diagramType:i,id:s,parentCluster:l,siteConfig:d})=>{let f=t.graph().rankdir;r.trace(`Dir in recursive render - dir:`,f);let{clusters:p,edgePaths:h,edgeLabels:_,nodes:b,rootGroups:x}=g(e,{edgePathsClass:`edgePaths`});t.nodes()?r.info(`Recursive render XXX`,t.nodes()):r.info(`No nodes found for`,t),t.edges().length>0&&r.info(`Recursive edges`,t.edge(t.edges()[0]));let C=S(i);await Promise.all(t.nodes().map(async function(e){let n=t.node(e);if(l!==void 0){let n=JSON.parse(JSON.stringify(l.clusterData));r.trace(`Setting data for parent cluster XXX
2
2
  Node.id = `,e,`
3
3
  data=`,n.height,`
4
4
  Parent cluster`,l.height),t.setNode(l.id,n),t.parent(e)||(r.trace(`Setting parent`,e,l.id),t.setParent(e,l.id,n))}if(r.info(`(Insert) Node XXX`+e+`: `+JSON.stringify(t.node(e))),n?.clusterNode){r.info(`Cluster identified XBX`,e,n.width,t.node(e));let{ranksep:c,nodesep:l}=t.graph();n.graph.setGraph({...n.graph.graph(),ranksep:c+25,nodesep:l});let u=await F({element:b,graph:n.graph,diagramType:i,id:s,parentCluster:t.node(e),siteConfig:d}),f=u.elem;a(n,f),n.diff=u.diff||0,r.info(`New compound node after recursive render XAX`,e,`width`,n.width,`height`,n.height),o(f,n)}else t.children(e).length>0?(r.trace(`Cluster - the non recursive path XBX`,e,n.id,n,n.width,`Graph:`,t),r.trace(y(n.id,t)),v.set(n.id,{id:y(n.id,t),node:n})):(r.trace(`Node - the non recursive path XAX`,e,b,t.node(e),f),await m(b,t.node(e),{config:d,dir:f}))})),await n(async()=>{let e=t.edges().map(async function(e){let n=t.edge(e.v,e.w,e.name);if(r.info(`Edge `+e.v+` -> `+e.w+`: `+JSON.stringify(e)),r.info(`Edge `+e.v+` -> `+e.w+`: `,e,` `,JSON.stringify(t.edge(e))),r.info(`Fix`,v,`ids:`,e.v,e.w,`Translating: `,v.get(e.v),v.get(e.w)),C&&n.selfLoop){if(n.selfLoop.order!==1)return;let e={...n.originalEdge,...n,id:n.selfLoop.id,startLabelLeft:n.originalEdge?.startLabelLeft??n.startLabelLeft,startLabelRight:n.originalEdge?.startLabelRight??n.startLabelRight,endLabelLeft:n.originalEdge?.endLabelLeft??n.endLabelLeft,endLabelRight:n.originalEdge?.endLabelRight??n.endLabelRight};await u(_,e),n.width=e.width,n.height=e.height,n.labelStyle=e.labelStyle;return}await u(_,n)});await Promise.all(e)},`processEdges`)();let{subGraphTitleTotalMargin:w}=c(d);return{elem:x,graph:t,groups:{clusters:p,edgePaths:h,edgeLabels:_,nodes:b,rootGroups:x},diagramType:i,id:s,mergeSelfLoops:C,subGraphTitleTotalMargin:w}},`measureDagreGraph`),k=n(t=>{r.info(`############################################# XXX`),r.info(`### Layout ### XXX`),r.info(`############################################# XXX`),e(t)},`runDagreGraphLayout`),A=n((e,t,n)=>{let r=e.node(t);if(!r)return;let i={...r};return r?.clusterNode?i.y=(r.y??0)+n:e.children(t).length>0?i.height=(r.height??0)+n:i.y=(r.y??0)+n/2,i},`normalizeDagreNode`),j=n((e,t)=>{C.forEach(n=>{t[n]!==void 0&&(e[n]=t[n])})},`applyDagreNodeLayout`),M=n((e,t,n,r)=>({...e,start:e.start??t,end:e.end??n,points:(e.points??[]).map(e=>({...e,y:typeof e.y==`number`?e.y+r:e.y}))}),`normalizeDagreEdge`),N=n((e,t)=>{let{graph:n,mergeSelfLoops:r,subGraphTitleTotalMargin:i=0}=t,a=new Map(e.nodes.map(e=>[e.id,e]));h(n).forEach(e=>{let t=A(n,e,i);if(!t)return;j(n.node(e),t);let r=a.get(e);r&&j(r,t)});let o=i/2;return e.edges=D(n,o,{mergeSelfLoops:r}).map(({edge:e,start:t,end:n})=>M(e,t,n,o)),e},`applyDagreLayoutResult`),P=n(async({elem:e,graph:t,groups:{clusters:n,edgePaths:i},diagramType:a,id:o,mergeSelfLoops:c,subGraphTitleTotalMargin:u})=>{let p=0;await Promise.all(h(t).map(async function(e){let i=t.node(e);if(r.info(`Position XBX => `+e+`: (`+i.x,`,`+i.y,`) width: `,i.width,` height: `,i.height),i?.clusterNode)i.y+=u,r.info(`A tainted cluster node XBX1`,e,i.id,i.width,i.height,i.x,i.y,t.parent(e)),v.get(i.id).node=i,s(i);else if(t.children(e).length>0){r.info(`A pure cluster node XBX1`,e,i.id,i.x,i.y,i.width,i.height,t.parent(e)),i.height+=u,t.node(i.parentId);let a=i?.padding/2||0,o=i?.labelBBox?.height||0,s=o-a||0;r.debug(`OffsetY`,s,`labelHeight`,o,`halfPadding`,a),await l(n,i),v.get(i.id).node=i}else{let e=t.node(i.parentId);i.y+=u/2,r.info(`A regular node XBX1 - using the padding`,i.id,`parent`,i.parentId,i.width,i.height,i.x,i.y,`offsetY`,i.offsetY,`parent`,e,e?.offsetY,i),s(i)}}));let m=u/2;return D(t,m,{mergeSelfLoops:c}).forEach(function({edge:e,start:n,end:s}){r.info(`Edge `+n+` -> `+s+`: `+JSON.stringify(e),e),e.points.forEach(e=>e.y+=m);let c=t.node(n),l=t.node(s),u=f(i,e,v,a,c,l,o);d(e,u)}),t.nodes().forEach(function(e){let n=t.node(e);r.info(e,n.type,n.diff),n.isGroup&&(p=n.diff)}),r.warn(`Returning from recursive render XAX`,e,p),{elem:e,diff:p}},`paintDagreLayoutCore`),F=n(async e=>{let t=await O(e);return k(t.graph),await P(t)},`renderDagreSubgraph`),I=n(e=>{let n=new t({multigraph:!0,compound:!0}).setGraph({rankdir:e.direction,nodesep:e.config?.nodeSpacing||e.nodeSpacing||e.config?.flowchart?.nodeSpacing,ranksep:e.config?.rankSpacing||e.rankSpacing||e.config?.flowchart?.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});return e.nodes.forEach(e=>{n.setNode(e.id,{...e}),e.parentId&&n.setParent(e.id,e.parentId)}),r.debug(`Edges:`,e.edges),e.edges.forEach(e=>{if(e.start===e.end){let t=e.start,r=t+`---`+t+`---1`,i=t+`---`+t+`---2`,a=n.node(t);n.setNode(r,{domId:r,id:r,parentId:a.parentId,labelStyle:``,label:``,padding:0,shape:`labelRect`,style:``,width:10,height:10}),n.setParent(r,a.parentId),n.setNode(i,{domId:i,id:i,parentId:a.parentId,labelStyle:``,padding:0,shape:`labelRect`,label:``,style:``,width:10,height:10}),n.setParent(i,a.parentId);let o=structuredClone(e),s=structuredClone(e),c=structuredClone(e),l=structuredClone(e);s.originalEdge=o,s.selfLoop={id:o.id,order:0},c.originalEdge=o,c.selfLoop={id:o.id,order:1},l.originalEdge=o,l.selfLoop={id:o.id,order:2},s.label=``,s.arrowTypeEnd=`none`,s.endLabelLeft=``,s.endLabelRight=``,s.startLabelLeft=``,s.id=t+`-cyclic-special-1`,c.startLabelRight=``,c.startLabelLeft=``,c.endLabelLeft=``,c.endLabelRight=``,c.arrowTypeStart=`none`,c.arrowTypeEnd=`none`,c.id=t+`-cyclic-special-mid`,l.label=``,l.startLabelRight=``,l.startLabelLeft=``,l.arrowTypeStart=`none`,a.isGroup&&(s.fromCluster=t,l.toCluster=t),l.id=t+`-cyclic-special-2`,l.arrowTypeStart=`none`,n.setEdge(t,r,s,t+`-cyclic-special-0`),n.setEdge(r,i,c,t+`-cyclic-special-1`),n.setEdge(i,t,l,t+`-cyclic-special-2`)}else n.setEdge(e.start,e.end,{...e},e.id)}),_(n),{graph:n}},`prepareLayoutForDagre`),L=n(async(e,{element:t,preparedLayout:n})=>{let r=n??I(e),a=i(),o=await O({element:t,graph:r.graph,diagramType:e.type,id:e.diagramId,parentCluster:void 0,siteConfig:a});return r.measuredLayout=o,o},`measureDagreLayout`),R=n((e,t)=>{let n=t.preparedLayout?.measuredLayout;if(!n)throw Error(`runDagreLayoutCore requires measureDagreLayout to run first`);return k(n.graph),N(e,n),n},`runDagreLayoutCore`),z=p({prepareLayout:I,measureLayout:L,runLayoutCore:R,paintOptions:{clusterDb:v,getNodes:n((e,{measure:t})=>h(t.graph).map(e=>t.graph.node(e)).filter(Boolean),`getDagrePaintNodes`),getEdgeNode:n((e,t,{measure:n})=>e?n.graph.node(e):void 0,`getDagreEdgeNode`),skipNode:n((e,{measure:t})=>!t.graph.hasNode(e.id),`skipNode`),isCluster:n((e,{measure:t})=>t.graph.hasNode(e.id)&&(t.graph.children(e.id)??[]).length>0,`isCluster`)}});export{N as applyDagreLayoutResult,D as getEdgesToRender,L as measureDagreLayout,I as prepareLayoutForDagre,z as render,R as runDagreLayoutCore};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-CUdNIagt.js";import{t as n}from"./react-dom-CKsE8sC1.js";import{G as r,U as i,W as a}from"./index-BtFkx6qT.js";import{a as o,i as s,n as c,r as l}from"./glide-data-editor-DdFVvDaa.js";var u=e(t(),1),d=e(n(),1),ee=o(`div`)({name:`DataGridOverlayEditorStyle`,class:`gdg-d19meir1`,propsAsIs:!1,vars:{"d19meir1-0":[e=>e.targetY,`px`],"d19meir1-1":[e=>e.targetX,`px`],"d19meir1-2":[e=>e.targetWidth,`px`],"d19meir1-3":[e=>e.targetHeight,`px`],"d19meir1-4":[e=>e.targetY+10,`px`],"d19meir1-5":[e=>Math.max(0,(e.targetHeight-28)/2),`px`]}});function f(){let[e,t]=u.useState();return[e??void 0,t]}function p(){let[e,t]=f(),[n,r]=u.useState(0),[i,a]=u.useState(!0);return u.useLayoutEffect(()=>{if(e===void 0||!(`IntersectionObserver`in window))return;let t=new IntersectionObserver(e=>{e.length!==0&&a(e[0].isIntersecting)},{threshold:1});return t.observe(e),()=>t.disconnect()},[e]),u.useEffect(()=>{if(i||e===void 0)return;let t,n=()=>{let{right:i}=e.getBoundingClientRect();r(e=>Math.min(e+window.innerWidth-i-10,0)),t=requestAnimationFrame(n)};return t=requestAnimationFrame(n),()=>{t!==void 0&&cancelAnimationFrame(t)}},[e,i]),{ref:t,style:u.useMemo(()=>({transform:`translateX(${n}px)`}),[n])}}var m=e=>{let{target:t,content:n,onFinishEditing:o,forceEditMode:f,initialValue:m,imageEditorOverride:h,markdownDivCreateNode:g,highlight:_,className:v,theme:y,id:b,cell:x,bloom:S,portalElementRef:C,validateCell:w,getCellRenderer:T,provideEditor:E,isOutsideClick:te,customEventTarget:D,activation:O}=e,[k,A]=u.useState(f?n:void 0),j=u.useRef(k??n);j.current=k??n;let[M,N]=u.useState(()=>w===void 0||!(i(n)&&w?.(x,n,j.current)===!1)),P=u.useCallback((e,t)=>{o(M?e:void 0,t)},[M,o]),F=u.useCallback(e=>{if(w!==void 0&&e!==void 0&&i(e)){let t=w(x,e,j.current);t===!1?N(!1):(typeof t==`object`&&(e=t),N(!0))}A(e)},[x,w]),I=u.useRef(!1),L=u.useRef(void 0),R=u.useCallback(()=>{P(k,[0,0]),I.current=!0},[k,P]),z=u.useCallback((e,t)=>{P(e,t??L.current??[0,0]),I.current=!0},[P]),B=u.useCallback(async e=>{let t=!1;e.key===`Escape`?(e.stopPropagation(),e.preventDefault(),L.current=[0,0]):e.key===`Enter`&&!e.shiftKey?(e.stopPropagation(),e.preventDefault(),L.current=[0,1],t=!0):e.key===`Tab`&&(e.stopPropagation(),e.preventDefault(),L.current=[e.shiftKey?-1:1,0],t=!0),window.setTimeout(()=>{!I.current&&L.current!==void 0&&(P(t?k:void 0,L.current),I.current=!0)},0)},[P,k]),V=k??n,[H,U]=u.useMemo(()=>{if(a(n))return[];let e={...n,location:x,activation:O},t=E?.(e);return t===void 0?[T(n)?.provideEditor?.(e),!1]:[t,!1]},[x,n,T,E,O]),{ref:W,style:G}=p(),K=!0,q,J=!0,Y;if(H!==void 0){K=H.disablePadding!==!0,J=H.disableStyling!==!0;let e=r(H);e&&(Y=H.styleOverride);let n=e?H.editor:H;q=u.createElement(n,{portalElementRef:C,isHighlighted:_,activation:O,onChange:F,value:V,initialValue:m,onFinishedEditing:z,validatedSelection:i(V)?V.selectionRange:void 0,forceEditMode:f,target:t,imageEditorOverride:h,markdownDivCreateNode:g,isValid:M,theme:y})}Y={...Y,...G};let X=C?.current??document.getElementById(`portal`);if(X===null)return console.error('Cannot open Data Grid overlay editor, because portal not found. Please, either provide a portalElementRef or add `<div id="portal" />` as the last child of your `<body>`.'),null;let Z=J?`gdg-style`:`gdg-unstyle`;M||(Z+=` gdg-invalid`),K&&(Z+=` gdg-pad`);let Q=S?.[0]??1,$=S?.[1]??1;return(0,d.createPortal)(u.createElement(l.Provider,{value:y},u.createElement(c,{style:s(y),className:v,onClickOutside:R,isOutsideClick:te,customEventTarget:D},u.createElement(ee,{ref:W,id:b,className:Z,style:Y,as:U===!0?`label`:void 0,targetX:t.x-Q,targetY:t.y-$,targetWidth:t.width+Q*2,targetHeight:t.height+$*2},u.createElement(`div`,{className:`gdg-clip-region`,onKeyDown:B},q)))),X)};export{m as default};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-CUdNIagt.js";import{t as n}from"./react-dom-CKsE8sC1.js";import{G as r,U as i,W as a}from"./index-CcaMC2ZX.js";import{a as o,i as s,n as c,r as l}from"./glide-data-editor-Dqd-if6R.js";var u=e(t(),1),d=e(n(),1),ee=o(`div`)({name:`DataGridOverlayEditorStyle`,class:`gdg-d19meir1`,propsAsIs:!1,vars:{"d19meir1-0":[e=>e.targetY,`px`],"d19meir1-1":[e=>e.targetX,`px`],"d19meir1-2":[e=>e.targetWidth,`px`],"d19meir1-3":[e=>e.targetHeight,`px`],"d19meir1-4":[e=>e.targetY+10,`px`],"d19meir1-5":[e=>Math.max(0,(e.targetHeight-28)/2),`px`]}});function f(){let[e,t]=u.useState();return[e??void 0,t]}function p(){let[e,t]=f(),[n,r]=u.useState(0),[i,a]=u.useState(!0);return u.useLayoutEffect(()=>{if(e===void 0||!(`IntersectionObserver`in window))return;let t=new IntersectionObserver(e=>{e.length!==0&&a(e[0].isIntersecting)},{threshold:1});return t.observe(e),()=>t.disconnect()},[e]),u.useEffect(()=>{if(i||e===void 0)return;let t,n=()=>{let{right:i}=e.getBoundingClientRect();r(e=>Math.min(e+window.innerWidth-i-10,0)),t=requestAnimationFrame(n)};return t=requestAnimationFrame(n),()=>{t!==void 0&&cancelAnimationFrame(t)}},[e,i]),{ref:t,style:u.useMemo(()=>({transform:`translateX(${n}px)`}),[n])}}var m=e=>{let{target:t,content:n,onFinishEditing:o,forceEditMode:f,initialValue:m,imageEditorOverride:h,markdownDivCreateNode:g,highlight:_,className:v,theme:y,id:b,cell:x,bloom:S,portalElementRef:C,validateCell:w,getCellRenderer:T,provideEditor:E,isOutsideClick:te,customEventTarget:D,activation:O}=e,[k,A]=u.useState(f?n:void 0),j=u.useRef(k??n);j.current=k??n;let[M,N]=u.useState(()=>w===void 0||!(i(n)&&w?.(x,n,j.current)===!1)),P=u.useCallback((e,t)=>{o(M?e:void 0,t)},[M,o]),F=u.useCallback(e=>{if(w!==void 0&&e!==void 0&&i(e)){let t=w(x,e,j.current);t===!1?N(!1):(typeof t==`object`&&(e=t),N(!0))}A(e)},[x,w]),I=u.useRef(!1),L=u.useRef(void 0),R=u.useCallback(()=>{P(k,[0,0]),I.current=!0},[k,P]),z=u.useCallback((e,t)=>{P(e,t??L.current??[0,0]),I.current=!0},[P]),B=u.useCallback(async e=>{let t=!1;e.key===`Escape`?(e.stopPropagation(),e.preventDefault(),L.current=[0,0]):e.key===`Enter`&&!e.shiftKey?(e.stopPropagation(),e.preventDefault(),L.current=[0,1],t=!0):e.key===`Tab`&&(e.stopPropagation(),e.preventDefault(),L.current=[e.shiftKey?-1:1,0],t=!0),window.setTimeout(()=>{!I.current&&L.current!==void 0&&(P(t?k:void 0,L.current),I.current=!0)},0)},[P,k]),V=k??n,[H,U]=u.useMemo(()=>{if(a(n))return[];let e={...n,location:x,activation:O},t=E?.(e);return t===void 0?[T(n)?.provideEditor?.(e),!1]:[t,!1]},[x,n,T,E,O]),{ref:W,style:G}=p(),K=!0,q,J=!0,Y;if(H!==void 0){K=H.disablePadding!==!0,J=H.disableStyling!==!0;let e=r(H);e&&(Y=H.styleOverride);let n=e?H.editor:H;q=u.createElement(n,{portalElementRef:C,isHighlighted:_,activation:O,onChange:F,value:V,initialValue:m,onFinishedEditing:z,validatedSelection:i(V)?V.selectionRange:void 0,forceEditMode:f,target:t,imageEditorOverride:h,markdownDivCreateNode:g,isValid:M,theme:y})}Y={...Y,...G};let X=C?.current??document.getElementById(`portal`);if(X===null)return console.error('Cannot open Data Grid overlay editor, because portal not found. Please, either provide a portalElementRef or add `<div id="portal" />` as the last child of your `<body>`.'),null;let Z=J?`gdg-style`:`gdg-unstyle`;M||(Z+=` gdg-invalid`),K&&(Z+=` gdg-pad`);let Q=S?.[0]??1,$=S?.[1]??1;return(0,d.createPortal)(u.createElement(l.Provider,{value:y},u.createElement(c,{style:s(y),className:v,onClickOutside:R,isOutsideClick:te,customEventTarget:D},u.createElement(ee,{ref:W,id:b,className:Z,style:Y,as:U===!0?`label`:void 0,targetX:t.x-Q,targetY:t.y-$,targetWidth:t.width+Q*2,targetHeight:t.height+$*2},u.createElement(`div`,{className:`gdg-clip-region`,onKeyDown:B},q)))),X)};export{m as default};