@next-bricks/diagram 0.3.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.
package/dist/bricks.json CHANGED
@@ -8,5 +8,5 @@
8
8
  ],
9
9
  "processors": [],
10
10
  "dependencies": {},
11
- "filePath": "bricks/diagram/dist/index.8f40b8eb.js"
11
+ "filePath": "bricks/diagram/dist/index.23374df2.js"
12
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 editable-label.e741e544.js.LICENSE.txt */
2
+ (self.webpackChunk_next_bricks_diagram=self.webpackChunk_next_bricks_diagram||[]).push([[3189,5628],{9067:(e,t,r)=>{"use strict";r.r(t),r.d(t,{EditableLabel:()=>v,EditableLabelComponent:()=>M,LegacyEditableLabelComponent:()=>K});var n,a,i,l,o,s,c,u,f,h,p,d,b,v,g=r(3395),y=r(1815),m=r(381),w=r(687),Z=r(5066),x=r(8657),E=r.n(x),S=r(5727),k=r(305),j=(r(2006),r(2779)),C=r.n(j),z=r(8074),{defineElement:T,property:A,event:O,method:P}=(0,S.createDecorators)(),M=(0,x.forwardRef)(K);a=T("diagram.editable-label",{styleTexts:[z.Z]}),i=A(),o=A({render:!1}),c=O({type:"label.change"}),p=P();var L=new WeakMap,W=new WeakMap,_=new WeakMap,D=new WeakMap,N=new WeakMap,R=new WeakMap;class I extends k.ReactNextElement{constructor(){super(...arguments),(0,g.Z)(this,D,{get:H,set:B}),(0,g.Z)(this,L,{writable:!0,value:(d(this),l(this))}),(0,g.Z)(this,W,{writable:!0,value:s(this)}),(0,g.Z)(this,_,{writable:!0,value:u(this)}),(0,g.Z)(this,N,{writable:!0,value:e=>{(0,w.Z)(this,D).emit(e)}}),(0,g.Z)(this,R,{writable:!0,value:(0,x.createRef)()})}get label(){return(0,w.Z)(this,L)}set label(e){(0,m.Z)(this,L,e)}get type(){return(0,w.Z)(this,W)}set type(e){(0,m.Z)(this,W,e)}enableEditing(){var e;null===(e=(0,w.Z)(this,R).current)||void 0===e||e.enableEditing()}render(){return E().createElement(M,{ref:(0,w.Z)(this,R),label:this.label,onLabelChange:(0,w.Z)(this,N)})}}function B(e){h(this,e)}function H(){return f(this)}function K(e,t){var{label:r,onLabelChange:n}=e,a=null!=r?r:"",[i,l]=(0,x.useState)(a),[o,s]=(0,x.useState)(!1),[c,u]=(0,x.useState)(!1),f=(0,x.useRef)(null);(0,x.useImperativeHandle)(t,(()=>({enableEditing(){s(!0)}}))),(0,x.useEffect)((()=>{l(a)}),[a]);var h=(0,x.useCallback)((e=>{e.preventDefault(),e.stopPropagation(),s(!0)}),[]);(0,x.useEffect)((()=>{var e,t;o&&(null===(e=f.current)||void 0===e||e.focus({preventScroll:!0}),null===(t=f.current)||void 0===t||t.select())}),[o]);var p=(0,x.useCallback)((e=>{l(e.target.value)}),[]),d=(0,x.useCallback)((e=>{var t,r=e.key||e.keyCode||e.which;"Enter"!==r&&13!==r||null===(t=f.current)||void 0===t||t.blur()}),[]),b=(0,x.useCallback)((()=>{s(!1),u(!0)}),[]);return(0,x.useEffect)((()=>{c&&(null==n||n(i),u(!1))}),[i,n,c]),E().createElement("div",{className:C()("label",{editing:o,empty:!i})},E().createElement("input",{className:"label-input",value:i,ref:f,onChange:p,onKeyDown:d,onBlur:b}),E().createElement("div",{className:"label-text",onDoubleClick:h},i))}b=I,({e:[l,s,u,f,h,d],c:[v,n]}=(0,Z.Z)(b,[[i,1,"label"],[o,1,"type"],[c,1,"labelChange",e=>(0,w.Z)(e,_),(e,t)=>(0,m.Z)(e,_,t)],[p,2,"enableEditing"]],[a],0,(e=>R.has((0,y.Z)(e))),k.ReactNextElement)),n()},2779:(e,t)=>{var r;!function(){"use strict";var n={}.hasOwnProperty;function a(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var i=typeof r;if("string"===i||"number"===i)e.push(r);else if(Array.isArray(r)){if(r.length){var l=a.apply(null,r);l&&e.push(l)}}else if("object"===i){if(r.toString!==Object.prototype.toString&&!r.toString.toString().includes("[native code]")){e.push(r.toString());continue}for(var o in r)n.call(r,o)&&r[o]&&e.push(o)}}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(r=function(){return a}.apply(t,[]))||(e.exports=r)}()},8074:(e,t,r)=>{"use strict";r.d(t,{Z:()=>o});var n=r(9601),a=r.n(n),i=r(2609),l=r.n(i)()(a());l.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=l.toString()},2609:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var r="",n=void 0!==t[5];return t[4]&&(r+="@supports (".concat(t[4],") {")),t[2]&&(r+="@media ".concat(t[2]," {")),n&&(r+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),r+=e(t),n&&(r+="}"),t[2]&&(r+="}"),t[4]&&(r+="}"),r})).join("")},t.i=function(e,r,n,a,i){"string"==typeof e&&(e=[[null,e,void 0]]);var l={};if(n)for(var o=0;o<this.length;o++){var s=this[o][0];null!=s&&(l[s]=!0)}for(var c=0;c<e.length;c++){var u=[].concat(e[c]);n&&l[u[0]]||(void 0!==i&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=i),r&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=r):u[2]=r),a&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=a):u[4]="".concat(a)),t.push(u))}},t}},9601:e=>{"use strict";e.exports=function(e){return e[1]}},5066:(e,t,r)=>{"use strict";r.d(t,{Z:()=>o});var n=r(6522),a=r(1815);function i(e,t,r){"symbol"==(0,n.Z)(t)&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:r?r+" "+t:t})}catch(e){}return e}var l=r(5850);function o(e,t,r,o,s,c){function u(e,t,r){return function(n,a){return r&&r(n),e[t].call(n,a)}}function f(e,t){for(var r=0;r<e.length;r++)e[r].call(t);return t}function h(e,t,r,n){if("function"!=typeof e&&(n||void 0!==e))throw new TypeError(t+" must "+(r||"be")+" a function"+(n?"":" or undefined"));return e}function p(e,t,r,a,l,o,s,c,f,p,d,b,v){function g(e){if(!v(e))throw new TypeError("Attempted to access private element on non-instance")}var y,m,w=t[0],Z=t[3],x=!c;if(!x){r||Array.isArray(w)||(w=[w]);var E={},S=[],k=3===l?"get":4===l||b?"set":"value";p?(d||b?E={get:i((function(){return Z(this)}),a,"get"),set:function(e){t[4](this,e)}}:E[k]=Z,d||i(E[k],a,2===l?"":k)):d||(E=Object.getOwnPropertyDescriptor(e,a))}for(var j=w.length-1;j>=0;j-=r?2:1){var C=w[j],z=r?w[j-1]:void 0,T={},A={kind:["field","accessor","method","getter","setter","class"][l],name:a,metadata:o,addInitializer:function(e,t){if(e.v)throw new Error("attempted to call addInitializer after decoration was finished");h(t,"An initializer","be",!0),s.push(t)}.bind(null,T)};try{if(x)m=C.call(z,e,A);else{var O,P;A.static=f,A.private=p,p||!d&&2!==l?2===l?O=function(e){return g(e),E.value}:((l<2||3===l)&&(O=u(E,"get",p&&g)),(l<2||4===l)&&(P=u(E,"set",p&&g))):(O=function(e){return e[a]},d&&(P=function(e,t){e[a]=t}));var M=A.access={has:p?v.bind():function(e){return a in e}};if(O&&(M.get=O),P&&(M.set=P),m=C.call(z,b?{get:E.get,set:E.set}:E[k],A),b){if("object"==(0,n.Z)(m)&&m)(y=h(m.get,"accessor.get"))&&(E.get=y),(y=h(m.set,"accessor.set"))&&(E.set=y),(y=h(m.init,"accessor.init"))&&S.push(y);else if(void 0!==m)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0")}else h(m,(d?"field":"method")+" decorators","return")&&(d?S.push(m):E[k]=m)}}finally{T.v=!0}}return(d||b)&&c.push((function(e,t){for(var r=S.length-1;r>=0;r--)t=S[r].call(e,t);return t})),d||x||(p?b?c.push(u(E,"get"),u(E,"set")):c.push(2===l?E[k]:u.call.bind(E[k])):Object.defineProperty(e,a,E)),m}function d(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for("Symbol.metadata"),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var b=c[Symbol.metadata||Symbol.for("Symbol.metadata")];var v=Object.create(null==b?null:b),g=function(e,t,r,n){var i,o,s=[],c=function(t){return(0,a.Z)(t)===e},u=new Map;function h(e){e&&s.push(f.bind(null,e))}for(var d=0;d<t.length;d++){var b=t[d];if(Array.isArray(b)){var v=b[1],g=b[2],y=b.length>3,m=16&v,w=!!(8&v),Z=0==(v&=7),x=g+"/"+w;if(!Z&&!y){var E=u.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: "+g);u.set(x,!(v>2)||v)}p(w?e:e.prototype,b,m,y?"#"+g:(0,l.Z)(g),v,n,w?o=o||[]:i=i||[],s,w,y,Z,1===v,w&&y?c:r)}}return h(i),h(o),s}(e,t,s,v);return r.length||d(e,v),{e:g,get c(){var t=[];return r.length&&[d(h(p(e,[r],o,e.name,5,v,t),"class decorators","return")||e,v),f.bind(null,t,e)]}}}},1815:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(6522);function a(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==e?(0,n.Z)(e):"null"));return e}},5863:(e,t,r)=>{"use strict";function n(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}r.d(t,{Z:()=>n})},175:(e,t,r)=>{"use strict";function n(e,t,r){if(!t.has(e))throw new TypeError("attempted to "+r+" private field on non-instance");return t.get(e)}r.d(t,{Z:()=>n})},687:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(175);function a(e,t){return function(e,t){return t.get?t.get.call(e):t.value}(e,(0,n.Z)(e,t,"get"))}},3395:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(5863);function a(e,t,r){(0,n.Z)(e,t),t.set(e,r)}},381:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(175);function a(e,t,r){return function(e,t,r){if(t.set)t.set.call(e,r);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=r}}(e,(0,n.Z)(e,t,"set"),r),r}},5850:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(6522);function a(e){var t=function(e,t){if("object"!=(0,n.Z)(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var a=r.call(e,"string");if("object"!=(0,n.Z)(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==(0,n.Z)(t)?t:String(t)}},6522:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}r.d(t,{Z:()=>n})}}]);
3
+ //# sourceMappingURL=editable-label.e741e544.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/editable-label.e741e544.js","mappings":"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","sources":["webpack:///./src/editable-label/index.tsx","webpack:///../../node_modules/classnames/index.js","webpack:///./src/editable-label/styles.shadow.css","webpack:///../../node_modules/css-loader/dist/runtime/api.js","webpack:///../../node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/setFunctionName.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/applyDecs2305.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkInRHS.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/typeof.js"],"sourcesContent":["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","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\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;--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","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (i) {\n return i[1];\n};","import _typeof from \"./typeof.js\";\nexport default function setFunctionName(e, t, n) {\n \"symbol\" == _typeof(t) && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\");\n try {\n Object.defineProperty(e, \"name\", {\n configurable: !0,\n value: n ? n + \" \" + t : t\n });\n } catch (e) {}\n return e;\n}","import _typeof from \"./typeof.js\";\nimport checkInRHS from \"./checkInRHS.js\";\nimport setFunctionName from \"./setFunctionName.js\";\nimport toPropertyKey from \"./toPropertyKey.js\";\nexport default function applyDecs2305(e, t, r, n, o, a) {\n function i(e, t, r) {\n return function (n, o) {\n return r && r(n), e[t].call(n, o);\n };\n }\n function c(e, t) {\n for (var r = 0; r < e.length; r++) e[r].call(t);\n return t;\n }\n function s(e, t, r, n) {\n if (\"function\" != typeof e && (n || void 0 !== e)) throw new TypeError(t + \" must \" + (r || \"be\") + \" a function\" + (n ? \"\" : \" or undefined\"));\n return e;\n }\n function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) {\n function m(e) {\n if (!h(e)) throw new TypeError(\"Attempted to access private element on non-instance\");\n }\n var y,\n v,\n g = t[0],\n b = t[3],\n w = !u;\n if (!w) {\n r || Array.isArray(g) || (g = [g]);\n var S = {},\n A = [],\n P = 3 === o ? \"get\" : 4 === o || d ? \"set\" : \"value\";\n f ? (p || d ? S = {\n get: setFunctionName(function () {\n return b(this);\n }, n, \"get\"),\n set: function set(e) {\n t[4](this, e);\n }\n } : S[P] = b, p || setFunctionName(S[P], n, 2 === o ? \"\" : P)) : p || (S = Object.getOwnPropertyDescriptor(e, n));\n }\n for (var j = g.length - 1; j >= 0; j -= r ? 2 : 1) {\n var D = g[j],\n E = r ? g[j - 1] : void 0,\n I = {},\n O = {\n kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o],\n name: n,\n metadata: a,\n addInitializer: function (e, t) {\n if (e.v) throw new Error(\"attempted to call addInitializer after decoration was finished\");\n s(t, \"An initializer\", \"be\", !0), c.push(t);\n }.bind(null, I)\n };\n try {\n if (w) v = D.call(E, e, O);else {\n var k, F;\n O[\"static\"] = l, O[\"private\"] = f, f || !p && 2 !== o ? 2 === o ? k = function k(e) {\n return m(e), S.value;\n } : ((o < 2 || 3 === o) && (k = i(S, \"get\", f && m)), (o < 2 || 4 === o) && (F = i(S, \"set\", f && m))) : (k = function k(e) {\n return e[n];\n }, p && (F = function F(e, t) {\n e[n] = t;\n }));\n var N = O.access = {\n has: f ? h.bind() : function (e) {\n return n in e;\n }\n };\n if (k && (N.get = k), F && (N.set = F), v = D.call(E, d ? {\n get: S.get,\n set: S.set\n } : S[P], O), d) {\n if (\"object\" == _typeof(v) && v) (y = s(v.get, \"accessor.get\")) && (S.get = y), (y = s(v.set, \"accessor.set\")) && (S.set = y), (y = s(v.init, \"accessor.init\")) && A.push(y);else if (void 0 !== v) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");\n } else s(v, (p ? \"field\" : \"method\") + \" decorators\", \"return\") && (p ? A.push(v) : S[P] = v);\n }\n } finally {\n I.v = !0;\n }\n }\n return (p || d) && u.push(function (e, t) {\n for (var r = A.length - 1; r >= 0; r--) t = A[r].call(e, t);\n return t;\n }), p || w || (f ? d ? u.push(i(S, \"get\"), i(S, \"set\")) : u.push(2 === o ? S[P] : i.call.bind(S[P])) : Object.defineProperty(e, n, S)), v;\n }\n function u(e, t) {\n return Object.defineProperty(e, Symbol.metadata || Symbol[\"for\"](\"Symbol.metadata\"), {\n configurable: !0,\n enumerable: !0,\n value: t\n });\n }\n if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol[\"for\"](\"Symbol.metadata\")];\n var f = Object.create(null == l ? null : l),\n p = function (e, t, r, n) {\n var o,\n a,\n i = [],\n s = function s(t) {\n return checkInRHS(t) === e;\n },\n u = new Map();\n function l(e) {\n e && i.push(c.bind(null, e));\n }\n for (var f = 0; f < t.length; f++) {\n var p = t[f];\n if (Array.isArray(p)) {\n var d = p[1],\n h = p[2],\n m = p.length > 3,\n y = 16 & d,\n v = !!(8 & d),\n g = 0 == (d &= 7),\n b = h + \"/\" + v;\n if (!g && !m) {\n var w = u.get(b);\n if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) 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: \" + h);\n u.set(b, !(d > 2) || d);\n }\n applyDec(v ? e : e.prototype, p, y, m ? \"#\" + h : toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r);\n }\n }\n return l(o), l(a), i;\n }(e, t, o, f);\n return r.length || u(e, f), {\n e: p,\n get c() {\n var t = [];\n return r.length && [u(s(applyDec(e, [r], n, e.name, 5, f, t), \"class decorators\", \"return\") || e, f), c.bind(null, t, e)];\n }\n };\n}","import _typeof from \"./typeof.js\";\nexport default function _checkInRHS(e) {\n if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? _typeof(e) : \"null\"));\n return e;\n}","export default function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}","export default function _classExtractFieldDescriptor(receiver, privateMap, action) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to \" + action + \" private field on non-instance\");\n }\n return privateMap.get(receiver);\n}","import classApplyDescriptorGet from \"./classApplyDescriptorGet.js\";\nimport classExtractFieldDescriptor from \"./classExtractFieldDescriptor.js\";\nexport default function _classPrivateFieldGet(receiver, privateMap) {\n var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"get\");\n return classApplyDescriptorGet(receiver, descriptor);\n}","export default function _classApplyDescriptorGet(receiver, descriptor) {\n if (descriptor.get) {\n return descriptor.get.call(receiver);\n }\n return descriptor.value;\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateFieldInitSpec(obj, privateMap, value) {\n checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}","import classApplyDescriptorSet from \"./classApplyDescriptorSet.js\";\nimport classExtractFieldDescriptor from \"./classExtractFieldDescriptor.js\";\nexport default function _classPrivateFieldSet(receiver, privateMap, value) {\n var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"set\");\n classApplyDescriptorSet(receiver, descriptor, value);\n return value;\n}","export default function _classApplyDescriptorSet(receiver, descriptor, value) {\n if (descriptor.set) {\n descriptor.set.call(receiver, value);\n } else {\n if (!descriptor.writable) {\n throw new TypeError(\"attempted to set read only private field\");\n }\n descriptor.value = value;\n }\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}"],"names":["_EditableLabel","defineElement","property","event","method","createDecorators","EditableLabelComponent","forwardRef","LegacyEditableLabelComponent","_dec","styleTexts","styleText","_dec2","_dec3","render","_dec4","type","_dec5","_A","WeakMap","_B","_C","_labelChange","_handleLabelChange","_editableLabelRef","EditableLabel","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","get","_get_labelChange2","set","_set_labelChange2","writable","value","_initProto","_init_label","_init_type","_init_labelChange","_classPrivateFieldGet","this","emit","createRef","label","v","_classPrivateFieldSet","enableEditing","_classPrivateFieldGet2","current","React","ref","onLabelChange","_set_labelChange","_get_labelChange","_ref","_label","currentLabel","setCurrentLabel","useState","editingLabel","setEditingLabel","shouldEmitLabelChange","setShouldEmitLabelChange","labelInputRef","useRef","useImperativeHandle","useEffect","handleEditLabel","useCallback","e","preventDefault","stopPropagation","_labelInputRef$curren","_labelInputRef$curren2","focus","preventScroll","select","handleInputChange","target","handleInputKeydown","_labelInputRef$curren3","key","keyCode","which","blur","handleInputBlur","className","classNames","editing","empty","onChange","onKeyDown","onBlur","onDoubleClick","_class","c","_initClass","_applyDecs","o","_","has","_checkInRHS","hasOwn","hasOwnProperty","classes","i","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","includes","call","join","module","exports","default","___CSS_LOADER_EXPORT___","id","cssWithMappingToString","list","map","item","content","needLayer","concat","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","setFunctionName","t","n","description","defineProperty","configurable","applyDecs2305","r","a","s","TypeError","applyDec","u","l","f","p","d","h","m","y","g","b","w","S","A","P","getOwnPropertyDescriptor","j","D","E","I","O","kind","name","metadata","addInitializer","Error","bind","F","N","access","init","Symbol","enumerable","create","checkInRHS","Map","toPropertyKey","_checkPrivateRedeclaration","obj","privateCollection","_classExtractFieldDescriptor","receiver","privateMap","action","descriptor","classExtractFieldDescriptor","toPrimitive","String","_typeof","iterator"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_next_bricks_diagram=self.webpackChunk_next_bricks_diagram||[]).push([[9016],{7853:(e,t,n)=>{n.d(t,{L8:()=>s});var a=n(3028),r=n(8657),i=n.n(r),o=n(9494),l=n(9464);function s(e){var{labels:t,onRendered:n}=e,[a,o]=(0,r.useState)(!1),[l,s]=(0,r.useState)([]),u=(0,r.useMemo)((()=>new Map),[]),v=(0,r.useCallback)(((e,t)=>{t&&u.set(e,t),s((t=>t.includes(e)?t:t.concat(e)))}),[u]),h=(0,r.useCallback)((e=>{s((t=>{var n=t.indexOf(e);return-1===n?t:t.slice(0,n).concat(t.slice(n+1))})),u.delete(e)}),[u]);return(0,r.useEffect)((()=>{o(!(null!=t&&t.some((e=>!l.includes(e.id)))))}),[t,l]),(0,r.useEffect)((()=>{null==n||n(a?u:null)}),[u,a]),i().createElement(i().Fragment,null,null==t?void 0:t.map((e=>{var{text:t,label:n,position:a,id:r,edge:o}=e;return n?i().createElement("div",{key:r,className:"line-label",style:{left:a[0],top:a[1]}},i().createElement(c,{id:r,edge:o,label:n,onRendered:v,onUnmount:h})):i().createElement(d,{key:r,id:r,text:t,position:a,onRendered:v})})))}function d(e){var{id:t,text:n,position:o,onRendered:l}=e,s=(0,r.useCallback)((e=>{null==l||l(t,e)}),[t,l]);return i().createElement("div",{className:"line-label",ref:s,style:(0,a.Z)({left:o[0],top:o[1]},n.style)},n.content)}function c(e){var{id:t,edge:n,label:a,onRendered:s,onUnmount:d}=e,c=(0,r.useMemo)((()=>(0,l.checkIfByTransform)(a,{edge:n})?a.useBrick:null),[n,a]),u=(0,r.useMemo)((()=>({edge:n})),[n]);(0,r.useEffect)((()=>{c||setTimeout((()=>{null==s||s(t,null)}))}),[t,s,c]),(0,r.useEffect)((()=>()=>{null==d||d(t)}),[]);var v=(0,r.useCallback)((e=>{e&&setTimeout((()=>{null==s||s(t,e.parentElement)}))}),[t,s]),h=(0,r.useCallback)((()=>{setTimeout((()=>{null==s||s(t,null)}))}),[t,s]);return c?i().createElement(o.ReactUseBrick,{refCallback:v,ignoredCallback:h,useBrick:c,data:u}):null}},4370:(e,t,n)=>{n.d(t,{n:()=>l});var a=n(8657),r=n.n(a),i=n(9494),o=n(3442);function l(e){var{nodes:t,nodeBricks:n,onRendered:i}=e,[o,l]=(0,a.useState)(!1),[d,c]=(0,a.useState)([]),u=(0,a.useMemo)((()=>new Map),[]),v=(0,a.useCallback)(((e,t)=>{t&&u.set(e,t),c((t=>t.includes(e)?t:t.concat(e)))}),[u]),h=(0,a.useCallback)((e=>{c((t=>{var n=t.indexOf(e);return-1===n?t:t.slice(0,n).concat(t.slice(n+1))})),u.delete(e)}),[u]);return(0,a.useEffect)((()=>{l(!(null!=t&&t.some((e=>!d.includes(e.id)))))}),[t,d]),(0,a.useEffect)((()=>{null==i||i(o?u:null)}),[u,o]),r().createElement(r().Fragment,null,null==t?void 0:t.map((e=>r().createElement("div",{key:e.id,className:"node"},r().createElement(s,{nodeBricks:n,node:e,onRendered:v,onUnmount:h})))))}function s(e){var{node:t,nodeBricks:n,onRendered:l,onUnmount:s}=e,d=(0,a.useMemo)((()=>{var e;return null===(e=(0,o.U)(t,n))||void 0===e?void 0:e.useBrick}),[t,n]),c=(0,a.useMemo)((()=>({node:t})),[t]);(0,a.useEffect)((()=>{d||setTimeout((()=>{null==l||l(t.id,null)}))}),[t.id,l,d]),(0,a.useEffect)((()=>()=>{null==s||s(t.id)}),[]);var u=(0,a.useCallback)((e=>{e&&setTimeout((()=>{null==l||l(t.id,e)}))}),[t.id,l]),v=(0,a.useCallback)((()=>{setTimeout((()=>{null==l||l(t.id,null)}))}),[t.id,l]);return d?r().createElement(i.ReactUseBrick,{refCallback:u,ignoredCallback:v,useBrick:d,data:c}):null}},5318:(e,t,n)=>{n.d(t,{IC:()=>a,_w:()=>r,no:()=>i,wl:()=>o});var a="var(--palette-gray-5)",r=1,i="curveBasis",o=20},2715:(e,t,n)=>{n.r(t),n.d(t,{EoDiagram:()=>T,EoDiagramComponent:()=>ce,LegacyEoDiagramComponent:()=>Oe});var a,r,i,o,l,s,d,c,u,v,h,f,p,g,m,b,k,y,w,Z,E,x,M,C,B,N,W,S,L,R,D,I,A,T,O=n(3028),_=n(3395),P=n(1815),U=n(381),$=n(687),K=n(5066),z=n(8657),H=n.n(z),X=n(5727),Y=n(305),q=(n(2006),n(908)),j=n.n(q),F=n(1105),G=n(7397),J=n(2779),Q=n.n(J),V=n(1211),ee=n(4370),te=n(5702),ne=n(6365),ae=n(693),re=n(6436),ie=n(7853),{defineElement:oe,property:le,event:se,method:de}=(0,X.createDecorators)(),ce=(0,z.forwardRef)(Oe);r=oe("eo-diagram",{styleTexts:[re.Z]}),i=le({type:String}),l=le({attribute:!1}),d=le({attribute:!1}),u=le({attribute:!1}),h=le({attribute:!1}),p=le({attribute:!1}),m=le({type:String}),k=le({type:Boolean}),w=se({type:"activeNode.change"}),M=se({type:"node.delete"}),W=se({type:"line.dblclick"}),D=de();var ue=new WeakMap,ve=new WeakMap,he=new WeakMap,fe=new WeakMap,pe=new WeakMap,ge=new WeakMap,me=new WeakMap,be=new WeakMap,ke=new WeakMap,ye=new WeakMap,we=new WeakMap,Ze=new WeakMap,Ee=new WeakMap,xe=new WeakMap,Me=new WeakMap,Ce=new WeakMap,Be=new WeakMap,Ne=new WeakMap,We=new WeakMap;class Se extends Y.ReactNextElement{constructor(){super(...arguments),(0,_.Z)(this,Ce,{get:Te,set:Ae}),(0,_.Z)(this,Ee,{get:Ie,set:De}),(0,_.Z)(this,ye,{get:Re,set:Le}),(0,_.Z)(this,ue,{writable:!0,value:(I(this),o(this))}),(0,_.Z)(this,ve,{writable:!0,value:s(this)}),(0,_.Z)(this,he,{writable:!0,value:c(this)}),(0,_.Z)(this,fe,{writable:!0,value:v(this)}),(0,_.Z)(this,pe,{writable:!0,value:f(this)}),(0,_.Z)(this,ge,{writable:!0,value:g(this)}),(0,_.Z)(this,me,{writable:!0,value:b(this)}),(0,_.Z)(this,be,{writable:!0,value:y(this)}),(0,_.Z)(this,ke,{writable:!0,value:Z(this)}),(0,_.Z)(this,we,{writable:!0,value:e=>{(0,$.Z)(this,ye).emit(e)}}),(0,_.Z)(this,Ze,{writable:!0,value:C(this)}),(0,_.Z)(this,xe,{writable:!0,value:e=>{(0,$.Z)(this,Ee).emit(e)}}),(0,_.Z)(this,Me,{writable:!0,value:S(this)}),(0,_.Z)(this,Be,{writable:!0,value:e=>{(0,$.Z)(this,Ce).emit(e)}}),(0,_.Z)(this,Ne,{writable:!0,value:e=>{this.activeNodeId=e}}),(0,_.Z)(this,We,{writable:!0,value:(0,z.createRef)()})}get layout(){return(0,$.Z)(this,ue)}set layout(e){(0,U.Z)(this,ue,e)}get nodes(){return(0,$.Z)(this,ve)}set nodes(e){(0,U.Z)(this,ve,e)}get edges(){return(0,$.Z)(this,he)}set edges(e){(0,U.Z)(this,he,e)}get nodeBricks(){return(0,$.Z)(this,fe)}set nodeBricks(e){(0,U.Z)(this,fe,e)}get lines(){return(0,$.Z)(this,pe)}set lines(e){(0,U.Z)(this,pe,e)}get layoutOptions(){return(0,$.Z)(this,ge)}set layoutOptions(e){(0,U.Z)(this,ge,e)}get activeNodeId(){return(0,$.Z)(this,me)}set activeNodeId(e){(0,U.Z)(this,me,e)}get disableKeyboardAction(){return(0,$.Z)(this,be)}set disableKeyboardAction(e){(0,U.Z)(this,be,e)}callOnLineLabel(e,t){for(var n,a=arguments.length,r=new Array(a>2?a-2:0),i=2;i<a;i++)r[i-2]=arguments[i];null===(n=(0,$.Z)(this,We).current)||void 0===n||n.callOnLineLabel(e,t,...r)}render(){return H().createElement(ce,{ref:(0,$.Z)(this,We),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,$.Z)(this,we),onSwitchActiveNode:(0,$.Z)(this,Ne),onNodeDelete:(0,$.Z)(this,xe),onLineDoubleClick:(0,$.Z)(this,Be)})}}function Le(e){x(this,e)}function Re(){return E(this)}function De(e){N(this,e)}function Ie(){return B(this)}function Ae(e){R(this,e)}function Te(){return L(this)}function Oe(e,t){var{layout:n,nodes:a,edges:r,nodeBricks:i,lines:o,layoutOptions:l,activeNodeId:s,disableKeyboardAction:d,onActiveNodeChange:c,onSwitchActiveNode:u,onNodeDelete:v,onLineDoubleClick:h}=e,[f,p]=(0,z.useState)(null),[g,m]=(0,z.useState)(!1),[b,k]=(0,z.useState)(0),[y,w]=(0,z.useState)(null),[Z,E]=(0,z.useState)(0),[x,M]=(0,z.useState)(null),[C,B]=(0,z.useState)([]),[N,W]=(0,z.useState)([]),[S,L]=(0,z.useState)([]),R=(0,z.useRef)(null),[D,I]=(0,z.useState)(!1),[A,T]=(0,z.useState)({k:1,x:0,y:0}),_=(0,z.useRef)(new Map),P=(0,z.useRef)(null),U=(0,z.useRef)(null),[$,K]=(0,z.useState)([0,0]),[X,Y]=(0,z.useState)(!1);(0,z.useImperativeHandle)(t,(()=>({callOnLineLabel(e,t){for(var n,a=arguments.length,r=new Array(a>2?a-2:0),i=2;i<a;i++)r[i-2]=arguments[i];null==x||null===(n=x.get(e))||void 0===n||null===(n=n.firstElementChild)||void 0===n||n[t](...r)}})));var q=(0,z.useMemo)((()=>(0,O.Z)({rankdir:"TB",ranksep:50,edgesep:10,nodesep:50,nodePadding:0},l)),[l]),{nodePadding:J}=q,re=(0,z.useMemo)((()=>(0,V.pick)(q,["rankdir","ranksep","edgesep","nodesep","align"])),[q]);(0,z.useEffect)((()=>{var e=s?null==a?void 0:a.find((e=>e.id===s)):void 0;null==c||c(e)}),[a,s,c]),(0,z.useEffect)((()=>{p((e=>{var t=new(j().graphlib.Graph);for(var n of(t.setGraph(re),t.setDefaultEdgeLabel((function(){return{}})),null!=a?a:[])){var i=null==e?void 0:e.node(n.id);t.setNode(n.id,(null==i?void 0:i.data)===n?i:{id:n.id,data:n})}for(var o of null!=r?r:[])t.setEdge(o.source,o.target,{data:o});return t}))}),[r,a,re]),(0,z.useEffect)((()=>{if(f&&y&&0!==f.nodeCount()){for(var e of f.nodes()){var t,n,a=f.node(e);if(a){var r=y.get(e);a.width=(null!==(t=null==r?void 0:r.offsetWidth)&&void 0!==t?t:10)+2*J,a.height=(null!==(n=null==r?void 0:r.offsetHeight)&&void 0!==n?n:10)+2*J}else console.error("Diagram node not found: %s",e)}j().layout(f);var i=[];for(var o of f.nodes()){var l,s=f.node(o);if(s){i.push(s);var d=s.x-s.width/2+J,c=s.y-s.height/2+J,u=null===(l=y.get(o))||void 0===l?void 0:l.parentElement;u&&(u.style.left="".concat(d,"px"),u.style.top="".concat(c,"px"),u.style.visibility="visible")}}B(i),W(f.edges().map((e=>f.edge(e))))}}),[f,y,b,J]);var{renderedLines:oe,markers:le}=(0,z.useMemo)((()=>(0,ae.b)(N,o)),[o,N]);(0,z.useEffect)((()=>{var e=P.current;if(e&&!d){var t=e=>{var t=(0,te.p)(e,{renderedNodes:C,renderedEdges:N,activeNodeId:s});"delete-node"===(null==t?void 0:t.action)?null==v||v(t.node):"switch-active-node"===(null==t?void 0:t.action)&&t.node&&(null==u||u(t.node.id))};return e.addEventListener("keydown",t),()=>{e.removeEventListener("keydown",t)}}}),[s,C,N,d,u,v]);var se=(0,z.useCallback)((e=>{e&&(k((e=>e+1)),w(e)),m((t=>t||!!e))}),[]),de=(0,z.useCallback)((e=>{e&&(E((e=>e+1)),M(e))}),[]);(0,z.useEffect)((()=>{var e=P.current,t=R.current;if(e&&t){var n=!1,a=(0,G.sP)().scaleExtent([1,1]).on("start",(()=>{n=!1,I(!0)})).on("zoom",(e=>{n=!0,T(e.transform)})).on("end",(()=>{I(!1),n||null==u||u(void 0)}));(0,F.Z)(t).call(a),(0,F.Z)(e).on("wheel.zoom",(e=>{e.stopPropagation(),e.preventDefault(),a.translateBy((0,F.Z)(t),e.wheelDeltaX/5,e.wheelDeltaY/5)}))}}),[u]),(0,z.useEffect)((()=>{var e=P.current;0!==C.length&&e&&!X&&(K((0,ne.i)(C,[e.clientWidth,e.clientHeight])),Y(!0))}),[X,C]);var ce=(0,z.useMemo)((()=>"".concat((0,V.uniqueId)("diagram-"),"-")),[]),ue="".concat(ce,"line-arrow-"),ve="".concat(ce,"clip-path-");(0,z.useEffect)((()=>{L((e=>0===e.length&&0===oe.length?e:oe.map((e=>{var{line:{text:t,label:n,$id:a},edge:r}=e,i=_.current.get(a);if((t||n)&&i&&i.getAttribute("d")){var{x:o,y:l,width:s,height:d}=i.getBBox(),c=1e3,u=o-c,v=l-c,h=o+s+c,f=l+d+c,p=i.getPointAtLength(i.getTotalLength()/2);return{text:t,label:n,edge:r,position:[p.x,p.y],lineRect:{left:u,top:v,right:h,bottom:f},id:a}}})).filter(Boolean)))}),[oe]);var[he,fe]=H().useState([]);return(0,z.useEffect)((()=>{x&&fe(S.map((e=>{var{id:t}=e,n=null==x?void 0:x.get(t);if(n){var{offsetWidth:a,offsetHeight:r}=n;if(0!==a&&0!==r)return{x0:n.offsetLeft-a/2-3,y0:n.offsetTop-r/2-3,w:a+6,h:r+6,id:t}}})).filter(Boolean))}),[Z,x,S]),"dagre"!==n?H().createElement("div",null,'Diagram layout not supported: "'.concat(n,'"')):H().createElement("div",{className:Q()("diagram",{ready:g&&X}),tabIndex:-1,ref:P},H().createElement("div",{className:Q()("dragger",{grabbing:D}),ref:R}),H().createElement("svg",{width:"100%",height:"100%",className:"lines"},H().createElement("defs",null,le.map(((e,t)=>{var{strokeColor:n}=e;return H().createElement("marker",{key:t,id:"".concat(ue).concat(t),viewBox:"0 0 6 6",refX:3,refY:3,markerWidth:6,markerHeight:6,orient:"auto"},H().createElement("path",{d:"M 0.5 0.5 L 5.5 3 L 0.5 5.5 z",stroke:n,strokeWidth:1,fill:n}))})),he.map((e=>{var{x0:t,y0:n,w:a,h:r,id:i}=e,o=S.find((e=>e.id===i));if(o){var{left:l,top:s,right:d,bottom:c}=o.lineRect;return H().createElement("clipPath",{key:i,id:"".concat(ve).concat(i)},H().createElement("polygon",{points:["".concat(t,",").concat(n+r),"".concat(t+a,",").concat(n+r),"".concat(t+a,",").concat(n),"".concat(t,",").concat(n),"".concat(t,",").concat(s),"".concat(d,",").concat(s),"".concat(d,",").concat(c),"".concat(l,",").concat(c),"".concat(l,",").concat(s),"".concat(t,",").concat(s)].join(" ")}))}}))),H().createElement("g",{transform:"translate(".concat($[0]+A.x," ").concat($[1]+A.y,") scale(").concat(A.k,")")},oe.map((e=>{var t,{line:n,d:a,markerIndex:r,edge:i}=e;return H().createElement("g",{className:Q()("line",{interactable:n.interactable}),key:n.$id,onDoubleClick:n.interactable?e=>(e.preventDefault(),e.stopPropagation(),null==h?void 0:h({id:n.$id,edge:i})):void 0},H().createElement("path",{ref:e=>_.current.set(n.$id,e),stroke:n.strokeColor,strokeWidth:n.strokeWidth,d:a,fill:"none",markerEnd:void 0===r?void 0:"url(#".concat(ue).concat(r,")"),clipPath:he.some((e=>e.id===n.$id))?"url(#".concat(ve).concat(n.$id,")"):void 0}),n.interactable&&H().createElement("path",{d:a,fill:"none",stroke:"transparent",strokeWidth:null!==(t=n.interactStrokeWidth)&&void 0!==t?t:5}))})))),H().createElement("div",{className:"line-labels",style:{left:$[0]+A.x,top:$[1]+A.y}},H().createElement(ie.L8,{labels:S,onRendered:de})),H().createElement("div",{className:"nodes",ref:U,style:{left:$[0]+A.x,top:$[1]+A.y}},H().createElement(ee.n,{nodes:a,nodeBricks:i,onRendered:se})))}A=Se,({e:[o,s,c,v,f,g,b,y,Z,E,x,C,B,N,S,L,R,I],c:[T,a]}=(0,K.Z)(A,[[i,1,"layout"],[l,1,"nodes"],[d,1,"edges"],[u,1,"nodeBricks"],[h,1,"lines"],[p,1,"layoutOptions"],[m,1,"activeNodeId"],[k,1,"disableKeyboardAction"],[w,1,"activeNodeChangeEvent",e=>(0,$.Z)(e,ke),(e,t)=>(0,U.Z)(e,ke,t)],[M,1,"nodeDelete",e=>(0,$.Z)(e,Ze),(e,t)=>(0,U.Z)(e,Ze,t)],[W,1,"lineDoubleClick",e=>(0,$.Z)(e,Me),(e,t)=>(0,U.Z)(e,Me,t)],[D,2,"callOnLineLabel"]],[r],0,(e=>We.has((0,P.Z)(e))),Y.ReactNextElement)),a()},5807:(e,t,n)=>{n.d(t,{M:()=>d});var a=n(3698),r=n(1479),i=n(6481),o=n(9389),l=n(8282),s=n(5004);function d(e,t,n){if(!Array.isArray(e))return"";var d;switch(n){case"curveBasis":d=a.ZP;break;case"curveBumpX":d=r.sj;break;case"curveBumpY":d=r.BW;break;case"curveMonotoneX":d=i.Z;break;case"curveMonotoneY":d=i.s;break;case"curveNatural":d=o.Z;break;default:d=l.Z}var c=0,u=0;if(t){var{x:v,y:h}=e[e.length-2],{x:f,y:p}=e[e.length-1],g=t/Math.sqrt(Math.pow(f-v,2)+Math.pow(p-h,2));c=(v-f)*g,u=(h-p)*g}var m=e;return(0,s.Z)().x(((t,n)=>t.x-(n===e.length-1?c:0))).y(((t,n)=>t.y-(n===e.length-1?u:0))).curve(d)(m)}},3442:(e,t,n)=>{n.d(t,{U:()=>r});var a=n(9464);function r(e,t){return null==t?void 0:t.find((t=>t.nodeType?[].concat(t.nodeType).includes(e.type):(0,a.checkIfByTransform)(t,{node:e})))}},6365:(e,t,n)=>{function a(e,t){var[n,a]=t,r=1/0,i=1/0,o=-1/0,l=-1/0;for(var s of e){var d=s.width/2,c=s.height/2,u=s.x-d,v=s.x+d,h=s.y-c,f=s.y+c;u<r&&(r=u),v>o&&(o=v),h<i&&(i=h),f>l&&(l=f)}return[(n-(o-r))/2-i,(a-(l-i))/2-r]}n.d(t,{i:()=>a})},693:(e,t,n)=>{n.d(t,{b:()=>u});var a=n(3028),r=n(2159),i=n(1211),o=n(9464),l=n(5093),s=n(5318),d=n(5807),c=["label"];function u(e,t){var n=[],u=[],v=function(e){var v,h=null!==(v=null==t?void 0:t.find((t=>(0,l.o)(e,t))))&&void 0!==v?v:{},{label:p}=h,g=(0,r.Z)(h,c),m=o.__secret_internals.legacyDoTransform({edge:e},g);if(!1===(null==m?void 0:m.draw))return 1;var b,k=(0,a.Z)((0,a.Z)({strokeColor:s.IC,strokeWidth:s._w,curveType:s.no,interactStrokeWidth:s.wl},m),{},{label:p,$id:(0,i.uniqueId)("line-")});if(k.arrow){var y={strokeColor:k.strokeColor};-1===(b=(0,i.findIndex)(u,y))&&(b=u.push(y)-1)}var w=(0,d.M)(f,k.arrow?-5:0,k.curveType);n.push({line:k,d:w,markerIndex:b,edge:e})};for(var{data:h,points:f}of e)v(h);return{renderedLines:n,markers:u}}},5702:(e,t,n)=>{n.d(t,{p:()=>r});var a=n(1211);function r(e,t){var{renderedNodes:n,renderedEdges:a,activeNodeId:r}=t,l=r?n.find((e=>e.id===r)):void 0;if(l){var s,d,c;switch(e.key||e.keyCode||e.which){case"ArrowLeft":case 37:d=i(n,l,-1),s="switch-active-node";break;case"ArrowUp":case 38:d=o(n,a,l,-1),s="switch-active-node";break;case"ArrowRight":case 39:d=i(n,l,1),s="switch-active-node";break;case"ArrowDown":case 40:d=o(n,a,l,1),s="switch-active-node";break;case"Backspace":case 8:case"Delete":case 46:s="delete-node",d=l}if(s)return e.preventDefault(),e.stopPropagation(),{action:s,node:null===(c=d)||void 0===c?void 0:c.data}}}function i(e,t,n){var r,i=e.filter((e=>e!==t&&(r=(e.x-t.x)*n)>0&&r>Math.abs(t.y-e.y)));return(0,a.minBy)(i,(e=>(t.y-e.y)**2+(t.x-e.x)**2))}function o(e,t,n,r){var i=1===r?"source":"target",o=1===r?"target":"source",l=t.filter((e=>{var{data:t}=e;return t[i]===n.id&&t[o]!==n.id})).map((t=>{var{data:n}=t;return e.find((e=>e.id===n[o]))})).filter((e=>e&&(e.y-n.y)*r>0));return(0,a.minBy)(l,(e=>(n.y-e.y)**2+(n.x-e.x)**2))}},5093:(e,t,n)=>{n.d(t,{o:()=>r});var a=n(9464);function r(e,t){return!!t&&(t.edgeType?[].concat(t.edgeType).includes(e.type):(0,a.checkIfByTransform)(t,{edge:e}))}},6436:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(9601),r=n.n(a),i=n(2609),o=n.n(i)()(r());o.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 l=o.toString()}}]);
2
+ //# sourceMappingURL=eo-diagram.ae269315.js.map