@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.
@@ -27,14 +27,17 @@ export interface RenderedEdge {
27
27
  points: NodePosition[];
28
28
  data: DiagramEdge;
29
29
  }
30
- export interface RenderedLine extends RenderedEdge {
30
+ export interface RenderedLine {
31
31
  line: LineConf & {
32
32
  strokeColor: string;
33
33
  strokeWidth: number;
34
- curveType: "curveBasis";
34
+ interactStrokeWidth: number;
35
+ curveType: string;
35
36
  $id: string;
36
37
  };
38
+ d: string;
37
39
  markerIndex: number | undefined;
40
+ edge: DiagramEdge;
38
41
  }
39
42
  export interface RenderedLineLabel {
40
43
  text?: TextOptions;
@@ -72,6 +75,8 @@ export interface LineConf {
72
75
  type?: "auto";
73
76
  strokeColor?: string;
74
77
  strokeWidth?: number;
78
+ interactable?: boolean;
79
+ interactStrokeWidth?: number;
75
80
  curveType?: "curveBasis";
76
81
  arrow?: boolean;
77
82
  text?: TextOptions;
@@ -107,3 +112,7 @@ export interface SimpleRect {
107
112
  w: number;
108
113
  h: number;
109
114
  }
115
+ export interface LineTarget {
116
+ id: string;
117
+ edge: DiagramEdge;
118
+ }
@@ -6,6 +6,10 @@ export interface EditableLabelProps {
6
6
  type?: LabelType;
7
7
  }
8
8
  export type LabelType = "line" | "default";
9
+ export interface EditableLabelRef {
10
+ enableEditing(): void;
11
+ }
12
+ export declare const EditableLabelComponent: React.ForwardRefExoticComponent<EditableLabelComponentProps & React.RefAttributes<EditableLabelRef>>;
9
13
  /**
10
14
  * 构件 `diagram.editable-label`
11
15
  */
@@ -13,9 +17,10 @@ export declare class EditableLabel extends ReactNextElement implements EditableL
13
17
  #private;
14
18
  accessor label: string | undefined;
15
19
  accessor type: LabelType | undefined;
20
+ enableEditing(): void;
16
21
  render(): React.JSX.Element;
17
22
  }
18
23
  export interface EditableLabelComponentProps extends EditableLabelProps {
19
24
  onLabelChange?(value: string): void;
20
25
  }
21
- export declare function EditableLabelComponent({ label: _label, onLabelChange, }: EditableLabelComponentProps): React.JSX.Element;
26
+ export declare function LegacyEditableLabelComponent({ label: _label, onLabelChange }: EditableLabelComponentProps, ref: React.Ref<EditableLabelRef>): React.JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-bricks/diagram",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "homepage": "https://github.com/easyops-cn/next-bricks/tree/master/bricks/diagram",
5
5
  "repository": {
6
6
  "type": "git",
@@ -40,5 +40,5 @@
40
40
  "peerDependencies": {
41
41
  "@next-bricks/icons": "*"
42
42
  },
43
- "gitHead": "867b10c973a2b4ad3e400e35fbb2cd6f9b9f972a"
43
+ "gitHead": "ba424e87dba0c379675570df481406dfc3b97a03"
44
44
  }
@@ -1,2 +0,0 @@
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),r=a(1815),i=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,r]=(0,c.useState)(!1),[i,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)((()=>{r(!(null!=t&&t.some((e=>!i.includes(e.id)))))}),[t,i]),(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,r=(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]),i=(0,c.useMemo)((()=>({node:t})),[t]);(0,c.useEffect)((()=>{r||setTimeout((()=>{null==n||n(t.id,null)}))}),[t.id,n,r]),(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 r?d().createElement(y.ReactUseBrick,{refCallback:o,ignoredCallback:s,useBrick:r,data:i}):null}var E=a(3698),M=a(1479),C=a(6481),B=a(9389),N=a(8282),W=a(5004);function S(e,t,a){if(!Array.isArray(e))return"";var n;switch(a){case"curveBasis":n=E.ZP;break;case"curveBumpX":n=M.sj;break;case"curveBumpY":n=M.BW;break;case"curveMonotoneX":n=C.Z;break;case"curveMonotoneY":n=C.s;break;case"curveNatural":n=B.Z;break;default:n=N.Z}var l=0,r=0;if(t){var{x:i,y:o}=e[e.length-2],{x:s,y:c}=e[e.length-1],d=t/Math.sqrt(Math.pow(s-i,2)+Math.pow(c-o,2));l=(i-s)*d,r=(o-c)*d}var u=e;return(0,W.Z)().x(((t,a)=>t.x-(a===e.length-1?l:0))).y(((t,a)=>t.y-(a===e.length-1?r:0))).curve(n)(u)}function R(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 T(e,t,a,n){var l=1===n?"source":"target",r=1===n?"target":"source",i=t.filter((e=>{var{data:t}=e;return t[l]===a.id&&t[r]!==a.id})).map((t=>{var{data:a}=t;return e.find((e=>e.id===a[r]))})).filter((e=>e&&(e.y-a.y)*n>0));return(0,k.minBy)(i,(e=>(a.y-e.y)**2+(a.x-e.x)**2))}var A=a(2159),D="var(--palette-gray-5)",I=1,L="curveBasis",z=["label"];var P,_,O,K,U,$,H,X,Y,q,j,F,G,J,Q,V,ee,te,ae,ne,le,re,ie,oe,se,ce,de,ue,he=a(6436);function ve(e){var{labels:t,onRendered:a}=e,[n,l]=(0,c.useState)(!1),[r,i]=(0,c.useState)([]),o=(0,c.useMemo)((()=>new Map),[]),s=(0,c.useCallback)(((e,t)=>{t&&o.set(e,t),i((t=>t.includes(e)?t:t.concat(e)))}),[o]),u=(0,c.useCallback)((e=>{i((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=>!r.includes(e.id)))))}),[t,r]),(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:r}=e;return a?d().createElement("div",{key:l,className:"line-label",style:{left:n[0],top:n[1]}},d().createElement(be,{id:l,edge:r,label:a,onRendered:s,onUnmount:u})):d().createElement(fe,{key:l,id:l,text:t,position:n,onRendered:s})})))}function fe(e){var{id:t,text:a,position:l,onRendered:r}=e,i=(0,c.useCallback)((e=>{null==r||r(t,e)}),[t,r]);return d().createElement("div",{className:"line-label",ref:i,style:(0,n.Z)({left:l[0],top:l[1]},a.style)},a.content)}function be(e){var{id:t,edge:a,label:n,onRendered:l,onUnmount:r}=e,i=(0,c.useMemo)((()=>(0,w.checkIfByTransform)(n,{edge:a})?n.useBrick:null),[a,n]),o=(0,c.useMemo)((()=>({edge:a})),[a]);(0,c.useEffect)((()=>{i||setTimeout((()=>{null==l||l(t,null)}))}),[t,l,i]),(0,c.useEffect)((()=>()=>{null==r||r(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 i?d().createElement(y.ReactUseBrick,{refCallback:s,ignoredCallback:u,useBrick:i,data:o}):null}var pe,{defineElement:ge,property:me,event:ke}=(0,u.createDecorators)();_=ge("eo-diagram",{styleTexts:[he.Z]}),O=me({type:String}),U=me({attribute:!1}),H=me({attribute:!1}),Y=me({attribute:!1}),j=me({attribute:!1}),G=me({attribute:!1}),Q=me({type:String}),ee=me({type:Boolean}),ae=ke({type:"activeNode.change"}),ie=ke({type:"node.delete"});var ye=new WeakMap,we=new WeakMap,Ze=new WeakMap,xe=new WeakMap,Ee=new WeakMap,Me=new WeakMap,Ce=new WeakMap,Be=new WeakMap,Ne=new WeakMap,We=new WeakMap,Se=new WeakMap,Re=new WeakMap,Te=new WeakMap,Ae=new WeakMap,De=new WeakMap;class Ie extends h.ReactNextElement{constructor(){super(...arguments),(0,l.Z)(this,Te,{get:_e,set:Pe}),(0,l.Z)(this,We,{get:ze,set:Le}),(0,l.Z)(this,ye,{writable:!0,value:(de(this),K(this))}),(0,l.Z)(this,we,{writable:!0,value:$(this)}),(0,l.Z)(this,Ze,{writable:!0,value:X(this)}),(0,l.Z)(this,xe,{writable:!0,value:q(this)}),(0,l.Z)(this,Ee,{writable:!0,value:F(this)}),(0,l.Z)(this,Me,{writable:!0,value:J(this)}),(0,l.Z)(this,Ce,{writable:!0,value:V(this)}),(0,l.Z)(this,Be,{writable:!0,value:te(this)}),(0,l.Z)(this,Ne,{writable:!0,value:ne(this)}),(0,l.Z)(this,Se,{writable:!0,value:e=>{(0,o.Z)(this,We).emit(e)}}),(0,l.Z)(this,Re,{writable:!0,value:oe(this)}),(0,l.Z)(this,Ae,{writable:!0,value:e=>{(0,o.Z)(this,Te).emit(e)}}),(0,l.Z)(this,De,{writable:!0,value:e=>{this.activeNodeId=e}})}get layout(){return(0,o.Z)(this,ye)}set layout(e){(0,i.Z)(this,ye,e)}get nodes(){return(0,o.Z)(this,we)}set nodes(e){(0,i.Z)(this,we,e)}get edges(){return(0,o.Z)(this,Ze)}set edges(e){(0,i.Z)(this,Ze,e)}get nodeBricks(){return(0,o.Z)(this,xe)}set nodeBricks(e){(0,i.Z)(this,xe,e)}get lines(){return(0,o.Z)(this,Ee)}set lines(e){(0,i.Z)(this,Ee,e)}get layoutOptions(){return(0,o.Z)(this,Me)}set layoutOptions(e){(0,i.Z)(this,Me,e)}get activeNodeId(){return(0,o.Z)(this,Ce)}set activeNodeId(e){(0,i.Z)(this,Ce,e)}get disableKeyboardAction(){return(0,o.Z)(this,Be)}set disableKeyboardAction(e){(0,i.Z)(this,Be,e)}render(){return d().createElement(Oe,{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,Se),onSwitchActiveNode:(0,o.Z)(this,De),onNodeDelete:(0,o.Z)(this,Ae)})}}function Le(e){re(this,e)}function ze(){return le(this)}function Pe(e){ce(this,e)}function _e(){return se(this)}function Oe(e){var{layout:t,nodes:a,edges:l,nodeBricks:r,lines:i,layoutOptions:o,activeNodeId:s,disableKeyboardAction:u,onActiveNodeChange:h,onSwitchActiveNode:v,onNodeDelete:g}=e,[y,x]=(0,c.useState)(null),[E,M]=(0,c.useState)(!1),[C,B]=(0,c.useState)(0),[N,W]=(0,c.useState)(null),[P,_]=(0,c.useState)(0),[O,K]=(0,c.useState)(null),[U,$]=(0,c.useState)([]),[H,X]=(0,c.useState)([]),[Y,q]=(0,c.useState)([]),j=(0,c.useRef)(null),[F,G]=(0,c.useState)(!1),[J,Q]=(0,c.useState)({k:1,x:0,y:0}),V=(0,c.useRef)(new Map),ee=(0,c.useRef)(null),te=(0,c.useRef)(null),[ae,ne]=(0,c.useState)([0,0]),[le,re]=(0,c.useState)(!1),ie=(0,c.useMemo)((()=>(0,n.Z)({rankdir:"TB",ranksep:50,edgesep:10,nodesep:50,nodePadding:0},o)),[o]),{nodePadding:oe}=ie,se=(0,c.useMemo)((()=>(0,k.pick)(ie,["rankdir","ranksep","edgesep","nodesep","align"])),[ie]);(0,c.useEffect)((()=>{var e=s?null==a?void 0:a.find((e=>e.id===s)):void 0;null==h||h(e)}),[a,s,h]),(0,c.useEffect)((()=>{x((e=>{var t=new(f().graphlib.Graph);for(var n of(t.setGraph(se),t.setDefaultEdgeLabel((function(){return{}})),null!=a?a:[])){var r=null==e?void 0:e.node(n.id);t.setNode(n.id,(null==r?void 0:r.data)===n?r:{id:n.id,data:n})}for(var i of null!=l?l:[])t.setEdge(i.source,i.target,{data:i});return t}))}),[l,a,se]),(0,c.useEffect)((()=>{if(y&&N&&0!==y.nodeCount()){for(var e of y.nodes()){var t,a,n=y.node(e);if(n){var l=N.get(e);n.width=(null!==(t=null==l?void 0:l.offsetWidth)&&void 0!==t?t:10)+2*oe,n.height=(null!==(a=null==l?void 0:l.offsetHeight)&&void 0!==a?a:10)+2*oe}else console.error("Diagram node not found: %s",e)}f().layout(y);var r=[];for(var i of y.nodes()){var o,s=y.node(i);if(s){r.push(s);var c=s.x-s.width/2+oe,d=s.y-s.height/2+oe,u=null===(o=N.get(i))||void 0===o?void 0:o.parentElement;u&&(u.style.left="".concat(c,"px"),u.style.top="".concat(d,"px"),u.style.visibility="visible")}}$(r),X(y.edges().map((e=>y.edge(e))))}}),[y,N,C,oe]);var{renderedLines:ce,markers:de}=(0,c.useMemo)((()=>function(e,t){var a=[],l=[],r=function(e){var r,i=null!==(r=null==t?void 0:t.find((t=>{return a=e.data,!!(n=t)&&(n.edgeType?[].concat(n.edgeType).includes(a.type):(0,w.checkIfByTransform)(n,{edge:a}));var a,n})))&&void 0!==r?r:{},{label:o}=i,s=(0,A.Z)(i,z),c=w.__secret_internals.legacyDoTransform({edge:e.data},s);if(!1===(null==c?void 0:c.draw))return 1;var d,u=(0,n.Z)((0,n.Z)({strokeColor:D,strokeWidth:I,curveType:L},c),{},{label:o,$id:(0,k.uniqueId)("line-")});if(u.arrow){var h={strokeColor:u.strokeColor};-1===(d=(0,k.findIndex)(l,h))&&(d=l.push(h)-1)}a.push((0,n.Z)((0,n.Z)({},e),{},{line:u,markerIndex:d}))};for(var i of e)r(i);return{renderedLines:a,markers:l}}(H,i)),[i,H]);(0,c.useEffect)((()=>{var e=ee.current;if(e&&!u){var t=e=>{var t=function(e,t){var{renderedNodes:a,renderedEdges:n,activeNodeId:l}=t,r=l?a.find((e=>e.id===l)):void 0;if(r){var i,o,s;switch(e.key||e.keyCode||e.which){case"ArrowLeft":case 37:o=R(a,r,-1),i="switch-active-node";break;case"ArrowUp":case 38:o=T(a,n,r,-1),i="switch-active-node";break;case"ArrowRight":case 39:o=R(a,r,1),i="switch-active-node";break;case"ArrowDown":case 40:o=T(a,n,r,1),i="switch-active-node";break;case"Backspace":case 8:case"Delete":case 46:i="delete-node",o=r}if(i)return e.preventDefault(),e.stopPropagation(),{action:i,node:null===(s=o)||void 0===s?void 0:s.data}}}(e,{renderedNodes:U,renderedEdges:H,activeNodeId:s});"delete-node"===(null==t?void 0:t.action)?null==g||g(t.node):"switch-active-node"===(null==t?void 0:t.action)&&t.node&&(null==v||v(t.node.id))};return e.addEventListener("keydown",t),()=>{e.removeEventListener("keydown",t)}}}),[s,U,H,u,v,g]);var ue=(0,c.useCallback)((e=>{e&&(B((e=>e+1)),W(e)),M((t=>t||!!e))}),[]),he=(0,c.useCallback)((e=>{e&&(_((e=>e+1)),K(e))}),[]);(0,c.useEffect)((()=>{var e=ee.current,t=j.current;if(e&&t){var a=!1,n=(0,p.sP)().scaleExtent([1,1]).on("start",(()=>{a=!1,G(!0)})).on("zoom",(e=>{a=!0,Q(e.transform)})).on("end",(()=>{G(!1),a||null==v||v(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)}))}}),[v]),(0,c.useEffect)((()=>{var e=ee.current;0!==U.length&&e&&!le&&(ne(function(e,t){var[a,n]=t,l=1/0,r=1/0,i=-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>i&&(i=h),v<r&&(r=v),f>o&&(o=f)}return[(a-(i-l))/2-r,(n-(o-r))/2-l]}(U,[e.clientWidth,e.clientHeight])),re(!0))}),[le,U]);var fe=(0,c.useMemo)((()=>"".concat((0,k.uniqueId)("diagram-"),"-")),[]),be="".concat(fe,"line-arrow-"),pe="".concat(fe,"clip-path-");(0,c.useEffect)((()=>{q((e=>0===e.length&&0===ce.length?e:ce.map((e=>{var{line:{text:t,label:a,$id:n},data:l}=e,r=V.current.get(n);if((t||a)&&r&&r.getAttribute("d")){var{x:i,y:o,width:s,height:c}=r.getBBox(),d=1e3,u=i-d,h=o-d,v=i+s+d,f=o+c+d,b=r.getPointAtLength(r.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)))}),[ce]);var[ge,me]=d().useState([]);return(0,c.useEffect)((()=>{O&&me(Y.map((e=>{var{id:t}=e,a=null==O?void 0:O.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))}),[P,O,Y]),"dagre"!==t?d().createElement("div",null,'Diagram layout not supported: "'.concat(t,'"')):d().createElement("div",{className:m()("diagram",{ready:E&&le}),tabIndex:-1,ref:ee},d().createElement("svg",{width:"100%",height:"100%",className:"lines"},d().createElement("defs",null,de.map(((e,t)=>{var{strokeColor:a}=e;return d().createElement("marker",{key:t,id:"".concat(be).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}))})),ge.map((e=>{var{x0:t,y0:a,w:n,h:l,id:r}=e,i=Y.find((e=>e.id===r));if(i){var{left:o,top:s,right:c,bottom:u}=i.lineRect;return d().createElement("clipPath",{key:r,id:"".concat(pe).concat(r)},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(ae[0]+J.x," ").concat(ae[1]+J.y,") scale(").concat(J.k,")")},ce.map((e=>{var{points:t,line:a,markerIndex:n}=e;return d().createElement("path",{ref:e=>V.current.set(a.$id,e),key:a.$id,stroke:a.strokeColor,strokeWidth:a.strokeWidth,d:S(t,a.arrow?-5:0,a.curveType),fill:"none",markerEnd:void 0===n?void 0:"url(#".concat(be).concat(n,")"),clipPath:ge.some((e=>e.id===a.$id))?"url(#".concat(pe).concat(a.$id,")"):void 0})})))),d().createElement("div",{className:m()("dragger",{grabbing:F}),ref:j}),d().createElement("div",{className:"line-labels",style:{left:ae[0]+J.x,top:ae[1]+J.y}},d().createElement(ve,{labels:Y,onRendered:he})),d().createElement("div",{className:"nodes",ref:te,style:{left:ae[0]+J.x,top:ae[1]+J.y}},d().createElement(Z,{nodes:a,nodeBricks:r,onRendered:ue})))}ue=Ie,({e:[K,$,X,q,F,J,V,te,ne,le,re,oe,se,ce,de],c:[pe,P]}=(0,s.Z)(ue,[[O,1,"layout"],[U,1,"nodes"],[H,1,"edges"],[Y,1,"nodeBricks"],[j,1,"lines"],[G,1,"layoutOptions"],[Q,1,"activeNodeId"],[ee,1,"disableKeyboardAction"],[ae,1,"activeNodeChangeEvent",e=>(0,o.Z)(e,Ne),(e,t)=>(0,i.Z)(e,Ne,t)],[ie,1,"nodeDelete",e=>(0,o.Z)(e,Re),(e,t)=>(0,i.Z)(e,Re,t)]],[_],0,(e=>De.has((0,r.Z)(e))),h.ReactNextElement)),P();var Ke,Ue,$e,He,Xe,Ye,qe,je,Fe,Ge,Je,Qe,Ve,et=a(8074),{defineElement:tt,property:at,event:nt}=(0,u.createDecorators)();Ue=tt("diagram.editable-label",{styleTexts:[et.Z]}),$e=at(),Xe=at({render:!1}),qe=nt({type:"label.change"});var lt=new WeakMap,rt=new WeakMap,it=new WeakMap,ot=new WeakMap,st=new WeakMap;class ct extends h.ReactNextElement{constructor(){super(...arguments),(0,l.Z)(this,ot,{get:ut,set:dt}),(0,l.Z)(this,lt,{writable:!0,value:(Je(this),He(this))}),(0,l.Z)(this,rt,{writable:!0,value:Ye(this)}),(0,l.Z)(this,it,{writable:!0,value:je(this)}),(0,l.Z)(this,st,{writable:!0,value:e=>{(0,o.Z)(this,ot).emit(e)}})}get label(){return(0,o.Z)(this,lt)}set label(e){(0,i.Z)(this,lt,e)}get type(){return(0,o.Z)(this,rt)}set type(e){(0,i.Z)(this,rt,e)}render(){return d().createElement(ht,{label:this.label,onLabelChange:(0,o.Z)(this,st)})}}function dt(e){Ge(this,e)}function ut(){return Fe(this)}function ht(e){var{label:t,onLabelChange:a}=e,n=null!=t?t:"",[l,r]=(0,c.useState)(n),[i,o]=(0,c.useState)(!1),[s,u]=(0,c.useState)(!1),h=(0,c.useRef)(null);(0,c.useEffect)((()=>{r(n)}),[n]);var v=(0,c.useCallback)((e=>{e.preventDefault(),e.stopPropagation(),o(!0)}),[]);(0,c.useEffect)((()=>{var e,t;i&&(null===(e=h.current)||void 0===e||e.focus({preventScroll:!0}),null===(t=h.current)||void 0===t||t.select())}),[i]);var f=(0,c.useCallback)((e=>{r(e.target.value)}),[]),b=(0,c.useCallback)((e=>{var t,a=e.key||e.keyCode||e.which;"Enter"!==a&&13!==a||null===(t=h.current)||void 0===t||t.blur()}),[]),p=(0,c.useCallback)((()=>{o(!1),u(!0)}),[]);return(0,c.useEffect)((()=>{s&&(null==a||a(l),u(!1))}),[l,a,s]),d().createElement("div",{className:m()("label",{editing:i})},d().createElement("input",{className:"label-input",value:l,ref:h,onChange:f,onKeyDown:b,onBlur:p}),d().createElement("div",{className:"label-text",onDoubleClick:v},l))}Qe=ct,({e:[He,Ye,je,Fe,Ge,Je],c:[Ve,Ke]}=(0,s.Z)(Qe,[[$e,1,"label"],[Xe,1,"type"],[qe,1,"labelChange",e=>(0,o.Z)(e,it),(e,t)=>(0,i.Z)(e,it,t)]],[Ue],0,(e=>st.has((0,r.Z)(e))),h.ReactNextElement)),Ke()},6436:(e,t,a)=>{a.d(t,{Z:()=>o});var n=a(9601),l=a.n(n),r=a(2609),i=a.n(r)()(l());i.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}",""]);const o=i.toString()},8074:(e,t,a)=>{a.d(t,{Z:()=>o});var n=a(9601),l=a.n(n),r=a(2609),i=a.n(r)()(l());i.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{display:none}.label:not(.editing) .label-input{display:none}',""]);const o=i.toString()}}]);
2
- //# sourceMappingURL=4922.f87b0602.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/4922.f87b0602.js","mappings":"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","sources":["webpack:///./src/diagram/NodeComponent.tsx","webpack:///./src/diagram/processors/findNodeBrick.ts","webpack:///./src/diagram/lines/curveLine.ts","webpack:///./src/diagram/processors/handleKeyboard.ts","webpack:///./src/diagram/constants.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 {\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 { 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\";\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 useCallback,\n useEffect,\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} from \"./interfaces\";\nimport { NodeComponentGroup } from \"./NodeComponent\";\nimport { curveLine } from \"./lines/curveLine\";\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 } = 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 onActiveNodeChange?(node: DiagramNode | undefined): void;\n onSwitchActiveNode?(id: string | undefined): void;\n onNodeDelete?(node: DiagramNode): void;\n}\n\nexport interface DiagramHandler {\n moveIntoView(id: string): void;\n}\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 #handleSwitchActiveNode = (id: string | undefined) => {\n this.activeNodeId = id;\n };\n\n render() {\n return (\n <EoDiagramComponent\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 />\n );\n }\n}\n\nexport function EoDiagramComponent({\n layout,\n nodes,\n edges,\n nodeBricks,\n lines,\n layoutOptions,\n activeNodeId,\n disableKeyboardAction,\n onActiveNodeChange,\n onSwitchActiveNode,\n onNodeDelete,\n}: EoDiagramProps) {\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 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 }, data: 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 <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(({ points, line, markerIndex }) => (\n <path\n ref={(element) => linePathsRef.current.set(line.$id, element)}\n key={line.$id}\n stroke={line.strokeColor}\n strokeWidth={line.strokeWidth}\n d={curveLine(points, line.arrow ? -5 : 0, line.curveType)}\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 ))}\n </g>\n </svg>\n <div className={classNames(\"dragger\", { grabbing })} ref={draggerRef} />\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 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_STROKE_COLOR,\n DEFAULT_LINE_STROKE_WIDTH,\n} from \"../constants\";\nimport { __secret_internals } from \"@next-core/runtime\";\n\nexport function getRenderedLinesAndMarkers(\n renderedEdges: RenderedEdge[],\n lines: LineConf[] | undefined\n) {\n const renderedLines: RenderedLine[] = [];\n const markers: LineMarker[] = [];\n for (const renderedEdge of renderedEdges) {\n const { label, ...restLineConf } =\n lines?.find((line) => matchEdgeByFilter(renderedEdge.data, line)) ?? {};\n\n const computedLineConf = __secret_internals.legacyDoTransform(\n { edge: renderedEdge.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 ...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 renderedLines.push({\n ...renderedEdge,\n line,\n markerIndex,\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, { useCallback, useEffect, useRef, useState } 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 } = createDecorators();\n\nexport interface EditableLabelProps {\n label?: string;\n type?: LabelType;\n}\n\nexport type LabelType = \"line\" | \"default\";\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 render() {\n return (\n <EditableLabelComponent\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 EditableLabelComponent({\n label: _label,\n onLabelChange,\n}: EditableLabelComponentProps) {\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 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 className={classNames(\"label\", { editing: editingLabel })}>\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}`, \"\"]);\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{display:none}.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","curveLine","points","arrowOffset","curveType","Array","isArray","curveFactory","curveBasis","curveBumpX","curveBumpY","curveMonotoneX","curveMonotoneY","curveNatural","curveLinear","arrowOffsetX","arrowOffsetY","x","x0","y","y0","length","x1","y1","ratio","Math","sqrt","pow","transformPoints","line","d","curve","lineFunction","moveOnX","renderedNodes","activeNode","direction","diff","candidates","filter","abs","minBy","moveOnY","renderedEdges","from","to","_ref3","DEFAULT_LINE_STROKE_COLOR","DEFAULT_LINE_STROKE_WIDTH","DEFAULT_LINE_CURVE_TYPE","LineLabelComponentGroup","labels","label","text","position","edge","style","left","top","LineLabelComponent","LineTextComponent","ref","_objectSpread","content","_ref4","parentElement","_EoDiagram","defineElement","property","event","createDecorators","_dec","styleTexts","styleText","_dec2","String","_dec3","attribute","_dec4","_dec5","_dec6","_dec7","_dec8","_dec9","Boolean","_dec10","_dec11","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_activeNodeChangeEvent","_handleActiveNodeChange","_J","_nodeDelete","_handleNodeDelete","_handleSwitchActiveNode","EoDiagram","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","get","_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","activeNodeId","layout","v","_classPrivateFieldSet","edges","lines","layoutOptions","disableKeyboardAction","render","EoDiagramComponent","onActiveNodeChange","onSwitchActiveNode","onNodeDelete","_set_activeNodeChangeEvent","_get_activeNodeChangeEvent","_set_nodeDelete","_get_nodeDelete","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","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","renderedEdge","_lines$find","matchEdgeByFilter","edgeType","restLineConf","_objectWithoutProperties","_excluded","computedLineConf","__secret_internals","legacyDoTransform","draw","markerIndex","strokeColor","strokeWidth","$id","uniqueId","arrow","marker","findIndex","getRenderedLinesAndMarkers","root","current","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","markerEnd","clipPath","clip","_class","c","_initClass","_applyDecs","o","_","has","_checkInRHS","_EditableLabel","_labelChange","_handleLabelChange","EditableLabel","_get_labelChange2","_set_labelChange2","_init_label","_init_type","_init_labelChange","EditableLabelComponent","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","onChange","onKeyDown","onBlur","onDoubleClick","___CSS_LOADER_EXPORT___","module","toString"],"sourceRoot":""}
@@ -1,3 +0,0 @@
1
- /*! For license information please see editable-label.6d9aebc9.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:()=>b,EditableLabelComponent:()=>R});var n,a,i,o,l,s,c,u,f,h,p,d,b,v=r(3395),g=r(1815),y=r(381),m=r(687),w=r(5066),Z=r(8657),x=r.n(Z),S=r(5727),E=r(305),k=(r(2006),r(2779)),j=r.n(k),C=r(8074),{defineElement:z,property:T,event:A}=(0,S.createDecorators)();a=z("diagram.editable-label",{styleTexts:[C.Z]}),i=T(),l=T({render:!1}),c=A({type:"label.change"});var O=new WeakMap,P=new WeakMap,M=new WeakMap,_=new WeakMap,D=new WeakMap;class N extends E.ReactNextElement{constructor(){super(...arguments),(0,v.Z)(this,_,{get:L,set:W}),(0,v.Z)(this,O,{writable:!0,value:(p(this),o(this))}),(0,v.Z)(this,P,{writable:!0,value:s(this)}),(0,v.Z)(this,M,{writable:!0,value:u(this)}),(0,v.Z)(this,D,{writable:!0,value:e=>{(0,m.Z)(this,_).emit(e)}})}get label(){return(0,m.Z)(this,O)}set label(e){(0,y.Z)(this,O,e)}get type(){return(0,m.Z)(this,P)}set type(e){(0,y.Z)(this,P,e)}render(){return x().createElement(R,{label:this.label,onLabelChange:(0,m.Z)(this,D)})}}function W(e){h(this,e)}function L(){return f(this)}function R(e){var{label:t,onLabelChange:r}=e,n=null!=t?t:"",[a,i]=(0,Z.useState)(n),[o,l]=(0,Z.useState)(!1),[s,c]=(0,Z.useState)(!1),u=(0,Z.useRef)(null);(0,Z.useEffect)((()=>{i(n)}),[n]);var f=(0,Z.useCallback)((e=>{e.preventDefault(),e.stopPropagation(),l(!0)}),[]);(0,Z.useEffect)((()=>{var e,t;o&&(null===(e=u.current)||void 0===e||e.focus({preventScroll:!0}),null===(t=u.current)||void 0===t||t.select())}),[o]);var h=(0,Z.useCallback)((e=>{i(e.target.value)}),[]),p=(0,Z.useCallback)((e=>{var t,r=e.key||e.keyCode||e.which;"Enter"!==r&&13!==r||null===(t=u.current)||void 0===t||t.blur()}),[]),d=(0,Z.useCallback)((()=>{l(!1),c(!0)}),[]);return(0,Z.useEffect)((()=>{s&&(null==r||r(a),c(!1))}),[a,r,s]),x().createElement("div",{className:j()("label",{editing:o})},x().createElement("input",{className:"label-input",value:a,ref:u,onChange:h,onKeyDown:p,onBlur:d}),x().createElement("div",{className:"label-text",onDoubleClick:f},a))}d=N,({e:[o,s,u,f,h,p],c:[b,n]}=(0,w.Z)(d,[[i,1,"label"],[l,1,"type"],[c,1,"labelChange",e=>(0,m.Z)(e,M),(e,t)=>(0,y.Z)(e,M,t)]],[a],0,(e=>D.has((0,g.Z)(e))),E.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 o=a.apply(null,r);o&&e.push(o)}}else if("object"===i){if(r.toString!==Object.prototype.toString&&!r.toString.toString().includes("[native code]")){e.push(r.toString());continue}for(var l in r)n.call(r,l)&&r[l]&&e.push(l)}}}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:()=>l});var n=r(9601),a=r.n(n),i=r(2609),o=r.n(i)()(a());o.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{display:none}.label:not(.editing) .label-input{display:none}',""]);const l=o.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 o={};if(n)for(var l=0;l<this.length;l++){var s=this[l][0];null!=s&&(o[s]=!0)}for(var c=0;c<e.length;c++){var u=[].concat(e[c]);n&&o[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:()=>l});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 o=r(5850);function l(e,t,r,l,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,o,l,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 S={},E=[],k=3===o?"get":4===o||b?"set":"value";p?(d||b?S={get:i((function(){return Z(this)}),a,"get"),set:function(e){t[4](this,e)}}:S[k]=Z,d||i(S[k],a,2===o?"":k)):d||(S=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"][o],name:a,metadata:l,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!==o?2===o?O=function(e){return g(e),S.value}:((o<2||3===o)&&(O=u(S,"get",p&&g)),(o<2||4===o)&&(P=u(S,"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:S.get,set:S.set}:S[k],A),b){if("object"==(0,n.Z)(m)&&m)(y=h(m.get,"accessor.get"))&&(S.get=y),(y=h(m.set,"accessor.set"))&&(S.set=y),(y=h(m.init,"accessor.init"))&&E.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?E.push(m):S[k]=m)}}finally{T.v=!0}}return(d||b)&&c.push((function(e,t){for(var r=E.length-1;r>=0;r--)t=E[r].call(e,t);return t})),d||x||(p?b?c.push(u(S,"get"),u(S,"set")):c.push(2===o?S[k]:u.call.bind(S[k])):Object.defineProperty(e,a,S)),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,l,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 S=u.get(x);if(!0===S||3===S&&4!==v||4===S&&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,o.Z)(g),v,n,w?l=l||[]:i=i||[],s,w,y,Z,1===v,w&&y?c:r)}}return h(i),h(l),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],l,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.6d9aebc9.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/editable-label.6d9aebc9.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, { useCallback, useEffect, useRef, useState } 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 } = createDecorators();\n\nexport interface EditableLabelProps {\n label?: string;\n type?: LabelType;\n}\n\nexport type LabelType = \"line\" | \"default\";\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 render() {\n return (\n <EditableLabelComponent\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 EditableLabelComponent({\n label: _label,\n onLabelChange,\n}: EditableLabelComponentProps) {\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 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 className={classNames(\"label\", { editing: editingLabel })}>\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{display:none}.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","createDecorators","_dec","styleTexts","styleText","_dec2","_dec3","render","_dec4","type","_A","WeakMap","_B","_C","_labelChange","_handleLabelChange","EditableLabel","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","get","_get_labelChange2","set","_set_labelChange2","writable","value","_initProto","_init_label","_init_type","_init_labelChange","_classPrivateFieldGet","this","emit","label","v","_classPrivateFieldSet","React","EditableLabelComponent","onLabelChange","_set_labelChange","_get_labelChange","_ref","_label","currentLabel","setCurrentLabel","useState","editingLabel","setEditingLabel","shouldEmitLabelChange","setShouldEmitLabelChange","labelInputRef","useRef","useEffect","handleEditLabel","useCallback","e","preventDefault","stopPropagation","_labelInputRef$curren","_labelInputRef$curren2","current","focus","preventScroll","select","handleInputChange","target","handleInputKeydown","_labelInputRef$curren3","key","keyCode","which","blur","handleInputBlur","className","classNames","editing","ref","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":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_next_bricks_diagram=self.webpackChunk_next_bricks_diagram||[]).push([[9016],{7853:(e,t,a)=>{a.d(t,{L8:()=>s});var n=a(3028),r=a(8657),i=a.n(r),o=a(9494),l=a(9464);function s(e){var{labels:t,onRendered:a}=e,[n,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 a=t.indexOf(e);return-1===a?t:t.slice(0,a).concat(t.slice(a+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==a||a(n?u:null)}),[u,n]),i().createElement(i().Fragment,null,null==t?void 0:t.map((e=>{var{text:t,label:a,position:n,id:r,edge:o}=e;return a?i().createElement("div",{key:r,className:"line-label",style:{left:n[0],top:n[1]}},i().createElement(c,{id:r,edge:o,label:a,onRendered:v,onUnmount:h})):i().createElement(d,{key:r,id:r,text:t,position:n,onRendered:v})})))}function d(e){var{id:t,text:a,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,n.Z)({left:o[0],top:o[1]},a.style)},a.content)}function c(e){var{id:t,edge:a,label:n,onRendered:s,onUnmount:d}=e,c=(0,r.useMemo)((()=>(0,l.checkIfByTransform)(n,{edge:a})?n.useBrick:null),[a,n]),u=(0,r.useMemo)((()=>({edge:a})),[a]);(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,a)=>{a.d(t,{n:()=>l});var n=a(8657),r=a.n(n),i=a(9494),o=a(3442);function l(e){var{nodes:t,nodeBricks:a,onRendered:i}=e,[o,l]=(0,n.useState)(!1),[d,c]=(0,n.useState)([]),u=(0,n.useMemo)((()=>new Map),[]),v=(0,n.useCallback)(((e,t)=>{t&&u.set(e,t),c((t=>t.includes(e)?t:t.concat(e)))}),[u]),h=(0,n.useCallback)((e=>{c((t=>{var a=t.indexOf(e);return-1===a?t:t.slice(0,a).concat(t.slice(a+1))})),u.delete(e)}),[u]);return(0,n.useEffect)((()=>{l(!(null!=t&&t.some((e=>!d.includes(e.id)))))}),[t,d]),(0,n.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:a,node:e,onRendered:v,onUnmount:h})))))}function s(e){var{node:t,nodeBricks:a,onRendered:l,onUnmount:s}=e,d=(0,n.useMemo)((()=>{var e;return null===(e=(0,o.U)(t,a))||void 0===e?void 0:e.useBrick}),[t,a]),c=(0,n.useMemo)((()=>({node:t})),[t]);(0,n.useEffect)((()=>{d||setTimeout((()=>{null==l||l(t.id,null)}))}),[t.id,l,d]),(0,n.useEffect)((()=>()=>{null==s||s(t.id)}),[]);var u=(0,n.useCallback)((e=>{e&&setTimeout((()=>{null==l||l(t.id,e)}))}),[t.id,l]),v=(0,n.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,a)=>{a.d(t,{IC:()=>n,_w:()=>r,no:()=>i});var n="var(--palette-gray-5)",r=1,i="curveBasis"},2715:(e,t,a)=>{a.r(t),a.d(t,{EoDiagram:()=>R,EoDiagramComponent:()=>Me});var n,r,i,o,l,s,d,c,u,v,h,f,g,p,m,b,k,y,w,Z,E,x,M,B,N,C,W,S,R,I=a(3028),T=a(3395),A=a(1815),D=a(381),L=a(687),_=a(5066),P=a(8657),U=a.n(P),O=a(5727),K=a(305),$=(a(2006),a(908)),z=a.n($),H=a(1105),X=a(7397),Y=a(2779),q=a.n(Y),j=a(1211),F=a(4370),G=a(5807),J=a(5702),Q=a(6365),V=a(693),ee=a(6436),te=a(7853),{defineElement:ae,property:ne,event:re}=(0,O.createDecorators)();r=ae("eo-diagram",{styleTexts:[ee.Z]}),i=ne({type:String}),l=ne({attribute:!1}),d=ne({attribute:!1}),u=ne({attribute:!1}),h=ne({attribute:!1}),g=ne({attribute:!1}),m=ne({type:String}),k=ne({type:Boolean}),w=re({type:"activeNode.change"}),M=re({type:"node.delete"});var ie=new WeakMap,oe=new WeakMap,le=new WeakMap,se=new WeakMap,de=new WeakMap,ce=new WeakMap,ue=new WeakMap,ve=new WeakMap,he=new WeakMap,fe=new WeakMap,ge=new WeakMap,pe=new WeakMap,me=new WeakMap,be=new WeakMap,ke=new WeakMap;class ye extends K.ReactNextElement{constructor(){super(...arguments),(0,T.Z)(this,me,{get:xe,set:Ee}),(0,T.Z)(this,fe,{get:Ze,set:we}),(0,T.Z)(this,ie,{writable:!0,value:(W(this),o(this))}),(0,T.Z)(this,oe,{writable:!0,value:s(this)}),(0,T.Z)(this,le,{writable:!0,value:c(this)}),(0,T.Z)(this,se,{writable:!0,value:v(this)}),(0,T.Z)(this,de,{writable:!0,value:f(this)}),(0,T.Z)(this,ce,{writable:!0,value:p(this)}),(0,T.Z)(this,ue,{writable:!0,value:b(this)}),(0,T.Z)(this,ve,{writable:!0,value:y(this)}),(0,T.Z)(this,he,{writable:!0,value:Z(this)}),(0,T.Z)(this,ge,{writable:!0,value:e=>{(0,L.Z)(this,fe).emit(e)}}),(0,T.Z)(this,pe,{writable:!0,value:B(this)}),(0,T.Z)(this,be,{writable:!0,value:e=>{(0,L.Z)(this,me).emit(e)}}),(0,T.Z)(this,ke,{writable:!0,value:e=>{this.activeNodeId=e}})}get layout(){return(0,L.Z)(this,ie)}set layout(e){(0,D.Z)(this,ie,e)}get nodes(){return(0,L.Z)(this,oe)}set nodes(e){(0,D.Z)(this,oe,e)}get edges(){return(0,L.Z)(this,le)}set edges(e){(0,D.Z)(this,le,e)}get nodeBricks(){return(0,L.Z)(this,se)}set nodeBricks(e){(0,D.Z)(this,se,e)}get lines(){return(0,L.Z)(this,de)}set lines(e){(0,D.Z)(this,de,e)}get layoutOptions(){return(0,L.Z)(this,ce)}set layoutOptions(e){(0,D.Z)(this,ce,e)}get activeNodeId(){return(0,L.Z)(this,ue)}set activeNodeId(e){(0,D.Z)(this,ue,e)}get disableKeyboardAction(){return(0,L.Z)(this,ve)}set disableKeyboardAction(e){(0,D.Z)(this,ve,e)}render(){return U().createElement(Me,{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,L.Z)(this,ge),onSwitchActiveNode:(0,L.Z)(this,ke),onNodeDelete:(0,L.Z)(this,be)})}}function we(e){x(this,e)}function Ze(){return E(this)}function Ee(e){C(this,e)}function xe(){return N(this)}function Me(e){var{layout:t,nodes:a,edges:n,nodeBricks:r,lines:i,layoutOptions:o,activeNodeId:l,disableKeyboardAction:s,onActiveNodeChange:d,onSwitchActiveNode:c,onNodeDelete:u}=e,[v,h]=(0,P.useState)(null),[f,g]=(0,P.useState)(!1),[p,m]=(0,P.useState)(0),[b,k]=(0,P.useState)(null),[y,w]=(0,P.useState)(0),[Z,E]=(0,P.useState)(null),[x,M]=(0,P.useState)([]),[B,N]=(0,P.useState)([]),[C,W]=(0,P.useState)([]),S=(0,P.useRef)(null),[R,T]=(0,P.useState)(!1),[A,D]=(0,P.useState)({k:1,x:0,y:0}),L=(0,P.useRef)(new Map),_=(0,P.useRef)(null),O=(0,P.useRef)(null),[K,$]=(0,P.useState)([0,0]),[Y,ee]=(0,P.useState)(!1),ae=(0,P.useMemo)((()=>(0,I.Z)({rankdir:"TB",ranksep:50,edgesep:10,nodesep:50,nodePadding:0},o)),[o]),{nodePadding:ne}=ae,re=(0,P.useMemo)((()=>(0,j.pick)(ae,["rankdir","ranksep","edgesep","nodesep","align"])),[ae]);(0,P.useEffect)((()=>{var e=l?null==a?void 0:a.find((e=>e.id===l)):void 0;null==d||d(e)}),[a,l,d]),(0,P.useEffect)((()=>{h((e=>{var t=new(z().graphlib.Graph);for(var r of(t.setGraph(re),t.setDefaultEdgeLabel((function(){return{}})),null!=a?a:[])){var i=null==e?void 0:e.node(r.id);t.setNode(r.id,(null==i?void 0:i.data)===r?i:{id:r.id,data:r})}for(var o of null!=n?n:[])t.setEdge(o.source,o.target,{data:o});return t}))}),[n,a,re]),(0,P.useEffect)((()=>{if(v&&b&&0!==v.nodeCount()){for(var e of v.nodes()){var t,a,n=v.node(e);if(n){var r=b.get(e);n.width=(null!==(t=null==r?void 0:r.offsetWidth)&&void 0!==t?t:10)+2*ne,n.height=(null!==(a=null==r?void 0:r.offsetHeight)&&void 0!==a?a:10)+2*ne}else console.error("Diagram node not found: %s",e)}z().layout(v);var i=[];for(var o of v.nodes()){var l,s=v.node(o);if(s){i.push(s);var d=s.x-s.width/2+ne,c=s.y-s.height/2+ne,u=null===(l=b.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")}}M(i),N(v.edges().map((e=>v.edge(e))))}}),[v,b,p,ne]);var{renderedLines:ie,markers:oe}=(0,P.useMemo)((()=>(0,V.b)(B,i)),[i,B]);(0,P.useEffect)((()=>{var e=_.current;if(e&&!s){var t=e=>{var t=(0,J.p)(e,{renderedNodes:x,renderedEdges:B,activeNodeId:l});"delete-node"===(null==t?void 0:t.action)?null==u||u(t.node):"switch-active-node"===(null==t?void 0:t.action)&&t.node&&(null==c||c(t.node.id))};return e.addEventListener("keydown",t),()=>{e.removeEventListener("keydown",t)}}}),[l,x,B,s,c,u]);var le=(0,P.useCallback)((e=>{e&&(m((e=>e+1)),k(e)),g((t=>t||!!e))}),[]),se=(0,P.useCallback)((e=>{e&&(w((e=>e+1)),E(e))}),[]);(0,P.useEffect)((()=>{var e=_.current,t=S.current;if(e&&t){var a=!1,n=(0,X.sP)().scaleExtent([1,1]).on("start",(()=>{a=!1,T(!0)})).on("zoom",(e=>{a=!0,D(e.transform)})).on("end",(()=>{T(!1),a||null==c||c(void 0)}));(0,H.Z)(t).call(n),(0,H.Z)(e).on("wheel.zoom",(e=>{e.stopPropagation(),e.preventDefault(),n.translateBy((0,H.Z)(t),e.wheelDeltaX/5,e.wheelDeltaY/5)}))}}),[c]),(0,P.useEffect)((()=>{var e=_.current;0!==x.length&&e&&!Y&&($((0,Q.i)(x,[e.clientWidth,e.clientHeight])),ee(!0))}),[Y,x]);var de=(0,P.useMemo)((()=>"".concat((0,j.uniqueId)("diagram-"),"-")),[]),ce="".concat(de,"line-arrow-"),ue="".concat(de,"clip-path-");(0,P.useEffect)((()=>{W((e=>0===e.length&&0===ie.length?e:ie.map((e=>{var{line:{text:t,label:a,$id:n},data:r}=e,i=L.current.get(n);if((t||a)&&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,g=i.getPointAtLength(i.getTotalLength()/2);return{text:t,label:a,edge:r,position:[g.x,g.y],lineRect:{left:u,top:v,right:h,bottom:f},id:n}}})).filter(Boolean)))}),[ie]);var[ve,he]=U().useState([]);return(0,P.useEffect)((()=>{Z&&he(C.map((e=>{var{id:t}=e,a=null==Z?void 0:Z.get(t);if(a){var{offsetWidth:n,offsetHeight:r}=a;if(0!==n&&0!==r)return{x0:a.offsetLeft-n/2-3,y0:a.offsetTop-r/2-3,w:n+6,h:r+6,id:t}}})).filter(Boolean))}),[y,Z,C]),"dagre"!==t?U().createElement("div",null,'Diagram layout not supported: "'.concat(t,'"')):U().createElement("div",{className:q()("diagram",{ready:f&&Y}),tabIndex:-1,ref:_},U().createElement("svg",{width:"100%",height:"100%",className:"lines"},U().createElement("defs",null,oe.map(((e,t)=>{var{strokeColor:a}=e;return U().createElement("marker",{key:t,id:"".concat(ce).concat(t),viewBox:"0 0 6 6",refX:3,refY:3,markerWidth:6,markerHeight:6,orient:"auto"},U().createElement("path",{d:"M 0.5 0.5 L 5.5 3 L 0.5 5.5 z",stroke:a,strokeWidth:1,fill:a}))})),ve.map((e=>{var{x0:t,y0:a,w:n,h:r,id:i}=e,o=C.find((e=>e.id===i));if(o){var{left:l,top:s,right:d,bottom:c}=o.lineRect;return U().createElement("clipPath",{key:i,id:"".concat(ue).concat(i)},U().createElement("polygon",{points:["".concat(t,",").concat(a+r),"".concat(t+n,",").concat(a+r),"".concat(t+n,",").concat(a),"".concat(t,",").concat(a),"".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(" ")}))}}))),U().createElement("g",{transform:"translate(".concat(K[0]+A.x," ").concat(K[1]+A.y,") scale(").concat(A.k,")")},ie.map((e=>{var{points:t,line:a,markerIndex:n}=e;return U().createElement("path",{ref:e=>L.current.set(a.$id,e),key:a.$id,stroke:a.strokeColor,strokeWidth:a.strokeWidth,d:(0,G.M)(t,a.arrow?-5:0,a.curveType),fill:"none",markerEnd:void 0===n?void 0:"url(#".concat(ce).concat(n,")"),clipPath:ve.some((e=>e.id===a.$id))?"url(#".concat(ue).concat(a.$id,")"):void 0})})))),U().createElement("div",{className:q()("dragger",{grabbing:R}),ref:S}),U().createElement("div",{className:"line-labels",style:{left:K[0]+A.x,top:K[1]+A.y}},U().createElement(te.L8,{labels:C,onRendered:se})),U().createElement("div",{className:"nodes",ref:O,style:{left:K[0]+A.x,top:K[1]+A.y}},U().createElement(F.n,{nodes:a,nodeBricks:r,onRendered:le})))}S=ye,({e:[o,s,c,v,f,p,b,y,Z,E,x,B,N,C,W],c:[R,n]}=(0,_.Z)(S,[[i,1,"layout"],[l,1,"nodes"],[d,1,"edges"],[u,1,"nodeBricks"],[h,1,"lines"],[g,1,"layoutOptions"],[m,1,"activeNodeId"],[k,1,"disableKeyboardAction"],[w,1,"activeNodeChangeEvent",e=>(0,L.Z)(e,he),(e,t)=>(0,D.Z)(e,he,t)],[M,1,"nodeDelete",e=>(0,L.Z)(e,pe),(e,t)=>(0,D.Z)(e,pe,t)]],[r],0,(e=>ke.has((0,A.Z)(e))),K.ReactNextElement)),n()},5807:(e,t,a)=>{a.d(t,{M:()=>d});var n=a(3698),r=a(1479),i=a(6481),o=a(9389),l=a(8282),s=a(5004);function d(e,t,a){if(!Array.isArray(e))return"";var d;switch(a){case"curveBasis":d=n.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:g}=e[e.length-1],p=t/Math.sqrt(Math.pow(f-v,2)+Math.pow(g-h,2));c=(v-f)*p,u=(h-g)*p}var m=e;return(0,s.Z)().x(((t,a)=>t.x-(a===e.length-1?c:0))).y(((t,a)=>t.y-(a===e.length-1?u:0))).curve(d)(m)}},3442:(e,t,a)=>{a.d(t,{U:()=>r});var n=a(9464);function r(e,t){return null==t?void 0:t.find((t=>t.nodeType?[].concat(t.nodeType).includes(e.type):(0,n.checkIfByTransform)(t,{node:e})))}},6365:(e,t,a)=>{function n(e,t){var[a,n]=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[(a-(o-r))/2-i,(n-(l-i))/2-r]}a.d(t,{i:()=>n})},693:(e,t,a)=>{a.d(t,{b:()=>c});var n=a(3028),r=a(2159),i=a(1211),o=a(5093),l=a(5318),s=a(9464),d=["label"];function c(e,t){var a=[],c=[],u=function(e){var u,v=null!==(u=null==t?void 0:t.find((t=>(0,o.o)(e.data,t))))&&void 0!==u?u:{},{label:h}=v,f=(0,r.Z)(v,d),g=s.__secret_internals.legacyDoTransform({edge:e.data},f);if(!1===(null==g?void 0:g.draw))return 1;var p,m=(0,n.Z)((0,n.Z)({strokeColor:l.IC,strokeWidth:l._w,curveType:l.no},g),{},{label:h,$id:(0,i.uniqueId)("line-")});if(m.arrow){var b={strokeColor:m.strokeColor};-1===(p=(0,i.findIndex)(c,b))&&(p=c.push(b)-1)}a.push((0,n.Z)((0,n.Z)({},e),{},{line:m,markerIndex:p}))};for(var v of e)u(v);return{renderedLines:a,markers:c}}},5702:(e,t,a)=>{a.d(t,{p:()=>r});var n=a(1211);function r(e,t){var{renderedNodes:a,renderedEdges:n,activeNodeId:r}=t,l=r?a.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(a,l,-1),s="switch-active-node";break;case"ArrowUp":case 38:d=o(a,n,l,-1),s="switch-active-node";break;case"ArrowRight":case 39:d=i(a,l,1),s="switch-active-node";break;case"ArrowDown":case 40:d=o(a,n,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,a){var r,i=e.filter((e=>e!==t&&(r=(e.x-t.x)*a)>0&&r>Math.abs(t.y-e.y)));return(0,n.minBy)(i,(e=>(t.y-e.y)**2+(t.x-e.x)**2))}function o(e,t,a,r){var i=1===r?"source":"target",o=1===r?"target":"source",l=t.filter((e=>{var{data:t}=e;return t[i]===a.id&&t[o]!==a.id})).map((t=>{var{data:a}=t;return e.find((e=>e.id===a[o]))})).filter((e=>e&&(e.y-a.y)*r>0));return(0,n.minBy)(l,(e=>(a.y-e.y)**2+(a.x-e.x)**2))}},5093:(e,t,a)=>{a.d(t,{o:()=>r});var n=a(9464);function r(e,t){return!!t&&(t.edgeType?[].concat(t.edgeType).includes(e.type):(0,n.checkIfByTransform)(t,{edge:e}))}},6436:(e,t,a)=>{a.d(t,{Z:()=>l});var n=a(9601),r=a.n(n),i=a(2609),o=a.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}",""]);const l=o.toString()}}]);
2
- //# sourceMappingURL=eo-diagram.639ed2b0.js.map