@chrome-acp/proxy-server 1.0.13 → 1.0.14
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/server.d.ts.map +1 -1
- package/dist/server.js +33 -0
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
- package/public/assets/{architectureDiagram-VXUJARFQ-sCkIxoin.js → architectureDiagram-VXUJARFQ-wjPFzNar.js} +2 -2
- package/public/assets/{architectureDiagram-VXUJARFQ-sCkIxoin.js.map → architectureDiagram-VXUJARFQ-wjPFzNar.js.map} +1 -1
- package/public/assets/{blockDiagram-VD42YOAC-iT0EVpEs.js → blockDiagram-VD42YOAC-Bow3HM3P.js} +2 -2
- package/public/assets/{blockDiagram-VD42YOAC-iT0EVpEs.js.map → blockDiagram-VD42YOAC-Bow3HM3P.js.map} +1 -1
- package/public/assets/{c4Diagram-YG6GDRKO-FJvkcwxD.js → c4Diagram-YG6GDRKO-SQHtWv3g.js} +2 -2
- package/public/assets/{c4Diagram-YG6GDRKO-FJvkcwxD.js.map → c4Diagram-YG6GDRKO-SQHtWv3g.js.map} +1 -1
- package/public/assets/channel-pKLLLs1E.js +2 -0
- package/public/assets/{channel-CyLd3bNA.js.map → channel-pKLLLs1E.js.map} +1 -1
- package/public/assets/{chunk-ABZYJK2D-CNhdKuqi.js → chunk-ABZYJK2D-x9qEUFTA.js} +3 -3
- package/public/assets/{chunk-ABZYJK2D-CNhdKuqi.js.map → chunk-ABZYJK2D-x9qEUFTA.js.map} +1 -1
- package/public/assets/{chunk-ATLVNIR6-CbO2X_Tw.js → chunk-ATLVNIR6-D0SaqbxC.js} +2 -2
- package/public/assets/{chunk-ATLVNIR6-CbO2X_Tw.js.map → chunk-ATLVNIR6-D0SaqbxC.js.map} +1 -1
- package/public/assets/{chunk-B4BG7PRW-BaHtw4gW.js → chunk-B4BG7PRW-CSi9IqPy.js} +2 -2
- package/public/assets/{chunk-B4BG7PRW-BaHtw4gW.js.map → chunk-B4BG7PRW-CSi9IqPy.js.map} +1 -1
- package/public/assets/{chunk-DI55MBZ5-2htM0VVO.js → chunk-DI55MBZ5-CjGu8W9o.js} +2 -2
- package/public/assets/{chunk-DI55MBZ5-2htM0VVO.js.map → chunk-DI55MBZ5-CjGu8W9o.js.map} +1 -1
- package/public/assets/{chunk-EXTU4WIE-C_bM8CPH.js → chunk-EXTU4WIE-FY5Pwz_y.js} +2 -2
- package/public/assets/{chunk-EXTU4WIE-C_bM8CPH.js.map → chunk-EXTU4WIE-FY5Pwz_y.js.map} +1 -1
- package/public/assets/{chunk-JA3XYJ7Z-CGuln6zv.js → chunk-JA3XYJ7Z-BkoNu2jJ.js} +2 -2
- package/public/assets/{chunk-JA3XYJ7Z-CGuln6zv.js.map → chunk-JA3XYJ7Z-BkoNu2jJ.js.map} +1 -1
- package/public/assets/{chunk-JZLCHNYA-B8Ldycwo.js → chunk-JZLCHNYA-DC3nqPAp.js} +2 -2
- package/public/assets/{chunk-JZLCHNYA-B8Ldycwo.js.map → chunk-JZLCHNYA-DC3nqPAp.js.map} +1 -1
- package/public/assets/{chunk-N4CR4FBY-DAPshrUE.js → chunk-N4CR4FBY-B6bbaafi.js} +3 -3
- package/public/assets/{chunk-N4CR4FBY-DAPshrUE.js.map → chunk-N4CR4FBY-B6bbaafi.js.map} +1 -1
- package/public/assets/{chunk-QN33PNHL-BG2wK195.js → chunk-QN33PNHL-DKVBKRLD.js} +2 -2
- package/public/assets/{chunk-QN33PNHL-BG2wK195.js.map → chunk-QN33PNHL-DKVBKRLD.js.map} +1 -1
- package/public/assets/{chunk-QXUST7PY-BOQY0Xfy.js → chunk-QXUST7PY-CV4pkmTu.js} +2 -2
- package/public/assets/{chunk-QXUST7PY-BOQY0Xfy.js.map → chunk-QXUST7PY-CV4pkmTu.js.map} +1 -1
- package/public/assets/{chunk-S3R3BYOJ-lQHMbpG7.js → chunk-S3R3BYOJ-6YeBT-eZ.js} +2 -2
- package/public/assets/{chunk-S3R3BYOJ-lQHMbpG7.js.map → chunk-S3R3BYOJ-6YeBT-eZ.js.map} +1 -1
- package/public/assets/{chunk-TZMSLE5B-Ddu4HD6D.js → chunk-TZMSLE5B-CZ4oRZWD.js} +2 -2
- package/public/assets/{chunk-TZMSLE5B-Ddu4HD6D.js.map → chunk-TZMSLE5B-CZ4oRZWD.js.map} +1 -1
- package/public/assets/classDiagram-2ON5EDUG-D8v77MD7.js +2 -0
- package/public/assets/{classDiagram-2ON5EDUG-DXiWlO2N.js.map → classDiagram-2ON5EDUG-D8v77MD7.js.map} +1 -1
- package/public/assets/classDiagram-v2-WZHVMYZB-DrGCW_EL.js +2 -0
- package/public/assets/{classDiagram-v2-WZHVMYZB-CfVsna1C.js.map → classDiagram-v2-WZHVMYZB-DrGCW_EL.js.map} +1 -1
- package/public/assets/clone-cscKn85s.js +2 -0
- package/public/assets/{clone-BkO8YVlC.js.map → clone-cscKn85s.js.map} +1 -1
- package/public/assets/{code-block-IT6T5CEO-RwvK23k6.js → code-block-IT6T5CEO-Cir7lBBX.js} +2 -2
- package/public/assets/{code-block-IT6T5CEO-RwvK23k6.js.map → code-block-IT6T5CEO-Cir7lBBX.js.map} +1 -1
- package/public/assets/{dagre-6UL2VRFP-C9Ozm0MP.js → dagre-6UL2VRFP-CW0qvz_s.js} +2 -2
- package/public/assets/{dagre-6UL2VRFP-C9Ozm0MP.js.map → dagre-6UL2VRFP-CW0qvz_s.js.map} +1 -1
- package/public/assets/{dagre-Dt0NDwrT.js → dagre-Cl3mneui.js} +2 -2
- package/public/assets/{dagre-Dt0NDwrT.js.map → dagre-Cl3mneui.js.map} +1 -1
- package/public/assets/{diagram-PSM6KHXK-B-9CxbnI.js → diagram-PSM6KHXK-CsGot5qe.js} +2 -2
- package/public/assets/{diagram-PSM6KHXK-B-9CxbnI.js.map → diagram-PSM6KHXK-CsGot5qe.js.map} +1 -1
- package/public/assets/{diagram-QEK2KX5R-WcE69a1G.js → diagram-QEK2KX5R-Dk_Ips1R.js} +2 -2
- package/public/assets/{diagram-QEK2KX5R-WcE69a1G.js.map → diagram-QEK2KX5R-Dk_Ips1R.js.map} +1 -1
- package/public/assets/{diagram-S2PKOQOG-qTE7kYb8.js → diagram-S2PKOQOG-DVCkBYgt.js} +2 -2
- package/public/assets/{diagram-S2PKOQOG-qTE7kYb8.js.map → diagram-S2PKOQOG-DVCkBYgt.js.map} +1 -1
- package/public/assets/{erDiagram-Q2GNP2WA-CsrooKbE.js → erDiagram-Q2GNP2WA-CDMoNqWr.js} +2 -2
- package/public/assets/{erDiagram-Q2GNP2WA-CsrooKbE.js.map → erDiagram-Q2GNP2WA-CDMoNqWr.js.map} +1 -1
- package/public/assets/{flowDiagram-NV44I4VS-BGTyi6l5.js → flowDiagram-NV44I4VS-CRYIfhzR.js} +2 -2
- package/public/assets/{flowDiagram-NV44I4VS-BGTyi6l5.js.map → flowDiagram-NV44I4VS-CRYIfhzR.js.map} +1 -1
- package/public/assets/{ganttDiagram-JELNMOA3-DN7V6mNH.js → ganttDiagram-JELNMOA3-BbkuHdg9.js} +2 -2
- package/public/assets/{ganttDiagram-JELNMOA3-DN7V6mNH.js.map → ganttDiagram-JELNMOA3-BbkuHdg9.js.map} +1 -1
- package/public/assets/{gitGraphDiagram-NY62KEGX-DIySZYvd.js → gitGraphDiagram-NY62KEGX-o3Bg7nmx.js} +2 -2
- package/public/assets/{gitGraphDiagram-NY62KEGX-DIySZYvd.js.map → gitGraphDiagram-NY62KEGX-o3Bg7nmx.js.map} +1 -1
- package/public/assets/{graphlib-DTtyen5g.js → graphlib-CJzlAqCt.js} +2 -2
- package/public/assets/{graphlib-DTtyen5g.js.map → graphlib-CJzlAqCt.js.map} +1 -1
- package/public/assets/{infoDiagram-WHAUD3N6-Bv-GY92Y.js → infoDiagram-WHAUD3N6-BIutCfum.js} +2 -2
- package/public/assets/{infoDiagram-WHAUD3N6-Bv-GY92Y.js.map → infoDiagram-WHAUD3N6-BIutCfum.js.map} +1 -1
- package/public/assets/{journeyDiagram-XKPGCS4Q-DW6RNfq2.js → journeyDiagram-XKPGCS4Q-TLxotP0p.js} +2 -2
- package/public/assets/{journeyDiagram-XKPGCS4Q-DW6RNfq2.js.map → journeyDiagram-XKPGCS4Q-TLxotP0p.js.map} +1 -1
- package/public/assets/{kanban-definition-3W4ZIXB7-CWT846-C.js → kanban-definition-3W4ZIXB7-B_QHM6Sw.js} +2 -2
- package/public/assets/{kanban-definition-3W4ZIXB7-CWT846-C.js.map → kanban-definition-3W4ZIXB7-B_QHM6Sw.js.map} +1 -1
- package/public/assets/katex-Bnbp0kKK.js +1 -0
- package/public/assets/{line-B6Rb3qg4.js → line-B9W3o98k.js} +2 -2
- package/public/assets/{line-B6Rb3qg4.js.map → line-B9W3o98k.js.map} +1 -1
- package/public/assets/main-B0hyavHe.css +2 -0
- package/public/assets/{main-BMydeOxF.js → main-BxrWPNWG.js} +68 -68
- package/public/assets/main-BxrWPNWG.js.map +1 -0
- package/public/assets/{mermaid-VLURNSYL-ChlNLhSf.js → mermaid-VLURNSYL-Dwtbd3VO.js} +1 -1
- package/public/assets/{mermaid.core-RqJdZ0fi.js → mermaid.core-CpgIepIq.js} +4 -4
- package/public/assets/{mermaid.core-RqJdZ0fi.js.map → mermaid.core-CpgIepIq.js.map} +1 -1
- package/public/assets/{mindmap-definition-VGOIOE7T-N5RK9_nf.js → mindmap-definition-VGOIOE7T-BJ758uf4.js} +2 -2
- package/public/assets/{mindmap-definition-VGOIOE7T-N5RK9_nf.js.map → mindmap-definition-VGOIOE7T-BJ758uf4.js.map} +1 -1
- package/public/assets/{pieDiagram-ADFJNKIX-C3so7eY9.js → pieDiagram-ADFJNKIX-Dd8dtgHZ.js} +2 -2
- package/public/assets/{pieDiagram-ADFJNKIX-C3so7eY9.js.map → pieDiagram-ADFJNKIX-Dd8dtgHZ.js.map} +1 -1
- package/public/assets/{quadrantDiagram-AYHSOK5B-B9rusor8.js → quadrantDiagram-AYHSOK5B-DelknGes.js} +2 -2
- package/public/assets/{quadrantDiagram-AYHSOK5B-B9rusor8.js.map → quadrantDiagram-AYHSOK5B-DelknGes.js.map} +1 -1
- package/public/assets/{radix-C85A9-aH.js → radix-CyrXeX7S.js} +2 -2
- package/public/assets/{radix-C85A9-aH.js.map → radix-CyrXeX7S.js.map} +1 -1
- package/public/assets/{requirementDiagram-UZGBJVZJ-W_vTa6sR.js → requirementDiagram-UZGBJVZJ-CGCbxKd6.js} +2 -2
- package/public/assets/{requirementDiagram-UZGBJVZJ-W_vTa6sR.js.map → requirementDiagram-UZGBJVZJ-CGCbxKd6.js.map} +1 -1
- package/public/assets/{sankeyDiagram-TZEHDZUN-oekRPPoE.js → sankeyDiagram-TZEHDZUN-UOBpib_k.js} +2 -2
- package/public/assets/{sankeyDiagram-TZEHDZUN-oekRPPoE.js.map → sankeyDiagram-TZEHDZUN-UOBpib_k.js.map} +1 -1
- package/public/assets/{sequenceDiagram-WL72ISMW-Cln9cEgi.js → sequenceDiagram-WL72ISMW-BuIva0Lb.js} +2 -2
- package/public/assets/{sequenceDiagram-WL72ISMW-Cln9cEgi.js.map → sequenceDiagram-WL72ISMW-BuIva0Lb.js.map} +1 -1
- package/public/assets/{stateDiagram-FKZM4ZOC-DNskec5X.js → stateDiagram-FKZM4ZOC-DMM22UFw.js} +2 -2
- package/public/assets/{stateDiagram-FKZM4ZOC-DNskec5X.js.map → stateDiagram-FKZM4ZOC-DMM22UFw.js.map} +1 -1
- package/public/assets/stateDiagram-v2-4FDKWEC3-DoQv2RVT.js +2 -0
- package/public/assets/{stateDiagram-v2-4FDKWEC3-CHFN0nby.js.map → stateDiagram-v2-4FDKWEC3-DoQv2RVT.js.map} +1 -1
- package/public/assets/{timeline-definition-IT6M3QCI-Dc6yDbAi.js → timeline-definition-IT6M3QCI-BuulvLu6.js} +2 -2
- package/public/assets/{timeline-definition-IT6M3QCI-Dc6yDbAi.js.map → timeline-definition-IT6M3QCI-BuulvLu6.js.map} +1 -1
- package/public/assets/{xychartDiagram-PRI3JC2R-LVl4w1dh.js → xychartDiagram-PRI3JC2R-BNUCwm4v.js} +2 -2
- package/public/assets/{xychartDiagram-PRI3JC2R-LVl4w1dh.js.map → xychartDiagram-PRI3JC2R-BNUCwm4v.js.map} +1 -1
- package/public/index.html +3 -3
- package/public/assets/channel-CyLd3bNA.js +0 -2
- package/public/assets/classDiagram-2ON5EDUG-DXiWlO2N.js +0 -2
- package/public/assets/classDiagram-v2-WZHVMYZB-CfVsna1C.js +0 -2
- package/public/assets/clone-BkO8YVlC.js +0 -2
- package/public/assets/katex-DJMyQU16.js +0 -1
- package/public/assets/main-BMydeOxF.js.map +0 -1
- package/public/assets/main-CdjS9337.css +0 -2
- package/public/assets/stateDiagram-v2-4FDKWEC3-CHFN0nby.js +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"./shiki-BE3D5Aiv.js";import"./chunk-FPAJGGOC-C1aXi2xg.js";import"./chunk-O7ZBX7Z2-BeCHiDgv.js";import"./chunk-S6J4BHB3-CjyTXs6v.js";import"./chunk-LBM3YZW2-DZbzQVsb.js";import"./chunk-76Q3JFCE-B14S6aW0.js";import"./chunk-T53DSG4Q-DhrZo8eD.js";import"./chunk-LHMN2FUI-DqEW0ey0.js";import"./chunk-FWNWRKHM-Cgpg7KEB.js";import{g as e,h as t,p as n}from"./src-CK1-XQNk.js";import{B as r,C as i,U as a,_ as o,a as s,c,d as l,v as u,y as d,z as f}from"./chunk-ABZYJK2D-CNhdKuqi.js";import{t as p}from"./ordinal-B7gXVuJn.js";import{t as m}from"./defaultLocale-DeD9gjYL.js";import{i as h}from"./chunk-S3R3BYOJ-lQHMbpG7.js";import{t as g}from"./chunk-EXTU4WIE-C_bM8CPH.js";import"./dist-CINaey7q.js";import{t as _}from"./chunk-4BX2VUAB-D2wsGaeQ.js";import{t as v}from"./mermaid-parser.core-CIsAFS0G.js";import{t as y}from"./chunk-QN33PNHL-BG2wK195.js";import{i as b,n as x}from"./chunk-ATLVNIR6-CbO2X_Tw.js";function S(e){var t=0,n=e.children,r=n&&n.length;if(!r)t=1;else for(;--r>=0;)t+=n[r].value;e.value=t}function C(){return this.eachAfter(S)}function w(e,t){let n=-1;for(let r of this)e.call(t,r,++n,this);return this}function T(e,t){for(var n=this,r=[n],i,a,o=-1;n=r.pop();)if(e.call(t,n,++o,this),i=n.children)for(a=i.length-1;a>=0;--a)r.push(i[a]);return this}function E(e,t){for(var n=this,r=[n],i=[],a,o,s,c=-1;n=r.pop();)if(i.push(n),a=n.children)for(o=0,s=a.length;o<s;++o)r.push(a[o]);for(;n=i.pop();)e.call(t,n,++c,this);return this}function D(e,t){let n=-1;for(let r of this)if(e.call(t,r,++n,this))return r}function O(e){return this.eachAfter(function(t){for(var n=+e(t.data)||0,r=t.children,i=r&&r.length;--i>=0;)n+=r[i].value;t.value=n})}function k(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function A(e){for(var t=this,n=j(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var i=r.length;e!==n;)r.splice(i,0,e),e=e.parent;return r}function j(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),i=null;for(e=n.pop(),t=r.pop();e===t;)i=e,e=n.pop(),t=r.pop();return i}function M(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function N(){return Array.from(this)}function P(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function F(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*I(){var e=this,t,n=[e],r,i,a;do for(t=n.reverse(),n=[];e=t.pop();)if(yield e,r=e.children)for(i=0,a=r.length;i<a;++i)n.push(r[i]);while(n.length)}function L(e,t){e instanceof Map?(e=[void 0,e],t===void 0&&(t=B)):t===void 0&&(t=z);for(var n=new U(e),r,i=[n],a,o,s,c;r=i.pop();)if((o=t(r.data))&&(c=(o=Array.from(o)).length))for(r.children=o,s=c-1;s>=0;--s)i.push(a=o[s]=new U(o[s])),a.parent=r,a.depth=r.depth+1;return n.eachBefore(H)}function R(){return L(this).eachBefore(V)}function z(e){return e.children}function B(e){return Array.isArray(e)?e[1]:null}function V(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function H(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function U(e){this.data=e,this.depth=this.height=0,this.parent=null}U.prototype=L.prototype={constructor:U,count:C,each:w,eachAfter:E,eachBefore:T,find:D,sum:O,sort:k,path:A,ancestors:M,descendants:N,leaves:P,links:F,copy:R,[Symbol.iterator]:I};function W(e){if(typeof e!=`function`)throw Error();return e}function G(){return 0}function K(e){return function(){return e}}function q(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function J(e,t,n,r,i){for(var a=e.children,o,s=-1,c=a.length,l=e.value&&(r-t)/e.value;++s<c;)o=a[s],o.y0=n,o.y1=i,o.x0=t,o.x1=t+=o.value*l}function ee(e,t,n,r,i){for(var a=e.children,o,s=-1,c=a.length,l=e.value&&(i-n)/e.value;++s<c;)o=a[s],o.x0=t,o.x1=r,o.y0=n,o.y1=n+=o.value*l}var te=(1+Math.sqrt(5))/2;function ne(e,t,n,r,i,a){for(var o=[],s=t.children,c,l,u=0,d=0,f=s.length,p,m,h=t.value,g,_,v,y,b,x,S;u<f;){p=i-n,m=a-r;do g=s[d++].value;while(!g&&d<f);for(_=v=g,x=Math.max(m/p,p/m)/(h*e),S=g*g*x,b=Math.max(v/S,S/_);d<f;++d){if(g+=l=s[d].value,l<_&&(_=l),l>v&&(v=l),S=g*g*x,y=Math.max(v/S,S/_),y>b){g-=l;break}b=y}o.push(c={value:g,dice:p<m,children:s.slice(u,d)}),c.dice?J(c,n,r,i,h?r+=m*g/h:a):ee(c,n,r,h?n+=p*g/h:i,a),h-=g,u=d}return o}var re=(function e(t){function n(e,n,r,i,a){ne(t,e,n,r,i,a)}return n.ratio=function(t){return e((t=+t)>1?t:1)},n})(te);function ie(){var e=re,t=!1,n=1,r=1,i=[0],a=G,o=G,s=G,c=G,l=G;function u(e){return e.x0=e.y0=0,e.x1=n,e.y1=r,e.eachBefore(d),i=[0],t&&e.eachBefore(q),e}function d(t){var n=i[t.depth],r=t.x0+n,u=t.y0+n,d=t.x1-n,f=t.y1-n;d<r&&(r=d=(r+d)/2),f<u&&(u=f=(u+f)/2),t.x0=r,t.y0=u,t.x1=d,t.y1=f,t.children&&(n=i[t.depth+1]=a(t)/2,r+=l(t)-n,u+=o(t)-n,d-=s(t)-n,f-=c(t)-n,d<r&&(r=d=(r+d)/2),f<u&&(u=f=(u+f)/2),e(t,r,u,d,f))}return u.round=function(e){return arguments.length?(t=!!e,u):t},u.size=function(e){return arguments.length?(n=+e[0],r=+e[1],u):[n,r]},u.tile=function(t){return arguments.length?(e=W(t),u):e},u.padding=function(e){return arguments.length?u.paddingInner(e).paddingOuter(e):u.paddingInner()},u.paddingInner=function(e){return arguments.length?(a=typeof e==`function`?e:K(+e),u):a},u.paddingOuter=function(e){return arguments.length?u.paddingTop(e).paddingRight(e).paddingBottom(e).paddingLeft(e):u.paddingTop()},u.paddingTop=function(e){return arguments.length?(o=typeof e==`function`?e:K(+e),u):o},u.paddingRight=function(e){return arguments.length?(s=typeof e==`function`?e:K(+e),u):s},u.paddingBottom=function(e){return arguments.length?(c=typeof e==`function`?e:K(+e),u):c},u.paddingLeft=function(e){return arguments.length?(l=typeof e==`function`?e:K(+e),u):l},u}var Y=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=r,this.getAccTitle=u,this.setDiagramTitle=a,this.getDiagramTitle=i,this.getAccDescription=o,this.setAccDescription=f}static#e=t(this,`TreeMapDB`);getNodes(){return this.nodes}getConfig(){let e=l,t=d();return h({...e.treemap,...t.treemap??{}})}addNode(e,t){this.nodes.push(e),this.levels.set(e,t),t===0&&(this.outerNodes.push(e),this.root??=e)}getRoot(){return{name:``,children:this.outerNodes}}addClass(e,t){let n=this.classes.get(e)??{id:e,styles:[],textStyles:[]},r=t.replace(/\\,/g,`§§§`).replace(/,/g,`;`).replace(/§§§/g,`,`).split(`;`);r&&r.forEach(e=>{x(e)&&(n?.textStyles?n.textStyles.push(e):n.textStyles=[e]),n?.styles?n.styles.push(e):n.styles=[e]}),this.classes.set(e,n)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){s(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};function X(e){if(!e.length)return[];let t=[],n=[];return e.forEach(e=>{let r={name:e.name,children:e.type===`Leaf`?void 0:[]};for(r.classSelector=e?.classSelector,e?.cssCompiledStyles&&(r.cssCompiledStyles=[e.cssCompiledStyles]),e.type===`Leaf`&&e.value!==void 0&&(r.value=e.value);n.length>0&&n[n.length-1].level>=e.level;)n.pop();if(n.length===0)t.push(r);else{let e=n[n.length-1].node;e.children?e.children.push(r):e.children=[r]}e.type!==`Leaf`&&n.push({node:r,level:e.level})}),t}t(X,`buildHierarchy`);var ae=t((e,n)=>{_(e,n);let r=[];for(let t of e.TreemapRows??[])t.$type===`ClassDefStatement`&&n.addClass(t.className??``,t.styleText??``);for(let t of e.TreemapRows??[]){let e=t.item;if(!e)continue;let i=t.indent?parseInt(t.indent):0,a=oe(e),o=e.classSelector?n.getStylesForClass(e.classSelector):[],s=o.length>0?o.join(`;`):void 0,c={level:i,name:a,type:e.$type,value:e.value,classSelector:e.classSelector,cssCompiledStyles:s};r.push(c)}let i=X(r),a=t((e,t)=>{for(let r of e)n.addNode(r,t),r.children&&r.children.length>0&&a(r.children,t+1)},`addNodesRecursively`);a(i,0)},`populate`),oe=t(e=>e.name?String(e.name):``,`getItemName`),Z={parser:{yy:void 0},parse:t(async t=>{try{let n=await v(`treemap`,t);e.debug(`Treemap AST:`,n);let r=Z.parser?.yy;if(!(r instanceof Y))throw 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.`);ae(n,r)}catch(t){throw e.error(`Error parsing treemap:`,t),t}},`parse`)},se=10,Q=10,$=25,ce={draw:t((r,i,a,o)=>{let s=o.db,l=s.getConfig(),u=l.padding??se,f=s.getDiagramTitle(),h=s.getRoot(),{themeVariables:_}=d();if(!h)return;let v=f?30:0,x=g(i),S=l.nodeWidth?l.nodeWidth*Q:960,C=l.nodeHeight?l.nodeHeight*Q:500,w=S,T=C+v;x.attr(`viewBox`,`0 0 ${w} ${T}`),c(x,T,w,l.useMaxWidth);let E;try{let e=l.valueFormat||`,`;if(e===`$0,0`)E=t(e=>`$`+m(`,`)(e),`valueFormat`);else if(e.startsWith(`$`)&&e.includes(`,`)){let n=/\.\d+/.exec(e),r=n?n[0]:``;E=t(e=>`$`+m(`,`+r)(e),`valueFormat`)}else if(e.startsWith(`$`)){let n=e.substring(1);E=t(e=>`$`+m(n||``)(e),`valueFormat`)}else E=m(e)}catch(t){e.error(`Error creating format function:`,t),E=m(`,`)}let D=p().range([`transparent`,_.cScale0,_.cScale1,_.cScale2,_.cScale3,_.cScale4,_.cScale5,_.cScale6,_.cScale7,_.cScale8,_.cScale9,_.cScale10,_.cScale11]),O=p().range([`transparent`,_.cScalePeer0,_.cScalePeer1,_.cScalePeer2,_.cScalePeer3,_.cScalePeer4,_.cScalePeer5,_.cScalePeer6,_.cScalePeer7,_.cScalePeer8,_.cScalePeer9,_.cScalePeer10,_.cScalePeer11]),k=p().range([_.cScaleLabel0,_.cScaleLabel1,_.cScaleLabel2,_.cScaleLabel3,_.cScaleLabel4,_.cScaleLabel5,_.cScaleLabel6,_.cScaleLabel7,_.cScaleLabel8,_.cScaleLabel9,_.cScaleLabel10,_.cScaleLabel11]);f&&x.append(`text`).attr(`x`,w/2).attr(`y`,v/2).attr(`class`,`treemapTitle`).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).text(f);let A=x.append(`g`).attr(`transform`,`translate(0, ${v})`).attr(`class`,`treemapContainer`),j=L(h).sum(e=>e.value??0).sort((e,t)=>(t.value??0)-(e.value??0)),M=ie().size([S,C]).paddingTop(e=>e.children&&e.children.length>0?$+Q:0).paddingInner(u).paddingLeft(e=>e.children&&e.children.length>0?Q:0).paddingRight(e=>e.children&&e.children.length>0?Q:0).paddingBottom(e=>e.children&&e.children.length>0?Q:0).round(!0)(j),N=M.descendants().filter(e=>e.children&&e.children.length>0),P=A.selectAll(`.treemapSection`).data(N).enter().append(`g`).attr(`class`,`treemapSection`).attr(`transform`,e=>`translate(${e.x0},${e.y0})`);P.append(`rect`).attr(`width`,e=>e.x1-e.x0).attr(`height`,$).attr(`class`,`treemapSectionHeader`).attr(`fill`,`none`).attr(`fill-opacity`,.6).attr(`stroke-width`,.6).attr(`style`,e=>e.depth===0?`display: none;`:``),P.append(`clipPath`).attr(`id`,(e,t)=>`clip-section-${i}-${t}`).append(`rect`).attr(`width`,e=>Math.max(0,e.x1-e.x0-12)).attr(`height`,$),P.append(`rect`).attr(`width`,e=>e.x1-e.x0).attr(`height`,e=>e.y1-e.y0).attr(`class`,(e,t)=>`treemapSection section${t}`).attr(`fill`,e=>D(e.data.name)).attr(`fill-opacity`,.6).attr(`stroke`,e=>O(e.data.name)).attr(`stroke-width`,2).attr(`stroke-opacity`,.4).attr(`style`,e=>{if(e.depth===0)return`display: none;`;let t=b({cssCompiledStyles:e.data.cssCompiledStyles});return t.nodeStyles+`;`+t.borderStyles.join(`;`)}),P.append(`text`).attr(`class`,`treemapSectionLabel`).attr(`x`,6).attr(`y`,$/2).attr(`dominant-baseline`,`middle`).text(e=>e.depth===0?``:e.data.name).attr(`font-weight`,`bold`).attr(`style`,e=>e.depth===0?`display: none;`:`dominant-baseline: middle; font-size: 12px; fill:`+k(e.data.name)+`; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;`+b({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`)).each(function(e){if(e.depth===0)return;let t=n(this),r=e.data.name;t.text(r);let i=e.x1-e.x0,a;a=l.showValues!==!1&&e.value?i-10-30-10-6:i-6-6;let o=Math.max(15,a),s=t.node();if(s.getComputedTextLength()>o){let e=r;for(;e.length>0;){if(e=r.substring(0,e.length-1),e.length===0){t.text(`...`),s.getComputedTextLength()>o&&t.text(``);break}if(t.text(e+`...`),s.getComputedTextLength()<=o)break}}}),l.showValues!==!1&&P.append(`text`).attr(`class`,`treemapSectionValue`).attr(`x`,e=>e.x1-e.x0-10).attr(`y`,$/2).attr(`text-anchor`,`end`).attr(`dominant-baseline`,`middle`).text(e=>e.value?E(e.value):``).attr(`font-style`,`italic`).attr(`style`,e=>e.depth===0?`display: none;`:`text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:`+k(e.data.name)+`; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;`+b({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`));let F=M.leaves(),I=A.selectAll(`.treemapLeafGroup`).data(F).enter().append(`g`).attr(`class`,(e,t)=>`treemapNode treemapLeafGroup leaf${t}${e.data.classSelector?` ${e.data.classSelector}`:``}x`).attr(`transform`,e=>`translate(${e.x0},${e.y0})`);I.append(`rect`).attr(`width`,e=>e.x1-e.x0).attr(`height`,e=>e.y1-e.y0).attr(`class`,`treemapLeaf`).attr(`fill`,e=>e.parent?D(e.parent.data.name):D(e.data.name)).attr(`style`,e=>b({cssCompiledStyles:e.data.cssCompiledStyles}).nodeStyles).attr(`fill-opacity`,.3).attr(`stroke`,e=>e.parent?D(e.parent.data.name):D(e.data.name)).attr(`stroke-width`,3),I.append(`clipPath`).attr(`id`,(e,t)=>`clip-${i}-${t}`).append(`rect`).attr(`width`,e=>Math.max(0,e.x1-e.x0-4)).attr(`height`,e=>Math.max(0,e.y1-e.y0-4)),I.append(`text`).attr(`class`,`treemapLabel`).attr(`x`,e=>(e.x1-e.x0)/2).attr(`y`,e=>(e.y1-e.y0)/2).attr(`style`,e=>`text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:`+k(e.data.name)+`;`+b({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`)).attr(`clip-path`,(e,t)=>`url(#clip-${i}-${t})`).text(e=>e.data.name).each(function(e){let t=n(this),r=e.x1-e.x0,i=e.y1-e.y0,a=t.node(),o=r-8,s=i-8;if(o<10||s<10){t.style(`display`,`none`);return}let c=parseInt(t.style(`font-size`),10),l=.6;for(;a.getComputedTextLength()>o&&c>8;)c--,t.style(`font-size`,`${c}px`);let u=Math.max(6,Math.min(28,Math.round(c*l))),d=c+2+u;for(;d>s&&c>8&&(c--,u=Math.max(6,Math.min(28,Math.round(c*l))),!(u<6&&c===8));)t.style(`font-size`,`${c}px`),d=c+2+u;t.style(`font-size`,`${c}px`),(a.getComputedTextLength()>o||c<8||s<c)&&t.style(`display`,`none`)}),l.showValues!==!1&&I.append(`text`).attr(`class`,`treemapValue`).attr(`x`,e=>(e.x1-e.x0)/2).attr(`y`,function(e){return(e.y1-e.y0)/2}).attr(`style`,e=>`text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:`+k(e.data.name)+`;`+b({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`)).attr(`clip-path`,(e,t)=>`url(#clip-${i}-${t})`).text(e=>e.value?E(e.value):``).each(function(e){let t=n(this),r=this.parentNode;if(!r){t.style(`display`,`none`);return}let i=n(r).select(`.treemapLabel`);if(i.empty()||i.style(`display`)===`none`){t.style(`display`,`none`);return}let a=parseFloat(i.style(`font-size`)),o=Math.max(6,Math.min(28,Math.round(a*.6)));t.style(`font-size`,`${o}px`);let s=(e.y1-e.y0)/2+a/2+2;t.attr(`y`,s);let c=e.x1-e.x0,l=e.y1-e.y0-4,u=c-8;t.node().getComputedTextLength()>u||s+o>l||o<6?t.style(`display`,`none`):t.style(`display`,null)}),y(x,l.diagramPadding??8,`flowchart`,l?.useMaxWidth||!1)},`draw`),getClasses:t(function(e,t){return t.db.getClasses()},`getClasses`)},le={sectionStrokeColor:`black`,sectionStrokeWidth:`1`,sectionFillColor:`#efefef`,leafStrokeColor:`black`,leafStrokeWidth:`1`,leafFillColor:`#efefef`,labelColor:`black`,labelFontSize:`12px`,valueFontSize:`10px`,valueColor:`black`,titleColor:`black`,titleFontSize:`14px`},ue={parser:Z,get db(){return new Y},renderer:ce,styles:t(({treemap:e}={})=>{let t=h(le,e);return`
|
|
1
|
+
import"./shiki-BE3D5Aiv.js";import"./chunk-FPAJGGOC-C1aXi2xg.js";import"./chunk-O7ZBX7Z2-BeCHiDgv.js";import"./chunk-S6J4BHB3-CjyTXs6v.js";import"./chunk-LBM3YZW2-DZbzQVsb.js";import"./chunk-76Q3JFCE-B14S6aW0.js";import"./chunk-T53DSG4Q-DhrZo8eD.js";import"./chunk-LHMN2FUI-DqEW0ey0.js";import"./chunk-FWNWRKHM-Cgpg7KEB.js";import{g as e,h as t,p as n}from"./src-CK1-XQNk.js";import{B as r,C as i,U as a,_ as o,a as s,c,d as l,v as u,y as d,z as f}from"./chunk-ABZYJK2D-x9qEUFTA.js";import{t as p}from"./ordinal-B7gXVuJn.js";import{t as m}from"./defaultLocale-DeD9gjYL.js";import{i as h}from"./chunk-S3R3BYOJ-6YeBT-eZ.js";import{t as g}from"./chunk-EXTU4WIE-FY5Pwz_y.js";import"./dist-CINaey7q.js";import{t as _}from"./chunk-4BX2VUAB-D2wsGaeQ.js";import{t as v}from"./mermaid-parser.core-CIsAFS0G.js";import{t as y}from"./chunk-QN33PNHL-DKVBKRLD.js";import{i as b,n as x}from"./chunk-ATLVNIR6-D0SaqbxC.js";function S(e){var t=0,n=e.children,r=n&&n.length;if(!r)t=1;else for(;--r>=0;)t+=n[r].value;e.value=t}function C(){return this.eachAfter(S)}function w(e,t){let n=-1;for(let r of this)e.call(t,r,++n,this);return this}function T(e,t){for(var n=this,r=[n],i,a,o=-1;n=r.pop();)if(e.call(t,n,++o,this),i=n.children)for(a=i.length-1;a>=0;--a)r.push(i[a]);return this}function E(e,t){for(var n=this,r=[n],i=[],a,o,s,c=-1;n=r.pop();)if(i.push(n),a=n.children)for(o=0,s=a.length;o<s;++o)r.push(a[o]);for(;n=i.pop();)e.call(t,n,++c,this);return this}function D(e,t){let n=-1;for(let r of this)if(e.call(t,r,++n,this))return r}function O(e){return this.eachAfter(function(t){for(var n=+e(t.data)||0,r=t.children,i=r&&r.length;--i>=0;)n+=r[i].value;t.value=n})}function k(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function A(e){for(var t=this,n=j(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var i=r.length;e!==n;)r.splice(i,0,e),e=e.parent;return r}function j(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),i=null;for(e=n.pop(),t=r.pop();e===t;)i=e,e=n.pop(),t=r.pop();return i}function M(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function N(){return Array.from(this)}function P(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function F(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*I(){var e=this,t,n=[e],r,i,a;do for(t=n.reverse(),n=[];e=t.pop();)if(yield e,r=e.children)for(i=0,a=r.length;i<a;++i)n.push(r[i]);while(n.length)}function L(e,t){e instanceof Map?(e=[void 0,e],t===void 0&&(t=B)):t===void 0&&(t=z);for(var n=new U(e),r,i=[n],a,o,s,c;r=i.pop();)if((o=t(r.data))&&(c=(o=Array.from(o)).length))for(r.children=o,s=c-1;s>=0;--s)i.push(a=o[s]=new U(o[s])),a.parent=r,a.depth=r.depth+1;return n.eachBefore(H)}function R(){return L(this).eachBefore(V)}function z(e){return e.children}function B(e){return Array.isArray(e)?e[1]:null}function V(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function H(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function U(e){this.data=e,this.depth=this.height=0,this.parent=null}U.prototype=L.prototype={constructor:U,count:C,each:w,eachAfter:E,eachBefore:T,find:D,sum:O,sort:k,path:A,ancestors:M,descendants:N,leaves:P,links:F,copy:R,[Symbol.iterator]:I};function W(e){if(typeof e!=`function`)throw Error();return e}function G(){return 0}function K(e){return function(){return e}}function q(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function J(e,t,n,r,i){for(var a=e.children,o,s=-1,c=a.length,l=e.value&&(r-t)/e.value;++s<c;)o=a[s],o.y0=n,o.y1=i,o.x0=t,o.x1=t+=o.value*l}function ee(e,t,n,r,i){for(var a=e.children,o,s=-1,c=a.length,l=e.value&&(i-n)/e.value;++s<c;)o=a[s],o.x0=t,o.x1=r,o.y0=n,o.y1=n+=o.value*l}var te=(1+Math.sqrt(5))/2;function ne(e,t,n,r,i,a){for(var o=[],s=t.children,c,l,u=0,d=0,f=s.length,p,m,h=t.value,g,_,v,y,b,x,S;u<f;){p=i-n,m=a-r;do g=s[d++].value;while(!g&&d<f);for(_=v=g,x=Math.max(m/p,p/m)/(h*e),S=g*g*x,b=Math.max(v/S,S/_);d<f;++d){if(g+=l=s[d].value,l<_&&(_=l),l>v&&(v=l),S=g*g*x,y=Math.max(v/S,S/_),y>b){g-=l;break}b=y}o.push(c={value:g,dice:p<m,children:s.slice(u,d)}),c.dice?J(c,n,r,i,h?r+=m*g/h:a):ee(c,n,r,h?n+=p*g/h:i,a),h-=g,u=d}return o}var re=(function e(t){function n(e,n,r,i,a){ne(t,e,n,r,i,a)}return n.ratio=function(t){return e((t=+t)>1?t:1)},n})(te);function ie(){var e=re,t=!1,n=1,r=1,i=[0],a=G,o=G,s=G,c=G,l=G;function u(e){return e.x0=e.y0=0,e.x1=n,e.y1=r,e.eachBefore(d),i=[0],t&&e.eachBefore(q),e}function d(t){var n=i[t.depth],r=t.x0+n,u=t.y0+n,d=t.x1-n,f=t.y1-n;d<r&&(r=d=(r+d)/2),f<u&&(u=f=(u+f)/2),t.x0=r,t.y0=u,t.x1=d,t.y1=f,t.children&&(n=i[t.depth+1]=a(t)/2,r+=l(t)-n,u+=o(t)-n,d-=s(t)-n,f-=c(t)-n,d<r&&(r=d=(r+d)/2),f<u&&(u=f=(u+f)/2),e(t,r,u,d,f))}return u.round=function(e){return arguments.length?(t=!!e,u):t},u.size=function(e){return arguments.length?(n=+e[0],r=+e[1],u):[n,r]},u.tile=function(t){return arguments.length?(e=W(t),u):e},u.padding=function(e){return arguments.length?u.paddingInner(e).paddingOuter(e):u.paddingInner()},u.paddingInner=function(e){return arguments.length?(a=typeof e==`function`?e:K(+e),u):a},u.paddingOuter=function(e){return arguments.length?u.paddingTop(e).paddingRight(e).paddingBottom(e).paddingLeft(e):u.paddingTop()},u.paddingTop=function(e){return arguments.length?(o=typeof e==`function`?e:K(+e),u):o},u.paddingRight=function(e){return arguments.length?(s=typeof e==`function`?e:K(+e),u):s},u.paddingBottom=function(e){return arguments.length?(c=typeof e==`function`?e:K(+e),u):c},u.paddingLeft=function(e){return arguments.length?(l=typeof e==`function`?e:K(+e),u):l},u}var Y=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=r,this.getAccTitle=u,this.setDiagramTitle=a,this.getDiagramTitle=i,this.getAccDescription=o,this.setAccDescription=f}static#e=t(this,`TreeMapDB`);getNodes(){return this.nodes}getConfig(){let e=l,t=d();return h({...e.treemap,...t.treemap??{}})}addNode(e,t){this.nodes.push(e),this.levels.set(e,t),t===0&&(this.outerNodes.push(e),this.root??=e)}getRoot(){return{name:``,children:this.outerNodes}}addClass(e,t){let n=this.classes.get(e)??{id:e,styles:[],textStyles:[]},r=t.replace(/\\,/g,`§§§`).replace(/,/g,`;`).replace(/§§§/g,`,`).split(`;`);r&&r.forEach(e=>{x(e)&&(n?.textStyles?n.textStyles.push(e):n.textStyles=[e]),n?.styles?n.styles.push(e):n.styles=[e]}),this.classes.set(e,n)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){s(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};function X(e){if(!e.length)return[];let t=[],n=[];return e.forEach(e=>{let r={name:e.name,children:e.type===`Leaf`?void 0:[]};for(r.classSelector=e?.classSelector,e?.cssCompiledStyles&&(r.cssCompiledStyles=[e.cssCompiledStyles]),e.type===`Leaf`&&e.value!==void 0&&(r.value=e.value);n.length>0&&n[n.length-1].level>=e.level;)n.pop();if(n.length===0)t.push(r);else{let e=n[n.length-1].node;e.children?e.children.push(r):e.children=[r]}e.type!==`Leaf`&&n.push({node:r,level:e.level})}),t}t(X,`buildHierarchy`);var ae=t((e,n)=>{_(e,n);let r=[];for(let t of e.TreemapRows??[])t.$type===`ClassDefStatement`&&n.addClass(t.className??``,t.styleText??``);for(let t of e.TreemapRows??[]){let e=t.item;if(!e)continue;let i=t.indent?parseInt(t.indent):0,a=oe(e),o=e.classSelector?n.getStylesForClass(e.classSelector):[],s=o.length>0?o.join(`;`):void 0,c={level:i,name:a,type:e.$type,value:e.value,classSelector:e.classSelector,cssCompiledStyles:s};r.push(c)}let i=X(r),a=t((e,t)=>{for(let r of e)n.addNode(r,t),r.children&&r.children.length>0&&a(r.children,t+1)},`addNodesRecursively`);a(i,0)},`populate`),oe=t(e=>e.name?String(e.name):``,`getItemName`),Z={parser:{yy:void 0},parse:t(async t=>{try{let n=await v(`treemap`,t);e.debug(`Treemap AST:`,n);let r=Z.parser?.yy;if(!(r instanceof Y))throw 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.`);ae(n,r)}catch(t){throw e.error(`Error parsing treemap:`,t),t}},`parse`)},se=10,Q=10,$=25,ce={draw:t((r,i,a,o)=>{let s=o.db,l=s.getConfig(),u=l.padding??se,f=s.getDiagramTitle(),h=s.getRoot(),{themeVariables:_}=d();if(!h)return;let v=f?30:0,x=g(i),S=l.nodeWidth?l.nodeWidth*Q:960,C=l.nodeHeight?l.nodeHeight*Q:500,w=S,T=C+v;x.attr(`viewBox`,`0 0 ${w} ${T}`),c(x,T,w,l.useMaxWidth);let E;try{let e=l.valueFormat||`,`;if(e===`$0,0`)E=t(e=>`$`+m(`,`)(e),`valueFormat`);else if(e.startsWith(`$`)&&e.includes(`,`)){let n=/\.\d+/.exec(e),r=n?n[0]:``;E=t(e=>`$`+m(`,`+r)(e),`valueFormat`)}else if(e.startsWith(`$`)){let n=e.substring(1);E=t(e=>`$`+m(n||``)(e),`valueFormat`)}else E=m(e)}catch(t){e.error(`Error creating format function:`,t),E=m(`,`)}let D=p().range([`transparent`,_.cScale0,_.cScale1,_.cScale2,_.cScale3,_.cScale4,_.cScale5,_.cScale6,_.cScale7,_.cScale8,_.cScale9,_.cScale10,_.cScale11]),O=p().range([`transparent`,_.cScalePeer0,_.cScalePeer1,_.cScalePeer2,_.cScalePeer3,_.cScalePeer4,_.cScalePeer5,_.cScalePeer6,_.cScalePeer7,_.cScalePeer8,_.cScalePeer9,_.cScalePeer10,_.cScalePeer11]),k=p().range([_.cScaleLabel0,_.cScaleLabel1,_.cScaleLabel2,_.cScaleLabel3,_.cScaleLabel4,_.cScaleLabel5,_.cScaleLabel6,_.cScaleLabel7,_.cScaleLabel8,_.cScaleLabel9,_.cScaleLabel10,_.cScaleLabel11]);f&&x.append(`text`).attr(`x`,w/2).attr(`y`,v/2).attr(`class`,`treemapTitle`).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).text(f);let A=x.append(`g`).attr(`transform`,`translate(0, ${v})`).attr(`class`,`treemapContainer`),j=L(h).sum(e=>e.value??0).sort((e,t)=>(t.value??0)-(e.value??0)),M=ie().size([S,C]).paddingTop(e=>e.children&&e.children.length>0?$+Q:0).paddingInner(u).paddingLeft(e=>e.children&&e.children.length>0?Q:0).paddingRight(e=>e.children&&e.children.length>0?Q:0).paddingBottom(e=>e.children&&e.children.length>0?Q:0).round(!0)(j),N=M.descendants().filter(e=>e.children&&e.children.length>0),P=A.selectAll(`.treemapSection`).data(N).enter().append(`g`).attr(`class`,`treemapSection`).attr(`transform`,e=>`translate(${e.x0},${e.y0})`);P.append(`rect`).attr(`width`,e=>e.x1-e.x0).attr(`height`,$).attr(`class`,`treemapSectionHeader`).attr(`fill`,`none`).attr(`fill-opacity`,.6).attr(`stroke-width`,.6).attr(`style`,e=>e.depth===0?`display: none;`:``),P.append(`clipPath`).attr(`id`,(e,t)=>`clip-section-${i}-${t}`).append(`rect`).attr(`width`,e=>Math.max(0,e.x1-e.x0-12)).attr(`height`,$),P.append(`rect`).attr(`width`,e=>e.x1-e.x0).attr(`height`,e=>e.y1-e.y0).attr(`class`,(e,t)=>`treemapSection section${t}`).attr(`fill`,e=>D(e.data.name)).attr(`fill-opacity`,.6).attr(`stroke`,e=>O(e.data.name)).attr(`stroke-width`,2).attr(`stroke-opacity`,.4).attr(`style`,e=>{if(e.depth===0)return`display: none;`;let t=b({cssCompiledStyles:e.data.cssCompiledStyles});return t.nodeStyles+`;`+t.borderStyles.join(`;`)}),P.append(`text`).attr(`class`,`treemapSectionLabel`).attr(`x`,6).attr(`y`,$/2).attr(`dominant-baseline`,`middle`).text(e=>e.depth===0?``:e.data.name).attr(`font-weight`,`bold`).attr(`style`,e=>e.depth===0?`display: none;`:`dominant-baseline: middle; font-size: 12px; fill:`+k(e.data.name)+`; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;`+b({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`)).each(function(e){if(e.depth===0)return;let t=n(this),r=e.data.name;t.text(r);let i=e.x1-e.x0,a;a=l.showValues!==!1&&e.value?i-10-30-10-6:i-6-6;let o=Math.max(15,a),s=t.node();if(s.getComputedTextLength()>o){let e=r;for(;e.length>0;){if(e=r.substring(0,e.length-1),e.length===0){t.text(`...`),s.getComputedTextLength()>o&&t.text(``);break}if(t.text(e+`...`),s.getComputedTextLength()<=o)break}}}),l.showValues!==!1&&P.append(`text`).attr(`class`,`treemapSectionValue`).attr(`x`,e=>e.x1-e.x0-10).attr(`y`,$/2).attr(`text-anchor`,`end`).attr(`dominant-baseline`,`middle`).text(e=>e.value?E(e.value):``).attr(`font-style`,`italic`).attr(`style`,e=>e.depth===0?`display: none;`:`text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:`+k(e.data.name)+`; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;`+b({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`));let F=M.leaves(),I=A.selectAll(`.treemapLeafGroup`).data(F).enter().append(`g`).attr(`class`,(e,t)=>`treemapNode treemapLeafGroup leaf${t}${e.data.classSelector?` ${e.data.classSelector}`:``}x`).attr(`transform`,e=>`translate(${e.x0},${e.y0})`);I.append(`rect`).attr(`width`,e=>e.x1-e.x0).attr(`height`,e=>e.y1-e.y0).attr(`class`,`treemapLeaf`).attr(`fill`,e=>e.parent?D(e.parent.data.name):D(e.data.name)).attr(`style`,e=>b({cssCompiledStyles:e.data.cssCompiledStyles}).nodeStyles).attr(`fill-opacity`,.3).attr(`stroke`,e=>e.parent?D(e.parent.data.name):D(e.data.name)).attr(`stroke-width`,3),I.append(`clipPath`).attr(`id`,(e,t)=>`clip-${i}-${t}`).append(`rect`).attr(`width`,e=>Math.max(0,e.x1-e.x0-4)).attr(`height`,e=>Math.max(0,e.y1-e.y0-4)),I.append(`text`).attr(`class`,`treemapLabel`).attr(`x`,e=>(e.x1-e.x0)/2).attr(`y`,e=>(e.y1-e.y0)/2).attr(`style`,e=>`text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:`+k(e.data.name)+`;`+b({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`)).attr(`clip-path`,(e,t)=>`url(#clip-${i}-${t})`).text(e=>e.data.name).each(function(e){let t=n(this),r=e.x1-e.x0,i=e.y1-e.y0,a=t.node(),o=r-8,s=i-8;if(o<10||s<10){t.style(`display`,`none`);return}let c=parseInt(t.style(`font-size`),10),l=.6;for(;a.getComputedTextLength()>o&&c>8;)c--,t.style(`font-size`,`${c}px`);let u=Math.max(6,Math.min(28,Math.round(c*l))),d=c+2+u;for(;d>s&&c>8&&(c--,u=Math.max(6,Math.min(28,Math.round(c*l))),!(u<6&&c===8));)t.style(`font-size`,`${c}px`),d=c+2+u;t.style(`font-size`,`${c}px`),(a.getComputedTextLength()>o||c<8||s<c)&&t.style(`display`,`none`)}),l.showValues!==!1&&I.append(`text`).attr(`class`,`treemapValue`).attr(`x`,e=>(e.x1-e.x0)/2).attr(`y`,function(e){return(e.y1-e.y0)/2}).attr(`style`,e=>`text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:`+k(e.data.name)+`;`+b({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`)).attr(`clip-path`,(e,t)=>`url(#clip-${i}-${t})`).text(e=>e.value?E(e.value):``).each(function(e){let t=n(this),r=this.parentNode;if(!r){t.style(`display`,`none`);return}let i=n(r).select(`.treemapLabel`);if(i.empty()||i.style(`display`)===`none`){t.style(`display`,`none`);return}let a=parseFloat(i.style(`font-size`)),o=Math.max(6,Math.min(28,Math.round(a*.6)));t.style(`font-size`,`${o}px`);let s=(e.y1-e.y0)/2+a/2+2;t.attr(`y`,s);let c=e.x1-e.x0,l=e.y1-e.y0-4,u=c-8;t.node().getComputedTextLength()>u||s+o>l||o<6?t.style(`display`,`none`):t.style(`display`,null)}),y(x,l.diagramPadding??8,`flowchart`,l?.useMaxWidth||!1)},`draw`),getClasses:t(function(e,t){return t.db.getClasses()},`getClasses`)},le={sectionStrokeColor:`black`,sectionStrokeWidth:`1`,sectionFillColor:`#efefef`,leafStrokeColor:`black`,leafStrokeWidth:`1`,leafFillColor:`#efefef`,labelColor:`black`,labelFontSize:`12px`,valueFontSize:`10px`,valueColor:`black`,titleColor:`black`,titleFontSize:`14px`},ue={parser:Z,get db(){return new Y},renderer:ce,styles:t(({treemap:e}={})=>{let t=h(le,e);return`
|
|
2
2
|
.treemapNode.section {
|
|
3
3
|
stroke: ${t.sectionStrokeColor};
|
|
4
4
|
stroke-width: ${t.sectionStrokeWidth};
|
|
@@ -22,4 +22,4 @@ import"./shiki-BE3D5Aiv.js";import"./chunk-FPAJGGOC-C1aXi2xg.js";import"./chunk-
|
|
|
22
22
|
font-size: ${t.titleFontSize};
|
|
23
23
|
}
|
|
24
24
|
`},`getStyles`)};export{ue as diagram};
|
|
25
|
-
//# sourceMappingURL=diagram-PSM6KHXK-
|
|
25
|
+
//# sourceMappingURL=diagram-PSM6KHXK-CsGot5qe.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagram-PSM6KHXK-B-9CxbnI.js","names":["node_count","node_each","node_eachAfter","node_eachBefore","node_find","node_sum","node_sort","node_path","node_ancestors","node_descendants","node_leaves","node_links","node_iterator","squarify","roundNode","constant","scaleOrdinal","treemap","select"],"sources":["../../../../node_modules/d3-hierarchy/src/hierarchy/count.js","../../../../node_modules/d3-hierarchy/src/hierarchy/each.js","../../../../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../../../../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../../../../node_modules/d3-hierarchy/src/hierarchy/find.js","../../../../node_modules/d3-hierarchy/src/hierarchy/sum.js","../../../../node_modules/d3-hierarchy/src/hierarchy/sort.js","../../../../node_modules/d3-hierarchy/src/hierarchy/path.js","../../../../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../../../../node_modules/d3-hierarchy/src/hierarchy/descendants.js","../../../../node_modules/d3-hierarchy/src/hierarchy/leaves.js","../../../../node_modules/d3-hierarchy/src/hierarchy/links.js","../../../../node_modules/d3-hierarchy/src/hierarchy/iterator.js","../../../../node_modules/d3-hierarchy/src/hierarchy/index.js","../../../../node_modules/d3-hierarchy/src/accessors.js","../../../../node_modules/d3-hierarchy/src/constant.js","../../../../node_modules/d3-hierarchy/src/treemap/round.js","../../../../node_modules/d3-hierarchy/src/treemap/dice.js","../../../../node_modules/d3-hierarchy/src/treemap/slice.js","../../../../node_modules/d3-hierarchy/src/treemap/squarify.js","../../../../node_modules/d3-hierarchy/src/treemap/index.js","../../../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-PSM6KHXK.mjs"],"sourcesContent":["function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","import {\n selectSvgElement\n} from \"./chunk-EXTU4WIE.mjs\";\nimport {\n setupViewPortForSVG\n} from \"./chunk-QN33PNHL.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-ATLVNIR6.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/treemap/db.ts\nvar TreeMapDB = class {\n constructor() {\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n }\n static {\n __name(this, \"TreeMapDB\");\n }\n getNodes() {\n return this.nodes;\n }\n getConfig() {\n const defaultConfig = defaultConfig_default;\n const userConfig = getConfig();\n return cleanAndMerge({\n ...defaultConfig.treemap,\n ...userConfig.treemap ?? {}\n });\n }\n addNode(node, level) {\n this.nodes.push(node);\n this.levels.set(node, level);\n if (level === 0) {\n this.outerNodes.push(node);\n this.root ??= node;\n }\n }\n getRoot() {\n return { name: \"\", children: this.outerNodes };\n }\n addClass(id, _style) {\n const styleClass = this.classes.get(id) ?? { id, styles: [], textStyles: [] };\n const styles = _style.replace(/\\\\,/g, \"\\xA7\\xA7\\xA7\").replace(/,/g, \";\").replace(/§§§/g, \",\").split(\";\");\n if (styles) {\n styles.forEach((s) => {\n if (isLabelStyle(s)) {\n if (styleClass?.textStyles) {\n styleClass.textStyles.push(s);\n } else {\n styleClass.textStyles = [s];\n }\n }\n if (styleClass?.styles) {\n styleClass.styles.push(s);\n } else {\n styleClass.styles = [s];\n }\n });\n }\n this.classes.set(id, styleClass);\n }\n getClasses() {\n return this.classes;\n }\n getStylesForClass(classSelector) {\n return this.classes.get(classSelector)?.styles ?? [];\n }\n clear() {\n clear();\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\n this.root = void 0;\n }\n};\n\n// src/diagrams/treemap/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/treemap/utils.ts\nfunction buildHierarchy(items) {\n if (!items.length) {\n return [];\n }\n const root = [];\n const stack = [];\n items.forEach((item) => {\n const node = {\n name: item.name,\n children: item.type === \"Leaf\" ? void 0 : []\n };\n node.classSelector = item?.classSelector;\n if (item?.cssCompiledStyles) {\n node.cssCompiledStyles = [item.cssCompiledStyles];\n }\n if (item.type === \"Leaf\" && item.value !== void 0) {\n node.value = item.value;\n }\n while (stack.length > 0 && stack[stack.length - 1].level >= item.level) {\n stack.pop();\n }\n if (stack.length === 0) {\n root.push(node);\n } else {\n const parent = stack[stack.length - 1].node;\n if (parent.children) {\n parent.children.push(node);\n } else {\n parent.children = [node];\n }\n }\n if (item.type !== \"Leaf\") {\n stack.push({ node, level: item.level });\n }\n });\n return root;\n}\n__name(buildHierarchy, \"buildHierarchy\");\n\n// src/diagrams/treemap/parser.ts\nvar populate = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n const items = [];\n for (const row of ast.TreemapRows ?? []) {\n if (row.$type === \"ClassDefStatement\") {\n db.addClass(row.className ?? \"\", row.styleText ?? \"\");\n }\n }\n for (const row of ast.TreemapRows ?? []) {\n const item = row.item;\n if (!item) {\n continue;\n }\n const level = row.indent ? parseInt(row.indent) : 0;\n const name = getItemName(item);\n const styles = item.classSelector ? db.getStylesForClass(item.classSelector) : [];\n const cssCompiledStyles = styles.length > 0 ? styles.join(\";\") : void 0;\n const itemData = {\n level,\n name,\n type: item.$type,\n value: item.value,\n classSelector: item.classSelector,\n cssCompiledStyles\n };\n items.push(itemData);\n }\n const hierarchyNodes = buildHierarchy(items);\n const addNodesRecursively = /* @__PURE__ */ __name((nodes, level) => {\n for (const node of nodes) {\n db.addNode(node, level);\n if (node.children && node.children.length > 0) {\n addNodesRecursively(node.children, level + 1);\n }\n }\n }, \"addNodesRecursively\");\n addNodesRecursively(hierarchyNodes, 0);\n}, \"populate\");\nvar getItemName = /* @__PURE__ */ __name((item) => {\n return item.name ? String(item.name) : \"\";\n}, \"getItemName\");\nvar parser = {\n // @ts-expect-error - TreeMapDB is not assignable to DiagramDB\n parser: { yy: void 0 },\n parse: /* @__PURE__ */ __name(async (text) => {\n try {\n const parseFunc = parse;\n const ast = await parseFunc(\"treemap\", text);\n log.debug(\"Treemap AST:\", ast);\n const db = parser.parser?.yy;\n if (!(db instanceof TreeMapDB)) {\n throw new Error(\n \"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.\"\n );\n }\n populate(ast, db);\n } catch (error) {\n log.error(\"Error parsing treemap:\", error);\n throw error;\n }\n }, \"parse\")\n};\n\n// src/diagrams/treemap/renderer.ts\nimport { scaleOrdinal, treemap, hierarchy, format, select } from \"d3\";\nvar DEFAULT_INNER_PADDING = 10;\nvar SECTION_INNER_PADDING = 10;\nvar SECTION_HEADER_HEIGHT = 25;\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const treemapDb = diagram2.db;\n const config = treemapDb.getConfig();\n const treemapInnerPadding = config.padding ?? DEFAULT_INNER_PADDING;\n const title = treemapDb.getDiagramTitle();\n const root = treemapDb.getRoot();\n const { themeVariables } = getConfig();\n if (!root) {\n return;\n }\n const titleHeight = title ? 30 : 0;\n const svg = selectSvgElement(id);\n const width = config.nodeWidth ? config.nodeWidth * SECTION_INNER_PADDING : 960;\n const height = config.nodeHeight ? config.nodeHeight * SECTION_INNER_PADDING : 500;\n const svgWidth = width;\n const svgHeight = height + titleHeight;\n svg.attr(\"viewBox\", `0 0 ${svgWidth} ${svgHeight}`);\n configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);\n let valueFormat;\n try {\n const formatStr = config.valueFormat || \",\";\n if (formatStr === \"$0,0\") {\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\")(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\") && formatStr.includes(\",\")) {\n const precision = /\\.\\d+/.exec(formatStr);\n const precisionStr = precision ? precision[0] : \"\";\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\" + precisionStr)(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\")) {\n const restOfFormat = formatStr.substring(1);\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(restOfFormat || \"\")(value), \"valueFormat\");\n } else {\n valueFormat = format(formatStr);\n }\n } catch (error) {\n log.error(\"Error creating format function:\", error);\n valueFormat = format(\",\");\n }\n const colorScale = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScale0,\n themeVariables.cScale1,\n themeVariables.cScale2,\n themeVariables.cScale3,\n themeVariables.cScale4,\n themeVariables.cScale5,\n themeVariables.cScale6,\n themeVariables.cScale7,\n themeVariables.cScale8,\n themeVariables.cScale9,\n themeVariables.cScale10,\n themeVariables.cScale11\n ]);\n const colorScalePeer = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScalePeer0,\n themeVariables.cScalePeer1,\n themeVariables.cScalePeer2,\n themeVariables.cScalePeer3,\n themeVariables.cScalePeer4,\n themeVariables.cScalePeer5,\n themeVariables.cScalePeer6,\n themeVariables.cScalePeer7,\n themeVariables.cScalePeer8,\n themeVariables.cScalePeer9,\n themeVariables.cScalePeer10,\n themeVariables.cScalePeer11\n ]);\n const colorScaleLabel = scaleOrdinal().range([\n themeVariables.cScaleLabel0,\n themeVariables.cScaleLabel1,\n themeVariables.cScaleLabel2,\n themeVariables.cScaleLabel3,\n themeVariables.cScaleLabel4,\n themeVariables.cScaleLabel5,\n themeVariables.cScaleLabel6,\n themeVariables.cScaleLabel7,\n themeVariables.cScaleLabel8,\n themeVariables.cScaleLabel9,\n themeVariables.cScaleLabel10,\n themeVariables.cScaleLabel11\n ]);\n if (title) {\n svg.append(\"text\").attr(\"x\", svgWidth / 2).attr(\"y\", titleHeight / 2).attr(\"class\", \"treemapTitle\").attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").text(title);\n }\n const g = svg.append(\"g\").attr(\"transform\", `translate(0, ${titleHeight})`).attr(\"class\", \"treemapContainer\");\n const hierarchyRoot = hierarchy(root).sum((d) => d.value ?? 0).sort((a, b) => (b.value ?? 0) - (a.value ?? 0));\n const treemapLayout = treemap().size([width, height]).paddingTop(\n (d) => d.children && d.children.length > 0 ? SECTION_HEADER_HEIGHT + SECTION_INNER_PADDING : 0\n ).paddingInner(treemapInnerPadding).paddingLeft((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingRight((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingBottom((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).round(true);\n const treemapData = treemapLayout(hierarchyRoot);\n const branchNodes = treemapData.descendants().filter((d) => d.children && d.children.length > 0);\n const sections = g.selectAll(\".treemapSection\").data(branchNodes).enter().append(\"g\").attr(\"class\", \"treemapSection\").attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", SECTION_HEADER_HEIGHT).attr(\"class\", \"treemapSectionHeader\").attr(\"fill\", \"none\").attr(\"fill-opacity\", 0.6).attr(\"stroke-width\", 0.6).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n return \"\";\n });\n sections.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-section-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 12)).attr(\"height\", SECTION_HEADER_HEIGHT);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", (_d, i) => {\n return `treemapSection section${i}`;\n }).attr(\"fill\", (d) => colorScale(d.data.name)).attr(\"fill-opacity\", 0.6).attr(\"stroke\", (d) => colorScalePeer(d.data.name)).attr(\"stroke-width\", 2).attr(\"stroke-opacity\", 0.4).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles + \";\" + styles.borderStyles.join(\";\");\n });\n sections.append(\"text\").attr(\"class\", \"treemapSectionLabel\").attr(\"x\", 6).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"dominant-baseline\", \"middle\").text((d) => d.depth === 0 ? \"\" : d.data.name).attr(\"font-weight\", \"bold\").attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"dominant-baseline: middle; font-size: 12px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).each(function(d) {\n if (d.depth === 0) {\n return;\n }\n const self = select(this);\n const originalText = d.data.name;\n self.text(originalText);\n const totalHeaderWidth = d.x1 - d.x0;\n const labelXPosition = 6;\n let spaceForTextContent;\n if (config.showValues !== false && d.value) {\n const valueEndsAtXRelative = totalHeaderWidth - 10;\n const estimatedValueTextActualWidth = 30;\n const gapBetweenLabelAndValue = 10;\n const labelMustEndBeforeX = valueEndsAtXRelative - estimatedValueTextActualWidth - gapBetweenLabelAndValue;\n spaceForTextContent = labelMustEndBeforeX - labelXPosition;\n } else {\n const labelOwnRightPadding = 6;\n spaceForTextContent = totalHeaderWidth - labelXPosition - labelOwnRightPadding;\n }\n const minimumWidthToDisplay = 15;\n const actualAvailableWidth = Math.max(minimumWidthToDisplay, spaceForTextContent);\n const textNode = self.node();\n const currentTextContentLength = textNode.getComputedTextLength();\n if (currentTextContentLength > actualAvailableWidth) {\n const ellipsis = \"...\";\n let currentTruncatedText = originalText;\n while (currentTruncatedText.length > 0) {\n currentTruncatedText = originalText.substring(0, currentTruncatedText.length - 1);\n if (currentTruncatedText.length === 0) {\n self.text(ellipsis);\n if (textNode.getComputedTextLength() > actualAvailableWidth) {\n self.text(\"\");\n }\n break;\n }\n self.text(currentTruncatedText + ellipsis);\n if (textNode.getComputedTextLength() <= actualAvailableWidth) {\n break;\n }\n }\n }\n });\n if (config.showValues !== false) {\n sections.append(\"text\").attr(\"class\", \"treemapSectionValue\").attr(\"x\", (d) => d.x1 - d.x0 - 10).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"text-anchor\", \"end\").attr(\"dominant-baseline\", \"middle\").text((d) => d.value ? valueFormat(d.value) : \"\").attr(\"font-style\", \"italic\").attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n });\n }\n const leafNodes = treemapData.leaves();\n const cell = g.selectAll(\".treemapLeafGroup\").data(leafNodes).enter().append(\"g\").attr(\"class\", (d, i) => {\n return `treemapNode treemapLeafGroup leaf${i}${d.data.classSelector ? ` ${d.data.classSelector}` : \"\"}x`;\n }).attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n cell.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", \"treemapLeaf\").attr(\"fill\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"style\", (d) => {\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles;\n }).attr(\"fill-opacity\", 0.3).attr(\"stroke\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"stroke-width\", 3);\n cell.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 4)).attr(\"height\", (d) => Math.max(0, d.y1 - d.y0 - 4));\n const leafLabels = cell.append(\"text\").attr(\"class\", \"treemapLabel\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", (d) => (d.y1 - d.y0) / 2).attr(\"style\", (d) => {\n const labelStyles = \"text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:\" + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.data.name);\n leafLabels.each(function(d) {\n const self = select(this);\n const nodeWidth = d.x1 - d.x0;\n const nodeHeight = d.y1 - d.y0;\n const textNode = self.node();\n const padding = 4;\n const availableWidth = nodeWidth - 2 * padding;\n const availableHeight = nodeHeight - 2 * padding;\n if (availableWidth < 10 || availableHeight < 10) {\n self.style(\"display\", \"none\");\n return;\n }\n let currentLabelFontSize = parseInt(self.style(\"font-size\"), 10);\n const minLabelFontSize = 8;\n const originalValueRelFontSize = 28;\n const valueScaleFactor = 0.6;\n const minValueFontSize = 6;\n const spacingBetweenLabelAndValue = 2;\n while (textNode.getComputedTextLength() > availableWidth && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n }\n let prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueRelFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n let combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n while (combinedHeight > availableHeight && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueRelFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n if (prospectiveValueFontSize < minValueFontSize && currentLabelFontSize === minLabelFontSize) {\n break;\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n if (prospectiveValueFontSize <= minValueFontSize && combinedHeight > availableHeight) {\n }\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n if (textNode.getComputedTextLength() > availableWidth || currentLabelFontSize < minLabelFontSize || availableHeight < currentLabelFontSize) {\n self.style(\"display\", \"none\");\n }\n });\n if (config.showValues !== false) {\n const leafValues = cell.append(\"text\").attr(\"class\", \"treemapValue\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", function(d) {\n return (d.y1 - d.y0) / 2;\n }).attr(\"style\", (d) => {\n const labelStyles = \"text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:\" + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.value ? valueFormat(d.value) : \"\");\n leafValues.each(function(d) {\n const valueTextElement = select(this);\n const parentCellNode = this.parentNode;\n if (!parentCellNode) {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const labelElement = select(parentCellNode).select(\".treemapLabel\");\n if (labelElement.empty() || labelElement.style(\"display\") === \"none\") {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const finalLabelFontSize = parseFloat(labelElement.style(\"font-size\"));\n const originalValueFontSize = 28;\n const valueScaleFactor = 0.6;\n const minValueFontSize = 6;\n const spacingBetweenLabelAndValue = 2;\n const actualValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueFontSize, Math.round(finalLabelFontSize * valueScaleFactor))\n );\n valueTextElement.style(\"font-size\", `${actualValueFontSize}px`);\n const labelCenterY = (d.y1 - d.y0) / 2;\n const valueTopActualY = labelCenterY + finalLabelFontSize / 2 + spacingBetweenLabelAndValue;\n valueTextElement.attr(\"y\", valueTopActualY);\n const nodeWidth = d.x1 - d.x0;\n const nodeTotalHeight = d.y1 - d.y0;\n const cellBottomPadding = 4;\n const maxValueBottomY = nodeTotalHeight - cellBottomPadding;\n const availableWidthForValue = nodeWidth - 2 * 4;\n if (valueTextElement.node().getComputedTextLength() > availableWidthForValue || valueTopActualY + actualValueFontSize > maxValueBottomY || actualValueFontSize < minValueFontSize) {\n valueTextElement.style(\"display\", \"none\");\n } else {\n valueTextElement.style(\"display\", null);\n }\n });\n }\n const diagramPadding = config.diagramPadding ?? 8;\n setupViewPortForSVG(svg, diagramPadding, \"flowchart\", config?.useMaxWidth || false);\n}, \"draw\");\nvar getClasses = /* @__PURE__ */ __name(function(_text, diagramObj) {\n return diagramObj.db.getClasses();\n}, \"getClasses\");\nvar renderer = { draw, getClasses };\n\n// src/diagrams/treemap/styles.ts\nvar defaultTreemapStyleOptions = {\n sectionStrokeColor: \"black\",\n sectionStrokeWidth: \"1\",\n sectionFillColor: \"#efefef\",\n leafStrokeColor: \"black\",\n leafStrokeWidth: \"1\",\n leafFillColor: \"#efefef\",\n labelColor: \"black\",\n labelFontSize: \"12px\",\n valueFontSize: \"10px\",\n valueColor: \"black\",\n titleColor: \"black\",\n titleFontSize: \"14px\"\n};\nvar getStyles = /* @__PURE__ */ __name(({\n treemap: treemap2\n} = {}) => {\n const options = cleanAndMerge(defaultTreemapStyleOptions, treemap2);\n return `\n .treemapNode.section {\n stroke: ${options.sectionStrokeColor};\n stroke-width: ${options.sectionStrokeWidth};\n fill: ${options.sectionFillColor};\n }\n .treemapNode.leaf {\n stroke: ${options.leafStrokeColor};\n stroke-width: ${options.leafStrokeWidth};\n fill: ${options.leafFillColor};\n }\n .treemapLabel {\n fill: ${options.labelColor};\n font-size: ${options.labelFontSize};\n }\n .treemapValue {\n fill: ${options.valueColor};\n font-size: ${options.valueFontSize};\n }\n .treemapTitle {\n fill: ${options.titleColor};\n font-size: ${options.titleFontSize};\n }\n `;\n}, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/treemap/diagram.ts\nvar diagram = {\n parser,\n get db() {\n return new TreeMapDB();\n },\n renderer,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diagram-PSM6KHXK-CsGot5qe.js","names":["node_count","node_each","node_eachAfter","node_eachBefore","node_find","node_sum","node_sort","node_path","node_ancestors","node_descendants","node_leaves","node_links","node_iterator","squarify","roundNode","constant","scaleOrdinal","treemap","select"],"sources":["../../../../node_modules/d3-hierarchy/src/hierarchy/count.js","../../../../node_modules/d3-hierarchy/src/hierarchy/each.js","../../../../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../../../../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../../../../node_modules/d3-hierarchy/src/hierarchy/find.js","../../../../node_modules/d3-hierarchy/src/hierarchy/sum.js","../../../../node_modules/d3-hierarchy/src/hierarchy/sort.js","../../../../node_modules/d3-hierarchy/src/hierarchy/path.js","../../../../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../../../../node_modules/d3-hierarchy/src/hierarchy/descendants.js","../../../../node_modules/d3-hierarchy/src/hierarchy/leaves.js","../../../../node_modules/d3-hierarchy/src/hierarchy/links.js","../../../../node_modules/d3-hierarchy/src/hierarchy/iterator.js","../../../../node_modules/d3-hierarchy/src/hierarchy/index.js","../../../../node_modules/d3-hierarchy/src/accessors.js","../../../../node_modules/d3-hierarchy/src/constant.js","../../../../node_modules/d3-hierarchy/src/treemap/round.js","../../../../node_modules/d3-hierarchy/src/treemap/dice.js","../../../../node_modules/d3-hierarchy/src/treemap/slice.js","../../../../node_modules/d3-hierarchy/src/treemap/squarify.js","../../../../node_modules/d3-hierarchy/src/treemap/index.js","../../../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-PSM6KHXK.mjs"],"sourcesContent":["function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","import {\n selectSvgElement\n} from \"./chunk-EXTU4WIE.mjs\";\nimport {\n setupViewPortForSVG\n} from \"./chunk-QN33PNHL.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-ATLVNIR6.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/treemap/db.ts\nvar TreeMapDB = class {\n constructor() {\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n }\n static {\n __name(this, \"TreeMapDB\");\n }\n getNodes() {\n return this.nodes;\n }\n getConfig() {\n const defaultConfig = defaultConfig_default;\n const userConfig = getConfig();\n return cleanAndMerge({\n ...defaultConfig.treemap,\n ...userConfig.treemap ?? {}\n });\n }\n addNode(node, level) {\n this.nodes.push(node);\n this.levels.set(node, level);\n if (level === 0) {\n this.outerNodes.push(node);\n this.root ??= node;\n }\n }\n getRoot() {\n return { name: \"\", children: this.outerNodes };\n }\n addClass(id, _style) {\n const styleClass = this.classes.get(id) ?? { id, styles: [], textStyles: [] };\n const styles = _style.replace(/\\\\,/g, \"\\xA7\\xA7\\xA7\").replace(/,/g, \";\").replace(/§§§/g, \",\").split(\";\");\n if (styles) {\n styles.forEach((s) => {\n if (isLabelStyle(s)) {\n if (styleClass?.textStyles) {\n styleClass.textStyles.push(s);\n } else {\n styleClass.textStyles = [s];\n }\n }\n if (styleClass?.styles) {\n styleClass.styles.push(s);\n } else {\n styleClass.styles = [s];\n }\n });\n }\n this.classes.set(id, styleClass);\n }\n getClasses() {\n return this.classes;\n }\n getStylesForClass(classSelector) {\n return this.classes.get(classSelector)?.styles ?? [];\n }\n clear() {\n clear();\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\n this.root = void 0;\n }\n};\n\n// src/diagrams/treemap/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/treemap/utils.ts\nfunction buildHierarchy(items) {\n if (!items.length) {\n return [];\n }\n const root = [];\n const stack = [];\n items.forEach((item) => {\n const node = {\n name: item.name,\n children: item.type === \"Leaf\" ? void 0 : []\n };\n node.classSelector = item?.classSelector;\n if (item?.cssCompiledStyles) {\n node.cssCompiledStyles = [item.cssCompiledStyles];\n }\n if (item.type === \"Leaf\" && item.value !== void 0) {\n node.value = item.value;\n }\n while (stack.length > 0 && stack[stack.length - 1].level >= item.level) {\n stack.pop();\n }\n if (stack.length === 0) {\n root.push(node);\n } else {\n const parent = stack[stack.length - 1].node;\n if (parent.children) {\n parent.children.push(node);\n } else {\n parent.children = [node];\n }\n }\n if (item.type !== \"Leaf\") {\n stack.push({ node, level: item.level });\n }\n });\n return root;\n}\n__name(buildHierarchy, \"buildHierarchy\");\n\n// src/diagrams/treemap/parser.ts\nvar populate = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n const items = [];\n for (const row of ast.TreemapRows ?? []) {\n if (row.$type === \"ClassDefStatement\") {\n db.addClass(row.className ?? \"\", row.styleText ?? \"\");\n }\n }\n for (const row of ast.TreemapRows ?? []) {\n const item = row.item;\n if (!item) {\n continue;\n }\n const level = row.indent ? parseInt(row.indent) : 0;\n const name = getItemName(item);\n const styles = item.classSelector ? db.getStylesForClass(item.classSelector) : [];\n const cssCompiledStyles = styles.length > 0 ? styles.join(\";\") : void 0;\n const itemData = {\n level,\n name,\n type: item.$type,\n value: item.value,\n classSelector: item.classSelector,\n cssCompiledStyles\n };\n items.push(itemData);\n }\n const hierarchyNodes = buildHierarchy(items);\n const addNodesRecursively = /* @__PURE__ */ __name((nodes, level) => {\n for (const node of nodes) {\n db.addNode(node, level);\n if (node.children && node.children.length > 0) {\n addNodesRecursively(node.children, level + 1);\n }\n }\n }, \"addNodesRecursively\");\n addNodesRecursively(hierarchyNodes, 0);\n}, \"populate\");\nvar getItemName = /* @__PURE__ */ __name((item) => {\n return item.name ? String(item.name) : \"\";\n}, \"getItemName\");\nvar parser = {\n // @ts-expect-error - TreeMapDB is not assignable to DiagramDB\n parser: { yy: void 0 },\n parse: /* @__PURE__ */ __name(async (text) => {\n try {\n const parseFunc = parse;\n const ast = await parseFunc(\"treemap\", text);\n log.debug(\"Treemap AST:\", ast);\n const db = parser.parser?.yy;\n if (!(db instanceof TreeMapDB)) {\n throw new Error(\n \"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.\"\n );\n }\n populate(ast, db);\n } catch (error) {\n log.error(\"Error parsing treemap:\", error);\n throw error;\n }\n }, \"parse\")\n};\n\n// src/diagrams/treemap/renderer.ts\nimport { scaleOrdinal, treemap, hierarchy, format, select } from \"d3\";\nvar DEFAULT_INNER_PADDING = 10;\nvar SECTION_INNER_PADDING = 10;\nvar SECTION_HEADER_HEIGHT = 25;\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const treemapDb = diagram2.db;\n const config = treemapDb.getConfig();\n const treemapInnerPadding = config.padding ?? DEFAULT_INNER_PADDING;\n const title = treemapDb.getDiagramTitle();\n const root = treemapDb.getRoot();\n const { themeVariables } = getConfig();\n if (!root) {\n return;\n }\n const titleHeight = title ? 30 : 0;\n const svg = selectSvgElement(id);\n const width = config.nodeWidth ? config.nodeWidth * SECTION_INNER_PADDING : 960;\n const height = config.nodeHeight ? config.nodeHeight * SECTION_INNER_PADDING : 500;\n const svgWidth = width;\n const svgHeight = height + titleHeight;\n svg.attr(\"viewBox\", `0 0 ${svgWidth} ${svgHeight}`);\n configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);\n let valueFormat;\n try {\n const formatStr = config.valueFormat || \",\";\n if (formatStr === \"$0,0\") {\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\")(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\") && formatStr.includes(\",\")) {\n const precision = /\\.\\d+/.exec(formatStr);\n const precisionStr = precision ? precision[0] : \"\";\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\" + precisionStr)(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\")) {\n const restOfFormat = formatStr.substring(1);\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(restOfFormat || \"\")(value), \"valueFormat\");\n } else {\n valueFormat = format(formatStr);\n }\n } catch (error) {\n log.error(\"Error creating format function:\", error);\n valueFormat = format(\",\");\n }\n const colorScale = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScale0,\n themeVariables.cScale1,\n themeVariables.cScale2,\n themeVariables.cScale3,\n themeVariables.cScale4,\n themeVariables.cScale5,\n themeVariables.cScale6,\n themeVariables.cScale7,\n themeVariables.cScale8,\n themeVariables.cScale9,\n themeVariables.cScale10,\n themeVariables.cScale11\n ]);\n const colorScalePeer = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScalePeer0,\n themeVariables.cScalePeer1,\n themeVariables.cScalePeer2,\n themeVariables.cScalePeer3,\n themeVariables.cScalePeer4,\n themeVariables.cScalePeer5,\n themeVariables.cScalePeer6,\n themeVariables.cScalePeer7,\n themeVariables.cScalePeer8,\n themeVariables.cScalePeer9,\n themeVariables.cScalePeer10,\n themeVariables.cScalePeer11\n ]);\n const colorScaleLabel = scaleOrdinal().range([\n themeVariables.cScaleLabel0,\n themeVariables.cScaleLabel1,\n themeVariables.cScaleLabel2,\n themeVariables.cScaleLabel3,\n themeVariables.cScaleLabel4,\n themeVariables.cScaleLabel5,\n themeVariables.cScaleLabel6,\n themeVariables.cScaleLabel7,\n themeVariables.cScaleLabel8,\n themeVariables.cScaleLabel9,\n themeVariables.cScaleLabel10,\n themeVariables.cScaleLabel11\n ]);\n if (title) {\n svg.append(\"text\").attr(\"x\", svgWidth / 2).attr(\"y\", titleHeight / 2).attr(\"class\", \"treemapTitle\").attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").text(title);\n }\n const g = svg.append(\"g\").attr(\"transform\", `translate(0, ${titleHeight})`).attr(\"class\", \"treemapContainer\");\n const hierarchyRoot = hierarchy(root).sum((d) => d.value ?? 0).sort((a, b) => (b.value ?? 0) - (a.value ?? 0));\n const treemapLayout = treemap().size([width, height]).paddingTop(\n (d) => d.children && d.children.length > 0 ? SECTION_HEADER_HEIGHT + SECTION_INNER_PADDING : 0\n ).paddingInner(treemapInnerPadding).paddingLeft((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingRight((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingBottom((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).round(true);\n const treemapData = treemapLayout(hierarchyRoot);\n const branchNodes = treemapData.descendants().filter((d) => d.children && d.children.length > 0);\n const sections = g.selectAll(\".treemapSection\").data(branchNodes).enter().append(\"g\").attr(\"class\", \"treemapSection\").attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", SECTION_HEADER_HEIGHT).attr(\"class\", \"treemapSectionHeader\").attr(\"fill\", \"none\").attr(\"fill-opacity\", 0.6).attr(\"stroke-width\", 0.6).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n return \"\";\n });\n sections.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-section-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 12)).attr(\"height\", SECTION_HEADER_HEIGHT);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", (_d, i) => {\n return `treemapSection section${i}`;\n }).attr(\"fill\", (d) => colorScale(d.data.name)).attr(\"fill-opacity\", 0.6).attr(\"stroke\", (d) => colorScalePeer(d.data.name)).attr(\"stroke-width\", 2).attr(\"stroke-opacity\", 0.4).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles + \";\" + styles.borderStyles.join(\";\");\n });\n sections.append(\"text\").attr(\"class\", \"treemapSectionLabel\").attr(\"x\", 6).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"dominant-baseline\", \"middle\").text((d) => d.depth === 0 ? \"\" : d.data.name).attr(\"font-weight\", \"bold\").attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"dominant-baseline: middle; font-size: 12px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).each(function(d) {\n if (d.depth === 0) {\n return;\n }\n const self = select(this);\n const originalText = d.data.name;\n self.text(originalText);\n const totalHeaderWidth = d.x1 - d.x0;\n const labelXPosition = 6;\n let spaceForTextContent;\n if (config.showValues !== false && d.value) {\n const valueEndsAtXRelative = totalHeaderWidth - 10;\n const estimatedValueTextActualWidth = 30;\n const gapBetweenLabelAndValue = 10;\n const labelMustEndBeforeX = valueEndsAtXRelative - estimatedValueTextActualWidth - gapBetweenLabelAndValue;\n spaceForTextContent = labelMustEndBeforeX - labelXPosition;\n } else {\n const labelOwnRightPadding = 6;\n spaceForTextContent = totalHeaderWidth - labelXPosition - labelOwnRightPadding;\n }\n const minimumWidthToDisplay = 15;\n const actualAvailableWidth = Math.max(minimumWidthToDisplay, spaceForTextContent);\n const textNode = self.node();\n const currentTextContentLength = textNode.getComputedTextLength();\n if (currentTextContentLength > actualAvailableWidth) {\n const ellipsis = \"...\";\n let currentTruncatedText = originalText;\n while (currentTruncatedText.length > 0) {\n currentTruncatedText = originalText.substring(0, currentTruncatedText.length - 1);\n if (currentTruncatedText.length === 0) {\n self.text(ellipsis);\n if (textNode.getComputedTextLength() > actualAvailableWidth) {\n self.text(\"\");\n }\n break;\n }\n self.text(currentTruncatedText + ellipsis);\n if (textNode.getComputedTextLength() <= actualAvailableWidth) {\n break;\n }\n }\n }\n });\n if (config.showValues !== false) {\n sections.append(\"text\").attr(\"class\", \"treemapSectionValue\").attr(\"x\", (d) => d.x1 - d.x0 - 10).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"text-anchor\", \"end\").attr(\"dominant-baseline\", \"middle\").text((d) => d.value ? valueFormat(d.value) : \"\").attr(\"font-style\", \"italic\").attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n });\n }\n const leafNodes = treemapData.leaves();\n const cell = g.selectAll(\".treemapLeafGroup\").data(leafNodes).enter().append(\"g\").attr(\"class\", (d, i) => {\n return `treemapNode treemapLeafGroup leaf${i}${d.data.classSelector ? ` ${d.data.classSelector}` : \"\"}x`;\n }).attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n cell.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", \"treemapLeaf\").attr(\"fill\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"style\", (d) => {\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles;\n }).attr(\"fill-opacity\", 0.3).attr(\"stroke\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"stroke-width\", 3);\n cell.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 4)).attr(\"height\", (d) => Math.max(0, d.y1 - d.y0 - 4));\n const leafLabels = cell.append(\"text\").attr(\"class\", \"treemapLabel\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", (d) => (d.y1 - d.y0) / 2).attr(\"style\", (d) => {\n const labelStyles = \"text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:\" + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.data.name);\n leafLabels.each(function(d) {\n const self = select(this);\n const nodeWidth = d.x1 - d.x0;\n const nodeHeight = d.y1 - d.y0;\n const textNode = self.node();\n const padding = 4;\n const availableWidth = nodeWidth - 2 * padding;\n const availableHeight = nodeHeight - 2 * padding;\n if (availableWidth < 10 || availableHeight < 10) {\n self.style(\"display\", \"none\");\n return;\n }\n let currentLabelFontSize = parseInt(self.style(\"font-size\"), 10);\n const minLabelFontSize = 8;\n const originalValueRelFontSize = 28;\n const valueScaleFactor = 0.6;\n const minValueFontSize = 6;\n const spacingBetweenLabelAndValue = 2;\n while (textNode.getComputedTextLength() > availableWidth && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n }\n let prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueRelFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n let combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n while (combinedHeight > availableHeight && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueRelFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n if (prospectiveValueFontSize < minValueFontSize && currentLabelFontSize === minLabelFontSize) {\n break;\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n if (prospectiveValueFontSize <= minValueFontSize && combinedHeight > availableHeight) {\n }\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n if (textNode.getComputedTextLength() > availableWidth || currentLabelFontSize < minLabelFontSize || availableHeight < currentLabelFontSize) {\n self.style(\"display\", \"none\");\n }\n });\n if (config.showValues !== false) {\n const leafValues = cell.append(\"text\").attr(\"class\", \"treemapValue\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", function(d) {\n return (d.y1 - d.y0) / 2;\n }).attr(\"style\", (d) => {\n const labelStyles = \"text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:\" + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.value ? valueFormat(d.value) : \"\");\n leafValues.each(function(d) {\n const valueTextElement = select(this);\n const parentCellNode = this.parentNode;\n if (!parentCellNode) {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const labelElement = select(parentCellNode).select(\".treemapLabel\");\n if (labelElement.empty() || labelElement.style(\"display\") === \"none\") {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const finalLabelFontSize = parseFloat(labelElement.style(\"font-size\"));\n const originalValueFontSize = 28;\n const valueScaleFactor = 0.6;\n const minValueFontSize = 6;\n const spacingBetweenLabelAndValue = 2;\n const actualValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueFontSize, Math.round(finalLabelFontSize * valueScaleFactor))\n );\n valueTextElement.style(\"font-size\", `${actualValueFontSize}px`);\n const labelCenterY = (d.y1 - d.y0) / 2;\n const valueTopActualY = labelCenterY + finalLabelFontSize / 2 + spacingBetweenLabelAndValue;\n valueTextElement.attr(\"y\", valueTopActualY);\n const nodeWidth = d.x1 - d.x0;\n const nodeTotalHeight = d.y1 - d.y0;\n const cellBottomPadding = 4;\n const maxValueBottomY = nodeTotalHeight - cellBottomPadding;\n const availableWidthForValue = nodeWidth - 2 * 4;\n if (valueTextElement.node().getComputedTextLength() > availableWidthForValue || valueTopActualY + actualValueFontSize > maxValueBottomY || actualValueFontSize < minValueFontSize) {\n valueTextElement.style(\"display\", \"none\");\n } else {\n valueTextElement.style(\"display\", null);\n }\n });\n }\n const diagramPadding = config.diagramPadding ?? 8;\n setupViewPortForSVG(svg, diagramPadding, \"flowchart\", config?.useMaxWidth || false);\n}, \"draw\");\nvar getClasses = /* @__PURE__ */ __name(function(_text, diagramObj) {\n return diagramObj.db.getClasses();\n}, \"getClasses\");\nvar renderer = { draw, getClasses };\n\n// src/diagrams/treemap/styles.ts\nvar defaultTreemapStyleOptions = {\n sectionStrokeColor: \"black\",\n sectionStrokeWidth: \"1\",\n sectionFillColor: \"#efefef\",\n leafStrokeColor: \"black\",\n leafStrokeWidth: \"1\",\n leafFillColor: \"#efefef\",\n labelColor: \"black\",\n labelFontSize: \"12px\",\n valueFontSize: \"10px\",\n valueColor: \"black\",\n titleColor: \"black\",\n titleFontSize: \"14px\"\n};\nvar getStyles = /* @__PURE__ */ __name(({\n treemap: treemap2\n} = {}) => {\n const options = cleanAndMerge(defaultTreemapStyleOptions, treemap2);\n return `\n .treemapNode.section {\n stroke: ${options.sectionStrokeColor};\n stroke-width: ${options.sectionStrokeWidth};\n fill: ${options.sectionFillColor};\n }\n .treemapNode.leaf {\n stroke: ${options.leafStrokeColor};\n stroke-width: ${options.leafStrokeWidth};\n fill: ${options.leafFillColor};\n }\n .treemapLabel {\n fill: ${options.labelColor};\n font-size: ${options.labelFontSize};\n }\n .treemapValue {\n fill: ${options.valueColor};\n font-size: ${options.valueFontSize};\n }\n .treemapTitle {\n fill: ${options.titleColor};\n font-size: ${options.titleFontSize};\n }\n `;\n}, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/treemap/diagram.ts\nvar diagram = {\n parser,\n get db() {\n return new TreeMapDB();\n },\n renderer,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"mappings":"04BAAA,SAAS,EAAM,EAAM,CACnB,IAAI,EAAM,EACN,EAAW,EAAK,SAChB,EAAI,GAAY,EAAS,OAC7B,GAAI,CAAC,EAAG,EAAM,OACT,KAAO,EAAE,GAAK,GAAG,GAAO,EAAS,GAAG,MACzC,EAAK,MAAQ,EAGf,SAAA,GAA0B,CACxB,OAAO,KAAK,UAAU,EAAM,CCV9B,SAAA,EAAwB,EAAU,EAAM,CACtC,IAAI,EAAQ,GACZ,IAAK,IAAM,KAAQ,KACjB,EAAS,KAAK,EAAM,EAAM,EAAE,EAAO,KAAK,CAE1C,OAAO,KCLT,SAAA,EAAwB,EAAU,EAAM,CAEtC,IADA,IAAI,EAAO,KAAM,EAAQ,CAAC,EAAK,CAAE,EAAU,EAAG,EAAQ,GAC/C,EAAO,EAAM,KAAK,EAEvB,GADA,EAAS,KAAK,EAAM,EAAM,EAAE,EAAO,KAAK,CACpC,EAAW,EAAK,SAClB,IAAK,EAAI,EAAS,OAAS,EAAG,GAAK,EAAG,EAAE,EACtC,EAAM,KAAK,EAAS,GAAG,CAI7B,OAAO,KCVT,SAAA,EAAwB,EAAU,EAAM,CAEtC,IADA,IAAI,EAAO,KAAM,EAAQ,CAAC,EAAK,CAAE,EAAO,EAAE,CAAE,EAAU,EAAG,EAAG,EAAQ,GAC7D,EAAO,EAAM,KAAK,EAEvB,GADA,EAAK,KAAK,EAAK,CACX,EAAW,EAAK,SAClB,IAAK,EAAI,EAAG,EAAI,EAAS,OAAQ,EAAI,EAAG,EAAE,EACxC,EAAM,KAAK,EAAS,GAAG,CAI7B,KAAO,EAAO,EAAK,KAAK,EACtB,EAAS,KAAK,EAAM,EAAM,EAAE,EAAO,KAAK,CAE1C,OAAO,KCbT,SAAA,EAAwB,EAAU,EAAM,CACtC,IAAI,EAAQ,GACZ,IAAK,IAAM,KAAQ,KACjB,GAAI,EAAS,KAAK,EAAM,EAAM,EAAE,EAAO,KAAK,CAC1C,OAAO,ECJb,SAAA,EAAwB,EAAO,CAC7B,OAAO,KAAK,UAAU,SAAS,EAAM,CAInC,IAHA,IAAI,EAAM,CAAC,EAAM,EAAK,KAAK,EAAI,EAC3B,EAAW,EAAK,SAChB,EAAI,GAAY,EAAS,OACtB,EAAE,GAAK,GAAG,GAAO,EAAS,GAAG,MACpC,EAAK,MAAQ,GACb,CCPJ,SAAA,EAAwB,EAAS,CAC/B,OAAO,KAAK,WAAW,SAAS,EAAM,CAChC,EAAK,UACP,EAAK,SAAS,KAAK,EAAQ,EAE7B,CCLJ,SAAA,EAAwB,EAAK,CAI3B,IAHA,IAAI,EAAQ,KACR,EAAW,EAAoB,EAAO,EAAI,CAC1C,EAAQ,CAAC,EAAM,CACZ,IAAU,GACf,EAAQ,EAAM,OACd,EAAM,KAAK,EAAM,CAGnB,IADA,IAAI,EAAI,EAAM,OACP,IAAQ,GACb,EAAM,OAAO,EAAG,EAAG,EAAI,CACvB,EAAM,EAAI,OAEZ,OAAO,EAGT,SAAS,EAAoB,EAAG,EAAG,CACjC,GAAI,IAAM,EAAG,OAAO,EACpB,IAAI,EAAS,EAAE,WAAW,CACtB,EAAS,EAAE,WAAW,CACtB,EAAI,KAGR,IAFA,EAAI,EAAO,KAAK,CAChB,EAAI,EAAO,KAAK,CACT,IAAM,GACX,EAAI,EACJ,EAAI,EAAO,KAAK,CAChB,EAAI,EAAO,KAAK,CAElB,OAAO,EC5BT,SAAA,GAA0B,CAExB,IADA,IAAI,EAAO,KAAM,EAAQ,CAAC,EAAK,CACxB,EAAO,EAAK,QACjB,EAAM,KAAK,EAAK,CAElB,OAAO,ECLT,SAAA,GAA0B,CACxB,OAAO,MAAM,KAAK,KAAK,CCDzB,SAAA,GAA0B,CACxB,IAAI,EAAS,EAAE,CAMf,OALA,KAAK,WAAW,SAAS,EAAM,CACxB,EAAK,UACR,EAAO,KAAK,EAAK,EAEnB,CACK,ECPT,SAAA,GAA0B,CACxB,IAAI,EAAO,KAAM,EAAQ,EAAE,CAM3B,OALA,EAAK,KAAK,SAAS,EAAM,CACnB,IAAS,GACX,EAAM,KAAK,CAAC,OAAQ,EAAK,OAAQ,OAAQ,EAAK,CAAC,EAEjD,CACK,ECPT,SAAA,GAA2B,CACzB,IAAI,EAAO,KAAM,EAAS,EAAO,CAAC,EAAK,CAAE,EAAU,EAAG,EACtD,EAEE,KADA,EAAU,EAAK,SAAS,CAAE,EAAO,EAAE,CAC5B,EAAO,EAAQ,KAAK,EAEzB,GADA,MAAM,EACF,EAAW,EAAK,SAClB,IAAK,EAAI,EAAG,EAAI,EAAS,OAAQ,EAAI,EAAG,EAAE,EACxC,EAAK,KAAK,EAAS,GAAG,OAIrB,EAAK,QCEhB,SAAwB,EAAU,EAAM,EAAU,CAC5C,aAAgB,KAClB,EAAO,CAAC,IAAA,GAAW,EAAK,CACpB,IAAa,IAAA,KAAW,EAAW,IAC9B,IAAa,IAAA,KACtB,EAAW,GAWb,IARA,IAAI,EAAO,IAAI,EAAK,EAAK,CACrB,EACA,EAAQ,CAAC,EAAK,CACd,EACA,EACA,EACA,EAEG,EAAO,EAAM,KAAK,EACvB,IAAK,EAAS,EAAS,EAAK,KAAK,IAAM,GAAK,EAAS,MAAM,KAAK,EAAO,EAAE,QAEvE,IADA,EAAK,SAAW,EACX,EAAI,EAAI,EAAG,GAAK,EAAG,EAAE,EACxB,EAAM,KAAK,EAAQ,EAAO,GAAK,IAAI,EAAK,EAAO,GAAG,CAAC,CACnD,EAAM,OAAS,EACf,EAAM,MAAQ,EAAK,MAAQ,EAKjC,OAAO,EAAK,WAAW,EAAc,CAGvC,SAAS,GAAY,CACnB,OAAO,EAAU,KAAK,CAAC,WAAW,EAAS,CAG7C,SAAS,EAAe,EAAG,CACzB,OAAO,EAAE,SAGX,SAAS,EAAY,EAAG,CACtB,OAAO,MAAM,QAAQ,EAAE,CAAG,EAAE,GAAK,KAGnC,SAAS,EAAS,EAAM,CAClB,EAAK,KAAK,QAAU,IAAA,KAAW,EAAK,MAAQ,EAAK,KAAK,OAC1D,EAAK,KAAO,EAAK,KAAK,KAGxB,SAAgB,EAAc,EAAM,CAClC,IAAI,EAAS,EACb,EAAG,GAAK,OAAS,SACT,EAAO,EAAK,SAAY,EAAK,OAAS,EAAE,GAGlD,SAAgB,EAAK,EAAM,CACzB,KAAK,KAAO,EACZ,KAAK,MACL,KAAK,OAAS,EACd,KAAK,OAAS,KAGhB,EAAK,UAAY,EAAU,UAAY,CACrC,YAAa,EACb,MAAOA,EACP,KAAMC,EACN,UAAWC,EACX,WAAYC,EACZ,KAAMC,EACN,IAAKC,EACL,KAAMC,EACN,KAAMC,EACN,UAAWC,EACX,YAAaC,EACb,OAAQC,EACR,MAAOC,EACP,KAAM,GACL,OAAO,UAAWC,EACpB,CCtFD,SAAgB,EAAS,EAAG,CAC1B,GAAI,OAAO,GAAM,WAAY,MAAU,OAAK,CAC5C,OAAO,ECNT,SAAgB,GAAe,CAC7B,MAAO,GAGT,SAAA,EAAwB,EAAG,CACzB,OAAO,UAAW,CAChB,OAAO,GCNX,SAAA,EAAwB,EAAM,CAC5B,EAAK,GAAK,KAAK,MAAM,EAAK,GAAG,CAC7B,EAAK,GAAK,KAAK,MAAM,EAAK,GAAG,CAC7B,EAAK,GAAK,KAAK,MAAM,EAAK,GAAG,CAC7B,EAAK,GAAK,KAAK,MAAM,EAAK,GAAG,CCJ/B,SAAA,EAAwB,EAAQ,EAAI,EAAI,EAAI,EAAI,CAO9C,IANA,IAAI,EAAQ,EAAO,SACf,EACA,EAAI,GACJ,EAAI,EAAM,OACV,EAAI,EAAO,QAAU,EAAK,GAAM,EAAO,MAEpC,EAAE,EAAI,GACX,EAAO,EAAM,GAAI,EAAK,GAAK,EAAI,EAAK,GAAK,EACzC,EAAK,GAAK,EAAI,EAAK,GAAK,GAAM,EAAK,MAAQ,ECT/C,SAAA,GAAwB,EAAQ,EAAI,EAAI,EAAI,EAAI,CAO9C,IANA,IAAI,EAAQ,EAAO,SACf,EACA,EAAI,GACJ,EAAI,EAAM,OACV,EAAI,EAAO,QAAU,EAAK,GAAM,EAAO,MAEpC,EAAE,EAAI,GACX,EAAO,EAAM,GAAI,EAAK,GAAK,EAAI,EAAK,GAAK,EACzC,EAAK,GAAK,EAAI,EAAK,GAAK,GAAM,EAAK,MAAQ,ECN/C,IAAW,IAAO,EAAI,KAAK,KAAK,EAAE,EAAI,EAEtC,SAAgB,GAAc,EAAO,EAAQ,EAAI,EAAI,EAAI,EAAI,CAkB3D,IAjBA,IAAI,EAAO,EAAE,CACT,EAAQ,EAAO,SACf,EACA,EACA,EAAK,EACL,EAAK,EACL,EAAI,EAAM,OACV,EAAI,EACJ,EAAQ,EAAO,MACf,EACA,EACA,EACA,EACA,EACA,EACA,EAEG,EAAK,GAAG,CACb,EAAK,EAAK,EAAI,EAAK,EAAK,EAGxB,EAAG,GAAW,EAAM,KAAM,YAAc,CAAC,GAAY,EAAK,GAO1D,IANA,EAAW,EAAW,EACtB,EAAQ,KAAK,IAAI,EAAK,EAAI,EAAK,EAAG,EAAI,EAAQ,GAC9C,EAAO,EAAW,EAAW,EAC7B,EAAW,KAAK,IAAI,EAAW,EAAM,EAAO,EAAS,CAG9C,EAAK,EAAG,EAAE,EAAI,CAMnB,GALA,GAAY,EAAY,EAAM,GAAI,MAC9B,EAAY,IAAU,EAAW,GACjC,EAAY,IAAU,EAAW,GACrC,EAAO,EAAW,EAAW,EAC7B,EAAW,KAAK,IAAI,EAAW,EAAM,EAAO,EAAS,CACjD,EAAW,EAAU,CAAE,GAAY,EAAW,MAClD,EAAW,EAIb,EAAK,KAAK,EAAM,CAAC,MAAO,EAAU,KAAM,EAAK,EAAI,SAAU,EAAM,MAAM,EAAI,EAAG,CAAC,CAAC,CAC5E,EAAI,KAAM,EAAY,EAAK,EAAI,EAAI,EAAI,EAAQ,GAAM,EAAK,EAAW,EAAQ,EAAG,CAC/E,GAAa,EAAK,EAAI,EAAI,EAAQ,GAAM,EAAK,EAAW,EAAQ,EAAI,EAAG,CAC5E,GAAS,EAAU,EAAK,EAG1B,OAAO,EAGT,IAAA,IAAgB,SAAS,EAAO,EAAO,CAErC,SAAS,EAAS,EAAQ,EAAI,EAAI,EAAI,EAAI,CACxC,GAAc,EAAO,EAAQ,EAAI,EAAI,EAAI,EAAG,CAO9C,MAJA,GAAS,MAAQ,SAAS,EAAG,CAC3B,OAAO,GAAQ,EAAI,CAAC,GAAK,EAAI,EAAI,EAAE,EAG9B,IACN,GAAI,CC5DP,SAAA,IAA0B,CACxB,IAAI,EAAOC,GACP,EAAQ,GACR,EAAK,EACL,EAAK,EACL,EAAe,CAAC,EAAE,CAClB,EAAe,EACf,EAAa,EACb,EAAe,EACf,EAAgB,EAChB,EAAc,EAElB,SAAS,EAAQ,EAAM,CAQrB,MAPA,GAAK,GACL,EAAK,GAAK,EACV,EAAK,GAAK,EACV,EAAK,GAAK,EACV,EAAK,WAAW,EAAa,CAC7B,EAAe,CAAC,EAAE,CACd,GAAO,EAAK,WAAWC,EAAU,CAC9B,EAGT,SAAS,EAAa,EAAM,CAC1B,IAAI,EAAI,EAAa,EAAK,OACtB,EAAK,EAAK,GAAK,EACf,EAAK,EAAK,GAAK,EACf,EAAK,EAAK,GAAK,EACf,EAAK,EAAK,GAAK,EACf,EAAK,IAAI,EAAK,GAAM,EAAK,GAAM,GAC/B,EAAK,IAAI,EAAK,GAAM,EAAK,GAAM,GACnC,EAAK,GAAK,EACV,EAAK,GAAK,EACV,EAAK,GAAK,EACV,EAAK,GAAK,EACN,EAAK,WACP,EAAI,EAAa,EAAK,MAAQ,GAAK,EAAa,EAAK,CAAG,EACxD,GAAM,EAAY,EAAK,CAAG,EAC1B,GAAM,EAAW,EAAK,CAAG,EACzB,GAAM,EAAa,EAAK,CAAG,EAC3B,GAAM,EAAc,EAAK,CAAG,EACxB,EAAK,IAAI,EAAK,GAAM,EAAK,GAAM,GAC/B,EAAK,IAAI,EAAK,GAAM,EAAK,GAAM,GACnC,EAAK,EAAM,EAAI,EAAI,EAAI,EAAG,EA4C9B,MAxCA,GAAQ,MAAQ,SAAS,EAAG,CAC1B,OAAO,UAAU,QAAU,EAAQ,CAAC,CAAC,EAAG,GAAW,GAGrD,EAAQ,KAAO,SAAS,EAAG,CACzB,OAAO,UAAU,QAAU,EAAK,CAAC,EAAE,GAAI,EAAK,CAAC,EAAE,GAAI,GAAW,CAAC,EAAI,EAAG,EAGxE,EAAQ,KAAO,SAAS,EAAG,CACzB,OAAO,UAAU,QAAU,EAAO,EAAS,EAAE,CAAE,GAAW,GAG5D,EAAQ,QAAU,SAAS,EAAG,CAC5B,OAAO,UAAU,OAAS,EAAQ,aAAa,EAAE,CAAC,aAAa,EAAE,CAAG,EAAQ,cAAc,EAG5F,EAAQ,aAAe,SAAS,EAAG,CACjC,OAAO,UAAU,QAAU,EAAe,OAAO,GAAM,WAAa,EAAIC,EAAS,CAAC,EAAE,CAAE,GAAW,GAGnG,EAAQ,aAAe,SAAS,EAAG,CACjC,OAAO,UAAU,OAAS,EAAQ,WAAW,EAAE,CAAC,aAAa,EAAE,CAAC,cAAc,EAAE,CAAC,YAAY,EAAE,CAAG,EAAQ,YAAY,EAGxH,EAAQ,WAAa,SAAS,EAAG,CAC/B,OAAO,UAAU,QAAU,EAAa,OAAO,GAAM,WAAa,EAAIA,EAAS,CAAC,EAAE,CAAE,GAAW,GAGjG,EAAQ,aAAe,SAAS,EAAG,CACjC,OAAO,UAAU,QAAU,EAAe,OAAO,GAAM,WAAa,EAAIA,EAAS,CAAC,EAAE,CAAE,GAAW,GAGnG,EAAQ,cAAgB,SAAS,EAAG,CAClC,OAAO,UAAU,QAAU,EAAgB,OAAO,GAAM,WAAa,EAAIA,EAAS,CAAC,EAAE,CAAE,GAAW,GAGpG,EAAQ,YAAc,SAAS,EAAG,CAChC,OAAO,UAAU,QAAU,EAAc,OAAO,GAAM,WAAa,EAAIA,EAAS,CAAC,EAAE,CAAE,GAAW,GAG3F,EC1DT,IAAI,EAAY,KAAM,CACpB,aAAc,CACZ,KAAK,MAAQ,EAAE,CACf,KAAK,OAAyB,IAAI,IAClC,KAAK,WAAa,EAAE,CACpB,KAAK,QAA0B,IAAI,IACnC,KAAK,YAAc,EACnB,KAAK,YAAc,EACnB,KAAK,gBAAkB,EACvB,KAAK,gBAAkB,EACvB,KAAK,kBAAoB,EACzB,KAAK,kBAAoB,EAE3B,OAAA,EACE,EAAO,KAAM,YAAY,CAE3B,UAAW,CACT,OAAO,KAAK,MAEd,WAAY,CACV,IAAM,EAAgB,EAChB,EAAa,GAAW,CAC9B,OAAO,EAAc,CACnB,GAAG,EAAc,QACjB,GAAG,EAAW,SAAW,EAAE,CAC5B,CAAC,CAEJ,QAAQ,EAAM,EAAO,CACnB,KAAK,MAAM,KAAK,EAAK,CACrB,KAAK,OAAO,IAAI,EAAM,EAAM,CACxB,IAAU,IACZ,KAAK,WAAW,KAAK,EAAK,CAC1B,KAAK,OAAS,GAGlB,SAAU,CACR,MAAO,CAAE,KAAM,GAAI,SAAU,KAAK,WAAY,CAEhD,SAAS,EAAI,EAAQ,CACnB,IAAM,EAAa,KAAK,QAAQ,IAAI,EAAG,EAAI,CAAE,KAAI,OAAQ,EAAE,CAAE,WAAY,EAAE,CAAE,CACvE,EAAS,EAAO,QAAQ,OAAQ,MAAe,CAAC,QAAQ,KAAM,IAAI,CAAC,QAAQ,OAAQ,IAAI,CAAC,MAAM,IAAI,CACpG,GACF,EAAO,QAAS,GAAM,CAChB,EAAa,EAAE,GACb,GAAY,WACd,EAAW,WAAW,KAAK,EAAE,CAE7B,EAAW,WAAa,CAAC,EAAE,EAG3B,GAAY,OACd,EAAW,OAAO,KAAK,EAAE,CAEzB,EAAW,OAAS,CAAC,EAAE,EAEzB,CAEJ,KAAK,QAAQ,IAAI,EAAI,EAAW,CAElC,YAAa,CACX,OAAO,KAAK,QAEd,kBAAkB,EAAe,CAC/B,OAAO,KAAK,QAAQ,IAAI,EAAc,EAAE,QAAU,EAAE,CAEtD,OAAQ,CACN,GAAO,CACP,KAAK,MAAQ,EAAE,CACf,KAAK,OAAyB,IAAI,IAClC,KAAK,WAAa,EAAE,CACpB,KAAK,QAA0B,IAAI,IACnC,KAAK,KAAO,IAAK,KAQrB,SAAS,EAAe,EAAO,CAC7B,GAAI,CAAC,EAAM,OACT,MAAO,EAAE,CAEX,IAAM,EAAO,EAAE,CACT,EAAQ,EAAE,CA8BhB,OA7BA,EAAM,QAAS,GAAS,CACtB,IAAM,EAAO,CACX,KAAM,EAAK,KACX,SAAU,EAAK,OAAS,OAAS,IAAK,GAAI,EAAE,CAC7C,CAQD,IAPA,EAAK,cAAgB,GAAM,cACvB,GAAM,oBACR,EAAK,kBAAoB,CAAC,EAAK,kBAAkB,EAE/C,EAAK,OAAS,QAAU,EAAK,QAAU,IAAK,KAC9C,EAAK,MAAQ,EAAK,OAEb,EAAM,OAAS,GAAK,EAAM,EAAM,OAAS,GAAG,OAAS,EAAK,OAC/D,EAAM,KAAK,CAEb,GAAI,EAAM,SAAW,EACnB,EAAK,KAAK,EAAK,KACV,CACL,IAAM,EAAS,EAAM,EAAM,OAAS,GAAG,KACnC,EAAO,SACT,EAAO,SAAS,KAAK,EAAK,CAE1B,EAAO,SAAW,CAAC,EAAK,CAGxB,EAAK,OAAS,QAChB,EAAM,KAAK,CAAE,OAAM,MAAO,EAAK,MAAO,CAAC,EAEzC,CACK,EAET,EAAO,EAAgB,iBAAiB,CAGxC,IAAI,GAA2B,GAAQ,EAAK,IAAO,CACjD,EAAiB,EAAK,EAAG,CACzB,IAAM,EAAQ,EAAE,CAChB,IAAK,IAAM,KAAO,EAAI,aAAe,EAAE,CACjC,EAAI,QAAU,qBAChB,EAAG,SAAS,EAAI,WAAa,GAAI,EAAI,WAAa,GAAG,CAGzD,IAAK,IAAM,KAAO,EAAI,aAAe,EAAE,CAAE,CACvC,IAAM,EAAO,EAAI,KACjB,GAAI,CAAC,EACH,SAEF,IAAM,EAAQ,EAAI,OAAS,SAAS,EAAI,OAAO,CAAG,EAC5C,EAAO,GAAY,EAAK,CACxB,EAAS,EAAK,cAAgB,EAAG,kBAAkB,EAAK,cAAc,CAAG,EAAE,CAC3E,EAAoB,EAAO,OAAS,EAAI,EAAO,KAAK,IAAI,CAAG,IAAK,GAChE,EAAW,CACf,QACA,OACA,KAAM,EAAK,MACX,MAAO,EAAK,MACZ,cAAe,EAAK,cACpB,oBACD,CACD,EAAM,KAAK,EAAS,CAEtB,IAAM,EAAiB,EAAe,EAAM,CACtC,EAAsC,GAAQ,EAAO,IAAU,CACnE,IAAK,IAAM,KAAQ,EACjB,EAAG,QAAQ,EAAM,EAAM,CACnB,EAAK,UAAY,EAAK,SAAS,OAAS,GAC1C,EAAoB,EAAK,SAAU,EAAQ,EAAE,EAGhD,sBAAsB,CACzB,EAAoB,EAAgB,EAAE,EACrC,WAAW,CACV,GAA8B,EAAQ,GACjC,EAAK,KAAO,OAAO,EAAK,KAAK,CAAG,GACtC,cAAc,CACb,EAAS,CAEX,OAAQ,CAAE,GAAI,IAAK,GAAG,CACtB,MAAuB,EAAO,KAAO,IAAS,CAC5C,GAAI,CAEF,IAAM,EAAM,MADM,EACU,UAAW,EAAK,CAC5C,EAAI,MAAM,eAAgB,EAAI,CAC9B,IAAM,EAAK,EAAO,QAAQ,GAC1B,GAAI,EAAE,aAAc,GAClB,MAAU,MACR,wJACD,CAEH,GAAS,EAAK,EAAG,OACV,EAAO,CAEd,MADA,EAAI,MAAM,yBAA0B,EAAM,CACpC,IAEP,QAAQ,CACZ,CAIG,GAAwB,GACxB,EAAwB,GACxB,EAAwB,GA4RxB,GAAW,CAAE,KA3RU,GAAQ,EAAO,EAAI,EAAU,IAAa,CACnE,IAAM,EAAY,EAAS,GACrB,EAAS,EAAU,WAAW,CAC9B,EAAsB,EAAO,SAAW,GACxC,EAAQ,EAAU,iBAAiB,CACnC,EAAO,EAAU,SAAS,CAC1B,CAAE,kBAAmB,GAAW,CACtC,GAAI,CAAC,EACH,OAEF,IAAM,EAAc,EAAQ,GAAK,EAC3B,EAAM,EAAiB,EAAG,CAC1B,EAAQ,EAAO,UAAY,EAAO,UAAY,EAAwB,IACtE,EAAS,EAAO,WAAa,EAAO,WAAa,EAAwB,IACzE,EAAW,EACX,EAAY,EAAS,EAC3B,EAAI,KAAK,UAAW,OAAO,EAAS,GAAG,IAAY,CACnD,EAAiB,EAAK,EAAW,EAAU,EAAO,YAAY,CAC9D,IAAI,EACJ,GAAI,CACF,IAAM,EAAY,EAAO,aAAe,IACxC,GAAI,IAAc,OAChB,EAA8B,EAAQ,GAAU,IAAM,EAAO,IAAI,CAAC,EAAM,CAAE,cAAc,SAC/E,EAAU,WAAW,IAAI,EAAI,EAAU,SAAS,IAAI,CAAE,CAC/D,IAAM,EAAY,QAAQ,KAAK,EAAU,CACnC,EAAe,EAAY,EAAU,GAAK,GAChD,EAA8B,EAAQ,GAAU,IAAM,EAAO,IAAM,EAAa,CAAC,EAAM,CAAE,cAAc,SAC9F,EAAU,WAAW,IAAI,CAAE,CACpC,IAAM,EAAe,EAAU,UAAU,EAAE,CAC3C,EAA8B,EAAQ,GAAU,IAAM,EAAO,GAAgB,GAAG,CAAC,EAAM,CAAE,cAAc,MAEvG,EAAc,EAAO,EAAU,OAE1B,EAAO,CACd,EAAI,MAAM,kCAAmC,EAAM,CACnD,EAAc,EAAO,IAAI,CAE3B,IAAM,EAAaC,GAAc,CAAC,MAAM,CACtC,cACA,EAAe,QACf,EAAe,QACf,EAAe,QACf,EAAe,QACf,EAAe,QACf,EAAe,QACf,EAAe,QACf,EAAe,QACf,EAAe,QACf,EAAe,QACf,EAAe,SACf,EAAe,SAChB,CAAC,CACI,EAAiBA,GAAc,CAAC,MAAM,CAC1C,cACA,EAAe,YACf,EAAe,YACf,EAAe,YACf,EAAe,YACf,EAAe,YACf,EAAe,YACf,EAAe,YACf,EAAe,YACf,EAAe,YACf,EAAe,YACf,EAAe,aACf,EAAe,aAChB,CAAC,CACI,EAAkBA,GAAc,CAAC,MAAM,CAC3C,EAAe,aACf,EAAe,aACf,EAAe,aACf,EAAe,aACf,EAAe,aACf,EAAe,aACf,EAAe,aACf,EAAe,aACf,EAAe,aACf,EAAe,aACf,EAAe,cACf,EAAe,cAChB,CAAC,CACE,GACF,EAAI,OAAO,OAAO,CAAC,KAAK,IAAK,EAAW,EAAE,CAAC,KAAK,IAAK,EAAc,EAAE,CAAC,KAAK,QAAS,eAAe,CAAC,KAAK,cAAe,SAAS,CAAC,KAAK,oBAAqB,SAAS,CAAC,KAAK,EAAM,CAEnL,IAAM,EAAI,EAAI,OAAO,IAAI,CAAC,KAAK,YAAa,gBAAgB,EAAY,GAAG,CAAC,KAAK,QAAS,mBAAmB,CACvG,EAAgB,EAAU,EAAK,CAAC,IAAK,GAAM,EAAE,OAAS,EAAE,CAAC,MAAM,EAAG,KAAO,EAAE,OAAS,IAAM,EAAE,OAAS,GAAG,CAIxG,EAHgBC,IAAS,CAAC,KAAK,CAAC,EAAO,EAAO,CAAC,CAAC,WACnD,GAAM,EAAE,UAAY,EAAE,SAAS,OAAS,EAAI,EAAwB,EAAwB,EAC9F,CAAC,aAAa,EAAoB,CAAC,YAAa,GAAM,EAAE,UAAY,EAAE,SAAS,OAAS,EAAI,EAAwB,EAAE,CAAC,aAAc,GAAM,EAAE,UAAY,EAAE,SAAS,OAAS,EAAI,EAAwB,EAAE,CAAC,cAAe,GAAM,EAAE,UAAY,EAAE,SAAS,OAAS,EAAI,EAAwB,EAAE,CAAC,MAAM,GAAK,CAC5Q,EAAc,CAC1C,EAAc,EAAY,aAAa,CAAC,OAAQ,GAAM,EAAE,UAAY,EAAE,SAAS,OAAS,EAAE,CAC1F,EAAW,EAAE,UAAU,kBAAkB,CAAC,KAAK,EAAY,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,KAAK,QAAS,iBAAiB,CAAC,KAAK,YAAc,GAAM,aAAa,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,CAC5K,EAAS,OAAO,OAAO,CAAC,KAAK,QAAU,GAAM,EAAE,GAAK,EAAE,GAAG,CAAC,KAAK,SAAU,EAAsB,CAAC,KAAK,QAAS,uBAAuB,CAAC,KAAK,OAAQ,OAAO,CAAC,KAAK,eAAgB,GAAI,CAAC,KAAK,eAAgB,GAAI,CAAC,KAAK,QAAU,GACxN,EAAE,QAAU,EACP,iBAEF,GACP,CACF,EAAS,OAAO,WAAW,CAAC,KAAK,MAAO,EAAI,IAAM,gBAAgB,EAAG,GAAG,IAAI,CAAC,OAAO,OAAO,CAAC,KAAK,QAAU,GAAM,KAAK,IAAI,EAAG,EAAE,GAAK,EAAE,GAAK,GAAG,CAAC,CAAC,KAAK,SAAU,EAAsB,CACrL,EAAS,OAAO,OAAO,CAAC,KAAK,QAAU,GAAM,EAAE,GAAK,EAAE,GAAG,CAAC,KAAK,SAAW,GAAM,EAAE,GAAK,EAAE,GAAG,CAAC,KAAK,SAAU,EAAI,IACvG,yBAAyB,IAChC,CAAC,KAAK,OAAS,GAAM,EAAW,EAAE,KAAK,KAAK,CAAC,CAAC,KAAK,eAAgB,GAAI,CAAC,KAAK,SAAW,GAAM,EAAe,EAAE,KAAK,KAAK,CAAC,CAAC,KAAK,eAAgB,EAAE,CAAC,KAAK,iBAAkB,GAAI,CAAC,KAAK,QAAU,GAAM,CACpM,GAAI,EAAE,QAAU,EACd,MAAO,iBAET,IAAM,EAAS,EAAc,CAAE,kBAAmB,EAAE,KAAK,kBAAmB,CAAC,CAC7E,OAAO,EAAO,WAAa,IAAM,EAAO,aAAa,KAAK,IAAI,EAC9D,CACF,EAAS,OAAO,OAAO,CAAC,KAAK,QAAS,sBAAsB,CAAC,KAAK,IAAK,EAAE,CAAC,KAAK,IAAK,EAAwB,EAAE,CAAC,KAAK,oBAAqB,SAAS,CAAC,KAAM,GAAM,EAAE,QAAU,EAAI,GAAK,EAAE,KAAK,KAAK,CAAC,KAAK,cAAe,OAAO,CAAC,KAAK,QAAU,GACtO,EAAE,QAAU,EACP,iBAEW,oDAAsD,EAAgB,EAAE,KAAK,KAAK,CAAG,oEAC1F,EAAc,CAAE,kBAAmB,EAAE,KAAK,kBAAmB,CAAC,CACjD,YAAY,QAAQ,SAAU,QAAQ,CAClE,CAAC,KAAK,SAAS,EAAG,CAClB,GAAI,EAAE,QAAU,EACd,OAEF,IAAM,EAAOC,EAAO,KAAK,CACnB,EAAe,EAAE,KAAK,KAC5B,EAAK,KAAK,EAAa,CACvB,IAAM,EAAmB,EAAE,GAAK,EAAE,GAE9B,EACJ,AAQE,EARE,EAAO,aAAe,IAAS,EAAE,MACN,EAAmB,GACV,GACN,GAEY,EAGtB,EAAmB,EADZ,EAI/B,IAAM,EAAuB,KAAK,IADJ,GAC+B,EAAoB,CAC3E,EAAW,EAAK,MAAM,CAE5B,GADiC,EAAS,uBAAuB,CAClC,EAAsB,CACnD,IACI,EAAuB,EAC3B,KAAO,EAAqB,OAAS,GAAG,CAEtC,GADA,EAAuB,EAAa,UAAU,EAAG,EAAqB,OAAS,EAAE,CAC7E,EAAqB,SAAW,EAAG,CACrC,EAAK,KAAK,MAAS,CACf,EAAS,uBAAuB,CAAG,GACrC,EAAK,KAAK,GAAG,CAEf,MAGF,GADA,EAAK,KAAK,EAAuB,MAAS,CACtC,EAAS,uBAAuB,EAAI,EACtC,SAIN,CACE,EAAO,aAAe,IACxB,EAAS,OAAO,OAAO,CAAC,KAAK,QAAS,sBAAsB,CAAC,KAAK,IAAM,GAAM,EAAE,GAAK,EAAE,GAAK,GAAG,CAAC,KAAK,IAAK,EAAwB,EAAE,CAAC,KAAK,cAAe,MAAM,CAAC,KAAK,oBAAqB,SAAS,CAAC,KAAM,GAAM,EAAE,MAAQ,EAAY,EAAE,MAAM,CAAG,GAAG,CAAC,KAAK,aAAc,SAAS,CAAC,KAAK,QAAU,GAC3R,EAAE,QAAU,EACP,iBAEW,sEAAwE,EAAgB,EAAE,KAAK,KAAK,CAAG,oEAC5G,EAAc,CAAE,kBAAmB,EAAE,KAAK,kBAAmB,CAAC,CACjD,YAAY,QAAQ,SAAU,QAAQ,CAClE,CAEJ,IAAM,EAAY,EAAY,QAAQ,CAChC,EAAO,EAAE,UAAU,oBAAoB,CAAC,KAAK,EAAU,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,KAAK,SAAU,EAAG,IAC3F,oCAAoC,IAAI,EAAE,KAAK,cAAgB,IAAI,EAAE,KAAK,gBAAkB,GAAG,GACtG,CAAC,KAAK,YAAc,GAAM,aAAa,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,CACzD,EAAK,OAAO,OAAO,CAAC,KAAK,QAAU,GAAM,EAAE,GAAK,EAAE,GAAG,CAAC,KAAK,SAAW,GAAM,EAAE,GAAK,EAAE,GAAG,CAAC,KAAK,QAAS,cAAc,CAAC,KAAK,OAAS,GAC3H,EAAE,OAAS,EAAW,EAAE,OAAO,KAAK,KAAK,CAAG,EAAW,EAAE,KAAK,KAAK,CAC1E,CAAC,KAAK,QAAU,GACD,EAAc,CAAE,kBAAmB,EAAE,KAAK,kBAAmB,CAAC,CAC/D,WACd,CAAC,KAAK,eAAgB,GAAI,CAAC,KAAK,SAAW,GACpC,EAAE,OAAS,EAAW,EAAE,OAAO,KAAK,KAAK,CAAG,EAAW,EAAE,KAAK,KAAK,CAC1E,CAAC,KAAK,eAAgB,EAAE,CAC1B,EAAK,OAAO,WAAW,CAAC,KAAK,MAAO,EAAI,IAAM,QAAQ,EAAG,GAAG,IAAI,CAAC,OAAO,OAAO,CAAC,KAAK,QAAU,GAAM,KAAK,IAAI,EAAG,EAAE,GAAK,EAAE,GAAK,EAAE,CAAC,CAAC,KAAK,SAAW,GAAM,KAAK,IAAI,EAAG,EAAE,GAAK,EAAE,GAAK,EAAE,CAAC,CACnK,EAAK,OAAO,OAAO,CAAC,KAAK,QAAS,eAAe,CAAC,KAAK,IAAM,IAAO,EAAE,GAAK,EAAE,IAAM,EAAE,CAAC,KAAK,IAAM,IAAO,EAAE,GAAK,EAAE,IAAM,EAAE,CAAC,KAAK,QAAU,GACtI,wEAA0E,EAAgB,EAAE,KAAK,KAAK,CAAG,IAC9G,EAAc,CAAE,kBAAmB,EAAE,KAAK,kBAAmB,CAAC,CACjD,YAAY,QAAQ,SAAU,QAAQ,CAClE,CAAC,KAAK,aAAc,EAAI,IAAM,aAAa,EAAG,GAAG,EAAE,GAAG,CAAC,KAAM,GAAM,EAAE,KAAK,KAAK,CACtE,KAAK,SAAS,EAAG,CAC1B,IAAM,EAAOA,EAAO,KAAK,CACnB,EAAY,EAAE,GAAK,EAAE,GACrB,EAAa,EAAE,GAAK,EAAE,GACtB,EAAW,EAAK,MAAM,CAEtB,EAAiB,EAAY,EAC7B,EAAkB,EAAa,EACrC,GAAI,EAAiB,IAAM,EAAkB,GAAI,CAC/C,EAAK,MAAM,UAAW,OAAO,CAC7B,OAEF,IAAI,EAAuB,SAAS,EAAK,MAAM,YAAY,CAAE,GAAG,CAG1D,EAAmB,GAGzB,KAAO,EAAS,uBAAuB,CAAG,GAAkB,EAAuB,GACjF,IACA,EAAK,MAAM,YAAa,GAAG,EAAqB,IAAI,CAEtD,IAAI,EAA2B,KAAK,IAClC,EACA,KAAK,IAAI,GAA0B,KAAK,MAAM,EAAuB,EAAiB,CAAC,CACxF,CACG,EAAiB,EAAuB,EAA8B,EAC1E,KAAO,EAAiB,GAAmB,EAAuB,IAChE,IACA,EAA2B,KAAK,IAC9B,EACA,KAAK,IAAI,GAA0B,KAAK,MAAM,EAAuB,EAAiB,CAAC,CACxF,CACG,IAA2B,GAAoB,IAAyB,KAG5E,EAAK,MAAM,YAAa,GAAG,EAAqB,IAAI,CACpD,EAAiB,EAAuB,EAA8B,EAIxE,EAAK,MAAM,YAAa,GAAG,EAAqB,IAAI,EAChD,EAAS,uBAAuB,CAAG,GAAkB,EAAuB,GAAoB,EAAkB,IACpH,EAAK,MAAM,UAAW,OAAO,EAE/B,CACE,EAAO,aAAe,IACL,EAAK,OAAO,OAAO,CAAC,KAAK,QAAS,eAAe,CAAC,KAAK,IAAM,IAAO,EAAE,GAAK,EAAE,IAAM,EAAE,CAAC,KAAK,IAAK,SAAS,EAAG,CAC7H,OAAQ,EAAE,GAAK,EAAE,IAAM,GACvB,CAAC,KAAK,QAAU,GACI,yEAA2E,EAAgB,EAAE,KAAK,KAAK,CAAG,IAC/G,EAAc,CAAE,kBAAmB,EAAE,KAAK,kBAAmB,CAAC,CACjD,YAAY,QAAQ,SAAU,QAAQ,CAClE,CAAC,KAAK,aAAc,EAAI,IAAM,aAAa,EAAG,GAAG,EAAE,GAAG,CAAC,KAAM,GAAM,EAAE,MAAQ,EAAY,EAAE,MAAM,CAAG,GAAG,CAC9F,KAAK,SAAS,EAAG,CAC1B,IAAM,EAAmBA,EAAO,KAAK,CAC/B,EAAiB,KAAK,WAC5B,GAAI,CAAC,EAAgB,CACnB,EAAiB,MAAM,UAAW,OAAO,CACzC,OAEF,IAAM,EAAeA,EAAO,EAAe,CAAC,OAAO,gBAAgB,CACnE,GAAI,EAAa,OAAO,EAAI,EAAa,MAAM,UAAU,GAAK,OAAQ,CACpE,EAAiB,MAAM,UAAW,OAAO,CACzC,OAEF,IAAM,EAAqB,WAAW,EAAa,MAAM,YAAY,CAAC,CAKhE,EAAsB,KAAK,IAC/B,EACA,KAAK,IAAI,GAAuB,KAAK,MAAM,EAAqB,GAAiB,CAAC,CACnF,CACD,EAAiB,MAAM,YAAa,GAAG,EAAoB,IAAI,CAE/D,IAAM,GADgB,EAAE,GAAK,EAAE,IAAM,EACE,EAAqB,EAAI,EAChE,EAAiB,KAAK,IAAK,EAAgB,CAC3C,IAAM,EAAY,EAAE,GAAK,EAAE,GAGrB,EAFkB,EAAE,GAAK,EAAE,GACP,EAEpB,EAAyB,EAAY,EACvC,EAAiB,MAAM,CAAC,uBAAuB,CAAG,GAA0B,EAAkB,EAAsB,GAAmB,EAAsB,EAC/J,EAAiB,MAAM,UAAW,OAAO,CAEzC,EAAiB,MAAM,UAAW,KAAK,EAEzC,CAGJ,EAAoB,EADG,EAAO,gBAAkB,EACP,YAAa,GAAQ,aAAe,GAAM,EAClF,OAAO,CAIa,WAHU,EAAO,SAAS,EAAO,EAAY,CAClE,OAAO,EAAW,GAAG,YAAY,EAChC,aAAa,CACmB,CAG/B,GAA6B,CAC/B,mBAAoB,QACpB,mBAAoB,IACpB,iBAAkB,UAClB,gBAAiB,QACjB,gBAAiB,IACjB,cAAe,UACf,WAAY,QACZ,cAAe,OACf,cAAe,OACf,WAAY,QACZ,WAAY,QACZ,cAAe,OAChB,CAiCG,GAAU,CACZ,SACA,IAAI,IAAK,CACP,OAAO,IAAI,GAEb,YACA,OAtC8B,GAAQ,CACtC,QAAS,GACP,EAAE,GAAK,CACT,IAAM,EAAU,EAAc,GAA4B,EAAS,CACnE,MAAO;;cAEK,EAAQ,mBAAmB;oBACrB,EAAQ,mBAAmB;YACnC,EAAQ,iBAAiB;;;cAGvB,EAAQ,gBAAgB;oBAClB,EAAQ,gBAAgB;YAChC,EAAQ,cAAc;;;YAGtB,EAAQ,WAAW;iBACd,EAAQ,cAAc;;;YAG3B,EAAQ,WAAW;iBACd,EAAQ,cAAc;;;YAG3B,EAAQ,WAAW;iBACd,EAAQ,cAAc;;KAGpC,YAAY,CAWd"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"./shiki-BE3D5Aiv.js";import"./chunk-FPAJGGOC-C1aXi2xg.js";import"./chunk-O7ZBX7Z2-BeCHiDgv.js";import"./chunk-S6J4BHB3-CjyTXs6v.js";import"./chunk-LBM3YZW2-DZbzQVsb.js";import"./chunk-76Q3JFCE-B14S6aW0.js";import"./chunk-T53DSG4Q-DhrZo8eD.js";import"./chunk-LHMN2FUI-DqEW0ey0.js";import"./chunk-FWNWRKHM-Cgpg7KEB.js";import{g as e,h as t}from"./src-CK1-XQNk.js";import{B as n,C as r,T as i,U as a,_ as o,a as s,d as c,v as l,y as u,z as d}from"./chunk-ABZYJK2D-
|
|
1
|
+
import"./shiki-BE3D5Aiv.js";import"./chunk-FPAJGGOC-C1aXi2xg.js";import"./chunk-O7ZBX7Z2-BeCHiDgv.js";import"./chunk-S6J4BHB3-CjyTXs6v.js";import"./chunk-LBM3YZW2-DZbzQVsb.js";import"./chunk-76Q3JFCE-B14S6aW0.js";import"./chunk-T53DSG4Q-DhrZo8eD.js";import"./chunk-LHMN2FUI-DqEW0ey0.js";import"./chunk-FWNWRKHM-Cgpg7KEB.js";import{g as e,h as t}from"./src-CK1-XQNk.js";import{B as n,C as r,T as i,U as a,_ as o,a as s,d as c,v as l,y as u,z as d}from"./chunk-ABZYJK2D-x9qEUFTA.js";import{i as f}from"./chunk-S3R3BYOJ-6YeBT-eZ.js";import{t as p}from"./chunk-EXTU4WIE-FY5Pwz_y.js";import"./dist-CINaey7q.js";import{t as m}from"./chunk-4BX2VUAB-D2wsGaeQ.js";import{t as h}from"./mermaid-parser.core-CIsAFS0G.js";var g={showLegend:!0,ticks:5,max:null,min:0,graticule:`circle`},_={axes:[],curves:[],options:g},v=structuredClone(_),y=c.radar,b=t(()=>f({...y,...u().radar}),`getConfig`),x=t(()=>v.axes,`getAxes`),S=t(()=>v.curves,`getCurves`),C=t(()=>v.options,`getOptions`),w=t(e=>{v.axes=e.map(e=>({name:e.name,label:e.label??e.name}))},`setAxes`),T=t(e=>{v.curves=e.map(e=>({name:e.name,label:e.label??e.name,entries:E(e.entries)}))},`setCurves`),E=t(e=>{if(e[0].axis==null)return e.map(e=>e.value);let t=x();if(t.length===0)throw Error(`Axes must be populated before curves for reference entries`);return t.map(t=>{let n=e.find(e=>e.axis?.$refText===t.name);if(n===void 0)throw Error(`Missing entry for axis `+t.label);return n.value})},`computeCurveEntries`),D={getAxes:x,getCurves:S,getOptions:C,setAxes:w,setCurves:T,setOptions:t(e=>{let t=e.reduce((e,t)=>(e[t.name]=t,e),{});v.options={showLegend:t.showLegend?.value??g.showLegend,ticks:t.ticks?.value??g.ticks,max:t.max?.value??g.max,min:t.min?.value??g.min,graticule:t.graticule?.value??g.graticule}},`setOptions`),getConfig:b,clear:t(()=>{s(),v=structuredClone(_)},`clear`),setAccTitle:n,getAccTitle:l,setDiagramTitle:a,getDiagramTitle:r,getAccDescription:o,setAccDescription:d},O=t(e=>{m(e,D);let{axes:t,curves:n,options:r}=e;D.setAxes(t),D.setCurves(n),D.setOptions(r)},`populate`),k={parse:t(async t=>{let n=await h(`radar`,t);e.debug(n),O(n)},`parse`)},A=t((e,t,n,r)=>{let i=r.db,a=i.getAxes(),o=i.getCurves(),s=i.getOptions(),c=i.getConfig(),l=i.getDiagramTitle(),u=j(p(t),c),d=s.max??Math.max(...o.map(e=>Math.max(...e.entries))),f=s.min,m=Math.min(c.width,c.height)/2;M(u,a,m,s.ticks,s.graticule),N(u,a,m,c),P(u,a,o,f,d,s.graticule,c),L(u,o,s.showLegend,c),u.append(`text`).attr(`class`,`radarTitle`).text(l).attr(`x`,0).attr(`y`,-c.height/2-c.marginTop)},`draw`),j=t((e,t)=>{let n=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,i={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return e.attr(`viewbox`,`0 0 ${n} ${r}`).attr(`width`,n).attr(`height`,r),e.append(`g`).attr(`transform`,`translate(${i.x}, ${i.y})`)},`drawFrame`),M=t((e,t,n,r,i)=>{if(i===`circle`)for(let t=0;t<r;t++){let i=n*(t+1)/r;e.append(`circle`).attr(`r`,i).attr(`class`,`radarGraticule`)}else if(i===`polygon`){let i=t.length;for(let a=0;a<r;a++){let o=n*(a+1)/r,s=t.map((e,t)=>{let n=2*t*Math.PI/i-Math.PI/2;return`${o*Math.cos(n)},${o*Math.sin(n)}`}).join(` `);e.append(`polygon`).attr(`points`,s).attr(`class`,`radarGraticule`)}}},`drawGraticule`),N=t((e,t,n,r)=>{let i=t.length;for(let a=0;a<i;a++){let o=t[a].label,s=2*a*Math.PI/i-Math.PI/2;e.append(`line`).attr(`x1`,0).attr(`y1`,0).attr(`x2`,n*r.axisScaleFactor*Math.cos(s)).attr(`y2`,n*r.axisScaleFactor*Math.sin(s)).attr(`class`,`radarAxisLine`),e.append(`text`).text(o).attr(`x`,n*r.axisLabelFactor*Math.cos(s)).attr(`y`,n*r.axisLabelFactor*Math.sin(s)).attr(`class`,`radarAxisLabel`)}},`drawAxes`);function P(e,t,n,r,i,a,o){let s=t.length,c=Math.min(o.width,o.height)/2;n.forEach((t,n)=>{if(t.entries.length!==s)return;let l=t.entries.map((e,t)=>{let n=2*Math.PI*t/s-Math.PI/2,a=F(e,r,i,c);return{x:a*Math.cos(n),y:a*Math.sin(n)}});a===`circle`?e.append(`path`).attr(`d`,I(l,o.curveTension)).attr(`class`,`radarCurve-${n}`):a===`polygon`&&e.append(`polygon`).attr(`points`,l.map(e=>`${e.x},${e.y}`).join(` `)).attr(`class`,`radarCurve-${n}`)})}t(P,`drawCurves`);function F(e,t,n,r){return r*(Math.min(Math.max(e,t),n)-t)/(n-t)}t(F,`relativeRadius`);function I(e,t){let n=e.length,r=`M${e[0].x},${e[0].y}`;for(let i=0;i<n;i++){let a=e[(i-1+n)%n],o=e[i],s=e[(i+1)%n],c=e[(i+2)%n],l={x:o.x+(s.x-a.x)*t,y:o.y+(s.y-a.y)*t},u={x:s.x-(c.x-o.x)*t,y:s.y-(c.y-o.y)*t};r+=` C${l.x},${l.y} ${u.x},${u.y} ${s.x},${s.y}`}return`${r} Z`}t(I,`closedRoundCurve`);function L(e,t,n,r){if(!n)return;let i=(r.width/2+r.marginRight)*3/4,a=-(r.height/2+r.marginTop)*3/4;t.forEach((t,n)=>{let r=e.append(`g`).attr(`transform`,`translate(${i}, ${a+n*20})`);r.append(`rect`).attr(`width`,12).attr(`height`,12).attr(`class`,`radarLegendBox-${n}`),r.append(`text`).attr(`x`,16).attr(`y`,0).attr(`class`,`radarLegendText`).text(t.label)})}t(L,`drawLegend`);var R={draw:A},z=t((e,t)=>{let n=``;for(let r=0;r<e.THEME_COLOR_LIMIT;r++){let i=e[`cScale${r}`];n+=`
|
|
2
2
|
.radarCurve-${r} {
|
|
3
3
|
color: ${i};
|
|
4
4
|
fill: ${i};
|
|
@@ -41,4 +41,4 @@ import"./shiki-BE3D5Aiv.js";import"./chunk-FPAJGGOC-C1aXi2xg.js";import"./chunk-
|
|
|
41
41
|
}
|
|
42
42
|
${z(t,n)}
|
|
43
43
|
`},`styles`)};export{V as diagram};
|
|
44
|
-
//# sourceMappingURL=diagram-QEK2KX5R-
|
|
44
|
+
//# sourceMappingURL=diagram-QEK2KX5R-Dk_Ips1R.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagram-QEK2KX5R-WcE69a1G.js","names":["getThemeVariables"],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-QEK2KX5R.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-EXTU4WIE.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n clear,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n getThemeVariables,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/radar/db.ts\nvar defaultOptions = {\n showLegend: true,\n ticks: 5,\n max: null,\n min: 0,\n graticule: \"circle\"\n};\nvar defaultRadarData = {\n axes: [],\n curves: [],\n options: defaultOptions\n};\nvar data = structuredClone(defaultRadarData);\nvar DEFAULT_RADAR_CONFIG = defaultConfig_default.radar;\nvar getConfig2 = /* @__PURE__ */ __name(() => {\n const config = cleanAndMerge({\n ...DEFAULT_RADAR_CONFIG,\n ...getConfig().radar\n });\n return config;\n}, \"getConfig\");\nvar getAxes = /* @__PURE__ */ __name(() => data.axes, \"getAxes\");\nvar getCurves = /* @__PURE__ */ __name(() => data.curves, \"getCurves\");\nvar getOptions = /* @__PURE__ */ __name(() => data.options, \"getOptions\");\nvar setAxes = /* @__PURE__ */ __name((axes) => {\n data.axes = axes.map((axis) => {\n return {\n name: axis.name,\n label: axis.label ?? axis.name\n };\n });\n}, \"setAxes\");\nvar setCurves = /* @__PURE__ */ __name((curves) => {\n data.curves = curves.map((curve) => {\n return {\n name: curve.name,\n label: curve.label ?? curve.name,\n entries: computeCurveEntries(curve.entries)\n };\n });\n}, \"setCurves\");\nvar computeCurveEntries = /* @__PURE__ */ __name((entries) => {\n if (entries[0].axis == void 0) {\n return entries.map((entry) => entry.value);\n }\n const axes = getAxes();\n if (axes.length === 0) {\n throw new Error(\"Axes must be populated before curves for reference entries\");\n }\n return axes.map((axis) => {\n const entry = entries.find((entry2) => entry2.axis?.$refText === axis.name);\n if (entry === void 0) {\n throw new Error(\"Missing entry for axis \" + axis.label);\n }\n return entry.value;\n });\n}, \"computeCurveEntries\");\nvar setOptions = /* @__PURE__ */ __name((options) => {\n const optionMap = options.reduce(\n (acc, option) => {\n acc[option.name] = option;\n return acc;\n },\n {}\n );\n data.options = {\n showLegend: optionMap.showLegend?.value ?? defaultOptions.showLegend,\n ticks: optionMap.ticks?.value ?? defaultOptions.ticks,\n max: optionMap.max?.value ?? defaultOptions.max,\n min: optionMap.min?.value ?? defaultOptions.min,\n graticule: optionMap.graticule?.value ?? defaultOptions.graticule\n };\n}, \"setOptions\");\nvar clear2 = /* @__PURE__ */ __name(() => {\n clear();\n data = structuredClone(defaultRadarData);\n}, \"clear\");\nvar db = {\n getAxes,\n getCurves,\n getOptions,\n setAxes,\n setCurves,\n setOptions,\n getConfig: getConfig2,\n clear: clear2,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription\n};\n\n// src/diagrams/radar/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar populate = /* @__PURE__ */ __name((ast) => {\n populateCommonDb(ast, db);\n const { axes, curves, options } = ast;\n db.setAxes(axes);\n db.setCurves(curves);\n db.setOptions(options);\n}, \"populate\");\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"radar\", input);\n log.debug(ast);\n populate(ast);\n }, \"parse\")\n};\n\n// src/diagrams/radar/renderer.ts\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const db2 = diagram2.db;\n const axes = db2.getAxes();\n const curves = db2.getCurves();\n const options = db2.getOptions();\n const config = db2.getConfig();\n const title = db2.getDiagramTitle();\n const svg = selectSvgElement(id);\n const g = drawFrame(svg, config);\n const maxValue = options.max ?? Math.max(...curves.map((curve) => Math.max(...curve.entries)));\n const minValue = options.min;\n const radius = Math.min(config.width, config.height) / 2;\n drawGraticule(g, axes, radius, options.ticks, options.graticule);\n drawAxes(g, axes, radius, config);\n drawCurves(g, axes, curves, minValue, maxValue, options.graticule, config);\n drawLegend(g, curves, options.showLegend, config);\n g.append(\"text\").attr(\"class\", \"radarTitle\").text(title).attr(\"x\", 0).attr(\"y\", -config.height / 2 - config.marginTop);\n}, \"draw\");\nvar drawFrame = /* @__PURE__ */ __name((svg, config) => {\n const totalWidth = config.width + config.marginLeft + config.marginRight;\n const totalHeight = config.height + config.marginTop + config.marginBottom;\n const center = {\n x: config.marginLeft + config.width / 2,\n y: config.marginTop + config.height / 2\n };\n svg.attr(\"viewbox\", `0 0 ${totalWidth} ${totalHeight}`).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n return svg.append(\"g\").attr(\"transform\", `translate(${center.x}, ${center.y})`);\n}, \"drawFrame\");\nvar drawGraticule = /* @__PURE__ */ __name((g, axes, radius, ticks, graticule) => {\n if (graticule === \"circle\") {\n for (let i = 0; i < ticks; i++) {\n const r = radius * (i + 1) / ticks;\n g.append(\"circle\").attr(\"r\", r).attr(\"class\", \"radarGraticule\");\n }\n } else if (graticule === \"polygon\") {\n const numAxes = axes.length;\n for (let i = 0; i < ticks; i++) {\n const r = radius * (i + 1) / ticks;\n const points = axes.map((_, j) => {\n const angle = 2 * j * Math.PI / numAxes - Math.PI / 2;\n const x = r * Math.cos(angle);\n const y = r * Math.sin(angle);\n return `${x},${y}`;\n }).join(\" \");\n g.append(\"polygon\").attr(\"points\", points).attr(\"class\", \"radarGraticule\");\n }\n }\n}, \"drawGraticule\");\nvar drawAxes = /* @__PURE__ */ __name((g, axes, radius, config) => {\n const numAxes = axes.length;\n for (let i = 0; i < numAxes; i++) {\n const label = axes[i].label;\n const angle = 2 * i * Math.PI / numAxes - Math.PI / 2;\n g.append(\"line\").attr(\"x1\", 0).attr(\"y1\", 0).attr(\"x2\", radius * config.axisScaleFactor * Math.cos(angle)).attr(\"y2\", radius * config.axisScaleFactor * Math.sin(angle)).attr(\"class\", \"radarAxisLine\");\n g.append(\"text\").text(label).attr(\"x\", radius * config.axisLabelFactor * Math.cos(angle)).attr(\"y\", radius * config.axisLabelFactor * Math.sin(angle)).attr(\"class\", \"radarAxisLabel\");\n }\n}, \"drawAxes\");\nfunction drawCurves(g, axes, curves, minValue, maxValue, graticule, config) {\n const numAxes = axes.length;\n const radius = Math.min(config.width, config.height) / 2;\n curves.forEach((curve, index) => {\n if (curve.entries.length !== numAxes) {\n return;\n }\n const points = curve.entries.map((entry, i) => {\n const angle = 2 * Math.PI * i / numAxes - Math.PI / 2;\n const r = relativeRadius(entry, minValue, maxValue, radius);\n const x = r * Math.cos(angle);\n const y = r * Math.sin(angle);\n return { x, y };\n });\n if (graticule === \"circle\") {\n g.append(\"path\").attr(\"d\", closedRoundCurve(points, config.curveTension)).attr(\"class\", `radarCurve-${index}`);\n } else if (graticule === \"polygon\") {\n g.append(\"polygon\").attr(\"points\", points.map((p) => `${p.x},${p.y}`).join(\" \")).attr(\"class\", `radarCurve-${index}`);\n }\n });\n}\n__name(drawCurves, \"drawCurves\");\nfunction relativeRadius(value, minValue, maxValue, radius) {\n const clippedValue = Math.min(Math.max(value, minValue), maxValue);\n return radius * (clippedValue - minValue) / (maxValue - minValue);\n}\n__name(relativeRadius, \"relativeRadius\");\nfunction closedRoundCurve(points, tension) {\n const numPoints = points.length;\n let d = `M${points[0].x},${points[0].y}`;\n for (let i = 0; i < numPoints; i++) {\n const p0 = points[(i - 1 + numPoints) % numPoints];\n const p1 = points[i];\n const p2 = points[(i + 1) % numPoints];\n const p3 = points[(i + 2) % numPoints];\n const cp1 = {\n x: p1.x + (p2.x - p0.x) * tension,\n y: p1.y + (p2.y - p0.y) * tension\n };\n const cp2 = {\n x: p2.x - (p3.x - p1.x) * tension,\n y: p2.y - (p3.y - p1.y) * tension\n };\n d += ` C${cp1.x},${cp1.y} ${cp2.x},${cp2.y} ${p2.x},${p2.y}`;\n }\n return `${d} Z`;\n}\n__name(closedRoundCurve, \"closedRoundCurve\");\nfunction drawLegend(g, curves, showLegend, config) {\n if (!showLegend) {\n return;\n }\n const legendX = (config.width / 2 + config.marginRight) * 3 / 4;\n const legendY = -(config.height / 2 + config.marginTop) * 3 / 4;\n const lineHeight = 20;\n curves.forEach((curve, index) => {\n const itemGroup = g.append(\"g\").attr(\"transform\", `translate(${legendX}, ${legendY + index * lineHeight})`);\n itemGroup.append(\"rect\").attr(\"width\", 12).attr(\"height\", 12).attr(\"class\", `radarLegendBox-${index}`);\n itemGroup.append(\"text\").attr(\"x\", 16).attr(\"y\", 0).attr(\"class\", \"radarLegendText\").text(curve.label);\n });\n}\n__name(drawLegend, \"drawLegend\");\nvar renderer = { draw };\n\n// src/diagrams/radar/styles.ts\nvar genIndexStyles = /* @__PURE__ */ __name((themeVariables, radarOptions) => {\n let sections = \"\";\n for (let i = 0; i < themeVariables.THEME_COLOR_LIMIT; i++) {\n const indexColor = themeVariables[`cScale${i}`];\n sections += `\n\t\t.radarCurve-${i} {\n\t\t\tcolor: ${indexColor};\n\t\t\tfill: ${indexColor};\n\t\t\tfill-opacity: ${radarOptions.curveOpacity};\n\t\t\tstroke: ${indexColor};\n\t\t\tstroke-width: ${radarOptions.curveStrokeWidth};\n\t\t}\n\t\t.radarLegendBox-${i} {\n\t\t\tfill: ${indexColor};\n\t\t\tfill-opacity: ${radarOptions.curveOpacity};\n\t\t\tstroke: ${indexColor};\n\t\t}\n\t\t`;\n }\n return sections;\n}, \"genIndexStyles\");\nvar buildRadarStyleOptions = /* @__PURE__ */ __name((radar) => {\n const defaultThemeVariables = getThemeVariables();\n const currentConfig = getConfig();\n const themeVariables = cleanAndMerge(defaultThemeVariables, currentConfig.themeVariables);\n const radarOptions = cleanAndMerge(themeVariables.radar, radar);\n return { themeVariables, radarOptions };\n}, \"buildRadarStyleOptions\");\nvar styles = /* @__PURE__ */ __name(({ radar } = {}) => {\n const { themeVariables, radarOptions } = buildRadarStyleOptions(radar);\n return `\n\t.radarTitle {\n\t\tfont-size: ${themeVariables.fontSize};\n\t\tcolor: ${themeVariables.titleColor};\n\t\tdominant-baseline: hanging;\n\t\ttext-anchor: middle;\n\t}\n\t.radarAxisLine {\n\t\tstroke: ${radarOptions.axisColor};\n\t\tstroke-width: ${radarOptions.axisStrokeWidth};\n\t}\n\t.radarAxisLabel {\n\t\tdominant-baseline: middle;\n\t\ttext-anchor: middle;\n\t\tfont-size: ${radarOptions.axisLabelFontSize}px;\n\t\tcolor: ${radarOptions.axisColor};\n\t}\n\t.radarGraticule {\n\t\tfill: ${radarOptions.graticuleColor};\n\t\tfill-opacity: ${radarOptions.graticuleOpacity};\n\t\tstroke: ${radarOptions.graticuleColor};\n\t\tstroke-width: ${radarOptions.graticuleStrokeWidth};\n\t}\n\t.radarLegendText {\n\t\ttext-anchor: start;\n\t\tfont-size: ${radarOptions.legendFontSize}px;\n\t\tdominant-baseline: hanging;\n\t}\n\t${genIndexStyles(themeVariables, radarOptions)}\n\t`;\n}, \"styles\");\n\n// src/diagrams/radar/diagram.ts\nvar diagram = {\n parser,\n db,\n renderer,\n styles\n};\nexport {\n diagram\n};\n"],"x_google_ignoreList":[0],"mappings":"qsBA2BA,IAAI,EAAiB,CACnB,WAAY,GACZ,MAAO,EACP,IAAK,KACL,IAAK,EACL,UAAW,SACZ,CACG,EAAmB,CACrB,KAAM,EAAE,CACR,OAAQ,EAAE,CACV,QAAS,EACV,CACG,EAAO,gBAAgB,EAAiB,CACxC,EAAuB,EAAsB,MAC7C,EAA6B,MAChB,EAAc,CAC3B,GAAG,EACH,GAAG,GAAW,CAAC,MAChB,CAAC,CAED,YAAY,CACX,EAA0B,MAAa,EAAK,KAAM,UAAU,CAC5D,EAA4B,MAAa,EAAK,OAAQ,YAAY,CAClE,EAA6B,MAAa,EAAK,QAAS,aAAa,CACrE,EAA0B,EAAQ,GAAS,CAC7C,EAAK,KAAO,EAAK,IAAK,IACb,CACL,KAAM,EAAK,KACX,MAAO,EAAK,OAAS,EAAK,KAC3B,EACD,EACD,UAAU,CACT,EAA4B,EAAQ,GAAW,CACjD,EAAK,OAAS,EAAO,IAAK,IACjB,CACL,KAAM,EAAM,KACZ,MAAO,EAAM,OAAS,EAAM,KAC5B,QAAS,EAAoB,EAAM,QAAQ,CAC5C,EACD,EACD,YAAY,CACX,EAAsC,EAAQ,GAAY,CAC5D,GAAI,EAAQ,GAAG,MAAQ,KACrB,OAAO,EAAQ,IAAK,GAAU,EAAM,MAAM,CAE5C,IAAM,EAAO,GAAS,CACtB,GAAI,EAAK,SAAW,EAClB,MAAU,MAAM,6DAA6D,CAE/E,OAAO,EAAK,IAAK,GAAS,CACxB,IAAM,EAAQ,EAAQ,KAAM,GAAW,EAAO,MAAM,WAAa,EAAK,KAAK,CAC3E,GAAI,IAAU,IAAK,GACjB,MAAU,MAAM,0BAA4B,EAAK,MAAM,CAEzD,OAAO,EAAM,OACb,EACD,sBAAsB,CAqBrB,EAAK,CACP,UACA,YACA,aACA,UACA,YACA,WA1B+B,EAAQ,GAAY,CACnD,IAAM,EAAY,EAAQ,QACvB,EAAK,KACJ,EAAI,EAAO,MAAQ,EACZ,GAET,EAAE,CACH,CACD,EAAK,QAAU,CACb,WAAY,EAAU,YAAY,OAAS,EAAe,WAC1D,MAAO,EAAU,OAAO,OAAS,EAAe,MAChD,IAAK,EAAU,KAAK,OAAS,EAAe,IAC5C,IAAK,EAAU,KAAK,OAAS,EAAe,IAC5C,UAAW,EAAU,WAAW,OAAS,EAAe,UACzD,EACA,aAAa,CAYd,UAAW,EACX,MAZ2B,MAAa,CACxC,GAAO,CACP,EAAO,gBAAgB,EAAiB,EACvC,QAAQ,CAUT,cACA,cACA,kBACA,kBACA,oBACA,oBACD,CAIG,EAA2B,EAAQ,GAAQ,CAC7C,EAAiB,EAAK,EAAG,CACzB,GAAM,CAAE,OAAM,SAAQ,WAAY,EAClC,EAAG,QAAQ,EAAK,CAChB,EAAG,UAAU,EAAO,CACpB,EAAG,WAAW,EAAQ,EACrB,WAAW,CACV,EAAS,CACX,MAAuB,EAAO,KAAO,IAAU,CAC7C,IAAM,EAAM,MAAM,EAAM,QAAS,EAAM,CACvC,EAAI,MAAM,EAAI,CACd,EAAS,EAAI,EACZ,QAAQ,CACZ,CAGG,EAAuB,GAAQ,EAAO,EAAI,EAAU,IAAa,CACnE,IAAM,EAAM,EAAS,GACf,EAAO,EAAI,SAAS,CACpB,EAAS,EAAI,WAAW,CACxB,EAAU,EAAI,YAAY,CAC1B,EAAS,EAAI,WAAW,CACxB,EAAQ,EAAI,iBAAiB,CAE7B,EAAI,EADE,EAAiB,EAAG,CACP,EAAO,CAC1B,EAAW,EAAQ,KAAO,KAAK,IAAI,GAAG,EAAO,IAAK,GAAU,KAAK,IAAI,GAAG,EAAM,QAAQ,CAAC,CAAC,CACxF,EAAW,EAAQ,IACnB,EAAS,KAAK,IAAI,EAAO,MAAO,EAAO,OAAO,CAAG,EACvD,EAAc,EAAG,EAAM,EAAQ,EAAQ,MAAO,EAAQ,UAAU,CAChE,EAAS,EAAG,EAAM,EAAQ,EAAO,CACjC,EAAW,EAAG,EAAM,EAAQ,EAAU,EAAU,EAAQ,UAAW,EAAO,CAC1E,EAAW,EAAG,EAAQ,EAAQ,WAAY,EAAO,CACjD,EAAE,OAAO,OAAO,CAAC,KAAK,QAAS,aAAa,CAAC,KAAK,EAAM,CAAC,KAAK,IAAK,EAAE,CAAC,KAAK,IAAK,CAAC,EAAO,OAAS,EAAI,EAAO,UAAU,EACrH,OAAO,CACN,EAA4B,GAAQ,EAAK,IAAW,CACtD,IAAM,EAAa,EAAO,MAAQ,EAAO,WAAa,EAAO,YACvD,EAAc,EAAO,OAAS,EAAO,UAAY,EAAO,aACxD,EAAS,CACb,EAAG,EAAO,WAAa,EAAO,MAAQ,EACtC,EAAG,EAAO,UAAY,EAAO,OAAS,EACvC,CAED,OADA,EAAI,KAAK,UAAW,OAAO,EAAW,GAAG,IAAc,CAAC,KAAK,QAAS,EAAW,CAAC,KAAK,SAAU,EAAY,CACtG,EAAI,OAAO,IAAI,CAAC,KAAK,YAAa,aAAa,EAAO,EAAE,IAAI,EAAO,EAAE,GAAG,EAC9E,YAAY,CACX,EAAgC,GAAQ,EAAG,EAAM,EAAQ,EAAO,IAAc,CAChF,GAAI,IAAc,SAChB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,IAAK,CAC9B,IAAM,EAAI,GAAU,EAAI,GAAK,EAC7B,EAAE,OAAO,SAAS,CAAC,KAAK,IAAK,EAAE,CAAC,KAAK,QAAS,iBAAiB,SAExD,IAAc,UAAW,CAClC,IAAM,EAAU,EAAK,OACrB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,IAAK,CAC9B,IAAM,EAAI,GAAU,EAAI,GAAK,EACvB,EAAS,EAAK,KAAK,EAAG,IAAM,CAChC,IAAM,EAAQ,EAAI,EAAI,KAAK,GAAK,EAAU,KAAK,GAAK,EAGpD,MAAO,GAFG,EAAI,KAAK,IAAI,EAAM,CAEjB,GADF,EAAI,KAAK,IAAI,EAAM,IAE7B,CAAC,KAAK,IAAI,CACZ,EAAE,OAAO,UAAU,CAAC,KAAK,SAAU,EAAO,CAAC,KAAK,QAAS,iBAAiB,IAG7E,gBAAgB,CACf,EAA2B,GAAQ,EAAG,EAAM,EAAQ,IAAW,CACjE,IAAM,EAAU,EAAK,OACrB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAS,IAAK,CAChC,IAAM,EAAQ,EAAK,GAAG,MAChB,EAAQ,EAAI,EAAI,KAAK,GAAK,EAAU,KAAK,GAAK,EACpD,EAAE,OAAO,OAAO,CAAC,KAAK,KAAM,EAAE,CAAC,KAAK,KAAM,EAAE,CAAC,KAAK,KAAM,EAAS,EAAO,gBAAkB,KAAK,IAAI,EAAM,CAAC,CAAC,KAAK,KAAM,EAAS,EAAO,gBAAkB,KAAK,IAAI,EAAM,CAAC,CAAC,KAAK,QAAS,gBAAgB,CACvM,EAAE,OAAO,OAAO,CAAC,KAAK,EAAM,CAAC,KAAK,IAAK,EAAS,EAAO,gBAAkB,KAAK,IAAI,EAAM,CAAC,CAAC,KAAK,IAAK,EAAS,EAAO,gBAAkB,KAAK,IAAI,EAAM,CAAC,CAAC,KAAK,QAAS,iBAAiB,GAEvL,WAAW,CACd,SAAS,EAAW,EAAG,EAAM,EAAQ,EAAU,EAAU,EAAW,EAAQ,CAC1E,IAAM,EAAU,EAAK,OACf,EAAS,KAAK,IAAI,EAAO,MAAO,EAAO,OAAO,CAAG,EACvD,EAAO,SAAS,EAAO,IAAU,CAC/B,GAAI,EAAM,QAAQ,SAAW,EAC3B,OAEF,IAAM,EAAS,EAAM,QAAQ,KAAK,EAAO,IAAM,CAC7C,IAAM,EAAQ,EAAI,KAAK,GAAK,EAAI,EAAU,KAAK,GAAK,EAC9C,EAAI,EAAe,EAAO,EAAU,EAAU,EAAO,CAG3D,MAAO,CAAE,EAFC,EAAI,KAAK,IAAI,EAAM,CAEjB,EADF,EAAI,KAAK,IAAI,EAAM,CACd,EACf,CACE,IAAc,SAChB,EAAE,OAAO,OAAO,CAAC,KAAK,IAAK,EAAiB,EAAQ,EAAO,aAAa,CAAC,CAAC,KAAK,QAAS,cAAc,IAAQ,CACrG,IAAc,WACvB,EAAE,OAAO,UAAU,CAAC,KAAK,SAAU,EAAO,IAAK,GAAM,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,QAAS,cAAc,IAAQ,EAEvH,CAEJ,EAAO,EAAY,aAAa,CAChC,SAAS,EAAe,EAAO,EAAU,EAAU,EAAQ,CAEzD,OAAO,GADc,KAAK,IAAI,KAAK,IAAI,EAAO,EAAS,CAAE,EAAS,CAClC,IAAa,EAAW,GAE1D,EAAO,EAAgB,iBAAiB,CACxC,SAAS,EAAiB,EAAQ,EAAS,CACzC,IAAM,EAAY,EAAO,OACrB,EAAI,IAAI,EAAO,GAAG,EAAE,GAAG,EAAO,GAAG,IACrC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,IAAK,CAClC,IAAM,EAAK,GAAQ,EAAI,EAAI,GAAa,GAClC,EAAK,EAAO,GACZ,EAAK,GAAQ,EAAI,GAAK,GACtB,EAAK,GAAQ,EAAI,GAAK,GACtB,EAAM,CACV,EAAG,EAAG,GAAK,EAAG,EAAI,EAAG,GAAK,EAC1B,EAAG,EAAG,GAAK,EAAG,EAAI,EAAG,GAAK,EAC3B,CACK,EAAM,CACV,EAAG,EAAG,GAAK,EAAG,EAAI,EAAG,GAAK,EAC1B,EAAG,EAAG,GAAK,EAAG,EAAI,EAAG,GAAK,EAC3B,CACD,GAAK,KAAK,EAAI,EAAE,GAAG,EAAI,EAAE,GAAG,EAAI,EAAE,GAAG,EAAI,EAAE,GAAG,EAAG,EAAE,GAAG,EAAG,IAE3D,MAAO,GAAG,EAAE,IAEd,EAAO,EAAkB,mBAAmB,CAC5C,SAAS,EAAW,EAAG,EAAQ,EAAY,EAAQ,CACjD,GAAI,CAAC,EACH,OAEF,IAAM,GAAW,EAAO,MAAQ,EAAI,EAAO,aAAe,EAAI,EACxD,EAAU,EAAE,EAAO,OAAS,EAAI,EAAO,WAAa,EAAI,EAE9D,EAAO,SAAS,EAAO,IAAU,CAC/B,IAAM,EAAY,EAAE,OAAO,IAAI,CAAC,KAAK,YAAa,aAAa,EAAQ,IAAI,EAAU,EAAQ,GAAW,GAAG,CAC3G,EAAU,OAAO,OAAO,CAAC,KAAK,QAAS,GAAG,CAAC,KAAK,SAAU,GAAG,CAAC,KAAK,QAAS,kBAAkB,IAAQ,CACtG,EAAU,OAAO,OAAO,CAAC,KAAK,IAAK,GAAG,CAAC,KAAK,IAAK,EAAE,CAAC,KAAK,QAAS,kBAAkB,CAAC,KAAK,EAAM,MAAM,EACtG,CAEJ,EAAO,EAAY,aAAa,CAChC,IAAI,EAAW,CAAE,OAAM,CAGnB,EAAiC,GAAQ,EAAgB,IAAiB,CAC5E,IAAI,EAAW,GACf,IAAK,IAAI,EAAI,EAAG,EAAI,EAAe,kBAAmB,IAAK,CACzD,IAAM,EAAa,EAAe,SAAS,KAC3C,GAAY;gBACA,EAAE;YACN,EAAW;WACZ,EAAW;mBACH,EAAa,aAAa;aAChC,EAAW;mBACL,EAAa,iBAAiB;;oBAE7B,EAAE;WACX,EAAW;mBACH,EAAa,aAAa;aAChC,EAAW;;IAItB,OAAO,GACN,iBAAiB,CAChB,EAAyC,EAAQ,GAAU,CAG7D,IAAM,EAAiB,EAFOA,GAAmB,CAC3B,GAAW,CACyC,eAAe,CAEzF,MAAO,CAAE,iBAAgB,aADJ,EAAc,EAAe,MAAO,EAAM,CACxB,EACtC,yBAAyB,CAoCxB,EAAU,CACZ,SACA,KACA,WACA,OAvC2B,GAAQ,CAAE,SAAU,EAAE,GAAK,CACtD,GAAM,CAAE,iBAAgB,gBAAiB,EAAuB,EAAM,CACtE,MAAO;;eAEM,EAAe,SAAS;WAC5B,EAAe,WAAW;;;;;YAKzB,EAAa,UAAU;kBACjB,EAAa,gBAAgB;;;;;eAKhC,EAAa,kBAAkB;WACnC,EAAa,UAAU;;;UAGxB,EAAa,eAAe;kBACpB,EAAa,iBAAiB;YACpC,EAAa,eAAe;kBACtB,EAAa,qBAAqB;;;;eAIrC,EAAa,eAAe;;;GAGxC,EAAe,EAAgB,EAAa,CAAC;IAE7C,SAAS,CAQX"}
|
|
1
|
+
{"version":3,"file":"diagram-QEK2KX5R-Dk_Ips1R.js","names":["getThemeVariables"],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-QEK2KX5R.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-EXTU4WIE.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n clear,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n getThemeVariables,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/radar/db.ts\nvar defaultOptions = {\n showLegend: true,\n ticks: 5,\n max: null,\n min: 0,\n graticule: \"circle\"\n};\nvar defaultRadarData = {\n axes: [],\n curves: [],\n options: defaultOptions\n};\nvar data = structuredClone(defaultRadarData);\nvar DEFAULT_RADAR_CONFIG = defaultConfig_default.radar;\nvar getConfig2 = /* @__PURE__ */ __name(() => {\n const config = cleanAndMerge({\n ...DEFAULT_RADAR_CONFIG,\n ...getConfig().radar\n });\n return config;\n}, \"getConfig\");\nvar getAxes = /* @__PURE__ */ __name(() => data.axes, \"getAxes\");\nvar getCurves = /* @__PURE__ */ __name(() => data.curves, \"getCurves\");\nvar getOptions = /* @__PURE__ */ __name(() => data.options, \"getOptions\");\nvar setAxes = /* @__PURE__ */ __name((axes) => {\n data.axes = axes.map((axis) => {\n return {\n name: axis.name,\n label: axis.label ?? axis.name\n };\n });\n}, \"setAxes\");\nvar setCurves = /* @__PURE__ */ __name((curves) => {\n data.curves = curves.map((curve) => {\n return {\n name: curve.name,\n label: curve.label ?? curve.name,\n entries: computeCurveEntries(curve.entries)\n };\n });\n}, \"setCurves\");\nvar computeCurveEntries = /* @__PURE__ */ __name((entries) => {\n if (entries[0].axis == void 0) {\n return entries.map((entry) => entry.value);\n }\n const axes = getAxes();\n if (axes.length === 0) {\n throw new Error(\"Axes must be populated before curves for reference entries\");\n }\n return axes.map((axis) => {\n const entry = entries.find((entry2) => entry2.axis?.$refText === axis.name);\n if (entry === void 0) {\n throw new Error(\"Missing entry for axis \" + axis.label);\n }\n return entry.value;\n });\n}, \"computeCurveEntries\");\nvar setOptions = /* @__PURE__ */ __name((options) => {\n const optionMap = options.reduce(\n (acc, option) => {\n acc[option.name] = option;\n return acc;\n },\n {}\n );\n data.options = {\n showLegend: optionMap.showLegend?.value ?? defaultOptions.showLegend,\n ticks: optionMap.ticks?.value ?? defaultOptions.ticks,\n max: optionMap.max?.value ?? defaultOptions.max,\n min: optionMap.min?.value ?? defaultOptions.min,\n graticule: optionMap.graticule?.value ?? defaultOptions.graticule\n };\n}, \"setOptions\");\nvar clear2 = /* @__PURE__ */ __name(() => {\n clear();\n data = structuredClone(defaultRadarData);\n}, \"clear\");\nvar db = {\n getAxes,\n getCurves,\n getOptions,\n setAxes,\n setCurves,\n setOptions,\n getConfig: getConfig2,\n clear: clear2,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription\n};\n\n// src/diagrams/radar/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar populate = /* @__PURE__ */ __name((ast) => {\n populateCommonDb(ast, db);\n const { axes, curves, options } = ast;\n db.setAxes(axes);\n db.setCurves(curves);\n db.setOptions(options);\n}, \"populate\");\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"radar\", input);\n log.debug(ast);\n populate(ast);\n }, \"parse\")\n};\n\n// src/diagrams/radar/renderer.ts\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const db2 = diagram2.db;\n const axes = db2.getAxes();\n const curves = db2.getCurves();\n const options = db2.getOptions();\n const config = db2.getConfig();\n const title = db2.getDiagramTitle();\n const svg = selectSvgElement(id);\n const g = drawFrame(svg, config);\n const maxValue = options.max ?? Math.max(...curves.map((curve) => Math.max(...curve.entries)));\n const minValue = options.min;\n const radius = Math.min(config.width, config.height) / 2;\n drawGraticule(g, axes, radius, options.ticks, options.graticule);\n drawAxes(g, axes, radius, config);\n drawCurves(g, axes, curves, minValue, maxValue, options.graticule, config);\n drawLegend(g, curves, options.showLegend, config);\n g.append(\"text\").attr(\"class\", \"radarTitle\").text(title).attr(\"x\", 0).attr(\"y\", -config.height / 2 - config.marginTop);\n}, \"draw\");\nvar drawFrame = /* @__PURE__ */ __name((svg, config) => {\n const totalWidth = config.width + config.marginLeft + config.marginRight;\n const totalHeight = config.height + config.marginTop + config.marginBottom;\n const center = {\n x: config.marginLeft + config.width / 2,\n y: config.marginTop + config.height / 2\n };\n svg.attr(\"viewbox\", `0 0 ${totalWidth} ${totalHeight}`).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n return svg.append(\"g\").attr(\"transform\", `translate(${center.x}, ${center.y})`);\n}, \"drawFrame\");\nvar drawGraticule = /* @__PURE__ */ __name((g, axes, radius, ticks, graticule) => {\n if (graticule === \"circle\") {\n for (let i = 0; i < ticks; i++) {\n const r = radius * (i + 1) / ticks;\n g.append(\"circle\").attr(\"r\", r).attr(\"class\", \"radarGraticule\");\n }\n } else if (graticule === \"polygon\") {\n const numAxes = axes.length;\n for (let i = 0; i < ticks; i++) {\n const r = radius * (i + 1) / ticks;\n const points = axes.map((_, j) => {\n const angle = 2 * j * Math.PI / numAxes - Math.PI / 2;\n const x = r * Math.cos(angle);\n const y = r * Math.sin(angle);\n return `${x},${y}`;\n }).join(\" \");\n g.append(\"polygon\").attr(\"points\", points).attr(\"class\", \"radarGraticule\");\n }\n }\n}, \"drawGraticule\");\nvar drawAxes = /* @__PURE__ */ __name((g, axes, radius, config) => {\n const numAxes = axes.length;\n for (let i = 0; i < numAxes; i++) {\n const label = axes[i].label;\n const angle = 2 * i * Math.PI / numAxes - Math.PI / 2;\n g.append(\"line\").attr(\"x1\", 0).attr(\"y1\", 0).attr(\"x2\", radius * config.axisScaleFactor * Math.cos(angle)).attr(\"y2\", radius * config.axisScaleFactor * Math.sin(angle)).attr(\"class\", \"radarAxisLine\");\n g.append(\"text\").text(label).attr(\"x\", radius * config.axisLabelFactor * Math.cos(angle)).attr(\"y\", radius * config.axisLabelFactor * Math.sin(angle)).attr(\"class\", \"radarAxisLabel\");\n }\n}, \"drawAxes\");\nfunction drawCurves(g, axes, curves, minValue, maxValue, graticule, config) {\n const numAxes = axes.length;\n const radius = Math.min(config.width, config.height) / 2;\n curves.forEach((curve, index) => {\n if (curve.entries.length !== numAxes) {\n return;\n }\n const points = curve.entries.map((entry, i) => {\n const angle = 2 * Math.PI * i / numAxes - Math.PI / 2;\n const r = relativeRadius(entry, minValue, maxValue, radius);\n const x = r * Math.cos(angle);\n const y = r * Math.sin(angle);\n return { x, y };\n });\n if (graticule === \"circle\") {\n g.append(\"path\").attr(\"d\", closedRoundCurve(points, config.curveTension)).attr(\"class\", `radarCurve-${index}`);\n } else if (graticule === \"polygon\") {\n g.append(\"polygon\").attr(\"points\", points.map((p) => `${p.x},${p.y}`).join(\" \")).attr(\"class\", `radarCurve-${index}`);\n }\n });\n}\n__name(drawCurves, \"drawCurves\");\nfunction relativeRadius(value, minValue, maxValue, radius) {\n const clippedValue = Math.min(Math.max(value, minValue), maxValue);\n return radius * (clippedValue - minValue) / (maxValue - minValue);\n}\n__name(relativeRadius, \"relativeRadius\");\nfunction closedRoundCurve(points, tension) {\n const numPoints = points.length;\n let d = `M${points[0].x},${points[0].y}`;\n for (let i = 0; i < numPoints; i++) {\n const p0 = points[(i - 1 + numPoints) % numPoints];\n const p1 = points[i];\n const p2 = points[(i + 1) % numPoints];\n const p3 = points[(i + 2) % numPoints];\n const cp1 = {\n x: p1.x + (p2.x - p0.x) * tension,\n y: p1.y + (p2.y - p0.y) * tension\n };\n const cp2 = {\n x: p2.x - (p3.x - p1.x) * tension,\n y: p2.y - (p3.y - p1.y) * tension\n };\n d += ` C${cp1.x},${cp1.y} ${cp2.x},${cp2.y} ${p2.x},${p2.y}`;\n }\n return `${d} Z`;\n}\n__name(closedRoundCurve, \"closedRoundCurve\");\nfunction drawLegend(g, curves, showLegend, config) {\n if (!showLegend) {\n return;\n }\n const legendX = (config.width / 2 + config.marginRight) * 3 / 4;\n const legendY = -(config.height / 2 + config.marginTop) * 3 / 4;\n const lineHeight = 20;\n curves.forEach((curve, index) => {\n const itemGroup = g.append(\"g\").attr(\"transform\", `translate(${legendX}, ${legendY + index * lineHeight})`);\n itemGroup.append(\"rect\").attr(\"width\", 12).attr(\"height\", 12).attr(\"class\", `radarLegendBox-${index}`);\n itemGroup.append(\"text\").attr(\"x\", 16).attr(\"y\", 0).attr(\"class\", \"radarLegendText\").text(curve.label);\n });\n}\n__name(drawLegend, \"drawLegend\");\nvar renderer = { draw };\n\n// src/diagrams/radar/styles.ts\nvar genIndexStyles = /* @__PURE__ */ __name((themeVariables, radarOptions) => {\n let sections = \"\";\n for (let i = 0; i < themeVariables.THEME_COLOR_LIMIT; i++) {\n const indexColor = themeVariables[`cScale${i}`];\n sections += `\n\t\t.radarCurve-${i} {\n\t\t\tcolor: ${indexColor};\n\t\t\tfill: ${indexColor};\n\t\t\tfill-opacity: ${radarOptions.curveOpacity};\n\t\t\tstroke: ${indexColor};\n\t\t\tstroke-width: ${radarOptions.curveStrokeWidth};\n\t\t}\n\t\t.radarLegendBox-${i} {\n\t\t\tfill: ${indexColor};\n\t\t\tfill-opacity: ${radarOptions.curveOpacity};\n\t\t\tstroke: ${indexColor};\n\t\t}\n\t\t`;\n }\n return sections;\n}, \"genIndexStyles\");\nvar buildRadarStyleOptions = /* @__PURE__ */ __name((radar) => {\n const defaultThemeVariables = getThemeVariables();\n const currentConfig = getConfig();\n const themeVariables = cleanAndMerge(defaultThemeVariables, currentConfig.themeVariables);\n const radarOptions = cleanAndMerge(themeVariables.radar, radar);\n return { themeVariables, radarOptions };\n}, \"buildRadarStyleOptions\");\nvar styles = /* @__PURE__ */ __name(({ radar } = {}) => {\n const { themeVariables, radarOptions } = buildRadarStyleOptions(radar);\n return `\n\t.radarTitle {\n\t\tfont-size: ${themeVariables.fontSize};\n\t\tcolor: ${themeVariables.titleColor};\n\t\tdominant-baseline: hanging;\n\t\ttext-anchor: middle;\n\t}\n\t.radarAxisLine {\n\t\tstroke: ${radarOptions.axisColor};\n\t\tstroke-width: ${radarOptions.axisStrokeWidth};\n\t}\n\t.radarAxisLabel {\n\t\tdominant-baseline: middle;\n\t\ttext-anchor: middle;\n\t\tfont-size: ${radarOptions.axisLabelFontSize}px;\n\t\tcolor: ${radarOptions.axisColor};\n\t}\n\t.radarGraticule {\n\t\tfill: ${radarOptions.graticuleColor};\n\t\tfill-opacity: ${radarOptions.graticuleOpacity};\n\t\tstroke: ${radarOptions.graticuleColor};\n\t\tstroke-width: ${radarOptions.graticuleStrokeWidth};\n\t}\n\t.radarLegendText {\n\t\ttext-anchor: start;\n\t\tfont-size: ${radarOptions.legendFontSize}px;\n\t\tdominant-baseline: hanging;\n\t}\n\t${genIndexStyles(themeVariables, radarOptions)}\n\t`;\n}, \"styles\");\n\n// src/diagrams/radar/diagram.ts\nvar diagram = {\n parser,\n db,\n renderer,\n styles\n};\nexport {\n diagram\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"./shiki-BE3D5Aiv.js";import"./chunk-FPAJGGOC-C1aXi2xg.js";import"./chunk-O7ZBX7Z2-BeCHiDgv.js";import"./chunk-S6J4BHB3-CjyTXs6v.js";import"./chunk-LBM3YZW2-DZbzQVsb.js";import"./chunk-76Q3JFCE-B14S6aW0.js";import"./chunk-T53DSG4Q-DhrZo8eD.js";import"./chunk-LHMN2FUI-DqEW0ey0.js";import"./chunk-FWNWRKHM-Cgpg7KEB.js";import{g as e,h as t}from"./src-CK1-XQNk.js";import{B as n,C as r,U as i,_ as a,a as o,c as s,d as c,v as l,y as u,z as d}from"./chunk-ABZYJK2D-
|
|
1
|
+
import"./shiki-BE3D5Aiv.js";import"./chunk-FPAJGGOC-C1aXi2xg.js";import"./chunk-O7ZBX7Z2-BeCHiDgv.js";import"./chunk-S6J4BHB3-CjyTXs6v.js";import"./chunk-LBM3YZW2-DZbzQVsb.js";import"./chunk-76Q3JFCE-B14S6aW0.js";import"./chunk-T53DSG4Q-DhrZo8eD.js";import"./chunk-LHMN2FUI-DqEW0ey0.js";import"./chunk-FWNWRKHM-Cgpg7KEB.js";import{g as e,h as t}from"./src-CK1-XQNk.js";import{B as n,C as r,U as i,_ as a,a as o,c as s,d as c,v as l,y as u,z as d}from"./chunk-ABZYJK2D-x9qEUFTA.js";import{i as f}from"./chunk-S3R3BYOJ-6YeBT-eZ.js";import{t as p}from"./chunk-EXTU4WIE-FY5Pwz_y.js";import"./dist-CINaey7q.js";import{t as m}from"./chunk-4BX2VUAB-D2wsGaeQ.js";import{t as h}from"./mermaid-parser.core-CIsAFS0G.js";var g=c.packet,_=class{constructor(){this.packet=[],this.setAccTitle=n,this.getAccTitle=l,this.setDiagramTitle=i,this.getDiagramTitle=r,this.getAccDescription=a,this.setAccDescription=d}static#e=t(this,`PacketDB`);getConfig(){let e=f({...g,...u().packet});return e.showBits&&(e.paddingY+=10),e}getPacket(){return this.packet}pushWord(e){e.length>0&&this.packet.push(e)}clear(){o(),this.packet=[]}},v=1e4,y=t((t,n)=>{m(t,n);let r=-1,i=[],a=1,{bitsPerRow:o}=n.getConfig();for(let{start:s,end:c,bits:l,label:u}of t.blocks){if(s!==void 0&&c!==void 0&&c<s)throw Error(`Packet block ${s} - ${c} is invalid. End must be greater than start.`);if(s??=r+1,s!==r+1)throw Error(`Packet block ${s} - ${c??s} is not contiguous. It should start from ${r+1}.`);if(l===0)throw Error(`Packet block ${s} is invalid. Cannot have a zero bit field.`);for(c??=s+(l??1)-1,l??=c-s+1,r=c,e.debug(`Packet block ${s} - ${r} with label ${u}`);i.length<=o+1&&n.getPacket().length<v;){let[e,t]=b({start:s,end:c,bits:l,label:u},a,o);if(i.push(e),e.end+1===a*o&&(n.pushWord(i),i=[],a++),!t)break;({start:s,end:c,bits:l,label:u}=t)}}n.pushWord(i)},`populate`),b=t((e,t,n)=>{if(e.start===void 0)throw Error(`start should have been set during first phase`);if(e.end===void 0)throw Error(`end should have been set during first phase`);if(e.start>e.end)throw Error(`Block start ${e.start} is greater than block end ${e.end}.`);if(e.end+1<=t*n)return[e,void 0];let r=t*n-1,i=t*n;return[{start:e.start,end:r,label:e.label,bits:r-e.start},{start:i,end:e.end,label:e.label,bits:e.end-i}]},`getNextFittingBlock`),x={parser:{yy:void 0},parse:t(async t=>{let n=await h(`packet`,t),r=x.parser?.yy;if(!(r instanceof _))throw 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.`);e.debug(n),y(n,r)},`parse`)},S=t((e,t,n,r)=>{let i=r.db,a=i.getConfig(),{rowHeight:o,paddingY:c,bitWidth:l,bitsPerRow:u}=a,d=i.getPacket(),f=i.getDiagramTitle(),m=o+c,h=m*(d.length+1)-(f?0:o),g=l*u+2,_=p(t);_.attr(`viewbox`,`0 0 ${g} ${h}`),s(_,h,g,a.useMaxWidth);for(let[e,t]of d.entries())C(_,t,e,a);_.append(`text`).text(f).attr(`x`,g/2).attr(`y`,h-m/2).attr(`dominant-baseline`,`middle`).attr(`text-anchor`,`middle`).attr(`class`,`packetTitle`)},`draw`),C=t((e,t,n,{rowHeight:r,paddingX:i,paddingY:a,bitWidth:o,bitsPerRow:s,showBits:c})=>{let l=e.append(`g`),u=n*(r+a)+a;for(let e of t){let t=e.start%s*o+1,n=(e.end-e.start+1)*o-i;if(l.append(`rect`).attr(`x`,t).attr(`y`,u).attr(`width`,n).attr(`height`,r).attr(`class`,`packetBlock`),l.append(`text`).attr(`x`,t+n/2).attr(`y`,u+r/2).attr(`class`,`packetLabel`).attr(`dominant-baseline`,`middle`).attr(`text-anchor`,`middle`).text(e.label),!c)continue;let a=e.end===e.start,d=u-2;l.append(`text`).attr(`x`,t+(a?n/2:0)).attr(`y`,d).attr(`class`,`packetByte start`).attr(`dominant-baseline`,`auto`).attr(`text-anchor`,a?`middle`:`start`).text(e.start),a||l.append(`text`).attr(`x`,t+n).attr(`y`,d).attr(`class`,`packetByte end`).attr(`dominant-baseline`,`auto`).attr(`text-anchor`,`end`).text(e.end)}},`drawWord`),w={draw:S},T={byteFontSize:`10px`,startByteColor:`black`,endByteColor:`black`,labelColor:`black`,labelFontSize:`12px`,titleColor:`black`,titleFontSize:`14px`,blockStrokeColor:`black`,blockStrokeWidth:`1`,blockFillColor:`#efefef`},E={parser:x,get db(){return new _},renderer:w,styles:t(({packet:e}={})=>{let t=f(T,e);return`
|
|
2
2
|
.packetByte {
|
|
3
3
|
font-size: ${t.byteFontSize};
|
|
4
4
|
}
|
|
@@ -22,4 +22,4 @@ import"./shiki-BE3D5Aiv.js";import"./chunk-FPAJGGOC-C1aXi2xg.js";import"./chunk-
|
|
|
22
22
|
fill: ${t.blockFillColor};
|
|
23
23
|
}
|
|
24
24
|
`},`styles`)};export{E as diagram};
|
|
25
|
-
//# sourceMappingURL=diagram-S2PKOQOG-
|
|
25
|
+
//# sourceMappingURL=diagram-S2PKOQOG-DVCkBYgt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagram-S2PKOQOG-qTE7kYb8.js","names":[],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-S2PKOQOG.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-EXTU4WIE.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/packet/db.ts\nvar DEFAULT_PACKET_CONFIG = defaultConfig_default.packet;\nvar PacketDB = class {\n constructor() {\n this.packet = [];\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n }\n static {\n __name(this, \"PacketDB\");\n }\n getConfig() {\n const config = cleanAndMerge({\n ...DEFAULT_PACKET_CONFIG,\n ...getConfig().packet\n });\n if (config.showBits) {\n config.paddingY += 10;\n }\n return config;\n }\n getPacket() {\n return this.packet;\n }\n pushWord(word) {\n if (word.length > 0) {\n this.packet.push(word);\n }\n }\n clear() {\n clear();\n this.packet = [];\n }\n};\n\n// src/diagrams/packet/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar maxPacketSize = 1e4;\nvar populate = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n let lastBit = -1;\n let word = [];\n let row = 1;\n const { bitsPerRow } = db.getConfig();\n for (let { start, end, bits, label } of ast.blocks) {\n if (start !== void 0 && end !== void 0 && end < start) {\n throw new Error(`Packet block ${start} - ${end} is invalid. End must be greater than start.`);\n }\n start ??= lastBit + 1;\n if (start !== lastBit + 1) {\n throw new Error(\n `Packet block ${start} - ${end ?? start} is not contiguous. It should start from ${lastBit + 1}.`\n );\n }\n if (bits === 0) {\n throw new Error(`Packet block ${start} is invalid. Cannot have a zero bit field.`);\n }\n end ??= start + (bits ?? 1) - 1;\n bits ??= end - start + 1;\n lastBit = end;\n log.debug(`Packet block ${start} - ${lastBit} with label ${label}`);\n while (word.length <= bitsPerRow + 1 && db.getPacket().length < maxPacketSize) {\n const [block, nextBlock] = getNextFittingBlock({ start, end, bits, label }, row, bitsPerRow);\n word.push(block);\n if (block.end + 1 === row * bitsPerRow) {\n db.pushWord(word);\n word = [];\n row++;\n }\n if (!nextBlock) {\n break;\n }\n ({ start, end, bits, label } = nextBlock);\n }\n }\n db.pushWord(word);\n}, \"populate\");\nvar getNextFittingBlock = /* @__PURE__ */ __name((block, row, bitsPerRow) => {\n if (block.start === void 0) {\n throw new Error(\"start should have been set during first phase\");\n }\n if (block.end === void 0) {\n throw new Error(\"end should have been set during first phase\");\n }\n if (block.start > block.end) {\n throw new Error(`Block start ${block.start} is greater than block end ${block.end}.`);\n }\n if (block.end + 1 <= row * bitsPerRow) {\n return [block, void 0];\n }\n const rowEnd = row * bitsPerRow - 1;\n const rowStart = row * bitsPerRow;\n return [\n {\n start: block.start,\n end: rowEnd,\n label: block.label,\n bits: rowEnd - block.start\n },\n {\n start: rowStart,\n end: block.end,\n label: block.label,\n bits: block.end - rowStart\n }\n ];\n}, \"getNextFittingBlock\");\nvar parser = {\n // @ts-expect-error - PacketDB is not assignable to DiagramDB\n parser: { yy: void 0 },\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"packet\", input);\n const db = parser.parser?.yy;\n if (!(db instanceof PacketDB)) {\n throw new Error(\n \"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.\"\n );\n }\n log.debug(ast);\n populate(ast, db);\n }, \"parse\")\n};\n\n// src/diagrams/packet/renderer.ts\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const db = diagram2.db;\n const config = db.getConfig();\n const { rowHeight, paddingY, bitWidth, bitsPerRow } = config;\n const words = db.getPacket();\n const title = db.getDiagramTitle();\n const totalRowHeight = rowHeight + paddingY;\n const svgHeight = totalRowHeight * (words.length + 1) - (title ? 0 : rowHeight);\n const svgWidth = bitWidth * bitsPerRow + 2;\n const svg = selectSvgElement(id);\n svg.attr(\"viewbox\", `0 0 ${svgWidth} ${svgHeight}`);\n configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);\n for (const [word, packet] of words.entries()) {\n drawWord(svg, packet, word, config);\n }\n svg.append(\"text\").text(title).attr(\"x\", svgWidth / 2).attr(\"y\", svgHeight - totalRowHeight / 2).attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").attr(\"class\", \"packetTitle\");\n}, \"draw\");\nvar drawWord = /* @__PURE__ */ __name((svg, word, rowNumber, { rowHeight, paddingX, paddingY, bitWidth, bitsPerRow, showBits }) => {\n const group = svg.append(\"g\");\n const wordY = rowNumber * (rowHeight + paddingY) + paddingY;\n for (const block of word) {\n const blockX = block.start % bitsPerRow * bitWidth + 1;\n const width = (block.end - block.start + 1) * bitWidth - paddingX;\n group.append(\"rect\").attr(\"x\", blockX).attr(\"y\", wordY).attr(\"width\", width).attr(\"height\", rowHeight).attr(\"class\", \"packetBlock\");\n group.append(\"text\").attr(\"x\", blockX + width / 2).attr(\"y\", wordY + rowHeight / 2).attr(\"class\", \"packetLabel\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").text(block.label);\n if (!showBits) {\n continue;\n }\n const isSingleBlock = block.end === block.start;\n const bitNumberY = wordY - 2;\n group.append(\"text\").attr(\"x\", blockX + (isSingleBlock ? width / 2 : 0)).attr(\"y\", bitNumberY).attr(\"class\", \"packetByte start\").attr(\"dominant-baseline\", \"auto\").attr(\"text-anchor\", isSingleBlock ? \"middle\" : \"start\").text(block.start);\n if (!isSingleBlock) {\n group.append(\"text\").attr(\"x\", blockX + width).attr(\"y\", bitNumberY).attr(\"class\", \"packetByte end\").attr(\"dominant-baseline\", \"auto\").attr(\"text-anchor\", \"end\").text(block.end);\n }\n }\n}, \"drawWord\");\nvar renderer = { draw };\n\n// src/diagrams/packet/styles.ts\nvar defaultPacketStyleOptions = {\n byteFontSize: \"10px\",\n startByteColor: \"black\",\n endByteColor: \"black\",\n labelColor: \"black\",\n labelFontSize: \"12px\",\n titleColor: \"black\",\n titleFontSize: \"14px\",\n blockStrokeColor: \"black\",\n blockStrokeWidth: \"1\",\n blockFillColor: \"#efefef\"\n};\nvar styles = /* @__PURE__ */ __name(({ packet } = {}) => {\n const options = cleanAndMerge(defaultPacketStyleOptions, packet);\n return `\n\t.packetByte {\n\t\tfont-size: ${options.byteFontSize};\n\t}\n\t.packetByte.start {\n\t\tfill: ${options.startByteColor};\n\t}\n\t.packetByte.end {\n\t\tfill: ${options.endByteColor};\n\t}\n\t.packetLabel {\n\t\tfill: ${options.labelColor};\n\t\tfont-size: ${options.labelFontSize};\n\t}\n\t.packetTitle {\n\t\tfill: ${options.titleColor};\n\t\tfont-size: ${options.titleFontSize};\n\t}\n\t.packetBlock {\n\t\tstroke: ${options.blockStrokeColor};\n\t\tstroke-width: ${options.blockStrokeWidth};\n\t\tfill: ${options.blockFillColor};\n\t}\n\t`;\n}, \"styles\");\n\n// src/diagrams/packet/diagram.ts\nvar diagram = {\n parser,\n get db() {\n return new PacketDB();\n },\n renderer,\n styles\n};\nexport {\n diagram\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diagram-S2PKOQOG-DVCkBYgt.js","names":[],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-S2PKOQOG.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-EXTU4WIE.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/packet/db.ts\nvar DEFAULT_PACKET_CONFIG = defaultConfig_default.packet;\nvar PacketDB = class {\n constructor() {\n this.packet = [];\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n }\n static {\n __name(this, \"PacketDB\");\n }\n getConfig() {\n const config = cleanAndMerge({\n ...DEFAULT_PACKET_CONFIG,\n ...getConfig().packet\n });\n if (config.showBits) {\n config.paddingY += 10;\n }\n return config;\n }\n getPacket() {\n return this.packet;\n }\n pushWord(word) {\n if (word.length > 0) {\n this.packet.push(word);\n }\n }\n clear() {\n clear();\n this.packet = [];\n }\n};\n\n// src/diagrams/packet/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar maxPacketSize = 1e4;\nvar populate = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n let lastBit = -1;\n let word = [];\n let row = 1;\n const { bitsPerRow } = db.getConfig();\n for (let { start, end, bits, label } of ast.blocks) {\n if (start !== void 0 && end !== void 0 && end < start) {\n throw new Error(`Packet block ${start} - ${end} is invalid. End must be greater than start.`);\n }\n start ??= lastBit + 1;\n if (start !== lastBit + 1) {\n throw new Error(\n `Packet block ${start} - ${end ?? start} is not contiguous. It should start from ${lastBit + 1}.`\n );\n }\n if (bits === 0) {\n throw new Error(`Packet block ${start} is invalid. Cannot have a zero bit field.`);\n }\n end ??= start + (bits ?? 1) - 1;\n bits ??= end - start + 1;\n lastBit = end;\n log.debug(`Packet block ${start} - ${lastBit} with label ${label}`);\n while (word.length <= bitsPerRow + 1 && db.getPacket().length < maxPacketSize) {\n const [block, nextBlock] = getNextFittingBlock({ start, end, bits, label }, row, bitsPerRow);\n word.push(block);\n if (block.end + 1 === row * bitsPerRow) {\n db.pushWord(word);\n word = [];\n row++;\n }\n if (!nextBlock) {\n break;\n }\n ({ start, end, bits, label } = nextBlock);\n }\n }\n db.pushWord(word);\n}, \"populate\");\nvar getNextFittingBlock = /* @__PURE__ */ __name((block, row, bitsPerRow) => {\n if (block.start === void 0) {\n throw new Error(\"start should have been set during first phase\");\n }\n if (block.end === void 0) {\n throw new Error(\"end should have been set during first phase\");\n }\n if (block.start > block.end) {\n throw new Error(`Block start ${block.start} is greater than block end ${block.end}.`);\n }\n if (block.end + 1 <= row * bitsPerRow) {\n return [block, void 0];\n }\n const rowEnd = row * bitsPerRow - 1;\n const rowStart = row * bitsPerRow;\n return [\n {\n start: block.start,\n end: rowEnd,\n label: block.label,\n bits: rowEnd - block.start\n },\n {\n start: rowStart,\n end: block.end,\n label: block.label,\n bits: block.end - rowStart\n }\n ];\n}, \"getNextFittingBlock\");\nvar parser = {\n // @ts-expect-error - PacketDB is not assignable to DiagramDB\n parser: { yy: void 0 },\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"packet\", input);\n const db = parser.parser?.yy;\n if (!(db instanceof PacketDB)) {\n throw new Error(\n \"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.\"\n );\n }\n log.debug(ast);\n populate(ast, db);\n }, \"parse\")\n};\n\n// src/diagrams/packet/renderer.ts\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const db = diagram2.db;\n const config = db.getConfig();\n const { rowHeight, paddingY, bitWidth, bitsPerRow } = config;\n const words = db.getPacket();\n const title = db.getDiagramTitle();\n const totalRowHeight = rowHeight + paddingY;\n const svgHeight = totalRowHeight * (words.length + 1) - (title ? 0 : rowHeight);\n const svgWidth = bitWidth * bitsPerRow + 2;\n const svg = selectSvgElement(id);\n svg.attr(\"viewbox\", `0 0 ${svgWidth} ${svgHeight}`);\n configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);\n for (const [word, packet] of words.entries()) {\n drawWord(svg, packet, word, config);\n }\n svg.append(\"text\").text(title).attr(\"x\", svgWidth / 2).attr(\"y\", svgHeight - totalRowHeight / 2).attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").attr(\"class\", \"packetTitle\");\n}, \"draw\");\nvar drawWord = /* @__PURE__ */ __name((svg, word, rowNumber, { rowHeight, paddingX, paddingY, bitWidth, bitsPerRow, showBits }) => {\n const group = svg.append(\"g\");\n const wordY = rowNumber * (rowHeight + paddingY) + paddingY;\n for (const block of word) {\n const blockX = block.start % bitsPerRow * bitWidth + 1;\n const width = (block.end - block.start + 1) * bitWidth - paddingX;\n group.append(\"rect\").attr(\"x\", blockX).attr(\"y\", wordY).attr(\"width\", width).attr(\"height\", rowHeight).attr(\"class\", \"packetBlock\");\n group.append(\"text\").attr(\"x\", blockX + width / 2).attr(\"y\", wordY + rowHeight / 2).attr(\"class\", \"packetLabel\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").text(block.label);\n if (!showBits) {\n continue;\n }\n const isSingleBlock = block.end === block.start;\n const bitNumberY = wordY - 2;\n group.append(\"text\").attr(\"x\", blockX + (isSingleBlock ? width / 2 : 0)).attr(\"y\", bitNumberY).attr(\"class\", \"packetByte start\").attr(\"dominant-baseline\", \"auto\").attr(\"text-anchor\", isSingleBlock ? \"middle\" : \"start\").text(block.start);\n if (!isSingleBlock) {\n group.append(\"text\").attr(\"x\", blockX + width).attr(\"y\", bitNumberY).attr(\"class\", \"packetByte end\").attr(\"dominant-baseline\", \"auto\").attr(\"text-anchor\", \"end\").text(block.end);\n }\n }\n}, \"drawWord\");\nvar renderer = { draw };\n\n// src/diagrams/packet/styles.ts\nvar defaultPacketStyleOptions = {\n byteFontSize: \"10px\",\n startByteColor: \"black\",\n endByteColor: \"black\",\n labelColor: \"black\",\n labelFontSize: \"12px\",\n titleColor: \"black\",\n titleFontSize: \"14px\",\n blockStrokeColor: \"black\",\n blockStrokeWidth: \"1\",\n blockFillColor: \"#efefef\"\n};\nvar styles = /* @__PURE__ */ __name(({ packet } = {}) => {\n const options = cleanAndMerge(defaultPacketStyleOptions, packet);\n return `\n\t.packetByte {\n\t\tfont-size: ${options.byteFontSize};\n\t}\n\t.packetByte.start {\n\t\tfill: ${options.startByteColor};\n\t}\n\t.packetByte.end {\n\t\tfill: ${options.endByteColor};\n\t}\n\t.packetLabel {\n\t\tfill: ${options.labelColor};\n\t\tfont-size: ${options.labelFontSize};\n\t}\n\t.packetTitle {\n\t\tfill: ${options.titleColor};\n\t\tfont-size: ${options.titleFontSize};\n\t}\n\t.packetBlock {\n\t\tstroke: ${options.blockStrokeColor};\n\t\tstroke-width: ${options.blockStrokeWidth};\n\t\tfill: ${options.blockFillColor};\n\t}\n\t`;\n}, \"styles\");\n\n// src/diagrams/packet/diagram.ts\nvar diagram = {\n parser,\n get db() {\n return new PacketDB();\n },\n renderer,\n styles\n};\nexport {\n diagram\n};\n"],"x_google_ignoreList":[0],"mappings":"qsBA2BA,IAAI,EAAwB,EAAsB,OAC9C,EAAW,KAAM,CACnB,aAAc,CACZ,KAAK,OAAS,EAAE,CAChB,KAAK,YAAc,EACnB,KAAK,YAAc,EACnB,KAAK,gBAAkB,EACvB,KAAK,gBAAkB,EACvB,KAAK,kBAAoB,EACzB,KAAK,kBAAoB,EAE3B,OAAA,EACE,EAAO,KAAM,WAAW,CAE1B,WAAY,CACV,IAAM,EAAS,EAAc,CAC3B,GAAG,EACH,GAAG,GAAW,CAAC,OAChB,CAAC,CAIF,OAHI,EAAO,WACT,EAAO,UAAY,IAEd,EAET,WAAY,CACV,OAAO,KAAK,OAEd,SAAS,EAAM,CACT,EAAK,OAAS,GAChB,KAAK,OAAO,KAAK,EAAK,CAG1B,OAAQ,CACN,GAAO,CACP,KAAK,OAAS,EAAE,GAMhB,EAAgB,IAChB,EAA2B,GAAQ,EAAK,IAAO,CACjD,EAAiB,EAAK,EAAG,CACzB,IAAI,EAAU,GACV,EAAO,EAAE,CACT,EAAM,EACJ,CAAE,cAAe,EAAG,WAAW,CACrC,IAAK,GAAI,CAAE,QAAO,MAAK,OAAM,WAAW,EAAI,OAAQ,CAClD,GAAI,IAAU,IAAK,IAAK,IAAQ,IAAK,IAAK,EAAM,EAC9C,MAAU,MAAM,gBAAgB,EAAM,KAAK,EAAI,8CAA8C,CAG/F,GADA,IAAU,EAAU,EAChB,IAAU,EAAU,EACtB,MAAU,MACR,gBAAgB,EAAM,KAAK,GAAO,EAAM,2CAA2C,EAAU,EAAE,GAChG,CAEH,GAAI,IAAS,EACX,MAAU,MAAM,gBAAgB,EAAM,4CAA4C,CAMpF,IAJA,IAAQ,GAAS,GAAQ,GAAK,EAC9B,IAAS,EAAM,EAAQ,EACvB,EAAU,EACV,EAAI,MAAM,gBAAgB,EAAM,KAAK,EAAQ,cAAc,IAAQ,CAC5D,EAAK,QAAU,EAAa,GAAK,EAAG,WAAW,CAAC,OAAS,GAAe,CAC7E,GAAM,CAAC,EAAO,GAAa,EAAoB,CAAE,QAAO,MAAK,OAAM,QAAO,CAAE,EAAK,EAAW,CAO5F,GANA,EAAK,KAAK,EAAM,CACZ,EAAM,IAAM,IAAM,EAAM,IAC1B,EAAG,SAAS,EAAK,CACjB,EAAO,EAAE,CACT,KAEE,CAAC,EACH,OAED,+BAA8B,IAGnC,EAAG,SAAS,EAAK,EAChB,WAAW,CACV,EAAsC,GAAQ,EAAO,EAAK,IAAe,CAC3E,GAAI,EAAM,QAAU,IAAK,GACvB,MAAU,MAAM,gDAAgD,CAElE,GAAI,EAAM,MAAQ,IAAK,GACrB,MAAU,MAAM,8CAA8C,CAEhE,GAAI,EAAM,MAAQ,EAAM,IACtB,MAAU,MAAM,eAAe,EAAM,MAAM,6BAA6B,EAAM,IAAI,GAAG,CAEvF,GAAI,EAAM,IAAM,GAAK,EAAM,EACzB,MAAO,CAAC,EAAO,IAAK,GAAE,CAExB,IAAM,EAAS,EAAM,EAAa,EAC5B,EAAW,EAAM,EACvB,MAAO,CACL,CACE,MAAO,EAAM,MACb,IAAK,EACL,MAAO,EAAM,MACb,KAAM,EAAS,EAAM,MACtB,CACD,CACE,MAAO,EACP,IAAK,EAAM,IACX,MAAO,EAAM,MACb,KAAM,EAAM,IAAM,EACnB,CACF,EACA,sBAAsB,CACrB,EAAS,CAEX,OAAQ,CAAE,GAAI,IAAK,GAAG,CACtB,MAAuB,EAAO,KAAO,IAAU,CAC7C,IAAM,EAAM,MAAM,EAAM,SAAU,EAAM,CAClC,EAAK,EAAO,QAAQ,GAC1B,GAAI,EAAE,aAAc,GAClB,MAAU,MACR,uJACD,CAEH,EAAI,MAAM,EAAI,CACd,EAAS,EAAK,EAAG,EAChB,QAAQ,CACZ,CAGG,EAAuB,GAAQ,EAAO,EAAI,EAAU,IAAa,CACnE,IAAM,EAAK,EAAS,GACd,EAAS,EAAG,WAAW,CACvB,CAAE,YAAW,WAAU,WAAU,cAAe,EAChD,EAAQ,EAAG,WAAW,CACtB,EAAQ,EAAG,iBAAiB,CAC5B,EAAiB,EAAY,EAC7B,EAAY,GAAkB,EAAM,OAAS,IAAM,EAAQ,EAAI,GAC/D,EAAW,EAAW,EAAa,EACnC,EAAM,EAAiB,EAAG,CAChC,EAAI,KAAK,UAAW,OAAO,EAAS,GAAG,IAAY,CACnD,EAAiB,EAAK,EAAW,EAAU,EAAO,YAAY,CAC9D,IAAK,GAAM,CAAC,EAAM,KAAW,EAAM,SAAS,CAC1C,EAAS,EAAK,EAAQ,EAAM,EAAO,CAErC,EAAI,OAAO,OAAO,CAAC,KAAK,EAAM,CAAC,KAAK,IAAK,EAAW,EAAE,CAAC,KAAK,IAAK,EAAY,EAAiB,EAAE,CAAC,KAAK,oBAAqB,SAAS,CAAC,KAAK,cAAe,SAAS,CAAC,KAAK,QAAS,cAAc,EAC9L,OAAO,CACN,EAA2B,GAAQ,EAAK,EAAM,EAAW,CAAE,YAAW,WAAU,WAAU,WAAU,aAAY,cAAe,CACjI,IAAM,EAAQ,EAAI,OAAO,IAAI,CACvB,EAAQ,GAAa,EAAY,GAAY,EACnD,IAAK,IAAM,KAAS,EAAM,CACxB,IAAM,EAAS,EAAM,MAAQ,EAAa,EAAW,EAC/C,GAAS,EAAM,IAAM,EAAM,MAAQ,GAAK,EAAW,EAGzD,GAFA,EAAM,OAAO,OAAO,CAAC,KAAK,IAAK,EAAO,CAAC,KAAK,IAAK,EAAM,CAAC,KAAK,QAAS,EAAM,CAAC,KAAK,SAAU,EAAU,CAAC,KAAK,QAAS,cAAc,CACnI,EAAM,OAAO,OAAO,CAAC,KAAK,IAAK,EAAS,EAAQ,EAAE,CAAC,KAAK,IAAK,EAAQ,EAAY,EAAE,CAAC,KAAK,QAAS,cAAc,CAAC,KAAK,oBAAqB,SAAS,CAAC,KAAK,cAAe,SAAS,CAAC,KAAK,EAAM,MAAM,CAChM,CAAC,EACH,SAEF,IAAM,EAAgB,EAAM,MAAQ,EAAM,MACpC,EAAa,EAAQ,EAC3B,EAAM,OAAO,OAAO,CAAC,KAAK,IAAK,GAAU,EAAgB,EAAQ,EAAI,GAAG,CAAC,KAAK,IAAK,EAAW,CAAC,KAAK,QAAS,mBAAmB,CAAC,KAAK,oBAAqB,OAAO,CAAC,KAAK,cAAe,EAAgB,SAAW,QAAQ,CAAC,KAAK,EAAM,MAAM,CACvO,GACH,EAAM,OAAO,OAAO,CAAC,KAAK,IAAK,EAAS,EAAM,CAAC,KAAK,IAAK,EAAW,CAAC,KAAK,QAAS,iBAAiB,CAAC,KAAK,oBAAqB,OAAO,CAAC,KAAK,cAAe,MAAM,CAAC,KAAK,EAAM,IAAI,GAGpL,WAAW,CACV,EAAW,CAAE,OAAM,CAGnB,EAA4B,CAC9B,aAAc,OACd,eAAgB,QAChB,aAAc,QACd,WAAY,QACZ,cAAe,OACf,WAAY,QACZ,cAAe,OACf,iBAAkB,QAClB,iBAAkB,IAClB,eAAgB,UACjB,CA8BG,EAAU,CACZ,SACA,IAAI,IAAK,CACP,OAAO,IAAI,GAEb,WACA,OAnC2B,GAAQ,CAAE,UAAW,EAAE,GAAK,CACvD,IAAM,EAAU,EAAc,EAA2B,EAAO,CAChE,MAAO;;eAEM,EAAQ,aAAa;;;UAG1B,EAAQ,eAAe;;;UAGvB,EAAQ,aAAa;;;UAGrB,EAAQ,WAAW;eACd,EAAQ,cAAc;;;UAG3B,EAAQ,WAAW;eACd,EAAQ,cAAc;;;YAGzB,EAAQ,iBAAiB;kBACnB,EAAQ,iBAAiB;UACjC,EAAQ,eAAe;;IAG9B,SAAS,CAUX"}
|