@next-bricks/diagram 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/bricks.json +4 -2
  2. package/dist/chunks/4922.4558c07b.js +2 -0
  3. package/dist/chunks/4922.4558c07b.js.map +1 -0
  4. package/dist/chunks/7312.94667cd0.js +3 -0
  5. package/dist/chunks/7312.94667cd0.js.map +1 -0
  6. package/dist/chunks/editable-label.e741e544.js +3 -0
  7. package/dist/chunks/editable-label.e741e544.js.LICENSE.txt +5 -0
  8. package/dist/chunks/editable-label.e741e544.js.map +1 -0
  9. package/dist/chunks/eo-diagram.ae269315.js +2 -0
  10. package/dist/chunks/eo-diagram.ae269315.js.map +1 -0
  11. package/dist/chunks/main.20df2b07.js +2 -0
  12. package/dist/chunks/main.20df2b07.js.map +1 -0
  13. package/dist/examples.json +4 -1
  14. package/dist/index.23374df2.js +2 -0
  15. package/dist/index.23374df2.js.map +1 -0
  16. package/dist/manifest.json +57 -1
  17. package/dist/types.json +270 -1
  18. package/dist-types/bootstrap.d.ts +1 -0
  19. package/dist-types/diagram/LineLabelComponent.d.ts +22 -0
  20. package/dist-types/diagram/constants.d.ts +1 -0
  21. package/dist-types/diagram/index.d.ts +16 -5
  22. package/dist-types/diagram/interfaces.d.ts +47 -3
  23. package/dist-types/editable-label/index.d.ts +26 -0
  24. package/dist-types/editable-label/index.spec.d.ts +1 -0
  25. package/docs/editable-label.md +17 -0
  26. package/docs/eo-diagram.md +12 -0
  27. package/package.json +2 -2
  28. package/dist/chunks/3166.ddb1e0c3.js +0 -3
  29. package/dist/chunks/3166.ddb1e0c3.js.map +0 -1
  30. package/dist/chunks/8279.35fe958f.js +0 -2
  31. package/dist/chunks/8279.35fe958f.js.map +0 -1
  32. package/dist/chunks/eo-diagram.1dc0255a.js +0 -2
  33. package/dist/chunks/eo-diagram.1dc0255a.js.map +0 -1
  34. package/dist/chunks/main.b9560e26.js +0 -2
  35. package/dist/chunks/main.b9560e26.js.map +0 -1
  36. package/dist/index.7d701fa7.js +0 -2
  37. package/dist/index.7d701fa7.js.map +0 -1
  38. /package/dist/chunks/{3166.ddb1e0c3.js.LICENSE.txt → 7312.94667cd0.js.LICENSE.txt} +0 -0
package/dist/bricks.json CHANGED
@@ -1,10 +1,12 @@
1
1
  {
2
2
  "id": "bricks/diagram",
3
- "bricks": [],
3
+ "bricks": [
4
+ "diagram.editable-label"
5
+ ],
4
6
  "elements": [
5
7
  "eo-diagram"
6
8
  ],
7
9
  "processors": [],
8
10
  "dependencies": {},
9
- "filePath": "bricks/diagram/dist/index.7d701fa7.js"
11
+ "filePath": "bricks/diagram/dist/index.23374df2.js"
10
12
  }
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_next_bricks_diagram=self.webpackChunk_next_bricks_diagram||[]).push([[4922],{4922:(e,t,a)=>{a.r(t);var n=a(3028),l=a(3395),i=a(1815),r=a(381),o=a(687),s=a(5066),c=a(8657),d=a.n(c),u=a(5727),h=a(305),v=(a(2006),a(908)),f=a.n(v),b=a(1105),p=a(7397),g=a(2779),m=a.n(g),k=a(1211),y=a(9494),w=a(9464);function Z(e){var{nodes:t,nodeBricks:a,onRendered:n}=e,[l,i]=(0,c.useState)(!1),[r,o]=(0,c.useState)([]),s=(0,c.useMemo)((()=>new Map),[]),u=(0,c.useCallback)(((e,t)=>{t&&s.set(e,t),o((t=>t.includes(e)?t:t.concat(e)))}),[s]),h=(0,c.useCallback)((e=>{o((t=>{var a=t.indexOf(e);return-1===a?t:t.slice(0,a).concat(t.slice(a+1))})),s.delete(e)}),[s]);return(0,c.useEffect)((()=>{i(!(null!=t&&t.some((e=>!r.includes(e.id)))))}),[t,r]),(0,c.useEffect)((()=>{null==n||n(l?s:null)}),[s,l]),d().createElement(d().Fragment,null,null==t?void 0:t.map((e=>d().createElement("div",{key:e.id,className:"node"},d().createElement(x,{nodeBricks:a,node:e,onRendered:u,onUnmount:h})))))}function x(e){var{node:t,nodeBricks:a,onRendered:n,onUnmount:l}=e,i=(0,c.useMemo)((()=>{var e;return null===(e=function(e,t){return null==t?void 0:t.find((t=>t.nodeType?[].concat(t.nodeType).includes(e.type):(0,w.checkIfByTransform)(t,{node:e})))}(t,a))||void 0===e?void 0:e.useBrick}),[t,a]),r=(0,c.useMemo)((()=>({node:t})),[t]);(0,c.useEffect)((()=>{i||setTimeout((()=>{null==n||n(t.id,null)}))}),[t.id,n,i]),(0,c.useEffect)((()=>()=>{null==l||l(t.id)}),[]);var o=(0,c.useCallback)((e=>{e&&setTimeout((()=>{null==n||n(t.id,e)}))}),[t.id,n]),s=(0,c.useCallback)((()=>{setTimeout((()=>{null==n||n(t.id,null)}))}),[t.id,n]);return i?d().createElement(y.ReactUseBrick,{refCallback:o,ignoredCallback:s,useBrick:i,data:r}):null}function E(e,t,a){var n,l=e.filter((e=>e!==t&&(n=(e.x-t.x)*a)>0&&n>Math.abs(t.y-e.y)));return(0,k.minBy)(l,(e=>(t.y-e.y)**2+(t.x-e.x)**2))}function M(e,t,a,n){var l=1===n?"source":"target",i=1===n?"target":"source",r=t.filter((e=>{var{data:t}=e;return t[l]===a.id&&t[i]!==a.id})).map((t=>{var{data:a}=t;return e.find((e=>e.id===a[i]))})).filter((e=>e&&(e.y-a.y)*n>0));return(0,k.minBy)(r,(e=>(a.y-e.y)**2+(a.x-e.x)**2))}var C=a(2159),N="var(--palette-gray-5)",W=1,B="curveBasis",S=20,R=a(3698),D=a(1479),L=a(6481),T=a(9389),A=a(8282),I=a(5004);function O(e,t,a){if(!Array.isArray(e))return"";var n;switch(a){case"curveBasis":n=R.ZP;break;case"curveBumpX":n=D.sj;break;case"curveBumpY":n=D.BW;break;case"curveMonotoneX":n=L.Z;break;case"curveMonotoneY":n=L.s;break;case"curveNatural":n=T.Z;break;default:n=A.Z}var l=0,i=0;if(t){var{x:r,y:o}=e[e.length-2],{x:s,y:c}=e[e.length-1],d=t/Math.sqrt(Math.pow(s-r,2)+Math.pow(c-o,2));l=(r-s)*d,i=(o-c)*d}var u=e;return(0,I.Z)().x(((t,a)=>t.x-(a===e.length-1?l:0))).y(((t,a)=>t.y-(a===e.length-1?i:0))).curve(n)(u)}var z=["label"];var P,_,K,U,$,H,X,Y,q,j,F,G,J,Q,V,ee,te,ae,ne,le,ie,re,oe,se,ce,de,ue,he,ve,fe,be,pe,ge,me=a(6436);function ke(e){var{labels:t,onRendered:a}=e,[n,l]=(0,c.useState)(!1),[i,r]=(0,c.useState)([]),o=(0,c.useMemo)((()=>new Map),[]),s=(0,c.useCallback)(((e,t)=>{t&&o.set(e,t),r((t=>t.includes(e)?t:t.concat(e)))}),[o]),u=(0,c.useCallback)((e=>{r((t=>{var a=t.indexOf(e);return-1===a?t:t.slice(0,a).concat(t.slice(a+1))})),o.delete(e)}),[o]);return(0,c.useEffect)((()=>{l(!(null!=t&&t.some((e=>!i.includes(e.id)))))}),[t,i]),(0,c.useEffect)((()=>{null==a||a(n?o:null)}),[o,n]),d().createElement(d().Fragment,null,null==t?void 0:t.map((e=>{var{text:t,label:a,position:n,id:l,edge:i}=e;return a?d().createElement("div",{key:l,className:"line-label",style:{left:n[0],top:n[1]}},d().createElement(we,{id:l,edge:i,label:a,onRendered:s,onUnmount:u})):d().createElement(ye,{key:l,id:l,text:t,position:n,onRendered:s})})))}function ye(e){var{id:t,text:a,position:l,onRendered:i}=e,r=(0,c.useCallback)((e=>{null==i||i(t,e)}),[t,i]);return d().createElement("div",{className:"line-label",ref:r,style:(0,n.Z)({left:l[0],top:l[1]},a.style)},a.content)}function we(e){var{id:t,edge:a,label:n,onRendered:l,onUnmount:i}=e,r=(0,c.useMemo)((()=>(0,w.checkIfByTransform)(n,{edge:a})?n.useBrick:null),[a,n]),o=(0,c.useMemo)((()=>({edge:a})),[a]);(0,c.useEffect)((()=>{r||setTimeout((()=>{null==l||l(t,null)}))}),[t,l,r]),(0,c.useEffect)((()=>()=>{null==i||i(t)}),[]);var s=(0,c.useCallback)((e=>{e&&setTimeout((()=>{null==l||l(t,e.parentElement)}))}),[t,l]),u=(0,c.useCallback)((()=>{setTimeout((()=>{null==l||l(t,null)}))}),[t,l]);return r?d().createElement(y.ReactUseBrick,{refCallback:s,ignoredCallback:u,useBrick:r,data:o}):null}var Ze,{defineElement:xe,property:Ee,event:Me,method:Ce}=(0,u.createDecorators)(),Ne=(0,c.forwardRef)(et);_=xe("eo-diagram",{styleTexts:[me.Z]}),K=Ee({type:String}),$=Ee({attribute:!1}),X=Ee({attribute:!1}),q=Ee({attribute:!1}),F=Ee({attribute:!1}),J=Ee({attribute:!1}),V=Ee({type:String}),te=Ee({type:Boolean}),ne=Me({type:"activeNode.change"}),oe=Me({type:"node.delete"}),ue=Me({type:"line.dblclick"}),be=Ce();var We=new WeakMap,Be=new WeakMap,Se=new WeakMap,Re=new WeakMap,De=new WeakMap,Le=new WeakMap,Te=new WeakMap,Ae=new WeakMap,Ie=new WeakMap,Oe=new WeakMap,ze=new WeakMap,Pe=new WeakMap,_e=new WeakMap,Ke=new WeakMap,Ue=new WeakMap,$e=new WeakMap,He=new WeakMap,Xe=new WeakMap,Ye=new WeakMap;class qe extends h.ReactNextElement{constructor(){super(...arguments),(0,l.Z)(this,$e,{get:Ve,set:Qe}),(0,l.Z)(this,_e,{get:Je,set:Ge}),(0,l.Z)(this,Oe,{get:Fe,set:je}),(0,l.Z)(this,We,{writable:!0,value:(pe(this),U(this))}),(0,l.Z)(this,Be,{writable:!0,value:H(this)}),(0,l.Z)(this,Se,{writable:!0,value:Y(this)}),(0,l.Z)(this,Re,{writable:!0,value:j(this)}),(0,l.Z)(this,De,{writable:!0,value:G(this)}),(0,l.Z)(this,Le,{writable:!0,value:Q(this)}),(0,l.Z)(this,Te,{writable:!0,value:ee(this)}),(0,l.Z)(this,Ae,{writable:!0,value:ae(this)}),(0,l.Z)(this,Ie,{writable:!0,value:le(this)}),(0,l.Z)(this,ze,{writable:!0,value:e=>{(0,o.Z)(this,Oe).emit(e)}}),(0,l.Z)(this,Pe,{writable:!0,value:se(this)}),(0,l.Z)(this,Ke,{writable:!0,value:e=>{(0,o.Z)(this,_e).emit(e)}}),(0,l.Z)(this,Ue,{writable:!0,value:he(this)}),(0,l.Z)(this,He,{writable:!0,value:e=>{(0,o.Z)(this,$e).emit(e)}}),(0,l.Z)(this,Xe,{writable:!0,value:e=>{this.activeNodeId=e}}),(0,l.Z)(this,Ye,{writable:!0,value:(0,c.createRef)()})}get layout(){return(0,o.Z)(this,We)}set layout(e){(0,r.Z)(this,We,e)}get nodes(){return(0,o.Z)(this,Be)}set nodes(e){(0,r.Z)(this,Be,e)}get edges(){return(0,o.Z)(this,Se)}set edges(e){(0,r.Z)(this,Se,e)}get nodeBricks(){return(0,o.Z)(this,Re)}set nodeBricks(e){(0,r.Z)(this,Re,e)}get lines(){return(0,o.Z)(this,De)}set lines(e){(0,r.Z)(this,De,e)}get layoutOptions(){return(0,o.Z)(this,Le)}set layoutOptions(e){(0,r.Z)(this,Le,e)}get activeNodeId(){return(0,o.Z)(this,Te)}set activeNodeId(e){(0,r.Z)(this,Te,e)}get disableKeyboardAction(){return(0,o.Z)(this,Ae)}set disableKeyboardAction(e){(0,r.Z)(this,Ae,e)}callOnLineLabel(e,t){for(var a,n=arguments.length,l=new Array(n>2?n-2:0),i=2;i<n;i++)l[i-2]=arguments[i];null===(a=(0,o.Z)(this,Ye).current)||void 0===a||a.callOnLineLabel(e,t,...l)}render(){return d().createElement(Ne,{ref:(0,o.Z)(this,Ye),layout:this.layout,nodes:this.nodes,edges:this.edges,nodeBricks:this.nodeBricks,lines:this.lines,layoutOptions:this.layoutOptions,activeNodeId:this.activeNodeId,disableKeyboardAction:this.disableKeyboardAction,onActiveNodeChange:(0,o.Z)(this,ze),onSwitchActiveNode:(0,o.Z)(this,Xe),onNodeDelete:(0,o.Z)(this,Ke),onLineDoubleClick:(0,o.Z)(this,He)})}}function je(e){re(this,e)}function Fe(){return ie(this)}function Ge(e){de(this,e)}function Je(){return ce(this)}function Qe(e){fe(this,e)}function Ve(){return ve(this)}function et(e,t){var{layout:a,nodes:l,edges:i,nodeBricks:r,lines:o,layoutOptions:s,activeNodeId:u,disableKeyboardAction:h,onActiveNodeChange:v,onSwitchActiveNode:g,onNodeDelete:y,onLineDoubleClick:x}=e,[R,D]=(0,c.useState)(null),[L,T]=(0,c.useState)(!1),[A,I]=(0,c.useState)(0),[P,_]=(0,c.useState)(null),[K,U]=(0,c.useState)(0),[$,H]=(0,c.useState)(null),[X,Y]=(0,c.useState)([]),[q,j]=(0,c.useState)([]),[F,G]=(0,c.useState)([]),J=(0,c.useRef)(null),[Q,V]=(0,c.useState)(!1),[ee,te]=(0,c.useState)({k:1,x:0,y:0}),ae=(0,c.useRef)(new Map),ne=(0,c.useRef)(null),le=(0,c.useRef)(null),[ie,re]=(0,c.useState)([0,0]),[oe,se]=(0,c.useState)(!1);(0,c.useImperativeHandle)(t,(()=>({callOnLineLabel(e,t){for(var a,n=arguments.length,l=new Array(n>2?n-2:0),i=2;i<n;i++)l[i-2]=arguments[i];null==$||null===(a=$.get(e))||void 0===a||null===(a=a.firstElementChild)||void 0===a||a[t](...l)}})));var ce=(0,c.useMemo)((()=>(0,n.Z)({rankdir:"TB",ranksep:50,edgesep:10,nodesep:50,nodePadding:0},s)),[s]),{nodePadding:de}=ce,ue=(0,c.useMemo)((()=>(0,k.pick)(ce,["rankdir","ranksep","edgesep","nodesep","align"])),[ce]);(0,c.useEffect)((()=>{var e=u?null==l?void 0:l.find((e=>e.id===u)):void 0;null==v||v(e)}),[l,u,v]),(0,c.useEffect)((()=>{D((e=>{var t=new(f().graphlib.Graph);for(var a of(t.setGraph(ue),t.setDefaultEdgeLabel((function(){return{}})),null!=l?l:[])){var n=null==e?void 0:e.node(a.id);t.setNode(a.id,(null==n?void 0:n.data)===a?n:{id:a.id,data:a})}for(var r of null!=i?i:[])t.setEdge(r.source,r.target,{data:r});return t}))}),[i,l,ue]),(0,c.useEffect)((()=>{if(R&&P&&0!==R.nodeCount()){for(var e of R.nodes()){var t,a,n=R.node(e);if(n){var l=P.get(e);n.width=(null!==(t=null==l?void 0:l.offsetWidth)&&void 0!==t?t:10)+2*de,n.height=(null!==(a=null==l?void 0:l.offsetHeight)&&void 0!==a?a:10)+2*de}else console.error("Diagram node not found: %s",e)}f().layout(R);var i=[];for(var r of R.nodes()){var o,s=R.node(r);if(s){i.push(s);var c=s.x-s.width/2+de,d=s.y-s.height/2+de,u=null===(o=P.get(r))||void 0===o?void 0:o.parentElement;u&&(u.style.left="".concat(c,"px"),u.style.top="".concat(d,"px"),u.style.visibility="visible")}}Y(i),j(R.edges().map((e=>R.edge(e))))}}),[R,P,A,de]);var{renderedLines:he,markers:ve}=(0,c.useMemo)((()=>function(e,t){var a=[],l=[],i=function(e){var i,r=null!==(i=null==t?void 0:t.find((t=>{return a=e,!!(n=t)&&(n.edgeType?[].concat(n.edgeType).includes(a.type):(0,w.checkIfByTransform)(n,{edge:a}));var a,n})))&&void 0!==i?i:{},{label:s}=r,c=(0,C.Z)(r,z),d=w.__secret_internals.legacyDoTransform({edge:e},c);if(!1===(null==d?void 0:d.draw))return 1;var u,h=(0,n.Z)((0,n.Z)({strokeColor:N,strokeWidth:W,curveType:B,interactStrokeWidth:S},d),{},{label:s,$id:(0,k.uniqueId)("line-")});if(h.arrow){var v={strokeColor:h.strokeColor};-1===(u=(0,k.findIndex)(l,v))&&(u=l.push(v)-1)}var f=O(o,h.arrow?-5:0,h.curveType);a.push({line:h,d:f,markerIndex:u,edge:e})};for(var{data:r,points:o}of e)i(r);return{renderedLines:a,markers:l}}(q,o)),[o,q]);(0,c.useEffect)((()=>{var e=ne.current;if(e&&!h){var t=e=>{var t=function(e,t){var{renderedNodes:a,renderedEdges:n,activeNodeId:l}=t,i=l?a.find((e=>e.id===l)):void 0;if(i){var r,o,s;switch(e.key||e.keyCode||e.which){case"ArrowLeft":case 37:o=E(a,i,-1),r="switch-active-node";break;case"ArrowUp":case 38:o=M(a,n,i,-1),r="switch-active-node";break;case"ArrowRight":case 39:o=E(a,i,1),r="switch-active-node";break;case"ArrowDown":case 40:o=M(a,n,i,1),r="switch-active-node";break;case"Backspace":case 8:case"Delete":case 46:r="delete-node",o=i}if(r)return e.preventDefault(),e.stopPropagation(),{action:r,node:null===(s=o)||void 0===s?void 0:s.data}}}(e,{renderedNodes:X,renderedEdges:q,activeNodeId:u});"delete-node"===(null==t?void 0:t.action)?null==y||y(t.node):"switch-active-node"===(null==t?void 0:t.action)&&t.node&&(null==g||g(t.node.id))};return e.addEventListener("keydown",t),()=>{e.removeEventListener("keydown",t)}}}),[u,X,q,h,g,y]);var fe=(0,c.useCallback)((e=>{e&&(I((e=>e+1)),_(e)),T((t=>t||!!e))}),[]),be=(0,c.useCallback)((e=>{e&&(U((e=>e+1)),H(e))}),[]);(0,c.useEffect)((()=>{var e=ne.current,t=J.current;if(e&&t){var a=!1,n=(0,p.sP)().scaleExtent([1,1]).on("start",(()=>{a=!1,V(!0)})).on("zoom",(e=>{a=!0,te(e.transform)})).on("end",(()=>{V(!1),a||null==g||g(void 0)}));(0,b.Z)(t).call(n),(0,b.Z)(e).on("wheel.zoom",(e=>{e.stopPropagation(),e.preventDefault(),n.translateBy((0,b.Z)(t),e.wheelDeltaX/5,e.wheelDeltaY/5)}))}}),[g]),(0,c.useEffect)((()=>{var e=ne.current;0!==X.length&&e&&!oe&&(re(function(e,t){var[a,n]=t,l=1/0,i=1/0,r=-1/0,o=-1/0;for(var s of e){var c=s.width/2,d=s.height/2,u=s.x-c,h=s.x+c,v=s.y-d,f=s.y+d;u<l&&(l=u),h>r&&(r=h),v<i&&(i=v),f>o&&(o=f)}return[(a-(r-l))/2-i,(n-(o-i))/2-l]}(X,[e.clientWidth,e.clientHeight])),se(!0))}),[oe,X]);var pe=(0,c.useMemo)((()=>"".concat((0,k.uniqueId)("diagram-"),"-")),[]),ge="".concat(pe,"line-arrow-"),me="".concat(pe,"clip-path-");(0,c.useEffect)((()=>{G((e=>0===e.length&&0===he.length?e:he.map((e=>{var{line:{text:t,label:a,$id:n},edge:l}=e,i=ae.current.get(n);if((t||a)&&i&&i.getAttribute("d")){var{x:r,y:o,width:s,height:c}=i.getBBox(),d=1e3,u=r-d,h=o-d,v=r+s+d,f=o+c+d,b=i.getPointAtLength(i.getTotalLength()/2);return{text:t,label:a,edge:l,position:[b.x,b.y],lineRect:{left:u,top:h,right:v,bottom:f},id:n}}})).filter(Boolean)))}),[he]);var[ye,we]=d().useState([]);return(0,c.useEffect)((()=>{$&&we(F.map((e=>{var{id:t}=e,a=null==$?void 0:$.get(t);if(a){var{offsetWidth:n,offsetHeight:l}=a;if(0!==n&&0!==l)return{x0:a.offsetLeft-n/2-3,y0:a.offsetTop-l/2-3,w:n+6,h:l+6,id:t}}})).filter(Boolean))}),[K,$,F]),"dagre"!==a?d().createElement("div",null,'Diagram layout not supported: "'.concat(a,'"')):d().createElement("div",{className:m()("diagram",{ready:L&&oe}),tabIndex:-1,ref:ne},d().createElement("div",{className:m()("dragger",{grabbing:Q}),ref:J}),d().createElement("svg",{width:"100%",height:"100%",className:"lines"},d().createElement("defs",null,ve.map(((e,t)=>{var{strokeColor:a}=e;return d().createElement("marker",{key:t,id:"".concat(ge).concat(t),viewBox:"0 0 6 6",refX:3,refY:3,markerWidth:6,markerHeight:6,orient:"auto"},d().createElement("path",{d:"M 0.5 0.5 L 5.5 3 L 0.5 5.5 z",stroke:a,strokeWidth:1,fill:a}))})),ye.map((e=>{var{x0:t,y0:a,w:n,h:l,id:i}=e,r=F.find((e=>e.id===i));if(r){var{left:o,top:s,right:c,bottom:u}=r.lineRect;return d().createElement("clipPath",{key:i,id:"".concat(me).concat(i)},d().createElement("polygon",{points:["".concat(t,",").concat(a+l),"".concat(t+n,",").concat(a+l),"".concat(t+n,",").concat(a),"".concat(t,",").concat(a),"".concat(t,",").concat(s),"".concat(c,",").concat(s),"".concat(c,",").concat(u),"".concat(o,",").concat(u),"".concat(o,",").concat(s),"".concat(t,",").concat(s)].join(" ")}))}}))),d().createElement("g",{transform:"translate(".concat(ie[0]+ee.x," ").concat(ie[1]+ee.y,") scale(").concat(ee.k,")")},he.map((e=>{var t,{line:a,d:n,markerIndex:l,edge:i}=e;return d().createElement("g",{className:m()("line",{interactable:a.interactable}),key:a.$id,onDoubleClick:a.interactable?e=>(e.preventDefault(),e.stopPropagation(),null==x?void 0:x({id:a.$id,edge:i})):void 0},d().createElement("path",{ref:e=>ae.current.set(a.$id,e),stroke:a.strokeColor,strokeWidth:a.strokeWidth,d:n,fill:"none",markerEnd:void 0===l?void 0:"url(#".concat(ge).concat(l,")"),clipPath:ye.some((e=>e.id===a.$id))?"url(#".concat(me).concat(a.$id,")"):void 0}),a.interactable&&d().createElement("path",{d:n,fill:"none",stroke:"transparent",strokeWidth:null!==(t=a.interactStrokeWidth)&&void 0!==t?t:5}))})))),d().createElement("div",{className:"line-labels",style:{left:ie[0]+ee.x,top:ie[1]+ee.y}},d().createElement(ke,{labels:F,onRendered:be})),d().createElement("div",{className:"nodes",ref:le,style:{left:ie[0]+ee.x,top:ie[1]+ee.y}},d().createElement(Z,{nodes:l,nodeBricks:r,onRendered:fe})))}ge=qe,({e:[U,H,Y,j,G,Q,ee,ae,le,ie,re,se,ce,de,he,ve,fe,pe],c:[Ze,P]}=(0,s.Z)(ge,[[K,1,"layout"],[$,1,"nodes"],[X,1,"edges"],[q,1,"nodeBricks"],[F,1,"lines"],[J,1,"layoutOptions"],[V,1,"activeNodeId"],[te,1,"disableKeyboardAction"],[ne,1,"activeNodeChangeEvent",e=>(0,o.Z)(e,Ie),(e,t)=>(0,r.Z)(e,Ie,t)],[oe,1,"nodeDelete",e=>(0,o.Z)(e,Pe),(e,t)=>(0,r.Z)(e,Pe,t)],[ue,1,"lineDoubleClick",e=>(0,o.Z)(e,Ue),(e,t)=>(0,r.Z)(e,Ue,t)],[be,2,"callOnLineLabel"]],[_],0,(e=>Ye.has((0,i.Z)(e))),h.ReactNextElement)),P();var tt,at,nt,lt,it,rt,ot,st,ct,dt,ut,ht,vt,ft,bt=a(8074),{defineElement:pt,property:gt,event:mt,method:kt}=(0,u.createDecorators)(),yt=(0,c.forwardRef)(St);at=pt("diagram.editable-label",{styleTexts:[bt.Z]}),nt=gt(),it=gt({render:!1}),ot=mt({type:"label.change"}),ut=kt();var wt=new WeakMap,Zt=new WeakMap,xt=new WeakMap,Et=new WeakMap,Mt=new WeakMap,Ct=new WeakMap;class Nt extends h.ReactNextElement{constructor(){super(...arguments),(0,l.Z)(this,Et,{get:Bt,set:Wt}),(0,l.Z)(this,wt,{writable:!0,value:(ht(this),lt(this))}),(0,l.Z)(this,Zt,{writable:!0,value:rt(this)}),(0,l.Z)(this,xt,{writable:!0,value:st(this)}),(0,l.Z)(this,Mt,{writable:!0,value:e=>{(0,o.Z)(this,Et).emit(e)}}),(0,l.Z)(this,Ct,{writable:!0,value:(0,c.createRef)()})}get label(){return(0,o.Z)(this,wt)}set label(e){(0,r.Z)(this,wt,e)}get type(){return(0,o.Z)(this,Zt)}set type(e){(0,r.Z)(this,Zt,e)}enableEditing(){var e;null===(e=(0,o.Z)(this,Ct).current)||void 0===e||e.enableEditing()}render(){return d().createElement(yt,{ref:(0,o.Z)(this,Ct),label:this.label,onLabelChange:(0,o.Z)(this,Mt)})}}function Wt(e){dt(this,e)}function Bt(){return ct(this)}function St(e,t){var{label:a,onLabelChange:n}=e,l=null!=a?a:"",[i,r]=(0,c.useState)(l),[o,s]=(0,c.useState)(!1),[u,h]=(0,c.useState)(!1),v=(0,c.useRef)(null);(0,c.useImperativeHandle)(t,(()=>({enableEditing(){s(!0)}}))),(0,c.useEffect)((()=>{r(l)}),[l]);var f=(0,c.useCallback)((e=>{e.preventDefault(),e.stopPropagation(),s(!0)}),[]);(0,c.useEffect)((()=>{var e,t;o&&(null===(e=v.current)||void 0===e||e.focus({preventScroll:!0}),null===(t=v.current)||void 0===t||t.select())}),[o]);var b=(0,c.useCallback)((e=>{r(e.target.value)}),[]),p=(0,c.useCallback)((e=>{var t,a=e.key||e.keyCode||e.which;"Enter"!==a&&13!==a||null===(t=v.current)||void 0===t||t.blur()}),[]),g=(0,c.useCallback)((()=>{s(!1),h(!0)}),[]);return(0,c.useEffect)((()=>{u&&(null==n||n(i),h(!1))}),[i,n,u]),d().createElement("div",{className:m()("label",{editing:o,empty:!i})},d().createElement("input",{className:"label-input",value:i,ref:v,onChange:b,onKeyDown:p,onBlur:g}),d().createElement("div",{className:"label-text",onDoubleClick:f},i))}vt=Nt,({e:[lt,rt,st,ct,dt,ht],c:[ft,tt]}=(0,s.Z)(vt,[[nt,1,"label"],[it,1,"type"],[ot,1,"labelChange",e=>(0,o.Z)(e,xt),(e,t)=>(0,r.Z)(e,xt,t)],[ut,2,"enableEditing"]],[at],0,(e=>Ct.has((0,i.Z)(e))),h.ReactNextElement)),tt()},6436:(e,t,a)=>{a.d(t,{Z:()=>o});var n=a(9601),l=a.n(n),i=a(2609),r=a.n(i)()(l());r.push([e.id,":host{display:block;width:100%;height:100%;overflow:hidden}:host([hidden]){display:none}*{box-sizing:border-box}.diagram{width:100%;height:100%;position:relative;opacity:0}.diagram:focus{outline:none}.ready{opacity:1}.dragger,\n.lines,\n.line-labels,\n.nodes{position:absolute;top:0;left:0}.node{position:absolute;visibility:hidden}.dragger{width:100%;height:100%;cursor:-webkit-grab;cursor:grab}.grabbing{cursor:-webkit-grabbing;cursor:grabbing}.line-label{position:absolute;transform:translate(-50%,-50%);white-space:pre-line;width:-webkit-max-content;width:-moz-max-content;width:max-content;text-align:center}.lines{pointer-events:none}.line.interactable{pointer-events:auto}",""]);const o=r.toString()},8074:(e,t,a)=>{a.d(t,{Z:()=>o});var n=a(9601),l=a.n(n),i=a(2609),r=a.n(i)()(l());r.push([e.id,':host{display:block;--local-label-line-height:inherit;--local-label-font-size:inherit;--local-label-color:inherit;--local-label-font-weight:inherit}:host([hidden]){display:none}:host([type="line"]){--local-label-line-height:18px;--local-label-font-size:11px;--local-label-color:var(--color-secondary-text);--local-label-font-weight:400}*{box-sizing:border-box}.label{max-width:168px;margin:-3px}.label-text,\n.label-input{width:100%;height:24px;padding:3px;border:none;line-height:var(--local-label-line-height);font-size:var(--local-label-font-size);color:var(--local-label-color);font-weight:var(--local-label-font-weight);text-align:center;font-family:inherit;cursor:text;-webkit-user-select:text;-moz-user-select:text;user-select:text}.label-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.label.editing .label-text,\n.label.empty:not(.editing) .label-text,\n.label:not(.editing) .label-input{display:none}',""]);const o=r.toString()}}]);
2
+ //# sourceMappingURL=4922.4558c07b.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/4922.4558c07b.js","mappings":"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","sources":["webpack:///./src/diagram/NodeComponent.tsx","webpack:///./src/diagram/processors/findNodeBrick.ts","webpack:///./src/diagram/processors/handleKeyboard.ts","webpack:///./src/diagram/constants.ts","webpack:///./src/diagram/lines/curveLine.ts","webpack:///./src/diagram/LineLabelComponent.tsx","webpack:///./src/diagram/index.tsx","webpack:///./src/diagram/processors/getRenderedLinesAndMarkers.ts","webpack:///./src/diagram/processors/matchEdgeByFilter.ts","webpack:///./src/diagram/processors/getCenterOffsets.ts","webpack:///./src/editable-label/index.tsx","webpack:///./src/diagram/styles.shadow.css","webpack:///./src/editable-label/styles.shadow.css"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { ReactUseBrick } from \"@next-core/react-runtime\";\nimport type {\n DiagramNode,\n DiagramNodeId,\n NodeBrickConf,\n RefRepository,\n} from \"./interfaces\";\nimport { findNodeBrick } from \"./processors/findNodeBrick\";\n\nexport interface NodeComponentGroupProps {\n nodes?: DiagramNode[];\n nodeBricks?: NodeBrickConf[];\n onRendered?: (refRepository: RefRepository | null) => void;\n}\n\nexport function NodeComponentGroup({\n nodes,\n nodeBricks,\n onRendered,\n}: NodeComponentGroupProps): JSX.Element {\n const [rendered, setRendered] = useState(false);\n const [renderedIds, setRenderedIds] = useState<DiagramNodeId[]>([]);\n const refRepository = useMemo<RefRepository>(() => new Map(), []);\n\n const handleRenderer = useCallback(\n (id: DiagramNodeId, element: HTMLElement | null) => {\n if (element) {\n refRepository.set(id, element);\n }\n setRenderedIds((previous) =>\n previous.includes(id) ? previous : previous.concat(id)\n );\n },\n [refRepository]\n );\n\n const handleUnmount = useCallback(\n (id: DiagramNodeId) => {\n setRenderedIds((previous) => {\n const index = previous.indexOf(id);\n return index === -1\n ? previous\n : previous.slice(0, index).concat(previous.slice(index + 1));\n });\n refRepository.delete(id);\n },\n [refRepository]\n );\n\n useEffect(() => {\n // All nodes have been rendered.\n setRendered(!nodes?.some((node) => !renderedIds.includes(node.id)));\n }, [nodes, renderedIds]);\n\n useEffect(\n () => {\n onRendered?.(rendered ? refRepository : null);\n },\n // Dot not re-run effect when `onRendered` changed.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [/* onRendered, */ refRepository, rendered]\n );\n\n return (\n <React.Fragment>\n {nodes?.map((node) => (\n <div key={node.id} className=\"node\">\n <NodeComponent\n nodeBricks={nodeBricks}\n node={node}\n onRendered={handleRenderer}\n onUnmount={handleUnmount}\n />\n </div>\n ))}\n </React.Fragment>\n );\n}\n\nexport interface NodeComponentProps {\n node: DiagramNode;\n nodeBricks?: NodeBrickConf[];\n onRendered?: (id: DiagramNodeId, element: HTMLElement | null) => void;\n onUnmount?: (id: DiagramNodeId) => void;\n}\n\nexport function NodeComponent({\n node,\n nodeBricks,\n onRendered,\n onUnmount,\n}: NodeComponentProps): JSX.Element | null {\n const useBrick = useMemo(\n () => findNodeBrick(node, nodeBricks)?.useBrick,\n [node, nodeBricks]\n );\n const memoizedData = useMemo(() => ({ node }), [node]);\n\n useEffect(() => {\n if (!useBrick) {\n // Keep the same time delay for reporting rendered.\n setTimeout(() => {\n onRendered?.(node.id, null);\n });\n }\n }, [node.id, onRendered, useBrick]);\n\n useEffect(\n () => {\n return () => {\n onUnmount?.(node.id);\n };\n },\n // Only unmount once\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n const refCallback = useCallback(\n (element: HTMLElement | null) => {\n if (element) {\n // Todo: correctly wait for `useBrick` in v3 to be rendered (after layout)\n // Wait a macro task to let `useBrick` to be rendered.\n setTimeout(() => {\n onRendered?.(node.id, element);\n });\n }\n },\n [node.id, onRendered]\n );\n\n const ignoredCallback = useCallback(() => {\n setTimeout(() => {\n onRendered?.(node.id, null);\n });\n }, [node.id, onRendered]);\n\n if (!useBrick) {\n return null;\n }\n\n return (\n <ReactUseBrick\n refCallback={refCallback}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore For v3 only\n ignoredCallback={ignoredCallback}\n useBrick={useBrick}\n data={memoizedData}\n />\n );\n}\n","import { checkIfByTransform } from \"@next-core/runtime\";\nimport { NodeBrickConf, DiagramNode } from \"../interfaces\";\n\nexport function findNodeBrick(\n node: DiagramNode,\n nodeBricks: NodeBrickConf[] | undefined\n): NodeBrickConf | undefined {\n return nodeBricks?.find((item) => {\n if (item.nodeType) {\n return ([] as unknown[]).concat(item.nodeType).includes(node.type);\n }\n return checkIfByTransform(item, { node });\n });\n}\n","import { minBy } from \"lodash\";\nimport type { DiagramNode, RenderedEdge, RenderedNode } from \"../interfaces\";\n\nexport type KeyboardAction =\n | KeyboardActionSwitchActiveNode\n | KeyboardActionDeleteNode;\n\nexport interface KeyboardActionSwitchActiveNode {\n action: \"switch-active-node\";\n node?: DiagramNode;\n}\n\nexport interface KeyboardActionDeleteNode {\n action: \"delete-node\";\n node: DiagramNode;\n}\n\nexport function handleKeyboard(\n event: KeyboardEvent,\n {\n renderedNodes,\n renderedEdges,\n activeNodeId,\n }: {\n renderedNodes: RenderedNode[];\n renderedEdges: RenderedEdge[];\n activeNodeId: string | undefined;\n }\n): KeyboardAction | undefined {\n const activeNode = activeNodeId\n ? renderedNodes.find((node) => node.id === activeNodeId)\n : undefined;\n\n if (!activeNode) {\n return;\n }\n\n const key =\n event.key ||\n /* istanbul ignore next: compatibility */ event.keyCode ||\n /* istanbul ignore next: compatibility */ event.which;\n let action: KeyboardAction[\"action\"] | undefined;\n let node: RenderedNode | undefined;\n switch (key) {\n case \"ArrowLeft\":\n case 37: {\n node = moveOnX(renderedNodes, activeNode, -1);\n action = \"switch-active-node\";\n break;\n }\n case \"ArrowUp\":\n case 38: {\n node = moveOnY(renderedNodes, renderedEdges, activeNode, -1);\n action = \"switch-active-node\";\n break;\n }\n case \"ArrowRight\":\n case 39: {\n node = moveOnX(renderedNodes, activeNode, 1);\n action = \"switch-active-node\";\n break;\n }\n case \"ArrowDown\":\n case 40: {\n node = moveOnY(renderedNodes, renderedEdges, activeNode, 1);\n action = \"switch-active-node\";\n break;\n }\n case \"Backspace\":\n case 8:\n case \"Delete\":\n case 46: {\n action = \"delete-node\";\n node = activeNode;\n break;\n }\n }\n if (action) {\n event.preventDefault();\n event.stopPropagation();\n return { action, node: node?.data } as KeyboardAction;\n }\n}\n\nfunction moveOnX(\n renderedNodes: RenderedNode[],\n activeNode: RenderedNode,\n direction: 1 | -1\n) {\n let diff: number;\n const candidates = renderedNodes.filter(\n (node) =>\n node !== activeNode &&\n ((diff = (node.x - activeNode.x) * direction), diff > 0) &&\n diff > Math.abs(activeNode.y - node.y)\n );\n return minBy(\n candidates,\n (node) => (activeNode.y - node.y) ** 2 + (activeNode.x - node.x) ** 2\n );\n}\n\nfunction moveOnY(\n renderedNodes: RenderedNode[],\n renderedEdges: RenderedEdge[],\n activeNode: RenderedNode,\n direction: 1 | -1\n) {\n const from = direction === 1 ? \"source\" : \"target\";\n const to = direction === 1 ? \"target\" : \"source\";\n const candidateEdges = renderedEdges.filter(\n ({ data }) => data[from] === activeNode.id && data[to] !== activeNode.id\n );\n const candidates = candidateEdges\n .map(({ data }) => renderedNodes.find((node) => node.id === data[to]))\n .filter(\n (node) => node && (node.y - activeNode.y) * direction > 0\n ) as RenderedNode[];\n return minBy(\n candidates,\n (node) => (activeNode.y - node.y) ** 2 + (activeNode.x - node.x) ** 2\n );\n}\n","export const DEFAULT_LINE_STROKE_COLOR = \"var(--palette-gray-5)\";\nexport const DEFAULT_LINE_STROKE_WIDTH = 1;\nexport const DEFAULT_LINE_CURVE_TYPE = \"curveBasis\";\nexport const DEFAULT_LINE_INTERACT_STROKE_WIDTH = 20;\n","import {\n curveLinear,\n line,\n curveBasis,\n curveBumpX,\n curveBumpY,\n type CurveFactory,\n curveMonotoneX,\n curveNatural,\n curveMonotoneY,\n} from \"d3-shape\";\nimport type { CurveType, NodePosition } from \"../interfaces\";\n\n/**\n * Generate Line from points\n */\nexport function curveLine(\n points: Array<NodePosition>,\n arrowOffset: number,\n curveType?: CurveType\n): string {\n if (!Array.isArray(points)) {\n return \"\";\n }\n let curveFactory: CurveFactory;\n switch (curveType) {\n case \"curveBasis\":\n curveFactory = curveBasis;\n break;\n case \"curveBumpX\":\n curveFactory = curveBumpX;\n break;\n case \"curveBumpY\":\n curveFactory = curveBumpY;\n break;\n case \"curveMonotoneX\":\n curveFactory = curveMonotoneX;\n break;\n case \"curveMonotoneY\":\n curveFactory = curveMonotoneY;\n break;\n case \"curveNatural\":\n curveFactory = curveNatural;\n break;\n default:\n curveFactory = curveLinear;\n }\n let arrowOffsetX = 0;\n let arrowOffsetY = 0;\n if (arrowOffset) {\n const { x: x0, y: y0 } = points[points.length - 2];\n const { x: x1, y: y1 } = points[points.length - 1];\n const distance = Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2));\n const ratio = arrowOffset / distance;\n arrowOffsetX = (x0 - x1) * ratio;\n arrowOffsetY = (y0 - y1) * ratio;\n }\n const transformPoints = points;\n const lineFunction = line()\n .x(\n (d, index) =>\n (d as unknown as { x: number }).x -\n (index === points.length - 1 ? arrowOffsetX : 0)\n )\n .y(\n (d, index) =>\n (d as unknown as { y: number }).y -\n (index === points.length - 1 ? arrowOffsetY : 0)\n )\n .curve(curveFactory);\n return lineFunction(transformPoints as unknown as Array<[number, number]>)!;\n}\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { ReactUseBrick } from \"@next-core/react-runtime\";\nimport { checkIfByTransform } from \"@next-core/runtime\";\nimport type {\n DiagramEdge,\n LineLabelConf,\n PositionTuple,\n RefRepository,\n RenderedLineLabel,\n TextOptions,\n} from \"./interfaces\";\n\nexport interface LineLabelComponentGroupProps {\n labels?: RenderedLineLabel[];\n onRendered?: (refRepository: RefRepository | null) => void;\n}\n\nexport function LineLabelComponentGroup({\n labels,\n onRendered,\n}: LineLabelComponentGroupProps): JSX.Element {\n const [rendered, setRendered] = useState(false);\n const [renderedIds, setRenderedIds] = useState<string[]>([]);\n const refRepository = useMemo<RefRepository>(() => new Map(), []);\n\n const handleRenderer = useCallback(\n (id: string, element: HTMLElement | null) => {\n if (element) {\n refRepository.set(id, element);\n }\n setRenderedIds((previous) =>\n previous.includes(id) ? previous : previous.concat(id)\n );\n },\n [refRepository]\n );\n\n const handleUnmount = useCallback(\n (id: string) => {\n setRenderedIds((previous) => {\n const index = previous.indexOf(id);\n return index === -1\n ? previous\n : previous.slice(0, index).concat(previous.slice(index + 1));\n });\n refRepository.delete(id);\n },\n [refRepository]\n );\n\n useEffect(() => {\n // All nodes have been rendered.\n setRendered(!labels?.some((label) => !renderedIds.includes(label.id)));\n }, [labels, renderedIds]);\n\n useEffect(\n () => {\n onRendered?.(rendered ? refRepository : null);\n },\n // Dot not re-run effect when `onRendered` changed.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [/* onRendered, */ refRepository, rendered]\n );\n\n return (\n <React.Fragment>\n {labels?.map(({ text, label, position, id, edge }) =>\n label ? (\n <div\n key={id}\n className=\"line-label\"\n style={{\n left: position[0],\n top: position[1],\n }}\n >\n <LineLabelComponent\n id={id}\n edge={edge}\n label={label}\n onRendered={handleRenderer}\n onUnmount={handleUnmount}\n />\n </div>\n ) : (\n <LineTextComponent\n key={id}\n id={id}\n text={text!}\n position={position}\n onRendered={handleRenderer}\n />\n )\n )}\n </React.Fragment>\n );\n}\n\nexport interface LineTextComponentProps {\n id: string;\n text: TextOptions;\n position: PositionTuple;\n onRendered?: (id: string, element: HTMLElement | null) => void;\n // onUnmount?: (id: string) => void;\n}\n\nexport function LineTextComponent({\n id,\n text,\n position,\n onRendered /* , onUnmount */,\n}: LineTextComponentProps): JSX.Element {\n const refCallback = useCallback(\n (element: HTMLDivElement) => {\n onRendered?.(id, element);\n },\n [id, onRendered]\n );\n\n return (\n <div\n className=\"line-label\"\n ref={refCallback}\n style={{\n left: position[0],\n top: position[1],\n ...text!.style,\n }}\n >\n {text!.content}\n </div>\n );\n}\n\n// export const LineLabelComponentGroup = React.memo(LegacyLineLabelComponentGroup);\n\nexport interface LineLabelComponentProps {\n id: string;\n edge: DiagramEdge;\n label: LineLabelConf;\n onRendered?: (id: string, element: HTMLElement | null) => void;\n onUnmount?: (id: string) => void;\n}\n\nexport function LineLabelComponent({\n id,\n edge,\n label,\n onRendered,\n onUnmount,\n}: LineLabelComponentProps): JSX.Element | null {\n const useBrick = useMemo(\n () => (checkIfByTransform(label, { edge }) ? label.useBrick : null),\n [edge, label]\n );\n\n const memoizedData = useMemo(() => ({ edge }), [edge]);\n\n useEffect(() => {\n if (!useBrick) {\n // Keep the same time delay for reporting rendered.\n setTimeout(() => {\n onRendered?.(id, null);\n });\n }\n }, [id, onRendered, useBrick]);\n\n useEffect(\n () => {\n return () => {\n onUnmount?.(id);\n };\n },\n // Only unmount once\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n const refCallback = useCallback(\n (element: HTMLElement | null) => {\n if (element) {\n // Todo: correctly wait for `useBrick` in v3 to be rendered (after layout)\n // Wait a macro task to let `useBrick` to be rendered.\n setTimeout(() => {\n onRendered?.(id, element.parentElement);\n });\n }\n },\n [id, onRendered]\n );\n\n const ignoredCallback = useCallback(() => {\n setTimeout(() => {\n onRendered?.(id, null);\n });\n }, [id, onRendered]);\n\n if (!useBrick) {\n return null;\n }\n\n return (\n <ReactUseBrick\n refCallback={refCallback}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore For v3 only\n ignoredCallback={ignoredCallback}\n useBrick={useBrick}\n data={memoizedData}\n />\n );\n}\n","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport dagre from \"@dagrejs/dagre\";\nimport { select } from \"d3-selection\";\nimport { zoom } from \"d3-zoom\";\nimport classNames from \"classnames\";\nimport { pick, uniqueId } from \"lodash\";\nimport type {\n DiagramEdge,\n DiagramNode,\n LayoutOptionsDagre,\n LineConf,\n NodeBrickConf,\n PositionTuple,\n RefRepository,\n RenderedEdge,\n RenderedLineLabel,\n RenderedNode,\n LineTextClipPath,\n TransformLiteral,\n LineTarget,\n} from \"./interfaces\";\nimport { NodeComponentGroup } from \"./NodeComponent\";\nimport { handleKeyboard } from \"./processors/handleKeyboard\";\nimport { getCenterOffsets } from \"./processors/getCenterOffsets\";\nimport { getRenderedLinesAndMarkers } from \"./processors/getRenderedLinesAndMarkers\";\nimport styleText from \"./styles.shadow.css\";\nimport { LineLabelComponentGroup } from \"./LineLabelComponent\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface EoDiagramProps {\n layout?: \"dagre\";\n nodes?: DiagramNode[];\n edges?: DiagramEdge[];\n nodeBricks?: NodeBrickConf[];\n lines?: LineConf[];\n layoutOptions?: LayoutOptionsDagre;\n activeNodeId?: string;\n disableKeyboardAction?: boolean;\n}\n\nexport interface DiagramRef {\n callOnLineLabel(id: string, method: string, ...args: unknown[]): void;\n}\n\nexport interface DiagramHandler {\n moveIntoView(id: string): void;\n}\n\nexport const EoDiagramComponent = forwardRef(LegacyEoDiagramComponent);\n\n/**\n * 构件 `eo-diagram`\n */\nexport\n@defineElement(\"eo-diagram\", {\n styleTexts: [styleText],\n})\nclass EoDiagram extends ReactNextElement implements EoDiagramProps {\n /**\n * @required\n */\n @property({ type: String })\n accessor layout: \"dagre\" | undefined;\n\n @property({ attribute: false })\n accessor nodes: DiagramNode[] | undefined;\n\n @property({ attribute: false })\n accessor edges: DiagramEdge[] | undefined;\n\n @property({ attribute: false })\n accessor nodeBricks: NodeBrickConf[] | undefined;\n\n @property({ attribute: false })\n accessor lines: LineConf[] | undefined;\n\n @property({ attribute: false })\n accessor layoutOptions: LayoutOptionsDagre | undefined;\n\n @property({ type: String })\n accessor activeNodeId: string | undefined;\n\n @property({ type: Boolean })\n accessor disableKeyboardAction: boolean | undefined;\n\n @event({ type: \"activeNode.change\" })\n accessor #activeNodeChangeEvent!: EventEmitter<DiagramNode | undefined>;\n\n #handleActiveNodeChange = (node: DiagramNode | undefined) => {\n // this.activeNodeId = node?.id;\n this.#activeNodeChangeEvent.emit(node);\n };\n\n @event({ type: \"node.delete\" })\n accessor #nodeDelete!: EventEmitter<DiagramNode>;\n\n #handleNodeDelete = (node: DiagramNode) => {\n this.#nodeDelete.emit(node);\n };\n\n @event({ type: \"line.dblclick\" })\n accessor #lineDoubleClick!: EventEmitter<LineTarget>;\n\n #handleLineDoubleClick = (line: LineTarget) => {\n this.#lineDoubleClick.emit(line);\n };\n\n #handleSwitchActiveNode = (id: string | undefined) => {\n this.activeNodeId = id;\n };\n\n #diagramRef = createRef<DiagramRef>();\n\n @method()\n callOnLineLabel(id: string, method: string, ...args: unknown[]) {\n this.#diagramRef.current?.callOnLineLabel(id, method, ...args);\n }\n\n render() {\n return (\n <EoDiagramComponent\n ref={this.#diagramRef}\n layout={this.layout}\n nodes={this.nodes}\n edges={this.edges}\n nodeBricks={this.nodeBricks}\n lines={this.lines}\n layoutOptions={this.layoutOptions}\n activeNodeId={this.activeNodeId}\n disableKeyboardAction={this.disableKeyboardAction}\n onActiveNodeChange={this.#handleActiveNodeChange}\n onSwitchActiveNode={this.#handleSwitchActiveNode}\n onNodeDelete={this.#handleNodeDelete}\n onLineDoubleClick={this.#handleLineDoubleClick}\n />\n );\n }\n}\n\nexport interface EoDiagramComponentProps extends EoDiagramProps {\n onActiveNodeChange?(node: DiagramNode | undefined): void;\n onSwitchActiveNode?(id: string | undefined): void;\n onNodeDelete?(node: DiagramNode): void;\n onLineDoubleClick?(line: LineTarget): void;\n}\n\nexport function LegacyEoDiagramComponent(\n {\n layout,\n nodes,\n edges,\n nodeBricks,\n lines,\n layoutOptions,\n activeNodeId,\n disableKeyboardAction,\n onActiveNodeChange,\n onSwitchActiveNode,\n onNodeDelete,\n onLineDoubleClick,\n }: EoDiagramComponentProps,\n ref: React.Ref<DiagramRef>\n) {\n // const [nodePositions, setNodePositions] = useState<Map<DiagramNodeId, NodePosition> | undefined>();\n const [graph, setGraph] = useState<dagre.graphlib.Graph<RenderedNode> | null>(\n null\n );\n const [nodesReady, setNodesReady] = useState(false);\n const [nodesRenderId, setNodesRenderId] = useState(0);\n const [nodesRefRepository, setNodesRefRepository] =\n useState<RefRepository | null>(null);\n // const [lineLabelsReady, setLineLabelsReady] = useState(false);\n const [lineLabelsRenderId, setLineLabelsRenderId] = useState(0);\n const [lineLabelsRefRepository, setLineLabelsRefRepository] =\n useState<RefRepository | null>(null);\n const [renderedNodes, setRenderedNodes] = useState<RenderedNode[]>([]);\n const [renderedEdges, setRenderedEdges] = useState<RenderedEdge[]>([]);\n // const [renderedLines, setRenderedLines] = useState<RenderedLine[]>([]);\n const [renderedLineLabels, setRenderedLineLabels] = useState<\n RenderedLineLabel[]\n >([]);\n // const [markers, setMarkers] = useState<LineMarker[]>([]);\n\n const draggerRef = useRef<HTMLDivElement>(null);\n const [grabbing, setGrabbing] = useState(false);\n const [transform, setTransform] = useState<TransformLiteral>({\n k: 1,\n x: 0,\n y: 0,\n });\n\n const linePathsRef = useRef(new Map<string, SVGPathElement | null>());\n // const lineLabelsRef = useRef(new Map<string, HTMLDivElement | null>());\n\n const rootRef = useRef<HTMLDivElement>(null);\n const nodesRef = useRef<HTMLDivElement>(null);\n const [offsets, setOffsets] = useState<PositionTuple>([0, 0]);\n const [centered, setCentered] = useState(false);\n\n useImperativeHandle(ref, () => ({\n callOnLineLabel(id, method, ...args) {\n (\n lineLabelsRefRepository?.get(id)\n ?.firstElementChild as unknown as Record<string, Function>\n )?.[method](...args);\n },\n }));\n\n const fixedOptions = useMemo(\n () => ({\n rankdir: \"TB\",\n ranksep: 50,\n edgesep: 10,\n nodesep: 50,\n // align: undefined,\n nodePadding: 0,\n ...layoutOptions,\n }),\n [layoutOptions]\n );\n\n const { nodePadding } = fixedOptions;\n const dagreGraphOptions = useMemo(\n () =>\n pick(fixedOptions, [\"rankdir\", \"ranksep\", \"edgesep\", \"nodesep\", \"align\"]),\n [fixedOptions]\n );\n\n useEffect(() => {\n const nextActiveNode = activeNodeId\n ? nodes?.find((node) => node.id === activeNodeId)\n : undefined;\n onActiveNodeChange?.(nextActiveNode);\n }, [nodes, activeNodeId, onActiveNodeChange]);\n\n useEffect(() => {\n setGraph((previousGraph) => {\n // Create a new directed graph\n const newGraph = new dagre.graphlib.Graph<RenderedNode>();\n\n // Set an object for the graph label\n newGraph.setGraph(dagreGraphOptions);\n\n // Default to assigning a new object as a label for each new edge.\n newGraph.setDefaultEdgeLabel(function () {\n return {};\n });\n\n for (const node of nodes ?? []) {\n const previousNode = previousGraph?.node(node.id);\n newGraph.setNode(\n node.id,\n previousNode?.data === node\n ? previousNode\n : {\n id: node.id,\n data: node,\n }\n );\n }\n\n for (const edge of edges ?? []) {\n newGraph.setEdge(edge.source, edge.target, { data: edge });\n }\n\n return newGraph;\n });\n }, [edges, nodes, dagreGraphOptions]);\n\n useEffect(() => {\n if (!graph || !nodesRefRepository || graph.nodeCount() === 0) {\n return;\n }\n\n for (const id of graph.nodes()) {\n const node = graph.node(id);\n if (!node) {\n // eslint-disable-next-line no-console\n console.error(\"Diagram node not found: %s\", id);\n continue;\n }\n const element = nodesRefRepository.get(id);\n node.width = (element?.offsetWidth ?? 10) + nodePadding * 2;\n node.height = (element?.offsetHeight ?? 10) + nodePadding * 2;\n }\n\n dagre.layout(graph);\n\n // const positions = new Map<DiagramNodeId, NodePosition>();\n const renderedNodes: RenderedNode[] = [];\n\n for (const v of graph.nodes()) {\n const node = graph.node(v);\n if (!node) {\n continue;\n }\n renderedNodes.push(node);\n const x = node.x - node.width / 2 + nodePadding;\n const y = node.y - node.height / 2 + nodePadding;\n // positions.set(v, { x, y });\n\n const nodeContainer = nodesRefRepository.get(v)?.parentElement;\n if (nodeContainer) {\n nodeContainer.style.left = `${x}px`;\n nodeContainer.style.top = `${y}px`;\n nodeContainer.style.visibility = \"visible\";\n }\n }\n\n setRenderedNodes(renderedNodes);\n\n setRenderedEdges(graph.edges().map((e) => graph.edge(e) as RenderedEdge));\n\n // setNodePositions(positions);\n }, [graph, nodesRefRepository, nodesRenderId, nodePadding]);\n\n const { renderedLines, markers } = useMemo(\n () => getRenderedLinesAndMarkers(renderedEdges, lines),\n [lines, renderedEdges]\n );\n\n /* useEffect(() => {\n const { renderedLines, markers } = getRenderedLinesAndMarkers(\n renderedEdges,\n lines\n );\n setRenderedLines(renderedLines);\n setMarkers(markers);\n }, [lines, renderedEdges]); */\n\n useEffect(() => {\n const root = rootRef.current;\n if (!root || disableKeyboardAction) {\n return;\n }\n const onKeydown = (event: KeyboardEvent) => {\n const action = handleKeyboard(event, {\n renderedNodes,\n renderedEdges,\n activeNodeId,\n });\n\n if (action?.action === \"delete-node\") {\n onNodeDelete?.(action.node);\n } else if (action?.action === \"switch-active-node\" && action.node) {\n onSwitchActiveNode?.(action.node.id);\n }\n };\n root.addEventListener(\"keydown\", onKeydown);\n return () => {\n root.removeEventListener(\"keydown\", onKeydown);\n };\n }, [\n activeNodeId,\n renderedNodes,\n renderedEdges,\n disableKeyboardAction,\n onSwitchActiveNode,\n onNodeDelete,\n ]);\n\n const handleNodesRendered = useCallback(\n (refRepository: RefRepository | null) => {\n if (refRepository) {\n setNodesRenderId((previous) => previous + 1);\n setNodesRefRepository(refRepository);\n }\n setNodesReady((previous) => previous || !!refRepository);\n },\n []\n );\n\n const handleLineLabelsRendered = useCallback(\n (refRepository: RefRepository | null) => {\n if (refRepository) {\n setLineLabelsRenderId((previous) => previous + 1);\n setLineLabelsRefRepository(refRepository);\n }\n // setLineLabelsReady((previous) => previous || !!refRepository);\n },\n []\n );\n\n useEffect(() => {\n const root = rootRef.current;\n const dragger = draggerRef.current as Element;\n if (!root || !dragger) {\n return;\n }\n let moved = false;\n const zoomer = zoom()\n .scaleExtent([1, 1])\n .on(\"start\", () => {\n moved = false;\n setGrabbing(true);\n })\n .on(\"zoom\", (e) => {\n moved = true;\n setTransform(e.transform);\n })\n .on(\"end\", () => {\n setGrabbing(false);\n if (!moved) {\n onSwitchActiveNode?.(undefined);\n }\n });\n select(dragger).call(zoomer);\n\n select(root).on(\"wheel.zoom\", (e) => {\n e.stopPropagation();\n e.preventDefault();\n zoomer.translateBy(select(dragger), e.wheelDeltaX / 5, e.wheelDeltaY / 5);\n });\n }, [onSwitchActiveNode]);\n\n useEffect(() => {\n const root = rootRef.current;\n if (renderedNodes.length === 0 || !root || centered) {\n return;\n }\n setOffsets(\n getCenterOffsets(renderedNodes, [root.clientWidth, root.clientHeight])\n );\n setCentered(true);\n }, [centered, renderedNodes]);\n\n const defPrefix = useMemo(() => `${uniqueId(\"diagram-\")}-`, []);\n const markerPrefix = `${defPrefix}line-arrow-`;\n const clipPathPrefix = `${defPrefix}clip-path-`;\n\n useEffect(() => {\n setRenderedLineLabels((previous) =>\n previous.length === 0 && renderedLines.length === 0\n ? previous\n : (renderedLines\n .map(({ line: { text, label, $id }, edge }) => {\n const path = linePathsRef.current.get($id);\n if ((!text && !label) || !path || !path.getAttribute(\"d\")) {\n return;\n }\n\n // istanbul ignore next\n const { x, y, width, height } =\n process.env.NODE_ENV === \"test\"\n ? { x: 10, y: 20, width: 300, height: 400 }\n : path.getBBox();\n // Make redundant extra padding.\n const padding = 1000;\n const left = x - padding;\n const top = y - padding;\n const right = x + width + padding;\n const bottom = y + height + padding;\n\n // istanbul ignore next\n const point =\n process.env.NODE_ENV === \"test\"\n ? { x: 50, y: 50 }\n : path.getPointAtLength(path.getTotalLength() / 2);\n return {\n text,\n label,\n edge,\n position: [point.x, point.y],\n lineRect: { left, top, right, bottom },\n id: $id,\n };\n })\n .filter(Boolean) as RenderedLineLabel[])\n );\n }, [renderedLines]);\n\n const [clipPathList, setClipPathList] = React.useState<LineTextClipPath[]>(\n []\n );\n\n useEffect(() => {\n if (!lineLabelsRefRepository) {\n return;\n }\n setClipPathList(\n renderedLineLabels\n .map(({ id }) => {\n const element = lineLabelsRefRepository?.get(id);\n if (!element) {\n return;\n }\n const { offsetWidth, offsetHeight } = element;\n // Do not clip when the label takes no space.\n if (\n process.env.NODE_ENV !== \"test\" &&\n (offsetWidth === 0 || offsetHeight === 0)\n ) {\n return;\n }\n const padding = 3;\n return {\n x0: element.offsetLeft - offsetWidth / 2 - padding,\n y0: element.offsetTop - offsetHeight / 2 - padding,\n w: offsetWidth + padding * 2,\n h: offsetHeight + padding * 2,\n id,\n };\n })\n .filter(Boolean) as LineTextClipPath[]\n );\n }, [lineLabelsRenderId, lineLabelsRefRepository, renderedLineLabels]);\n\n if (layout !== \"dagre\") {\n return <div>{`Diagram layout not supported: \"${layout}\"`}</div>;\n }\n\n return (\n <div\n className={classNames(\"diagram\", { ready: nodesReady && centered })}\n tabIndex={-1}\n ref={rootRef}\n >\n <div className={classNames(\"dragger\", { grabbing })} ref={draggerRef} />\n <svg width=\"100%\" height=\"100%\" className=\"lines\">\n <defs>\n {markers.map(({ strokeColor }, index) => (\n <marker\n key={index}\n id={`${markerPrefix}${index}`}\n viewBox=\"0 0 6 6\"\n refX={3}\n refY={3}\n markerWidth={6}\n markerHeight={6}\n orient=\"auto\"\n >\n <path\n d=\"M 0.5 0.5 L 5.5 3 L 0.5 5.5 z\"\n stroke={strokeColor}\n strokeWidth={1}\n fill={strokeColor}\n />\n </marker>\n ))}\n {clipPathList.map(({ x0, y0, w, h, id }) => {\n const lineText = renderedLineLabels.find((item) => item.id === id);\n if (!lineText) {\n return;\n }\n const { left, top, right, bottom } = lineText.lineRect;\n // https://css-tricks.com/cutting-inner-part-element-using-clip-path/\n return (\n <clipPath key={id} id={`${clipPathPrefix}${id}`}>\n <polygon\n points={[\n `${x0},${y0 + h}`,\n `${x0 + w},${y0 + h}`,\n `${x0 + w},${y0}`,\n `${x0},${y0}`,\n `${x0},${top}`,\n `${right},${top}`,\n `${right},${bottom}`,\n `${left},${bottom}`,\n `${left},${top}`,\n `${x0},${top}`,\n ].join(\" \")}\n />\n </clipPath>\n );\n })}\n </defs>\n <g\n transform={`translate(${offsets[0] + transform.x} ${\n offsets[1] + transform.y\n }) scale(${transform.k})`}\n >\n {renderedLines.map(({ line, d, markerIndex, edge }) => (\n <g\n className={classNames(\"line\", {\n interactable: line.interactable,\n })}\n key={line.$id}\n onDoubleClick={\n line.interactable\n ? (e) => (\n e.preventDefault(),\n e.stopPropagation(),\n onLineDoubleClick?.({ id: line.$id, edge: edge })\n )\n : undefined\n }\n >\n <path\n ref={(element) => linePathsRef.current.set(line.$id, element)}\n stroke={line.strokeColor}\n strokeWidth={line.strokeWidth}\n d={d}\n fill=\"none\"\n markerEnd={\n markerIndex === undefined\n ? undefined\n : `url(#${markerPrefix}${markerIndex})`\n }\n clipPath={\n clipPathList.some((clip) => clip.id === line.$id)\n ? `url(#${clipPathPrefix}${line.$id})`\n : undefined\n }\n />\n {line.interactable && (\n <path\n // This `path` is made for expanding interaction area of graph lines.\n // 保证此path在svg上层,从而扩大触发区域\n d={d}\n fill=\"none\"\n stroke=\"transparent\"\n strokeWidth={line.interactStrokeWidth ?? 5}\n />\n )}\n </g>\n ))}\n </g>\n </svg>\n <div\n className=\"line-labels\"\n style={{\n left: offsets[0] + transform.x,\n top: offsets[1] + transform.y,\n }}\n >\n <LineLabelComponentGroup\n labels={renderedLineLabels}\n onRendered={handleLineLabelsRendered}\n />\n </div>\n <div\n className=\"nodes\"\n ref={nodesRef}\n style={{\n left: offsets[0] + transform.x,\n top: offsets[1] + transform.y,\n }}\n >\n <NodeComponentGroup\n nodes={nodes}\n nodeBricks={nodeBricks}\n // nodePositions={nodePositions}\n onRendered={handleNodesRendered}\n />\n </div>\n </div>\n );\n}\n","import { findIndex, uniqueId } from \"lodash\";\nimport { __secret_internals } from \"@next-core/runtime\";\nimport type {\n LineConf,\n LineMarker,\n RenderedEdge,\n RenderedLine,\n} from \"../interfaces\";\nimport { matchEdgeByFilter } from \"./matchEdgeByFilter\";\nimport {\n DEFAULT_LINE_CURVE_TYPE,\n DEFAULT_LINE_INTERACT_STROKE_WIDTH,\n DEFAULT_LINE_STROKE_COLOR,\n DEFAULT_LINE_STROKE_WIDTH,\n} from \"../constants\";\nimport { curveLine } from \"../lines/curveLine\";\n\nexport function getRenderedLinesAndMarkers(\n renderedEdges: RenderedEdge[],\n lines: LineConf[] | undefined\n) {\n const renderedLines: RenderedLine[] = [];\n const markers: LineMarker[] = [];\n for (const { data, points } of renderedEdges) {\n const { label, ...restLineConf } =\n lines?.find((line) => matchEdgeByFilter(data, line)) ?? {};\n\n const computedLineConf = __secret_internals.legacyDoTransform(\n { edge: data },\n restLineConf\n ) as LineConf | undefined;\n if (computedLineConf?.draw === false) {\n continue;\n }\n const line: RenderedLine[\"line\"] = {\n strokeColor: DEFAULT_LINE_STROKE_COLOR,\n strokeWidth: DEFAULT_LINE_STROKE_WIDTH,\n curveType: DEFAULT_LINE_CURVE_TYPE,\n interactStrokeWidth: DEFAULT_LINE_INTERACT_STROKE_WIDTH,\n ...computedLineConf,\n label,\n $id: uniqueId(\"line-\"),\n };\n\n let markerIndex: number | undefined;\n if (line.arrow) {\n const marker: LineMarker = {\n strokeColor: line.strokeColor,\n };\n markerIndex = findIndex(markers, marker);\n if (markerIndex === -1) {\n markerIndex = markers.push(marker) - 1;\n }\n }\n\n const d = curveLine(points, line.arrow ? -5 : 0, line.curveType);\n\n renderedLines.push({\n line,\n d,\n markerIndex,\n edge: data,\n });\n }\n return {\n renderedLines,\n markers,\n };\n}\n","import { checkIfByTransform } from \"@next-core/runtime\";\nimport type { DiagramEdge, LineConf } from \"../interfaces\";\n\nexport function matchEdgeByFilter(\n edge: DiagramEdge,\n filter: LineConf\n): boolean {\n if (!filter) {\n return false;\n }\n if (filter.edgeType) {\n return ([] as string[]).concat(filter.edgeType).includes(edge.type!);\n }\n return checkIfByTransform(filter, { edge });\n}\n","import type { RenderedNode } from \"../interfaces\";\n\nexport function getCenterOffsets(\n renderedNodes: RenderedNode[],\n [canvasWidth, canvasHeight]: [canvasWidth: number, canvasHeight: number]\n): [offsetX: number, offsetY: number] {\n let left = Infinity;\n let top = Infinity;\n let right = -Infinity;\n let bottom = -Infinity;\n for (const node of renderedNodes) {\n const hw = node.width / 2;\n const hh = node.height / 2;\n const l = node.x - hw;\n const r = node.x + hw;\n const t = node.y - hh;\n const b = node.y + hh;\n if (l < left) {\n left = l;\n }\n if (r > right) {\n right = r;\n }\n if (t < top) {\n top = t;\n }\n if (b > bottom) {\n bottom = b;\n }\n }\n\n const width = right - left;\n const height = bottom - top;\n\n return [(canvasWidth - width) / 2 - top, (canvasHeight - height) / 2 - left];\n}\n","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport classNames from \"classnames\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface EditableLabelProps {\n label?: string;\n type?: LabelType;\n}\n\nexport type LabelType = \"line\" | \"default\";\n\nexport interface EditableLabelRef {\n enableEditing(): void;\n}\n\nexport const EditableLabelComponent = forwardRef(LegacyEditableLabelComponent);\n\n/**\n * 构件 `diagram.editable-label`\n */\nexport\n@defineElement(\"diagram.editable-label\", {\n styleTexts: [styleText],\n})\nclass EditableLabel extends ReactNextElement implements EditableLabelProps {\n @property()\n accessor label: string | undefined;\n\n @property({ render: false })\n accessor type: LabelType | undefined;\n\n @event({ type: \"label.change\" })\n accessor #labelChange!: EventEmitter<string>;\n\n #handleLabelChange = (value: string) => {\n this.#labelChange.emit(value);\n };\n\n @method()\n enableEditing() {\n this.#editableLabelRef.current?.enableEditing();\n }\n\n #editableLabelRef = createRef<EditableLabelRef>();\n\n render() {\n return (\n <EditableLabelComponent\n ref={this.#editableLabelRef}\n label={this.label}\n onLabelChange={this.#handleLabelChange}\n />\n );\n }\n}\n\nexport interface EditableLabelComponentProps extends EditableLabelProps {\n onLabelChange?(value: string): void;\n}\n\nexport function LegacyEditableLabelComponent(\n { label: _label, onLabelChange }: EditableLabelComponentProps,\n ref: React.Ref<EditableLabelRef>\n) {\n const label = _label ?? \"\";\n const [currentLabel, setCurrentLabel] = useState<string>(label);\n const [editingLabel, setEditingLabel] = useState(false);\n const [shouldEmitLabelChange, setShouldEmitLabelChange] = useState(false);\n const labelInputRef = useRef<HTMLInputElement>(null);\n\n useImperativeHandle(ref, () => ({\n enableEditing() {\n setEditingLabel(true);\n },\n }));\n\n useEffect(() => {\n setCurrentLabel(label);\n }, [label]);\n\n const handleEditLabel = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setEditingLabel(true);\n }, []);\n\n useEffect(() => {\n if (editingLabel) {\n // Prevent scroll when focusing.\n // Otherwise the diagram svg may be clipped in Chrome.\n labelInputRef.current?.focus({ preventScroll: true });\n labelInputRef.current?.select();\n }\n }, [editingLabel]);\n\n const handleInputChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n setCurrentLabel(event.target.value);\n },\n []\n );\n\n const handleInputKeydown = useCallback((event: React.KeyboardEvent) => {\n const key =\n event.key ||\n /* istanbul ignore next: compatibility */ event.keyCode ||\n /* istanbul ignore next: compatibility */ event.which;\n if (key === \"Enter\" || key === 13) {\n labelInputRef.current?.blur();\n }\n }, []);\n\n const handleInputBlur = useCallback(() => {\n setEditingLabel(false);\n setShouldEmitLabelChange(true);\n }, []);\n\n useEffect(() => {\n if (shouldEmitLabelChange) {\n onLabelChange?.(currentLabel);\n setShouldEmitLabelChange(false);\n }\n }, [currentLabel, onLabelChange, shouldEmitLabelChange]);\n\n return (\n <div\n className={classNames(\"label\", {\n editing: editingLabel,\n empty: !currentLabel,\n })}\n >\n <input\n className=\"label-input\"\n value={currentLabel}\n ref={labelInputRef}\n onChange={handleInputChange}\n onKeyDown={handleInputKeydown}\n onBlur={handleInputBlur}\n />\n <div className=\"label-text\" onDoubleClick={handleEditLabel}>\n {currentLabel}\n </div>\n </div>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;width:100%;height:100%;overflow:hidden}:host([hidden]){display:none}*{box-sizing:border-box}.diagram{width:100%;height:100%;position:relative;opacity:0}.diagram:focus{outline:none}.ready{opacity:1}.dragger,\n.lines,\n.line-labels,\n.nodes{position:absolute;top:0;left:0}.node{position:absolute;visibility:hidden}.dragger{width:100%;height:100%;cursor:-webkit-grab;cursor:grab}.grabbing{cursor:-webkit-grabbing;cursor:grabbing}.line-label{position:absolute;transform:translate(-50%,-50%);white-space:pre-line;width:-webkit-max-content;width:-moz-max-content;width:max-content;text-align:center}.lines{pointer-events:none}.line.interactable{pointer-events:auto}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;--local-label-line-height:inherit;--local-label-font-size:inherit;--local-label-color:inherit;--local-label-font-weight:inherit}:host([hidden]){display:none}:host([type=\"line\"]){--local-label-line-height:18px;--local-label-font-size:11px;--local-label-color:var(--color-secondary-text);--local-label-font-weight:400}*{box-sizing:border-box}.label{max-width:168px;margin:-3px}.label-text,\n.label-input{width:100%;height:24px;padding:3px;border:none;line-height:var(--local-label-line-height);font-size:var(--local-label-font-size);color:var(--local-label-color);font-weight:var(--local-label-font-weight);text-align:center;font-family:inherit;cursor:text;-webkit-user-select:text;-moz-user-select:text;user-select:text}.label-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.label.editing .label-text,\n.label.empty:not(.editing) .label-text,\n.label:not(.editing) .label-input{display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["NodeComponentGroup","_ref","nodes","nodeBricks","onRendered","rendered","setRendered","useState","renderedIds","setRenderedIds","refRepository","useMemo","Map","handleRenderer","useCallback","id","element","set","previous","includes","concat","handleUnmount","index","indexOf","slice","delete","useEffect","some","node","React","map","key","className","NodeComponent","onUnmount","_ref2","useBrick","_findNodeBrick","find","item","nodeType","type","checkIfByTransform","findNodeBrick","memoizedData","setTimeout","refCallback","ignoredCallback","ReactUseBrick","data","moveOnX","renderedNodes","activeNode","direction","diff","candidates","filter","x","Math","abs","y","minBy","moveOnY","renderedEdges","from","to","_ref3","DEFAULT_LINE_STROKE_COLOR","DEFAULT_LINE_STROKE_WIDTH","DEFAULT_LINE_CURVE_TYPE","DEFAULT_LINE_INTERACT_STROKE_WIDTH","curveLine","points","arrowOffset","curveType","Array","isArray","curveFactory","curveBasis","curveBumpX","curveBumpY","curveMonotoneX","curveMonotoneY","curveNatural","curveLinear","arrowOffsetX","arrowOffsetY","x0","y0","length","x1","y1","ratio","sqrt","pow","transformPoints","line","d","curve","lineFunction","LineLabelComponentGroup","labels","label","text","position","edge","style","left","top","LineLabelComponent","LineTextComponent","ref","_objectSpread","content","_ref4","parentElement","_EoDiagram","defineElement","property","event","method","createDecorators","EoDiagramComponent","forwardRef","LegacyEoDiagramComponent","_dec","styleTexts","styleText","_dec2","String","_dec3","attribute","_dec4","_dec5","_dec6","_dec7","_dec8","_dec9","Boolean","_dec10","_dec11","_dec12","_dec13","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_activeNodeChangeEvent","_handleActiveNodeChange","_J","_nodeDelete","_handleNodeDelete","_K","_lineDoubleClick","_handleLineDoubleClick","_handleSwitchActiveNode","_diagramRef","EoDiagram","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","get","_get_lineDoubleClick2","_set_lineDoubleClick2","_get_nodeDelete2","_set_nodeDelete2","_get_activeNodeChangeEvent2","_set_activeNodeChangeEvent2","writable","value","_initProto","_init_layout","_init_nodes","_init_edges","_init_nodeBricks","_init_lines","_init_layoutOptions","_init_activeNodeId","_init_disableKeyboardAction","_init_activeNodeChangeEvent","_classPrivateFieldGet","this","emit","_init_nodeDelete","_init_lineDoubleClick","activeNodeId","createRef","layout","v","_classPrivateFieldSet","edges","lines","layoutOptions","disableKeyboardAction","callOnLineLabel","_classPrivateFieldGet2","_len","args","_key","current","render","onActiveNodeChange","onSwitchActiveNode","onNodeDelete","onLineDoubleClick","_set_activeNodeChangeEvent","_get_activeNodeChangeEvent","_set_nodeDelete","_get_nodeDelete","_set_lineDoubleClick","_get_lineDoubleClick","graph","setGraph","nodesReady","setNodesReady","nodesRenderId","setNodesRenderId","nodesRefRepository","setNodesRefRepository","lineLabelsRenderId","setLineLabelsRenderId","lineLabelsRefRepository","setLineLabelsRefRepository","setRenderedNodes","setRenderedEdges","renderedLineLabels","setRenderedLineLabels","draggerRef","useRef","grabbing","setGrabbing","transform","setTransform","k","linePathsRef","rootRef","nodesRef","offsets","setOffsets","centered","setCentered","useImperativeHandle","_lineLabelsRefReposit","_len2","_key2","firstElementChild","fixedOptions","rankdir","ranksep","edgesep","nodesep","nodePadding","dagreGraphOptions","pick","nextActiveNode","undefined","previousGraph","newGraph","dagre","Graph","setDefaultEdgeLabel","previousNode","setNode","setEdge","source","target","nodeCount","_element$offsetWidth","_element$offsetHeight","width","offsetWidth","height","offsetHeight","console","error","_nodesRefRepository$g","push","nodeContainer","visibility","e","renderedLines","markers","_loop","_lines$find","matchEdgeByFilter","edgeType","restLineConf","_objectWithoutProperties","_excluded","computedLineConf","__secret_internals","legacyDoTransform","draw","markerIndex","strokeColor","strokeWidth","interactStrokeWidth","$id","uniqueId","arrow","marker","findIndex","getRenderedLinesAndMarkers","root","onKeydown","action","_node","keyCode","which","preventDefault","stopPropagation","handleKeyboard","addEventListener","removeEventListener","handleNodesRendered","handleLineLabelsRendered","dragger","moved","zoomer","zoom","scaleExtent","on","select","call","translateBy","wheelDeltaX","wheelDeltaY","canvasWidth","canvasHeight","Infinity","right","bottom","hw","hh","l","r","t","b","getCenterOffsets","clientWidth","clientHeight","defPrefix","markerPrefix","clipPathPrefix","path","getAttribute","getBBox","padding","point","getPointAtLength","getTotalLength","lineRect","clipPathList","setClipPathList","offsetLeft","offsetTop","w","h","classNames","ready","tabIndex","viewBox","refX","refY","markerWidth","markerHeight","orient","stroke","fill","_ref5","lineText","join","_ref6","_line$interactStrokeW","interactable","onDoubleClick","markerEnd","clipPath","clip","_class","c","_initClass","_applyDecs","o","_","has","_checkInRHS","_EditableLabel","EditableLabelComponent","LegacyEditableLabelComponent","_labelChange","_handleLabelChange","_editableLabelRef","EditableLabel","_get_labelChange2","_set_labelChange2","_init_label","_init_type","_init_labelChange","enableEditing","onLabelChange","_set_labelChange","_get_labelChange","_label","currentLabel","setCurrentLabel","editingLabel","setEditingLabel","shouldEmitLabelChange","setShouldEmitLabelChange","labelInputRef","handleEditLabel","_labelInputRef$curren","_labelInputRef$curren2","focus","preventScroll","handleInputChange","handleInputKeydown","_labelInputRef$curren3","blur","handleInputBlur","editing","empty","onChange","onKeyDown","onBlur","___CSS_LOADER_EXPORT___","module","toString"],"sourceRoot":""}
@@ -0,0 +1,3 @@
1
+ /*! For license information please see 7312.94667cd0.js.LICENSE.txt */
2
+ (self.webpackChunk_next_bricks_diagram=self.webpackChunk_next_bricks_diagram||[]).push([[7312,5628],{908:(t,e,n)=>{t.exports={graphlib:n(4661),layout:n(2160),debug:n(9608),util:{time:n(6549).time,notime:n(6549).notime},version:n(1225)}},5279:(t,e,n)=>{"use strict";let r=n(2394),i=n(6549).uniqueId;t.exports={run:function(t){("greedy"===t.graph().acyclicer?r(t,function(t){return e=>t.edge(e).weight}(t)):function(t){let e=[],n={},r={};return t.nodes().forEach((function i(o){r.hasOwnProperty(o)||(r[o]=!0,n[o]=!0,t.outEdges(o).forEach((t=>{n.hasOwnProperty(t.w)?e.push(t):i(t.w)})),delete n[o])})),e}(t)).forEach((e=>{let n=t.edge(e);t.removeEdge(e),n.forwardName=e.name,n.reversed=!0,t.setEdge(e.w,e.v,n,i("rev"))}))},undo:function(t){t.edges().forEach((e=>{let n=t.edge(e);if(n.reversed){t.removeEdge(e);let r=n.forwardName;delete n.reversed,delete n.forwardName,t.setEdge(e.w,e.v,n,r)}}))}}},7869:(t,e,n)=>{let r=n(6549);function i(t,e,n,i,o,s){let a={width:0,height:0,rank:s,borderType:e},u=o[e][s-1],h=r.addDummyNode(t,"border",a,n);o[e][s]=h,t.setParent(h,i),u&&t.setEdge(u,h,{weight:1})}t.exports=function(t){t.children().forEach((function e(n){let r=t.children(n),o=t.node(n);if(r.length&&r.forEach(e),o.hasOwnProperty("minRank")){o.borderLeft=[],o.borderRight=[];for(let e=o.minRank,r=o.maxRank+1;e<r;++e)i(t,"borderLeft","_bl",n,o,e),i(t,"borderRight","_br",n,o,e)}}))}},5e3:t=>{"use strict";function e(t){t.nodes().forEach((e=>n(t.node(e)))),t.edges().forEach((e=>n(t.edge(e))))}function n(t){let e=t.width;t.width=t.height,t.height=e}function r(t){t.y=-t.y}function i(t){let e=t.x;t.x=t.y,t.y=e}t.exports={adjust:function(t){let n=t.graph().rankdir.toLowerCase();"lr"!==n&&"rl"!==n||e(t)},undo:function(t){let n=t.graph().rankdir.toLowerCase();"bt"!==n&&"rl"!==n||function(t){t.nodes().forEach((e=>r(t.node(e)))),t.edges().forEach((e=>{let n=t.edge(e);n.points.forEach(r),n.hasOwnProperty("y")&&r(n)}))}(t),"lr"!==n&&"rl"!==n||(function(t){t.nodes().forEach((e=>i(t.node(e)))),t.edges().forEach((e=>{let n=t.edge(e);n.points.forEach(i),n.hasOwnProperty("x")&&i(n)}))}(t),e(t))}}},8722:t=>{function e(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function n(t,e){if("_next"!==t&&"_prev"!==t)return e}t.exports=class{constructor(){let t={};t._next=t._prev=t,this._sentinel=t}dequeue(){let t=this._sentinel,n=t._prev;if(n!==t)return e(n),n}enqueue(t){let n=this._sentinel;t._prev&&t._next&&e(t),t._next=n._next,n._next._prev=t,n._next=t,t._prev=n}toString(){let t=[],e=this._sentinel,r=e._prev;for(;r!==e;)t.push(JSON.stringify(r,n)),r=r._prev;return"["+t.join(", ")+"]"}}},9608:(t,e,n)=>{let r=n(6549),i=n(4661).Graph;t.exports={debugOrdering:function(t){let e=r.buildLayerMatrix(t),n=new i({compound:!0,multigraph:!0}).setGraph({});return t.nodes().forEach((e=>{n.setNode(e,{label:e}),n.setParent(e,"layer"+t.node(e).rank)})),t.edges().forEach((t=>n.setEdge(t.v,t.w,{},t.name))),e.forEach(((t,e)=>{let r="layer"+e;n.setNode(r,{rank:"same"}),t.reduce(((t,e)=>(n.setEdge(t,e,{style:"invis"}),e)))})),n}}},2394:(t,e,n)=>{let r=n(4661).Graph,i=n(8722);t.exports=function(t,e){if(t.nodeCount()<=1)return[];let n=function(t,e){let n=new r,o=0,s=0;t.nodes().forEach((t=>{n.setNode(t,{v:t,in:0,out:0})})),t.edges().forEach((t=>{let r=n.edge(t.v,t.w)||0,i=e(t),a=r+i;n.setEdge(t.v,t.w,a),s=Math.max(s,n.node(t.v).out+=i),o=Math.max(o,n.node(t.w).in+=i)}));let u=function(t){const e=[];for(let n=0;n<t;n++)e.push(n);return e}(s+o+3).map((()=>new i)),h=o+1;return n.nodes().forEach((t=>{a(u,h,n.node(t))})),{graph:n,buckets:u,zeroIdx:h}}(t,e||o);return function(t,e,n){let r,i=[],o=e[e.length-1],a=e[0];for(;t.nodeCount();){for(;r=a.dequeue();)s(t,e,n,r);for(;r=o.dequeue();)s(t,e,n,r);if(t.nodeCount())for(let o=e.length-2;o>0;--o)if(r=e[o].dequeue(),r){i=i.concat(s(t,e,n,r,!0));break}}return i}(n.graph,n.buckets,n.zeroIdx).flatMap((e=>t.outEdges(e.v,e.w)))};let o=()=>1;function s(t,e,n,r,i){let o=i?[]:void 0;return t.inEdges(r.v).forEach((r=>{let s=t.edge(r),u=t.node(r.v);i&&o.push({v:r.v,w:r.w}),u.out-=s,a(e,n,u)})),t.outEdges(r.v).forEach((r=>{let i=t.edge(r),o=r.w,s=t.node(o);s.in-=i,a(e,n,s)})),t.removeNode(r.v),o}function a(t,e,n){n.out?n.in?t[n.out-n.in+e].enqueue(n):t[t.length-1].enqueue(n):t[0].enqueue(n)}},2160:(t,e,n)=>{"use strict";let r=n(5279),i=n(1796),o=n(9131),s=n(6549).normalizeRanks,a=n(8139),u=n(6549).removeEmptyRanks,h=n(8564),c=n(7869),l=n(5e3),f=n(820),d=n(7209),p=n(6549),g=n(4661).Graph;t.exports=function(t,e){let n=e&&e.debugTiming?p.time:p.notime;n("layout",(()=>{let e=n(" buildLayoutGraph",(()=>function(t){let e=new g({multigraph:!0,compound:!0}),n=N(t.graph());return e.setGraph(Object.assign({},y,k(n,v),p.pick(n,m))),t.nodes().forEach((n=>{const r=k(N(t.node(n)),_);Object.keys(w).forEach((t=>{void 0===r[t]&&(r[t]=w[t])})),e.setNode(n,r),e.setParent(n,t.parent(n))})),t.edges().forEach((n=>{let r=N(t.edge(n));e.setEdge(n,Object.assign({},x,k(r,b),p.pick(r,E)))})),e}(t)));n(" runLayout",(()=>function(t,e){e(" makeSpaceForEdgeLabels",(()=>function(t){let e=t.graph();e.ranksep/=2,t.edges().forEach((n=>{let r=t.edge(n);r.minlen*=2,"c"!==r.labelpos.toLowerCase()&&("TB"===e.rankdir||"BT"===e.rankdir?r.width+=r.labeloffset:r.height+=r.labeloffset)}))}(t))),e(" removeSelfEdges",(()=>function(t){t.edges().forEach((e=>{if(e.v===e.w){var n=t.node(e.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e,label:t.edge(e)}),t.removeEdge(e)}}))}(t))),e(" acyclic",(()=>r.run(t))),e(" nestingGraph.run",(()=>h.run(t))),e(" rank",(()=>o(p.asNonCompoundGraph(t)))),e(" injectEdgeLabelProxies",(()=>function(t){t.edges().forEach((e=>{let n=t.edge(e);if(n.width&&n.height){let n=t.node(e.v),r={rank:(t.node(e.w).rank-n.rank)/2+n.rank,e};p.addDummyNode(t,"edge-proxy",r,"_ep")}}))}(t))),e(" removeEmptyRanks",(()=>u(t))),e(" nestingGraph.cleanup",(()=>h.cleanup(t))),e(" normalizeRanks",(()=>s(t))),e(" assignRankMinMax",(()=>function(t){let e=0;t.nodes().forEach((n=>{let r=t.node(n);r.borderTop&&(r.minRank=t.node(r.borderTop).rank,r.maxRank=t.node(r.borderBottom).rank,e=Math.max(e,r.maxRank))})),t.graph().maxRank=e}(t))),e(" removeEdgeLabelProxies",(()=>function(t){t.nodes().forEach((e=>{let n=t.node(e);"edge-proxy"===n.dummy&&(t.edge(n.e).labelRank=n.rank,t.removeNode(e))}))}(t))),e(" normalize.run",(()=>i.run(t))),e(" parentDummyChains",(()=>a(t))),e(" addBorderSegments",(()=>c(t))),e(" order",(()=>f(t))),e(" insertSelfEdges",(()=>function(t){p.buildLayerMatrix(t).forEach((e=>{var n=0;e.forEach(((e,r)=>{var i=t.node(e);i.order=r+n,(i.selfEdges||[]).forEach((e=>{p.addDummyNode(t,"selfedge",{width:e.label.width,height:e.label.height,rank:i.rank,order:r+ ++n,e:e.e,label:e.label},"_se")})),delete i.selfEdges}))}))}(t))),e(" adjustCoordinateSystem",(()=>l.adjust(t))),e(" position",(()=>d(t))),e(" positionSelfEdges",(()=>function(t){t.nodes().forEach((e=>{var n=t.node(e);if("selfedge"===n.dummy){var r=t.node(n.e.v),i=r.x+r.width/2,o=r.y,s=n.x-i,a=r.height/2;t.setEdge(n.e,n.label),t.removeNode(e),n.label.points=[{x:i+2*s/3,y:o-a},{x:i+5*s/6,y:o-a},{x:i+s,y:o},{x:i+5*s/6,y:o+a},{x:i+2*s/3,y:o+a}],n.label.x=n.x,n.label.y=n.y}}))}(t))),e(" removeBorderNodes",(()=>function(t){t.nodes().forEach((e=>{if(t.children(e).length){let n=t.node(e),r=t.node(n.borderTop),i=t.node(n.borderBottom),o=t.node(n.borderLeft[n.borderLeft.length-1]),s=t.node(n.borderRight[n.borderRight.length-1]);n.width=Math.abs(s.x-o.x),n.height=Math.abs(i.y-r.y),n.x=o.x+n.width/2,n.y=r.y+n.height/2}})),t.nodes().forEach((e=>{"border"===t.node(e).dummy&&t.removeNode(e)}))}(t))),e(" normalize.undo",(()=>i.undo(t))),e(" fixupEdgeLabelCoords",(()=>function(t){t.edges().forEach((e=>{let n=t.edge(e);if(n.hasOwnProperty("x"))switch("l"!==n.labelpos&&"r"!==n.labelpos||(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}}))}(t))),e(" undoCoordinateSystem",(()=>l.undo(t))),e(" translateGraph",(()=>function(t){let e=Number.POSITIVE_INFINITY,n=0,r=Number.POSITIVE_INFINITY,i=0,o=t.graph(),s=o.marginx||0,a=o.marginy||0;function u(t){let o=t.x,s=t.y,a=t.width,u=t.height;e=Math.min(e,o-a/2),n=Math.max(n,o+a/2),r=Math.min(r,s-u/2),i=Math.max(i,s+u/2)}t.nodes().forEach((e=>u(t.node(e)))),t.edges().forEach((e=>{let n=t.edge(e);n.hasOwnProperty("x")&&u(n)})),e-=s,r-=a,t.nodes().forEach((n=>{let i=t.node(n);i.x-=e,i.y-=r})),t.edges().forEach((n=>{let i=t.edge(n);i.points.forEach((t=>{t.x-=e,t.y-=r})),i.hasOwnProperty("x")&&(i.x-=e),i.hasOwnProperty("y")&&(i.y-=r)})),o.width=n-e+s,o.height=i-r+a}(t))),e(" assignNodeIntersects",(()=>function(t){t.edges().forEach((e=>{let n,r,i=t.edge(e),o=t.node(e.v),s=t.node(e.w);i.points?(n=i.points[0],r=i.points[i.points.length-1]):(i.points=[],n=s,r=o),i.points.unshift(p.intersectRect(o,n)),i.points.push(p.intersectRect(s,r))}))}(t))),e(" reversePoints",(()=>function(t){t.edges().forEach((e=>{let n=t.edge(e);n.reversed&&n.points.reverse()}))}(t))),e(" acyclic.undo",(()=>r.undo(t)))}(e,n))),n(" updateInputGraph",(()=>function(t,e){t.nodes().forEach((n=>{let r=t.node(n),i=e.node(n);r&&(r.x=i.x,r.y=i.y,r.rank=i.rank,e.children(n).length&&(r.width=i.width,r.height=i.height))})),t.edges().forEach((n=>{let r=t.edge(n),i=e.edge(n);r.points=i.points,i.hasOwnProperty("x")&&(r.x=i.x,r.y=i.y)})),t.graph().width=e.graph().width,t.graph().height=e.graph().height}(t,e)))}))};let v=["nodesep","edgesep","ranksep","marginx","marginy"],y={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},m=["acyclicer","ranker","rankdir","align"],_=["width","height"],w={width:0,height:0},b=["minlen","weight","width","height","labeloffset"],x={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},E=["labelpos"];function k(t,e){return p.mapValues(p.pick(t,e),Number)}function N(t){var e={};return t&&Object.entries(t).forEach((([t,n])=>{"string"==typeof t&&(t=t.toLowerCase()),e[t]=n})),e}},8564:(t,e,n)=>{let r=n(6549);function i(t,e,n,o,s,a,u){let h=t.children(u);if(!h.length)return void(u!==e&&t.setEdge(e,u,{weight:0,minlen:n}));let c=r.addBorderNode(t,"_bt"),l=r.addBorderNode(t,"_bb"),f=t.node(u);t.setParent(c,u),f.borderTop=c,t.setParent(l,u),f.borderBottom=l,h.forEach((r=>{i(t,e,n,o,s,a,r);let h=t.node(r),f=h.borderTop?h.borderTop:r,d=h.borderBottom?h.borderBottom:r,p=h.borderTop?o:2*o,g=f!==d?1:s-a[u]+1;t.setEdge(c,f,{weight:p,minlen:g,nestingEdge:!0}),t.setEdge(d,l,{weight:p,minlen:g,nestingEdge:!0})})),t.parent(u)||t.setEdge(e,c,{weight:0,minlen:s+a[u]})}t.exports={run:function(t){let e=r.addDummyNode(t,"root",{},"_root"),n=function(t){var e={};function n(r,i){var o=t.children(r);o&&o.length&&o.forEach((t=>n(t,i+1))),e[r]=i}return t.children().forEach((t=>n(t,1))),e}(t),o=Math.max(...Object.values(n))-1,s=2*o+1;t.graph().nestingRoot=e,t.edges().forEach((e=>t.edge(e).minlen*=s));let a=function(t){return t.edges().reduce(((e,n)=>e+t.edge(n).weight),0)}(t)+1;t.children().forEach((r=>i(t,e,s,a,o,n,r))),t.graph().nodeRankFactor=s},cleanup:function(t){var e=t.graph();t.removeNode(e.nestingRoot),delete e.nestingRoot,t.edges().forEach((e=>{t.edge(e).nestingEdge&&t.removeEdge(e)}))}}},1796:(t,e,n)=>{"use strict";let r=n(6549);t.exports={run:function(t){t.graph().dummyChains=[],t.edges().forEach((e=>function(t,e){let n,i,o,s=e.v,a=t.node(s).rank,u=e.w,h=t.node(u).rank,c=e.name,l=t.edge(e),f=l.labelRank;if(h!==a+1){for(t.removeEdge(e),o=0,++a;a<h;++o,++a)l.points=[],i={width:0,height:0,edgeLabel:l,edgeObj:e,rank:a},n=r.addDummyNode(t,"edge",i,"_d"),a===f&&(i.width=l.width,i.height=l.height,i.dummy="edge-label",i.labelpos=l.labelpos),t.setEdge(s,n,{weight:l.weight},c),0===o&&t.graph().dummyChains.push(n),s=n;t.setEdge(s,u,{weight:l.weight},c)}}(t,e)))},undo:function(t){t.graph().dummyChains.forEach((e=>{let n,r=t.node(e),i=r.edgeLabel;for(t.setEdge(r.edgeObj,i);r.dummy;)n=t.successors(e)[0],t.removeNode(e),i.points.push({x:r.x,y:r.y}),"edge-label"===r.dummy&&(i.x=r.x,i.y=r.y,i.width=r.width,i.height=r.height),e=n,r=t.node(e)}))}}},8743:t=>{t.exports=function(t,e,n){let r,i={};n.forEach((n=>{let o,s,a=t.parent(n);for(;a;){if(o=t.parent(a),o?(s=i[o],i[o]=a):(s=r,r=a),s&&s!==a)return void e.setEdge(s,a);a=o}}))}},8556:t=>{t.exports=function(t,e=[]){return e.map((e=>{let n=t.inEdges(e);if(n.length){let r=n.reduce(((e,n)=>{let r=t.edge(n),i=t.node(n.v);return{sum:e.sum+r.weight*i.order,weight:e.weight+r.weight}}),{sum:0,weight:0});return{v:e,barycenter:r.sum/r.weight,weight:r.weight}}return{v:e}}))}},2370:(t,e,n)=>{let r=n(4661).Graph,i=n(6549);t.exports=function(t,e,n){let o=function(t){for(var e;t.hasNode(e=i.uniqueId("_root")););return e}(t),s=new r({compound:!0}).setGraph({root:o}).setDefaultNodeLabel((e=>t.node(e)));return t.nodes().forEach((r=>{let i=t.node(r),a=t.parent(r);(i.rank===e||i.minRank<=e&&e<=i.maxRank)&&(s.setNode(r),s.setParent(r,a||o),t[n](r).forEach((e=>{let n=e.v===r?e.w:e.v,i=s.edge(n,r),o=void 0!==i?i.weight:0;s.setEdge(n,r,{weight:t.edge(e).weight+o})})),i.hasOwnProperty("minRank")&&s.setNode(r,{borderLeft:i.borderLeft[e],borderRight:i.borderRight[e]}))})),s}},7629:(t,e,n)=>{"use strict";let r=n(6549).zipObject;function i(t,e,n){let i=r(n,n.map(((t,e)=>e))),o=e.flatMap((e=>t.outEdges(e).map((e=>({pos:i[e.w],weight:t.edge(e).weight}))).sort(((t,e)=>t.pos-e.pos)))),s=1;for(;s<n.length;)s<<=1;let a=2*s-1;s-=1;let u=new Array(a).fill(0),h=0;return o.forEach((t=>{let e=t.pos+s;u[e]+=t.weight;let n=0;for(;e>0;)e%2&&(n+=u[e+1]),e=e-1>>1,u[e]+=t.weight;h+=t.weight*n})),h}t.exports=function(t,e){let n=0;for(let r=1;r<e.length;++r)n+=i(t,e[r-1],e[r]);return n}},820:(t,e,n)=>{"use strict";let r=n(7168),i=n(7629),o=n(895),s=n(2370),a=n(8743),u=n(4661).Graph,h=n(6549);function c(t,e,n){return e.map((function(e){return s(t,e,n)}))}function l(t,e){let n=new u;t.forEach((function(t){let r=t.graph().root,i=o(t,r,n,e);i.vs.forEach(((e,n)=>t.node(e).order=n)),a(t,n,i.vs)}))}function f(t,e){Object.values(e).forEach((e=>e.forEach(((e,n)=>t.node(e).order=n))))}t.exports=function(t){let e=h.maxRank(t),n=c(t,h.range(1,e+1),"inEdges"),o=c(t,h.range(e-1,-1,-1),"outEdges"),s=r(t);f(t,s);let a,u=Number.POSITIVE_INFINITY;for(let e=0,r=0;r<4;++e,++r){l(e%2?n:o,e%4>=2),s=h.buildLayerMatrix(t);let c=i(t,s);c<u&&(r=0,a=Object.assign({},s),u=c)}f(t,a)}},7168:(t,e,n)=>{"use strict";let r=n(6549);t.exports=function(t){let e={},n=t.nodes().filter((e=>!t.children(e).length)),i=Math.max(...n.map((e=>t.node(e).rank))),o=r.range(i+1).map((()=>[]));return n.sort(((e,n)=>t.node(e).rank-t.node(n).rank)).forEach((function n(r){if(e[r])return;e[r]=!0;let i=t.node(r);o[i.rank].push(r),t.successors(r).forEach(n)})),o}},2611:(t,e,n)=>{"use strict";let r=n(6549);t.exports=function(t,e){let n={};return t.forEach(((t,e)=>{let r=n[t.v]={indegree:0,in:[],out:[],vs:[t.v],i:e};void 0!==t.barycenter&&(r.barycenter=t.barycenter,r.weight=t.weight)})),e.edges().forEach((t=>{let e=n[t.v],r=n[t.w];void 0!==e&&void 0!==r&&(r.indegree++,e.out.push(n[t.w]))})),function(t){let e=[];function n(t){return e=>{e.merged||(void 0===e.barycenter||void 0===t.barycenter||e.barycenter>=t.barycenter)&&function(t,e){let n=0,r=0;t.weight&&(n+=t.barycenter*t.weight,r+=t.weight),e.weight&&(n+=e.barycenter*e.weight,r+=e.weight),t.vs=e.vs.concat(t.vs),t.barycenter=n/r,t.weight=r,t.i=Math.min(e.i,t.i),e.merged=!0}(t,e)}}function i(e){return n=>{n.in.push(e),0==--n.indegree&&t.push(n)}}for(;t.length;){let r=t.pop();e.push(r),r.in.reverse().forEach(n(r)),r.out.forEach(i(r))}return e.filter((t=>!t.merged)).map((t=>r.pick(t,["vs","i","barycenter","weight"])))}(Object.values(n).filter((t=>!t.indegree)))}},895:(t,e,n)=>{let r=n(8556),i=n(2611),o=n(3008);t.exports=function t(e,n,s,a){let u=e.children(n),h=e.node(n),c=h?h.borderLeft:void 0,l=h?h.borderRight:void 0,f={};c&&(u=u.filter((t=>t!==c&&t!==l)));let d=r(e,u);d.forEach((n=>{if(e.children(n.v).length){let o=t(e,n.v,s,a);f[n.v]=o,o.hasOwnProperty("barycenter")&&(i=o,void 0!==(r=n).barycenter?(r.barycenter=(r.barycenter*r.weight+i.barycenter*i.weight)/(r.weight+i.weight),r.weight+=i.weight):(r.barycenter=i.barycenter,r.weight=i.weight))}var r,i}));let p=i(d,s);!function(t,e){t.forEach((t=>{t.vs=t.vs.flatMap((t=>e[t]?e[t].vs:t))}))}(p,f);let g=o(p,a);if(c&&(g.vs=[c,g.vs,l].flat(!0),e.predecessors(c).length)){let t=e.node(e.predecessors(c)[0]),n=e.node(e.predecessors(l)[0]);g.hasOwnProperty("barycenter")||(g.barycenter=0,g.weight=0),g.barycenter=(g.barycenter*g.weight+t.order+n.order)/(g.weight+2),g.weight+=2}return g}},3008:(t,e,n)=>{let r=n(6549);function i(t,e,n){let r;for(;e.length&&(r=e[e.length-1]).i<=n;)e.pop(),t.push(r.vs),n++;return n}t.exports=function(t,e){let n=r.partition(t,(t=>t.hasOwnProperty("barycenter"))),o=n.lhs,s=n.rhs.sort(((t,e)=>e.i-t.i)),a=[],u=0,h=0,c=0;var l;o.sort((l=!!e,(t,e)=>t.barycenter<e.barycenter?-1:t.barycenter>e.barycenter?1:l?e.i-t.i:t.i-e.i)),c=i(a,s,c),o.forEach((t=>{c+=t.vs.length,a.push(t.vs),u+=t.barycenter*t.weight,h+=t.weight,c=i(a,s,c)}));let f={vs:a.flat(!0)};return h&&(f.barycenter=u/h,f.weight=h),f}},8139:t=>{t.exports=function(t){let e=function(t){let e={},n=0;return t.children().forEach((function r(i){let o=n;t.children(i).forEach(r),e[i]={low:o,lim:n++}})),e}(t);t.graph().dummyChains.forEach((n=>{let r=t.node(n),i=r.edgeObj,o=function(t,e,n,r){let i,o,s=[],a=[],u=Math.min(e[n].low,e[r].low),h=Math.max(e[n].lim,e[r].lim);i=n;do{i=t.parent(i),s.push(i)}while(i&&(e[i].low>u||h>e[i].lim));for(o=i,i=r;(i=t.parent(i))!==o;)a.push(i);return{path:s.concat(a.reverse()),lca:o}}(t,e,i.v,i.w),s=o.path,a=o.lca,u=0,h=s[u],c=!0;for(;n!==i.w;){if(r=t.node(n),c){for(;(h=s[u])!==a&&t.node(h).maxRank<r.rank;)u++;h===a&&(c=!1)}if(!c){for(;u<s.length-1&&t.node(h=s[u+1]).minRank<=r.rank;)u++;h=s[u]}t.setParent(n,h),n=t.successors(n)[0]}}))}},6478:(t,e,n)=>{"use strict";let r=n(4661).Graph,i=n(6549);function o(t,e){let n={};return e.reduce((function(e,r){let i=0,o=0,s=e.length,u=r[r.length-1];return r.forEach(((e,h)=>{let c=function(t,e){if(t.node(e).dummy)return t.predecessors(e).find((e=>t.node(e).dummy))}(t,e),l=c?t.node(c).order:s;(c||e===u)&&(r.slice(o,h+1).forEach((e=>{t.predecessors(e).forEach((r=>{let o=t.node(r),s=o.order;!(s<i||l<s)||o.dummy&&t.node(e).dummy||a(n,r,e)}))})),o=h+1,i=l)})),r})),n}function s(t,e){let n={};function r(e,r,o,s,u){let h;i.range(r,o).forEach((r=>{h=e[r],t.node(h).dummy&&t.predecessors(h).forEach((e=>{let r=t.node(e);r.dummy&&(r.order<s||r.order>u)&&a(n,e,h)}))}))}return e.reduce((function(e,n){let i,o=-1,s=0;return n.forEach(((a,u)=>{if("border"===t.node(a).dummy){let e=t.predecessors(a);e.length&&(i=t.node(e[0]).order,r(n,s,u,o,i),s=u,o=i)}r(n,s,n.length,i,e.length)})),n})),n}function a(t,e,n){if(e>n){let t=e;e=n,n=t}let r=t[e];r||(t[e]=r={}),r[n]=!0}function u(t,e,n){if(e>n){let t=e;e=n,n=t}return!!t[e]&&t[e].hasOwnProperty(n)}function h(t,e,n,r){let i={},o={},s={};return e.forEach((t=>{t.forEach(((t,e)=>{i[t]=t,o[t]=t,s[t]=e}))})),e.forEach((t=>{let e=-1;t.forEach((t=>{let a=r(t);if(a.length){a=a.sort(((t,e)=>s[t]-s[e]));let r=(a.length-1)/2;for(let h=Math.floor(r),c=Math.ceil(r);h<=c;++h){let r=a[h];o[t]===t&&e<s[r]&&!u(n,t,r)&&(o[r]=t,o[t]=i[t]=i[r],e=s[r])}}}))})),{root:i,align:o}}function c(t,e,n,i,o){let s={},a=function(t,e,n,i){let o=new r,s=t.graph(),a=function(t,e,n){return(r,i,o)=>{let s,a=r.node(i),u=r.node(o),h=0;if(h+=a.width/2,a.hasOwnProperty("labelpos"))switch(a.labelpos.toLowerCase()){case"l":s=-a.width/2;break;case"r":s=a.width/2}if(s&&(h+=n?s:-s),s=0,h+=(a.dummy?e:t)/2,h+=(u.dummy?e:t)/2,h+=u.width/2,u.hasOwnProperty("labelpos"))switch(u.labelpos.toLowerCase()){case"l":s=u.width/2;break;case"r":s=-u.width/2}return s&&(h+=n?s:-s),s=0,h}}(s.nodesep,s.edgesep,i);return e.forEach((e=>{let r;e.forEach((e=>{let i=n[e];if(o.setNode(i),r){var s=n[r],u=o.edge(s,i);o.setEdge(s,i,Math.max(a(t,e,r),u||0))}r=e}))})),o}(t,e,n,o),u=o?"borderLeft":"borderRight";function h(t,e){let n=a.nodes(),r=n.pop(),i={};for(;r;)i[r]?t(r):(i[r]=!0,n.push(r),n=n.concat(e(r))),r=n.pop()}return h((function(t){s[t]=a.inEdges(t).reduce(((t,e)=>Math.max(t,s[e.v]+a.edge(e))),0)}),a.predecessors.bind(a)),h((function(e){let n=a.outEdges(e).reduce(((t,e)=>Math.min(t,s[e.w]-a.edge(e))),Number.POSITIVE_INFINITY),r=t.node(e);n!==Number.POSITIVE_INFINITY&&r.borderType!==u&&(s[e]=Math.max(s[e],n))}),a.successors.bind(a)),Object.keys(i).forEach((t=>s[t]=s[n[t]])),s}function l(t,e){return Object.values(e).reduce(((e,n)=>{let r=Number.NEGATIVE_INFINITY,i=Number.POSITIVE_INFINITY;Object.entries(n).forEach((([e,n])=>{let o=function(t,e){return t.node(e).width}(t,e)/2;r=Math.max(n+o,r),i=Math.min(n-o,i)}));const o=r-i;return o<e[0]&&(e=[o,n]),e}),[Number.POSITIVE_INFINITY,null])[1]}function f(t,e){let n=Object.values(e),r=Math.min(...n),o=Math.max(...n);["u","d"].forEach((n=>{["l","r"].forEach((s=>{let a=n+s,u=t[a];if(u===e)return;let h=Object.values(u),c=r-Math.min(...h);"l"!==s&&(c=o-Math.max(...h)),c&&(t[a]=i.mapValues(u,(t=>t+c)))}))}))}function d(t,e){return i.mapValues(t.ul,((n,r)=>{if(e)return t[e.toLowerCase()][r];{let e=Object.values(t).map((t=>t[r])).sort(((t,e)=>t-e));return(e[1]+e[2])/2}}))}t.exports={positionX:function(t){let e,n=i.buildLayerMatrix(t),r=Object.assign(o(t,n),s(t,n)),a={};["u","d"].forEach((o=>{e="u"===o?n:Object.values(n).reverse(),["l","r"].forEach((n=>{"r"===n&&(e=e.map((t=>Object.values(t).reverse())));let s=("u"===o?t.predecessors:t.successors).bind(t),u=h(0,e,r,s),l=c(t,e,u.root,u.align,"r"===n);"r"===n&&(l=i.mapValues(l,(t=>-t))),a[o+n]=l}))}));let u=l(t,a);return f(a,u),d(a,t.graph().align)},findType1Conflicts:o,findType2Conflicts:s,addConflict:a,hasConflict:u,verticalAlignment:h,horizontalCompaction:c,alignCoordinates:f,findSmallestWidthAlignment:l,balance:d}},7209:(t,e,n)=>{"use strict";let r=n(6549),i=n(6478).positionX;t.exports=function(t){(function(t){let e=r.buildLayerMatrix(t),n=t.graph().ranksep,i=0;e.forEach((e=>{const r=e.reduce(((e,n)=>{const r=t.node(n).height;return e>r?e:r}),0);e.forEach((e=>t.node(e).y=i+r/2)),i+=r+n}))})(t=r.asNonCompoundGraph(t)),Object.entries(i(t)).forEach((([e,n])=>t.node(e).x=n))}},928:(t,e,n)=>{"use strict";var r=n(4661).Graph,i=n(3341).slack;function o(t,e){return t.nodes().forEach((function n(r){e.nodeEdges(r).forEach((o=>{var s=o.v,a=r===s?o.w:s;t.hasNode(a)||i(e,o)||(t.setNode(a,{}),t.setEdge(r,a,{}),n(a))}))})),t.nodeCount()}function s(t,e){return e.edges().reduce(((n,r)=>{let o=Number.POSITIVE_INFINITY;return t.hasNode(r.v)!==t.hasNode(r.w)&&(o=i(e,r)),o<n[0]?[o,r]:n}),[Number.POSITIVE_INFINITY,null])[1]}function a(t,e,n){t.nodes().forEach((t=>e.node(t).rank+=n))}t.exports=function(t){var e,n,u=new r({directed:!1}),h=t.nodes()[0],c=t.nodeCount();for(u.setNode(h,{});o(u,t)<c;)e=s(u,t),n=u.hasNode(e.v)?i(t,e):-i(t,e),a(u,t,n);return u}},9131:(t,e,n)=>{"use strict";var r=n(3341).longestPath,i=n(928),o=n(1813);t.exports=function(t){switch(t.graph().ranker){case"network-simplex":default:!function(t){o(t)}(t);break;case"tight-tree":!function(t){r(t),i(t)}(t);break;case"longest-path":s(t)}};var s=r},1813:(t,e,n)=>{"use strict";var r=n(928),i=n(3341).slack,o=n(3341).longestPath,s=n(4661).alg.preorder,a=n(4661).alg.postorder,u=n(6549).simplify;function h(t){t=u(t),o(t);var e,n=r(t);for(f(n),c(n,t);e=p(n);)v(n,t,e,g(n,t,e))}function c(t,e){var n=a(t,t.nodes());(n=n.slice(0,n.length-1)).forEach((n=>function(t,e,n){var r=t.node(n).parent;t.edge(n,r).cutvalue=l(t,e,n)}(t,e,n)))}function l(t,e,n){var r=t.node(n).parent,i=!0,o=e.edge(n,r),s=0;return o||(i=!1,o=e.edge(r,n)),s=o.weight,e.nodeEdges(n).forEach((o=>{var a,u,h=o.v===n,c=h?o.w:o.v;if(c!==r){var l=h===i,f=e.edge(o).weight;if(s+=l?f:-f,a=n,u=c,t.hasEdge(a,u)){var d=t.edge(n,c).cutvalue;s+=l?-d:d}}})),s}function f(t,e){arguments.length<2&&(e=t.nodes()[0]),d(t,{},1,e)}function d(t,e,n,r,i){var o=n,s=t.node(r);return e[r]=!0,t.neighbors(r).forEach((i=>{e.hasOwnProperty(i)||(n=d(t,e,n,i,r))})),s.low=o,s.lim=n++,i?s.parent=i:delete s.parent,n}function p(t){return t.edges().find((e=>t.edge(e).cutvalue<0))}function g(t,e,n){var r=n.v,o=n.w;e.hasEdge(r,o)||(r=n.w,o=n.v);var s=t.node(r),a=t.node(o),u=s,h=!1;s.lim>a.lim&&(u=a,h=!0);var c=e.edges().filter((e=>h===y(0,t.node(e.v),u)&&h!==y(0,t.node(e.w),u)));return c.reduce(((t,n)=>i(e,n)<i(e,t)?n:t))}function v(t,e,n,r){var i=n.v,o=n.w;t.removeEdge(i,o),t.setEdge(r.v,r.w,{}),f(t),c(t,e),function(t,e){var n=t.nodes().find((t=>!e.node(t).parent)),r=s(t,n);(r=r.slice(1)).forEach((n=>{var r=t.node(n).parent,i=e.edge(n,r),o=!1;i||(i=e.edge(r,n),o=!0),e.node(n).rank=e.node(r).rank+(o?i.minlen:-i.minlen)}))}(t,e)}function y(t,e,n){return n.low<=e.lim&&e.lim<=n.lim}t.exports=h,h.initLowLimValues=f,h.initCutValues=c,h.calcCutValue=l,h.leaveEdge=p,h.enterEdge=g,h.exchangeEdges=v},3341:t=>{"use strict";t.exports={longestPath:function(t){var e={};t.sources().forEach((function n(r){var i=t.node(r);if(e.hasOwnProperty(r))return i.rank;e[r]=!0;var o=Math.min(...t.outEdges(r).map((e=>null==e?Number.POSITIVE_INFINITY:n(e.w)-t.edge(e).minlen)));return o===Number.POSITIVE_INFINITY&&(o=0),i.rank=o}))},slack:function(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}}},6549:(t,e,n)=>{"use strict";let r=n(4661).Graph;function i(t,e,n,r){let i;do{i=a(r)}while(t.hasNode(i));return n.dummy=e,t.setNode(i,n),i}function o(t){return Math.max(...t.nodes().map((e=>{let n=t.node(e).rank;return void 0===n?Number.MIN_VALUE:n})))}t.exports={addBorderNode:function(t,e,n,r){let o={width:0,height:0};return arguments.length>=4&&(o.rank=n,o.order=r),i(t,"border",o,e)},addDummyNode:i,asNonCompoundGraph:function(t){let e=new r({multigraph:t.isMultigraph()}).setGraph(t.graph());return t.nodes().forEach((n=>{t.children(n).length||e.setNode(n,t.node(n))})),t.edges().forEach((n=>{e.setEdge(n,t.edge(n))})),e},buildLayerMatrix:function(t){let e=u(o(t)+1).map((()=>[]));return t.nodes().forEach((n=>{let r=t.node(n),i=r.rank;void 0!==i&&(e[i][r.order]=n)})),e},intersectRect:function(t,e){let n,r,i=t.x,o=t.y,s=e.x-i,a=e.y-o,u=t.width/2,h=t.height/2;if(!s&&!a)throw new Error("Not possible to find intersection inside of the rectangle");return Math.abs(a)*u>Math.abs(s)*h?(a<0&&(h=-h),n=h*s/a,r=h):(s<0&&(u=-u),n=u,r=u*a/s),{x:i+n,y:o+r}},mapValues:function(t,e){let n=e;return"string"==typeof e&&(n=t=>t[e]),Object.entries(t).reduce(((t,[e,r])=>(t[e]=n(r,e),t)),{})},maxRank:o,normalizeRanks:function(t){let e=Math.min(...t.nodes().map((e=>{let n=t.node(e).rank;return void 0===n?Number.MAX_VALUE:n})));t.nodes().forEach((n=>{let r=t.node(n);r.hasOwnProperty("rank")&&(r.rank-=e)}))},notime:function(t,e){return e()},partition:function(t,e){let n={lhs:[],rhs:[]};return t.forEach((t=>{e(t)?n.lhs.push(t):n.rhs.push(t)})),n},pick:function(t,e){const n={};for(const r of e)void 0!==t[r]&&(n[r]=t[r]);return n},predecessorWeights:function(t){let e=t.nodes().map((e=>{let n={};return t.inEdges(e).forEach((e=>{n[e.v]=(n[e.v]||0)+t.edge(e).weight})),n}));return h(t.nodes(),e)},range:u,removeEmptyRanks:function(t){let e=Math.min(...t.nodes().map((e=>t.node(e).rank))),n=[];t.nodes().forEach((r=>{let i=t.node(r).rank-e;n[i]||(n[i]=[]),n[i].push(r)}));let r=0,i=t.graph().nodeRankFactor;Array.from(n).forEach(((e,n)=>{void 0===e&&n%i!=0?--r:void 0!==e&&r&&e.forEach((e=>t.node(e).rank+=r))}))},simplify:function(t){let e=(new r).setGraph(t.graph());return t.nodes().forEach((n=>e.setNode(n,t.node(n)))),t.edges().forEach((n=>{let r=e.edge(n.v,n.w)||{weight:0,minlen:1},i=t.edge(n);e.setEdge(n.v,n.w,{weight:r.weight+i.weight,minlen:Math.max(r.minlen,i.minlen)})})),e},successorWeights:function(t){let e=t.nodes().map((e=>{let n={};return t.outEdges(e).forEach((e=>{n[e.w]=(n[e.w]||0)+t.edge(e).weight})),n}));return h(t.nodes(),e)},time:function(t,e){let n=Date.now();try{return e()}finally{console.log(t+" time: "+(Date.now()-n)+"ms")}},uniqueId:a,zipObject:h};let s=0;function a(t){var e=++s;return toString(t)+e}function u(t,e,n=1){null==e&&(e=t,t=0);let r=t=>t<e;n<0&&(r=t=>e<t);const i=[];for(let e=t;r(e);e+=n)i.push(e);return i}function h(t,e){return t.reduce(((t,n,r)=>(t[n]=e[r],t)),{})}},1225:t=>{t.exports="1.0.4"},4661:(t,e,n)=>{var r=n(6954);t.exports={Graph:r.Graph,json:n(2708),alg:n(7410),version:r.version}},7324:t=>{t.exports=function(t){var e,n={},r=[];function i(r){n.hasOwnProperty(r)||(n[r]=!0,e.push(r),t.successors(r).forEach(i),t.predecessors(r).forEach(i))}return t.nodes().forEach((function(t){e=[],i(t),e.length&&r.push(e)})),r}},5164:t=>{function e(t,e,n,i){for(var o=[[t,!1]];o.length>0;){var s=o.pop();s[1]?i.push(s[0]):n.hasOwnProperty(s[0])||(n[s[0]]=!0,o.push([s[0],!0]),r(e(s[0]),(t=>o.push([t,!1]))))}}function n(t,e,n,i){for(var o=[t];o.length>0;){var s=o.pop();n.hasOwnProperty(s)||(n[s]=!0,i.push(s),r(e(s),(t=>o.push(t))))}}function r(t,e){for(var n=t.length;n--;)e(t[n],n,t);return t}t.exports=function(t,r,i){Array.isArray(r)||(r=[r]);var o=t.isDirected()?e=>t.successors(e):e=>t.neighbors(e),s="post"===i?e:n,a=[],u={};return r.forEach((e=>{if(!t.hasNode(e))throw new Error("Graph does not have node: "+e);s(e,o,u,a)})),a}},7958:(t,e,n)=>{var r=n(6967);t.exports=function(t,e,n){return t.nodes().reduce((function(i,o){return i[o]=r(t,o,e,n),i}),{})}},6967:(t,e,n)=>{var r=n(4963);t.exports=function(t,e,n,o){return function(t,e,n,i){var o,s,a={},u=new r,h=function(t){var e=t.v!==o?t.v:t.w,r=a[e],i=n(t),h=s.distance+i;if(i<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+t+" Weight: "+i);h<r.distance&&(r.distance=h,r.predecessor=o,u.decrease(e,h))};for(t.nodes().forEach((function(t){var n=t===e?0:Number.POSITIVE_INFINITY;a[t]={distance:n},u.add(t,n)}));u.size()>0&&(o=u.removeMin(),(s=a[o]).distance!==Number.POSITIVE_INFINITY);)i(o).forEach(h);return a}(t,String(e),n||i,o||function(e){return t.outEdges(e)})};var i=()=>1},7976:(t,e,n)=>{var r=n(5435);t.exports=function(t){return r(t).filter((function(e){return e.length>1||1===e.length&&t.hasEdge(e[0],e[0])}))}},8435:t=>{t.exports=function(t,n,r){return function(t,e,n){var r={},i=t.nodes();return i.forEach((function(t){r[t]={},r[t][t]={distance:0},i.forEach((function(e){t!==e&&(r[t][e]={distance:Number.POSITIVE_INFINITY})})),n(t).forEach((function(n){var i=n.v===t?n.w:n.v,o=e(n);r[t][i]={distance:o,predecessor:t}}))})),i.forEach((function(t){var e=r[t];i.forEach((function(n){var o=r[n];i.forEach((function(n){var r=o[t],i=e[n],s=o[n],a=r.distance+i.distance;a<s.distance&&(s.distance=a,s.predecessor=i.predecessor)}))}))})),r}(t,n||e,r||function(e){return t.outEdges(e)})};var e=()=>1},7410:(t,e,n)=>{t.exports={components:n(7324),dijkstra:n(6967),dijkstraAll:n(7958),findCycles:n(7976),floydWarshall:n(8435),isAcyclic:n(951),postorder:n(6504),preorder:n(6991),prim:n(4464),tarjan:n(5435),topsort:n(6672)}},951:(t,e,n)=>{var r=n(6672);t.exports=function(t){try{r(t)}catch(t){if(t instanceof r.CycleException)return!1;throw t}return!0}},6504:(t,e,n)=>{var r=n(5164);t.exports=function(t,e){return r(t,e,"post")}},6991:(t,e,n)=>{var r=n(5164);t.exports=function(t,e){return r(t,e,"pre")}},4464:(t,e,n)=>{var r=n(9562),i=n(4963);t.exports=function(t,e){var n,o=new r,s={},a=new i;function u(t){var r=t.v===n?t.w:t.v,i=a.priority(r);if(void 0!==i){var o=e(t);o<i&&(s[r]=n,a.decrease(r,o))}}if(0===t.nodeCount())return o;t.nodes().forEach((function(t){a.add(t,Number.POSITIVE_INFINITY),o.setNode(t)})),a.decrease(t.nodes()[0],0);for(var h=!1;a.size()>0;){if(n=a.removeMin(),s.hasOwnProperty(n))o.setEdge(n,s[n]);else{if(h)throw new Error("Input graph is not connected: "+t);h=!0}t.nodeEdges(n).forEach(u)}return o}},5435:t=>{t.exports=function(t){var e=0,n=[],r={},i=[];function o(s){var a=r[s]={onStack:!0,lowlink:e,index:e++};if(n.push(s),t.successors(s).forEach((function(t){r.hasOwnProperty(t)?r[t].onStack&&(a.lowlink=Math.min(a.lowlink,r[t].index)):(o(t),a.lowlink=Math.min(a.lowlink,r[t].lowlink))})),a.lowlink===a.index){var u,h=[];do{u=n.pop(),r[u].onStack=!1,h.push(u)}while(s!==u);i.push(h)}}return t.nodes().forEach((function(t){r.hasOwnProperty(t)||o(t)})),i}},6672:t=>{function e(t){var e={},r={},i=[];if(t.sinks().forEach((function o(s){if(r.hasOwnProperty(s))throw new n;e.hasOwnProperty(s)||(r[s]=!0,e[s]=!0,t.predecessors(s).forEach(o),delete r[s],i.push(s))})),Object.keys(e).length!==t.nodeCount())throw new n;return i}class n extends Error{constructor(){super(...arguments)}}t.exports=e,e.CycleException=n},4963:t=>{t.exports=class{#t=[];#e={};size(){return this.#t.length}keys(){return this.#t.map((function(t){return t.key}))}has(t){return this.#e.hasOwnProperty(t)}priority(t){var e=this.#e[t];if(void 0!==e)return this.#t[e].priority}min(){if(0===this.size())throw new Error("Queue underflow");return this.#t[0].key}add(t,e){var n=this.#e;if(t=String(t),!n.hasOwnProperty(t)){var r=this.#t,i=r.length;return n[t]=i,r.push({key:t,priority:e}),this.#n(i),!0}return!1}removeMin(){this.#r(0,this.#t.length-1);var t=this.#t.pop();return delete this.#e[t.key],this.#i(0),t.key}decrease(t,e){var n=this.#e[t];if(e>this.#t[n].priority)throw new Error("New priority is greater than current priority. Key: "+t+" Old: "+this.#t[n].priority+" New: "+e);this.#t[n].priority=e,this.#n(n)}#i(t){var e=this.#t,n=2*t,r=n+1,i=t;n<e.length&&(i=e[n].priority<e[i].priority?n:i,r<e.length&&(i=e[r].priority<e[i].priority?r:i),i!==t&&(this.#r(t,i),this.#i(i)))}#n(t){for(var e,n=this.#t,r=n[t].priority;0!==t&&!(n[e=t>>1].priority<r);)this.#r(t,e),t=e}#r(t,e){var n=this.#t,r=this.#e,i=n[t],o=n[e];n[t]=o,n[e]=i,r[o.key]=t,r[i.key]=e}}},9562:t=>{"use strict";var e="\0",n="\0",r="";function i(t,e){t[e]?t[e]++:t[e]=1}function o(t,e){--t[e]||delete t[e]}function s(t,n,i,o){var s=""+n,a=""+i;if(!t&&s>a){var u=s;s=a,a=u}return s+r+a+r+(void 0===o?e:o)}function a(t,e){return s(t,e.v,e.w,e.name)}t.exports=class{#o=!0;#s=!1;#a=!1;#u;#h=()=>{};#c=()=>{};#l={};#f={};#d={};#p={};#g={};#v={};#y={};#m=0;#_=0;#w;#b;constructor(t){t&&(this.#o=!t.hasOwnProperty("directed")||t.directed,this.#s=!!t.hasOwnProperty("multigraph")&&t.multigraph,this.#a=!!t.hasOwnProperty("compound")&&t.compound),this.#a&&(this.#w={},this.#b={},this.#b[n]={})}isDirected(){return this.#o}isMultigraph(){return this.#s}isCompound(){return this.#a}setGraph(t){return this.#u=t,this}graph(){return this.#u}setDefaultNodeLabel(t){return this.#h=t,"function"!=typeof t&&(this.#h=()=>t),this}nodeCount(){return this.#m}nodes(){return Object.keys(this.#l)}sources(){var t=this;return this.nodes().filter((e=>0===Object.keys(t.#f[e]).length))}sinks(){var t=this;return this.nodes().filter((e=>0===Object.keys(t.#p[e]).length))}setNodes(t,e){var n=arguments,r=this;return t.forEach((function(t){n.length>1?r.setNode(t,e):r.setNode(t)})),this}setNode(t,e){return this.#l.hasOwnProperty(t)?(arguments.length>1&&(this.#l[t]=e),this):(this.#l[t]=arguments.length>1?e:this.#h(t),this.#a&&(this.#w[t]=n,this.#b[t]={},this.#b[n][t]=!0),this.#f[t]={},this.#d[t]={},this.#p[t]={},this.#g[t]={},++this.#m,this)}node(t){return this.#l[t]}hasNode(t){return this.#l.hasOwnProperty(t)}removeNode(t){var e=this;if(this.#l.hasOwnProperty(t)){var n=t=>e.removeEdge(e.#v[t]);delete this.#l[t],this.#a&&(this.#x(t),delete this.#w[t],this.children(t).forEach((function(t){e.setParent(t)})),delete this.#b[t]),Object.keys(this.#f[t]).forEach(n),delete this.#f[t],delete this.#d[t],Object.keys(this.#p[t]).forEach(n),delete this.#p[t],delete this.#g[t],--this.#m}return this}setParent(t,e){if(!this.#a)throw new Error("Cannot set parent in a non-compound graph");if(void 0===e)e=n;else{for(var r=e+="";void 0!==r;r=this.parent(r))if(r===t)throw new Error("Setting "+e+" as parent of "+t+" would create a cycle");this.setNode(e)}return this.setNode(t),this.#x(t),this.#w[t]=e,this.#b[e][t]=!0,this}#x(t){delete this.#b[this.#w[t]][t]}parent(t){if(this.#a){var e=this.#w[t];if(e!==n)return e}}children(t=n){if(this.#a){var e=this.#b[t];if(e)return Object.keys(e)}else{if(t===n)return this.nodes();if(this.hasNode(t))return[]}}predecessors(t){var e=this.#d[t];if(e)return Object.keys(e)}successors(t){var e=this.#g[t];if(e)return Object.keys(e)}neighbors(t){var e=this.predecessors(t);if(e){const r=new Set(e);for(var n of this.successors(t))r.add(n);return Array.from(r.values())}}isLeaf(t){return 0===(this.isDirected()?this.successors(t):this.neighbors(t)).length}filterNodes(t){var e=new this.constructor({directed:this.#o,multigraph:this.#s,compound:this.#a});e.setGraph(this.graph());var n=this;Object.entries(this.#l).forEach((function([n,r]){t(n)&&e.setNode(n,r)})),Object.values(this.#v).forEach((function(t){e.hasNode(t.v)&&e.hasNode(t.w)&&e.setEdge(t,n.edge(t))}));var r={};function i(t){var o=n.parent(t);return void 0===o||e.hasNode(o)?(r[t]=o,o):o in r?r[o]:i(o)}return this.#a&&e.nodes().forEach((t=>e.setParent(t,i(t)))),e}setDefaultEdgeLabel(t){return this.#c=t,"function"!=typeof t&&(this.#c=()=>t),this}edgeCount(){return this.#_}edges(){return Object.values(this.#v)}setPath(t,e){var n=this,r=arguments;return t.reduce((function(t,i){return r.length>1?n.setEdge(t,i,e):n.setEdge(t,i),i})),this}setEdge(){var t,e,n,r,o=!1,a=arguments[0];"object"==typeof a&&null!==a&&"v"in a?(t=a.v,e=a.w,n=a.name,2===arguments.length&&(r=arguments[1],o=!0)):(t=a,e=arguments[1],n=arguments[3],arguments.length>2&&(r=arguments[2],o=!0)),t=""+t,e=""+e,void 0!==n&&(n=""+n);var u=s(this.#o,t,e,n);if(this.#y.hasOwnProperty(u))return o&&(this.#y[u]=r),this;if(void 0!==n&&!this.#s)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(t),this.setNode(e),this.#y[u]=o?r:this.#c(t,e,n);var h=function(t,e,n,r){var i=""+e,o=""+n;if(!t&&i>o){var s=i;i=o,o=s}var a={v:i,w:o};return r&&(a.name=r),a}(this.#o,t,e,n);return t=h.v,e=h.w,Object.freeze(h),this.#v[u]=h,i(this.#d[e],t),i(this.#g[t],e),this.#f[e][u]=h,this.#p[t][u]=h,this.#_++,this}edge(t,e,n){var r=1===arguments.length?a(this.#o,arguments[0]):s(this.#o,t,e,n);return this.#y[r]}edgeAsObj(){const t=this.edge(...arguments);return"object"!=typeof t?{label:t}:t}hasEdge(t,e,n){var r=1===arguments.length?a(this.#o,arguments[0]):s(this.#o,t,e,n);return this.#y.hasOwnProperty(r)}removeEdge(t,e,n){var r=1===arguments.length?a(this.#o,arguments[0]):s(this.#o,t,e,n),i=this.#v[r];return i&&(t=i.v,e=i.w,delete this.#y[r],delete this.#v[r],o(this.#d[e],t),o(this.#g[t],e),delete this.#f[e][r],delete this.#p[t][r],this.#_--),this}inEdges(t,e){var n=this.#f[t];if(n){var r=Object.values(n);return e?r.filter((t=>t.v===e)):r}}outEdges(t,e){var n=this.#p[t];if(n){var r=Object.values(n);return e?r.filter((t=>t.w===e)):r}}nodeEdges(t,e){var n=this.inEdges(t,e);if(n)return n.concat(this.outEdges(t,e))}}},6954:(t,e,n)=>{t.exports={Graph:n(9562),version:n(8288)}},2708:(t,e,n)=>{var r=n(9562);function i(t){return t.nodes().map((function(e){var n=t.node(e),r=t.parent(e),i={v:e};return void 0!==n&&(i.value=n),void 0!==r&&(i.parent=r),i}))}function o(t){return t.edges().map((function(e){var n=t.edge(e),r={v:e.v,w:e.w};return void 0!==e.name&&(r.name=e.name),void 0!==n&&(r.value=n),r}))}t.exports={write:function(t){var e={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:i(t),edges:o(t)};return void 0!==t.graph()&&(e.value=structuredClone(t.graph())),e},read:function(t){var e=new r(t.options).setGraph(t.value);return t.nodes.forEach((function(t){e.setNode(t.v,t.value),t.parent&&e.setParent(t.v,t.parent)})),t.edges.forEach((function(t){e.setEdge({v:t.v,w:t.w,name:t.name},t.value)})),e}}},8288:t=>{t.exports="2.1.13"},2779:(t,e)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function i(){for(var t=[],e=0;e<arguments.length;e++){var n=arguments[e];if(n){var o=typeof n;if("string"===o||"number"===o)t.push(n);else if(Array.isArray(n)){if(n.length){var s=i.apply(null,n);s&&t.push(s)}}else if("object"===o){if(n.toString!==Object.prototype.toString&&!n.toString.toString().includes("[native code]")){t.push(n.toString());continue}for(var a in n)r.call(n,a)&&n[a]&&t.push(a)}}}return t.join(" ")}t.exports?(i.default=i,t.exports=i):void 0===(n=function(){return i}.apply(e,[]))||(t.exports=n)}()},2609:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n="",r=void 0!==e[5];return e[4]&&(n+="@supports (".concat(e[4],") {")),e[2]&&(n+="@media ".concat(e[2]," {")),r&&(n+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),n+=t(e),r&&(n+="}"),e[2]&&(n+="}"),e[4]&&(n+="}"),n})).join("")},e.i=function(t,n,r,i,o){"string"==typeof t&&(t=[[null,t,void 0]]);var s={};if(r)for(var a=0;a<this.length;a++){var u=this[a][0];null!=u&&(s[u]=!0)}for(var h=0;h<t.length;h++){var c=[].concat(t[h]);r&&s[c[0]]||(void 0!==o&&(void 0===c[5]||(c[1]="@layer".concat(c[5].length>0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=o),n&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=n):c[2]=n),i&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=i):c[4]="".concat(i)),e.push(c))}},e}},9601:t=>{"use strict";t.exports=function(t){return t[1]}},5066:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var r=n(6522),i=n(1815);function o(t,e,n){"symbol"==(0,r.Z)(e)&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:n?n+" "+e:e})}catch(t){}return t}var s=n(5850);function a(t,e,n,a,u,h){function c(t,e,n){return function(r,i){return n&&n(r),t[e].call(r,i)}}function l(t,e){for(var n=0;n<t.length;n++)t[n].call(e);return e}function f(t,e,n,r){if("function"!=typeof t&&(r||void 0!==t))throw new TypeError(e+" must "+(n||"be")+" a function"+(r?"":" or undefined"));return t}function d(t,e,n,i,s,a,u,h,l,d,p,g,v){function y(t){if(!v(t))throw new TypeError("Attempted to access private element on non-instance")}var m,_,w=e[0],b=e[3],x=!h;if(!x){n||Array.isArray(w)||(w=[w]);var E={},k=[],N=3===s?"get":4===s||g?"set":"value";d?(p||g?E={get:o((function(){return b(this)}),i,"get"),set:function(t){e[4](this,t)}}:E[N]=b,p||o(E[N],i,2===s?"":N)):p||(E=Object.getOwnPropertyDescriptor(t,i))}for(var O=w.length-1;O>=0;O-=n?2:1){var M=w[O],P=n?w[O-1]:void 0,T={},S={kind:["field","accessor","method","getter","setter","class"][s],name:i,metadata:a,addInitializer:function(t,e){if(t.v)throw new Error("attempted to call addInitializer after decoration was finished");f(e,"An initializer","be",!0),u.push(e)}.bind(null,T)};try{if(x)_=M.call(P,t,S);else{var I,j;S.static=l,S.private=d,d||!p&&2!==s?2===s?I=function(t){return y(t),E.value}:((s<2||3===s)&&(I=c(E,"get",d&&y)),(s<2||4===s)&&(j=c(E,"set",d&&y))):(I=function(t){return t[i]},p&&(j=function(t,e){t[i]=e}));var C=S.access={has:d?v.bind():function(t){return i in t}};if(I&&(C.get=I),j&&(C.set=j),_=M.call(P,g?{get:E.get,set:E.set}:E[N],S),g){if("object"==(0,r.Z)(_)&&_)(m=f(_.get,"accessor.get"))&&(E.get=m),(m=f(_.set,"accessor.set"))&&(E.set=m),(m=f(_.init,"accessor.init"))&&k.push(m);else if(void 0!==_)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0")}else f(_,(p?"field":"method")+" decorators","return")&&(p?k.push(_):E[N]=_)}}finally{T.v=!0}}return(p||g)&&h.push((function(t,e){for(var n=k.length-1;n>=0;n--)e=k[n].call(t,e);return e})),p||x||(d?g?h.push(c(E,"get"),c(E,"set")):h.push(2===s?E[N]:c.call.bind(E[N])):Object.defineProperty(t,i,E)),_}function p(t,e){return Object.defineProperty(t,Symbol.metadata||Symbol.for("Symbol.metadata"),{configurable:!0,enumerable:!0,value:e})}if(arguments.length>=6)var g=h[Symbol.metadata||Symbol.for("Symbol.metadata")];var v=Object.create(null==g?null:g),y=function(t,e,n,r){var o,a,u=[],h=function(e){return(0,i.Z)(e)===t},c=new Map;function f(t){t&&u.push(l.bind(null,t))}for(var p=0;p<e.length;p++){var g=e[p];if(Array.isArray(g)){var v=g[1],y=g[2],m=g.length>3,_=16&v,w=!!(8&v),b=0==(v&=7),x=y+"/"+w;if(!b&&!m){var E=c.get(x);if(!0===E||3===E&&4!==v||4===E&&3!==v)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+y);c.set(x,!(v>2)||v)}d(w?t:t.prototype,g,_,m?"#"+y:(0,s.Z)(y),v,r,w?a=a||[]:o=o||[],u,w,m,b,1===v,w&&m?h:n)}}return f(o),f(a),u}(t,e,u,v);return n.length||p(t,v),{e:y,get c(){var e=[];return n.length&&[p(f(d(t,[n],a,t.name,5,v,e),"class decorators","return")||t,v),l.bind(null,e,t)]}}}},1815:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(6522);function i(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==t?(0,r.Z)(t):"null"));return t}},5863:(t,e,n)=>{"use strict";function r(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")}n.d(e,{Z:()=>r})},175:(t,e,n)=>{"use strict";function r(t,e,n){if(!e.has(t))throw new TypeError("attempted to "+n+" private field on non-instance");return e.get(t)}n.d(e,{Z:()=>r})},687:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(175);function i(t,e){return function(t,e){return e.get?e.get.call(t):e.value}(t,(0,r.Z)(t,e,"get"))}},3395:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(5863);function i(t,e,n){(0,r.Z)(t,e),e.set(t,n)}},381:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(175);function i(t,e,n){return function(t,e,n){if(e.set)e.set.call(t,n);else{if(!e.writable)throw new TypeError("attempted to set read only private field");e.value=n}}(t,(0,r.Z)(t,e,"set"),n),n}},6666:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(5850);function i(t,e,n){return(e=(0,r.Z)(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}},3028:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var r=n(6666);function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function o(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?i(Object(n),!0).forEach((function(e){(0,r.Z)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}},2159:(t,e,n)=>{"use strict";function r(t,e){if(null==t)return{};var n,r,i=function(t,e){if(null==t)return{};var n,r,i={},o=Object.keys(t);for(r=0;r<o.length;r++)n=o[r],e.indexOf(n)>=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r<o.length;r++)n=o[r],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}n.d(e,{Z:()=>r})},5850:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(6522);function i(t){var e=function(t,e){if("object"!=(0,r.Z)(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,"string");if("object"!=(0,r.Z)(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==(0,r.Z)(e)?e:String(e)}},6522:(t,e,n)=>{"use strict";function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}n.d(e,{Z:()=>r})},4477:(t,e,n)=>{"use strict";function r(t){return function(){return this.matches(t)}}function i(t){return function(e){return e.matches(t)}}n.d(e,{P:()=>i,Z:()=>r})},6555:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(6563);function i(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),r.Z.hasOwnProperty(e)?{space:r.Z[e],local:t}:t}},6563:(t,e,n)=>{"use strict";n.d(e,{P:()=>r,Z:()=>i});var r="http://www.w3.org/1999/xhtml";const i={svg:"http://www.w3.org/2000/svg",xhtml:r,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}},1105:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(2614);function i(t){return"string"==typeof t?new r.Y1([[document.querySelector(t)]],[document.documentElement]):new r.Y1([[t]],r.Jz)}},2614:(t,e,n)=>{"use strict";n.d(e,{Y1:()=>ot,ZP:()=>at,Jz:()=>it});var r=n(8916),i=n(6590);var o=n(4477),s=Array.prototype.find;function a(){return this.firstElementChild}var u=Array.prototype.filter;function h(){return Array.from(this.children)}function c(t){return new Array(t.length)}function l(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function f(t,e,n,r,i,o){for(var s,a=0,u=e.length,h=o.length;a<h;++a)(s=e[a])?(s.__data__=o[a],r[a]=s):n[a]=new l(t,o[a]);for(;a<u;++a)(s=e[a])&&(i[a]=s)}function d(t,e,n,r,i,o,s){var a,u,h,c=new Map,f=e.length,d=o.length,p=new Array(f);for(a=0;a<f;++a)(u=e[a])&&(p[a]=h=s.call(u,u.__data__,a,e)+"",c.has(h)?i[a]=u:c.set(h,u));for(a=0;a<d;++a)h=s.call(t,o[a],a,o)+"",(u=c.get(h))?(r[a]=u,u.__data__=o[a],c.delete(h)):n[a]=new l(t,o[a]);for(a=0;a<f;++a)(u=e[a])&&c.get(p[a])===u&&(i[a]=u)}function p(t){return t.__data__}function g(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function v(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}l.prototype={constructor:l,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var y=n(6555);function m(t){return function(){this.removeAttribute(t)}}function _(t){return function(){this.removeAttributeNS(t.space,t.local)}}function w(t,e){return function(){this.setAttribute(t,e)}}function b(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function x(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function E(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}var k=n(2755);function N(t){return function(){delete this[t]}}function O(t,e){return function(){this[t]=e}}function M(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function P(t){return t.trim().split(/^|\s+/)}function T(t){return t.classList||new S(t)}function S(t){this._node=t,this._names=P(t.getAttribute("class")||"")}function I(t,e){for(var n=T(t),r=-1,i=e.length;++r<i;)n.add(e[r])}function j(t,e){for(var n=T(t),r=-1,i=e.length;++r<i;)n.remove(e[r])}function C(t){return function(){I(this,t)}}function $(t){return function(){j(this,t)}}function A(t,e){return function(){(e.apply(this,arguments)?I:j)(this,t)}}function z(){this.textContent=""}function L(t){return function(){this.textContent=t}}function Z(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function R(){this.innerHTML=""}function D(t){return function(){this.innerHTML=t}}function V(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function q(){this.nextSibling&&this.parentNode.appendChild(this)}function Y(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}S.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var G=n(6563);function F(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===G.P&&e.documentElement.namespaceURI===G.P?e.createElement(t):e.createElementNS(n,t)}}function X(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function B(t){var e=(0,y.Z)(t);return(e.local?X:F)(e)}function H(){return null}function U(){var t=this.parentNode;t&&t.removeChild(this)}function W(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function K(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Q(t){return function(){var e=this.__on;if(e){for(var n,r=0,i=-1,o=e.length;r<o;++r)n=e[r],t.type&&n.type!==t.type||n.name!==t.name?e[++i]=n:this.removeEventListener(n.type,n.listener,n.options);++i?e.length=i:delete this.__on}}}function J(t,e,n){return function(){var r,i=this.__on,o=function(t){return function(e){t.call(this,e,this.__data__)}}(e);if(i)for(var s=0,a=i.length;s<a;++s)if((r=i[s]).type===t.type&&r.name===t.name)return this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=o,r.options=n),void(r.value=e);this.addEventListener(t.type,o,n),r={type:t.type,name:t.name,value:e,listener:o,options:n},i?i.push(r):this.__on=[r]}}var tt=n(6707);function et(t,e,n){var r=(0,tt.Z)(t),i=r.CustomEvent;"function"==typeof i?i=new i(e,n):(i=r.document.createEvent("Event"),n?(i.initEvent(e,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function nt(t,e){return function(){return et(this,t,e)}}function rt(t,e){return function(){return et(this,t,e.apply(this,arguments))}}var it=[null];function ot(t,e){this._groups=t,this._parents=e}function st(){return new ot([[document.documentElement]],it)}ot.prototype=st.prototype={constructor:ot,select:function(t){"function"!=typeof t&&(t=(0,r.Z)(t));for(var e=this._groups,n=e.length,i=new Array(n),o=0;o<n;++o)for(var s,a,u=e[o],h=u.length,c=i[o]=new Array(h),l=0;l<h;++l)(s=u[l])&&(a=t.call(s,s.__data__,l,u))&&("__data__"in s&&(a.__data__=s.__data__),c[l]=a);return new ot(i,this._parents)},selectAll:function(t){t="function"==typeof t?function(t){return function(){return null==(e=t.apply(this,arguments))?[]:Array.isArray(e)?e:Array.from(e);var e}}(t):(0,i.Z)(t);for(var e=this._groups,n=e.length,r=[],o=[],s=0;s<n;++s)for(var a,u=e[s],h=u.length,c=0;c<h;++c)(a=u[c])&&(r.push(t.call(a,a.__data__,c,u)),o.push(a));return new ot(r,o)},selectChild:function(t){return this.select(null==t?a:function(t){return function(){return s.call(this.children,t)}}("function"==typeof t?t:(0,o.P)(t)))},selectChildren:function(t){return this.selectAll(null==t?h:function(t){return function(){return u.call(this.children,t)}}("function"==typeof t?t:(0,o.P)(t)))},filter:function(t){"function"!=typeof t&&(t=(0,o.Z)(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var s,a=e[i],u=a.length,h=r[i]=[],c=0;c<u;++c)(s=a[c])&&t.call(s,s.__data__,c,a)&&h.push(s);return new ot(r,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,p);var n,r=e?d:f,i=this._parents,o=this._groups;"function"!=typeof t&&(n=t,t=function(){return n});for(var s=o.length,a=new Array(s),u=new Array(s),h=new Array(s),c=0;c<s;++c){var l=i[c],v=o[c],y=v.length,m=g(t.call(l,l&&l.__data__,c,i)),_=m.length,w=u[c]=new Array(_),b=a[c]=new Array(_);r(l,v,w,b,h[c]=new Array(y),m,e);for(var x,E,k=0,N=0;k<_;++k)if(x=w[k]){for(k>=N&&(N=k+1);!(E=b[N])&&++N<_;);x._next=E||null}}return(a=new ot(a,i))._enter=u,a._exit=h,a},enter:function(){return new ot(this._enter||this._groups.map(c),this._parents)},exit:function(){return new ot(this._exit||this._groups.map(c),this._parents)},join:function(t,e,n){var r=this.enter(),i=this,o=this.exit();return"function"==typeof t?(r=t(r))&&(r=r.selection()):r=r.append(t+""),null!=e&&(i=e(i))&&(i=i.selection()),null==n?o.remove():n(o),r&&i?r.merge(i).order():i},merge:function(t){for(var e=t.selection?t.selection():t,n=this._groups,r=e._groups,i=n.length,o=r.length,s=Math.min(i,o),a=new Array(i),u=0;u<s;++u)for(var h,c=n[u],l=r[u],f=c.length,d=a[u]=new Array(f),p=0;p<f;++p)(h=c[p]||l[p])&&(d[p]=h);for(;u<i;++u)a[u]=n[u];return new ot(a,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r,i=t[e],o=i.length-1,s=i[o];--o>=0;)(r=i[o])&&(s&&4^r.compareDocumentPosition(s)&&s.parentNode.insertBefore(r,s),s=r);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=v);for(var n=this._groups,r=n.length,i=new Array(r),o=0;o<r;++o){for(var s,a=n[o],u=a.length,h=i[o]=new Array(u),c=0;c<u;++c)(s=a[c])&&(h[c]=s);h.sort(e)}return new ot(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,o=r.length;i<o;++i){var s=r[i];if(s)return s}return null},size:function(){let t=0;for(const e of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var i,o=e[n],s=0,a=o.length;s<a;++s)(i=o[s])&&t.call(i,i.__data__,s,o);return this},attr:function(t,e){var n=(0,y.Z)(t);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((null==e?n.local?_:m:"function"==typeof e?n.local?E:x:n.local?b:w)(n,e))},style:k.Z,property:function(t,e){return arguments.length>1?this.each((null==e?N:"function"==typeof e?M:O)(t,e)):this.node()[t]},classed:function(t,e){var n=P(t+"");if(arguments.length<2){for(var r=T(this.node()),i=-1,o=n.length;++i<o;)if(!r.contains(n[i]))return!1;return!0}return this.each(("function"==typeof e?A:e?C:$)(n,e))},text:function(t){return arguments.length?this.each(null==t?z:("function"==typeof t?Z:L)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?R:("function"==typeof t?V:D)(t)):this.node().innerHTML},raise:function(){return this.each(q)},lower:function(){return this.each(Y)},append:function(t){var e="function"==typeof t?t:B(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function(t,e){var n="function"==typeof t?t:B(t),i=null==e?H:"function"==typeof e?e:(0,r.Z)(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),i.apply(this,arguments)||null)}))},remove:function(){return this.each(U)},clone:function(t){return this.select(t?K:W)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,n){var r,i,o=function(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}(t+""),s=o.length;if(!(arguments.length<2)){for(a=e?J:Q,r=0;r<s;++r)this.each(a(o[r],e,n));return this}var a=this.node().__on;if(a)for(var u,h=0,c=a.length;h<c;++h)for(r=0,u=a[h];r<s;++r)if((i=o[r]).type===u.type&&i.name===u.name)return u.value},dispatch:function(t,e){return this.each(("function"==typeof e?rt:nt)(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r,i=t[e],o=0,s=i.length;o<s;++o)(r=i[o])&&(yield r)}};const at=st},2755:(t,e,n)=>{"use strict";n.d(e,{S:()=>u,Z:()=>a});var r=n(6707);function i(t){return function(){this.style.removeProperty(t)}}function o(t,e,n){return function(){this.style.setProperty(t,e,n)}}function s(t,e,n){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function a(t,e,n){return arguments.length>1?this.each((null==e?i:"function"==typeof e?s:o)(t,e,null==n?"":n)):u(this.node(),t)}function u(t,e){return t.style.getPropertyValue(e)||(0,r.Z)(t).getComputedStyle(t,null).getPropertyValue(e)}},8916:(t,e,n)=>{"use strict";function r(){}function i(t){return null==t?r:function(){return this.querySelector(t)}}n.d(e,{Z:()=>i})},6590:(t,e,n)=>{"use strict";function r(){return[]}function i(t){return null==t?r:function(){return this.querySelectorAll(t)}}n.d(e,{Z:()=>i})},6707:(t,e,n)=>{"use strict";function r(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}n.d(e,{Z:()=>r})},3698:(t,e,n)=>{"use strict";function r(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function i(t){this._context=t}function o(t){return new i(t)}n.d(e,{ZP:()=>o}),i.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:r(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:r(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}}},1479:(t,e,n)=>{"use strict";n.d(e,{BW:()=>o,sj:()=>i});class r{constructor(t,e){this._context=t,this._x=e}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,e,t,e):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+e)/2,t,this._y0,t,e)}this._x0=t,this._y0=e}}function i(t){return new r(t,!0)}function o(t){return new r(t,!1)}},8282:(t,e,n)=>{"use strict";function r(t){this._context=t}function i(t){return new r(t)}n.d(e,{Z:()=>i}),r.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}}},6481:(t,e,n)=>{"use strict";function r(t){return t<0?-1:1}function i(t,e,n){var i=t._x1-t._x0,o=e-t._x1,s=(t._y1-t._y0)/(i||o<0&&-0),a=(n-t._y1)/(o||i<0&&-0),u=(s*o+a*i)/(i+o);return(r(s)+r(a))*Math.min(Math.abs(s),Math.abs(a),.5*Math.abs(u))||0}function o(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function s(t,e,n){var r=t._x0,i=t._y0,o=t._x1,s=t._y1,a=(o-r)/3;t._context.bezierCurveTo(r+a,i+a*e,o-a,s-a*n,o,s)}function a(t){this._context=t}function u(t){this._context=new h(t)}function h(t){this._context=t}function c(t){return new a(t)}function l(t){return new u(t)}n.d(e,{Z:()=>c,s:()=>l}),a.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:s(this,this._t0,o(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(e=+e,(t=+t)!==this._x1||e!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,s(this,o(this,n=i(this,t,e)),n);break;default:s(this,this._t0,n=i(this,t,e))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}},(u.prototype=Object.create(a.prototype)).point=function(t,e){a.prototype.point.call(this,e,t)},h.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,r,i,o){this._context.bezierCurveTo(e,t,r,n,o,i)}}},9389:(t,e,n)=>{"use strict";function r(t){this._context=t}function i(t){var e,n,r=t.length-1,i=new Array(r),o=new Array(r),s=new Array(r);for(i[0]=0,o[0]=2,s[0]=t[0]+2*t[1],e=1;e<r-1;++e)i[e]=1,o[e]=4,s[e]=4*t[e]+2*t[e+1];for(i[r-1]=2,o[r-1]=7,s[r-1]=8*t[r-1]+t[r],e=1;e<r;++e)n=i[e]/o[e-1],o[e]-=n,s[e]-=n*s[e-1];for(i[r-1]=s[r-1]/o[r-1],e=r-2;e>=0;--e)i[e]=(s[e]-i[e+1])/o[e];for(o[r-1]=(t[r]+i[r-1])/2,e=0;e<r-1;++e)o[e]=2*t[e+1]-i[e+1];return[i,o]}function o(t){return new r(t)}n.d(e,{Z:()=>o}),r.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),2===n)this._context.lineTo(t[1],e[1]);else for(var r=i(t),o=i(e),s=0,a=1;a<n;++s,++a)this._context.bezierCurveTo(r[0][s],o[0][s],r[1][s],o[1][s],t[a],e[a]);(this._line||0!==this._line&&1===n)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}}},5004:(t,e,n)=>{"use strict";function r(t){return function(){return t}}n.d(e,{Z:()=>d}),Array.prototype.slice;var i=n(8282);const o=Math.PI,s=2*o,a=1e-6,u=s-a;function h(t){this._+=t[0];for(let e=1,n=t.length;e<n;++e)this._+=arguments[e]+t[e]}class c{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==t?h:function(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return h;const n=10**e;return function(t){this._+=t[0];for(let e=1,r=t.length;e<r;++e)this._+=Math.round(arguments[e]*n)/n+t[e]}}(t)}moveTo(t,e){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,e){this._append`L${this._x1=+t},${this._y1=+e}`}quadraticCurveTo(t,e,n,r){this._append`Q${+t},${+e},${this._x1=+n},${this._y1=+r}`}bezierCurveTo(t,e,n,r,i,o){this._append`C${+t},${+e},${+n},${+r},${this._x1=+i},${this._y1=+o}`}arcTo(t,e,n,r,i){if(t=+t,e=+e,n=+n,r=+r,(i=+i)<0)throw new Error(`negative radius: ${i}`);let s=this._x1,u=this._y1,h=n-t,c=r-e,l=s-t,f=u-e,d=l*l+f*f;if(null===this._x1)this._append`M${this._x1=t},${this._y1=e}`;else if(d>a)if(Math.abs(f*h-c*l)>a&&i){let p=n-s,g=r-u,v=h*h+c*c,y=p*p+g*g,m=Math.sqrt(v),_=Math.sqrt(d),w=i*Math.tan((o-Math.acos((v+d-y)/(2*m*_)))/2),b=w/_,x=w/m;Math.abs(b-1)>a&&this._append`L${t+b*l},${e+b*f}`,this._append`A${i},${i},0,0,${+(f*p>l*g)},${this._x1=t+x*h},${this._y1=e+x*c}`}else this._append`L${this._x1=t},${this._y1=e}`}arc(t,e,n,r,i,h){if(t=+t,e=+e,h=!!h,(n=+n)<0)throw new Error(`negative radius: ${n}`);let c=n*Math.cos(r),l=n*Math.sin(r),f=t+c,d=e+l,p=1^h,g=h?r-i:i-r;null===this._x1?this._append`M${f},${d}`:(Math.abs(this._x1-f)>a||Math.abs(this._y1-d)>a)&&this._append`L${f},${d}`,n&&(g<0&&(g=g%s+s),g>u?this._append`A${n},${n},0,1,${p},${t-c},${e-l}A${n},${n},0,1,${p},${this._x1=f},${this._y1=d}`:g>a&&this._append`A${n},${n},0,${+(g>=o)},${p},${this._x1=t+n*Math.cos(i)},${this._y1=e+n*Math.sin(i)}`)}rect(t,e,n,r){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}}function l(t){return t[0]}function f(t){return t[1]}function d(t,e){var n=r(!0),o=null,s=i.Z,a=null,u=function(t){let e=3;return t.digits=function(n){if(!arguments.length)return e;if(null==n)e=null;else{const t=Math.floor(n);if(!(t>=0))throw new RangeError(`invalid digits: ${n}`);e=t}return t},()=>new c(e)}(h);function h(r){var i,h,c,l=(r=function(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}(r)).length,f=!1;for(null==o&&(a=s(c=u())),i=0;i<=l;++i)!(i<l&&n(h=r[i],i,r))===f&&((f=!f)?a.lineStart():a.lineEnd()),f&&a.point(+t(h,i,r),+e(h,i,r));if(c)return a=null,c+""||null}return t="function"==typeof t?t:void 0===t?l:r(t),e="function"==typeof e?e:void 0===e?f:r(e),h.x=function(e){return arguments.length?(t="function"==typeof e?e:r(+e),h):t},h.y=function(t){return arguments.length?(e="function"==typeof t?t:r(+t),h):e},h.defined=function(t){return arguments.length?(n="function"==typeof t?t:r(!!t),h):n},h.curve=function(t){return arguments.length?(s=t,null!=o&&(a=s(o)),h):s},h.context=function(t){return arguments.length?(null==t?o=a=null:a=s(o=t),h):o},h}c.prototype},7397:(t,e,n)=>{"use strict";n.d(e,{sP:()=>Se});var r={value:()=>{}};function i(){for(var t,e=0,n=arguments.length,r={};e<n;++e){if(!(t=arguments[e]+"")||t in r||/[\s.]/.test(t))throw new Error("illegal type: "+t);r[t]=[]}return new o(r)}function o(t){this._=t}function s(t,e){for(var n,r=0,i=t.length;r<i;++r)if((n=t[r]).name===e)return n.value}function a(t,e,n){for(var i=0,o=t.length;i<o;++i)if(t[i].name===e){t[i]=r,t=t.slice(0,i).concat(t.slice(i+1));break}return null!=n&&t.push({name:e,value:n}),t}o.prototype=i.prototype={constructor:o,on:function(t,e){var n,r,i=this._,o=(r=i,(t+"").trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");if(n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),t&&!r.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))),u=-1,h=o.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++u<h;)if(n=(t=o[u]).type)i[n]=a(i[n],t.name,e);else if(null==e)for(n in i)i[n]=a(i[n],t.name,null);return this}for(;++u<h;)if((n=(t=o[u]).type)&&(n=s(i[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new o(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,r,i=new Array(n),o=0;o<n;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,n=(r=this._[t]).length;o<n;++o)r[o].value.apply(e,i)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(e,n)}};const u=i;var h=n(1105);const c={capture:!0,passive:!1};function l(t){t.preventDefault(),t.stopImmediatePropagation()}function f(t){return((t=Math.exp(t))+1/t)/2}const d=function t(e,n,r){function i(t,i){var o,s,a=t[0],u=t[1],h=t[2],c=i[0],l=i[1],d=i[2],p=c-a,g=l-u,v=p*p+g*g;if(v<1e-12)s=Math.log(d/h)/e,o=function(t){return[a+t*p,u+t*g,h*Math.exp(e*t*s)]};else{var y=Math.sqrt(v),m=(d*d-h*h+r*v)/(2*h*n*y),_=(d*d-h*h-r*v)/(2*d*n*y),w=Math.log(Math.sqrt(m*m+1)-m),b=Math.log(Math.sqrt(_*_+1)-_);s=(b-w)/e,o=function(t){var r,i=t*s,o=f(w),c=h/(n*y)*(o*(r=e*i+w,((r=Math.exp(2*r))-1)/(r+1))-function(t){return((t=Math.exp(t))-1/t)/2}(w));return[a+c*p,u+c*g,h*o/f(e*i+w)]}}return o.duration=1e3*s*e/Math.SQRT2,o}return i.rho=function(e){var n=Math.max(.001,+e),r=n*n;return t(n,r,r*r)},i}(Math.SQRT2,2,4);function p(t,e){if(t=function(t){let e;for(;e=t.sourceEvent;)t=e;return t}(t),void 0===e&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,[(r=r.matrixTransform(e.getScreenCTM().inverse())).x,r.y]}if(e.getBoundingClientRect){var i=e.getBoundingClientRect();return[t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop]}}return[t.pageX,t.pageY]}var g,v,y=n(2614),m=0,_=0,w=0,b=1e3,x=0,E=0,k=0,N="object"==typeof performance&&performance.now?performance:Date,O="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function M(){return E||(O(P),E=N.now()+k)}function P(){E=0}function T(){this._call=this._time=this._next=null}function S(t,e,n){var r=new T;return r.restart(t,e,n),r}function I(){E=(x=N.now())+k,m=_=0;try{!function(){M(),++m;for(var t,e=g;e;)(t=E-e._time)>=0&&e._call.call(void 0,t),e=e._next;--m}()}finally{m=0,function(){for(var t,e,n=g,r=1/0;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:g=e);v=t,C(r)}(),E=0}}function j(){var t=N.now(),e=t-x;e>b&&(k-=e,x=t)}function C(t){m||(_&&(_=clearTimeout(_)),t-E>24?(t<1/0&&(_=setTimeout(I,t-N.now()-k)),w&&(w=clearInterval(w))):(w||(x=N.now(),w=setInterval(j,b)),m=1,O(I)))}function $(t,e,n){var r=new T;return e=null==e?0:+e,r.restart((n=>{r.stop(),t(n+e)}),e,n),r}T.prototype=S.prototype={constructor:T,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?M():+n)+(null==e?0:+e),this._next||v===this||(v?v._next=this:g=this,v=this),this._call=t,this._time=n,C()},stop:function(){this._call&&(this._call=null,this._time=1/0,C())}};var A=u("start","end","cancel","interrupt"),z=[],L=0,Z=2,R=3,D=5,V=6;function q(t,e,n,r,i,o){var s=t.__transition;if(s){if(n in s)return}else t.__transition={};!function(t,e,n){var r,i=t.__transition;function o(u){var h,c,l,f;if(1!==n.state)return a();for(h in i)if((f=i[h]).name===n.name){if(f.state===R)return $(o);4===f.state?(f.state=V,f.timer.stop(),f.on.call("interrupt",t,t.__data__,f.index,f.group),delete i[h]):+h<e&&(f.state=V,f.timer.stop(),f.on.call("cancel",t,t.__data__,f.index,f.group),delete i[h])}if($((function(){n.state===R&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(u))})),n.state=Z,n.on.call("start",t,t.__data__,n.index,n.group),n.state===Z){for(n.state=R,r=new Array(l=n.tween.length),h=0,c=-1;h<l;++h)(f=n.tween[h].value.call(t,t.__data__,n.index,n.group))&&(r[++c]=f);r.length=c+1}}function s(e){for(var i=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(a),n.state=D,1),o=-1,s=r.length;++o<s;)r[o].call(t,i);n.state===D&&(n.on.call("end",t,t.__data__,n.index,n.group),a())}function a(){for(var r in n.state=V,n.timer.stop(),delete i[e],i)return;delete t.__transition}i[e]=n,n.timer=S((function(t){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=t&&o(t-n.delay)}),0,n.time)}(t,n,{name:e,index:r,group:i,on:A,tween:z,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:L})}function Y(t,e){var n=F(t,e);if(n.state>L)throw new Error("too late; already scheduled");return n}function G(t,e){var n=F(t,e);if(n.state>R)throw new Error("too late; already running");return n}function F(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function X(t,e){var n,r,i,o=t.__transition,s=!0;if(o){for(i in e=null==e?null:e+"",o)(n=o[i]).name===e?(r=n.state>Z&&n.state<D,n.state=V,n.timer.stop(),n.on.call(r?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete o[i]):s=!1;s&&delete t.__transition}}function B(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}var H,U=180/Math.PI,W={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function K(t,e,n,r,i,o){var s,a,u;return(s=Math.sqrt(t*t+e*e))&&(t/=s,e/=s),(u=t*n+e*r)&&(n-=t*u,r-=e*u),(a=Math.sqrt(n*n+r*r))&&(n/=a,r/=a,u/=a),t*r<e*n&&(t=-t,e=-e,u=-u,s=-s),{translateX:i,translateY:o,rotate:Math.atan2(e,t)*U,skewX:Math.atan(u)*U,scaleX:s,scaleY:a}}function Q(t,e,n,r){function i(t){return t.length?t.pop()+" ":""}return function(o,s){var a=[],u=[];return o=t(o),s=t(s),function(t,r,i,o,s,a){if(t!==i||r!==o){var u=s.push("translate(",null,e,null,n);a.push({i:u-4,x:B(t,i)},{i:u-2,x:B(r,o)})}else(i||o)&&s.push("translate("+i+e+o+n)}(o.translateX,o.translateY,s.translateX,s.translateY,a,u),function(t,e,n,o){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),o.push({i:n.push(i(n)+"rotate(",null,r)-2,x:B(t,e)})):e&&n.push(i(n)+"rotate("+e+r)}(o.rotate,s.rotate,a,u),function(t,e,n,o){t!==e?o.push({i:n.push(i(n)+"skewX(",null,r)-2,x:B(t,e)}):e&&n.push(i(n)+"skewX("+e+r)}(o.skewX,s.skewX,a,u),function(t,e,n,r,o,s){if(t!==n||e!==r){var a=o.push(i(o)+"scale(",null,",",null,")");s.push({i:a-4,x:B(t,n)},{i:a-2,x:B(e,r)})}else 1===n&&1===r||o.push(i(o)+"scale("+n+","+r+")")}(o.scaleX,o.scaleY,s.scaleX,s.scaleY,a,u),o=s=null,function(t){for(var e,n=-1,r=u.length;++n<r;)a[(e=u[n]).i]=e.x(t);return a.join("")}}}var J=Q((function(t){const e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?W:K(e.a,e.b,e.c,e.d,e.e,e.f)}),"px, ","px)","deg)"),tt=Q((function(t){return null==t?W:(H||(H=document.createElementNS("http://www.w3.org/2000/svg","g")),H.setAttribute("transform",t),(t=H.transform.baseVal.consolidate())?K((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):W)}),", ",")",")"),et=n(6555);function nt(t,e){var n,r;return function(){var i=G(this,t),o=i.tween;if(o!==n)for(var s=0,a=(r=n=o).length;s<a;++s)if(r[s].name===e){(r=r.slice()).splice(s,1);break}i.tween=r}}function rt(t,e,n){var r,i;if("function"!=typeof n)throw new Error;return function(){var o=G(this,t),s=o.tween;if(s!==r){i=(r=s).slice();for(var a={name:e,value:n},u=0,h=i.length;u<h;++u)if(i[u].name===e){i[u]=a;break}u===h&&i.push(a)}o.tween=i}}function it(t,e,n){var r=t._id;return t.each((function(){var t=G(this,r);(t.value||(t.value={}))[e]=n.apply(this,arguments)})),function(t){return F(t,r).value[e]}}function ot(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function st(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function at(){}var ut=.7,ht=1/ut,ct="\\s*([+-]?\\d+)\\s*",lt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ft="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",dt=/^#([0-9a-f]{3,8})$/,pt=new RegExp(`^rgb\\(${ct},${ct},${ct}\\)$`),gt=new RegExp(`^rgb\\(${ft},${ft},${ft}\\)$`),vt=new RegExp(`^rgba\\(${ct},${ct},${ct},${lt}\\)$`),yt=new RegExp(`^rgba\\(${ft},${ft},${ft},${lt}\\)$`),mt=new RegExp(`^hsl\\(${lt},${ft},${ft}\\)$`),_t=new RegExp(`^hsla\\(${lt},${ft},${ft},${lt}\\)$`),wt={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function bt(){return this.rgb().formatHex()}function xt(){return this.rgb().formatRgb()}function Et(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=dt.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?kt(e):3===n?new Mt(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?Nt(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?Nt(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=pt.exec(t))?new Mt(e[1],e[2],e[3],1):(e=gt.exec(t))?new Mt(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=vt.exec(t))?Nt(e[1],e[2],e[3],e[4]):(e=yt.exec(t))?Nt(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=mt.exec(t))?Ct(e[1],e[2]/100,e[3]/100,1):(e=_t.exec(t))?Ct(e[1],e[2]/100,e[3]/100,e[4]):wt.hasOwnProperty(t)?kt(wt[t]):"transparent"===t?new Mt(NaN,NaN,NaN,0):null}function kt(t){return new Mt(t>>16&255,t>>8&255,255&t,1)}function Nt(t,e,n,r){return r<=0&&(t=e=n=NaN),new Mt(t,e,n,r)}function Ot(t,e,n,r){return 1===arguments.length?((i=t)instanceof at||(i=Et(i)),i?new Mt((i=i.rgb()).r,i.g,i.b,i.opacity):new Mt):new Mt(t,e,n,null==r?1:r);var i}function Mt(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function Pt(){return`#${jt(this.r)}${jt(this.g)}${jt(this.b)}`}function Tt(){const t=St(this.opacity);return`${1===t?"rgb(":"rgba("}${It(this.r)}, ${It(this.g)}, ${It(this.b)}${1===t?")":`, ${t})`}`}function St(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function It(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function jt(t){return((t=It(t))<16?"0":"")+t.toString(16)}function Ct(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new At(t,e,n,r)}function $t(t){if(t instanceof At)return new At(t.h,t.s,t.l,t.opacity);if(t instanceof at||(t=Et(t)),!t)return new At;if(t instanceof At)return t;var e=(t=t.rgb()).r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),o=Math.max(e,n,r),s=NaN,a=o-i,u=(o+i)/2;return a?(s=e===o?(n-r)/a+6*(n<r):n===o?(r-e)/a+2:(e-n)/a+4,a/=u<.5?o+i:2-o-i,s*=60):a=u>0&&u<1?0:s,new At(s,a,u,t.opacity)}function At(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function zt(t){return(t=(t||0)%360)<0?t+360:t}function Lt(t){return Math.max(0,Math.min(1,t||0))}function Zt(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}function Rt(t,e,n,r,i){var o=t*t,s=o*t;return((1-3*t+3*o-s)*e+(4-6*o+3*s)*n+(1+3*t+3*o-3*s)*r+s*i)/6}ot(at,Et,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:bt,formatHex:bt,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return $t(this).formatHsl()},formatRgb:xt,toString:xt}),ot(Mt,Ot,st(at,{brighter(t){return t=null==t?ht:Math.pow(ht,t),new Mt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?ut:Math.pow(ut,t),new Mt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Mt(It(this.r),It(this.g),It(this.b),St(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Pt,formatHex:Pt,formatHex8:function(){return`#${jt(this.r)}${jt(this.g)}${jt(this.b)}${jt(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:Tt,toString:Tt})),ot(At,(function(t,e,n,r){return 1===arguments.length?$t(t):new At(t,e,n,null==r?1:r)}),st(at,{brighter(t){return t=null==t?ht:Math.pow(ht,t),new At(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?ut:Math.pow(ut,t),new At(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new Mt(Zt(t>=240?t-240:t+120,i,r),Zt(t,i,r),Zt(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new At(zt(this.h),Lt(this.s),Lt(this.l),St(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=St(this.opacity);return`${1===t?"hsl(":"hsla("}${zt(this.h)}, ${100*Lt(this.s)}%, ${100*Lt(this.l)}%${1===t?")":`, ${t})`}`}}));const Dt=t=>()=>t;function Vt(t,e){var n=e-t;return n?function(t,e){return function(n){return t+n*e}}(t,n):Dt(isNaN(t)?e:t)}const qt=function t(e){var n=function(t){return 1==(t=+t)?Vt:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}(e,n,t):Dt(isNaN(e)?n:e)}}(e);function r(t,e){var r=n((t=Ot(t)).r,(e=Ot(e)).r),i=n(t.g,e.g),o=n(t.b,e.b),s=Vt(t.opacity,e.opacity);return function(e){return t.r=r(e),t.g=i(e),t.b=o(e),t.opacity=s(e),t+""}}return r.gamma=t,r}(1);function Yt(t){return function(e){var n,r,i=e.length,o=new Array(i),s=new Array(i),a=new Array(i);for(n=0;n<i;++n)r=Ot(e[n]),o[n]=r.r||0,s[n]=r.g||0,a[n]=r.b||0;return o=t(o),s=t(s),a=t(a),r.opacity=1,function(t){return r.r=o(t),r.g=s(t),r.b=a(t),r+""}}}Yt((function(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],o=t[r+1],s=r>0?t[r-1]:2*i-o,a=r<e-1?t[r+2]:2*o-i;return Rt((n-r/e)*e,s,i,o,a)}})),Yt((function(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),i=t[(r+e-1)%e],o=t[r%e],s=t[(r+1)%e],a=t[(r+2)%e];return Rt((n-r/e)*e,i,o,s,a)}}));var Gt=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Ft=new RegExp(Gt.source,"g");function Xt(t,e){var n,r,i,o=Gt.lastIndex=Ft.lastIndex=0,s=-1,a=[],u=[];for(t+="",e+="";(n=Gt.exec(t))&&(r=Ft.exec(e));)(i=r.index)>o&&(i=e.slice(o,i),a[s]?a[s]+=i:a[++s]=i),(n=n[0])===(r=r[0])?a[s]?a[s]+=r:a[++s]=r:(a[++s]=null,u.push({i:s,x:B(n,r)})),o=Ft.lastIndex;return o<e.length&&(i=e.slice(o),a[s]?a[s]+=i:a[++s]=i),a.length<2?u[0]?function(t){return function(e){return t(e)+""}}(u[0].x):function(t){return function(){return t}}(e):(e=u.length,function(t){for(var n,r=0;r<e;++r)a[(n=u[r]).i]=n.x(t);return a.join("")})}function Bt(t,e){var n;return("number"==typeof e?B:e instanceof Et?qt:(n=Et(e))?(e=n,qt):Xt)(t,e)}function Ht(t){return function(){this.removeAttribute(t)}}function Ut(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Wt(t,e,n){var r,i,o=n+"";return function(){var s=this.getAttribute(t);return s===o?null:s===r?i:i=e(r=s,n)}}function Kt(t,e,n){var r,i,o=n+"";return function(){var s=this.getAttributeNS(t.space,t.local);return s===o?null:s===r?i:i=e(r=s,n)}}function Qt(t,e,n){var r,i,o;return function(){var s,a,u=n(this);if(null!=u)return(s=this.getAttribute(t))===(a=u+"")?null:s===r&&a===i?o:(i=a,o=e(r=s,u));this.removeAttribute(t)}}function Jt(t,e,n){var r,i,o;return function(){var s,a,u=n(this);if(null!=u)return(s=this.getAttributeNS(t.space,t.local))===(a=u+"")?null:s===r&&a===i?o:(i=a,o=e(r=s,u));this.removeAttributeNS(t.space,t.local)}}function te(t,e){var n,r;function i(){var i=e.apply(this,arguments);return i!==r&&(n=(r=i)&&function(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}(t,i)),n}return i._value=e,i}function ee(t,e){var n,r;function i(){var i=e.apply(this,arguments);return i!==r&&(n=(r=i)&&function(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}(t,i)),n}return i._value=e,i}function ne(t,e){return function(){Y(this,t).delay=+e.apply(this,arguments)}}function re(t,e){return e=+e,function(){Y(this,t).delay=e}}function ie(t,e){return function(){G(this,t).duration=+e.apply(this,arguments)}}function oe(t,e){return e=+e,function(){G(this,t).duration=e}}var se=n(4477),ae=n(8916),ue=n(6590),he=y.ZP.prototype.constructor,ce=n(2755);function le(t){return function(){this.style.removeProperty(t)}}var fe=0;function de(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function pe(){return++fe}var ge=y.ZP.prototype;de.prototype=function(t){return(0,y.ZP)().transition(t)}.prototype={constructor:de,select:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=(0,ae.Z)(t));for(var r=this._groups,i=r.length,o=new Array(i),s=0;s<i;++s)for(var a,u,h=r[s],c=h.length,l=o[s]=new Array(c),f=0;f<c;++f)(a=h[f])&&(u=t.call(a,a.__data__,f,h))&&("__data__"in a&&(u.__data__=a.__data__),l[f]=u,q(l[f],e,n,f,l,F(a,n)));return new de(o,this._parents,e,n)},selectAll:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=(0,ue.Z)(t));for(var r=this._groups,i=r.length,o=[],s=[],a=0;a<i;++a)for(var u,h=r[a],c=h.length,l=0;l<c;++l)if(u=h[l]){for(var f,d=t.call(u,u.__data__,l,h),p=F(u,n),g=0,v=d.length;g<v;++g)(f=d[g])&&q(f,e,n,g,d,p);o.push(d),s.push(u)}return new de(o,s,e,n)},selectChild:ge.selectChild,selectChildren:ge.selectChildren,filter:function(t){"function"!=typeof t&&(t=(0,se.Z)(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var o,s=e[i],a=s.length,u=r[i]=[],h=0;h<a;++h)(o=s[h])&&t.call(o,o.__data__,h,s)&&u.push(o);return new de(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,r=e.length,i=n.length,o=Math.min(r,i),s=new Array(r),a=0;a<o;++a)for(var u,h=e[a],c=n[a],l=h.length,f=s[a]=new Array(l),d=0;d<l;++d)(u=h[d]||c[d])&&(f[d]=u);for(;a<r;++a)s[a]=e[a];return new de(s,this._parents,this._name,this._id)},selection:function(){return new he(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,n=pe(),r=this._groups,i=r.length,o=0;o<i;++o)for(var s,a=r[o],u=a.length,h=0;h<u;++h)if(s=a[h]){var c=F(s,e);q(s,t,n,h,a,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new de(r,this._parents,t,n)},call:ge.call,nodes:ge.nodes,node:ge.node,size:ge.size,empty:ge.empty,each:ge.each,on:function(t,e){var n=this._id;return arguments.length<2?F(this.node(),n).on.on(t):this.each(function(t,e,n){var r,i,o=function(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))}(e)?Y:G;return function(){var s=o(this,t),a=s.on;a!==r&&(i=(r=a).copy()).on(e,n),s.on=i}}(n,t,e))},attr:function(t,e){var n=(0,et.Z)(t),r="transform"===n?tt:Bt;return this.attrTween(t,"function"==typeof e?(n.local?Jt:Qt)(n,r,it(this,"attr."+t,e)):null==e?(n.local?Ut:Ht)(n):(n.local?Kt:Wt)(n,r,e))},attrTween:function(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;var r=(0,et.Z)(t);return this.tween(n,(r.local?te:ee)(r,e))},style:function(t,e,n){var r="transform"==(t+="")?J:Bt;return null==e?this.styleTween(t,function(t,e){var n,r,i;return function(){var o=(0,ce.S)(this,t),s=(this.style.removeProperty(t),(0,ce.S)(this,t));return o===s?null:o===n&&s===r?i:i=e(n=o,r=s)}}(t,r)).on("end.style."+t,le(t)):"function"==typeof e?this.styleTween(t,function(t,e,n){var r,i,o;return function(){var s=(0,ce.S)(this,t),a=n(this),u=a+"";return null==a&&(this.style.removeProperty(t),u=a=(0,ce.S)(this,t)),s===u?null:s===r&&u===i?o:(i=u,o=e(r=s,a))}}(t,r,it(this,"style."+t,e))).each(function(t,e){var n,r,i,o,s="style."+e,a="end."+s;return function(){var u=G(this,t),h=u.on,c=null==u.value[s]?o||(o=le(e)):void 0;h===n&&i===c||(r=(n=h).copy()).on(a,i=c),u.on=r}}(this._id,t)):this.styleTween(t,function(t,e,n){var r,i,o=n+"";return function(){var s=(0,ce.S)(this,t);return s===o?null:s===r?i:i=e(r=s,n)}}(t,r,e),n).on("end.style."+t,null)},styleTween:function(t,e,n){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==e)return this.tween(r,null);if("function"!=typeof e)throw new Error;return this.tween(r,function(t,e,n){var r,i;function o(){var o=e.apply(this,arguments);return o!==i&&(r=(i=o)&&function(t,e,n){return function(r){this.style.setProperty(t,e.call(this,r),n)}}(t,o,n)),r}return o._value=e,o}(t,e,null==n?"":n))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var e=t(this);this.textContent=null==e?"":e}}(it(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;return this.tween(e,function(t){var e,n;function r(){var r=t.apply(this,arguments);return r!==n&&(e=(n=r)&&function(t){return function(e){this.textContent=t.call(this,e)}}(r)),e}return r._value=t,r}(t))},remove:function(){return this.on("end.remove",function(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}(this._id))},tween:function(t,e){var n=this._id;if(t+="",arguments.length<2){for(var r,i=F(this.node(),n).tween,o=0,s=i.length;o<s;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==e?nt:rt)(n,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?ne:re)(e,t)):F(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?ie:oe)(e,t)):F(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(function(t,e){if("function"!=typeof e)throw new Error;return function(){G(this,t).ease=e}}(e,t)):F(this.node(),e).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,e){return function(){var n=e.apply(this,arguments);if("function"!=typeof n)throw new Error;G(this,t).ease=n}}(this._id,t))},end:function(){var t,e,n=this,r=n._id,i=n.size();return new Promise((function(o,s){var a={value:s},u={value:function(){0==--i&&o()}};n.each((function(){var n=G(this,r),i=n.on;i!==t&&((e=(t=i).copy())._.cancel.push(a),e._.interrupt.push(a),e._.end.push(u)),n.on=e})),0===i&&o()}))},[Symbol.iterator]:ge[Symbol.iterator]};var ve={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function ye(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}y.ZP.prototype.interrupt=function(t){return this.each((function(){X(this,t)}))},y.ZP.prototype.transition=function(t){var e,n;t instanceof de?(e=t._id,t=t._name):(e=pe(),(n=ve).time=M(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var s,a=r[o],u=a.length,h=0;h<u;++h)(s=a[h])&&q(s,t,e,h,a,n||ye(s,e));return new de(r,this._parents,t,e)};const me=t=>()=>t;function _e(t,{sourceEvent:e,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function we(t,e,n){this.k=t,this.x=e,this.y=n}we.prototype={constructor:we,scale:function(t){return 1===t?this:new we(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new we(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var be=new we(1,0,0);function xe(t){t.stopImmediatePropagation()}function Ee(t){t.preventDefault(),t.stopImmediatePropagation()}function ke(t){return!(t.ctrlKey&&"wheel"!==t.type||t.button)}function Ne(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function Oe(){return this.__zoom||be}function Me(t){return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function Pe(){return navigator.maxTouchPoints||"ontouchstart"in this}function Te(t,e,n){var r=t.invertX(e[0][0])-n[0][0],i=t.invertX(e[1][0])-n[1][0],o=t.invertY(e[0][1])-n[0][1],s=t.invertY(e[1][1])-n[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),s>o?(o+s)/2:Math.min(0,o)||Math.max(0,s))}function Se(){var t,e,n,r=ke,i=Ne,o=Te,s=Me,a=Pe,f=[0,1/0],g=[[-1/0,-1/0],[1/0,1/0]],v=250,y=d,m=u("start","zoom","end"),_=500,w=150,b=0,x=10;function E(t){t.property("__zoom",Oe).on("wheel.zoom",S,{passive:!1}).on("mousedown.zoom",I).on("dblclick.zoom",j).filter(a).on("touchstart.zoom",C).on("touchmove.zoom",$).on("touchend.zoom touchcancel.zoom",A).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function k(t,e){return(e=Math.max(f[0],Math.min(f[1],e)))===t.k?t:new we(e,t.x,t.y)}function N(t,e,n){var r=e[0]-n[0]*t.k,i=e[1]-n[1]*t.k;return r===t.x&&i===t.y?t:new we(t.k,r,i)}function O(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function M(t,e,n,r){t.on("start.zoom",(function(){P(this,arguments).event(r).start()})).on("interrupt.zoom end.zoom",(function(){P(this,arguments).event(r).end()})).tween("zoom",(function(){var t=this,o=arguments,s=P(t,o).event(r),a=i.apply(t,o),u=null==n?O(a):"function"==typeof n?n.apply(t,o):n,h=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),c=t.__zoom,l="function"==typeof e?e.apply(t,o):e,f=y(c.invert(u).concat(h/c.k),l.invert(u).concat(h/l.k));return function(t){if(1===t)t=l;else{var e=f(t),n=h/e[2];t=new we(n,u[0]-e[0]*n,u[1]-e[1]*n)}s.zoom(null,t)}}))}function P(t,e,n){return!n&&t.__zooming||new T(t,e)}function T(t,e){this.that=t,this.args=e,this.active=0,this.sourceEvent=null,this.extent=i.apply(t,e),this.taps=0}function S(t,...e){if(r.apply(this,arguments)){var n=P(this,e).event(t),i=this.__zoom,a=Math.max(f[0],Math.min(f[1],i.k*Math.pow(2,s.apply(this,arguments)))),u=p(t);if(n.wheel)n.mouse[0][0]===u[0]&&n.mouse[0][1]===u[1]||(n.mouse[1]=i.invert(n.mouse[0]=u)),clearTimeout(n.wheel);else{if(i.k===a)return;n.mouse=[u,i.invert(u)],X(this),n.start()}Ee(t),n.wheel=setTimeout((function(){n.wheel=null,n.end()}),w),n.zoom("mouse",o(N(k(i,a),n.mouse[0],n.mouse[1]),n.extent,g))}}function I(t,...e){if(!n&&r.apply(this,arguments)){var i=t.currentTarget,s=P(this,e,!0).event(t),a=(0,h.Z)(t.view).on("mousemove.zoom",(function(t){if(Ee(t),!s.moved){var e=t.clientX-f,n=t.clientY-d;s.moved=e*e+n*n>b}s.event(t).zoom("mouse",o(N(s.that.__zoom,s.mouse[0]=p(t,i),s.mouse[1]),s.extent,g))}),!0).on("mouseup.zoom",(function(t){a.on("mousemove.zoom mouseup.zoom",null),function(t,e){var n=t.document.documentElement,r=(0,h.Z)(t).on("dragstart.drag",null);e&&(r.on("click.drag",l,c),setTimeout((function(){r.on("click.drag",null)}),0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}(t.view,s.moved),Ee(t),s.event(t).end()}),!0),u=p(t,i),f=t.clientX,d=t.clientY;!function(t){var e=t.document.documentElement,n=(0,h.Z)(t).on("dragstart.drag",l,c);"onselectstart"in e?n.on("selectstart.drag",l,c):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}(t.view),xe(t),s.mouse=[u,this.__zoom.invert(u)],X(this),s.start()}}function j(t,...e){if(r.apply(this,arguments)){var n=this.__zoom,s=p(t.changedTouches?t.changedTouches[0]:t,this),a=n.invert(s),u=n.k*(t.shiftKey?.5:2),c=o(N(k(n,u),s,a),i.apply(this,e),g);Ee(t),v>0?(0,h.Z)(this).transition().duration(v).call(M,c,s,t):(0,h.Z)(this).call(E.transform,c,s,t)}}function C(n,...i){if(r.apply(this,arguments)){var o,s,a,u,h=n.touches,c=h.length,l=P(this,i,n.changedTouches.length===c).event(n);for(xe(n),s=0;s<c;++s)u=[u=p(a=h[s],this),this.__zoom.invert(u),a.identifier],l.touch0?l.touch1||l.touch0[2]===u[2]||(l.touch1=u,l.taps=0):(l.touch0=u,o=!0,l.taps=1+!!t);t&&(t=clearTimeout(t)),o&&(l.taps<2&&(e=u[0],t=setTimeout((function(){t=null}),_)),X(this),l.start())}}function $(t,...e){if(this.__zooming){var n,r,i,s,a=P(this,e).event(t),u=t.changedTouches,h=u.length;for(Ee(t),n=0;n<h;++n)i=p(r=u[n],this),a.touch0&&a.touch0[2]===r.identifier?a.touch0[0]=i:a.touch1&&a.touch1[2]===r.identifier&&(a.touch1[0]=i);if(r=a.that.__zoom,a.touch1){var c=a.touch0[0],l=a.touch0[1],f=a.touch1[0],d=a.touch1[1],v=(v=f[0]-c[0])*v+(v=f[1]-c[1])*v,y=(y=d[0]-l[0])*y+(y=d[1]-l[1])*y;r=k(r,Math.sqrt(v/y)),i=[(c[0]+f[0])/2,(c[1]+f[1])/2],s=[(l[0]+d[0])/2,(l[1]+d[1])/2]}else{if(!a.touch0)return;i=a.touch0[0],s=a.touch0[1]}a.zoom("touch",o(N(r,i,s),a.extent,g))}}function A(t,...r){if(this.__zooming){var i,o,s=P(this,r).event(t),a=t.changedTouches,u=a.length;for(xe(t),n&&clearTimeout(n),n=setTimeout((function(){n=null}),_),i=0;i<u;++i)o=a[i],s.touch0&&s.touch0[2]===o.identifier?delete s.touch0:s.touch1&&s.touch1[2]===o.identifier&&delete s.touch1;if(s.touch1&&!s.touch0&&(s.touch0=s.touch1,delete s.touch1),s.touch0)s.touch0[1]=this.__zoom.invert(s.touch0[0]);else if(s.end(),2===s.taps&&(o=p(o,this),Math.hypot(e[0]-o[0],e[1]-o[1])<x)){var c=(0,h.Z)(this).on("dblclick.zoom");c&&c.apply(this,arguments)}}}return E.transform=function(t,e,n,r){var i=t.selection?t.selection():t;i.property("__zoom",Oe),t!==i?M(t,e,n,r):i.interrupt().each((function(){P(this,arguments).event(r).start().zoom(null,"function"==typeof e?e.apply(this,arguments):e).end()}))},E.scaleBy=function(t,e,n,r){E.scaleTo(t,(function(){return this.__zoom.k*("function"==typeof e?e.apply(this,arguments):e)}),n,r)},E.scaleTo=function(t,e,n,r){E.transform(t,(function(){var t=i.apply(this,arguments),r=this.__zoom,s=null==n?O(t):"function"==typeof n?n.apply(this,arguments):n,a=r.invert(s),u="function"==typeof e?e.apply(this,arguments):e;return o(N(k(r,u),s,a),t,g)}),n,r)},E.translateBy=function(t,e,n,r){E.transform(t,(function(){return o(this.__zoom.translate("function"==typeof e?e.apply(this,arguments):e,"function"==typeof n?n.apply(this,arguments):n),i.apply(this,arguments),g)}),null,r)},E.translateTo=function(t,e,n,r,s){E.transform(t,(function(){var t=i.apply(this,arguments),s=this.__zoom,a=null==r?O(t):"function"==typeof r?r.apply(this,arguments):r;return o(be.translate(a[0],a[1]).scale(s.k).translate("function"==typeof e?-e.apply(this,arguments):-e,"function"==typeof n?-n.apply(this,arguments):-n),t,g)}),r,s)},T.prototype={event:function(t){return t&&(this.sourceEvent=t),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(t,e){return this.mouse&&"mouse"!==t&&(this.mouse[1]=e.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=e.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=e.invert(this.touch1[0])),this.that.__zoom=e,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(t){var e=(0,h.Z)(this.that).datum();m.call(t,this.that,new _e(t,{sourceEvent:this.sourceEvent,target:E,type:t,transform:this.that.__zoom,dispatch:m}),e)}},E.wheelDelta=function(t){return arguments.length?(s="function"==typeof t?t:me(+t),E):s},E.filter=function(t){return arguments.length?(r="function"==typeof t?t:me(!!t),E):r},E.touchable=function(t){return arguments.length?(a="function"==typeof t?t:me(!!t),E):a},E.extent=function(t){return arguments.length?(i="function"==typeof t?t:me([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),E):i},E.scaleExtent=function(t){return arguments.length?(f[0]=+t[0],f[1]=+t[1],E):[f[0],f[1]]},E.translateExtent=function(t){return arguments.length?(g[0][0]=+t[0][0],g[1][0]=+t[1][0],g[0][1]=+t[0][1],g[1][1]=+t[1][1],E):[[g[0][0],g[0][1]],[g[1][0],g[1][1]]]},E.constrain=function(t){return arguments.length?(o=t,E):o},E.duration=function(t){return arguments.length?(v=+t,E):v},E.interpolate=function(t){return arguments.length?(y=t,E):y},E.on=function(){var t=m.on.apply(m,arguments);return t===m?E:t},E.clickDistance=function(t){return arguments.length?(b=(t=+t)*t,E):Math.sqrt(b)},E.tapDistance=function(t){return arguments.length?(x=+t,E):x},E}we.prototype}}]);
3
+ //# sourceMappingURL=7312.94667cd0.js.map