@marimo-team/frontend 0.15.1-dev33 → 0.15.1-dev34
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-B0S6KZz0.js → ConnectedDataExplorerComponent-BcJwEN2q.js} +1 -1
- package/dist/assets/{ImageComparisonComponent-C-VZ4Tnc.js → ImageComparisonComponent-CnwGwcTi.js} +1 -1
- package/dist/assets/{VegaLite-BnVARnZA.js → VegaLite-Cnk7Ozer.js} +1 -1
- package/dist/assets/{_baseEach-CnkgAoU6.js → _baseEach-DJPM6ZzY.js} +1 -1
- package/dist/assets/_baseMap-u5TY8JMW.js +1 -0
- package/dist/assets/{_baseUniq-CwJ2iszo.js → _baseUniq-CrXjB6JP.js} +1 -1
- package/dist/assets/{_createAggregator-DzNuEiXE.js → _createAggregator-Cd0noqMc.js} +1 -1
- package/dist/assets/{any-language-editor-CkEw-cSX.js → any-language-editor-ZfVYrHPH.js} +1 -1
- package/dist/assets/{architectureDiagram-KFL7JDKH-D5bxGLSO.js → architectureDiagram-KFL7JDKH-DuJCaD_M.js} +1 -1
- package/dist/assets/{blockDiagram-ZYB65J3Q-lBSpJVzg.js → blockDiagram-ZYB65J3Q-B0f3bVJ0.js} +1 -1
- package/dist/assets/{c4Diagram-AAMF2YG6-Cp2ZcvGq.js → c4Diagram-AAMF2YG6-3srX8_ui.js} +1 -1
- package/dist/assets/channel-BIZI32eZ.js +1 -0
- package/dist/assets/{chunk-ANTBXLJU-BI9zlp2d.js → chunk-ANTBXLJU-CD8Ya77t.js} +1 -1
- package/dist/assets/{chunk-FHKO5MBM-DmqxuwHW.js → chunk-FHKO5MBM-34L0hhh_.js} +1 -1
- package/dist/assets/{chunk-GLLZNHP4-DDRTaZzv.js → chunk-GLLZNHP4-CRWkmhQj.js} +1 -1
- package/dist/assets/{chunk-JBRWN2VN-CT2Hh2iP.js → chunk-JBRWN2VN-CB8a_SQv.js} +1 -1
- package/dist/assets/{chunk-LXBSTHXV-DAMSTx1Q.js → chunk-LXBSTHXV-YNRk01ob.js} +1 -1
- package/dist/assets/{chunk-NRVI72HA-BZuYvBej.js → chunk-NRVI72HA-nFtyi9pH.js} +1 -1
- package/dist/assets/{chunk-OMD6QJNC-BU_2rBlE.js → chunk-OMD6QJNC-BXZ4Kapq.js} +1 -1
- package/dist/assets/{chunk-WVR4S24B-CovEV1lg.js → chunk-WVR4S24B-ZnYlHppS.js} +1 -1
- package/dist/assets/{circle-play-D59wTwHu.js → circle-play-k88jloBa.js} +1 -1
- package/dist/assets/classDiagram-3BZAVTQC-DfPpF-gd.js +1 -0
- package/dist/assets/classDiagram-v2-QTMF73CY-DfPpF-gd.js +1 -0
- package/dist/assets/clone-yHYNh3QG.js +1 -0
- package/dist/assets/{compile-BKBdwA1q.js → compile-CDMtSySK.js} +1 -1
- package/dist/assets/{dagre-2BBEFEWP-BmXAp5fB.js → dagre-2BBEFEWP-Bfm20vyd.js} +1 -1
- package/dist/assets/{data-grid-overlay-editor-BycmLqkg.js → data-grid-overlay-editor-CwEfDFcK.js} +1 -1
- package/dist/assets/{diagram-4IRLE6MV-CI8uZuDu.js → diagram-4IRLE6MV-A9psNOWP.js} +1 -1
- package/dist/assets/{diagram-GUPCWM2R-DM01dWOn.js → diagram-GUPCWM2R-B23WLgai.js} +1 -1
- package/dist/assets/{diagram-RP2FKANI-3A7xcD_S.js → diagram-RP2FKANI-CU5qL55k.js} +1 -1
- package/dist/assets/{edit-page-r0MON4eX.js → edit-page-DYm-s1ff.js} +4 -4
- package/dist/assets/{erDiagram-HZWUO2LU-DVhn3kEV.js → erDiagram-HZWUO2LU-D31RvIVf.js} +1 -1
- package/dist/assets/{flowDiagram-THRYKUMA-ByiKsMTR.js → flowDiagram-THRYKUMA-ClYGAL8Y.js} +1 -1
- package/dist/assets/{ganttDiagram-WV7ZQ7D5-C3yWfK7N.js → ganttDiagram-WV7ZQ7D5-Cmed9KL9.js} +1 -1
- package/dist/assets/{gitGraphDiagram-OJR772UL-DT2oVbFG.js → gitGraphDiagram-OJR772UL-CWvdnGVc.js} +1 -1
- package/dist/assets/{glide-data-editor-B-hKUbt8.js → glide-data-editor-CFVz2aZ5.js} +4 -4
- package/dist/assets/{graph-DKF8gkY7.js → graph-OxTx0_rA.js} +1 -1
- package/dist/assets/{home-page-DG5IpRSH.js → home-page-Dt3nnRSz.js} +1 -1
- package/dist/assets/{index-RfoHYoLS.js → index-4GKIL9qL.js} +1 -1
- package/dist/assets/{index-BKnuS3t4.js → index-B-P7QUhF.js} +1 -1
- package/dist/assets/{index-BSq77Vg9.js → index-BLXqwIOX.js} +1 -1
- package/dist/assets/{index-B4KTvqjC.js → index-BM1NAxco.js} +1 -1
- package/dist/assets/{index-Cxy_1y9a.js → index-BOFl7de8.js} +1 -1
- package/dist/assets/{index-CKZtF7JM.js → index-BUwTI3go.js} +1 -1
- package/dist/assets/{index-BDye4bMD.js → index-Baw8vWOg.js} +1 -1
- package/dist/assets/{index-CDzLk5Q3.js → index-Bd2C9zUZ.js} +1 -1
- package/dist/assets/{index-CDxt4mvu.js → index-Bu3XvTHk.js} +1 -1
- package/dist/assets/{index-BciA4s2J.js → index-C0Q8e5FM.js} +1 -1
- package/dist/assets/{index-DTE_Lol9.js → index-CQFSXxPp.js} +12 -12
- package/dist/assets/{index-COS_Xbgw.js → index-D4HfKv3U.js} +1 -1
- package/dist/assets/{index-BQCqmfXS.js → index-DETsDEp1.js} +1 -1
- package/dist/assets/{index-BAre-3Jh.js → index-DHlxJ27b.js} +1 -1
- package/dist/assets/{index-B_03AI_O.js → index-DLO62gfd.js} +1 -1
- package/dist/assets/{index-CxQa_cAw.js → index-DjT-1R5N.js} +1 -1
- package/dist/assets/{index-BJMIm3h5.js → index-DsWckHTg.js} +1 -1
- package/dist/assets/{index-kCp9Vp_G.js → index-KCIhgRrL.js} +1 -1
- package/dist/assets/{index-tI3mZqES.js → index-WltWzc1Z.js} +1 -1
- package/dist/assets/{index-C89mOURj.js → index-quG0To4_.js} +1 -1
- package/dist/assets/infoDiagram-6WOFNB3A-BQOY1VMN.js +2 -0
- package/dist/assets/{journeyDiagram-FFXJYRFH-yx-qCooh.js → journeyDiagram-FFXJYRFH-BLEcUGJo.js} +1 -1
- package/dist/assets/{kanban-definition-KOZQBZVT-DpJgEsNc.js → kanban-definition-KOZQBZVT-RanT6u8e.js} +1 -1
- package/dist/assets/{layout-HC2KG283.js → layout-D4n_CEl8.js} +1 -1
- package/dist/assets/{linear-DwZzRezN.js → linear-BbPKk0w3.js} +1 -1
- package/dist/assets/{links-_NwdJ11g.js → links-B7_BzQLv.js} +1 -1
- package/dist/assets/{mermaid-BsNRTdZg.js → mermaid-CUkYs7pX.js} +4 -4
- package/dist/assets/{min-DdOdESXu.js → min-Yuyj_o4k.js} +1 -1
- package/dist/assets/{mindmap-definition-LNHGMQRG-Ds3h-hI5.js → mindmap-definition-LNHGMQRG-x4MjCJ_j.js} +1 -1
- package/dist/assets/{number-overlay-editor-CYrbVyKN.js → number-overlay-editor-DeKR_mfB.js} +1 -1
- package/dist/assets/{pieDiagram-DBDJKBY4-Ce-oEPaV.js → pieDiagram-DBDJKBY4-ZOMhJp-a.js} +1 -1
- package/dist/assets/{quadrantDiagram-YPSRARAO-Urm8U0LY.js → quadrantDiagram-YPSRARAO-vZeyiYxN.js} +1 -1
- package/dist/assets/{react-plotly-DGqhBdP1.js → react-plotly-BV6-1ruP.js} +1 -1
- package/dist/assets/{requirementDiagram-EGVEC5DT-CCTq9hQZ.js → requirementDiagram-EGVEC5DT-DkgbH0oi.js} +1 -1
- package/dist/assets/{run-page-CsCj50OD.js → run-page-0slxHZwl.js} +1 -1
- package/dist/assets/{sankeyDiagram-HRAUVNP4-C2I9sfem.js → sankeyDiagram-HRAUVNP4-BuFPw2i8.js} +1 -1
- package/dist/assets/{sequenceDiagram-WFGC7UMF-CLQmyPy2.js → sequenceDiagram-WFGC7UMF-BKGIaix6.js} +1 -1
- package/dist/assets/{slides-component-DJCkXPus.js → slides-component-DYhLRND3.js} +1 -1
- package/dist/assets/{sortBy-Duwc1vyP.js → sortBy-C_bWmRoh.js} +1 -1
- package/dist/assets/{stateDiagram-UUKSUZ4H-VvU373AQ.js → stateDiagram-UUKSUZ4H-Cm2zkw0M.js} +1 -1
- package/dist/assets/stateDiagram-v2-EYPG3UTE-DX5NRIHK.js +1 -0
- package/dist/assets/{storage-1hHZMyeU.js → storage-Dk-ciwQU.js} +3 -3
- package/dist/assets/{terminal-DV-tPxSZ.js → terminal-DrDWxiEU.js} +1 -1
- package/dist/assets/{time-4bh0fJAY.js → time-DW3BCgky.js} +1 -1
- package/dist/assets/{timeline-definition-3HZDQTIS-D5z1lzVG.js → timeline-definition-3HZDQTIS-B_ZdpuLp.js} +1 -1
- package/dist/assets/{tracing-C32etwYw.js → tracing-BuGDnWcg.js} +2 -2
- package/dist/assets/{trash-W9nmeKd9.js → trash-BKmRbRfw.js} +1 -1
- package/dist/assets/{treemap-75Q7IDZK-CHza0lWj.js → treemap-75Q7IDZK-BBbbCdps.js} +1 -1
- package/dist/assets/{vega-component-BDWLTrqk.js → vega-component-DogOWa6S.js} +1 -1
- package/dist/assets/{xychartDiagram-FDP5SA34-DVdoRkWV.js → xychartDiagram-FDP5SA34-3B1j_9pq.js} +1 -1
- package/dist/index.html +1 -1
- package/package.json +1 -1
- package/src/core/dom/outline.ts +16 -2
- package/dist/assets/_baseMap-BQjPNy9z.js +0 -1
- package/dist/assets/channel-8Z-5YHHd.js +0 -1
- package/dist/assets/classDiagram-3BZAVTQC-BOvgzS6u.js +0 -1
- package/dist/assets/classDiagram-v2-QTMF73CY-BOvgzS6u.js +0 -1
- package/dist/assets/clone-DVVP9Odz.js +0 -1
- package/dist/assets/infoDiagram-6WOFNB3A-CVxc3Oq6.js +0 -2
- package/dist/assets/stateDiagram-v2-EYPG3UTE-D41Oi10c.js +0 -1
@@ -1,4 +1,4 @@
|
|
1
|
-
import{_ as m,ad as M,ae as j,af as L,ag as Y,l as i,c as H,ah as _,ai as $,a0 as q,a5 as z,a1 as O,$ as K,aj as Q,ak as U,al as V}from"./mermaid-
|
1
|
+
import{_ as m,ad as M,ae as j,af as L,ag as Y,l as i,c as H,ah as _,ai as $,a0 as q,a5 as z,a1 as O,$ as K,aj as Q,ak as U,al as V}from"./mermaid-CUkYs7pX.js";import{G as k}from"./graph-OxTx0_rA.js";import{l as W}from"./layout-D4n_CEl8.js";import{i as x}from"./_baseUniq-CrXjB6JP.js";import{c as Z}from"./clone-yHYNh3QG.js";import{m as G}from"./min-Yuyj_o4k.js";import"./index-CQFSXxPp.js";import"./transform-B8bpuzxV.js";import"./timer-BwIYMJWC.js";import"./step-BwsUM5iJ.js";import"./_baseEach-DJPM6ZzY.js";import"./sortBy-C_bWmRoh.js";import"./_baseMap-u5TY8JMW.js";function X(e){var r={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:ee(e),edges:te(e)};return x(e.graph())||(r.value=Z(e.graph())),r}function ee(e){return G(e.nodes(),function(r){var t=e.node(r),o=e.parent(r),d={v:r};return x(t)||(d.value=t),x(o)||(d.parent=o),d})}function te(e){return G(e.edges(),function(r){var t=e.edge(r),o={v:r.v,w:r.w};return x(r.name)||(o.name=r.name),x(t)||(o.value=t),o})}var l=new Map,b=new Map,P=new Map,re=m(()=>{b.clear(),P.clear(),l.clear()},"clear"),D=m((e,r)=>{const t=b.get(r)||[];return i.trace("In isDescendant",r," ",e," = ",t.includes(e)),t.includes(e)},"isDescendant"),ne=m((e,r)=>{const t=b.get(r)||[];return i.info("Descendants of ",r," is ",t),i.info("Edge is ",e),e.v!==r&&e.w!==r&&(t?t.includes(e.v)||D(e.v,r)||D(e.w,r)||t.includes(e.w):(i.debug("Tilt, ",r,",not in descendants"),!1))},"edgeInCluster"),B=m((e,r,t,o)=>{i.warn("Copying children of ",e,"root",o,"data",r.node(e),o);const d=r.children(e)||[];e!==o&&d.push(e),i.warn("Copying (nodes) clusterId",e,"nodes",d),d.forEach(s=>{if(r.children(s).length>0)B(s,r,t,o);else{const a=r.node(s);i.info("cp ",s," to ",o," with parent ",e),t.setNode(s,a),o!==r.parent(s)&&(i.warn("Setting parent",s,r.parent(s)),t.setParent(s,r.parent(s))),e!==o&&s!==e?(i.debug("Setting parent",s,e),t.setParent(s,e)):(i.info("In copy ",e,"root",o,"data",r.node(e),o),i.debug("Not Setting parent for node=",s,"cluster!==rootId",e!==o,"node!==clusterId",s!==e));const c=r.edges(s);i.debug("Copying Edges",c),c.forEach(f=>{i.info("Edge",f);const E=r.edge(f.v,f.w,f.name);i.info("Edge data",E,o);try{ne(f,o)?(i.info("Copying as ",f.v,f.w,E,f.name),t.setEdge(f.v,f.w,E,f.name),i.info("newGraph edges ",t.edges(),t.edge(t.edges()[0]))):i.info("Skipping copy of edge ",f.v,"-->",f.w," rootId: ",o," clusterId:",e)}catch(C){i.error(C)}})}i.debug("Removing node",s),r.removeNode(s)})},"copy"),J=m((e,r)=>{const t=r.children(e);let o=[...t];for(const d of t)P.set(d,e),o=[...o,...J(d,r)];return o},"extractDescendants"),ie=m((e,r,t)=>{const o=e.edges().filter(c=>c.v===r||c.w===r),d=e.edges().filter(c=>c.v===t||c.w===t),s=o.map(c=>({v:c.v===r?t:c.v,w:c.w===r?r:c.w})),a=d.map(c=>({v:c.v,w:c.w}));return s.filter(c=>a.some(f=>c.v===f.v&&c.w===f.w))},"findCommonEdges"),I=m((e,r,t)=>{const o=r.children(e);if(i.trace("Searching children of id ",e,o),o.length<1)return e;let d;for(const s of o){const a=I(s,r,t),c=ie(r,t,a);if(a){if(!(c.length>0))return a;d=a}}return d},"findNonClusterChild"),A=m(e=>l.has(e)&&l.get(e).externalConnections&&l.has(e)?l.get(e).id:e,"getAnchorId"),ae=m((e,r)=>{if(!e||r>10)i.debug("Opting out, no graph ");else{i.debug("Opting in, graph "),e.nodes().forEach(function(t){e.children(t).length>0&&(i.warn("Cluster identified",t," Replacement id in edges: ",I(t,e,t)),b.set(t,J(t,e)),l.set(t,{id:I(t,e,t),clusterData:e.node(t)}))}),e.nodes().forEach(function(t){const o=e.children(t),d=e.edges();o.length>0?(i.debug("Cluster identified",t,b),d.forEach(s=>{D(s.v,t)^D(s.w,t)&&(i.warn("Edge: ",s," leaves cluster ",t),i.warn("Descendants of XXX ",t,": ",b.get(t)),l.get(t).externalConnections=!0)})):i.debug("Not a cluster ",t,b)});for(let t of l.keys()){const o=l.get(t).id,d=e.parent(o);d!==t&&l.has(d)&&!l.get(d).externalConnections&&(l.get(t).id=d)}e.edges().forEach(function(t){const o=e.edge(t);i.warn("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t)),i.warn("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(e.edge(t)));let d=t.v,s=t.w;if(i.warn("Fix XXX",l,"ids:",t.v,t.w,"Translating: ",l.get(t.v)," --- ",l.get(t.w)),l.get(t.v)||l.get(t.w)){if(i.warn("Fixing and trying - removing XXX",t.v,t.w,t.name),d=A(t.v),s=A(t.w),e.removeEdge(t.v,t.w,t.name),d!==t.v){const a=e.parent(d);l.get(a).externalConnections=!0,o.fromCluster=t.v}if(s!==t.w){const a=e.parent(s);l.get(a).externalConnections=!0,o.toCluster=t.w}i.warn("Fix Replacing with XXX",d,s,t.name),e.setEdge(d,s,o,t.name)}}),i.warn("Adjusted Graph",X(e)),T(e,0),i.trace(l)}},"adjustClustersAndEdges"),T=m((e,r)=>{var d,s;if(i.warn("extractor - ",r,X(e),e.children("D")),r>10)return void i.error("Bailing out");let t=e.nodes(),o=!1;for(const a of t){const c=e.children(a);o=o||c.length>0}if(o){i.debug("Nodes = ",t,r);for(const a of t)if(i.debug("Extracting node",a,l,l.has(a)&&!l.get(a).externalConnections,!e.parent(a),e.node(a),e.children("D")," Depth ",r),l.has(a))if(!l.get(a).externalConnections&&e.children(a)&&e.children(a).length>0){i.warn("Cluster without external connections, without a parent and with children",a,r);let c=e.graph().rankdir==="TB"?"LR":"TB";(s=(d=l.get(a))==null?void 0:d.clusterData)!=null&&s.dir&&(c=l.get(a).clusterData.dir,i.warn("Fixing dir",l.get(a).clusterData.dir,c));const f=new k({multigraph:!0,compound:!0}).setGraph({rankdir:c,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});i.warn("Old graph before copy",X(e)),B(a,e,f,a),e.setNode(a,{clusterNode:!0,id:a,clusterData:l.get(a).clusterData,label:l.get(a).label,graph:f}),i.warn("New graph after copy node: (",a,")",X(f)),i.debug("Old graph after copy",X(e))}else i.warn("Cluster ** ",a," **not meeting the criteria !externalConnections:",!l.get(a).externalConnections," no parent: ",!e.parent(a)," children ",e.children(a)&&e.children(a).length>0,e.children("D"),r),i.debug(l);else i.debug("Not a cluster",a,r);t=e.nodes(),i.warn("New list of nodes",t);for(const a of t){const c=e.node(a);i.warn(" Now next level",a,c),c!=null&&c.clusterNode&&T(c.graph,r+1)}}else i.debug("Done, no node has children",e.nodes())},"extractor"),R=m((e,r)=>{if(r.length===0)return[];let t=Object.assign([],r);return r.forEach(o=>{const d=e.children(o),s=R(e,d);t=[...t,...s]}),t},"sorter"),oe=m(e=>R(e,e.children()),"sortNodesByHierarchy"),F=m(async(e,r,t,o,d,s)=>{i.warn("Graph in recursive render:XAX",X(r),d);const a=r.graph().rankdir;i.trace("Dir in recursive render - dir:",a);const c=e.insert("g").attr("class","root");r.nodes()?i.info("Recursive render XXX",r.nodes()):i.info("No nodes found for",r),r.edges().length>0&&i.info("Recursive edges",r.edge(r.edges()[0]));const f=c.insert("g").attr("class","clusters"),E=c.insert("g").attr("class","edgePaths"),C=c.insert("g").attr("class","edgeLabels"),p=c.insert("g").attr("class","nodes");await Promise.all(r.nodes().map(async function(g){const n=r.node(g);if(d!==void 0){const h=JSON.parse(JSON.stringify(d.clusterData));i.trace(`Setting data for parent cluster XXX
|
2
2
|
Node.id = `,g,`
|
3
3
|
data=`,h.height,`
|
4
4
|
Parent cluster`,d.height),r.setNode(d.id,h),r.parent(g)||(i.trace("Setting parent",g,d.id),r.setParent(g,d.id,h))}if(i.info("(Insert) Node XXX"+g+": "+JSON.stringify(r.node(g))),n==null?void 0:n.clusterNode){i.info("Cluster identified XBX",g,n.width,r.node(g));const{ranksep:h,nodesep:u}=r.graph();n.graph.setGraph({...n.graph.graph(),ranksep:h+25,nodesep:u});const N=await F(p,n.graph,t,o,r.node(g),s),S=N.elem;_(n,S),n.diff=N.diff||0,i.info("New compound node after recursive render XAX",g,"width",n.width,"height",n.height),$(S,n)}else r.children(g).length>0?(i.trace("Cluster - the non recursive path XBX",g,n.id,n,n.width,"Graph:",r),i.trace(I(n.id,r)),l.set(n.id,{id:I(n.id,r),node:n})):(i.trace("Node - the non recursive path XAX",g,p,r.node(g),a),await q(p,r.node(g),{config:s,dir:a}))})),await m(async()=>{const g=r.edges().map(async function(n){const h=r.edge(n.v,n.w,n.name);i.info("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),i.info("Edge "+n.v+" -> "+n.w+": ",n," ",JSON.stringify(r.edge(n))),i.info("Fix",l,"ids:",n.v,n.w,"Translating: ",l.get(n.v),l.get(n.w)),await V(C,h)});await Promise.all(g)},"processEdges")(),i.info("Graph before layout:",JSON.stringify(X(r))),i.info("############################################# XXX"),i.info("### Layout ### XXX"),i.info("############################################# XXX"),W(r),i.info("Graph after layout:",JSON.stringify(X(r)));let y=0,{subGraphTitleTotalMargin:v}=z(s);return await Promise.all(oe(r).map(async function(g){var h;const n=r.node(g);if(i.info("Position XBX => "+g+": ("+n.x,","+n.y,") width: ",n.width," height: ",n.height),n==null?void 0:n.clusterNode)n.y+=v,i.info("A tainted cluster node XBX1",g,n.id,n.width,n.height,n.x,n.y,r.parent(g)),l.get(n.id).node=n,O(n);else if(r.children(g).length>0){i.info("A pure cluster node XBX1",g,n.id,n.x,n.y,n.width,n.height,r.parent(g)),n.height+=v,r.node(n.parentId);const u=(n==null?void 0:n.padding)/2||0,N=((h=n==null?void 0:n.labelBBox)==null?void 0:h.height)||0,S=N-u||0;i.debug("OffsetY",S,"labelHeight",N,"halfPadding",u),await K(f,n),l.get(n.id).node=n}else{const u=r.node(n.parentId);n.y+=v/2,i.info("A regular node XBX1 - using the padding",n.id,"parent",n.parentId,n.width,n.height,n.x,n.y,"offsetY",n.offsetY,"parent",u,u==null?void 0:u.offsetY,n),O(n)}})),r.edges().forEach(function(g){const n=r.edge(g);i.info("Edge "+g.v+" -> "+g.w+": "+JSON.stringify(n),n),n.points.forEach(S=>S.y+=v/2);const h=r.node(g.v);var u=r.node(g.w);const N=Q(E,n,l,t,h,u,o);U(n,N)}),r.nodes().forEach(function(g){const n=r.node(g);i.info(g,n.type,n.diff),n.isGroup&&(y=n.diff)}),i.warn("Returning from recursive render XAX",c,y),{elem:c,diff:y}},"recursiveRender"),se=m(async(e,r)=>{var s,a,c,f,E,C;const t=new k({multigraph:!0,compound:!0}).setGraph({rankdir:e.direction,nodesep:((s=e.config)==null?void 0:s.nodeSpacing)||((c=(a=e.config)==null?void 0:a.flowchart)==null?void 0:c.nodeSpacing)||e.nodeSpacing,ranksep:((f=e.config)==null?void 0:f.rankSpacing)||((C=(E=e.config)==null?void 0:E.flowchart)==null?void 0:C.rankSpacing)||e.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),o=r.select("g");M(o,e.markers,e.type,e.diagramId),j(),L(),Y(),re(),e.nodes.forEach(p=>{t.setNode(p.id,{...p}),p.parentId&&t.setParent(p.id,p.parentId)}),i.debug("Edges:",e.edges),e.edges.forEach(p=>{if(p.start===p.end){const w=p.start,y=w+"---"+w+"---1",v=w+"---"+w+"---2",g=t.node(w);t.setNode(y,{domId:y,id:y,parentId:g.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),t.setParent(y,g.parentId),t.setNode(v,{domId:v,id:v,parentId:g.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),t.setParent(v,g.parentId);const n=structuredClone(p),h=structuredClone(p),u=structuredClone(p);n.label="",n.arrowTypeEnd="none",n.id=w+"-cyclic-special-1",h.arrowTypeStart="none",h.arrowTypeEnd="none",h.id=w+"-cyclic-special-mid",u.label="",g.isGroup&&(n.fromCluster=w,u.toCluster=w),u.id=w+"-cyclic-special-2",u.arrowTypeStart="none",t.setEdge(w,y,n,w+"-cyclic-special-0"),t.setEdge(y,v,h,w+"-cyclic-special-1"),t.setEdge(v,w,u,w+"-cyc<lic-special-2")}else t.setEdge(p.start,p.end,{...p},p.id)}),i.warn("Graph at first:",JSON.stringify(X(t))),ae(t),i.warn("Graph after XAX:",JSON.stringify(X(t)));const d=H();await F(o,t,e.type,e.diagramId,void 0,d)},"render");export{se as render};
|
package/dist/assets/{data-grid-overlay-editor-BycmLqkg.js → data-grid-overlay-editor-CwEfDFcK.js}
RENAMED
@@ -1 +1 @@
|
|
1
|
-
import{U as t,ay as J}from"./index-
|
1
|
+
import{U as t,ay as J}from"./index-CQFSXxPp.js";import{s as Q,i as N,a as Z,b as _,T as ee,C as te,m as re}from"./glide-data-editor-CFVz2aZ5.js";import"./trash-BKmRbRfw.js";const ie=Q("div")({name:"DataGridOverlayEditorStyle",class:"gdg-d19meir1",propsAsIs:!1,vars:{"d19meir1-0":[r=>r.targetY,"px"],"d19meir1-1":[r=>r.targetX,"px"],"d19meir1-2":[r=>r.targetWidth,"px"],"d19meir1-3":[r=>r.targetHeight,"px"],"d19meir1-4":[r=>r.targetY+10,"px"],"d19meir1-5":[r=>Math.max(0,(r.targetHeight-28)/2),"px"]}});function ae(){const[r,s]=function(){const[n,o]=t.useState();return[n??void 0,o]}(),[a,p]=t.useState(0),[v,k]=t.useState(!0);return t.useLayoutEffect(()=>{if(r===void 0||!("IntersectionObserver"in window))return;const n=new IntersectionObserver(o=>{o.length!==0&&k(o[0].isIntersecting)},{threshold:1});return n.observe(r),()=>n.disconnect()},[r]),t.useEffect(()=>{if(v||r===void 0)return;let n;const o=()=>{const{right:O}=r.getBoundingClientRect();p(x=>Math.min(x+window.innerWidth-O-10,0)),n=requestAnimationFrame(o)};return n=requestAnimationFrame(o),()=>{n!==void 0&&cancelAnimationFrame(n)}},[r,v]),{ref:s,style:t.useMemo(()=>({transform:`translateX(${a}px)`}),[a])}}const ne=r=>{const{target:s,content:a,onFinishEditing:p,forceEditMode:v,initialValue:k,imageEditorOverride:n,markdownDivCreateNode:o,highlight:O,className:x,theme:S,id:W,cell:f,bloom:u,validateCell:d,getCellRenderer:R,provideEditor:h,isOutsideClick:X,customEventTarget:Y}=r,[l,q]=t.useState(v?a:void 0),w=t.useRef(l??a);w.current=l??a;const[y,P]=t.useState(()=>d===void 0||!(N(a)&&(d==null?void 0:d(f,a,w.current))===!1)),g=t.useCallback((e,i)=>{p(y?e:void 0,i)},[y,p]),B=t.useCallback(e=>{if(d!==void 0&&e!==void 0&&N(e)){const i=d(f,e,w.current);i===!1?P(!1):(typeof i=="object"&&(e=i),P(!0))}q(e)},[f,d]),E=t.useRef(!1),m=t.useRef(void 0),G=t.useCallback(()=>{g(l,[0,0]),E.current=!0},[l,g]),j=t.useCallback((e,i)=>{g(e,i??m.current??[0,0]),E.current=!0},[g]),L=t.useCallback(async e=>{let i=!1;e.key==="Escape"?(e.stopPropagation(),e.preventDefault(),m.current=[0,0]):e.key!=="Enter"||e.shiftKey?e.key==="Tab"&&(e.stopPropagation(),e.preventDefault(),m.current=[e.shiftKey?-1:1,0],i=!0):(e.stopPropagation(),e.preventDefault(),m.current=[0,1],i=!0),window.setTimeout(()=>{E.current||m.current===void 0||(g(i?l:void 0,m.current),E.current=!0)},0)},[g,l]),D=l??a,[c,U]=t.useMemo(()=>{var C,V;if(Z(a))return[];const e={...a,location:f},i=h==null?void 0:h(e);return i!==void 0?[i,!1]:[(V=(C=R(a))==null?void 0:C.provideEditor)==null?void 0:V.call(C,e),!1]},[f,a,R,h]),{ref:$,style:z}=ae();let F,b,I=!0,T=!0;if(c!==void 0){I=c.disablePadding!==!0,T=c.disableStyling!==!0;const e=_(c);e&&(b=c.styleOverride);const i=e?c.editor:c;F=t.createElement(i,{isHighlighted:O,onChange:B,value:D,initialValue:k,onFinishedEditing:j,validatedSelection:N(D)?D.selectionRange:void 0,forceEditMode:v,target:s,imageEditorOverride:n,markdownDivCreateNode:o,isValid:y,theme:S})}b={...b,...z};const A=document.getElementById("portal");if(A===null)return console.error('Cannot open Data Grid overlay editor, because portal not found. Please add `<div id="portal" />` as the last child of your `<body>`.'),null;let M=T?"gdg-style":"gdg-unstyle";y||(M+=" gdg-invalid"),I&&(M+=" gdg-pad");const H=(u==null?void 0:u[0])??1,K=(u==null?void 0:u[1])??1;return J.createPortal(t.createElement(ee.Provider,{value:S},t.createElement(te,{style:re(S),className:x,onClickOutside:G,isOutsideClick:X,customEventTarget:Y},t.createElement(ie,{ref:$,id:W,className:M,style:b,as:U===!0?"label":void 0,targetX:s.x-H,targetY:s.y-K,targetWidth:s.width+2*H,targetHeight:s.height+2*K},t.createElement("div",{className:"gdg-clip-region",onKeyDown:L},F)))),A)};export{ne as default};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
var v;import{s as X}from"./chunk-NRVI72HA-BZuYvBej.js";import{_ as m,E as j,F as H,I as Y,d as Z,l as D,a9 as C,b as tt,a as et,p as at,q as lt,g as st,s as rt,G as nt,aa as ot,y as it}from"./mermaid-BsNRTdZg.js";import{p as ct}from"./chunk-ANTBXLJU-BI9zlp2d.js";import{p as dt}from"./treemap-75Q7IDZK-CHza0lWj.js";import{s as N}from"./transform-B8bpuzxV.js";import{y as k}from"./index-DTE_Lol9.js";import{o as A}from"./ordinal-DDUp3AbE.js";import{h as pt,t as ht}from"./index-BEQfoZiP.js";import"./step-BwsUM5iJ.js";import"./_baseEach-CnkgAoU6.js";import"./_baseUniq-CwJ2iszo.js";import"./min-DdOdESXu.js";import"./_baseMap-BQjPNy9z.js";import"./clone-DVVP9Odz.js";import"./_createAggregator-DzNuEiXE.js";import"./timer-BwIYMJWC.js";import"./init-DLRA0X12.js";var G=(v=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=tt,this.getAccTitle=et,this.setDiagramTitle=at,this.getDiagramTitle=lt,this.getAccDescription=st,this.setAccDescription=rt}getNodes(){return this.nodes}getConfig(){const a=nt,n=H();return j({...a.treemap,...n.treemap??{}})}addNode(a,n){this.nodes.push(a),this.levels.set(a,n),n===0&&(this.outerNodes.push(a),this.root??(this.root=a))}getRoot(){return{name:"",children:this.outerNodes}}addClass(a,n){const s=this.classes.get(a)??{id:a,styles:[],textStyles:[]},o=n.replace(/\\,/g,"\xA7\xA7\xA7").replace(/,/g,";").replace(/§§§/g,",").split(";");o&&o.forEach(r=>{ot(r)&&(s!=null&&s.textStyles?s.textStyles.push(r):s.textStyles=[r]),s!=null&&s.styles?s.styles.push(r):s.styles=[r]}),this.classes.set(a,s)}getClasses(){return this.classes}getStylesForClass(a){var n;return((n=this.classes.get(a))==null?void 0:n.styles)??[]}clear(){it(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}},m(v,"TreeMapDB"),v);function q(c){if(!c.length)return[];const a=[],n=[];return c.forEach(s=>{const o={name:s.name,children:s.type==="Leaf"?void 0:[]};for(o.classSelector=s==null?void 0:s.classSelector,s!=null&&s.cssCompiledStyles&&(o.cssCompiledStyles=[s.cssCompiledStyles]),s.type==="Leaf"&&s.value!==void 0&&(o.value=s.value);n.length>0&&n[n.length-1].level>=s.level;)n.pop();if(n.length===0)a.push(o);else{const r=n[n.length-1].node;r.children?r.children.push(o):r.children=[o]}s.type!=="Leaf"&&n.push({node:o,level:s.level})}),a}m(q,"buildHierarchy");var mt=m((c,a)=>{ct(c,a);const n=[];for(const r of c.TreemapRows??[])r.$type==="ClassDefStatement"&&a.addClass(r.className??"",r.styleText??"");for(const r of c.TreemapRows??[]){const d=r.item;if(!d)continue;const f=r.indent?parseInt(r.indent):0,M=yt(d),l=d.classSelector?a.getStylesForClass(d.classSelector):[],$=l.length>0?l.join(";"):void 0,x={level:f,name:M,type:d.$type,value:d.value,classSelector:d.classSelector,cssCompiledStyles:$};n.push(x)}const s=q(n),o=m((r,d)=>{for(const f of r)a.addNode(f,d),f.children&&f.children.length>0&&o(f.children,d+1)},"addNodesRecursively");o(s,0)},"populate"),yt=m(c=>c.name?String(c.name):"","getItemName"),_={parser:{yy:void 0},parse:m(async c=>{var a;try{const n=dt,s=await n("treemap",c);D.debug("Treemap AST:",s);const o=(a=_.parser)==null?void 0:a.yy;if(!(o instanceof G))throw new Error("parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");mt(s,o)}catch(n){throw D.error("Error parsing treemap:",n),n}},"parse")},T=10,ft={draw:m((c,a,n,s)=>{const o=s.db,r=o.getConfig(),d=r.padding??10,f=o.getDiagramTitle(),M=o.getRoot(),{themeVariables:l}=H();if(!M)return;const $=f?30:0,x=Y(a),V=r.nodeWidth?r.nodeWidth*T:960,E=r.nodeHeight?r.nodeHeight*T:500,W=V,R=E+$;let b;x.attr("viewBox",`0 0 ${W} ${R}`),Z(x,R,W,r.useMaxWidth);try{const t=r.valueFormat||",";if(t==="$0,0")b=m(e=>"$"+k(",")(e),"valueFormat");else if(t.startsWith("$")&&t.includes(",")){const e=/\.\d+/.exec(t),p=e?e[0]:"";b=m(u=>"$"+k(","+p)(u),"valueFormat")}else if(t.startsWith("$")){const e=t.substring(1);b=m(p=>"$"+k(e||"")(p),"valueFormat")}else b=k(t)}catch(t){D.error("Error creating format function:",t),b=k(",")}const w=A().range(["transparent",l.cScale0,l.cScale1,l.cScale2,l.cScale3,l.cScale4,l.cScale5,l.cScale6,l.cScale7,l.cScale8,l.cScale9,l.cScale10,l.cScale11]),J=A().range(["transparent",l.cScalePeer0,l.cScalePeer1,l.cScalePeer2,l.cScalePeer3,l.cScalePeer4,l.cScalePeer5,l.cScalePeer6,l.cScalePeer7,l.cScalePeer8,l.cScalePeer9,l.cScalePeer10,l.cScalePeer11]),z=A().range([l.cScaleLabel0,l.cScaleLabel1,l.cScaleLabel2,l.cScaleLabel3,l.cScaleLabel4,l.cScaleLabel5,l.cScaleLabel6,l.cScaleLabel7,l.cScaleLabel8,l.cScaleLabel9,l.cScaleLabel10,l.cScaleLabel11]);f&&x.append("text").attr("x",W/2).attr("y",$/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(f);const I=x.append("g").attr("transform",`translate(0, ${$})`).attr("class","treemapContainer"),K=pt(M).sum(t=>t.value??0).sort((t,e)=>(e.value??0)-(t.value??0)),B=ht().size([V,E]).paddingTop(t=>t.children&&t.children.length>0?35:0).paddingInner(d).paddingLeft(t=>t.children&&t.children.length>0?T:0).paddingRight(t=>t.children&&t.children.length>0?T:0).paddingBottom(t=>t.children&&t.children.length>0?T:0).round(!0)(K),O=B.descendants().filter(t=>t.children&&t.children.length>0),L=I.selectAll(".treemapSection").data(O).enter().append("g").attr("class","treemapSection").attr("transform",t=>`translate(${t.x0},${t.y0})`);L.append("rect").attr("width",t=>t.x1-t.x0).attr("height",25).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",t=>t.depth===0?"display: none;":""),L.append("clipPath").attr("id",(t,e)=>`clip-section-${a}-${e}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-12)).attr("height",25),L.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class",(t,e)=>`treemapSection section${e}`).attr("fill",t=>w(t.data.name)).attr("fill-opacity",.6).attr("stroke",t=>J(t.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",t=>{if(t.depth===0)return"display: none;";const e=C({cssCompiledStyles:t.data.cssCompiledStyles});return e.nodeStyles+";"+e.borderStyles.join(";")}),L.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",12.5).attr("dominant-baseline","middle").text(t=>t.depth===0?"":t.data.name).attr("font-weight","bold").attr("style",t=>t.depth===0?"display: none;":"dominant-baseline: middle; font-size: 12px; fill:"+z(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"+C({cssCompiledStyles:t.data.cssCompiledStyles}).labelStyles.replace("color:","fill:")).each(function(t){if(t.depth===0)return;const e=N(this),p=t.data.name;e.text(p);const u=t.x1-t.x0;let g;r.showValues!==!1&&t.value?g=u-10-30-10-6:g=u-6-6;const y=Math.max(15,g),S=e.node();if(S.getComputedTextLength()>y){const i="...";let h=p;for(;h.length>0;){if(h=p.substring(0,h.length-1),h.length===0){e.text(i),S.getComputedTextLength()>y&&e.text("");break}if(e.text(h+i),S.getComputedTextLength()<=y)break}}}),r.showValues!==!1&&L.append("text").attr("class","treemapSectionValue").attr("x",t=>t.x1-t.x0-10).attr("y",12.5).attr("text-anchor","end").attr("dominant-baseline","middle").text(t=>t.value?b(t.value):"").attr("font-style","italic").attr("style",t=>t.depth===0?"display: none;":"text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+z(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"+C({cssCompiledStyles:t.data.cssCompiledStyles}).labelStyles.replace("color:","fill:"));const Q=B.leaves(),F=I.selectAll(".treemapLeafGroup").data(Q).enter().append("g").attr("class",(t,e)=>`treemapNode treemapLeafGroup leaf${e}${t.data.classSelector?` ${t.data.classSelector}`:""}x`).attr("transform",t=>`translate(${t.x0},${t.y0})`);F.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class","treemapLeaf").attr("fill",t=>t.parent?w(t.parent.data.name):w(t.data.name)).attr("style",t=>C({cssCompiledStyles:t.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",t=>t.parent?w(t.parent.data.name):w(t.data.name)).attr("stroke-width",3),F.append("clipPath").attr("id",(t,e)=>`clip-${a}-${e}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-4)).attr("height",t=>Math.max(0,t.y1-t.y0-4)),F.append("text").attr("class","treemapLabel").attr("x",t=>(t.x1-t.x0)/2).attr("y",t=>(t.y1-t.y0)/2).attr("style",t=>"text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+z(t.data.name)+";"+C({cssCompiledStyles:t.data.cssCompiledStyles}).labelStyles.replace("color:","fill:")).attr("clip-path",(t,e)=>`url(#clip-${a}-${e})`).text(t=>t.data.name).each(function(t){const e=N(this),p=t.x1-t.x0,u=t.y1-t.y0,g=e.node(),y=p-8,S=u-8;if(y<10||S<10)return void e.style("display","none");let i=parseInt(e.style("font-size"),10);for(;g.getComputedTextLength()>y&&i>8;)i--,e.style("font-size",`${i}px`);let h=Math.max(6,Math.min(28,Math.round(.6*i))),P=i+2+h;for(;P>S&&i>8&&(i--,h=Math.max(6,Math.min(28,Math.round(.6*i))),!(h<6&&i===8));)e.style("font-size",`${i}px`),P=i+2+h;e.style("font-size",`${i}px`),(g.getComputedTextLength()>y||i<8||S<i)&&e.style("display","none")}),r.showValues!==!1&&F.append("text").attr("class","treemapValue").attr("x",t=>(t.x1-t.x0)/2).attr("y",function(t){return(t.y1-t.y0)/2}).attr("style",t=>"text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:"+z(t.data.name)+";"+C({cssCompiledStyles:t.data.cssCompiledStyles}).labelStyles.replace("color:","fill:")).attr("clip-path",(t,e)=>`url(#clip-${a}-${e})`).text(t=>t.value?b(t.value):"").each(function(t){const e=N(this),p=this.parentNode;if(!p)return void e.style("display","none");const u=N(p).select(".treemapLabel");if(u.empty()||u.style("display")==="none")return void e.style("display","none");const g=parseFloat(u.style("font-size")),y=Math.max(6,Math.min(28,Math.round(.6*g)));e.style("font-size",`${y}px`);const S=(t.y1-t.y0)/2+g/2+2;e.attr("y",S);const i=t.x1-t.x0,h=t.y1-t.y0-4,P=i-8;e.node().getComputedTextLength()>P||S+y>h||y<6?e.style("display","none"):e.style("display",null)});const U=r.diagramPadding??8;X(x,U,"flowchart",(r==null?void 0:r.useMaxWidth)||!1)},"draw"),getClasses:m(function(c,a){return a.db.getClasses()},"getClasses")},ut={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelColor:"black",labelFontSize:"12px",valueFontSize:"10px",valueColor:"black",titleColor:"black",titleFontSize:"14px"},St=m(({treemap:c}={})=>{const a=j(ut,c);return`
|
1
|
+
var v;import{s as X}from"./chunk-NRVI72HA-nFtyi9pH.js";import{_ as m,E as j,F as H,I as Y,d as Z,l as D,a9 as C,b as tt,a as et,p as at,q as lt,g as st,s as rt,G as nt,aa as ot,y as it}from"./mermaid-CUkYs7pX.js";import{p as ct}from"./chunk-ANTBXLJU-CD8Ya77t.js";import{p as dt}from"./treemap-75Q7IDZK-BBbbCdps.js";import{s as N}from"./transform-B8bpuzxV.js";import{y as k}from"./index-CQFSXxPp.js";import{o as A}from"./ordinal-DDUp3AbE.js";import{h as pt,t as ht}from"./index-BEQfoZiP.js";import"./step-BwsUM5iJ.js";import"./_baseEach-DJPM6ZzY.js";import"./_baseUniq-CrXjB6JP.js";import"./min-Yuyj_o4k.js";import"./_baseMap-u5TY8JMW.js";import"./clone-yHYNh3QG.js";import"./_createAggregator-Cd0noqMc.js";import"./timer-BwIYMJWC.js";import"./init-DLRA0X12.js";var G=(v=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=tt,this.getAccTitle=et,this.setDiagramTitle=at,this.getDiagramTitle=lt,this.getAccDescription=st,this.setAccDescription=rt}getNodes(){return this.nodes}getConfig(){const a=nt,n=H();return j({...a.treemap,...n.treemap??{}})}addNode(a,n){this.nodes.push(a),this.levels.set(a,n),n===0&&(this.outerNodes.push(a),this.root??(this.root=a))}getRoot(){return{name:"",children:this.outerNodes}}addClass(a,n){const s=this.classes.get(a)??{id:a,styles:[],textStyles:[]},o=n.replace(/\\,/g,"\xA7\xA7\xA7").replace(/,/g,";").replace(/§§§/g,",").split(";");o&&o.forEach(r=>{ot(r)&&(s!=null&&s.textStyles?s.textStyles.push(r):s.textStyles=[r]),s!=null&&s.styles?s.styles.push(r):s.styles=[r]}),this.classes.set(a,s)}getClasses(){return this.classes}getStylesForClass(a){var n;return((n=this.classes.get(a))==null?void 0:n.styles)??[]}clear(){it(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}},m(v,"TreeMapDB"),v);function q(c){if(!c.length)return[];const a=[],n=[];return c.forEach(s=>{const o={name:s.name,children:s.type==="Leaf"?void 0:[]};for(o.classSelector=s==null?void 0:s.classSelector,s!=null&&s.cssCompiledStyles&&(o.cssCompiledStyles=[s.cssCompiledStyles]),s.type==="Leaf"&&s.value!==void 0&&(o.value=s.value);n.length>0&&n[n.length-1].level>=s.level;)n.pop();if(n.length===0)a.push(o);else{const r=n[n.length-1].node;r.children?r.children.push(o):r.children=[o]}s.type!=="Leaf"&&n.push({node:o,level:s.level})}),a}m(q,"buildHierarchy");var mt=m((c,a)=>{ct(c,a);const n=[];for(const r of c.TreemapRows??[])r.$type==="ClassDefStatement"&&a.addClass(r.className??"",r.styleText??"");for(const r of c.TreemapRows??[]){const d=r.item;if(!d)continue;const f=r.indent?parseInt(r.indent):0,M=yt(d),l=d.classSelector?a.getStylesForClass(d.classSelector):[],$=l.length>0?l.join(";"):void 0,x={level:f,name:M,type:d.$type,value:d.value,classSelector:d.classSelector,cssCompiledStyles:$};n.push(x)}const s=q(n),o=m((r,d)=>{for(const f of r)a.addNode(f,d),f.children&&f.children.length>0&&o(f.children,d+1)},"addNodesRecursively");o(s,0)},"populate"),yt=m(c=>c.name?String(c.name):"","getItemName"),_={parser:{yy:void 0},parse:m(async c=>{var a;try{const n=dt,s=await n("treemap",c);D.debug("Treemap AST:",s);const o=(a=_.parser)==null?void 0:a.yy;if(!(o instanceof G))throw new Error("parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");mt(s,o)}catch(n){throw D.error("Error parsing treemap:",n),n}},"parse")},T=10,ft={draw:m((c,a,n,s)=>{const o=s.db,r=o.getConfig(),d=r.padding??10,f=o.getDiagramTitle(),M=o.getRoot(),{themeVariables:l}=H();if(!M)return;const $=f?30:0,x=Y(a),V=r.nodeWidth?r.nodeWidth*T:960,E=r.nodeHeight?r.nodeHeight*T:500,W=V,R=E+$;let b;x.attr("viewBox",`0 0 ${W} ${R}`),Z(x,R,W,r.useMaxWidth);try{const t=r.valueFormat||",";if(t==="$0,0")b=m(e=>"$"+k(",")(e),"valueFormat");else if(t.startsWith("$")&&t.includes(",")){const e=/\.\d+/.exec(t),p=e?e[0]:"";b=m(u=>"$"+k(","+p)(u),"valueFormat")}else if(t.startsWith("$")){const e=t.substring(1);b=m(p=>"$"+k(e||"")(p),"valueFormat")}else b=k(t)}catch(t){D.error("Error creating format function:",t),b=k(",")}const w=A().range(["transparent",l.cScale0,l.cScale1,l.cScale2,l.cScale3,l.cScale4,l.cScale5,l.cScale6,l.cScale7,l.cScale8,l.cScale9,l.cScale10,l.cScale11]),J=A().range(["transparent",l.cScalePeer0,l.cScalePeer1,l.cScalePeer2,l.cScalePeer3,l.cScalePeer4,l.cScalePeer5,l.cScalePeer6,l.cScalePeer7,l.cScalePeer8,l.cScalePeer9,l.cScalePeer10,l.cScalePeer11]),z=A().range([l.cScaleLabel0,l.cScaleLabel1,l.cScaleLabel2,l.cScaleLabel3,l.cScaleLabel4,l.cScaleLabel5,l.cScaleLabel6,l.cScaleLabel7,l.cScaleLabel8,l.cScaleLabel9,l.cScaleLabel10,l.cScaleLabel11]);f&&x.append("text").attr("x",W/2).attr("y",$/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(f);const I=x.append("g").attr("transform",`translate(0, ${$})`).attr("class","treemapContainer"),K=pt(M).sum(t=>t.value??0).sort((t,e)=>(e.value??0)-(t.value??0)),B=ht().size([V,E]).paddingTop(t=>t.children&&t.children.length>0?35:0).paddingInner(d).paddingLeft(t=>t.children&&t.children.length>0?T:0).paddingRight(t=>t.children&&t.children.length>0?T:0).paddingBottom(t=>t.children&&t.children.length>0?T:0).round(!0)(K),O=B.descendants().filter(t=>t.children&&t.children.length>0),L=I.selectAll(".treemapSection").data(O).enter().append("g").attr("class","treemapSection").attr("transform",t=>`translate(${t.x0},${t.y0})`);L.append("rect").attr("width",t=>t.x1-t.x0).attr("height",25).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",t=>t.depth===0?"display: none;":""),L.append("clipPath").attr("id",(t,e)=>`clip-section-${a}-${e}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-12)).attr("height",25),L.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class",(t,e)=>`treemapSection section${e}`).attr("fill",t=>w(t.data.name)).attr("fill-opacity",.6).attr("stroke",t=>J(t.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",t=>{if(t.depth===0)return"display: none;";const e=C({cssCompiledStyles:t.data.cssCompiledStyles});return e.nodeStyles+";"+e.borderStyles.join(";")}),L.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",12.5).attr("dominant-baseline","middle").text(t=>t.depth===0?"":t.data.name).attr("font-weight","bold").attr("style",t=>t.depth===0?"display: none;":"dominant-baseline: middle; font-size: 12px; fill:"+z(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"+C({cssCompiledStyles:t.data.cssCompiledStyles}).labelStyles.replace("color:","fill:")).each(function(t){if(t.depth===0)return;const e=N(this),p=t.data.name;e.text(p);const u=t.x1-t.x0;let g;r.showValues!==!1&&t.value?g=u-10-30-10-6:g=u-6-6;const y=Math.max(15,g),S=e.node();if(S.getComputedTextLength()>y){const i="...";let h=p;for(;h.length>0;){if(h=p.substring(0,h.length-1),h.length===0){e.text(i),S.getComputedTextLength()>y&&e.text("");break}if(e.text(h+i),S.getComputedTextLength()<=y)break}}}),r.showValues!==!1&&L.append("text").attr("class","treemapSectionValue").attr("x",t=>t.x1-t.x0-10).attr("y",12.5).attr("text-anchor","end").attr("dominant-baseline","middle").text(t=>t.value?b(t.value):"").attr("font-style","italic").attr("style",t=>t.depth===0?"display: none;":"text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+z(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"+C({cssCompiledStyles:t.data.cssCompiledStyles}).labelStyles.replace("color:","fill:"));const Q=B.leaves(),F=I.selectAll(".treemapLeafGroup").data(Q).enter().append("g").attr("class",(t,e)=>`treemapNode treemapLeafGroup leaf${e}${t.data.classSelector?` ${t.data.classSelector}`:""}x`).attr("transform",t=>`translate(${t.x0},${t.y0})`);F.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class","treemapLeaf").attr("fill",t=>t.parent?w(t.parent.data.name):w(t.data.name)).attr("style",t=>C({cssCompiledStyles:t.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",t=>t.parent?w(t.parent.data.name):w(t.data.name)).attr("stroke-width",3),F.append("clipPath").attr("id",(t,e)=>`clip-${a}-${e}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-4)).attr("height",t=>Math.max(0,t.y1-t.y0-4)),F.append("text").attr("class","treemapLabel").attr("x",t=>(t.x1-t.x0)/2).attr("y",t=>(t.y1-t.y0)/2).attr("style",t=>"text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+z(t.data.name)+";"+C({cssCompiledStyles:t.data.cssCompiledStyles}).labelStyles.replace("color:","fill:")).attr("clip-path",(t,e)=>`url(#clip-${a}-${e})`).text(t=>t.data.name).each(function(t){const e=N(this),p=t.x1-t.x0,u=t.y1-t.y0,g=e.node(),y=p-8,S=u-8;if(y<10||S<10)return void e.style("display","none");let i=parseInt(e.style("font-size"),10);for(;g.getComputedTextLength()>y&&i>8;)i--,e.style("font-size",`${i}px`);let h=Math.max(6,Math.min(28,Math.round(.6*i))),P=i+2+h;for(;P>S&&i>8&&(i--,h=Math.max(6,Math.min(28,Math.round(.6*i))),!(h<6&&i===8));)e.style("font-size",`${i}px`),P=i+2+h;e.style("font-size",`${i}px`),(g.getComputedTextLength()>y||i<8||S<i)&&e.style("display","none")}),r.showValues!==!1&&F.append("text").attr("class","treemapValue").attr("x",t=>(t.x1-t.x0)/2).attr("y",function(t){return(t.y1-t.y0)/2}).attr("style",t=>"text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:"+z(t.data.name)+";"+C({cssCompiledStyles:t.data.cssCompiledStyles}).labelStyles.replace("color:","fill:")).attr("clip-path",(t,e)=>`url(#clip-${a}-${e})`).text(t=>t.value?b(t.value):"").each(function(t){const e=N(this),p=this.parentNode;if(!p)return void e.style("display","none");const u=N(p).select(".treemapLabel");if(u.empty()||u.style("display")==="none")return void e.style("display","none");const g=parseFloat(u.style("font-size")),y=Math.max(6,Math.min(28,Math.round(.6*g)));e.style("font-size",`${y}px`);const S=(t.y1-t.y0)/2+g/2+2;e.attr("y",S);const i=t.x1-t.x0,h=t.y1-t.y0-4,P=i-8;e.node().getComputedTextLength()>P||S+y>h||y<6?e.style("display","none"):e.style("display",null)});const U=r.diagramPadding??8;X(x,U,"flowchart",(r==null?void 0:r.useMaxWidth)||!1)},"draw"),getClasses:m(function(c,a){return a.db.getClasses()},"getClasses")},ut={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelColor:"black",labelFontSize:"12px",valueFontSize:"10px",valueColor:"black",titleColor:"black",titleFontSize:"14px"},St=m(({treemap:c}={})=>{const a=j(ut,c);return`
|
2
2
|
.treemapNode.section {
|
3
3
|
stroke: ${a.sectionStrokeColor};
|
4
4
|
stroke-width: ${a.sectionStrokeWidth};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
var m;import{p as C}from"./chunk-ANTBXLJU-
|
1
|
+
var m;import{p as C}from"./chunk-ANTBXLJU-CD8Ya77t.js";import{_ as f,E as u,I as v,d as P,l as w,b as z,a as F,p as S,q as E,g as W,s as T,F as D,G as A,y as R}from"./mermaid-CUkYs7pX.js";import{p as Y}from"./treemap-75Q7IDZK-BBbbCdps.js";import"./index-CQFSXxPp.js";import"./transform-B8bpuzxV.js";import"./timer-BwIYMJWC.js";import"./step-BwsUM5iJ.js";import"./_baseEach-DJPM6ZzY.js";import"./_baseUniq-CrXjB6JP.js";import"./min-Yuyj_o4k.js";import"./_baseMap-u5TY8JMW.js";import"./clone-yHYNh3QG.js";import"./_createAggregator-Cd0noqMc.js";var j=A.packet,y=(m=class{constructor(){this.packet=[],this.setAccTitle=z,this.getAccTitle=F,this.setDiagramTitle=S,this.getDiagramTitle=E,this.getAccDescription=W,this.setAccDescription=T}getConfig(){const t=u({...j,...D().packet});return t.showBits&&(t.paddingY+=10),t}getPacket(){return this.packet}pushWord(t){t.length>0&&this.packet.push(t)}clear(){R(),this.packet=[]}},f(m,"PacketDB"),m),H=f((e,t)=>{C(e,t);let o=-1,r=[],n=1;const{bitsPerRow:l}=t.getConfig();for(let{start:a,end:i,bits:d,label:c}of e.blocks){if(a!==void 0&&i!==void 0&&i<a)throw new Error(`Packet block ${a} - ${i} is invalid. End must be greater than start.`);if(a??(a=o+1),a!==o+1)throw new Error(`Packet block ${a} - ${i??a} is not contiguous. It should start from ${o+1}.`);if(d===0)throw new Error(`Packet block ${a} is invalid. Cannot have a zero bit field.`);for(i??(i=a+(d??1)-1),d??(d=i-a+1),o=i,w.debug(`Packet block ${a} - ${o} with label ${c}`);r.length<=l+1&&t.getPacket().length<1e4;){const[p,s]=I({start:a,end:i,bits:d,label:c},n,l);if(r.push(p),p.end+1===n*l&&(t.pushWord(r),r=[],n++),!s)break;({start:a,end:i,bits:d,label:c}=s)}}t.pushWord(r)},"populate"),I=f((e,t,o)=>{if(e.start===void 0)throw new Error("start should have been set during first phase");if(e.end===void 0)throw new Error("end should have been set during first phase");if(e.start>e.end)throw new Error(`Block start ${e.start} is greater than block end ${e.end}.`);if(e.end+1<=t*o)return[e,void 0];const r=t*o-1,n=t*o;return[{start:e.start,end:r,label:e.label,bits:r-e.start},{start:n,end:e.end,label:e.label,bits:e.end-n}]},"getNextFittingBlock"),x={parser:{yy:void 0},parse:f(async e=>{var r;const t=await Y("packet",e),o=(r=x.parser)==null?void 0:r.yy;if(!(o instanceof y))throw new Error("parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");w.debug(t),H(t,o)},"parse")},L=f((e,t,o,r)=>{const n=r.db,l=n.getConfig(),{rowHeight:a,paddingY:i,bitWidth:d,bitsPerRow:c}=l,p=n.getPacket(),s=n.getDiagramTitle(),h=a+i,b=h*(p.length+1)-(s?0:a),k=d*c+2,g=v(t);g.attr("viewbox",`0 0 ${k} ${b}`),P(g,b,k,l.useMaxWidth);for(const[$,B]of p.entries())M(g,B,$,l);g.append("text").text(s).attr("x",k/2).attr("y",b-h/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),M=f((e,t,o,{rowHeight:r,paddingX:n,paddingY:l,bitWidth:a,bitsPerRow:i,showBits:d})=>{const c=e.append("g"),p=o*(r+l)+l;for(const s of t){const h=s.start%i*a+1,b=(s.end-s.start+1)*a-n;if(c.append("rect").attr("x",h).attr("y",p).attr("width",b).attr("height",r).attr("class","packetBlock"),c.append("text").attr("x",h+b/2).attr("y",p+r/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(s.label),!d)continue;const k=s.end===s.start,g=p-2;c.append("text").attr("x",h+(k?b/2:0)).attr("y",g).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",k?"middle":"start").text(s.start),k||c.append("text").attr("x",h+b).attr("y",g).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(s.end)}},"drawWord"),q={draw:L},G={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},N=f(({packet:e}={})=>{const t=u(G,e);return`
|
2
2
|
.packetByte {
|
3
3
|
font-size: ${t.byteFontSize};
|
4
4
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import{p as k}from"./chunk-ANTBXLJU-
|
1
|
+
import{p as k}from"./chunk-ANTBXLJU-CD8Ya77t.js";import{_ as l,s as O,g as S,q as I,p as E,a as F,b as z,I as P,y as R,E as v,F as w,G as D,l as G,L as B}from"./mermaid-CUkYs7pX.js";import{p as _}from"./treemap-75Q7IDZK-BBbbCdps.js";import"./index-CQFSXxPp.js";import"./transform-B8bpuzxV.js";import"./timer-BwIYMJWC.js";import"./step-BwsUM5iJ.js";import"./_baseEach-DJPM6ZzY.js";import"./_baseUniq-CrXjB6JP.js";import"./min-Yuyj_o4k.js";import"./_baseMap-u5TY8JMW.js";import"./clone-yHYNh3QG.js";import"./_createAggregator-Cd0noqMc.js";var u={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},b={axes:[],curves:[],options:u},m=structuredClone(b),j=D.radar,V=l(()=>v({...j,...w().radar}),"getConfig"),C=l(()=>m.axes,"getAxes"),W=l(()=>m.curves,"getCurves"),q=l(()=>m.options,"getOptions"),H=l(e=>{m.axes=e.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),Z=l(e=>{m.curves=e.map(t=>({name:t.name,label:t.label??t.name,entries:J(t.entries)}))},"setCurves"),J=l(e=>{if(e[0].axis==null)return e.map(a=>a.value);const t=C();if(t.length===0)throw new Error("Axes must be populated before curves for reference entries");return t.map(a=>{const r=e.find(n=>{var s;return((s=n.axis)==null?void 0:s.$refText)===a.name});if(r===void 0)throw new Error("Missing entry for axis "+a.label);return r.value})},"computeCurveEntries"),$={getAxes:C,getCurves:W,getOptions:q,setAxes:H,setCurves:Z,setOptions:l(e=>{var a,r,n,s,o;const t=e.reduce((i,c)=>(i[c.name]=c,i),{});m.options={showLegend:((a=t.showLegend)==null?void 0:a.value)??u.showLegend,ticks:((r=t.ticks)==null?void 0:r.value)??u.ticks,max:((n=t.max)==null?void 0:n.value)??u.max,min:((s=t.min)==null?void 0:s.value)??u.min,graticule:((o=t.graticule)==null?void 0:o.value)??u.graticule}},"setOptions"),getConfig:V,clear:l(()=>{R(),m=structuredClone(b)},"clear"),setAccTitle:z,getAccTitle:F,setDiagramTitle:E,getDiagramTitle:I,getAccDescription:S,setAccDescription:O},K=l(e=>{k(e,$);const{axes:t,curves:a,options:r}=e;$.setAxes(t),$.setCurves(a),$.setOptions(r)},"populate"),N={parse:l(async e=>{const t=await _("radar",e);G.debug(t),K(t)},"parse")},Q=l((e,t,a,r)=>{const n=r.db,s=n.getAxes(),o=n.getCurves(),i=n.getOptions(),c=n.getConfig(),g=n.getDiagramTitle(),p=P(t),d=U(p,c),h=i.max??Math.max(...o.map(f=>Math.max(...f.entries))),y=i.min,x=Math.min(c.width,c.height)/2;X(d,s,x,i.ticks,i.graticule),Y(d,s,x,c),M(d,s,o,y,h,i.graticule,c),A(d,o,i.showLegend,c),d.append("text").attr("class","radarTitle").text(g).attr("x",0).attr("y",-c.height/2-c.marginTop)},"draw"),U=l((e,t)=>{const a=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,n=t.marginLeft+t.width/2,s=t.marginTop+t.height/2;return e.attr("viewbox",`0 0 ${a} ${r}`).attr("width",a).attr("height",r),e.append("g").attr("transform",`translate(${n}, ${s})`)},"drawFrame"),X=l((e,t,a,r,n)=>{if(n==="circle")for(let s=0;s<r;s++){const o=a*(s+1)/r;e.append("circle").attr("r",o).attr("class","radarGraticule")}else if(n==="polygon"){const s=t.length;for(let o=0;o<r;o++){const i=a*(o+1)/r,c=t.map((g,p)=>{const d=2*p*Math.PI/s-Math.PI/2;return`${i*Math.cos(d)},${i*Math.sin(d)}`}).join(" ");e.append("polygon").attr("points",c).attr("class","radarGraticule")}}},"drawGraticule"),Y=l((e,t,a,r)=>{const n=t.length;for(let s=0;s<n;s++){const o=t[s].label,i=2*s*Math.PI/n-Math.PI/2;e.append("line").attr("x1",0).attr("y1",0).attr("x2",a*r.axisScaleFactor*Math.cos(i)).attr("y2",a*r.axisScaleFactor*Math.sin(i)).attr("class","radarAxisLine"),e.append("text").text(o).attr("x",a*r.axisLabelFactor*Math.cos(i)).attr("y",a*r.axisLabelFactor*Math.sin(i)).attr("class","radarAxisLabel")}},"drawAxes");function M(e,t,a,r,n,s,o){const i=t.length,c=Math.min(o.width,o.height)/2;a.forEach((g,p)=>{if(g.entries.length!==i)return;const d=g.entries.map((h,y)=>{const x=2*Math.PI*y/i-Math.PI/2,f=L(h,r,n,c);return{x:f*Math.cos(x),y:f*Math.sin(x)}});s==="circle"?e.append("path").attr("d",T(d,o.curveTension)).attr("class",`radarCurve-${p}`):s==="polygon"&&e.append("polygon").attr("points",d.map(h=>`${h.x},${h.y}`).join(" ")).attr("class",`radarCurve-${p}`)})}function L(e,t,a,r){return r*(Math.min(Math.max(e,t),a)-t)/(a-t)}function T(e,t){const a=e.length;let r=`M${e[0].x},${e[0].y}`;for(let n=0;n<a;n++){const s=e[(n-1+a)%a],o=e[n],i=e[(n+1)%a],c=e[(n+2)%a],g={x:o.x+(i.x-s.x)*t,y:o.y+(i.y-s.y)*t},p={x:i.x-(c.x-o.x)*t,y:i.y-(c.y-o.y)*t};r+=` C${g.x},${g.y} ${p.x},${p.y} ${i.x},${i.y}`}return`${r} Z`}function A(e,t,a,r){if(!a)return;const n=3*(r.width/2+r.marginRight)/4,s=3*-(r.height/2+r.marginTop)/4;t.forEach((o,i)=>{const c=e.append("g").attr("transform",`translate(${n}, ${s+20*i})`);c.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${i}`),c.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(o.label)})}l(M,"drawCurves"),l(L,"relativeRadius"),l(T,"closedRoundCurve"),l(A,"drawLegend");var tt={draw:Q},at=l((e,t)=>{let a="";for(let r=0;r<e.THEME_COLOR_LIMIT;r++){const n=e[`cScale${r}`];a+=`
|
2
2
|
.radarCurve-${r} {
|
3
3
|
color: ${n};
|
4
4
|
fill: ${n};
|