@next-bricks/diagram 0.64.0 → 0.64.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bricks.json +1 -1
- package/dist/chunks/{114.f4c45fb4.js → 114.3dc39f03.js} +2 -2
- package/dist/chunks/{114.f4c45fb4.js.map → 114.3dc39f03.js.map} +1 -1
- package/dist/chunks/296.c25216ac.js +2 -0
- package/dist/chunks/{296.f3b52669.js.map → 296.c25216ac.js.map} +1 -1
- package/dist/chunks/3171.373e8a96.js +2 -0
- package/dist/chunks/{3171.4e111cd1.js.map → 3171.373e8a96.js.map} +1 -1
- package/dist/chunks/3233.e2b04c10.js +3 -0
- package/dist/chunks/{3233.df97f221.js.map → 3233.e2b04c10.js.map} +1 -1
- package/dist/chunks/{3933.e47efe53.js → 3933.8b394359.js} +2 -2
- package/dist/chunks/{3933.e47efe53.js.map → 3933.8b394359.js.map} +1 -1
- package/dist/chunks/4837.c1881500.js +2 -0
- package/dist/chunks/{4837.11c3f298.js.map → 4837.c1881500.js.map} +1 -1
- package/dist/chunks/5552.189bdeab.js +2 -0
- package/dist/chunks/{5552.c1fe77c8.js.map → 5552.189bdeab.js.map} +1 -1
- package/dist/chunks/5670.73de56d6.js +3 -0
- package/dist/chunks/5670.73de56d6.js.map +1 -0
- package/dist/chunks/{6314.449f20cc.js → 6314.8105e59b.js} +2 -2
- package/dist/chunks/{6314.449f20cc.js.map → 6314.8105e59b.js.map} +1 -1
- package/dist/chunks/7218.9fa75d3e.js +2 -0
- package/dist/chunks/{7218.3d3b9880.js.map → 7218.9fa75d3e.js.map} +1 -1
- package/dist/chunks/{7733.43792e2a.js → 7733.49c9fd7f.js} +2 -2
- package/dist/chunks/{7733.43792e2a.js.map → 7733.49c9fd7f.js.map} +1 -1
- package/dist/chunks/{871.cf918ecb.js → 871.6fee04f1.js} +2 -2
- package/dist/chunks/{871.cf918ecb.js.map → 871.6fee04f1.js.map} +1 -1
- package/dist/chunks/9140.506e9829.js +3 -0
- package/dist/chunks/9140.506e9829.js.map +1 -0
- package/dist/chunks/{6730.b6d7107a.js → 9441.e15ae062.js} +2 -2
- package/dist/chunks/{6730.b6d7107a.js.map → 9441.e15ae062.js.map} +1 -1
- package/dist/chunks/{9711.8e213d2c.js → 9711.cef255cc.js} +2 -2
- package/dist/chunks/{9711.8e213d2c.js.map → 9711.cef255cc.js.map} +1 -1
- package/dist/chunks/{editable-label.f986264b.js → editable-label.90e84065.js} +3 -3
- package/dist/chunks/{editable-label.f986264b.js.map → editable-label.90e84065.js.map} +1 -1
- package/dist/chunks/{eo-diagram.b6a11fe1.js → eo-diagram.a33d3ced.js} +2 -2
- package/dist/chunks/{eo-diagram.b6a11fe1.js.map → eo-diagram.a33d3ced.js.map} +1 -1
- package/dist/chunks/{eo-display-canvas.0119f61b.js → eo-display-canvas.24f8f219.js} +2 -2
- package/dist/chunks/{eo-display-canvas.0119f61b.js.map → eo-display-canvas.24f8f219.js.map} +1 -1
- package/dist/chunks/{eo-draw-canvas.bed82f27.js → eo-draw-canvas.f4edccba.js} +2 -2
- package/dist/chunks/{eo-draw-canvas.bed82f27.js.map → eo-draw-canvas.f4edccba.js.map} +1 -1
- package/dist/chunks/{experimental-node.fcd8f903.js → experimental-node.6a8615d0.js} +2 -2
- package/dist/chunks/{experimental-node.fcd8f903.js.map → experimental-node.6a8615d0.js.map} +1 -1
- package/dist/chunks/main.c2629246.js +2 -0
- package/dist/chunks/{main.962d2671.js.map → main.c2629246.js.map} +1 -1
- package/dist/examples.json +3 -3
- package/dist/index.9e01b1a6.js +2 -0
- package/dist/index.9e01b1a6.js.map +1 -0
- package/dist/manifest.json +40 -40
- package/package.json +4 -4
- package/dist/chunks/296.f3b52669.js +0 -2
- package/dist/chunks/3171.4e111cd1.js +0 -2
- package/dist/chunks/3233.df97f221.js +0 -3
- package/dist/chunks/4837.11c3f298.js +0 -2
- package/dist/chunks/5552.c1fe77c8.js +0 -2
- package/dist/chunks/5670.d0d814f7.js +0 -3
- package/dist/chunks/5670.d0d814f7.js.map +0 -1
- package/dist/chunks/7218.3d3b9880.js +0 -2
- package/dist/chunks/9140.08761fe0.js +0 -3
- package/dist/chunks/9140.08761fe0.js.map +0 -1
- package/dist/chunks/main.962d2671.js +0 -2
- package/dist/index.d1c14125.js +0 -2
- package/dist/index.d1c14125.js.map +0 -1
- /package/dist/chunks/{3233.df97f221.js.LICENSE.txt → 3233.e2b04c10.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{5670.d0d814f7.js.LICENSE.txt → 5670.73de56d6.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{9140.08761fe0.js.LICENSE.txt → 9140.506e9829.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{editable-label.f986264b.js.LICENSE.txt → editable-label.90e84065.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_diagram=globalThis.webpackChunk_next_bricks_diagram||[]).push([[
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_diagram=globalThis.webpackChunk_next_bricks_diagram||[]).push([[9441],{733:(t,e,r)=>{function i(t,e,r,i){const o=r?n(t,r):t,h=i?n(e,i):e,s=Math.min(o.x-o.width/2,h.x-h.width/2),y=Math.max(o.x+o.width/2,h.x+h.width/2),x=Math.min(o.y-o.height/2,h.y-h.height/2),a=Math.max(o.y+o.height/2,h.y+h.height/2);return y-s<o.width+h.width&&a-x<o.height+h.height}function n(t,e){return{x:t.x-t.width/2-e,y:t.y-t.height/2-e,width:t.width+2*e,height:t.height+2*e}}r.d(e,{w:()=>i})},3188:(t,e,r)=>{r.d(e,{h:()=>o});var i=r(733),n=r(4525);function o(t,e,r,n){const o=!(null==n||!n.exitPosition),s=!(null==n||!n.entryPosition);if(t===e||(0,i.w)(t,e,0,0)&&!o&&!s)return null;let y,x,a=0,c=0;if(r){const i=e.x-t.x,n=e.y-t.y,o=Math.atan2(n,i);a=r/2*Math.cos(o+Math.PI/2),c=r/2*Math.sin(o+Math.PI/2)}const l=[o?[t.x+(n.exitPosition.x-.5)*t.width,t.y+(n.exitPosition.y-.5)*t.height]:[t.x+a,t.y+c],s?[e.x+(n.entryPosition.x-.5)*e.width,e.y+(n.entryPosition.y-.5)*e.height]:[e.x+a,e.y+c]];if(o)y=l[0];else{const e=h(t,l);y=e.length>0?e[0]:[t.x,t.y]}if(s)x=l[1];else{const t=h(e,l);x=t.length>0?t[0]:[e.x,e.y]}return[{x:y[0],y:y[1]},{x:x[0],y:x[1]}]}function h(t,e){const r=[[t.x-t.width/2,t.y-t.height/2],[t.x+t.width/2,t.y-t.height/2],[t.x+t.width/2,t.y+t.height/2],[t.x-t.width/2,t.y+t.height/2]],i=[];for(let t=0;t<4;t++)i.push([r[t],r[(t+1)%4]]);const o=[];for(const t of i){const r=(0,n.y)(e[0],e[1],t[0],t[1]);r&&o.push(r)}return o}},3739:(t,e,r)=>{r.d(e,{c:()=>o});var i=r(8769),n=r.n(i);function o(t){let e,{id:r,type:i,strokeColor:o}=t;switch(i){case"0..1":e=y;break;case"0..N":e=x;break;case"circle":e=h;break;default:e=s}return n().createElement(e,{id:r,strokeColor:o})}function h(t){let{id:e,strokeColor:r}=t;return n().createElement("marker",{viewBox:"0 0 9 9",refX:3,refY:3,id:e,overflow:"visible",markerWidth:9,markerHeight:9},n().createElement("circle",{stroke:"none",fill:r,cx:3,cy:3,r:3}))}function s(t){let{id:e,strokeColor:r}=t;return n().createElement("marker",{id:e,viewBox:"0 0 6 6",refX:5,refY:3,markerWidth:6,markerHeight:6,orient:"auto-start-reverse",strokeLinejoin:"round"},n().createElement("path",{d:"M 0.5 0.5 L 5.5 3 L 0.5 5.5 z",stroke:r,strokeWidth:1,fill:r}))}function y(t){let{id:e,strokeColor:r}=t;return n().createElement("marker",{id:e,viewBox:"0 0 21 11",refX:.5,refY:5.5,markerWidth:21,markerHeight:11,orient:"auto-start-reverse"},n().createElement("path",{d:"M 5.5 5.5 m 5 0 a 5 5 0 1 0 -10 0 a 5 5 0 1 0 10 0 M 15.5 0.5 V 10.5 M 10.5 5.5 H 20.5",stroke:r,strokeWidth:1,fill:"none"}))}function x(t){let{id:e,strokeColor:r}=t;return n().createElement("marker",{id:e,viewBox:"0 0 21 11",refX:.5,refY:5.5,markerWidth:21,markerHeight:11,orient:"auto-start-reverse"},n().createElement("path",{d:"M 5.5 5.5 m 5 0 a 5 5 0 1 0 -10 0 a 5 5 0 1 0 10 0 M 20.5 0.5 L 10.5 5.5 L 20.5 10.5 M 10.5 5.5 H 20.5",stroke:r,strokeWidth:1,fill:"none"}))}},4059:(t,e,r)=>{r.d(e,{o:()=>n});const i=20;function n(t,e,r,n,h,s){const y=o(t,r,h),x=o(e,n,s);let a=[],c=!1;const l="top"===r||"bottom"===r;if(l!==("top"===n||"bottom"===n)){let o,h,s,u,f,d;l?(o=e,h=t,s="right"===n?1:-1,u="bottom"===r?1:-1,f=x,d=y):(o=t,h=e,s="right"===r?1:-1,u="bottom"===n?1:-1,f=y,d=x,c=!0);const g=f.x+i*s,k=d.y+i*u;if((o.x-h.x)*s>=0)if((h.y-o.y)*u>=0)a=[{x:d.x,y:k},{x:g,y:k},{x:g,y:f.y}];else{const t=h.y+(h.height/2+i)*u,e=o.y-(o.height/2+i)*u;if((e-t)*u>=0){const r=(t+e)/2;a=[{x:d.x,y:r},{x:g,y:r},{x:g,y:f.y}]}else{const r=(h.x+h.width/2*s+o.x-o.width/2*s)/2;a=[{x:d.x,y:t},{x:r,y:t},{x:r,y:e},{x:g,y:e},{x:g,y:f.y}]}}else if((f.y-k)*u>=0)if((d.x-g)*s>=0)a=[{x:d.x,y:f.y}];else{const t=(h.y+(h.height/2+i)*u+(o.y-(o.height/2+i)*u))/2;a=[{x:d.x,y:t},{x:g,y:t},{x:g,y:f.y}]}else{const t=h.x-(h.width/2+i)*s;if((t-g)*s>=0){const e=(t+g)/2;a=[{x:d.x,y:k},{x:e,y:k},{x:e,y:f.y}]}else{const e=(h.y-h.height/2*u+o.y+o.height/2*u)/2;a=[{x:d.x,y:k},{x:t,y:k},{x:t,y:e},{x:g,y:e},{x:g,y:f.y}]}}}else if(r===n){const n="bottom"===r||"right"===r?1:-1;let o,h,s,u;const f=l?"y":"x",d=l?"x":"y";let g,k,m,w;e[f]<t[f]?(o=e,h=t,s=x,u=y,c=1===n):(o=t,h=e,s=y,u=x,c=1!==n),1===n?(g=h,k=o,m=u,w=s):(g=o,k=h,m=s,w=u);const M=g===(e[d]<t[d]?t:e)?1:-1;if(l){const t=g.x-(g.width/2+i)*M,e=m.y+i*n;if((t-w.x)*M>=0)a=[{x:w.x,y:e},{x:m.x,y:e}];else{const r=(k.y+k.height/2*n+g.y-g.height/2*n)/2;a=[{x:w.x,y:r},{x:t,y:r},{x:t,y:e},{x:m.x,y:e}]}}else{const t=m.x+i*n,e=g.y-(g.height/2+i)*M;if((e-w.y)*M>=0)a=[{x:t,y:w.y},{x:t,y:m.y}];else{const r=(k.x+k.width/2*n+g.x-g.width/2*n)/2;a=[{x:r,y:w.y},{x:r,y:e},{x:t,y:e},{x:t,y:m.y}]}}}else{const r="bottom"===n||"right"===n?1:-1;let o,h,s,c;l?(o="y",h="x",s="height",c="width"):(o="x",h="y",s="width",c="height");const u=e[o]+e[s]/2*r,f=t[o]-t[s]/2*r,d=u+i*r,g=f-i*r,k=y[h]===x[h];if((g-d)*r>=0){const t=(g+d)/2;a=k?[]:[{[h]:y[h],[o]:t},{[h]:x[h],[o]:t}]}else if(k&&(f-u)*r>=0)a=[];else{const n=e[h]<t[h]?-1:1,l=t[h]+(t[c]/2+i)*n,u=e[h]-(e[c]/2+i)*n;if((u-l)*n>=0||Math.abs((g-d)*r)<i){const t=(l+u)/2;a=[{[h]:y[h],[o]:g},{[h]:t,[o]:g},{[h]:t,[o]:d},{[h]:x[h],[o]:d}]}else{const i=(t[o]+t[s]/2*r+e[o]-e[s]/2*r)/2;a=[{[h]:y[h],[o]:g},{[h]:l,[o]:g},{[h]:l,[o]:i},{[h]:u,[o]:i},{[h]:u,[o]:d},{[h]:x[h],[o]:d}]}}}return c&&a.reverse(),[y,...a,x]}function o(t,e,r){const{x:i,y:n,width:o,height:h}=t;switch(e){case"top":return{x:i-o/2+o*r,y:n-h/2};case"bottom":return{x:i-o/2+o*r,y:n+h/2};case"left":return{x:i-o/2,y:n-h/2+h*r};case"right":return{x:i+o/2,y:n-h/2+h*r}}}},4525:(t,e,r)=>{function i(t,e,r,i){let[n,o]=t,[h,s]=e,[y,x]=r,[a,c]=i;if(n===h&&o===s||y===a&&x===c)return null;const l=(c-x)*(h-n)-(a-y)*(s-o);if(0===l)return null;const u=((a-y)*(o-x)-(c-x)*(n-y))/l,f=((h-n)*(o-x)-(s-o)*(n-y))/l;return u<0||u>1||f<0||f>1?null:[n+u*(h-n),o+u*(s-o)]}r.d(e,{y:()=>i})},8653:(t,e,r)=>{r.d(e,{S:()=>x});var i=r(482),n=r(4643),o=r(3488),h=r(6066),s=r(4993),y=r(3269);function x(t,e,r,x,c){if(!Array.isArray(t))return"";let l;switch(e){case"curveLinear":l=i.A;break;case"curveBumpX":l=n.dJ;break;case"curveBumpY":l=n.kl;break;case"curveMonotoneX":l=o.G;break;case"curveMonotoneY":l=o.N;break;case"curveNatural":l=h.A;break;default:l=s.Ay}const u=a(t[1],t[0],r),f=a(t[t.length-2],t[t.length-1],x),d=(0,y.A)().x(((e,r)=>e.x-(0===r?u.x:r===t.length-1?f.x:0))).y(((e,r)=>e.y-(0===r?u.y:r===t.length-1?f.y:0))).curve(l);if(c&&"curveLinear"==e){const e=[];for(let r=0;r<t.length-1;r++){const i=t[r],n=t[r+1];0===r&&e.push(`M${i.x},${i.y}`);const o=c.get(r);if(o){const t=n.x-i.x,r=n.y-i.y,h=Math.atan2(r,t),s=Math.abs(h)<=Math.PI/2?-1:1,y=h+Math.PI/2*s,x=1.3*o.radius*Math.cos(y),a=1.3*o.radius*Math.sin(y),c=o.radius*Math.cos(h),l=o.radius*Math.sin(h);for(const t of o.jumpPoints){const r=t.x-c,i=t.y-l,n=t.x+c,o=t.y+l;e.push(`L${r},${i}`),e.push(`C${r+x},${i+a} ${n+x},${o+a} ${n},${o}`)}}e.push(`L${n.x},${n.y}`)}return e.join("")}return d(t)}function a(t,e,r){if(!r)return{x:0,y:0};const{x:i,y:n}=t,{x:o,y:h}=e,s=r/Math.sqrt(Math.pow(o-i,2)+Math.pow(h-n,2));return{x:(o-i)*s,y:(h-n)*s}}},8802:(t,e,r)=>{function i(t){if(Array.isArray(t)){const e=t[0],r=t.length>1?t[1]:e;return[e,r,t.length>2?t[2]:e,t.length>3?t[3]:r]}return new Array(4).fill(t)}r.d(e,{D:()=>i})}}]);
|
|
2
|
+
//# sourceMappingURL=9441.e15ae062.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/6730.b6d7107a.js","mappings":"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","sources":["webpack:///./src/diagram/processors/doTwoNodesOverlap.ts","webpack:///./src/diagram/lines/getDirectLinePoints.ts","webpack:///./src/diagram/MarkerComponent.tsx","webpack:///./src/diagram/lines/getPolyLinePoints.ts","webpack:///./src/diagram/lines/intersect.ts","webpack:///./src/diagram/lines/curveLine.ts","webpack:///./src/diagram/processors/extractPartialRectTuple.ts"],"sourcesContent":["import type { NodeRect } from \"../interfaces\";\n\nexport function doTwoNodesOverlap(\n a: NodeRect,\n b: NodeRect,\n paddingA: number,\n paddingB: number\n): boolean {\n const A = paddingA ? getNodesWithPadding(a, paddingA) : a;\n const B = paddingB ? getNodesWithPadding(b, paddingB) : b;\n const left = Math.min(A.x - A.width / 2, B.x - B.width / 2);\n const right = Math.max(A.x + A.width / 2, B.x + B.width / 2);\n const top = Math.min(A.y - A.height / 2, B.y - B.height / 2);\n const bottom = Math.max(A.y + A.height / 2, B.y + B.height / 2);\n return right - left < A.width + B.width && bottom - top < A.height + B.height;\n}\n\nfunction getNodesWithPadding(node: NodeRect, padding: number) {\n return {\n x: node.x - node.width / 2 - padding,\n y: node.y - node.height / 2 - padding,\n width: node.width + padding * 2,\n height: node.height + padding * 2,\n };\n}\n","import type { EdgeView } from \"../../draw-canvas/interfaces\";\nimport type { NodePosition, NodeRect, PositionTuple } from \"../interfaces\";\nimport { doTwoNodesOverlap } from \"../processors/doTwoNodesOverlap\";\nimport { intersect } from \"./intersect\";\n\ntype LineTuple = [start: PositionTuple, end: PositionTuple];\n\nexport function getDirectLinePoints(\n source: NodeRect,\n target: NodeRect,\n parallelGap?: number,\n edgeView?: EdgeView\n): NodePosition[] | null {\n const hasExitPosition = !!edgeView?.exitPosition;\n const hasEntryPosition = !!edgeView?.entryPosition;\n\n // Ignore if two nodes are the same.\n // Ignore if two nodes overlap and no entry nor exit position.\n if (\n source === target ||\n (doTwoNodesOverlap(source, target, 0, 0) &&\n !(hasExitPosition || hasEntryPosition))\n ) {\n return null;\n }\n\n let p0: PositionTuple;\n let p1: PositionTuple;\n\n let xDiff = 0;\n let yDiff = 0;\n\n if (parallelGap) {\n const dx = target.x - source.x;\n const dy = target.y - source.y;\n const angle = Math.atan2(dy, dx);\n xDiff = (parallelGap / 2) * Math.cos(angle + Math.PI / 2);\n yDiff = (parallelGap / 2) * Math.sin(angle + Math.PI / 2);\n }\n\n const line: LineTuple = [\n hasExitPosition\n ? [\n source.x + (edgeView!.exitPosition!.x - 0.5) * source.width,\n source.y + (edgeView!.exitPosition!.y - 0.5) * source.height,\n ]\n : [source.x + xDiff, source.y + yDiff],\n hasEntryPosition\n ? [\n target.x + (edgeView!.entryPosition!.x - 0.5) * target.width,\n target.y + (edgeView!.entryPosition!.y - 0.5) * target.height,\n ]\n : [target.x + xDiff, target.y + yDiff],\n ];\n\n if (hasExitPosition) {\n p0 = line[0];\n } else {\n const sourceIntersections = getIntersections(source, line);\n // Todo: handle when more than one intersection\n if (sourceIntersections.length > 0) {\n p0 = sourceIntersections[0];\n } else {\n p0 = [source.x, source.y];\n }\n }\n\n if (hasEntryPosition) {\n p1 = line[1];\n } else {\n const targetIntersections = getIntersections(target, line);\n // Todo: handle when more than one intersection\n if (targetIntersections.length > 0) {\n p1 = targetIntersections[0];\n } else {\n p1 = [target.x, target.y];\n }\n }\n\n return [\n { x: p0[0], y: p0[1] },\n { x: p1[0], y: p1[1] },\n ];\n}\n\nfunction getIntersections(rect: NodeRect, line: LineTuple) {\n const vertices: PositionTuple[] = [\n [rect.x - rect.width / 2, rect.y - rect.height / 2],\n [rect.x + rect.width / 2, rect.y - rect.height / 2],\n [rect.x + rect.width / 2, rect.y + rect.height / 2],\n [rect.x - rect.width / 2, rect.y + rect.height / 2],\n ];\n const possibleLines: [start: PositionTuple, end: PositionTuple][] = [];\n for (let i = 0; i < 4; i++) {\n possibleLines.push([vertices[i], vertices[(i + 1) % 4]]);\n }\n const intersections: PositionTuple[] = [];\n for (const item of possibleLines) {\n const intersection = intersect(line[0], line[1], item[0], item[1]);\n if (intersection) {\n intersections.push(intersection);\n }\n }\n return intersections;\n}\n","import React from \"react\";\nimport type { LineMarkerType } from \"./interfaces\";\n\nexport interface MarkerComponentProps extends BaseMarkerComponentProps {\n type: LineMarkerType;\n}\n\nexport interface BaseMarkerComponentProps {\n id: string;\n strokeColor?: string;\n}\n\nexport function MarkerComponent({\n id,\n type,\n strokeColor,\n}: MarkerComponentProps): JSX.Element {\n let Component: (props: BaseMarkerComponentProps) => JSX.Element;\n\n switch (type) {\n case \"0..1\":\n Component = EntityRelationZeroOrOneMarker;\n break;\n case \"0..N\":\n Component = EntityRelationZeroOrManyMarker;\n break;\n case \"circle\":\n Component = CircleMarker;\n break;\n default:\n Component = ArrowMarker;\n }\n return <Component id={id} strokeColor={strokeColor} />;\n}\n\nfunction CircleMarker({\n id,\n strokeColor,\n}: BaseMarkerComponentProps): JSX.Element {\n const r = 3;\n const d = r * 3;\n return (\n <marker\n viewBox={`0 0 ${d} ${d}`}\n refX={r}\n refY={r}\n id={id}\n overflow=\"visible\"\n markerWidth={d}\n markerHeight={d}\n >\n <circle stroke=\"none\" fill={strokeColor} cx={r} cy={r} r={r} />\n </marker>\n );\n}\n\nfunction ArrowMarker({\n id,\n strokeColor,\n}: BaseMarkerComponentProps): JSX.Element {\n return (\n <marker\n id={id}\n viewBox=\"0 0 6 6\"\n refX={5}\n refY={3}\n markerWidth={6}\n markerHeight={6}\n orient=\"auto-start-reverse\"\n strokeLinejoin=\"round\"\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}\n\nfunction EntityRelationZeroOrOneMarker({\n id,\n strokeColor,\n}: BaseMarkerComponentProps): JSX.Element {\n return (\n <marker\n id={id}\n viewBox=\"0 0 21 11\"\n refX={0.5}\n refY={5.5}\n markerWidth={21}\n markerHeight={11}\n orient=\"auto-start-reverse\"\n >\n <path\n d=\"M 5.5 5.5 m 5 0 a 5 5 0 1 0 -10 0 a 5 5 0 1 0 10 0 M 15.5 0.5 V 10.5 M 10.5 5.5 H 20.5\"\n stroke={strokeColor}\n strokeWidth={1}\n fill=\"none\"\n />\n </marker>\n );\n}\n\nfunction EntityRelationZeroOrManyMarker({\n id,\n strokeColor,\n}: BaseMarkerComponentProps): JSX.Element {\n return (\n <marker\n id={id}\n viewBox=\"0 0 21 11\"\n refX={0.5}\n refY={5.5}\n markerWidth={21}\n markerHeight={11}\n orient=\"auto-start-reverse\"\n >\n <path\n d=\"M 5.5 5.5 m 5 0 a 5 5 0 1 0 -10 0 a 5 5 0 1 0 10 0 M 20.5 0.5 L 10.5 5.5 L 20.5 10.5 M 10.5 5.5 H 20.5\"\n stroke={strokeColor}\n strokeWidth={1}\n fill=\"none\"\n />\n </marker>\n );\n}\n","import type { Direction, NodePosition, NodeRect } from \"../interfaces\";\n\nconst MINIMAL_OFFSET = 20;\n\nexport function getPolyLinePoints(\n source: NodeRect,\n target: NodeRect,\n sourceDirection: Direction,\n targetDirection: Direction,\n sourcePosition: number,\n targetPosition: number\n): NodePosition[] {\n const p0 = getCoordinates(source, sourceDirection, sourcePosition);\n const p1 = getCoordinates(target, targetDirection, targetPosition);\n\n let controls: NodePosition[] = [];\n let reverseControls = false;\n\n const sourceIsVertical =\n sourceDirection === \"top\" || sourceDirection === \"bottom\";\n const targetIsVertical =\n targetDirection === \"top\" || targetDirection === \"bottom\";\n\n if (sourceIsVertical !== targetIsVertical) {\n // One is vertical and the other is horizontal\n let horizontal: NodeRect;\n let vertical: NodeRect;\n let horizontalSign: number;\n let verticalSign: number;\n let horizontalPosition: NodePosition;\n let verticalPosition: NodePosition;\n if (sourceIsVertical) {\n horizontal = target;\n vertical = source;\n horizontalSign = targetDirection === \"right\" ? 1 : -1;\n verticalSign = sourceDirection === \"bottom\" ? 1 : -1;\n horizontalPosition = p1;\n verticalPosition = p0;\n } else {\n horizontal = source;\n vertical = target;\n horizontalSign = sourceDirection === \"right\" ? 1 : -1;\n verticalSign = targetDirection === \"bottom\" ? 1 : -1;\n horizontalPosition = p0;\n verticalPosition = p1;\n reverseControls = true;\n }\n\n const defaultControlX =\n horizontalPosition.x + MINIMAL_OFFSET * horizontalSign;\n const defaultControlY = verticalPosition.y + MINIMAL_OFFSET * verticalSign;\n\n if ((horizontal.x - vertical.x) * horizontalSign >= 0) {\n if ((vertical.y - horizontal.y) * verticalSign >= 0) {\n // ┌──────────────┐\n // ┌──┴──┐ ┌─────┐ │\n // │ S │ │ T ├─┘\n // └─────┘ └─────┘\n controls = [\n { x: verticalPosition.x, y: defaultControlY },\n { x: defaultControlX, y: defaultControlY },\n { x: defaultControlX, y: horizontalPosition.y },\n ];\n } else {\n const controlY0 =\n vertical.y + (vertical.height / 2 + MINIMAL_OFFSET) * verticalSign;\n const controlY1 =\n horizontal.y -\n (horizontal.height / 2 + MINIMAL_OFFSET) * verticalSign;\n if ((controlY1 - controlY0) * verticalSign >= 0) {\n // ┌─────┐\n // │ T ├─┐\n // └─────┘ │\n // ┌────────┘\n // ┌──┴──┐\n // │ S │\n // └─────┘\n const middleY = (controlY0 + controlY1) / 2;\n controls = [\n { x: verticalPosition.x, y: middleY },\n { x: defaultControlX, y: middleY },\n { x: defaultControlX, y: horizontalPosition.y },\n ];\n } else {\n // ┌─────┐\n // ┌────┐ │ T ├─┐\n // ┌──┴──┐ │ └─────┘ │\n // │ S │ └─────────┘\n // └─────┘\n const middleX =\n (vertical.x +\n (vertical.width / 2) * horizontalSign +\n horizontal.x -\n (horizontal.width / 2) * horizontalSign) /\n 2;\n controls = [\n { x: verticalPosition.x, y: controlY0 },\n { x: middleX, y: controlY0 },\n { x: middleX, y: controlY1 },\n { x: defaultControlX, y: controlY1 },\n { x: defaultControlX, y: horizontalPosition.y },\n ];\n }\n }\n } else if ((horizontalPosition.y - defaultControlY) * verticalSign >= 0) {\n if ((verticalPosition.x - defaultControlX) * horizontalSign >= 0) {\n // ┌─────┐\n // ┌──┤ T │\n // │ └─────┘\n // ┌──┴──┐\n // │ S │\n // └─────┘\n controls = [{ x: verticalPosition.x, y: horizontalPosition.y }];\n } else {\n // ┌─────┐\n // │ T ├─┐\n // └─────┘ │\n // ┌─┘\n // ┌──┴──┐\n // │ S │\n // └─────┘\n const controlY0 =\n vertical.y + (vertical.height / 2 + MINIMAL_OFFSET) * verticalSign;\n const controlY1 =\n horizontal.y -\n (horizontal.height / 2 + MINIMAL_OFFSET) * verticalSign;\n const middleY = (controlY0 + controlY1) / 2;\n controls = [\n { x: verticalPosition.x, y: middleY },\n { x: defaultControlX, y: middleY },\n { x: defaultControlX, y: horizontalPosition.y },\n ];\n }\n } else {\n const sourceExtendX =\n vertical.x - (vertical.width / 2 + MINIMAL_OFFSET) * horizontalSign;\n if ((sourceExtendX - defaultControlX) * horizontalSign >= 0) {\n // ┌────┐\n // │ ┌──┴──┐\n // │ │ S │\n // ┌─────┐ │ └─────┘\n // │ T ├─┘\n // └─────┘\n const middleX = (sourceExtendX + defaultControlX) / 2;\n controls = [\n { x: verticalPosition.x, y: defaultControlY },\n { x: middleX, y: defaultControlY },\n { x: middleX, y: horizontalPosition.y },\n ];\n } else {\n // ┌────┐\n // │ ┌──┴──┐\n // │ │ S │\n // │ └─────┘\n // └───┐\n // ┌─────┐ │\n // │ T ├─┘\n // └─────┘\n const middleY =\n (vertical.y -\n (vertical.height / 2) * verticalSign +\n horizontal.y +\n (horizontal.height / 2) * verticalSign) /\n 2;\n controls = [\n { x: verticalPosition.x, y: defaultControlY },\n { x: sourceExtendX, y: defaultControlY },\n { x: sourceExtendX, y: middleY },\n { x: defaultControlX, y: middleY },\n { x: defaultControlX, y: horizontalPosition.y },\n ];\n }\n }\n } else if (sourceDirection === targetDirection) {\n // Same direction\n const sign =\n sourceDirection === \"bottom\" || sourceDirection === \"right\" ? 1 : -1;\n let start: NodeRect;\n let end: NodeRect;\n let startPosition: NodePosition;\n let endPosition: NodePosition;\n const axis = sourceIsVertical ? \"y\" : \"x\";\n const oppositeAxis = sourceIsVertical ? \"x\" : \"y\";\n if (target[axis] < source[axis]) {\n start = target;\n end = source;\n startPosition = p1;\n endPosition = p0;\n reverseControls = sign === 1;\n } else {\n start = source;\n end = target;\n startPosition = p0;\n endPosition = p1;\n reverseControls = sign !== 1;\n }\n const perpendicular =\n target[oppositeAxis] < source[oppositeAxis] ? source : target;\n let around: NodeRect;\n let nonAround: NodeRect;\n let aroundPosition: NodePosition;\n let nonAroundPosition: NodePosition;\n if (sign === 1) {\n around = end;\n nonAround = start;\n aroundPosition = endPosition;\n nonAroundPosition = startPosition;\n } else {\n around = start;\n nonAround = end;\n aroundPosition = startPosition;\n nonAroundPosition = endPosition;\n }\n const aroundSign = around === perpendicular ? 1 : -1;\n if (sourceIsVertical) {\n const defaultControlX =\n around.x - (around.width / 2 + MINIMAL_OFFSET) * aroundSign;\n const defaultControlY = aroundPosition.y + MINIMAL_OFFSET * sign;\n if ((defaultControlX - nonAroundPosition.x) * aroundSign >= 0) {\n // ┌─────────┐\n // │ ┌──┴──┐\n // │ │ T │\n // ┌──┴──┐ └─────┘\n // │ S │\n // └─────┘\n controls = [\n { x: nonAroundPosition.x, y: defaultControlY },\n { x: aroundPosition.x, y: defaultControlY },\n ];\n } else {\n // ┌────┐\n // │ ┌──┴──┐\n // │ │ T │\n // │ └─────┘\n // └─┐\n // ┌──┴──┐\n // │ S │\n // └─────┘\n const middleY =\n (nonAround.y +\n (nonAround.height / 2) * sign +\n around.y -\n (around.height / 2) * sign) /\n 2;\n controls = [\n { x: nonAroundPosition.x, y: middleY },\n { x: defaultControlX, y: middleY },\n { x: defaultControlX, y: defaultControlY },\n { x: aroundPosition.x, y: defaultControlY },\n ];\n }\n } else {\n const defaultControlX = aroundPosition.x + MINIMAL_OFFSET * sign;\n const defaultControlY =\n around.y - (around.height / 2 + MINIMAL_OFFSET) * aroundSign;\n if ((defaultControlY - nonAroundPosition.y) * aroundSign >= 0) {\n // ┌─────┐\n // ┌─────────┤ T │\n // │ ┌─────┐ └─────┘\n // └─┤ S │\n // └─────┘\n controls = [\n { x: defaultControlX, y: nonAroundPosition.y },\n { x: defaultControlX, y: aroundPosition.y },\n ];\n } else {\n // ┌─────────┐\n // │ ┌─────┐ │ ┌─────┐\n // └─┤ S │ └─┤ T │\n // └─────┘ └─────┘\n const middleX =\n (nonAround.x +\n (nonAround.width / 2) * sign +\n around.x -\n (around.width / 2) * sign) /\n 2;\n controls = [\n { x: middleX, y: nonAroundPosition.y },\n { x: middleX, y: defaultControlY },\n { x: defaultControlX, y: defaultControlY },\n { x: defaultControlX, y: aroundPosition.y },\n ];\n }\n }\n } else {\n // Opposite direction\n const targetSign =\n targetDirection === \"bottom\" || targetDirection === \"right\" ? 1 : -1;\n let axis: \"x\" | \"y\";\n let oppositeAxis: \"x\" | \"y\";\n let size: \"width\" | \"height\";\n let oppositeSize: \"width\" | \"height\";\n if (sourceIsVertical) {\n axis = \"y\";\n oppositeAxis = \"x\";\n size = \"height\";\n oppositeSize = \"width\";\n } else {\n axis = \"x\";\n oppositeAxis = \"y\";\n size = \"width\";\n oppositeSize = \"height\";\n }\n const targetEdge = target[axis] + (target[size] / 2) * targetSign;\n const sourceEdge = source[axis] - (source[size] / 2) * targetSign;\n const targetControl = targetEdge + MINIMAL_OFFSET * targetSign;\n const sourceControl = sourceEdge - MINIMAL_OFFSET * targetSign;\n const oppositeIsStraight = p0[oppositeAxis] === p1[oppositeAxis];\n if ((sourceControl - targetControl) * targetSign >= 0) {\n const middle = (sourceControl + targetControl) / 2;\n if (oppositeIsStraight) {\n // Straight line\n // ┌─────┐\n // │ T │\n // └──┬──┘\n // │\n // ┌──┴──┐\n // │ S │\n // └─────┘\n controls = [];\n } else {\n // ┌─────┐\n // │ T │\n // └──┬──┘\n // ┌───┘\n // ┌──┴──┐\n // │ S │\n // └─────┘\n controls = [\n { [oppositeAxis]: p0[oppositeAxis], [axis]: middle },\n { [oppositeAxis]: p1[oppositeAxis], [axis]: middle },\n ] as unknown[] as NodePosition[];\n }\n } else if (\n oppositeIsStraight &&\n (sourceEdge - targetEdge) * targetSign >= 0\n ) {\n // Straight line (very close)\n // ┌─────┐\n // │ T │\n // └──┬──┘\n // ┌──┴──┐\n // │ S │\n // └─────┘\n controls = [];\n } else {\n const targetOppositeSign =\n target[oppositeAxis] < source[oppositeAxis] ? -1 : 1;\n const sourceOppositeControl =\n source[oppositeAxis] +\n (source[oppositeSize] / 2 + MINIMAL_OFFSET) * targetOppositeSign;\n const targetOppositeControl =\n target[oppositeAxis] -\n (target[oppositeSize] / 2 + MINIMAL_OFFSET) * targetOppositeSign;\n if (\n (targetOppositeControl - sourceOppositeControl) * targetOppositeSign >=\n 0 ||\n Math.abs((sourceControl - targetControl) * targetSign) < MINIMAL_OFFSET\n ) {\n // ┌─────┐\n // ┌────┐ │ T │\n // ┌──┴──┐ │ └──┬──┘\n // │ S │ └────┘\n // └─────┘\n const oppositeMiddle =\n (sourceOppositeControl + targetOppositeControl) / 2;\n controls = [\n { [oppositeAxis]: p0[oppositeAxis], [axis]: sourceControl },\n { [oppositeAxis]: oppositeMiddle, [axis]: sourceControl },\n { [oppositeAxis]: oppositeMiddle, [axis]: targetControl },\n { [oppositeAxis]: p1[oppositeAxis], [axis]: targetControl },\n ] as unknown[] as NodePosition[];\n } else {\n // ┌────┐\n // ┌──┴──┐ │\n // │ S │ │\n // └─────┘ │\n // ┌─────────┘\n // │ ┌─────┐\n // │ │ T │\n // │ └──┬──┘\n // └────┘\n const middle =\n (source[axis] +\n (source[size] / 2) * targetSign +\n target[axis] -\n (target[size] / 2) * targetSign) /\n 2;\n controls = [\n { [oppositeAxis]: p0[oppositeAxis], [axis]: sourceControl },\n { [oppositeAxis]: sourceOppositeControl, [axis]: sourceControl },\n { [oppositeAxis]: sourceOppositeControl, [axis]: middle },\n { [oppositeAxis]: targetOppositeControl, [axis]: middle },\n { [oppositeAxis]: targetOppositeControl, [axis]: targetControl },\n { [oppositeAxis]: p1[oppositeAxis], [axis]: targetControl },\n ] as unknown[] as NodePosition[];\n }\n }\n }\n\n if (reverseControls) {\n controls.reverse();\n }\n\n return [p0, ...controls, p1] as NodePosition[];\n}\n\nfunction getCoordinates(\n node: NodeRect,\n direction: Direction,\n position: number\n): NodePosition {\n const { x, y, width, height } = node;\n switch (direction) {\n case \"top\":\n return {\n x: x - width / 2 + width * position,\n y: y - height / 2,\n };\n case \"bottom\":\n return {\n x: x - width / 2 + width * position,\n y: y + height / 2,\n };\n case \"left\":\n return {\n x: x - width / 2,\n y: y - height / 2 + height * position,\n };\n case \"right\":\n return {\n x: x + width / 2,\n y: y - height / 2 + height * position,\n };\n }\n}\n","import type { PositionTuple } from \"../interfaces\";\n\n// https://paulbourke.net/geometry/pointlineplane/javascript.txt\nexport function intersect(\n [x1, y1]: PositionTuple,\n [x2, y2]: PositionTuple,\n [x3, y3]: PositionTuple,\n [x4, y4]: PositionTuple\n): null | PositionTuple {\n // Check if none of the lines are of length 0\n if ((x1 === x2 && y1 === y2) || (x3 === x4 && y3 === y4)) {\n return null;\n }\n\n const denominator = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1);\n\n // Lines are parallel\n if (denominator === 0) {\n return null;\n }\n\n const ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator;\n const ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denominator;\n\n // is the intersection along the segments\n if (ua < 0 || ua > 1 || ub < 0 || ub > 1) {\n return null;\n }\n\n // Return a object with the x and y coordinates of the intersection\n const x = x1 + ua * (x2 - x1);\n const y = y1 + ua * (y2 - y1);\n\n return [x, y];\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\";\nimport type { LineSegmentJumps } from \"../../draw-canvas/interfaces\";\n\n/**\n * Generate Line from points\n */\nexport function curveLine(\n points: Array<NodePosition> | null | undefined,\n curveType: CurveType | undefined,\n startOffset: number,\n endOffset: number,\n jumpsMap?: Map<number, LineSegmentJumps> | null\n): string {\n if (!Array.isArray(points)) {\n return \"\";\n }\n let curveFactory: CurveFactory;\n switch (curveType) {\n case \"curveLinear\":\n curveFactory = curveLinear;\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 = curveBasis;\n }\n const startOffsets = getOffsets(points[1], points[0], startOffset);\n const endOffsets = getOffsets(\n points[points.length - 2],\n points[points.length - 1],\n endOffset\n );\n const lineFunction = line<NodePosition>()\n .x(\n (d, index) =>\n d.x -\n (index === 0\n ? startOffsets.x\n : index === points.length - 1\n ? endOffsets.x\n : 0)\n )\n .y(\n (d, index) =>\n d.y -\n (index === 0\n ? startOffsets.y\n : index === points.length - 1\n ? endOffsets.y\n : 0)\n )\n .curve(curveFactory);\n\n if (jumpsMap && curveType == \"curveLinear\") {\n const d: string[] = [];\n for (let i = 0; i < points.length - 1; i++) {\n const start = points[i];\n const end = points[i + 1];\n if (i === 0) {\n d.push(`M${start.x},${start.y}`);\n }\n // 处理交叉跨线点\n const jump = jumpsMap.get(i);\n if (jump) {\n // 跨线点近似为一段半圆,参考 draw.io 使用三次贝赛尔曲线实现。\n // 一条 jump 记录中所有的 jumpPoints 都在同一线段上,因此角度一致、尺寸一致。\n const dx = end.x - start.x;\n const dy = end.y - start.y;\n const angle = Math.atan2(dy, dx);\n const direction = Math.abs(angle) <= Math.PI / 2 ? -1 : 1;\n const verticalAngle = angle + (Math.PI / 2) * direction;\n const offsetX = jump.radius * 1.3 * Math.cos(verticalAngle);\n const offsetY = jump.radius * 1.3 * Math.sin(verticalAngle);\n const xDiff = jump.radius * Math.cos(angle);\n const yDiff = jump.radius * Math.sin(angle);\n for (const p of jump.jumpPoints) {\n const x0 = p.x - xDiff;\n const y0 = p.y - yDiff;\n const x1 = p.x + xDiff;\n const y1 = p.y + yDiff;\n d.push(`L${x0},${y0}`);\n d.push(\n `C${x0 + offsetX},${y0 + offsetY} ${x1 + offsetX},${y1 + offsetY} ${x1},${y1}`\n );\n }\n }\n d.push(`L${end.x},${end.y}`);\n }\n return d.join(\"\");\n }\n\n return lineFunction(points)!;\n}\n\nfunction getOffsets(\n start: NodePosition,\n end: NodePosition,\n offset: number\n): NodePosition {\n if (!offset) {\n return { x: 0, y: 0 };\n }\n const { x: x0, y: y0 } = start;\n const { x: x1, y: y1 } = end;\n const distance = Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2));\n const ratio = offset / distance;\n return {\n x: (x1 - x0) * ratio,\n y: (y1 - y0) * ratio,\n };\n}\n","import type { FullRectTuple, PartialRectTuple } from \"../interfaces\";\n\nexport function extractPartialRectTuple(\n value: PartialRectTuple\n): FullRectTuple {\n if (Array.isArray(value)) {\n const v0 = value[0];\n const v1 = value.length > 1 ? value[1]! : v0;\n const v2 = value.length > 2 ? value[2]! : v0;\n const v3 = value.length > 3 ? value[3]! : v1;\n return [v0, v1, v2, v3];\n }\n return new Array(4).fill(value) as FullRectTuple;\n}\n"],"names":["doTwoNodesOverlap","a","b","paddingA","paddingB","A","getNodesWithPadding","B","left","Math","min","x","width","right","max","top","y","height","bottom","node","padding","getDirectLinePoints","source","target","parallelGap","edgeView","hasExitPosition","exitPosition","hasEntryPosition","entryPosition","p0","p1","xDiff","yDiff","dx","dy","angle","atan2","cos","PI","sin","line","sourceIntersections","getIntersections","length","targetIntersections","rect","vertices","possibleLines","i","push","intersections","item","intersection","intersect","MarkerComponent","_ref","Component","id","type","strokeColor","EntityRelationZeroOrOneMarker","EntityRelationZeroOrManyMarker","CircleMarker","ArrowMarker","React","_ref2","viewBox","refX","refY","overflow","markerWidth","r","markerHeight","stroke","fill","cx","cy","_ref3","orient","strokeLinejoin","d","strokeWidth","_ref4","_ref5","MINIMAL_OFFSET","getPolyLinePoints","sourceDirection","targetDirection","sourcePosition","targetPosition","getCoordinates","controls","reverseControls","sourceIsVertical","horizontal","vertical","horizontalSign","verticalSign","horizontalPosition","verticalPosition","defaultControlX","defaultControlY","controlY0","controlY1","middleY","middleX","sourceExtendX","sign","start","end","startPosition","endPosition","axis","oppositeAxis","around","nonAround","aroundPosition","nonAroundPosition","aroundSign","targetSign","size","oppositeSize","targetEdge","sourceEdge","targetControl","sourceControl","oppositeIsStraight","middle","targetOppositeSign","sourceOppositeControl","targetOppositeControl","abs","oppositeMiddle","reverse","direction","position","x1","y1","x2","y2","x3","y3","x4","y4","denominator","ua","ub","curveLine","points","curveType","startOffset","endOffset","jumpsMap","Array","isArray","curveFactory","curveLinear","curveBumpX","curveBumpY","curveMonotoneX","curveMonotoneY","curveNatural","curveBasis","startOffsets","getOffsets","endOffsets","lineFunction","index","curve","jump","get","verticalAngle","offsetX","radius","offsetY","p","jumpPoints","x0","y0","join","offset","ratio","sqrt","pow","extractPartialRectTuple","value","v0","v1"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/9441.e15ae062.js","mappings":"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","sources":["webpack:///./src/diagram/processors/doTwoNodesOverlap.ts","webpack:///./src/diagram/lines/getDirectLinePoints.ts","webpack:///./src/diagram/MarkerComponent.tsx","webpack:///./src/diagram/lines/getPolyLinePoints.ts","webpack:///./src/diagram/lines/intersect.ts","webpack:///./src/diagram/lines/curveLine.ts","webpack:///./src/diagram/processors/extractPartialRectTuple.ts"],"sourcesContent":["import type { NodeRect } from \"../interfaces\";\n\nexport function doTwoNodesOverlap(\n a: NodeRect,\n b: NodeRect,\n paddingA: number,\n paddingB: number\n): boolean {\n const A = paddingA ? getNodesWithPadding(a, paddingA) : a;\n const B = paddingB ? getNodesWithPadding(b, paddingB) : b;\n const left = Math.min(A.x - A.width / 2, B.x - B.width / 2);\n const right = Math.max(A.x + A.width / 2, B.x + B.width / 2);\n const top = Math.min(A.y - A.height / 2, B.y - B.height / 2);\n const bottom = Math.max(A.y + A.height / 2, B.y + B.height / 2);\n return right - left < A.width + B.width && bottom - top < A.height + B.height;\n}\n\nfunction getNodesWithPadding(node: NodeRect, padding: number) {\n return {\n x: node.x - node.width / 2 - padding,\n y: node.y - node.height / 2 - padding,\n width: node.width + padding * 2,\n height: node.height + padding * 2,\n };\n}\n","import type { EdgeView } from \"../../draw-canvas/interfaces\";\nimport type { NodePosition, NodeRect, PositionTuple } from \"../interfaces\";\nimport { doTwoNodesOverlap } from \"../processors/doTwoNodesOverlap\";\nimport { intersect } from \"./intersect\";\n\ntype LineTuple = [start: PositionTuple, end: PositionTuple];\n\nexport function getDirectLinePoints(\n source: NodeRect,\n target: NodeRect,\n parallelGap?: number,\n edgeView?: EdgeView\n): NodePosition[] | null {\n const hasExitPosition = !!edgeView?.exitPosition;\n const hasEntryPosition = !!edgeView?.entryPosition;\n\n // Ignore if two nodes are the same.\n // Ignore if two nodes overlap and no entry nor exit position.\n if (\n source === target ||\n (doTwoNodesOverlap(source, target, 0, 0) &&\n !(hasExitPosition || hasEntryPosition))\n ) {\n return null;\n }\n\n let p0: PositionTuple;\n let p1: PositionTuple;\n\n let xDiff = 0;\n let yDiff = 0;\n\n if (parallelGap) {\n const dx = target.x - source.x;\n const dy = target.y - source.y;\n const angle = Math.atan2(dy, dx);\n xDiff = (parallelGap / 2) * Math.cos(angle + Math.PI / 2);\n yDiff = (parallelGap / 2) * Math.sin(angle + Math.PI / 2);\n }\n\n const line: LineTuple = [\n hasExitPosition\n ? [\n source.x + (edgeView!.exitPosition!.x - 0.5) * source.width,\n source.y + (edgeView!.exitPosition!.y - 0.5) * source.height,\n ]\n : [source.x + xDiff, source.y + yDiff],\n hasEntryPosition\n ? [\n target.x + (edgeView!.entryPosition!.x - 0.5) * target.width,\n target.y + (edgeView!.entryPosition!.y - 0.5) * target.height,\n ]\n : [target.x + xDiff, target.y + yDiff],\n ];\n\n if (hasExitPosition) {\n p0 = line[0];\n } else {\n const sourceIntersections = getIntersections(source, line);\n // Todo: handle when more than one intersection\n if (sourceIntersections.length > 0) {\n p0 = sourceIntersections[0];\n } else {\n p0 = [source.x, source.y];\n }\n }\n\n if (hasEntryPosition) {\n p1 = line[1];\n } else {\n const targetIntersections = getIntersections(target, line);\n // Todo: handle when more than one intersection\n if (targetIntersections.length > 0) {\n p1 = targetIntersections[0];\n } else {\n p1 = [target.x, target.y];\n }\n }\n\n return [\n { x: p0[0], y: p0[1] },\n { x: p1[0], y: p1[1] },\n ];\n}\n\nfunction getIntersections(rect: NodeRect, line: LineTuple) {\n const vertices: PositionTuple[] = [\n [rect.x - rect.width / 2, rect.y - rect.height / 2],\n [rect.x + rect.width / 2, rect.y - rect.height / 2],\n [rect.x + rect.width / 2, rect.y + rect.height / 2],\n [rect.x - rect.width / 2, rect.y + rect.height / 2],\n ];\n const possibleLines: [start: PositionTuple, end: PositionTuple][] = [];\n for (let i = 0; i < 4; i++) {\n possibleLines.push([vertices[i], vertices[(i + 1) % 4]]);\n }\n const intersections: PositionTuple[] = [];\n for (const item of possibleLines) {\n const intersection = intersect(line[0], line[1], item[0], item[1]);\n if (intersection) {\n intersections.push(intersection);\n }\n }\n return intersections;\n}\n","import React from \"react\";\nimport type { LineMarkerType } from \"./interfaces\";\n\nexport interface MarkerComponentProps extends BaseMarkerComponentProps {\n type: LineMarkerType;\n}\n\nexport interface BaseMarkerComponentProps {\n id: string;\n strokeColor?: string;\n}\n\nexport function MarkerComponent({\n id,\n type,\n strokeColor,\n}: MarkerComponentProps): JSX.Element {\n let Component: (props: BaseMarkerComponentProps) => JSX.Element;\n\n switch (type) {\n case \"0..1\":\n Component = EntityRelationZeroOrOneMarker;\n break;\n case \"0..N\":\n Component = EntityRelationZeroOrManyMarker;\n break;\n case \"circle\":\n Component = CircleMarker;\n break;\n default:\n Component = ArrowMarker;\n }\n return <Component id={id} strokeColor={strokeColor} />;\n}\n\nfunction CircleMarker({\n id,\n strokeColor,\n}: BaseMarkerComponentProps): JSX.Element {\n const r = 3;\n const d = r * 3;\n return (\n <marker\n viewBox={`0 0 ${d} ${d}`}\n refX={r}\n refY={r}\n id={id}\n overflow=\"visible\"\n markerWidth={d}\n markerHeight={d}\n >\n <circle stroke=\"none\" fill={strokeColor} cx={r} cy={r} r={r} />\n </marker>\n );\n}\n\nfunction ArrowMarker({\n id,\n strokeColor,\n}: BaseMarkerComponentProps): JSX.Element {\n return (\n <marker\n id={id}\n viewBox=\"0 0 6 6\"\n refX={5}\n refY={3}\n markerWidth={6}\n markerHeight={6}\n orient=\"auto-start-reverse\"\n strokeLinejoin=\"round\"\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}\n\nfunction EntityRelationZeroOrOneMarker({\n id,\n strokeColor,\n}: BaseMarkerComponentProps): JSX.Element {\n return (\n <marker\n id={id}\n viewBox=\"0 0 21 11\"\n refX={0.5}\n refY={5.5}\n markerWidth={21}\n markerHeight={11}\n orient=\"auto-start-reverse\"\n >\n <path\n d=\"M 5.5 5.5 m 5 0 a 5 5 0 1 0 -10 0 a 5 5 0 1 0 10 0 M 15.5 0.5 V 10.5 M 10.5 5.5 H 20.5\"\n stroke={strokeColor}\n strokeWidth={1}\n fill=\"none\"\n />\n </marker>\n );\n}\n\nfunction EntityRelationZeroOrManyMarker({\n id,\n strokeColor,\n}: BaseMarkerComponentProps): JSX.Element {\n return (\n <marker\n id={id}\n viewBox=\"0 0 21 11\"\n refX={0.5}\n refY={5.5}\n markerWidth={21}\n markerHeight={11}\n orient=\"auto-start-reverse\"\n >\n <path\n d=\"M 5.5 5.5 m 5 0 a 5 5 0 1 0 -10 0 a 5 5 0 1 0 10 0 M 20.5 0.5 L 10.5 5.5 L 20.5 10.5 M 10.5 5.5 H 20.5\"\n stroke={strokeColor}\n strokeWidth={1}\n fill=\"none\"\n />\n </marker>\n );\n}\n","import type { Direction, NodePosition, NodeRect } from \"../interfaces\";\n\nconst MINIMAL_OFFSET = 20;\n\nexport function getPolyLinePoints(\n source: NodeRect,\n target: NodeRect,\n sourceDirection: Direction,\n targetDirection: Direction,\n sourcePosition: number,\n targetPosition: number\n): NodePosition[] {\n const p0 = getCoordinates(source, sourceDirection, sourcePosition);\n const p1 = getCoordinates(target, targetDirection, targetPosition);\n\n let controls: NodePosition[] = [];\n let reverseControls = false;\n\n const sourceIsVertical =\n sourceDirection === \"top\" || sourceDirection === \"bottom\";\n const targetIsVertical =\n targetDirection === \"top\" || targetDirection === \"bottom\";\n\n if (sourceIsVertical !== targetIsVertical) {\n // One is vertical and the other is horizontal\n let horizontal: NodeRect;\n let vertical: NodeRect;\n let horizontalSign: number;\n let verticalSign: number;\n let horizontalPosition: NodePosition;\n let verticalPosition: NodePosition;\n if (sourceIsVertical) {\n horizontal = target;\n vertical = source;\n horizontalSign = targetDirection === \"right\" ? 1 : -1;\n verticalSign = sourceDirection === \"bottom\" ? 1 : -1;\n horizontalPosition = p1;\n verticalPosition = p0;\n } else {\n horizontal = source;\n vertical = target;\n horizontalSign = sourceDirection === \"right\" ? 1 : -1;\n verticalSign = targetDirection === \"bottom\" ? 1 : -1;\n horizontalPosition = p0;\n verticalPosition = p1;\n reverseControls = true;\n }\n\n const defaultControlX =\n horizontalPosition.x + MINIMAL_OFFSET * horizontalSign;\n const defaultControlY = verticalPosition.y + MINIMAL_OFFSET * verticalSign;\n\n if ((horizontal.x - vertical.x) * horizontalSign >= 0) {\n if ((vertical.y - horizontal.y) * verticalSign >= 0) {\n // ┌──────────────┐\n // ┌──┴──┐ ┌─────┐ │\n // │ S │ │ T ├─┘\n // └─────┘ └─────┘\n controls = [\n { x: verticalPosition.x, y: defaultControlY },\n { x: defaultControlX, y: defaultControlY },\n { x: defaultControlX, y: horizontalPosition.y },\n ];\n } else {\n const controlY0 =\n vertical.y + (vertical.height / 2 + MINIMAL_OFFSET) * verticalSign;\n const controlY1 =\n horizontal.y -\n (horizontal.height / 2 + MINIMAL_OFFSET) * verticalSign;\n if ((controlY1 - controlY0) * verticalSign >= 0) {\n // ┌─────┐\n // │ T ├─┐\n // └─────┘ │\n // ┌────────┘\n // ┌──┴──┐\n // │ S │\n // └─────┘\n const middleY = (controlY0 + controlY1) / 2;\n controls = [\n { x: verticalPosition.x, y: middleY },\n { x: defaultControlX, y: middleY },\n { x: defaultControlX, y: horizontalPosition.y },\n ];\n } else {\n // ┌─────┐\n // ┌────┐ │ T ├─┐\n // ┌──┴──┐ │ └─────┘ │\n // │ S │ └─────────┘\n // └─────┘\n const middleX =\n (vertical.x +\n (vertical.width / 2) * horizontalSign +\n horizontal.x -\n (horizontal.width / 2) * horizontalSign) /\n 2;\n controls = [\n { x: verticalPosition.x, y: controlY0 },\n { x: middleX, y: controlY0 },\n { x: middleX, y: controlY1 },\n { x: defaultControlX, y: controlY1 },\n { x: defaultControlX, y: horizontalPosition.y },\n ];\n }\n }\n } else if ((horizontalPosition.y - defaultControlY) * verticalSign >= 0) {\n if ((verticalPosition.x - defaultControlX) * horizontalSign >= 0) {\n // ┌─────┐\n // ┌──┤ T │\n // │ └─────┘\n // ┌──┴──┐\n // │ S │\n // └─────┘\n controls = [{ x: verticalPosition.x, y: horizontalPosition.y }];\n } else {\n // ┌─────┐\n // │ T ├─┐\n // └─────┘ │\n // ┌─┘\n // ┌──┴──┐\n // │ S │\n // └─────┘\n const controlY0 =\n vertical.y + (vertical.height / 2 + MINIMAL_OFFSET) * verticalSign;\n const controlY1 =\n horizontal.y -\n (horizontal.height / 2 + MINIMAL_OFFSET) * verticalSign;\n const middleY = (controlY0 + controlY1) / 2;\n controls = [\n { x: verticalPosition.x, y: middleY },\n { x: defaultControlX, y: middleY },\n { x: defaultControlX, y: horizontalPosition.y },\n ];\n }\n } else {\n const sourceExtendX =\n vertical.x - (vertical.width / 2 + MINIMAL_OFFSET) * horizontalSign;\n if ((sourceExtendX - defaultControlX) * horizontalSign >= 0) {\n // ┌────┐\n // │ ┌──┴──┐\n // │ │ S │\n // ┌─────┐ │ └─────┘\n // │ T ├─┘\n // └─────┘\n const middleX = (sourceExtendX + defaultControlX) / 2;\n controls = [\n { x: verticalPosition.x, y: defaultControlY },\n { x: middleX, y: defaultControlY },\n { x: middleX, y: horizontalPosition.y },\n ];\n } else {\n // ┌────┐\n // │ ┌──┴──┐\n // │ │ S │\n // │ └─────┘\n // └───┐\n // ┌─────┐ │\n // │ T ├─┘\n // └─────┘\n const middleY =\n (vertical.y -\n (vertical.height / 2) * verticalSign +\n horizontal.y +\n (horizontal.height / 2) * verticalSign) /\n 2;\n controls = [\n { x: verticalPosition.x, y: defaultControlY },\n { x: sourceExtendX, y: defaultControlY },\n { x: sourceExtendX, y: middleY },\n { x: defaultControlX, y: middleY },\n { x: defaultControlX, y: horizontalPosition.y },\n ];\n }\n }\n } else if (sourceDirection === targetDirection) {\n // Same direction\n const sign =\n sourceDirection === \"bottom\" || sourceDirection === \"right\" ? 1 : -1;\n let start: NodeRect;\n let end: NodeRect;\n let startPosition: NodePosition;\n let endPosition: NodePosition;\n const axis = sourceIsVertical ? \"y\" : \"x\";\n const oppositeAxis = sourceIsVertical ? \"x\" : \"y\";\n if (target[axis] < source[axis]) {\n start = target;\n end = source;\n startPosition = p1;\n endPosition = p0;\n reverseControls = sign === 1;\n } else {\n start = source;\n end = target;\n startPosition = p0;\n endPosition = p1;\n reverseControls = sign !== 1;\n }\n const perpendicular =\n target[oppositeAxis] < source[oppositeAxis] ? source : target;\n let around: NodeRect;\n let nonAround: NodeRect;\n let aroundPosition: NodePosition;\n let nonAroundPosition: NodePosition;\n if (sign === 1) {\n around = end;\n nonAround = start;\n aroundPosition = endPosition;\n nonAroundPosition = startPosition;\n } else {\n around = start;\n nonAround = end;\n aroundPosition = startPosition;\n nonAroundPosition = endPosition;\n }\n const aroundSign = around === perpendicular ? 1 : -1;\n if (sourceIsVertical) {\n const defaultControlX =\n around.x - (around.width / 2 + MINIMAL_OFFSET) * aroundSign;\n const defaultControlY = aroundPosition.y + MINIMAL_OFFSET * sign;\n if ((defaultControlX - nonAroundPosition.x) * aroundSign >= 0) {\n // ┌─────────┐\n // │ ┌──┴──┐\n // │ │ T │\n // ┌──┴──┐ └─────┘\n // │ S │\n // └─────┘\n controls = [\n { x: nonAroundPosition.x, y: defaultControlY },\n { x: aroundPosition.x, y: defaultControlY },\n ];\n } else {\n // ┌────┐\n // │ ┌──┴──┐\n // │ │ T │\n // │ └─────┘\n // └─┐\n // ┌──┴──┐\n // │ S │\n // └─────┘\n const middleY =\n (nonAround.y +\n (nonAround.height / 2) * sign +\n around.y -\n (around.height / 2) * sign) /\n 2;\n controls = [\n { x: nonAroundPosition.x, y: middleY },\n { x: defaultControlX, y: middleY },\n { x: defaultControlX, y: defaultControlY },\n { x: aroundPosition.x, y: defaultControlY },\n ];\n }\n } else {\n const defaultControlX = aroundPosition.x + MINIMAL_OFFSET * sign;\n const defaultControlY =\n around.y - (around.height / 2 + MINIMAL_OFFSET) * aroundSign;\n if ((defaultControlY - nonAroundPosition.y) * aroundSign >= 0) {\n // ┌─────┐\n // ┌─────────┤ T │\n // │ ┌─────┐ └─────┘\n // └─┤ S │\n // └─────┘\n controls = [\n { x: defaultControlX, y: nonAroundPosition.y },\n { x: defaultControlX, y: aroundPosition.y },\n ];\n } else {\n // ┌─────────┐\n // │ ┌─────┐ │ ┌─────┐\n // └─┤ S │ └─┤ T │\n // └─────┘ └─────┘\n const middleX =\n (nonAround.x +\n (nonAround.width / 2) * sign +\n around.x -\n (around.width / 2) * sign) /\n 2;\n controls = [\n { x: middleX, y: nonAroundPosition.y },\n { x: middleX, y: defaultControlY },\n { x: defaultControlX, y: defaultControlY },\n { x: defaultControlX, y: aroundPosition.y },\n ];\n }\n }\n } else {\n // Opposite direction\n const targetSign =\n targetDirection === \"bottom\" || targetDirection === \"right\" ? 1 : -1;\n let axis: \"x\" | \"y\";\n let oppositeAxis: \"x\" | \"y\";\n let size: \"width\" | \"height\";\n let oppositeSize: \"width\" | \"height\";\n if (sourceIsVertical) {\n axis = \"y\";\n oppositeAxis = \"x\";\n size = \"height\";\n oppositeSize = \"width\";\n } else {\n axis = \"x\";\n oppositeAxis = \"y\";\n size = \"width\";\n oppositeSize = \"height\";\n }\n const targetEdge = target[axis] + (target[size] / 2) * targetSign;\n const sourceEdge = source[axis] - (source[size] / 2) * targetSign;\n const targetControl = targetEdge + MINIMAL_OFFSET * targetSign;\n const sourceControl = sourceEdge - MINIMAL_OFFSET * targetSign;\n const oppositeIsStraight = p0[oppositeAxis] === p1[oppositeAxis];\n if ((sourceControl - targetControl) * targetSign >= 0) {\n const middle = (sourceControl + targetControl) / 2;\n if (oppositeIsStraight) {\n // Straight line\n // ┌─────┐\n // │ T │\n // └──┬──┘\n // │\n // ┌──┴──┐\n // │ S │\n // └─────┘\n controls = [];\n } else {\n // ┌─────┐\n // │ T │\n // └──┬──┘\n // ┌───┘\n // ┌──┴──┐\n // │ S │\n // └─────┘\n controls = [\n { [oppositeAxis]: p0[oppositeAxis], [axis]: middle },\n { [oppositeAxis]: p1[oppositeAxis], [axis]: middle },\n ] as unknown[] as NodePosition[];\n }\n } else if (\n oppositeIsStraight &&\n (sourceEdge - targetEdge) * targetSign >= 0\n ) {\n // Straight line (very close)\n // ┌─────┐\n // │ T │\n // └──┬──┘\n // ┌──┴──┐\n // │ S │\n // └─────┘\n controls = [];\n } else {\n const targetOppositeSign =\n target[oppositeAxis] < source[oppositeAxis] ? -1 : 1;\n const sourceOppositeControl =\n source[oppositeAxis] +\n (source[oppositeSize] / 2 + MINIMAL_OFFSET) * targetOppositeSign;\n const targetOppositeControl =\n target[oppositeAxis] -\n (target[oppositeSize] / 2 + MINIMAL_OFFSET) * targetOppositeSign;\n if (\n (targetOppositeControl - sourceOppositeControl) * targetOppositeSign >=\n 0 ||\n Math.abs((sourceControl - targetControl) * targetSign) < MINIMAL_OFFSET\n ) {\n // ┌─────┐\n // ┌────┐ │ T │\n // ┌──┴──┐ │ └──┬──┘\n // │ S │ └────┘\n // └─────┘\n const oppositeMiddle =\n (sourceOppositeControl + targetOppositeControl) / 2;\n controls = [\n { [oppositeAxis]: p0[oppositeAxis], [axis]: sourceControl },\n { [oppositeAxis]: oppositeMiddle, [axis]: sourceControl },\n { [oppositeAxis]: oppositeMiddle, [axis]: targetControl },\n { [oppositeAxis]: p1[oppositeAxis], [axis]: targetControl },\n ] as unknown[] as NodePosition[];\n } else {\n // ┌────┐\n // ┌──┴──┐ │\n // │ S │ │\n // └─────┘ │\n // ┌─────────┘\n // │ ┌─────┐\n // │ │ T │\n // │ └──┬──┘\n // └────┘\n const middle =\n (source[axis] +\n (source[size] / 2) * targetSign +\n target[axis] -\n (target[size] / 2) * targetSign) /\n 2;\n controls = [\n { [oppositeAxis]: p0[oppositeAxis], [axis]: sourceControl },\n { [oppositeAxis]: sourceOppositeControl, [axis]: sourceControl },\n { [oppositeAxis]: sourceOppositeControl, [axis]: middle },\n { [oppositeAxis]: targetOppositeControl, [axis]: middle },\n { [oppositeAxis]: targetOppositeControl, [axis]: targetControl },\n { [oppositeAxis]: p1[oppositeAxis], [axis]: targetControl },\n ] as unknown[] as NodePosition[];\n }\n }\n }\n\n if (reverseControls) {\n controls.reverse();\n }\n\n return [p0, ...controls, p1] as NodePosition[];\n}\n\nfunction getCoordinates(\n node: NodeRect,\n direction: Direction,\n position: number\n): NodePosition {\n const { x, y, width, height } = node;\n switch (direction) {\n case \"top\":\n return {\n x: x - width / 2 + width * position,\n y: y - height / 2,\n };\n case \"bottom\":\n return {\n x: x - width / 2 + width * position,\n y: y + height / 2,\n };\n case \"left\":\n return {\n x: x - width / 2,\n y: y - height / 2 + height * position,\n };\n case \"right\":\n return {\n x: x + width / 2,\n y: y - height / 2 + height * position,\n };\n }\n}\n","import type { PositionTuple } from \"../interfaces\";\n\n// https://paulbourke.net/geometry/pointlineplane/javascript.txt\nexport function intersect(\n [x1, y1]: PositionTuple,\n [x2, y2]: PositionTuple,\n [x3, y3]: PositionTuple,\n [x4, y4]: PositionTuple\n): null | PositionTuple {\n // Check if none of the lines are of length 0\n if ((x1 === x2 && y1 === y2) || (x3 === x4 && y3 === y4)) {\n return null;\n }\n\n const denominator = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1);\n\n // Lines are parallel\n if (denominator === 0) {\n return null;\n }\n\n const ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator;\n const ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denominator;\n\n // is the intersection along the segments\n if (ua < 0 || ua > 1 || ub < 0 || ub > 1) {\n return null;\n }\n\n // Return a object with the x and y coordinates of the intersection\n const x = x1 + ua * (x2 - x1);\n const y = y1 + ua * (y2 - y1);\n\n return [x, y];\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\";\nimport type { LineSegmentJumps } from \"../../draw-canvas/interfaces\";\n\n/**\n * Generate Line from points\n */\nexport function curveLine(\n points: Array<NodePosition> | null | undefined,\n curveType: CurveType | undefined,\n startOffset: number,\n endOffset: number,\n jumpsMap?: Map<number, LineSegmentJumps> | null\n): string {\n if (!Array.isArray(points)) {\n return \"\";\n }\n let curveFactory: CurveFactory;\n switch (curveType) {\n case \"curveLinear\":\n curveFactory = curveLinear;\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 = curveBasis;\n }\n const startOffsets = getOffsets(points[1], points[0], startOffset);\n const endOffsets = getOffsets(\n points[points.length - 2],\n points[points.length - 1],\n endOffset\n );\n const lineFunction = line<NodePosition>()\n .x(\n (d, index) =>\n d.x -\n (index === 0\n ? startOffsets.x\n : index === points.length - 1\n ? endOffsets.x\n : 0)\n )\n .y(\n (d, index) =>\n d.y -\n (index === 0\n ? startOffsets.y\n : index === points.length - 1\n ? endOffsets.y\n : 0)\n )\n .curve(curveFactory);\n\n if (jumpsMap && curveType == \"curveLinear\") {\n const d: string[] = [];\n for (let i = 0; i < points.length - 1; i++) {\n const start = points[i];\n const end = points[i + 1];\n if (i === 0) {\n d.push(`M${start.x},${start.y}`);\n }\n // 处理交叉跨线点\n const jump = jumpsMap.get(i);\n if (jump) {\n // 跨线点近似为一段半圆,参考 draw.io 使用三次贝赛尔曲线实现。\n // 一条 jump 记录中所有的 jumpPoints 都在同一线段上,因此角度一致、尺寸一致。\n const dx = end.x - start.x;\n const dy = end.y - start.y;\n const angle = Math.atan2(dy, dx);\n const direction = Math.abs(angle) <= Math.PI / 2 ? -1 : 1;\n const verticalAngle = angle + (Math.PI / 2) * direction;\n const offsetX = jump.radius * 1.3 * Math.cos(verticalAngle);\n const offsetY = jump.radius * 1.3 * Math.sin(verticalAngle);\n const xDiff = jump.radius * Math.cos(angle);\n const yDiff = jump.radius * Math.sin(angle);\n for (const p of jump.jumpPoints) {\n const x0 = p.x - xDiff;\n const y0 = p.y - yDiff;\n const x1 = p.x + xDiff;\n const y1 = p.y + yDiff;\n d.push(`L${x0},${y0}`);\n d.push(\n `C${x0 + offsetX},${y0 + offsetY} ${x1 + offsetX},${y1 + offsetY} ${x1},${y1}`\n );\n }\n }\n d.push(`L${end.x},${end.y}`);\n }\n return d.join(\"\");\n }\n\n return lineFunction(points)!;\n}\n\nfunction getOffsets(\n start: NodePosition,\n end: NodePosition,\n offset: number\n): NodePosition {\n if (!offset) {\n return { x: 0, y: 0 };\n }\n const { x: x0, y: y0 } = start;\n const { x: x1, y: y1 } = end;\n const distance = Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2));\n const ratio = offset / distance;\n return {\n x: (x1 - x0) * ratio,\n y: (y1 - y0) * ratio,\n };\n}\n","import type { FullRectTuple, PartialRectTuple } from \"../interfaces\";\n\nexport function extractPartialRectTuple(\n value: PartialRectTuple\n): FullRectTuple {\n if (Array.isArray(value)) {\n const v0 = value[0];\n const v1 = value.length > 1 ? value[1]! : v0;\n const v2 = value.length > 2 ? value[2]! : v0;\n const v3 = value.length > 3 ? value[3]! : v1;\n return [v0, v1, v2, v3];\n }\n return new Array(4).fill(value) as FullRectTuple;\n}\n"],"names":["doTwoNodesOverlap","a","b","paddingA","paddingB","A","getNodesWithPadding","B","left","Math","min","x","width","right","max","top","y","height","bottom","node","padding","getDirectLinePoints","source","target","parallelGap","edgeView","hasExitPosition","exitPosition","hasEntryPosition","entryPosition","p0","p1","xDiff","yDiff","dx","dy","angle","atan2","cos","PI","sin","line","sourceIntersections","getIntersections","length","targetIntersections","rect","vertices","possibleLines","i","push","intersections","item","intersection","intersect","MarkerComponent","_ref","Component","id","type","strokeColor","EntityRelationZeroOrOneMarker","EntityRelationZeroOrManyMarker","CircleMarker","ArrowMarker","React","_ref2","viewBox","refX","refY","overflow","markerWidth","r","markerHeight","stroke","fill","cx","cy","_ref3","orient","strokeLinejoin","d","strokeWidth","_ref4","_ref5","MINIMAL_OFFSET","getPolyLinePoints","sourceDirection","targetDirection","sourcePosition","targetPosition","getCoordinates","controls","reverseControls","sourceIsVertical","horizontal","vertical","horizontalSign","verticalSign","horizontalPosition","verticalPosition","defaultControlX","defaultControlY","controlY0","controlY1","middleY","middleX","sourceExtendX","sign","start","end","startPosition","endPosition","axis","oppositeAxis","around","nonAround","aroundPosition","nonAroundPosition","aroundSign","targetSign","size","oppositeSize","targetEdge","sourceEdge","targetControl","sourceControl","oppositeIsStraight","middle","targetOppositeSign","sourceOppositeControl","targetOppositeControl","abs","oppositeMiddle","reverse","direction","position","x1","y1","x2","y2","x3","y3","x4","y4","denominator","ua","ub","curveLine","points","curveType","startOffset","endOffset","jumpsMap","Array","isArray","curveFactory","curveLinear","curveBumpX","curveBumpY","curveMonotoneX","curveMonotoneY","curveNatural","curveBasis","startOffsets","getOffsets","endOffsets","lineFunction","index","curve","jump","get","verticalAngle","offsetX","radius","offsetY","p","jumpPoints","x0","y0","join","offset","ratio","sqrt","pow","extractPartialRectTuple","value","v0","v1"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_diagram=globalThis.webpackChunk_next_bricks_diagram||[]).push([[8939,9711],{497:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(6758),s=a.n(n),i=a(935),l=a.n(i)()(s());l.push([e.id,'*{box-sizing:border-box}:host{display:block;border:1px solid var(--palette-gray-5);cursor:default;-webkit-user-select:none;user-select:none}:host([hidden]){display:none}:host([usage="dragging"]){opacity:0.75;position:fixed}:host(:not([usage="library"])){background:rgba(0,0,0,0.2);width:60px;height:60px}:host([usage="library"]){width:180px;height:30px;margin-bottom:10px}div{width:100%;height:100%;display:flex;align-items:center;justify-content:center}:host(:not([usage="dragging"]):not([usage="library"]):hover),\n:host([status="highlighted"]){color:var(--palette-blue-5);background:var(--palette-blue-1);border-color:1px solid var(--palette-blue-4)}:host([status="faded"]){opacity:0.3}:host([decorator="area"]){width:100px;height:60px;background:rgba(119,141,195,0.1);border:none}:host([decorator="text"]){width:auto;height:auto;background:none;border:none}',""]);const o=l.toString()},3971:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(6758),s=a.n(n),i=a(935),l=a.n(i)()(s());l.push([e.id,':host{display:block;--local-label-line-height:inherit;--local-label-font-size:inherit;--local-label-color:inherit;--local-label-font-weight:inherit}:host([hidden]){display:none}:host([type="line"]){--local-label-line-height:18px;--local-label-font-size:11px;--local-label-color:var(--color-secondary-text);--local-label-font-weight:400}*{box-sizing:border-box}.label{max-width:168px;margin:-3px}.label-text,\n.label-input{width:100%;height:24px;padding:3px;border:none;line-height:var(--local-label-line-height);font-size:var(--local-label-font-size);color:var(--local-label-color);font-weight:var(--local-label-font-weight);text-align:center;font-family:inherit;cursor:text;-webkit-user-select:text;user-select:text}.label-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-user-select:none;user-select:none}.label.editing .label-text,\n.label.empty:not(.editing) .label-text,\n.label:not(.editing) .label-input{display:none}',""]);const o=l.toString()},9068:(e,t,a)=>{a.d(t,{uuidV4:()=>Cn});var n,s=a(4635),i=a(918),l=a(6902),o=a(2559),r=a(5536),d=a(6121),h=a(829),c=a(2740),u=a(8769),g=a.n(u),A=a(6192),p=a(9859),v=a(9005),y=(a(6477),a(1030)),m=a(3373),k=a.n(m),b=a(7566),f=a(5748),w=a(3739),C=a(531),M=a(8185),E=a(2733),W=a(1609),x=a(3639),N=a(37),T=a(3371),S=a(227),R=a(3033),L=a(8091),z=a(1819),B=a(7099),D=a(1484),O=a(8197),$=a(7531),P=a(8875),H=a(2722),I=a(9978),K=a(2219),F=a(3012),V=a(6237),Y=a(1103),U=a(9386),X=a(1991),_=a(2202),Z=a(1825),j=a(4117),q=a(4197),G=a(8944),J=a(2969);let Q,ee,te,ae,ne,se,ie,le,oe,re,de,he,ce,ue,ge,Ae,pe,ve,ye,me,ke,be,fe,we,Ce,Me,Ee,We,xe,Ne,Te,Se,Re,Le,ze,Be,De,Oe,$e,Pe,He,Ie,Ke,Fe,Ve,Ye,Ue,Xe,_e,Ze,je,qe,Ge,Je,Qe,et,tt,at,nt,st,it,lt,ot,rt,dt,ht,ct,ut,gt,At,pt,vt,yt,mt,kt,bt,ft,wt,Ct,Mt,Et,Wt,xt,Nt,Tt,St,Rt,Lt,zt,Bt,Dt,Ot,$t,Pt,Ht,It,Kt,Ft,Vt,Yt,Ut,Xt,_t,Zt,jt,qt,Gt,Jt,Qt,ea,ta,aa,na,sa,ia,la;const oa=(0,v.unwrapProvider)("basic.lock-body-scroll"),{defineElement:ra,property:da,method:ha,event:ca}=(0,A.createDecorators)(),ua=g().forwardRef(wn);let ga;var Aa=new WeakMap,pa=new WeakMap,va=new WeakMap,ya=new WeakMap,ma=new WeakMap,ka=new WeakMap,ba=new WeakMap,fa=new WeakMap,wa=new WeakMap,Ca=new WeakMap,Ma=new WeakMap,Ea=new WeakMap,Wa=new WeakMap,xa=new WeakMap,Na=new WeakMap,Ta=new WeakMap,Sa=new WeakMap,Ra=new WeakMap,La=new WeakMap,za=new WeakMap,Ba=new WeakMap,Da=new WeakMap,Oa=new WeakSet,$a=new WeakMap,Pa=new WeakMap,Ha=new WeakMap,Ia=new WeakMap,Ka=new WeakMap,Fa=new WeakMap,Va=new WeakMap,Ya=new WeakMap,Ua=new WeakMap,Xa=new WeakMap,_a=new WeakMap,Za=new WeakMap,ja=new WeakMap,qa=new WeakMap,Ga=new WeakMap,Ja=new WeakMap,Qa=new WeakMap,en=new WeakMap,tn=new WeakMap,an=new WeakMap,nn=new WeakMap,sn=new WeakMap,ln=new WeakMap,on=new WeakMap,rn=new WeakMap,dn=new WeakMap,hn=new WeakMap,cn=new WeakMap,un=new WeakMap,gn=new WeakMap,An=new WeakMap,pn=new WeakMap,vn=new WeakMap,yn=new WeakMap,mn=new WeakMap;class kn extends p.ReactNextElement{constructor(){super(...arguments),(0,s.A)(this,Oa),(0,i.A)(this,Aa,(Q(this),te(this))),(0,i.A)(this,pa,(ae(this),ne(this))),(0,i.A)(this,va,(se(this),ie(this))),(0,i.A)(this,ya,(le(this),oe(this,[R.HP,R.HP]))),(0,i.A)(this,ma,(re(this),de(this))),(0,i.A)(this,ka,(he(this),ce(this))),(0,i.A)(this,ba,(ue(this),ge(this))),(0,i.A)(this,fa,(Ae(this),pe(this))),(0,i.A)(this,wa,(ve(this),ye(this))),(0,i.A)(this,Ca,(me(this),ke(this))),(0,i.A)(this,Ma,(be(this),fe(this,!0))),(0,i.A)(this,Ea,(we(this),Ce(this,!0))),(0,i.A)(this,Wa,(Me(this),Ee(this,!0))),(0,i.A)(this,xa,(We(this),xe(this,!1))),(0,i.A)(this,Na,(Ne(this),Te(this))),(0,i.A)(this,Ta,(Se(this),Re(this))),(0,i.A)(this,Sa,(Le(this),ze(this))),(0,i.A)(this,Ra,(Be(this),De(this))),(0,i.A)(this,La,(Oe(this),$e(this))),(0,i.A)(this,za,(Pe(this),He(this))),(0,i.A)(this,Ba,(Ie(this),Ke(this))),(0,i.A)(this,Da,(Fe(this),Ve(this))),(0,i.A)(this,$a,(Xe(this),e=>{(0,r.A)(Oa,this,Ye).emit(e)})),(0,i.A)(this,Pa,(e=>{(0,M.c)(e,this.activeTarget)||(this.activeTarget=e)})),(0,i.A)(this,Ha,_e(this)),(0,i.A)(this,Ia,(qe(this),Ge(this))),(0,i.A)(this,Ka,(et(this),e=>{(0,r.A)(Oa,this,Je).emit(e),"node"===e.type&&(0,r.A)(Oa,this,Ze).emit(e)})),(0,i.A)(this,Fa,tt(this)),(0,i.A)(this,Va,(st(this),e=>{(0,r.A)(Oa,this,at).emit(e)})),(0,i.A)(this,Ya,it(this)),(0,i.A)(this,Ua,(rt(this),e=>{(0,r.A)(Oa,this,lt).emit(e)})),(0,i.A)(this,Xa,dt(this)),(0,i.A)(this,_a,(ut(this),gt(this))),(0,i.A)(this,Za,(vt(this),e=>{(0,r.A)(Oa,this,At).emit(e),"node"===e.type&&(0,r.A)(Oa,this,ht).emit(e)})),(0,i.A)(this,ja,yt(this)),(0,i.A)(this,qa,(bt(this),e=>{(0,r.A)(Oa,this,mt).emit(e)})),(0,i.A)(this,Ga,ft(this)),(0,i.A)(this,Ja,(Mt(this),e=>{(0,r.A)(Oa,this,wt).emit(e)})),(0,i.A)(this,Qa,Et(this)),(0,i.A)(this,en,(Nt(this),e=>{(0,r.A)(Oa,this,Wt).emit(e)})),(0,i.A)(this,tn,Tt(this)),(0,i.A)(this,an,(Lt(this),e=>{(0,r.A)(Oa,this,St).emit(e)})),(0,i.A)(this,nn,zt(this)),(0,i.A)(this,sn,(Ot(this),e=>{(0,r.A)(Oa,this,Bt).emit(e)})),(0,i.A)(this,ln,$t(this)),(0,i.A)(this,on,(It(this),e=>{(0,r.A)(Oa,this,Pt).emit(e)})),(0,i.A)(this,rn,Kt(this)),(0,i.A)(this,dn,(Yt(this),e=>{(0,r.A)(Oa,this,Ft).emit(e)})),(0,i.A)(this,hn,Ut(this)),(0,i.A)(this,cn,(Zt(this),e=>{(0,r.A)(Oa,this,Xt).emit(e)})),(0,i.A)(this,un,jt(this)),(0,i.A)(this,gn,(Jt(this),e=>{(0,r.A)(Oa,this,qt).emit({clientX:e[0],clientY:e[1],view:(0,o.A)(Oa,this,bn).call(this,e)})})),(0,i.A)(this,An,Qt(this)),(0,i.A)(this,pn,(aa(this),()=>{(0,r.A)(Oa,this,ea).emit()})),(0,i.A)(this,vn,na(this)),(0,i.A)(this,yn,(la(this),()=>{(0,r.A)(Oa,this,sa).emit()})),(0,i.A)(this,mn,(0,u.createRef)())}get cells(){return(0,h.A)(Aa,this)}set cells(e){(0,d.A)(Aa,this,e)}get layout(){return(0,h.A)(pa,this)}set layout(e){(0,d.A)(pa,this,e)}get layoutOptions(){return(0,h.A)(va,this)}set layoutOptions(e){(0,d.A)(va,this,e)}get defaultNodeSize(){return(0,h.A)(ya,this)}set defaultNodeSize(e){(0,d.A)(ya,this,e)}get defaultNodeBricks(){return(0,h.A)(ma,this)}set defaultNodeBricks(e){(0,d.A)(ma,this,e)}get degradedThreshold(){return(0,h.A)(ka,this)}set degradedThreshold(e){(0,d.A)(ka,this,e)}get degradedNodeLabel(){return(0,h.A)(ba,this)}set degradedNodeLabel(e){(0,d.A)(ba,this,e)}get defaultEdgeLines(){return(0,h.A)(fa,this)}set defaultEdgeLines(e){(0,d.A)(fa,this,e)}get activeTarget(){return(0,h.A)(wa,this)}set activeTarget(e){(0,d.A)(wa,this,e)}get fadeUnrelatedCells(){return(0,h.A)(Ca,this)}set fadeUnrelatedCells(e){(0,d.A)(Ca,this,e)}get zoomable(){return(0,h.A)(Ma,this)}set zoomable(e){(0,d.A)(Ma,this,e)}get scrollable(){return(0,h.A)(Ea,this)}set scrollable(e){(0,d.A)(Ea,this,e)}get pannable(){return(0,h.A)(Wa,this)}set pannable(e){(0,d.A)(Wa,this,e)}get allowEdgeToArea(){return(0,h.A)(xa,this)}set allowEdgeToArea(e){(0,d.A)(xa,this,e)}get dragBehavior(){return(0,h.A)(Na,this)}set dragBehavior(e){(0,d.A)(Na,this,e)}get ctrlDragBehavior(){return(0,h.A)(Ta,this)}set ctrlDragBehavior(e){(0,d.A)(Ta,this,e)}get scaleRange(){return(0,h.A)(Sa,this)}set scaleRange(e){(0,d.A)(Sa,this,e)}get lineSettings(){return(0,h.A)(Ra,this)}set lineSettings(e){(0,d.A)(Ra,this,e)}get lineConnector(){return(0,h.A)(La,this)}set lineConnector(e){(0,d.A)(La,this,e)}get doNotResetActiveTargetForSelector(){return(0,h.A)(za,this)}set doNotResetActiveTargetForSelector(e){(0,d.A)(za,this,e)}get doNotResetActiveTargetOutsideCanvas(){return(0,h.A)(Ba,this)}set doNotResetActiveTargetOutsideCanvas(e){(0,d.A)(Ba,this,e)}async dropNode(e){var t,a;let{id:n,position:s,size:i,data:l,useBrick:r}=e;if(null===(t=(a=document).elementsFromPoint)||void 0===t||null===(t=t.call(a,s[0],s[1]))||void 0===t?void 0:t.includes(this)){var d,c,u;const e={type:"node",id:n,view:{..."force"===this.layout||"dagre"===this.layout?null:(0,o.A)(Oa,this,bn).call(this,s),width:null!==(d=null==i?void 0:i[0])&&void 0!==d?d:this.defaultNodeSize[0],height:null!==(c=null==i?void 0:i[1])&&void 0!==c?c:this.defaultNodeSize[0]},data:l,useBrick:r};return null===(u=(0,h.A)(mn,this).current)||void 0===u||u.dropNode(e),e}return null}async dropDecorator(e){var t,a;let{position:n,decorator:s,text:i,direction:l,source:o,target:r,view:d}=e;if(null===(t=(a=document).elementsFromPoint)||void 0===t||null===(t=t.call(a,n[0],n[1]))||void 0===t?void 0:t.includes(this)){var c,u,g,A,p;const e=this.getBoundingClientRect(),t=(0,h.A)(mn,this).current.getTransform(),a=(n[0]-e.left-t.x)/t.k,v=(n[1]-e.top-t.y)/t.k,y={type:"decorator",decorator:s,id:Cn(),view:"line"===s?{source:{x:a+(null!==(c=null==o?void 0:o.x)&&void 0!==c?c:-30),y:v+(null!==(u=null==o?void 0:o.y)&&void 0!==u?u:30)},target:{x:a+(null!==(g=null==r?void 0:r.x)&&void 0!==g?g:30),y:v+(null!==(A=null==r?void 0:r.y)&&void 0!==A?A:-30)},...d}:{width:R.N8,height:R.w1,x:a,y:v,text:i,direction:l,...d}};return null===(p=(0,h.A)(mn,this).current)||void 0===p||p.dropDecorator(y),y}return null}async addNodes(e){if(0===e.length)return[];const t=e.map((e=>{var t,a;let{size:n,useBrick:s,id:i,data:l,containerId:o}=e;return{type:"node",id:i,data:l,containerId:o,view:{width:null!==(t=null==n?void 0:n[0])&&void 0!==t?t:this.defaultNodeSize[0],height:null!==(a=null==n?void 0:n[1])&&void 0!==a?a:this.defaultNodeSize[0]},useBrick:s}}));return(0,h.A)(mn,this).current.addNodes(t,{defaultNodeSize:this.defaultNodeSize,canvasWidth:this.clientWidth,canvasHeight:this.clientHeight})}async addEdge(e){var t;let{source:a,target:n,data:s}=e;const i={type:"edge",source:a,target:n,data:s,view:this.lineSettings};return null===(t=(0,h.A)(mn,this).current)||void 0===t||t.addEdge(i),i}manuallyConnectNodes(e){return(0,h.A)(mn,this).current.manuallyConnectNodes(e)}async updateCells(e,t){await(0,o.A)(Oa,this,fn).call(this);const{updated:a}=(0,h.A)(mn,this).current.updateCells(e,{...t,defaultNodeSize:this.defaultNodeSize,canvasWidth:this.clientWidth,canvasHeight:this.clientHeight});return{updated:a}}async reCenter(){var e;null===(e=(0,h.A)(mn,this).current)||void 0===e||e.reCenter()}async toggleLock(e){return(0,h.A)(mn,this).current.toggleLock(e,"toggle")}async lock(e){return(0,h.A)(mn,this).current.toggleLock(e,"lock")}async unlock(e){return(0,h.A)(mn,this).current.toggleLock(e,"unlock")}disconnectedCallback(){super.disconnectedCallback(),oa(this,!1)}render(){return g().createElement(ua,{host:this,ref:(0,h.A)(mn,this),layout:this.layout,layoutOptions:this.layoutOptions,cells:this.cells,defaultNodeSize:this.defaultNodeSize,defaultNodeBricks:this.defaultNodeBricks,defaultEdgeLines:this.defaultEdgeLines,degradedThreshold:this.degradedThreshold,degradedNodeLabel:this.degradedNodeLabel,activeTarget:this.activeTarget,fadeUnrelatedCells:this.fadeUnrelatedCells,zoomable:this.zoomable,scrollable:this.scrollable,pannable:this.pannable,dragBehavior:this.dragBehavior,ctrlDragBehavior:this.ctrlDragBehavior,scaleRange:this.scaleRange,lineSettings:this.lineSettings,lineConnector:this.lineConnector,allowEdgeToArea:this.allowEdgeToArea,doNotResetActiveTargetForSelector:this.doNotResetActiveTargetForSelector,doNotResetActiveTargetOutsideCanvas:this.doNotResetActiveTargetOutsideCanvas,onActiveTargetChange:(0,h.A)($a,this),onSwitchActiveTarget:(0,h.A)(Pa,this),onCellMove:(0,h.A)(Ka,this),onCellsMove:(0,h.A)(Va,this),onCellResize:(0,h.A)(Ua,this),onCellDelete:(0,h.A)(Za,this),onCellsDelete:(0,h.A)(qa,this),onEdgeAdd:(0,h.A)(en,this),onCellContextMenu:(0,h.A)(Ja,this),onCanvasContextMenu:(0,h.A)(gn,this),onDecoratorTextChange:(0,h.A)(on,this),onContainerContainerChange:(0,h.A)(dn,this),onScaleChange:(0,h.A)(cn,this),onEdgeViewChange:(0,h.A)(an,this),onDecoratorViewChange:(0,h.A)(sn,this),onCanvasCopy:(0,h.A)(pn,this),onCanvasPaste:(0,h.A)(yn,this)})}}function bn(e){const t=this.getBoundingClientRect(),a=(0,h.A)(mn,this).current.getTransform();return{x:(e[0]-t.left-a.x)/a.k,y:(e[1]-t.top-a.y)/a.k}}function fn(){return new Promise((e=>{const t=()=>{(0,h.A)(mn,this).current?e():setTimeout(t,10)};t()}))}function wn(e,t){let{host:a,layout:n,layoutOptions:s,cells:i,defaultNodeSize:l,defaultNodeBricks:o,defaultEdgeLines:r,degradedThreshold:d,degradedNodeLabel:h,activeTarget:c,fadeUnrelatedCells:A,zoomable:p,scrollable:v,pannable:m,dragBehavior:M,ctrlDragBehavior:F,scaleRange:V,lineSettings:Q,lineConnector:ee,allowEdgeToArea:te,doNotResetActiveTargetForSelector:ae,doNotResetActiveTargetOutsideCanvas:ne,onActiveTargetChange:se,onSwitchActiveTarget:ie,onCellMove:le,onCellResize:oe,onCellDelete:re,onCellsMove:de,onCellsDelete:he,onCellContextMenu:ce,onEdgeAdd:ue,onDecoratorTextChange:ge,onScaleChange:Ae,onContainerContainerChange:pe,onEdgeViewChange:ve,onDecoratorViewChange:ye,onCanvasContextMenu:me,onCanvasCopy:ke,onCanvasPaste:be}=e;const[{cells:fe,layoutKey:we},Ce]=(0,u.useReducer)(f.d,i,(e=>({cells:(0,N.C)(e,{defaultNodeSize:l,layoutOptions:s,isInitialize:!0}),layoutKey:0}))),Me=(0,u.useMemo)((()=>fe.filter(C.N).length>=(null!=d?d:R.pC)),[fe,d]),Ee=(0,u.useRef)(null),We=(0,u.useRef)(null),[xe,Ne]=(0,u.useState)([]),[Te,Se]=(0,u.useState)([]),[Re,Le]=(0,u.useState)(null),{grabbing:ze,transform:Be,zoomer:De,scaleRange:Oe}=(0,L.f)({rootRef:Ee,zoomable:p,scrollable:v,pannable:m,draggable:"grab"===M,ctrlDraggable:"grab"===F,scaleRange:V,onSwitchActiveTarget:ie});(0,u.useEffect)((()=>{Ae(Be.k)}),[Ae,Be.k]);const[$e,Pe]=(0,u.useState)(null),[He,Ie]=(0,u.useState)(null),{centered:Ke,setCentered:Fe,getNextLayoutKey:Ve}=(0,D.g)({layout:n,layoutOptions:s,rootRef:Ee,cells:fe,zoomable:p,zoomer:De,scaleRange:Oe,layoutKey:we,allowEdgeToArea:te,dispatch:Ce}),Ye=(0,u.useCallback)((()=>{Fe(!1)}),[Fe]),Ue=(0,u.useMemo)((()=>(0,G.E)(fe)),[fe]);(0,u.useImperativeHandle)(t,(()=>({dropNode(e){"dagre"!==n&&"force"!==n&&Fe(!0),Ce({type:"drop-node",payload:e})},dropDecorator(e){"dagre"!==n&&"force"!==n&&Fe(!0),Ce({type:"drop-decorator",payload:e})},addNodes(e,t){let{defaultNodeSize:a,canvasWidth:i,canvasHeight:l}=t;const o=fe.findLastIndex((e=>!("decorator"===e.type&&"text"===e.decorator)))+1,r=[...fe.slice(0,o),...e,...fe.slice(o)],{cells:d,updated:h,shouldReCenter:c}=(0,T.L)({cells:r,layout:n,previousCells:fe,defaultNodeSize:a,canvasWidth:i,canvasHeight:l,scaleRange:Oe,transform:Be,allowEdgeToArea:te,layoutOptions:s});return c&&Fe(!1),Ce({type:"update-cells",payload:d}),h.filter((t=>e.includes(t)))},addEdge(e){Ce({type:"add-edge",payload:e})},updateCells(e,t){const{shouldReCenter:a,...i}=(0,T.L)({...t,layout:n,previousCells:fe,cells:e,scaleRange:Oe,transform:Be,allowEdgeToArea:te,layoutOptions:s});return a&&Fe(!1),Ce({type:"update-cells",payload:i.cells}),i},getTransform:()=>Be,manuallyConnectNodes(e){const t=fe.find((t=>(0,C.bo)(t,te)&&t.id===e));if(t){const e=Ee.current.getBoundingClientRect();return Ie({source:t,from:[t.view.x+t.view.width/2,t.view.y+t.view.height/2],offset:[e.left,e.top]}),new Promise(((e,t)=>{We.current={resolve:e,reject:t}}))}return Promise.reject(null)},reCenter:Ye,toggleLock(e,t){const{newCells:a,updates:n}=(0,J.A)(e,t,fe,Ue);return a?(Ce({type:"update-cells",payload:a}),n):null}})),[fe,n,Oe,Fe,Be,te,Ye,Ue]);const Xe=(0,u.useCallback)(((e,t)=>{var a;for(let a=fe.length-1;a>=0;a--){const s=fe[a];if((0,C.bo)(s,te)&&s.id!==e.source.id&&s.view.x<t[0]&&s.view.x+s.view.width>t[0]&&s.view.y<t[1]&&s.view.y+s.view.height>t[1]){var n;null===(n=We.current)||void 0===n||n.resolve({source:e.source,target:s});break}}null===(a=We.current)||void 0===a||a.reject(null),Ie(null)}),[te,fe]),[_e,Ze]=(0,u.useState)(null);(0,u.useEffect)((()=>{oa(a,!!(He||_e||$e))}),[He,a,_e,$e]);const je=(0,z.J)({rootRef:Ee,activeTarget:c,doNotResetActiveTargetForSelector:ae,doNotResetActiveTargetOutsideCanvas:ne,onActiveTargetChange:se}),[qe,Ge]=(0,u.useState)([]);(0,u.useEffect)((()=>{const e=A?(0,S.Y)(fe,He,je,te):[];Ge((t=>0===t.length&&0===e.length?t:e))}),[je,fe,He,A,te]),(0,u.useEffect)((()=>{const e=Ee.current;if(!e||xe.length>0)return;const t=e=>{const t=(0,E.a)(e,{cells:fe,activeTarget:je,lockedContainerIds:Ue});"delete-cells"===(null==t?void 0:t.action)&&(he(t.cells),1===t.cells.length&&re(t.cells[0]))};return e.addEventListener("keydown",t),()=>{e.removeEventListener("keydown",t)}}),[je,fe,xe.length,Ue,re,he]);const Je=`${(0,u.useMemo)((()=>`${(0,y.uniqueId)("diagram-")}-`),[])}line-arrow-`,[Qe,et]=(0,u.useState)([]),[tt,at]=(0,u.useState)(!1),[nt,st]=(0,u.useState)(!1),[it,lt]=(0,u.useState)(!1),ot=(0,u.useCallback)((e=>{Ce({type:"move-cells",payload:e});const t=[];(0,X._)(e,fe).forEach((e=>{var a,n;null!==(a=e.containerCell)&&void 0!==a&&a.id&&t.push(null===(n=e.containerCell)||void 0===n?void 0:n.id)})),Se(t),et(e.flatMap((e=>{var t;return null!==(t=e.guideLines)&&void 0!==t?t:[]}))),at(!0),e.some((e=>(0,C._m)(e)))||lt(!0)}),[fe]),rt=(0,u.useCallback)((e=>{Ce({type:"move-cells",payload:e}),de(e),1===e.length&&le(e[0]),(0,X._)(e,fe,pe),Se([]),et([]),at(!1),lt(!1)}),[le,de,fe,pe]),dt=(0,u.useCallback)((e=>{Ce({type:"resize-cell",payload:e}),st(!0)}),[]),ht=(0,u.useCallback)((e=>{Ce({type:"resize-cell",payload:e}),oe(e),st(!1)}),[oe]),ct=(0,u.useCallback)((e=>{let{id:t,editing:a}=e;Ne(a?e=>e.includes(t)?e:[...e,t]:e=>e.filter((e=>e!==t)))}),[]),ut=(0,u.useCallback)(((e,t)=>{const a=Ve();Ce({type:"update-node-size",payload:{id:e,size:t},layoutKey:a})}),[Ve]),gt=(0,u.useCallback)((e=>{De.scaleTo((0,b.A)(Ee.current),e/100)}),[De]),{lineConfMap:At,lineConnectorConf:pt,markers:vt}=(0,$.d)({cells:fe,defaultEdgeLines:r,lineConnector:ee,markerPrefix:Je,useMemoizedResult:it||nt}),yt=(0,j.A)({cells:fe,lineConfMap:At}),mt=(0,u.useMemo)((()=>{let e=[];return e=fe.filter((e=>!(0,G.l)(e,Ue)&&(0,q.Q)(e,je)&&((0,C.WW)(e)||(0,C._m)(e))&&yt.has(e))),e}),[je,fe,yt,Ue]),kt=(0,O.H)({cells:fe,layout:n,centered:Ke}),[bt,ft]=(0,u.useState)(null),wt=(0,u.useRef)(null),[Ct,Mt]=(0,u.useState)(null),Et=(0,u.useCallback)((e=>{if(pt&&!(0,G.l)(e,Ue)&&(0,C.bo)(e,te)&&(!Ct||"control"!==Ct.type)){null!==wt.current&&(clearTimeout(wt.current),wt.current=null);const t=(0,P.G)();ft({cell:e,relativePoints:t,points:Mn(t,e.view)})}}),[te,pt,Ct,Ue]),Wt=(0,u.useCallback)((e=>{pt&&(0,C.N)(e)&&(wt.current=setTimeout((()=>{ft(null)})))}),[pt]),xt=(0,u.useCallback)(((e,t,a,n)=>{const s={source:e.id,target:t.id,view:{...Q,exitPosition:a,entryPosition:n,vertices:null}};if(fe.find((a=>"edge"===a.type&&a.source===e.id&&a.target===t.id)))Ce({type:"change-edge-view",payload:s}),null==ve||ve(s);else{const a={type:"edge",...s};Ce({type:"add-edge",payload:a}),ue({source:e,target:t,view:a.view})}}),[fe,Q,ue,ve]),Nt=(0,u.useCallback)(((e,t,a)=>{const n={source:e.id,target:t.id,view:a};Ce({type:"change-edge-view",payload:n}),null==ve||ve(n)}),[ve]),Tt=(0,u.useCallback)(((e,t)=>{const a={id:e.id,view:t};Ce({type:"change-decorator-view",payload:a}),null==ye||ye(a)}),[ye]),St=(0,u.useMemo)((()=>({rootRef:Ee,smartConnectLineState:_e,unsetHoverStateTimeoutRef:wt,hoverState:bt,activeEditableLines:mt,lineEditorState:Ct,movingCells:tt,setLineEditorState:Mt,setHoverState:ft,setSmartConnectLineState:Ze,onConnect:xt,onChangeEdgeView:Nt,onChangeDecoratorView:Tt})),[mt,Nt,Tt,xt,bt,Ct,_e,tt]),Rt=(0,u.useCallback)((e=>{e.preventDefault(),me([e.clientX,e.clientY]),null==ie||ie(null)}),[me,ie]),Lt=(0,u.useCallback)((e=>{e[/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey"]&&("c"===e.key?(ke(),e.preventDefault()):"v"===e.key&&(be(),e.preventDefault()))}),[ke,be]);return(0,u.useEffect)((()=>{const e=Ee.current;if(!e||"lasso"!==M)return;const t=e.getBoundingClientRect(),a=e=>{(0,K.F)(e,{transform:Be,offset:[t.left,t.top],onLassoing(e){Pe(e)},onLassoed(e){Pe(null);const t=[];for(const a of fe)if((0,C.WW)(a)||(0,C.N)(a)||(0,C.mH)(a)){const n=(0,y.get)(a,"view.x",0),s=(0,y.get)(a,"view.y",0),i=(0,y.get)(a,"view.width",0),l=(0,y.get)(a,"view.height",0);n>=e.x&&n+i<=e.x+e.width&&s>=e.y&&s+l<=e.y+e.height&&t.push(a)}null==ie||ie(t.length>1?{type:"multi",targets:t.map(U.P)}:1===t.length?(0,U.P)(t[0]):null)}})};return e.addEventListener("mousedown",a),()=>{e.removeEventListener("mousedown",a)}}),[Be,fe,M,ie]),g().createElement(I.H.Provider,{value:St},g().createElement("svg",{onKeyDown:Lt,onContextMenu:Rt,width:"100%",height:"100%",ref:Ee,className:k()("root",{grabbing:ze,pannable:m,ready:kt}),tabIndex:-1},g().createElement("defs",null,vt.map(((e,t)=>g().createElement(w.c,{key:t,id:`${Je}${t}`,type:e.markerType,strokeColor:e.strokeColor})))),g().createElement("g",{transform:`translate(${Be.x} ${Be.y}) scale(${Be.k})`},g().createElement("g",{className:k()("cells",{allowEdgeToArea:te})},fe.map((e=>g().createElement(W.m,{key:`${e.type}:${(0,C.WW)(e)?`${e.source}~${e.target}`:e.id}`,dragoverContainer:!(0,C.WW)(e)&&Te.includes(e.id),layout:n,layoutOptions:s,cell:e,cells:fe,degraded:Me,degradedNodeLabel:h,defaultNodeBricks:o,transform:Be,lineConfMap:At,editableLineMap:yt,activeTarget:je,unrelatedCells:qe,allowEdgeToArea:te,curActiveEditableLine:Re,locked:(0,G.l)(e,Ue),containerLocked:(0,C.N)(e)&&!!e.containerId&&Ue.includes(e.containerId),updateCurActiveEditableLine:Le,onCellsMoving:ot,onCellsMoved:rt,onCellResizing:dt,onCellResized:ht,onSwitchActiveTarget:ie,onCellContextMenu:ce,onDecoratorTextChange:ge,onDecoratorTextEditing:ct,onNodeBrickResize:ut,onCellMouseEnter:Et,onCellMouseLeave:Wt})))),g().createElement("g",null,g().createElement(x.w,{connectLineState:He,transform:Be,markerEnd:`${Je}0`,onConnect:Xe})),$e&&g().createElement("rect",{x:$e.x,y:$e.y,width:$e.width,height:$e.height,fill:"var(--palette-gray-5)",fillOpacity:.3,stroke:"var(--palette-gray-5)",strokeDasharray:2}),pt&&g().createElement("g",null,g().createElement(Y.X,{transform:Be,lineSettings:Q,options:pt}),g().createElement(Z.W,{cells:fe,editableLineMap:yt,transform:Be,options:pt,activeEditableLine:Re})),g().createElement("g",null,Qe.map(((e,t)=>g().createElement("path",{key:t,d:`M${e[0].join(" ")} L${e[1].join(" ")}`,stroke:"var(--palette-orange-5)",fill:"none",strokeWidth:1/Be.k})))),g().createElement("g",null,pt&&(null==mt?void 0:mt.map((e=>g().createElement(_.F,{editableLineMap:yt,scale:Be.k,activeEditableLine:e,updateCurActiveEditableLine:Le,key:(0,C.WW)(e)?`${e.source}-${e.target}`:e.id}))))),pt&&g().createElement(H.T,{activeTarget:je,editableLineMap:yt,scale:Be.k,activeEditableLine:Re,disabled:!!He}))),g().createElement(B.Y,{shadowRoot:a.shadowRoot,scale:Be.k,scaleRange:Oe,onZoomChange:gt,onReCenter:Ye}))}function Cn(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){const t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))}function Mn(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const n=R.XK,s=n/2,i=t.x+a/2-s,l=t.y+a/2-s,o=t.width-a+n,r=t.height-a+n;return e.map((e=>({x:i+e.x*o,y:l+e.y*r})))}n=kn,({e:[te,ae,ne,se,ie,le,oe,re,de,he,ce,ue,ge,Ae,pe,ve,ye,me,ke,be,fe,we,Ce,Me,Ee,We,xe,Ne,Te,Se,Re,Le,ze,Be,De,Oe,$e,Pe,He,Ie,Ke,Fe,Ve,Ye,Ue,Xe,_e,Ze,je,qe,Ge,Je,Qe,et,tt,at,nt,st,it,lt,ot,rt,dt,ht,ct,ut,gt,At,pt,vt,yt,mt,kt,bt,ft,wt,Ct,Mt,Et,Wt,xt,Nt,Tt,St,Rt,Lt,zt,Bt,Dt,Ot,$t,Pt,Ht,It,Kt,Ft,Vt,Yt,Ut,Xt,_t,Zt,jt,qt,Gt,Jt,Qt,ea,ta,aa,na,sa,ia,la,Q],c:[ga,ee]}=(0,c.A)(n,[ra("eo-draw-canvas",{styleTexts:[F.A,V.A]})],[[da({attribute:!1}),1,"cells"],[da({type:String}),1,"layout"],[da({attribute:!1}),1,"layoutOptions"],[da({attribute:!1}),1,"defaultNodeSize"],[da({attribute:!1}),1,"defaultNodeBricks"],[da({type:Number}),1,"degradedThreshold"],[da({attribute:!1}),1,"degradedNodeLabel"],[da({attribute:!1}),1,"defaultEdgeLines"],[da({attribute:!1}),1,"activeTarget"],[da({type:Boolean}),1,"fadeUnrelatedCells"],[da({type:Boolean}),1,"zoomable"],[da({type:Boolean}),1,"scrollable"],[da({type:Boolean}),1,"pannable"],[da({type:Boolean}),1,"allowEdgeToArea"],[da(),1,"dragBehavior"],[da(),1,"ctrlDragBehavior"],[da({attribute:!1}),1,"scaleRange"],[da({attribute:!1}),1,"lineSettings"],[da({attribute:!1}),1,"lineConnector"],[da(),1,"doNotResetActiveTargetForSelector"],[da({type:Boolean}),1,"doNotResetActiveTargetOutsideCanvas"],[ca({type:"activeTarget.change"}),1,"activeTargetChangeEvent",e=>(0,h.A)(Da,e),(e,t)=>(0,d.A)(Da,e,t)],[ca({type:"node.move"}),1,"nodeMoveEvent",e=>(0,h.A)(Ha,e),(e,t)=>(0,d.A)(Ha,e,t)],[ca({type:"cell.move"}),1,"cellMoveEvent",e=>(0,h.A)(Ia,e),(e,t)=>(0,d.A)(Ia,e,t)],[ca({type:"cells.move"}),1,"cellsMoveEvent",e=>(0,h.A)(Fa,e),(e,t)=>(0,d.A)(Fa,e,t)],[ca({type:"cell.resize"}),1,"cellResizeEvent",e=>(0,h.A)(Ya,e),(e,t)=>(0,d.A)(Ya,e,t)],[ca({type:"node.delete"}),1,"nodeDelete",e=>(0,h.A)(Xa,e),(e,t)=>(0,d.A)(Xa,e,t)],[ca({type:"cell.delete"}),1,"cellDelete",e=>(0,h.A)(_a,e),(e,t)=>(0,d.A)(_a,e,t)],[ca({type:"cells.delete"}),1,"cellsDelete",e=>(0,h.A)(ja,e),(e,t)=>(0,d.A)(ja,e,t)],[ca({type:"cell.contextmenu"}),1,"cellContextMenu",e=>(0,h.A)(Ga,e),(e,t)=>(0,d.A)(Ga,e,t)],[ca({type:"edge.add"}),1,"edgeAdd",e=>(0,h.A)(Qa,e),(e,t)=>(0,d.A)(Qa,e,t)],[ca({type:"edge.view.change"}),1,"edgeViewChange",e=>(0,h.A)(tn,e),(e,t)=>(0,d.A)(tn,e,t)],[ca({type:"decorator.view.change"}),1,"decoratorViewChange",e=>(0,h.A)(nn,e),(e,t)=>(0,d.A)(nn,e,t)],[ca({type:"decorator.text.change"}),1,"decoratorTextChange",e=>(0,h.A)(ln,e),(e,t)=>(0,d.A)(ln,e,t)],[ca({type:"node.container.change"}),1,"containerContainerChange",e=>(0,h.A)(rn,e),(e,t)=>(0,d.A)(rn,e,t)],[ca({type:"scale.change"}),1,"scaleChange",e=>(0,h.A)(hn,e),(e,t)=>(0,d.A)(hn,e,t)],[ca({type:"canvas.contextmenu"}),1,"canvasContextMenu",e=>(0,h.A)(un,e),(e,t)=>(0,d.A)(un,e,t)],[ca({type:"canvas.copy"}),1,"canvasCopy",e=>(0,h.A)(An,e),(e,t)=>(0,d.A)(An,e,t)],[ca({type:"canvas.paste"}),1,"canvasPaste",e=>(0,h.A)(vn,e),(e,t)=>(0,d.A)(vn,e,t)],[ha(),2,"dropNode"],[ha(),2,"dropDecorator"],[ha(),2,"addNodes"],[ha(),2,"addEdge"],[ha(),2,"manuallyConnectNodes"],[ha(),2,"updateCells"],[ha(),2,"reCenter"],[ha(),2,"toggleLock"],[ha(),2,"lock"],[ha(),2,"unlock"]],0,(e=>mn.has((0,l.A)(e))),p.ReactNextElement)),ee()},9711:(e,t,a)=>{var n,s=a(4635),i=a(918),l=a(6902),o=a(5536),r=a(6121),d=a(829),h=a(2740),c=a(8769),u=a.n(c),g=a(6192),A=a(9859),p=(a(6477),a(7566)),v=a(9047),y=a(3373),m=a.n(y),k=a(1030),b=a(9126),f=a(8892),w=a(5157),C=a(8308),M=a(1518),E=a(9137),W=a(2547),x=a(1803),N=a(3739),T=a(9191),S=a(6671),R=a(8060),L=a(2448),z=a(8657),B=a(8069),D=a(1324),O=a(821),$=a(6753),P=a(2673),H=a(5987);let I,K,F,V,Y,U,X,_,Z,j,q,G,J,Q,ee,te,ae,ne,se,ie,le,oe,re,de,he,ce,ue,ge,Ae,pe,ve,ye,me,ke,be,fe,we,Ce,Me,Ee,We,xe,Ne,Te,Se,Re,Le,ze,Be,De,Oe,$e,Pe,He;const{defineElement:Ie,property:Ke,event:Fe,method:Ve}=(0,g.createDecorators)(),Ye=(0,c.forwardRef)(wt);let Ue;var Xe=new WeakMap,_e=new WeakMap,Ze=new WeakMap,je=new WeakMap,qe=new WeakMap,Ge=new WeakMap,Je=new WeakMap,Qe=new WeakMap,et=new WeakMap,tt=new WeakMap,at=new WeakMap,nt=new WeakMap,st=new WeakMap,it=new WeakMap,lt=new WeakMap,ot=new WeakSet,rt=new WeakMap,dt=new WeakMap,ht=new WeakMap,ct=new WeakMap,ut=new WeakMap,gt=new WeakMap,At=new WeakMap,pt=new WeakMap,vt=new WeakMap,yt=new WeakMap,mt=new WeakMap,kt=new WeakMap,bt=new WeakMap;class ft extends A.ReactNextElement{constructor(){super(...arguments),(0,s.A)(this,ot),(0,i.A)(this,Xe,(I(this),F(this))),(0,i.A)(this,_e,(V(this),Y(this))),(0,i.A)(this,Ze,(U(this),X(this))),(0,i.A)(this,je,(_(this),Z(this))),(0,i.A)(this,qe,(j(this),q(this))),(0,i.A)(this,Ge,(G(this),J(this))),(0,i.A)(this,Je,(Q(this),ee(this))),(0,i.A)(this,Qe,(te(this),ae(this))),(0,i.A)(this,et,(ne(this),se(this))),(0,i.A)(this,tt,(ie(this),le(this))),(0,i.A)(this,at,(oe(this),re(this,!0))),(0,i.A)(this,nt,(de(this),he(this,!0))),(0,i.A)(this,st,(ce(this),ue(this,!0))),(0,i.A)(this,it,(ge(this),Ae(this))),(0,i.A)(this,lt,(pe(this),ve(this))),(0,i.A)(this,rt,(ke(this),e=>{(0,o.A)(ot,this,ye).emit(e)})),(0,i.A)(this,dt,be(this)),(0,i.A)(this,ht,(Ce(this),e=>{(0,o.A)(ot,this,fe).emit(e)})),(0,i.A)(this,ct,Me(this)),(0,i.A)(this,ut,(xe(this),e=>{(0,o.A)(ot,this,Ee).emit(e)})),(0,i.A)(this,gt,Ne(this)),(0,i.A)(this,At,(Re(this),e=>{(0,o.A)(ot,this,Te).emit(e)})),(0,i.A)(this,pt,Le(this)),(0,i.A)(this,vt,(De(this),e=>{(0,o.A)(ot,this,ze).emit(e)})),(0,i.A)(this,yt,Oe(this)),(0,i.A)(this,mt,(He(this),e=>{(0,o.A)(ot,this,$e).emit(e)})),(0,i.A)(this,kt,(e=>{(0,P.c)(e,this.activeTarget)||(this.activeTarget=e)})),(0,i.A)(this,bt,(0,c.createRef)())}get layout(){return(0,d.A)(Xe,this)}set layout(e){(0,r.A)(Xe,this,e)}get nodes(){return(0,d.A)(_e,this)}set nodes(e){(0,r.A)(_e,this,e)}get edges(){return(0,d.A)(Ze,this)}set edges(e){(0,r.A)(Ze,this,e)}get nodeBricks(){return(0,d.A)(je,this)}set nodeBricks(e){(0,r.A)(je,this,e)}get lines(){return(0,d.A)(qe,this)}set lines(e){(0,r.A)(qe,this,e)}get layoutOptions(){return(0,d.A)(Ge,this)}set layoutOptions(e){(0,r.A)(Ge,this,e)}get activeTarget(){return(0,d.A)(Je,this)}set activeTarget(e){(0,r.A)(Je,this,e)}get disableKeyboardAction(){return(0,d.A)(Qe,this)}set disableKeyboardAction(e){(0,r.A)(Qe,this,e)}get connectNodes(){return(0,d.A)(et,this)}set connectNodes(e){(0,r.A)(et,this,e)}get dragNodes(){return(0,d.A)(tt,this)}set dragNodes(e){(0,r.A)(tt,this,e)}get zoomable(){return(0,d.A)(at,this)}set zoomable(e){(0,r.A)(at,this,e)}get scrollable(){return(0,d.A)(nt,this)}set scrollable(e){(0,r.A)(nt,this,e)}get pannable(){return(0,d.A)(st,this)}set pannable(e){(0,r.A)(st,this,e)}get scaleRange(){return(0,d.A)(it,this)}set scaleRange(e){(0,r.A)(it,this,e)}callOnLineLabel(e,t){for(var a,n=arguments.length,s=new Array(n>2?n-2:0),i=2;i<n;i++)s[i-2]=arguments[i];null===(a=(0,d.A)(bt,this).current)||void 0===a||a.callOnLineLabel(e,t,...s)}render(){return u().createElement(Ye,{ref:(0,d.A)(bt,this),layout:this.layout,nodes:this.nodes,edges:this.edges,nodeBricks:this.nodeBricks,lines:this.lines,layoutOptions:this.layoutOptions,connectNodes:this.connectNodes,dragNodes:this.dragNodes,activeTarget:this.activeTarget,disableKeyboardAction:this.disableKeyboardAction,zoomable:this.zoomable,scrollable:this.scrollable,pannable:this.pannable,scaleRange:this.scaleRange,onActiveTargetChange:(0,d.A)(rt,this),onSwitchActiveTarget:(0,d.A)(kt,this),onNodeDelete:(0,d.A)(ht,this),onEdgeDelete:(0,d.A)(ut,this),onLineClick:(0,d.A)(At,this),onLineDoubleClick:(0,d.A)(vt,this),onNodesConnect:(0,d.A)(mt,this)})}}function wt(e,t){let{layout:a,nodes:n,edges:s,nodeBricks:i,lines:l,layoutOptions:o,connectNodes:r,dragNodes:d,activeTarget:h,disableKeyboardAction:g,zoomable:A,scrollable:y,pannable:O,scaleRange:I,onActiveTargetChange:K,onSwitchActiveTarget:F,onNodeDelete:V,onEdgeDelete:Y,onLineClick:U,onLineDoubleClick:X,onNodesConnect:_}=e;const[Z,j]=(0,c.useState)(!1),[q,G]=(0,c.useState)(0),[J,Q]=(0,c.useState)(null),[ee,te]=(0,c.useState)(!1),[ae,ne]=(0,c.useState)(0),[se,ie]=(0,c.useState)(null),[le,oe]=(0,c.useState)([]),[re,de]=(0,c.useState)(!1),[he,ce]=(0,c.useState)({k:1,x:0,y:0}),ue=(0,c.useRef)(new Map),ge=(0,c.useRef)(null),Ae=(0,c.useRef)(null),[pe,ve]=(0,c.useState)(!1),{userViewReady:ye,userViewNodesMap:me,saveUserView:ke}=(0,$._)(null==d?void 0:d.save),[be,fe]=(0,c.useState)([0,0]),[we,Ce]=(0,c.useState)(null),[Me,Ee]=(0,c.useState)("initial"),[We,xe]=(0,c.useState)(null);(0,c.useImperativeHandle)(t,(()=>({callOnLineLabel(e,t){for(var a,n=arguments.length,s=new Array(n>2?n-2:0),i=2;i<n;i++)s[i-2]=arguments[i];null==se||null===(a=se.get(e))||void 0===a||null===(a=a.firstElementChild)||void 0===a||a[t](...s)}}))),(0,c.useEffect)((()=>{const e=e=>{(0,L.P)(e,{nodes:n,nodesRefRepository:J,connectNodes:r,dragNodes:d,scale:he.k,setConnectLineState:Ce,setConnectLineTo:fe,setManualLayoutStatus:Ee,setNodeMovement:xe,onSwitchActiveTarget:F,onNodesConnect:_})},t=Ae.current;return null==t||t.addEventListener("mousedown",e),()=>{null==t||t.removeEventListener("mousedown",e)}}),[n,r,d,he.k,J,_,F]);const{normalizedLines:Ne,normalizedLinesMap:Te,markers:Se}=(0,c.useMemo)((()=>(0,E.t)(s,l)),[s,l]),Re=(0,c.useMemo)((()=>Ne.flatMap((e=>{let t,a,{line:{text:n,label:s,$id:i},edge:l}=e;return n||s?(s?(t="label",a=[].concat(s)):(t="text",a=[].concat(n)),a.map((e=>{var a;return{[t]:e,id:`${i}-${null!==(a=e.placement)&&void 0!==a?a:"center"}`,edge:l}}))):[]}))),[Ne]),{nodes:Le,edges:ze}=(0,B.o)({layout:a,nodes:n,edges:s,manualLayoutStatus:Me,userViewReady:ye,userViewNodesMap:me,nodeMovement:We,nodesRefRepository:J,lineLabelsRefRepository:se,normalizedLinesMap:Te,layoutOptions:o,nodesRenderId:q,lineLabelsRenderId:ae});(0,c.useEffect)((()=>{"finished"===Me&&ke(Le.map((e=>({id:e.id,x:e.x,y:e.y}))))}),[Me]);const Be=(0,c.useMemo)((()=>(0,M.R)(ze,Le,Ne)),[Ne,Le,ze]),De=null!=h?h:null,[Oe,$e]=(0,c.useState)(De);(0,c.useEffect)((()=>{$e((e=>(0,P.c)(e,De)?e:De))}),[De]);const Pe=(0,c.useRef)(!1);(0,c.useEffect)((()=>{Pe.current?null==K||K(Oe):Pe.current=!0}),[Oe,K]),(0,c.useEffect)((()=>{const e=ge.current;if(!e||g)return;const t=e=>{const t=(0,w.a)(e,{renderedNodes:Le,activeTarget:Oe});"delete-node"===(null==t?void 0:t.action)?null==V||V(t.node):"delete-edge"===(null==t?void 0:t.action)?null==Y||Y(t.edge):"switch-active-node"===(null==t?void 0:t.action)&&t.node&&(null==F||F({type:"node",nodeId:t.node.id}))};return e.addEventListener("keydown",t),()=>{e.removeEventListener("keydown",t)}}),[Oe,Le,g,F,V,Y]);const He=(0,c.useCallback)((e=>{e&&(G((e=>e+1)),Q(e)),j((t=>t||!!e))}),[]),Ie=(0,c.useCallback)((e=>{e&&(ne((e=>e+1)),ie(e)),te((t=>t||!!e))}),[]),Ke=(0,c.useMemo)((()=>null!=I?I:[z.sS,z.Yt]),[I]),Fe=(0,c.useMemo)((()=>(0,v.s_)()),[]);(0,c.useEffect)((()=>{let e=!1;Fe.scaleExtent(A?Ke:[1,1]).on("start",(()=>{e=!1,de(!0)})).on("zoom",(t=>{e=!0,ce(t.transform)})).on("end",(()=>{de(!1),e||null==F||F(null)}))}),[F,Ke,A,Fe]),(0,c.useEffect)((()=>{const e=ge.current;if(!e)return;const t=(0,p.A)(e),a=()=>{t.on(".zoom",null).on(".zoom.custom",null).on("wheel",null)};if(A||y||O)return(A||y)&&t.on("wheel.zoom.custom",(e=>{e.ctrlKey||(e.stopImmediatePropagation(),y&&(e.preventDefault(),Fe.translateBy(t,e.wheelDeltaX/5,e.wheelDeltaY/5)))})),t.call(Fe).on("wheel",(e=>e.preventDefault())).on("dblclick.zoom",null),O||t.on("mousedown.zoom",null).on("touchstart.zoom",null).on("touchmove.zoom",null).on("touchend.zoom",null),a;a()}),[O,y,A,Fe]),(0,c.useEffect)((()=>{const e=ge.current;if(0===Le.length||!e||pe)return;const{k:t,x:a,y:n}=(0,C.r)(Le,{canvasWidth:e.clientWidth,canvasHeight:e.clientHeight,scaleRange:A?Ke:void 0});Fe.transform((0,p.A)(e),new v.uV(t,a,n)),ve(!0)}),[pe,Le,Ke,A,Fe]);const Ve=(0,c.useMemo)((()=>`${(0,k.uniqueId)("diagram-")}-`),[]),Ye=`${Ve}line-arrow-`,Ue=`${Ve}mask-`,Xe=`${Ve}active-line-`;(0,c.useEffect)((()=>{oe((e=>(0,R.z)(e,Be,ue.current)))}),[Be]);const[_e,Ze]=u().useState(new Map);return(0,c.useEffect)((()=>{if(!se)return;(0,D.F)(le,se);const e=new b.A((()=>{Ze((0,H.G)(le,se))}));for(const t of se.values())e.observe(t);return()=>{e.disconnect()}}),[ae,se,le]),"dagre"!==a&&"force"!==a?u().createElement("div",null,`Diagram layout not supported: "${a}"`):u().createElement("div",{className:m()("diagram",{ready:Z&&pe,grabbing:re,pannable:O}),tabIndex:-1,ref:ge},u().createElement("svg",{width:"100%",height:"100%",className:"lines"},u().createElement("defs",null,Se.map(((e,t)=>{let{type:a,strokeColor:n}=e;return u().createElement(N.c,{key:t,id:`${Ye}${t}`,type:a,strokeColor:n})})),[..._e].map((e=>{let[t,a]=e;return u().createElement(T.y,{key:t,lineId:t,rects:a,maskPrefix:Ue,renderedLineLabels:le})})),u().createElement("marker",{id:`${Xe}start`,viewBox:"0 0 8 8",refX:4,refY:4,markerWidth:8,markerHeight:8,orient:"auto"},u().createElement("path",{d:"M 0.5 0.5 H 7.5 V 7.5 H 0.5 Z",stroke:"var(--palette-gray-7)",strokeWidth:1,fill:"var(--palette-gray-1)"})),u().createElement("marker",{id:`${Xe}end`,viewBox:"0 0 14 8",refX:3,refY:4,markerWidth:14,markerHeight:8,orient:"auto"},u().createElement("path",{d:"M 0.5 1.5 L 5.5 4 L 0.5 6.5 z",stroke:"var(--palette-blue-3)",strokeWidth:1,fill:"var(--palette-blue-3)"}),u().createElement("path",{d:"M 6.5 0.5 H 13.5 V 7.5 H 6.5 Z",stroke:"var(--palette-gray-7)",strokeWidth:1,fill:"var(--palette-gray-1)"}))),u().createElement("g",{transform:`translate(${he.x} ${he.y}) scale(${he.k})`},Be.map((e=>u().createElement(x.m,{key:e.line.$id,line:e,linePaths:ue.current,lineMaskRects:_e,maskPrefix:Ue,markerPrefix:Ye,activeLineMarkerPrefix:Xe,active:"edge"===(null==Oe?void 0:Oe.type)&&Oe.edge.source===e.edge.source&&Oe.edge.target===e.edge.target,activeRelated:"node"===(null==Oe?void 0:Oe.type)&&(e.edge.source===Oe.nodeId||e.edge.target===Oe.nodeId),onLineClick:U,onLineDoubleClick:X}))))),u().createElement("div",{className:m()("line-labels",{ready:ee}),style:{left:he.x,top:he.y,transform:`scale(${he.k})`}},u().createElement(W.d2,{labels:Re,onRendered:Ie})),u().createElement("div",{className:"nodes",ref:Ae,style:{left:he.x,top:he.y,transform:`scale(${he.k})`}},u().createElement(f.p,{nodes:n,nodeBricks:i,onRendered:He})),u().createElement(S.w,{connectLineState:we,connectLineTo:be,markerPrefix:Ye}))}n=ft,({e:[F,V,Y,U,X,_,Z,j,q,G,J,Q,ee,te,ae,ne,se,ie,le,oe,re,de,he,ce,ue,ge,Ae,pe,ve,ye,me,ke,be,fe,we,Ce,Me,Ee,We,xe,Ne,Te,Se,Re,Le,ze,Be,De,Oe,$e,Pe,He,I],c:[Ue,K]}=(0,h.A)(n,[Ie("eo-diagram",{styleTexts:[O.A]})],[[Ke({type:String}),1,"layout"],[Ke({attribute:!1}),1,"nodes"],[Ke({attribute:!1}),1,"edges"],[Ke({attribute:!1}),1,"nodeBricks"],[Ke({attribute:!1}),1,"lines"],[Ke({attribute:!1}),1,"layoutOptions"],[Ke({attribute:!1}),1,"activeTarget"],[Ke({type:Boolean}),1,"disableKeyboardAction"],[Ke({attribute:!1}),1,"connectNodes"],[Ke({attribute:!1}),1,"dragNodes"],[Ke({type:Boolean}),1,"zoomable"],[Ke({type:Boolean}),1,"scrollable"],[Ke({type:Boolean}),1,"pannable"],[Ke({attribute:!1}),1,"scaleRange"],[Fe({type:"activeTarget.change"}),1,"activeTargetChangeEvent",e=>(0,d.A)(lt,e),(e,t)=>(0,r.A)(lt,e,t)],[Fe({type:"node.delete"}),1,"nodeDelete",e=>(0,d.A)(dt,e),(e,t)=>(0,r.A)(dt,e,t)],[Fe({type:"edge.delete"}),1,"edgeDelete",e=>(0,d.A)(ct,e),(e,t)=>(0,r.A)(ct,e,t)],[Fe({type:"line.click"}),1,"lineClick",e=>(0,d.A)(gt,e),(e,t)=>(0,r.A)(gt,e,t)],[Fe({type:"line.dblclick"}),1,"lineDoubleClick",e=>(0,d.A)(pt,e),(e,t)=>(0,r.A)(pt,e,t)],[Fe({type:"nodes.connect"}),1,"connectNodes",e=>(0,d.A)(yt,e),(e,t)=>(0,r.A)(yt,e,t)],[Ve(),2,"callOnLineLabel"]],0,(e=>bt.has((0,l.A)(e))),A.ReactNextElement)),K();var Ct,Mt=a(3971);let Et,Wt,xt,Nt,Tt,St,Rt,Lt,zt,Bt,Dt,Ot,$t,Pt,Ht,It;const{defineElement:Kt,property:Ft,event:Vt,method:Yt}=(0,g.createDecorators)(),Ut=(0,c.forwardRef)(na);let Xt;var _t=new WeakMap,Zt=new WeakMap,jt=new WeakMap,qt=new WeakMap,Gt=new WeakSet,Jt=new WeakMap,Qt=new WeakMap,ea=new WeakMap,ta=new WeakMap;class aa extends A.ReactNextElement{constructor(){super(...arguments),(0,s.A)(this,Gt),(0,i.A)(this,_t,(Et(this),xt(this))),(0,i.A)(this,Zt,(Nt(this),Tt(this))),(0,i.A)(this,jt,(St(this),Rt(this))),(0,i.A)(this,qt,(Lt(this),zt(this))),(0,i.A)(this,Jt,(Ot(this),e=>{(0,o.A)(Gt,this,Bt).emit(e)})),(0,i.A)(this,Qt,$t(this)),(0,i.A)(this,ea,(It(this),e=>{(0,o.A)(Gt,this,Pt).emit(e)})),(0,i.A)(this,ta,(0,c.createRef)())}get label(){return(0,d.A)(_t,this)}set label(e){(0,r.A)(_t,this,e)}get type(){return(0,d.A)(Zt,this)}set type(e){(0,r.A)(Zt,this,e)}get readOnly(){return(0,d.A)(jt,this)}set readOnly(e){(0,r.A)(jt,this,e)}enableEditing(){var e;null===(e=(0,d.A)(ta,this).current)||void 0===e||e.enableEditing()}render(){return u().createElement(Ut,{ref:(0,d.A)(ta,this),label:this.label,readOnly:this.readOnly,onLabelEditingChange:(0,d.A)(Jt,this),onLabelChange:(0,d.A)(ea,this)})}}function na(e,t){let{label:a,readOnly:n,onLabelChange:s,onLabelEditingChange:i}=e;const l=null!=a?a:"",[o,r]=(0,c.useState)(l),[d,h]=(0,c.useState)(!1),g=(0,c.useRef)(!1),[A,p]=(0,c.useState)(!1),v=(0,c.useRef)(null);(0,c.useImperativeHandle)(t,(()=>({enableEditing(){n||h(!0)}}))),(0,c.useEffect)((()=>{r(l)}),[l]);const y=(0,c.useCallback)((e=>{n||(e.preventDefault(),e.stopPropagation(),h(!0))}),[n]);(0,c.useEffect)((()=>{var e,t;d&&(null===(e=v.current)||void 0===e||e.focus({preventScroll:!0}),null===(t=v.current)||void 0===t||t.select())}),[d]),(0,c.useEffect)((()=>{g.current?null==i||i(d):g.current=!0}),[d,i]);const k=(0,c.useCallback)((e=>{r(e.target.value)}),[]),b=(0,c.useCallback)((e=>{e.stopPropagation();const t=e.key||e.keyCode||e.which;var a;"Enter"!==t&&13!==t||null===(a=v.current)||void 0===a||a.blur()}),[]),f=(0,c.useCallback)((()=>{h(!1),p(!0)}),[]);(0,c.useEffect)((()=>{A&&(null==s||s(o),p(!1))}),[o,s,A]);const w=(0,c.useCallback)((e=>{e.stopPropagation()}),[]);return u().createElement("div",{className:m()("label",{editing:d,empty:!o}),onDoubleClick:w,onMouseDown:w},u().createElement("input",{className:"label-input",value:o,ref:v,onChange:k,onKeyDown:b,onBlur:f,onContextMenu:w}),u().createElement("div",{className:"label-text",onDoubleClick:y},o))}Ct=aa,({e:[xt,Nt,Tt,St,Rt,Lt,zt,Bt,Dt,Ot,$t,Pt,Ht,It,Et],c:[Xt,Wt]}=(0,h.A)(Ct,[Kt("diagram.editable-label",{styleTexts:[Mt.A]})],[[Ft(),1,"label"],[Ft({render:!1}),1,"type"],[Ft({type:Boolean}),1,"readOnly"],[Vt({type:"label.editing.change"}),1,"labelEditingChange",e=>(0,d.A)(qt,e),(e,t)=>(0,r.A)(qt,e,t)],[Vt({type:"label.change"}),1,"labelChange",e=>(0,d.A)(Qt,e),(e,t)=>(0,r.A)(Qt,e,t)],[Yt(),2,"enableEditing"]],0,(e=>ta.has((0,l.A)(e))),A.ReactNextElement)),Wt(),a(9068);var sa,ia=a(497);let la,oa,ra,da,ha,ca,ua,ga,Aa,pa,va,ya,ma,ka,ba,fa,wa,Ca,Ma;const{defineElement:Ea,property:Wa,event:xa}=(0,g.createDecorators)();let Na;var Ta=new WeakMap,Sa=new WeakMap,Ra=new WeakMap,La=new WeakMap,za=new WeakSet,Ba=new WeakMap,Da=new WeakMap,Oa=new WeakMap,$a=new WeakMap,Pa=new WeakMap;class Ha extends A.ReactNextElement{constructor(){super(...arguments),(0,s.A)(this,za),(0,i.A)(this,Ta,oa(this)),(0,i.A)(this,Sa,(ra(this),da(this))),(0,i.A)(this,Ra,(ha(this),ca(this))),(0,i.A)(this,La,(ua(this),ga(this))),(0,i.A)(this,Ba,(va(this),e=>{(0,o.A)(za,this,Aa).emit(e)})),(0,i.A)(this,Da,ya(this)),(0,i.A)(this,Oa,(ba(this),e=>{(0,o.A)(za,this,ma).emit(e)})),(0,i.A)(this,$a,fa(this)),(0,i.A)(this,Pa,(Ma(this),e=>{(0,o.A)(za,this,wa).emit(e)}))}get usage(){return(0,d.A)(Ta,this)}set usage(e){(0,r.A)(Ta,this,e)}get status(){return(0,d.A)(Sa,this)}set status(e){(0,r.A)(Sa,this,e)}get decorator(){return(0,d.A)(Ra,this)}set decorator(e){(0,r.A)(Ra,this,e)}render(){return u().createElement(Ia,{usage:this.usage,onDragStart:(0,d.A)(Ba,this),onDragMove:(0,d.A)(Oa,this),onDragEnd:(0,d.A)(Pa,this)})}}function Ia(e){let{usage:t,onDragStart:a,onDragMove:n,onDragEnd:s}=e;const i=(0,c.useCallback)((e=>{if("library"!==t)return;e.stopPropagation(),e.preventDefault();const i=[e.clientX,e.clientY];let l=!1;const o=e=>{l||(l=(e.clientX-i[0])**2+(e.clientY-i[1])**2>=9,l&&(null==a||a([e.clientX,e.clientY]))),l&&(null==n||n([e.clientX,e.clientY]))},r=e=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",r),l&&(null==s||s([e.clientX,e.clientY]))};document.addEventListener("mousemove",o),document.addEventListener("mouseup",r)}),[s,n,a,t]);return u().createElement("div",{onMouseDown:i},u().createElement("slot",null))}sa=Ha,({e:[oa,ra,da,ha,ca,ua,ga,Aa,pa,va,ya,ma,ka,ba,fa,wa,Ca,Ma],c:[Na,la]}=(0,h.A)(sa,[Ea("diagram.experimental-node",{styleTexts:[ia.A]})],[[Wa(),1,"usage"],[Wa({type:String,render:!1}),1,"status"],[Wa({type:String}),1,"decorator"],[xa({type:"drag.start"}),1,"dragStartEvent",e=>(0,d.A)(La,e),(e,t)=>(0,r.A)(La,e,t)],[xa({type:"drag.move"}),1,"dragMoveEvent",e=>(0,d.A)(Da,e),(e,t)=>(0,r.A)(Da,e,t)],[xa({type:"drag.end"}),1,"dragEndEvent",e=>(0,d.A)($a,e),(e,t)=>(0,r.A)($a,e,t)]],0,(e=>Pa.has((0,l.A)(e))),A.ReactNextElement)),la();var Ka,Fa=a(8185),Va=a(1609),Ya=a(37),Ua=a(3033),Xa=a(8091),_a=a(1819),Za=a(5748),ja=a(227),qa=a(531),Ga=a(7099),Ja=a(1484),Qa=a(8197),en=a(7531),tn=a(3371),an=a(3012),nn=a(6237),sn=a(4117);let ln,on,rn,dn,hn,cn,un,gn,An,pn,vn,yn,mn,kn,bn,fn,wn,Cn,Mn,En,Wn,xn,Nn,Tn,Sn,Rn,Ln,zn,Bn,Dn,On,$n,Pn,Hn,In,Kn,Fn,Vn,Yn,Un,Xn,_n,Zn,jn,qn,Gn,Jn,Qn,es,ts,as,ns,ss,is;const{defineElement:ls,property:os,event:rs,method:ds}=(0,g.createDecorators)(),hs=(0,c.forwardRef)(Fs);let cs;var us=new WeakMap,gs=new WeakMap,As=new WeakMap,ps=new WeakMap,vs=new WeakMap,ys=new WeakMap,ms=new WeakMap,ks=new WeakMap,bs=new WeakMap,fs=new WeakMap,ws=new WeakMap,Cs=new WeakMap,Ms=new WeakMap,Es=new WeakMap,Ws=new WeakMap,xs=new WeakMap,Ns=new WeakMap,Ts=new WeakMap,Ss=new WeakMap,Rs=new WeakMap,Ls=new WeakMap,zs=new WeakSet,Bs=new WeakMap,Ds=new WeakMap,Os=new WeakMap,$s=new WeakMap,Ps=new WeakMap,Hs=new WeakMap,Is=new WeakMap;class Ks extends A.ReactNextElement{constructor(){super(...arguments),(0,s.A)(this,zs),(0,i.A)(this,us,(ln(this),rn(this))),(0,i.A)(this,gs,(dn(this),hn(this))),(0,i.A)(this,As,(cn(this),un(this))),(0,i.A)(this,ps,(gn(this),An(this))),(0,i.A)(this,vs,(pn(this),vn(this,[Ua.HP,Ua.HP]))),(0,i.A)(this,ys,(yn(this),mn(this))),(0,i.A)(this,ms,(kn(this),bn(this))),(0,i.A)(this,ks,(fn(this),wn(this))),(0,i.A)(this,bs,(Cn(this),Mn(this))),(0,i.A)(this,fs,(En(this),Wn(this))),(0,i.A)(this,ws,(xn(this),Nn(this))),(0,i.A)(this,Cs,(Tn(this),Sn(this,!0))),(0,i.A)(this,Ms,(Rn(this),Ln(this,!0))),(0,i.A)(this,Es,(zn(this),Bn(this,!0))),(0,i.A)(this,Ws,(Dn(this),On(this))),(0,i.A)(this,xs,($n(this),Pn(this))),(0,i.A)(this,Ns,(Hn(this),In(this))),(0,i.A)(this,Ts,(Kn(this),Fn(this))),(0,i.A)(this,Ss,(Vn(this),Yn(this))),(0,i.A)(this,Rs,(Un(this),Xn(this))),(0,i.A)(this,Ls,(_n(this),Zn(this))),(0,i.A)(this,Bs,(Gn(this),e=>{(0,o.A)(zs,this,jn).emit(e)})),(0,i.A)(this,Ds,(e=>{(0,Fa.c)(e,this.activeTarget)||(this.activeTarget=e)})),(0,i.A)(this,Os,Jn(this)),(0,i.A)(this,$s,(ts(this),e=>{(0,o.A)(zs,this,Qn).emit(e)})),(0,i.A)(this,Ps,as(this)),(0,i.A)(this,Hs,(is(this),e=>{(0,o.A)(zs,this,ns).emit(e)})),(0,i.A)(this,Is,(0,c.createRef)())}get cells(){return(0,d.A)(us,this)}set cells(e){(0,r.A)(us,this,e)}get layout(){return(0,d.A)(gs,this)}set layout(e){(0,r.A)(gs,this,e)}get layoutOptions(){return(0,d.A)(As,this)}set layoutOptions(e){(0,r.A)(As,this,e)}get autoSize(){return(0,d.A)(ps,this)}set autoSize(e){(0,r.A)(ps,this,e)}get defaultNodeSize(){return(0,d.A)(vs,this)}set defaultNodeSize(e){(0,r.A)(vs,this,e)}get defaultNodeBricks(){return(0,d.A)(ys,this)}set defaultNodeBricks(e){(0,r.A)(ys,this,e)}get degradedThreshold(){return(0,d.A)(ms,this)}set degradedThreshold(e){(0,r.A)(ms,this,e)}get degradedNodeLabel(){return(0,d.A)(ks,this)}set degradedNodeLabel(e){(0,r.A)(ks,this,e)}get defaultEdgeLines(){return(0,d.A)(bs,this)}set defaultEdgeLines(e){(0,r.A)(bs,this,e)}get activeTarget(){return(0,d.A)(fs,this)}set activeTarget(e){(0,r.A)(fs,this,e)}get fadeUnrelatedCells(){return(0,d.A)(ws,this)}set fadeUnrelatedCells(e){(0,r.A)(ws,this,e)}get zoomable(){return(0,d.A)(Cs,this)}set zoomable(e){(0,r.A)(Cs,this,e)}get scrollable(){return(0,d.A)(Ms,this)}set scrollable(e){(0,r.A)(Ms,this,e)}get pannable(){return(0,d.A)(Es,this)}set pannable(e){(0,r.A)(Es,this,e)}get scaleRange(){return(0,d.A)(Ws,this)}set scaleRange(e){(0,r.A)(Ws,this,e)}get hideZoomBar(){return(0,d.A)(xs,this)}set hideZoomBar(e){(0,r.A)(xs,this,e)}get autoCenterWhenCellsChange(){return(0,d.A)(Ns,this)}set autoCenterWhenCellsChange(e){(0,r.A)(Ns,this,e)}get doNotResetActiveTargetForSelector(){return(0,d.A)(Ts,this)}set doNotResetActiveTargetForSelector(e){(0,r.A)(Ts,this,e)}get doNotResetActiveTargetOutsideCanvas(){return(0,d.A)(Ss,this)}set doNotResetActiveTargetOutsideCanvas(e){(0,r.A)(Ss,this,e)}get extraStyleTexts(){return(0,d.A)(Rs,this)}set extraStyleTexts(e){(0,r.A)(Rs,this,e)}center(){var e;null===(e=(0,d.A)(Is,this).current)||void 0===e||e.center()}render(){return u().createElement(hs,{shadowRoot:this.shadowRoot,cells:this.cells,layout:this.layout,layoutOptions:this.layoutOptions,autoSize:this.autoSize,defaultNodeSize:this.defaultNodeSize,defaultNodeBricks:this.defaultNodeBricks,defaultEdgeLines:this.defaultEdgeLines,degradedThreshold:this.degradedThreshold,degradedNodeLabel:this.degradedNodeLabel,activeTarget:this.activeTarget,fadeUnrelatedCells:this.fadeUnrelatedCells,zoomable:this.zoomable,scrollable:this.scrollable,pannable:this.pannable,scaleRange:this.scaleRange,hideZoomBar:this.hideZoomBar,doNotResetActiveTargetForSelector:this.doNotResetActiveTargetForSelector,doNotResetActiveTargetOutsideCanvas:this.doNotResetActiveTargetOutsideCanvas,autoCenterWhenCellsChange:this.autoCenterWhenCellsChange,extraStyleTexts:this.extraStyleTexts,onActiveTargetChange:(0,d.A)(Bs,this),onSwitchActiveTarget:(0,d.A)(Ds,this),onCellContextMenu:(0,d.A)($s,this),onCellClick:(0,d.A)(Hs,this),ref:(0,d.A)(Is,this)})}}function Fs(e,t){let{shadowRoot:a,cells:n,layout:s,layoutOptions:i,autoSize:l,defaultNodeSize:o,defaultNodeBricks:r,defaultEdgeLines:d,degradedThreshold:h,degradedNodeLabel:g,activeTarget:A,fadeUnrelatedCells:v,zoomable:y,scrollable:b,pannable:f,scaleRange:w,hideZoomBar:C,autoCenterWhenCellsChange:M,doNotResetActiveTargetForSelector:E,doNotResetActiveTargetOutsideCanvas:W,extraStyleTexts:x,onActiveTargetChange:T,onSwitchActiveTarget:S,onCellContextMenu:R,onCellClick:L}=e;const[{cells:z,layoutKey:B},D]=(0,c.useReducer)(Za.d,n,(e=>({cells:(0,Ya.C)(e,{defaultNodeSize:o}),layoutKey:1}))),O=(0,c.useMemo)((()=>z.filter(qa.N).length>=(null!=h?h:Ua.pC)),[z,h]),$=(0,c.useRef)(null),{grabbing:P,transform:H,zoomer:I,scaleRange:K}=(0,Xa.f)({rootRef:$,zoomable:y,scrollable:b,pannable:f,draggable:!0,scaleRange:w,onSwitchActiveTarget:S}),{centered:F,setCentered:V,getNextLayoutKey:Y}=(0,Ja.g)({layout:s,layoutOptions:i,autoSize:l,rootRef:$,cells:z,zoomable:y,zoomer:I,scaleRange:K,layoutKey:B,autoCenterWhenCellsChange:M,dispatch:D}),U=(0,c.useCallback)((()=>{V(!1)}),[V]);(0,c.useImperativeHandle)(t,(()=>({center:U})),[U]);const X=(0,c.useRef)(n);(0,c.useEffect)((()=>{if(n!==X.current){X.current=n;const e=(0,tn.L)({canvasWidth:a.host.clientWidth,canvasHeight:a.host.clientHeight,defaultNodeSize:o,layout:s,previousCells:z,cells:n,scaleRange:K,transform:H});D({type:"update-cells",payload:e.cells})}}),[z,o,n,s,K,a,H]);const _=(0,_a.J)({rootRef:$,activeTarget:A,doNotResetActiveTargetForSelector:E,doNotResetActiveTargetOutsideCanvas:W,onActiveTargetChange:T}),Z=`${(0,c.useMemo)((()=>`${(0,k.uniqueId)("diagram-")}-`),[])}line-arrow-`,j=(0,c.useCallback)(((e,t)=>{D({type:"update-node-size",payload:{id:e,size:t},layoutKey:Y()})}),[Y]),[q,G]=(0,c.useState)(null),J=(0,c.useCallback)((e=>{G(e)}),[]),Q=(0,c.useCallback)((e=>{G((t=>t===e?null:t))}),[]),[ee,te]=(0,c.useState)([]);(0,c.useEffect)((()=>{const e=v?(0,ja.Y)(z,null,q||_):[];te((t=>0===t.length&&0===e.length?t:e))}),[z,v,q,_]);const ae=(0,c.useCallback)((e=>{I.scaleTo((0,p.A)($.current),e/100)}),[I]),{lineConfMap:ne,markers:se}=(0,en.d)({cells:z,defaultEdgeLines:d,markerPrefix:Z}),ie=(0,sn.A)({cells:z,lineConfMap:ne}),le=(0,Qa.H)({cells:z,layout:s,centered:F});return u().createElement(u().Fragment,null,null==x?void 0:x.map(((e,t)=>u().createElement("style",{key:t},e))),u().createElement("svg",{width:"100%",height:"100%",ref:$,className:m()("root",{grabbing:P,pannable:f,ready:le}),tabIndex:-1},u().createElement("defs",null,se.map(((e,t)=>u().createElement(N.c,{key:t,id:`${Z}${t}`,type:e.markerType,strokeColor:e.strokeColor})))),u().createElement("g",{transform:`translate(${H.x} ${H.y}) scale(${H.k})`},u().createElement("g",{className:"cells"},z.map((e=>u().createElement(Va.m,{key:`${e.type}:${(0,qa.WW)(e)?`${e.source}~${e.target}`:e.id}`,layout:s,cell:e,cells:z,degraded:O,degradedNodeLabel:g,defaultNodeBricks:r,lineConfMap:ne,editableLineMap:ie,transform:H,activeTarget:_,readOnly:!0,hoverCell:q,unrelatedCells:ee,onSwitchActiveTarget:S,onCellContextMenu:R,onCellClick:L,onNodeBrickResize:j,onCellMouseEnter:v&&((0,qa.N)(e)||(0,qa.WW)(e))?J:void 0,onCellMouseLeave:v&&((0,qa.N)(e)||(0,qa.WW)(e))?Q:void 0})))))),!C&&u().createElement(Ga.Y,{shadowRoot:a,scale:H.k,scaleRange:K,onZoomChange:ae,onReCenter:U}))}Ka=Ks,({e:[rn,dn,hn,cn,un,gn,An,pn,vn,yn,mn,kn,bn,fn,wn,Cn,Mn,En,Wn,xn,Nn,Tn,Sn,Rn,Ln,zn,Bn,Dn,On,$n,Pn,Hn,In,Kn,Fn,Vn,Yn,Un,Xn,_n,Zn,jn,qn,Gn,Jn,Qn,es,ts,as,ns,ss,is,ln],c:[cs,on]}=(0,h.A)(Ka,[ls("eo-display-canvas",{styleTexts:[an.A,nn.A]})],[[os({attribute:!1}),1,"cells"],[os({type:String}),1,"layout"],[os({attribute:!1}),1,"layoutOptions"],[os({attribute:!1}),1,"autoSize"],[os({attribute:!1}),1,"defaultNodeSize"],[os({attribute:!1}),1,"defaultNodeBricks"],[os({type:Number}),1,"degradedThreshold"],[os({attribute:!1}),1,"degradedNodeLabel"],[os({attribute:!1}),1,"defaultEdgeLines"],[os({attribute:!1}),1,"activeTarget"],[os({type:Boolean}),1,"fadeUnrelatedCells"],[os({type:Boolean}),1,"zoomable"],[os({type:Boolean}),1,"scrollable"],[os({type:Boolean}),1,"pannable"],[os({attribute:!1}),1,"scaleRange"],[os({type:Boolean}),1,"hideZoomBar"],[os({type:Boolean}),1,"autoCenterWhenCellsChange"],[os(),1,"doNotResetActiveTargetForSelector"],[os({type:Boolean}),1,"doNotResetActiveTargetOutsideCanvas"],[os({attribute:!1}),1,"extraStyleTexts"],[rs({type:"activeTarget.change"}),1,"activeTargetChangeEvent",e=>(0,d.A)(Ls,e),(e,t)=>(0,r.A)(Ls,e,t)],[rs({type:"cell.contextmenu"}),1,"cellContextMenu",e=>(0,d.A)(Os,e),(e,t)=>(0,r.A)(Os,e,t)],[rs({type:"cell.click"}),1,"cellClick",e=>(0,d.A)(Ps,e),(e,t)=>(0,r.A)(Ps,e,t)],[ds(),2,"center"]],0,(e=>Is.has((0,l.A)(e))),A.ReactNextElement)),on()}}]);
|
|
2
|
-
//# sourceMappingURL=9711.
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_diagram=globalThis.webpackChunk_next_bricks_diagram||[]).push([[8939,9711],{497:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(6758),s=a.n(n),i=a(935),l=a.n(i)()(s());l.push([e.id,'*{box-sizing:border-box}:host{display:block;border:1px solid var(--palette-gray-5);cursor:default;-webkit-user-select:none;user-select:none}:host([hidden]){display:none}:host([usage="dragging"]){opacity:0.75;position:fixed}:host(:not([usage="library"])){background:rgba(0,0,0,0.2);width:60px;height:60px}:host([usage="library"]){width:180px;height:30px;margin-bottom:10px}div{width:100%;height:100%;display:flex;align-items:center;justify-content:center}:host(:not([usage="dragging"]):not([usage="library"]):hover),\n:host([status="highlighted"]){color:var(--palette-blue-5);background:var(--palette-blue-1);border-color:1px solid var(--palette-blue-4)}:host([status="faded"]){opacity:0.3}:host([decorator="area"]){width:100px;height:60px;background:rgba(119,141,195,0.1);border:none}:host([decorator="text"]){width:auto;height:auto;background:none;border:none}',""]);const o=l.toString()},3971:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(6758),s=a.n(n),i=a(935),l=a.n(i)()(s());l.push([e.id,':host{display:block;--local-label-line-height:inherit;--local-label-font-size:inherit;--local-label-color:inherit;--local-label-font-weight:inherit}:host([hidden]){display:none}:host([type="line"]){--local-label-line-height:18px;--local-label-font-size:11px;--local-label-color:var(--color-secondary-text);--local-label-font-weight:400}*{box-sizing:border-box}.label{max-width:168px;margin:-3px}.label-text,\n.label-input{width:100%;height:24px;padding:3px;border:none;line-height:var(--local-label-line-height);font-size:var(--local-label-font-size);color:var(--local-label-color);font-weight:var(--local-label-font-weight);text-align:center;font-family:inherit;cursor:text;-webkit-user-select:text;user-select:text}.label-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-user-select:none;user-select:none}.label.editing .label-text,\n.label.empty:not(.editing) .label-text,\n.label:not(.editing) .label-input{display:none}',""]);const o=l.toString()},9068:(e,t,a)=>{a.d(t,{uuidV4:()=>Cn});var n,s=a(4635),i=a(918),l=a(6902),o=a(2559),r=a(5536),d=a(6121),h=a(829),c=a(2740),u=a(8769),g=a.n(u),A=a(7921),p=a(1280),v=a(6548),y=(a(6477),a(1030)),m=a(3373),k=a.n(m),b=a(7566),f=a(5748),w=a(3739),C=a(531),M=a(8185),E=a(2733),W=a(1609),x=a(3639),N=a(37),T=a(3371),S=a(227),R=a(3033),L=a(8091),z=a(1819),B=a(7099),D=a(1484),O=a(8197),$=a(7531),P=a(8875),H=a(2722),I=a(9978),K=a(2219),F=a(3012),V=a(6237),Y=a(1103),U=a(9386),X=a(1991),_=a(2202),Z=a(1825),j=a(4117),q=a(4197),G=a(8944),J=a(2969);let Q,ee,te,ae,ne,se,ie,le,oe,re,de,he,ce,ue,ge,Ae,pe,ve,ye,me,ke,be,fe,we,Ce,Me,Ee,We,xe,Ne,Te,Se,Re,Le,ze,Be,De,Oe,$e,Pe,He,Ie,Ke,Fe,Ve,Ye,Ue,Xe,_e,Ze,je,qe,Ge,Je,Qe,et,tt,at,nt,st,it,lt,ot,rt,dt,ht,ct,ut,gt,At,pt,vt,yt,mt,kt,bt,ft,wt,Ct,Mt,Et,Wt,xt,Nt,Tt,St,Rt,Lt,zt,Bt,Dt,Ot,$t,Pt,Ht,It,Kt,Ft,Vt,Yt,Ut,Xt,_t,Zt,jt,qt,Gt,Jt,Qt,ea,ta,aa,na,sa,ia,la;const oa=(0,v.unwrapProvider)("basic.lock-body-scroll"),{defineElement:ra,property:da,method:ha,event:ca}=(0,A.createDecorators)(),ua=g().forwardRef(wn);let ga;var Aa=new WeakMap,pa=new WeakMap,va=new WeakMap,ya=new WeakMap,ma=new WeakMap,ka=new WeakMap,ba=new WeakMap,fa=new WeakMap,wa=new WeakMap,Ca=new WeakMap,Ma=new WeakMap,Ea=new WeakMap,Wa=new WeakMap,xa=new WeakMap,Na=new WeakMap,Ta=new WeakMap,Sa=new WeakMap,Ra=new WeakMap,La=new WeakMap,za=new WeakMap,Ba=new WeakMap,Da=new WeakMap,Oa=new WeakSet,$a=new WeakMap,Pa=new WeakMap,Ha=new WeakMap,Ia=new WeakMap,Ka=new WeakMap,Fa=new WeakMap,Va=new WeakMap,Ya=new WeakMap,Ua=new WeakMap,Xa=new WeakMap,_a=new WeakMap,Za=new WeakMap,ja=new WeakMap,qa=new WeakMap,Ga=new WeakMap,Ja=new WeakMap,Qa=new WeakMap,en=new WeakMap,tn=new WeakMap,an=new WeakMap,nn=new WeakMap,sn=new WeakMap,ln=new WeakMap,on=new WeakMap,rn=new WeakMap,dn=new WeakMap,hn=new WeakMap,cn=new WeakMap,un=new WeakMap,gn=new WeakMap,An=new WeakMap,pn=new WeakMap,vn=new WeakMap,yn=new WeakMap,mn=new WeakMap;class kn extends p.ReactNextElement{constructor(){super(...arguments),(0,s.A)(this,Oa),(0,i.A)(this,Aa,(Q(this),te(this))),(0,i.A)(this,pa,(ae(this),ne(this))),(0,i.A)(this,va,(se(this),ie(this))),(0,i.A)(this,ya,(le(this),oe(this,[R.HP,R.HP]))),(0,i.A)(this,ma,(re(this),de(this))),(0,i.A)(this,ka,(he(this),ce(this))),(0,i.A)(this,ba,(ue(this),ge(this))),(0,i.A)(this,fa,(Ae(this),pe(this))),(0,i.A)(this,wa,(ve(this),ye(this))),(0,i.A)(this,Ca,(me(this),ke(this))),(0,i.A)(this,Ma,(be(this),fe(this,!0))),(0,i.A)(this,Ea,(we(this),Ce(this,!0))),(0,i.A)(this,Wa,(Me(this),Ee(this,!0))),(0,i.A)(this,xa,(We(this),xe(this,!1))),(0,i.A)(this,Na,(Ne(this),Te(this))),(0,i.A)(this,Ta,(Se(this),Re(this))),(0,i.A)(this,Sa,(Le(this),ze(this))),(0,i.A)(this,Ra,(Be(this),De(this))),(0,i.A)(this,La,(Oe(this),$e(this))),(0,i.A)(this,za,(Pe(this),He(this))),(0,i.A)(this,Ba,(Ie(this),Ke(this))),(0,i.A)(this,Da,(Fe(this),Ve(this))),(0,i.A)(this,$a,(Xe(this),e=>{(0,r.A)(Oa,this,Ye).emit(e)})),(0,i.A)(this,Pa,(e=>{(0,M.c)(e,this.activeTarget)||(this.activeTarget=e)})),(0,i.A)(this,Ha,_e(this)),(0,i.A)(this,Ia,(qe(this),Ge(this))),(0,i.A)(this,Ka,(et(this),e=>{(0,r.A)(Oa,this,Je).emit(e),"node"===e.type&&(0,r.A)(Oa,this,Ze).emit(e)})),(0,i.A)(this,Fa,tt(this)),(0,i.A)(this,Va,(st(this),e=>{(0,r.A)(Oa,this,at).emit(e)})),(0,i.A)(this,Ya,it(this)),(0,i.A)(this,Ua,(rt(this),e=>{(0,r.A)(Oa,this,lt).emit(e)})),(0,i.A)(this,Xa,dt(this)),(0,i.A)(this,_a,(ut(this),gt(this))),(0,i.A)(this,Za,(vt(this),e=>{(0,r.A)(Oa,this,At).emit(e),"node"===e.type&&(0,r.A)(Oa,this,ht).emit(e)})),(0,i.A)(this,ja,yt(this)),(0,i.A)(this,qa,(bt(this),e=>{(0,r.A)(Oa,this,mt).emit(e)})),(0,i.A)(this,Ga,ft(this)),(0,i.A)(this,Ja,(Mt(this),e=>{(0,r.A)(Oa,this,wt).emit(e)})),(0,i.A)(this,Qa,Et(this)),(0,i.A)(this,en,(Nt(this),e=>{(0,r.A)(Oa,this,Wt).emit(e)})),(0,i.A)(this,tn,Tt(this)),(0,i.A)(this,an,(Lt(this),e=>{(0,r.A)(Oa,this,St).emit(e)})),(0,i.A)(this,nn,zt(this)),(0,i.A)(this,sn,(Ot(this),e=>{(0,r.A)(Oa,this,Bt).emit(e)})),(0,i.A)(this,ln,$t(this)),(0,i.A)(this,on,(It(this),e=>{(0,r.A)(Oa,this,Pt).emit(e)})),(0,i.A)(this,rn,Kt(this)),(0,i.A)(this,dn,(Yt(this),e=>{(0,r.A)(Oa,this,Ft).emit(e)})),(0,i.A)(this,hn,Ut(this)),(0,i.A)(this,cn,(Zt(this),e=>{(0,r.A)(Oa,this,Xt).emit(e)})),(0,i.A)(this,un,jt(this)),(0,i.A)(this,gn,(Jt(this),e=>{(0,r.A)(Oa,this,qt).emit({clientX:e[0],clientY:e[1],view:(0,o.A)(Oa,this,bn).call(this,e)})})),(0,i.A)(this,An,Qt(this)),(0,i.A)(this,pn,(aa(this),()=>{(0,r.A)(Oa,this,ea).emit()})),(0,i.A)(this,vn,na(this)),(0,i.A)(this,yn,(la(this),()=>{(0,r.A)(Oa,this,sa).emit()})),(0,i.A)(this,mn,(0,u.createRef)())}get cells(){return(0,h.A)(Aa,this)}set cells(e){(0,d.A)(Aa,this,e)}get layout(){return(0,h.A)(pa,this)}set layout(e){(0,d.A)(pa,this,e)}get layoutOptions(){return(0,h.A)(va,this)}set layoutOptions(e){(0,d.A)(va,this,e)}get defaultNodeSize(){return(0,h.A)(ya,this)}set defaultNodeSize(e){(0,d.A)(ya,this,e)}get defaultNodeBricks(){return(0,h.A)(ma,this)}set defaultNodeBricks(e){(0,d.A)(ma,this,e)}get degradedThreshold(){return(0,h.A)(ka,this)}set degradedThreshold(e){(0,d.A)(ka,this,e)}get degradedNodeLabel(){return(0,h.A)(ba,this)}set degradedNodeLabel(e){(0,d.A)(ba,this,e)}get defaultEdgeLines(){return(0,h.A)(fa,this)}set defaultEdgeLines(e){(0,d.A)(fa,this,e)}get activeTarget(){return(0,h.A)(wa,this)}set activeTarget(e){(0,d.A)(wa,this,e)}get fadeUnrelatedCells(){return(0,h.A)(Ca,this)}set fadeUnrelatedCells(e){(0,d.A)(Ca,this,e)}get zoomable(){return(0,h.A)(Ma,this)}set zoomable(e){(0,d.A)(Ma,this,e)}get scrollable(){return(0,h.A)(Ea,this)}set scrollable(e){(0,d.A)(Ea,this,e)}get pannable(){return(0,h.A)(Wa,this)}set pannable(e){(0,d.A)(Wa,this,e)}get allowEdgeToArea(){return(0,h.A)(xa,this)}set allowEdgeToArea(e){(0,d.A)(xa,this,e)}get dragBehavior(){return(0,h.A)(Na,this)}set dragBehavior(e){(0,d.A)(Na,this,e)}get ctrlDragBehavior(){return(0,h.A)(Ta,this)}set ctrlDragBehavior(e){(0,d.A)(Ta,this,e)}get scaleRange(){return(0,h.A)(Sa,this)}set scaleRange(e){(0,d.A)(Sa,this,e)}get lineSettings(){return(0,h.A)(Ra,this)}set lineSettings(e){(0,d.A)(Ra,this,e)}get lineConnector(){return(0,h.A)(La,this)}set lineConnector(e){(0,d.A)(La,this,e)}get doNotResetActiveTargetForSelector(){return(0,h.A)(za,this)}set doNotResetActiveTargetForSelector(e){(0,d.A)(za,this,e)}get doNotResetActiveTargetOutsideCanvas(){return(0,h.A)(Ba,this)}set doNotResetActiveTargetOutsideCanvas(e){(0,d.A)(Ba,this,e)}async dropNode(e){var t,a;let{id:n,position:s,size:i,data:l,useBrick:r}=e;if(null===(t=(a=document).elementsFromPoint)||void 0===t||null===(t=t.call(a,s[0],s[1]))||void 0===t?void 0:t.includes(this)){var d,c,u;const e={type:"node",id:n,view:{..."force"===this.layout||"dagre"===this.layout?null:(0,o.A)(Oa,this,bn).call(this,s),width:null!==(d=null==i?void 0:i[0])&&void 0!==d?d:this.defaultNodeSize[0],height:null!==(c=null==i?void 0:i[1])&&void 0!==c?c:this.defaultNodeSize[0]},data:l,useBrick:r};return null===(u=(0,h.A)(mn,this).current)||void 0===u||u.dropNode(e),e}return null}async dropDecorator(e){var t,a;let{position:n,decorator:s,text:i,direction:l,source:o,target:r,view:d}=e;if(null===(t=(a=document).elementsFromPoint)||void 0===t||null===(t=t.call(a,n[0],n[1]))||void 0===t?void 0:t.includes(this)){var c,u,g,A,p;const e=this.getBoundingClientRect(),t=(0,h.A)(mn,this).current.getTransform(),a=(n[0]-e.left-t.x)/t.k,v=(n[1]-e.top-t.y)/t.k,y={type:"decorator",decorator:s,id:Cn(),view:"line"===s?{source:{x:a+(null!==(c=null==o?void 0:o.x)&&void 0!==c?c:-30),y:v+(null!==(u=null==o?void 0:o.y)&&void 0!==u?u:30)},target:{x:a+(null!==(g=null==r?void 0:r.x)&&void 0!==g?g:30),y:v+(null!==(A=null==r?void 0:r.y)&&void 0!==A?A:-30)},...d}:{width:R.N8,height:R.w1,x:a,y:v,text:i,direction:l,...d}};return null===(p=(0,h.A)(mn,this).current)||void 0===p||p.dropDecorator(y),y}return null}async addNodes(e){if(0===e.length)return[];const t=e.map((e=>{var t,a;let{size:n,useBrick:s,id:i,data:l,containerId:o}=e;return{type:"node",id:i,data:l,containerId:o,view:{width:null!==(t=null==n?void 0:n[0])&&void 0!==t?t:this.defaultNodeSize[0],height:null!==(a=null==n?void 0:n[1])&&void 0!==a?a:this.defaultNodeSize[0]},useBrick:s}}));return(0,h.A)(mn,this).current.addNodes(t,{defaultNodeSize:this.defaultNodeSize,canvasWidth:this.clientWidth,canvasHeight:this.clientHeight})}async addEdge(e){var t;let{source:a,target:n,data:s}=e;const i={type:"edge",source:a,target:n,data:s,view:this.lineSettings};return null===(t=(0,h.A)(mn,this).current)||void 0===t||t.addEdge(i),i}manuallyConnectNodes(e){return(0,h.A)(mn,this).current.manuallyConnectNodes(e)}async updateCells(e,t){await(0,o.A)(Oa,this,fn).call(this);const{updated:a}=(0,h.A)(mn,this).current.updateCells(e,{...t,defaultNodeSize:this.defaultNodeSize,canvasWidth:this.clientWidth,canvasHeight:this.clientHeight});return{updated:a}}async reCenter(){var e;null===(e=(0,h.A)(mn,this).current)||void 0===e||e.reCenter()}async toggleLock(e){return(0,h.A)(mn,this).current.toggleLock(e,"toggle")}async lock(e){return(0,h.A)(mn,this).current.toggleLock(e,"lock")}async unlock(e){return(0,h.A)(mn,this).current.toggleLock(e,"unlock")}disconnectedCallback(){super.disconnectedCallback(),oa(this,!1)}render(){return g().createElement(ua,{host:this,ref:(0,h.A)(mn,this),layout:this.layout,layoutOptions:this.layoutOptions,cells:this.cells,defaultNodeSize:this.defaultNodeSize,defaultNodeBricks:this.defaultNodeBricks,defaultEdgeLines:this.defaultEdgeLines,degradedThreshold:this.degradedThreshold,degradedNodeLabel:this.degradedNodeLabel,activeTarget:this.activeTarget,fadeUnrelatedCells:this.fadeUnrelatedCells,zoomable:this.zoomable,scrollable:this.scrollable,pannable:this.pannable,dragBehavior:this.dragBehavior,ctrlDragBehavior:this.ctrlDragBehavior,scaleRange:this.scaleRange,lineSettings:this.lineSettings,lineConnector:this.lineConnector,allowEdgeToArea:this.allowEdgeToArea,doNotResetActiveTargetForSelector:this.doNotResetActiveTargetForSelector,doNotResetActiveTargetOutsideCanvas:this.doNotResetActiveTargetOutsideCanvas,onActiveTargetChange:(0,h.A)($a,this),onSwitchActiveTarget:(0,h.A)(Pa,this),onCellMove:(0,h.A)(Ka,this),onCellsMove:(0,h.A)(Va,this),onCellResize:(0,h.A)(Ua,this),onCellDelete:(0,h.A)(Za,this),onCellsDelete:(0,h.A)(qa,this),onEdgeAdd:(0,h.A)(en,this),onCellContextMenu:(0,h.A)(Ja,this),onCanvasContextMenu:(0,h.A)(gn,this),onDecoratorTextChange:(0,h.A)(on,this),onContainerContainerChange:(0,h.A)(dn,this),onScaleChange:(0,h.A)(cn,this),onEdgeViewChange:(0,h.A)(an,this),onDecoratorViewChange:(0,h.A)(sn,this),onCanvasCopy:(0,h.A)(pn,this),onCanvasPaste:(0,h.A)(yn,this)})}}function bn(e){const t=this.getBoundingClientRect(),a=(0,h.A)(mn,this).current.getTransform();return{x:(e[0]-t.left-a.x)/a.k,y:(e[1]-t.top-a.y)/a.k}}function fn(){return new Promise((e=>{const t=()=>{(0,h.A)(mn,this).current?e():setTimeout(t,10)};t()}))}function wn(e,t){let{host:a,layout:n,layoutOptions:s,cells:i,defaultNodeSize:l,defaultNodeBricks:o,defaultEdgeLines:r,degradedThreshold:d,degradedNodeLabel:h,activeTarget:c,fadeUnrelatedCells:A,zoomable:p,scrollable:v,pannable:m,dragBehavior:M,ctrlDragBehavior:F,scaleRange:V,lineSettings:Q,lineConnector:ee,allowEdgeToArea:te,doNotResetActiveTargetForSelector:ae,doNotResetActiveTargetOutsideCanvas:ne,onActiveTargetChange:se,onSwitchActiveTarget:ie,onCellMove:le,onCellResize:oe,onCellDelete:re,onCellsMove:de,onCellsDelete:he,onCellContextMenu:ce,onEdgeAdd:ue,onDecoratorTextChange:ge,onScaleChange:Ae,onContainerContainerChange:pe,onEdgeViewChange:ve,onDecoratorViewChange:ye,onCanvasContextMenu:me,onCanvasCopy:ke,onCanvasPaste:be}=e;const[{cells:fe,layoutKey:we},Ce]=(0,u.useReducer)(f.d,i,(e=>({cells:(0,N.C)(e,{defaultNodeSize:l,layoutOptions:s,isInitialize:!0}),layoutKey:0}))),Me=(0,u.useMemo)((()=>fe.filter(C.N).length>=(null!=d?d:R.pC)),[fe,d]),Ee=(0,u.useRef)(null),We=(0,u.useRef)(null),[xe,Ne]=(0,u.useState)([]),[Te,Se]=(0,u.useState)([]),[Re,Le]=(0,u.useState)(null),{grabbing:ze,transform:Be,zoomer:De,scaleRange:Oe}=(0,L.f)({rootRef:Ee,zoomable:p,scrollable:v,pannable:m,draggable:"grab"===M,ctrlDraggable:"grab"===F,scaleRange:V,onSwitchActiveTarget:ie});(0,u.useEffect)((()=>{Ae(Be.k)}),[Ae,Be.k]);const[$e,Pe]=(0,u.useState)(null),[He,Ie]=(0,u.useState)(null),{centered:Ke,setCentered:Fe,getNextLayoutKey:Ve}=(0,D.g)({layout:n,layoutOptions:s,rootRef:Ee,cells:fe,zoomable:p,zoomer:De,scaleRange:Oe,layoutKey:we,allowEdgeToArea:te,dispatch:Ce}),Ye=(0,u.useCallback)((()=>{Fe(!1)}),[Fe]),Ue=(0,u.useMemo)((()=>(0,G.E)(fe)),[fe]);(0,u.useImperativeHandle)(t,(()=>({dropNode(e){"dagre"!==n&&"force"!==n&&Fe(!0),Ce({type:"drop-node",payload:e})},dropDecorator(e){"dagre"!==n&&"force"!==n&&Fe(!0),Ce({type:"drop-decorator",payload:e})},addNodes(e,t){let{defaultNodeSize:a,canvasWidth:i,canvasHeight:l}=t;const o=fe.findLastIndex((e=>!("decorator"===e.type&&"text"===e.decorator)))+1,r=[...fe.slice(0,o),...e,...fe.slice(o)],{cells:d,updated:h,shouldReCenter:c}=(0,T.L)({cells:r,layout:n,previousCells:fe,defaultNodeSize:a,canvasWidth:i,canvasHeight:l,scaleRange:Oe,transform:Be,allowEdgeToArea:te,layoutOptions:s});return c&&Fe(!1),Ce({type:"update-cells",payload:d}),h.filter((t=>e.includes(t)))},addEdge(e){Ce({type:"add-edge",payload:e})},updateCells(e,t){const{shouldReCenter:a,...i}=(0,T.L)({...t,layout:n,previousCells:fe,cells:e,scaleRange:Oe,transform:Be,allowEdgeToArea:te,layoutOptions:s});return a&&Fe(!1),Ce({type:"update-cells",payload:i.cells}),i},getTransform:()=>Be,manuallyConnectNodes(e){const t=fe.find((t=>(0,C.bo)(t,te)&&t.id===e));if(t){const e=Ee.current.getBoundingClientRect();return Ie({source:t,from:[t.view.x+t.view.width/2,t.view.y+t.view.height/2],offset:[e.left,e.top]}),new Promise(((e,t)=>{We.current={resolve:e,reject:t}}))}return Promise.reject(null)},reCenter:Ye,toggleLock(e,t){const{newCells:a,updates:n}=(0,J.A)(e,t,fe,Ue);return a?(Ce({type:"update-cells",payload:a}),n):null}})),[fe,n,Oe,Fe,Be,te,Ye,Ue]);const Xe=(0,u.useCallback)(((e,t)=>{var a;for(let a=fe.length-1;a>=0;a--){const s=fe[a];if((0,C.bo)(s,te)&&s.id!==e.source.id&&s.view.x<t[0]&&s.view.x+s.view.width>t[0]&&s.view.y<t[1]&&s.view.y+s.view.height>t[1]){var n;null===(n=We.current)||void 0===n||n.resolve({source:e.source,target:s});break}}null===(a=We.current)||void 0===a||a.reject(null),Ie(null)}),[te,fe]),[_e,Ze]=(0,u.useState)(null);(0,u.useEffect)((()=>{oa(a,!!(He||_e||$e))}),[He,a,_e,$e]);const je=(0,z.J)({rootRef:Ee,activeTarget:c,doNotResetActiveTargetForSelector:ae,doNotResetActiveTargetOutsideCanvas:ne,onActiveTargetChange:se}),[qe,Ge]=(0,u.useState)([]);(0,u.useEffect)((()=>{const e=A?(0,S.Y)(fe,He,je,te):[];Ge((t=>0===t.length&&0===e.length?t:e))}),[je,fe,He,A,te]),(0,u.useEffect)((()=>{const e=Ee.current;if(!e||xe.length>0)return;const t=e=>{const t=(0,E.a)(e,{cells:fe,activeTarget:je,lockedContainerIds:Ue});"delete-cells"===(null==t?void 0:t.action)&&(he(t.cells),1===t.cells.length&&re(t.cells[0]))};return e.addEventListener("keydown",t),()=>{e.removeEventListener("keydown",t)}}),[je,fe,xe.length,Ue,re,he]);const Je=`${(0,u.useMemo)((()=>`${(0,y.uniqueId)("diagram-")}-`),[])}line-arrow-`,[Qe,et]=(0,u.useState)([]),[tt,at]=(0,u.useState)(!1),[nt,st]=(0,u.useState)(!1),[it,lt]=(0,u.useState)(!1),ot=(0,u.useCallback)((e=>{Ce({type:"move-cells",payload:e});const t=[];(0,X._)(e,fe).forEach((e=>{var a,n;null!==(a=e.containerCell)&&void 0!==a&&a.id&&t.push(null===(n=e.containerCell)||void 0===n?void 0:n.id)})),Se(t),et(e.flatMap((e=>{var t;return null!==(t=e.guideLines)&&void 0!==t?t:[]}))),at(!0),e.some((e=>(0,C._m)(e)))||lt(!0)}),[fe]),rt=(0,u.useCallback)((e=>{Ce({type:"move-cells",payload:e}),de(e),1===e.length&&le(e[0]),(0,X._)(e,fe,pe),Se([]),et([]),at(!1),lt(!1)}),[le,de,fe,pe]),dt=(0,u.useCallback)((e=>{Ce({type:"resize-cell",payload:e}),st(!0)}),[]),ht=(0,u.useCallback)((e=>{Ce({type:"resize-cell",payload:e}),oe(e),st(!1)}),[oe]),ct=(0,u.useCallback)((e=>{let{id:t,editing:a}=e;Ne(a?e=>e.includes(t)?e:[...e,t]:e=>e.filter((e=>e!==t)))}),[]),ut=(0,u.useCallback)(((e,t)=>{const a=Ve();Ce({type:"update-node-size",payload:{id:e,size:t},layoutKey:a})}),[Ve]),gt=(0,u.useCallback)((e=>{De.scaleTo((0,b.A)(Ee.current),e/100)}),[De]),{lineConfMap:At,lineConnectorConf:pt,markers:vt}=(0,$.d)({cells:fe,defaultEdgeLines:r,lineConnector:ee,markerPrefix:Je,useMemoizedResult:it||nt}),yt=(0,j.A)({cells:fe,lineConfMap:At}),mt=(0,u.useMemo)((()=>{let e=[];return e=fe.filter((e=>!(0,G.l)(e,Ue)&&(0,q.Q)(e,je)&&((0,C.WW)(e)||(0,C._m)(e))&&yt.has(e))),e}),[je,fe,yt,Ue]),kt=(0,O.H)({cells:fe,layout:n,centered:Ke}),[bt,ft]=(0,u.useState)(null),wt=(0,u.useRef)(null),[Ct,Mt]=(0,u.useState)(null),Et=(0,u.useCallback)((e=>{if(pt&&!(0,G.l)(e,Ue)&&(0,C.bo)(e,te)&&(!Ct||"control"!==Ct.type)){null!==wt.current&&(clearTimeout(wt.current),wt.current=null);const t=(0,P.G)();ft({cell:e,relativePoints:t,points:Mn(t,e.view)})}}),[te,pt,Ct,Ue]),Wt=(0,u.useCallback)((e=>{pt&&(0,C.N)(e)&&(wt.current=setTimeout((()=>{ft(null)})))}),[pt]),xt=(0,u.useCallback)(((e,t,a,n)=>{const s={source:e.id,target:t.id,view:{...Q,exitPosition:a,entryPosition:n,vertices:null}};if(fe.find((a=>"edge"===a.type&&a.source===e.id&&a.target===t.id)))Ce({type:"change-edge-view",payload:s}),null==ve||ve(s);else{const a={type:"edge",...s};Ce({type:"add-edge",payload:a}),ue({source:e,target:t,view:a.view})}}),[fe,Q,ue,ve]),Nt=(0,u.useCallback)(((e,t,a)=>{const n={source:e.id,target:t.id,view:a};Ce({type:"change-edge-view",payload:n}),null==ve||ve(n)}),[ve]),Tt=(0,u.useCallback)(((e,t)=>{const a={id:e.id,view:t};Ce({type:"change-decorator-view",payload:a}),null==ye||ye(a)}),[ye]),St=(0,u.useMemo)((()=>({rootRef:Ee,smartConnectLineState:_e,unsetHoverStateTimeoutRef:wt,hoverState:bt,activeEditableLines:mt,lineEditorState:Ct,movingCells:tt,setLineEditorState:Mt,setHoverState:ft,setSmartConnectLineState:Ze,onConnect:xt,onChangeEdgeView:Nt,onChangeDecoratorView:Tt})),[mt,Nt,Tt,xt,bt,Ct,_e,tt]),Rt=(0,u.useCallback)((e=>{e.preventDefault(),me([e.clientX,e.clientY]),null==ie||ie(null)}),[me,ie]),Lt=(0,u.useCallback)((e=>{e[/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey"]&&("c"===e.key?(ke(),e.preventDefault()):"v"===e.key&&(be(),e.preventDefault()))}),[ke,be]);return(0,u.useEffect)((()=>{const e=Ee.current;if(!e||"lasso"!==M)return;const t=e.getBoundingClientRect(),a=e=>{(0,K.F)(e,{transform:Be,offset:[t.left,t.top],onLassoing(e){Pe(e)},onLassoed(e){Pe(null);const t=[];for(const a of fe)if((0,C.WW)(a)||(0,C.N)(a)||(0,C.mH)(a)){const n=(0,y.get)(a,"view.x",0),s=(0,y.get)(a,"view.y",0),i=(0,y.get)(a,"view.width",0),l=(0,y.get)(a,"view.height",0);n>=e.x&&n+i<=e.x+e.width&&s>=e.y&&s+l<=e.y+e.height&&t.push(a)}null==ie||ie(t.length>1?{type:"multi",targets:t.map(U.P)}:1===t.length?(0,U.P)(t[0]):null)}})};return e.addEventListener("mousedown",a),()=>{e.removeEventListener("mousedown",a)}}),[Be,fe,M,ie]),g().createElement(I.H.Provider,{value:St},g().createElement("svg",{onKeyDown:Lt,onContextMenu:Rt,width:"100%",height:"100%",ref:Ee,className:k()("root",{grabbing:ze,pannable:m,ready:kt}),tabIndex:-1},g().createElement("defs",null,vt.map(((e,t)=>g().createElement(w.c,{key:t,id:`${Je}${t}`,type:e.markerType,strokeColor:e.strokeColor})))),g().createElement("g",{transform:`translate(${Be.x} ${Be.y}) scale(${Be.k})`},g().createElement("g",{className:k()("cells",{allowEdgeToArea:te})},fe.map((e=>g().createElement(W.m,{key:`${e.type}:${(0,C.WW)(e)?`${e.source}~${e.target}`:e.id}`,dragoverContainer:!(0,C.WW)(e)&&Te.includes(e.id),layout:n,layoutOptions:s,cell:e,cells:fe,degraded:Me,degradedNodeLabel:h,defaultNodeBricks:o,transform:Be,lineConfMap:At,editableLineMap:yt,activeTarget:je,unrelatedCells:qe,allowEdgeToArea:te,curActiveEditableLine:Re,locked:(0,G.l)(e,Ue),containerLocked:(0,C.N)(e)&&!!e.containerId&&Ue.includes(e.containerId),updateCurActiveEditableLine:Le,onCellsMoving:ot,onCellsMoved:rt,onCellResizing:dt,onCellResized:ht,onSwitchActiveTarget:ie,onCellContextMenu:ce,onDecoratorTextChange:ge,onDecoratorTextEditing:ct,onNodeBrickResize:ut,onCellMouseEnter:Et,onCellMouseLeave:Wt})))),g().createElement("g",null,g().createElement(x.w,{connectLineState:He,transform:Be,markerEnd:`${Je}0`,onConnect:Xe})),$e&&g().createElement("rect",{x:$e.x,y:$e.y,width:$e.width,height:$e.height,fill:"var(--palette-gray-5)",fillOpacity:.3,stroke:"var(--palette-gray-5)",strokeDasharray:2}),pt&&g().createElement("g",null,g().createElement(Y.X,{transform:Be,lineSettings:Q,options:pt}),g().createElement(Z.W,{cells:fe,editableLineMap:yt,transform:Be,options:pt,activeEditableLine:Re})),g().createElement("g",null,Qe.map(((e,t)=>g().createElement("path",{key:t,d:`M${e[0].join(" ")} L${e[1].join(" ")}`,stroke:"var(--palette-orange-5)",fill:"none",strokeWidth:1/Be.k})))),g().createElement("g",null,pt&&(null==mt?void 0:mt.map((e=>g().createElement(_.F,{editableLineMap:yt,scale:Be.k,activeEditableLine:e,updateCurActiveEditableLine:Le,key:(0,C.WW)(e)?`${e.source}-${e.target}`:e.id}))))),pt&&g().createElement(H.T,{activeTarget:je,editableLineMap:yt,scale:Be.k,activeEditableLine:Re,disabled:!!He}))),g().createElement(B.Y,{shadowRoot:a.shadowRoot,scale:Be.k,scaleRange:Oe,onZoomChange:gt,onReCenter:Ye}))}function Cn(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){const t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))}function Mn(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const n=R.XK,s=n/2,i=t.x+a/2-s,l=t.y+a/2-s,o=t.width-a+n,r=t.height-a+n;return e.map((e=>({x:i+e.x*o,y:l+e.y*r})))}n=kn,({e:[te,ae,ne,se,ie,le,oe,re,de,he,ce,ue,ge,Ae,pe,ve,ye,me,ke,be,fe,we,Ce,Me,Ee,We,xe,Ne,Te,Se,Re,Le,ze,Be,De,Oe,$e,Pe,He,Ie,Ke,Fe,Ve,Ye,Ue,Xe,_e,Ze,je,qe,Ge,Je,Qe,et,tt,at,nt,st,it,lt,ot,rt,dt,ht,ct,ut,gt,At,pt,vt,yt,mt,kt,bt,ft,wt,Ct,Mt,Et,Wt,xt,Nt,Tt,St,Rt,Lt,zt,Bt,Dt,Ot,$t,Pt,Ht,It,Kt,Ft,Vt,Yt,Ut,Xt,_t,Zt,jt,qt,Gt,Jt,Qt,ea,ta,aa,na,sa,ia,la,Q],c:[ga,ee]}=(0,c.A)(n,[ra("eo-draw-canvas",{styleTexts:[F.A,V.A]})],[[da({attribute:!1}),1,"cells"],[da({type:String}),1,"layout"],[da({attribute:!1}),1,"layoutOptions"],[da({attribute:!1}),1,"defaultNodeSize"],[da({attribute:!1}),1,"defaultNodeBricks"],[da({type:Number}),1,"degradedThreshold"],[da({attribute:!1}),1,"degradedNodeLabel"],[da({attribute:!1}),1,"defaultEdgeLines"],[da({attribute:!1}),1,"activeTarget"],[da({type:Boolean}),1,"fadeUnrelatedCells"],[da({type:Boolean}),1,"zoomable"],[da({type:Boolean}),1,"scrollable"],[da({type:Boolean}),1,"pannable"],[da({type:Boolean}),1,"allowEdgeToArea"],[da(),1,"dragBehavior"],[da(),1,"ctrlDragBehavior"],[da({attribute:!1}),1,"scaleRange"],[da({attribute:!1}),1,"lineSettings"],[da({attribute:!1}),1,"lineConnector"],[da(),1,"doNotResetActiveTargetForSelector"],[da({type:Boolean}),1,"doNotResetActiveTargetOutsideCanvas"],[ca({type:"activeTarget.change"}),1,"activeTargetChangeEvent",e=>(0,h.A)(Da,e),(e,t)=>(0,d.A)(Da,e,t)],[ca({type:"node.move"}),1,"nodeMoveEvent",e=>(0,h.A)(Ha,e),(e,t)=>(0,d.A)(Ha,e,t)],[ca({type:"cell.move"}),1,"cellMoveEvent",e=>(0,h.A)(Ia,e),(e,t)=>(0,d.A)(Ia,e,t)],[ca({type:"cells.move"}),1,"cellsMoveEvent",e=>(0,h.A)(Fa,e),(e,t)=>(0,d.A)(Fa,e,t)],[ca({type:"cell.resize"}),1,"cellResizeEvent",e=>(0,h.A)(Ya,e),(e,t)=>(0,d.A)(Ya,e,t)],[ca({type:"node.delete"}),1,"nodeDelete",e=>(0,h.A)(Xa,e),(e,t)=>(0,d.A)(Xa,e,t)],[ca({type:"cell.delete"}),1,"cellDelete",e=>(0,h.A)(_a,e),(e,t)=>(0,d.A)(_a,e,t)],[ca({type:"cells.delete"}),1,"cellsDelete",e=>(0,h.A)(ja,e),(e,t)=>(0,d.A)(ja,e,t)],[ca({type:"cell.contextmenu"}),1,"cellContextMenu",e=>(0,h.A)(Ga,e),(e,t)=>(0,d.A)(Ga,e,t)],[ca({type:"edge.add"}),1,"edgeAdd",e=>(0,h.A)(Qa,e),(e,t)=>(0,d.A)(Qa,e,t)],[ca({type:"edge.view.change"}),1,"edgeViewChange",e=>(0,h.A)(tn,e),(e,t)=>(0,d.A)(tn,e,t)],[ca({type:"decorator.view.change"}),1,"decoratorViewChange",e=>(0,h.A)(nn,e),(e,t)=>(0,d.A)(nn,e,t)],[ca({type:"decorator.text.change"}),1,"decoratorTextChange",e=>(0,h.A)(ln,e),(e,t)=>(0,d.A)(ln,e,t)],[ca({type:"node.container.change"}),1,"containerContainerChange",e=>(0,h.A)(rn,e),(e,t)=>(0,d.A)(rn,e,t)],[ca({type:"scale.change"}),1,"scaleChange",e=>(0,h.A)(hn,e),(e,t)=>(0,d.A)(hn,e,t)],[ca({type:"canvas.contextmenu"}),1,"canvasContextMenu",e=>(0,h.A)(un,e),(e,t)=>(0,d.A)(un,e,t)],[ca({type:"canvas.copy"}),1,"canvasCopy",e=>(0,h.A)(An,e),(e,t)=>(0,d.A)(An,e,t)],[ca({type:"canvas.paste"}),1,"canvasPaste",e=>(0,h.A)(vn,e),(e,t)=>(0,d.A)(vn,e,t)],[ha(),2,"dropNode"],[ha(),2,"dropDecorator"],[ha(),2,"addNodes"],[ha(),2,"addEdge"],[ha(),2,"manuallyConnectNodes"],[ha(),2,"updateCells"],[ha(),2,"reCenter"],[ha(),2,"toggleLock"],[ha(),2,"lock"],[ha(),2,"unlock"]],0,(e=>mn.has((0,l.A)(e))),p.ReactNextElement)),ee()},9711:(e,t,a)=>{var n,s=a(4635),i=a(918),l=a(6902),o=a(5536),r=a(6121),d=a(829),h=a(2740),c=a(8769),u=a.n(c),g=a(7921),A=a(1280),p=(a(6477),a(7566)),v=a(9047),y=a(3373),m=a.n(y),k=a(1030),b=a(9126),f=a(8892),w=a(5157),C=a(8308),M=a(1518),E=a(9137),W=a(2547),x=a(1803),N=a(3739),T=a(9191),S=a(6671),R=a(8060),L=a(2448),z=a(8657),B=a(8069),D=a(1324),O=a(821),$=a(6753),P=a(2673),H=a(5987);let I,K,F,V,Y,U,X,_,Z,j,q,G,J,Q,ee,te,ae,ne,se,ie,le,oe,re,de,he,ce,ue,ge,Ae,pe,ve,ye,me,ke,be,fe,we,Ce,Me,Ee,We,xe,Ne,Te,Se,Re,Le,ze,Be,De,Oe,$e,Pe,He;const{defineElement:Ie,property:Ke,event:Fe,method:Ve}=(0,g.createDecorators)(),Ye=(0,c.forwardRef)(wt);let Ue;var Xe=new WeakMap,_e=new WeakMap,Ze=new WeakMap,je=new WeakMap,qe=new WeakMap,Ge=new WeakMap,Je=new WeakMap,Qe=new WeakMap,et=new WeakMap,tt=new WeakMap,at=new WeakMap,nt=new WeakMap,st=new WeakMap,it=new WeakMap,lt=new WeakMap,ot=new WeakSet,rt=new WeakMap,dt=new WeakMap,ht=new WeakMap,ct=new WeakMap,ut=new WeakMap,gt=new WeakMap,At=new WeakMap,pt=new WeakMap,vt=new WeakMap,yt=new WeakMap,mt=new WeakMap,kt=new WeakMap,bt=new WeakMap;class ft extends A.ReactNextElement{constructor(){super(...arguments),(0,s.A)(this,ot),(0,i.A)(this,Xe,(I(this),F(this))),(0,i.A)(this,_e,(V(this),Y(this))),(0,i.A)(this,Ze,(U(this),X(this))),(0,i.A)(this,je,(_(this),Z(this))),(0,i.A)(this,qe,(j(this),q(this))),(0,i.A)(this,Ge,(G(this),J(this))),(0,i.A)(this,Je,(Q(this),ee(this))),(0,i.A)(this,Qe,(te(this),ae(this))),(0,i.A)(this,et,(ne(this),se(this))),(0,i.A)(this,tt,(ie(this),le(this))),(0,i.A)(this,at,(oe(this),re(this,!0))),(0,i.A)(this,nt,(de(this),he(this,!0))),(0,i.A)(this,st,(ce(this),ue(this,!0))),(0,i.A)(this,it,(ge(this),Ae(this))),(0,i.A)(this,lt,(pe(this),ve(this))),(0,i.A)(this,rt,(ke(this),e=>{(0,o.A)(ot,this,ye).emit(e)})),(0,i.A)(this,dt,be(this)),(0,i.A)(this,ht,(Ce(this),e=>{(0,o.A)(ot,this,fe).emit(e)})),(0,i.A)(this,ct,Me(this)),(0,i.A)(this,ut,(xe(this),e=>{(0,o.A)(ot,this,Ee).emit(e)})),(0,i.A)(this,gt,Ne(this)),(0,i.A)(this,At,(Re(this),e=>{(0,o.A)(ot,this,Te).emit(e)})),(0,i.A)(this,pt,Le(this)),(0,i.A)(this,vt,(De(this),e=>{(0,o.A)(ot,this,ze).emit(e)})),(0,i.A)(this,yt,Oe(this)),(0,i.A)(this,mt,(He(this),e=>{(0,o.A)(ot,this,$e).emit(e)})),(0,i.A)(this,kt,(e=>{(0,P.c)(e,this.activeTarget)||(this.activeTarget=e)})),(0,i.A)(this,bt,(0,c.createRef)())}get layout(){return(0,d.A)(Xe,this)}set layout(e){(0,r.A)(Xe,this,e)}get nodes(){return(0,d.A)(_e,this)}set nodes(e){(0,r.A)(_e,this,e)}get edges(){return(0,d.A)(Ze,this)}set edges(e){(0,r.A)(Ze,this,e)}get nodeBricks(){return(0,d.A)(je,this)}set nodeBricks(e){(0,r.A)(je,this,e)}get lines(){return(0,d.A)(qe,this)}set lines(e){(0,r.A)(qe,this,e)}get layoutOptions(){return(0,d.A)(Ge,this)}set layoutOptions(e){(0,r.A)(Ge,this,e)}get activeTarget(){return(0,d.A)(Je,this)}set activeTarget(e){(0,r.A)(Je,this,e)}get disableKeyboardAction(){return(0,d.A)(Qe,this)}set disableKeyboardAction(e){(0,r.A)(Qe,this,e)}get connectNodes(){return(0,d.A)(et,this)}set connectNodes(e){(0,r.A)(et,this,e)}get dragNodes(){return(0,d.A)(tt,this)}set dragNodes(e){(0,r.A)(tt,this,e)}get zoomable(){return(0,d.A)(at,this)}set zoomable(e){(0,r.A)(at,this,e)}get scrollable(){return(0,d.A)(nt,this)}set scrollable(e){(0,r.A)(nt,this,e)}get pannable(){return(0,d.A)(st,this)}set pannable(e){(0,r.A)(st,this,e)}get scaleRange(){return(0,d.A)(it,this)}set scaleRange(e){(0,r.A)(it,this,e)}callOnLineLabel(e,t){for(var a,n=arguments.length,s=new Array(n>2?n-2:0),i=2;i<n;i++)s[i-2]=arguments[i];null===(a=(0,d.A)(bt,this).current)||void 0===a||a.callOnLineLabel(e,t,...s)}render(){return u().createElement(Ye,{ref:(0,d.A)(bt,this),layout:this.layout,nodes:this.nodes,edges:this.edges,nodeBricks:this.nodeBricks,lines:this.lines,layoutOptions:this.layoutOptions,connectNodes:this.connectNodes,dragNodes:this.dragNodes,activeTarget:this.activeTarget,disableKeyboardAction:this.disableKeyboardAction,zoomable:this.zoomable,scrollable:this.scrollable,pannable:this.pannable,scaleRange:this.scaleRange,onActiveTargetChange:(0,d.A)(rt,this),onSwitchActiveTarget:(0,d.A)(kt,this),onNodeDelete:(0,d.A)(ht,this),onEdgeDelete:(0,d.A)(ut,this),onLineClick:(0,d.A)(At,this),onLineDoubleClick:(0,d.A)(vt,this),onNodesConnect:(0,d.A)(mt,this)})}}function wt(e,t){let{layout:a,nodes:n,edges:s,nodeBricks:i,lines:l,layoutOptions:o,connectNodes:r,dragNodes:d,activeTarget:h,disableKeyboardAction:g,zoomable:A,scrollable:y,pannable:O,scaleRange:I,onActiveTargetChange:K,onSwitchActiveTarget:F,onNodeDelete:V,onEdgeDelete:Y,onLineClick:U,onLineDoubleClick:X,onNodesConnect:_}=e;const[Z,j]=(0,c.useState)(!1),[q,G]=(0,c.useState)(0),[J,Q]=(0,c.useState)(null),[ee,te]=(0,c.useState)(!1),[ae,ne]=(0,c.useState)(0),[se,ie]=(0,c.useState)(null),[le,oe]=(0,c.useState)([]),[re,de]=(0,c.useState)(!1),[he,ce]=(0,c.useState)({k:1,x:0,y:0}),ue=(0,c.useRef)(new Map),ge=(0,c.useRef)(null),Ae=(0,c.useRef)(null),[pe,ve]=(0,c.useState)(!1),{userViewReady:ye,userViewNodesMap:me,saveUserView:ke}=(0,$._)(null==d?void 0:d.save),[be,fe]=(0,c.useState)([0,0]),[we,Ce]=(0,c.useState)(null),[Me,Ee]=(0,c.useState)("initial"),[We,xe]=(0,c.useState)(null);(0,c.useImperativeHandle)(t,(()=>({callOnLineLabel(e,t){for(var a,n=arguments.length,s=new Array(n>2?n-2:0),i=2;i<n;i++)s[i-2]=arguments[i];null==se||null===(a=se.get(e))||void 0===a||null===(a=a.firstElementChild)||void 0===a||a[t](...s)}}))),(0,c.useEffect)((()=>{const e=e=>{(0,L.P)(e,{nodes:n,nodesRefRepository:J,connectNodes:r,dragNodes:d,scale:he.k,setConnectLineState:Ce,setConnectLineTo:fe,setManualLayoutStatus:Ee,setNodeMovement:xe,onSwitchActiveTarget:F,onNodesConnect:_})},t=Ae.current;return null==t||t.addEventListener("mousedown",e),()=>{null==t||t.removeEventListener("mousedown",e)}}),[n,r,d,he.k,J,_,F]);const{normalizedLines:Ne,normalizedLinesMap:Te,markers:Se}=(0,c.useMemo)((()=>(0,E.t)(s,l)),[s,l]),Re=(0,c.useMemo)((()=>Ne.flatMap((e=>{let t,a,{line:{text:n,label:s,$id:i},edge:l}=e;return n||s?(s?(t="label",a=[].concat(s)):(t="text",a=[].concat(n)),a.map((e=>{var a;return{[t]:e,id:`${i}-${null!==(a=e.placement)&&void 0!==a?a:"center"}`,edge:l}}))):[]}))),[Ne]),{nodes:Le,edges:ze}=(0,B.o)({layout:a,nodes:n,edges:s,manualLayoutStatus:Me,userViewReady:ye,userViewNodesMap:me,nodeMovement:We,nodesRefRepository:J,lineLabelsRefRepository:se,normalizedLinesMap:Te,layoutOptions:o,nodesRenderId:q,lineLabelsRenderId:ae});(0,c.useEffect)((()=>{"finished"===Me&&ke(Le.map((e=>({id:e.id,x:e.x,y:e.y}))))}),[Me]);const Be=(0,c.useMemo)((()=>(0,M.R)(ze,Le,Ne)),[Ne,Le,ze]),De=null!=h?h:null,[Oe,$e]=(0,c.useState)(De);(0,c.useEffect)((()=>{$e((e=>(0,P.c)(e,De)?e:De))}),[De]);const Pe=(0,c.useRef)(!1);(0,c.useEffect)((()=>{Pe.current?null==K||K(Oe):Pe.current=!0}),[Oe,K]),(0,c.useEffect)((()=>{const e=ge.current;if(!e||g)return;const t=e=>{const t=(0,w.a)(e,{renderedNodes:Le,activeTarget:Oe});"delete-node"===(null==t?void 0:t.action)?null==V||V(t.node):"delete-edge"===(null==t?void 0:t.action)?null==Y||Y(t.edge):"switch-active-node"===(null==t?void 0:t.action)&&t.node&&(null==F||F({type:"node",nodeId:t.node.id}))};return e.addEventListener("keydown",t),()=>{e.removeEventListener("keydown",t)}}),[Oe,Le,g,F,V,Y]);const He=(0,c.useCallback)((e=>{e&&(G((e=>e+1)),Q(e)),j((t=>t||!!e))}),[]),Ie=(0,c.useCallback)((e=>{e&&(ne((e=>e+1)),ie(e)),te((t=>t||!!e))}),[]),Ke=(0,c.useMemo)((()=>null!=I?I:[z.sS,z.Yt]),[I]),Fe=(0,c.useMemo)((()=>(0,v.s_)()),[]);(0,c.useEffect)((()=>{let e=!1;Fe.scaleExtent(A?Ke:[1,1]).on("start",(()=>{e=!1,de(!0)})).on("zoom",(t=>{e=!0,ce(t.transform)})).on("end",(()=>{de(!1),e||null==F||F(null)}))}),[F,Ke,A,Fe]),(0,c.useEffect)((()=>{const e=ge.current;if(!e)return;const t=(0,p.A)(e),a=()=>{t.on(".zoom",null).on(".zoom.custom",null).on("wheel",null)};if(A||y||O)return(A||y)&&t.on("wheel.zoom.custom",(e=>{e.ctrlKey||(e.stopImmediatePropagation(),y&&(e.preventDefault(),Fe.translateBy(t,e.wheelDeltaX/5,e.wheelDeltaY/5)))})),t.call(Fe).on("wheel",(e=>e.preventDefault())).on("dblclick.zoom",null),O||t.on("mousedown.zoom",null).on("touchstart.zoom",null).on("touchmove.zoom",null).on("touchend.zoom",null),a;a()}),[O,y,A,Fe]),(0,c.useEffect)((()=>{const e=ge.current;if(0===Le.length||!e||pe)return;const{k:t,x:a,y:n}=(0,C.r)(Le,{canvasWidth:e.clientWidth,canvasHeight:e.clientHeight,scaleRange:A?Ke:void 0});Fe.transform((0,p.A)(e),new v.uV(t,a,n)),ve(!0)}),[pe,Le,Ke,A,Fe]);const Ve=(0,c.useMemo)((()=>`${(0,k.uniqueId)("diagram-")}-`),[]),Ye=`${Ve}line-arrow-`,Ue=`${Ve}mask-`,Xe=`${Ve}active-line-`;(0,c.useEffect)((()=>{oe((e=>(0,R.z)(e,Be,ue.current)))}),[Be]);const[_e,Ze]=u().useState(new Map);return(0,c.useEffect)((()=>{if(!se)return;(0,D.F)(le,se);const e=new b.A((()=>{Ze((0,H.G)(le,se))}));for(const t of se.values())e.observe(t);return()=>{e.disconnect()}}),[ae,se,le]),"dagre"!==a&&"force"!==a?u().createElement("div",null,`Diagram layout not supported: "${a}"`):u().createElement("div",{className:m()("diagram",{ready:Z&&pe,grabbing:re,pannable:O}),tabIndex:-1,ref:ge},u().createElement("svg",{width:"100%",height:"100%",className:"lines"},u().createElement("defs",null,Se.map(((e,t)=>{let{type:a,strokeColor:n}=e;return u().createElement(N.c,{key:t,id:`${Ye}${t}`,type:a,strokeColor:n})})),[..._e].map((e=>{let[t,a]=e;return u().createElement(T.y,{key:t,lineId:t,rects:a,maskPrefix:Ue,renderedLineLabels:le})})),u().createElement("marker",{id:`${Xe}start`,viewBox:"0 0 8 8",refX:4,refY:4,markerWidth:8,markerHeight:8,orient:"auto"},u().createElement("path",{d:"M 0.5 0.5 H 7.5 V 7.5 H 0.5 Z",stroke:"var(--palette-gray-7)",strokeWidth:1,fill:"var(--palette-gray-1)"})),u().createElement("marker",{id:`${Xe}end`,viewBox:"0 0 14 8",refX:3,refY:4,markerWidth:14,markerHeight:8,orient:"auto"},u().createElement("path",{d:"M 0.5 1.5 L 5.5 4 L 0.5 6.5 z",stroke:"var(--palette-blue-3)",strokeWidth:1,fill:"var(--palette-blue-3)"}),u().createElement("path",{d:"M 6.5 0.5 H 13.5 V 7.5 H 6.5 Z",stroke:"var(--palette-gray-7)",strokeWidth:1,fill:"var(--palette-gray-1)"}))),u().createElement("g",{transform:`translate(${he.x} ${he.y}) scale(${he.k})`},Be.map((e=>u().createElement(x.m,{key:e.line.$id,line:e,linePaths:ue.current,lineMaskRects:_e,maskPrefix:Ue,markerPrefix:Ye,activeLineMarkerPrefix:Xe,active:"edge"===(null==Oe?void 0:Oe.type)&&Oe.edge.source===e.edge.source&&Oe.edge.target===e.edge.target,activeRelated:"node"===(null==Oe?void 0:Oe.type)&&(e.edge.source===Oe.nodeId||e.edge.target===Oe.nodeId),onLineClick:U,onLineDoubleClick:X}))))),u().createElement("div",{className:m()("line-labels",{ready:ee}),style:{left:he.x,top:he.y,transform:`scale(${he.k})`}},u().createElement(W.d2,{labels:Re,onRendered:Ie})),u().createElement("div",{className:"nodes",ref:Ae,style:{left:he.x,top:he.y,transform:`scale(${he.k})`}},u().createElement(f.p,{nodes:n,nodeBricks:i,onRendered:He})),u().createElement(S.w,{connectLineState:we,connectLineTo:be,markerPrefix:Ye}))}n=ft,({e:[F,V,Y,U,X,_,Z,j,q,G,J,Q,ee,te,ae,ne,se,ie,le,oe,re,de,he,ce,ue,ge,Ae,pe,ve,ye,me,ke,be,fe,we,Ce,Me,Ee,We,xe,Ne,Te,Se,Re,Le,ze,Be,De,Oe,$e,Pe,He,I],c:[Ue,K]}=(0,h.A)(n,[Ie("eo-diagram",{styleTexts:[O.A]})],[[Ke({type:String}),1,"layout"],[Ke({attribute:!1}),1,"nodes"],[Ke({attribute:!1}),1,"edges"],[Ke({attribute:!1}),1,"nodeBricks"],[Ke({attribute:!1}),1,"lines"],[Ke({attribute:!1}),1,"layoutOptions"],[Ke({attribute:!1}),1,"activeTarget"],[Ke({type:Boolean}),1,"disableKeyboardAction"],[Ke({attribute:!1}),1,"connectNodes"],[Ke({attribute:!1}),1,"dragNodes"],[Ke({type:Boolean}),1,"zoomable"],[Ke({type:Boolean}),1,"scrollable"],[Ke({type:Boolean}),1,"pannable"],[Ke({attribute:!1}),1,"scaleRange"],[Fe({type:"activeTarget.change"}),1,"activeTargetChangeEvent",e=>(0,d.A)(lt,e),(e,t)=>(0,r.A)(lt,e,t)],[Fe({type:"node.delete"}),1,"nodeDelete",e=>(0,d.A)(dt,e),(e,t)=>(0,r.A)(dt,e,t)],[Fe({type:"edge.delete"}),1,"edgeDelete",e=>(0,d.A)(ct,e),(e,t)=>(0,r.A)(ct,e,t)],[Fe({type:"line.click"}),1,"lineClick",e=>(0,d.A)(gt,e),(e,t)=>(0,r.A)(gt,e,t)],[Fe({type:"line.dblclick"}),1,"lineDoubleClick",e=>(0,d.A)(pt,e),(e,t)=>(0,r.A)(pt,e,t)],[Fe({type:"nodes.connect"}),1,"connectNodes",e=>(0,d.A)(yt,e),(e,t)=>(0,r.A)(yt,e,t)],[Ve(),2,"callOnLineLabel"]],0,(e=>bt.has((0,l.A)(e))),A.ReactNextElement)),K();var Ct,Mt=a(3971);let Et,Wt,xt,Nt,Tt,St,Rt,Lt,zt,Bt,Dt,Ot,$t,Pt,Ht,It;const{defineElement:Kt,property:Ft,event:Vt,method:Yt}=(0,g.createDecorators)(),Ut=(0,c.forwardRef)(na);let Xt;var _t=new WeakMap,Zt=new WeakMap,jt=new WeakMap,qt=new WeakMap,Gt=new WeakSet,Jt=new WeakMap,Qt=new WeakMap,ea=new WeakMap,ta=new WeakMap;class aa extends A.ReactNextElement{constructor(){super(...arguments),(0,s.A)(this,Gt),(0,i.A)(this,_t,(Et(this),xt(this))),(0,i.A)(this,Zt,(Nt(this),Tt(this))),(0,i.A)(this,jt,(St(this),Rt(this))),(0,i.A)(this,qt,(Lt(this),zt(this))),(0,i.A)(this,Jt,(Ot(this),e=>{(0,o.A)(Gt,this,Bt).emit(e)})),(0,i.A)(this,Qt,$t(this)),(0,i.A)(this,ea,(It(this),e=>{(0,o.A)(Gt,this,Pt).emit(e)})),(0,i.A)(this,ta,(0,c.createRef)())}get label(){return(0,d.A)(_t,this)}set label(e){(0,r.A)(_t,this,e)}get type(){return(0,d.A)(Zt,this)}set type(e){(0,r.A)(Zt,this,e)}get readOnly(){return(0,d.A)(jt,this)}set readOnly(e){(0,r.A)(jt,this,e)}enableEditing(){var e;null===(e=(0,d.A)(ta,this).current)||void 0===e||e.enableEditing()}render(){return u().createElement(Ut,{ref:(0,d.A)(ta,this),label:this.label,readOnly:this.readOnly,onLabelEditingChange:(0,d.A)(Jt,this),onLabelChange:(0,d.A)(ea,this)})}}function na(e,t){let{label:a,readOnly:n,onLabelChange:s,onLabelEditingChange:i}=e;const l=null!=a?a:"",[o,r]=(0,c.useState)(l),[d,h]=(0,c.useState)(!1),g=(0,c.useRef)(!1),[A,p]=(0,c.useState)(!1),v=(0,c.useRef)(null);(0,c.useImperativeHandle)(t,(()=>({enableEditing(){n||h(!0)}}))),(0,c.useEffect)((()=>{r(l)}),[l]);const y=(0,c.useCallback)((e=>{n||(e.preventDefault(),e.stopPropagation(),h(!0))}),[n]);(0,c.useEffect)((()=>{var e,t;d&&(null===(e=v.current)||void 0===e||e.focus({preventScroll:!0}),null===(t=v.current)||void 0===t||t.select())}),[d]),(0,c.useEffect)((()=>{g.current?null==i||i(d):g.current=!0}),[d,i]);const k=(0,c.useCallback)((e=>{r(e.target.value)}),[]),b=(0,c.useCallback)((e=>{e.stopPropagation();const t=e.key||e.keyCode||e.which;var a;"Enter"!==t&&13!==t||null===(a=v.current)||void 0===a||a.blur()}),[]),f=(0,c.useCallback)((()=>{h(!1),p(!0)}),[]);(0,c.useEffect)((()=>{A&&(null==s||s(o),p(!1))}),[o,s,A]);const w=(0,c.useCallback)((e=>{e.stopPropagation()}),[]);return u().createElement("div",{className:m()("label",{editing:d,empty:!o}),onDoubleClick:w,onMouseDown:w},u().createElement("input",{className:"label-input",value:o,ref:v,onChange:k,onKeyDown:b,onBlur:f,onContextMenu:w}),u().createElement("div",{className:"label-text",onDoubleClick:y},o))}Ct=aa,({e:[xt,Nt,Tt,St,Rt,Lt,zt,Bt,Dt,Ot,$t,Pt,Ht,It,Et],c:[Xt,Wt]}=(0,h.A)(Ct,[Kt("diagram.editable-label",{styleTexts:[Mt.A]})],[[Ft(),1,"label"],[Ft({render:!1}),1,"type"],[Ft({type:Boolean}),1,"readOnly"],[Vt({type:"label.editing.change"}),1,"labelEditingChange",e=>(0,d.A)(qt,e),(e,t)=>(0,r.A)(qt,e,t)],[Vt({type:"label.change"}),1,"labelChange",e=>(0,d.A)(Qt,e),(e,t)=>(0,r.A)(Qt,e,t)],[Yt(),2,"enableEditing"]],0,(e=>ta.has((0,l.A)(e))),A.ReactNextElement)),Wt(),a(9068);var sa,ia=a(497);let la,oa,ra,da,ha,ca,ua,ga,Aa,pa,va,ya,ma,ka,ba,fa,wa,Ca,Ma;const{defineElement:Ea,property:Wa,event:xa}=(0,g.createDecorators)();let Na;var Ta=new WeakMap,Sa=new WeakMap,Ra=new WeakMap,La=new WeakMap,za=new WeakSet,Ba=new WeakMap,Da=new WeakMap,Oa=new WeakMap,$a=new WeakMap,Pa=new WeakMap;class Ha extends A.ReactNextElement{constructor(){super(...arguments),(0,s.A)(this,za),(0,i.A)(this,Ta,oa(this)),(0,i.A)(this,Sa,(ra(this),da(this))),(0,i.A)(this,Ra,(ha(this),ca(this))),(0,i.A)(this,La,(ua(this),ga(this))),(0,i.A)(this,Ba,(va(this),e=>{(0,o.A)(za,this,Aa).emit(e)})),(0,i.A)(this,Da,ya(this)),(0,i.A)(this,Oa,(ba(this),e=>{(0,o.A)(za,this,ma).emit(e)})),(0,i.A)(this,$a,fa(this)),(0,i.A)(this,Pa,(Ma(this),e=>{(0,o.A)(za,this,wa).emit(e)}))}get usage(){return(0,d.A)(Ta,this)}set usage(e){(0,r.A)(Ta,this,e)}get status(){return(0,d.A)(Sa,this)}set status(e){(0,r.A)(Sa,this,e)}get decorator(){return(0,d.A)(Ra,this)}set decorator(e){(0,r.A)(Ra,this,e)}render(){return u().createElement(Ia,{usage:this.usage,onDragStart:(0,d.A)(Ba,this),onDragMove:(0,d.A)(Oa,this),onDragEnd:(0,d.A)(Pa,this)})}}function Ia(e){let{usage:t,onDragStart:a,onDragMove:n,onDragEnd:s}=e;const i=(0,c.useCallback)((e=>{if("library"!==t)return;e.stopPropagation(),e.preventDefault();const i=[e.clientX,e.clientY];let l=!1;const o=e=>{l||(l=(e.clientX-i[0])**2+(e.clientY-i[1])**2>=9,l&&(null==a||a([e.clientX,e.clientY]))),l&&(null==n||n([e.clientX,e.clientY]))},r=e=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",r),l&&(null==s||s([e.clientX,e.clientY]))};document.addEventListener("mousemove",o),document.addEventListener("mouseup",r)}),[s,n,a,t]);return u().createElement("div",{onMouseDown:i},u().createElement("slot",null))}sa=Ha,({e:[oa,ra,da,ha,ca,ua,ga,Aa,pa,va,ya,ma,ka,ba,fa,wa,Ca,Ma],c:[Na,la]}=(0,h.A)(sa,[Ea("diagram.experimental-node",{styleTexts:[ia.A]})],[[Wa(),1,"usage"],[Wa({type:String,render:!1}),1,"status"],[Wa({type:String}),1,"decorator"],[xa({type:"drag.start"}),1,"dragStartEvent",e=>(0,d.A)(La,e),(e,t)=>(0,r.A)(La,e,t)],[xa({type:"drag.move"}),1,"dragMoveEvent",e=>(0,d.A)(Da,e),(e,t)=>(0,r.A)(Da,e,t)],[xa({type:"drag.end"}),1,"dragEndEvent",e=>(0,d.A)($a,e),(e,t)=>(0,r.A)($a,e,t)]],0,(e=>Pa.has((0,l.A)(e))),A.ReactNextElement)),la();var Ka,Fa=a(8185),Va=a(1609),Ya=a(37),Ua=a(3033),Xa=a(8091),_a=a(1819),Za=a(5748),ja=a(227),qa=a(531),Ga=a(7099),Ja=a(1484),Qa=a(8197),en=a(7531),tn=a(3371),an=a(3012),nn=a(6237),sn=a(4117);let ln,on,rn,dn,hn,cn,un,gn,An,pn,vn,yn,mn,kn,bn,fn,wn,Cn,Mn,En,Wn,xn,Nn,Tn,Sn,Rn,Ln,zn,Bn,Dn,On,$n,Pn,Hn,In,Kn,Fn,Vn,Yn,Un,Xn,_n,Zn,jn,qn,Gn,Jn,Qn,es,ts,as,ns,ss,is;const{defineElement:ls,property:os,event:rs,method:ds}=(0,g.createDecorators)(),hs=(0,c.forwardRef)(Fs);let cs;var us=new WeakMap,gs=new WeakMap,As=new WeakMap,ps=new WeakMap,vs=new WeakMap,ys=new WeakMap,ms=new WeakMap,ks=new WeakMap,bs=new WeakMap,fs=new WeakMap,ws=new WeakMap,Cs=new WeakMap,Ms=new WeakMap,Es=new WeakMap,Ws=new WeakMap,xs=new WeakMap,Ns=new WeakMap,Ts=new WeakMap,Ss=new WeakMap,Rs=new WeakMap,Ls=new WeakMap,zs=new WeakSet,Bs=new WeakMap,Ds=new WeakMap,Os=new WeakMap,$s=new WeakMap,Ps=new WeakMap,Hs=new WeakMap,Is=new WeakMap;class Ks extends A.ReactNextElement{constructor(){super(...arguments),(0,s.A)(this,zs),(0,i.A)(this,us,(ln(this),rn(this))),(0,i.A)(this,gs,(dn(this),hn(this))),(0,i.A)(this,As,(cn(this),un(this))),(0,i.A)(this,ps,(gn(this),An(this))),(0,i.A)(this,vs,(pn(this),vn(this,[Ua.HP,Ua.HP]))),(0,i.A)(this,ys,(yn(this),mn(this))),(0,i.A)(this,ms,(kn(this),bn(this))),(0,i.A)(this,ks,(fn(this),wn(this))),(0,i.A)(this,bs,(Cn(this),Mn(this))),(0,i.A)(this,fs,(En(this),Wn(this))),(0,i.A)(this,ws,(xn(this),Nn(this))),(0,i.A)(this,Cs,(Tn(this),Sn(this,!0))),(0,i.A)(this,Ms,(Rn(this),Ln(this,!0))),(0,i.A)(this,Es,(zn(this),Bn(this,!0))),(0,i.A)(this,Ws,(Dn(this),On(this))),(0,i.A)(this,xs,($n(this),Pn(this))),(0,i.A)(this,Ns,(Hn(this),In(this))),(0,i.A)(this,Ts,(Kn(this),Fn(this))),(0,i.A)(this,Ss,(Vn(this),Yn(this))),(0,i.A)(this,Rs,(Un(this),Xn(this))),(0,i.A)(this,Ls,(_n(this),Zn(this))),(0,i.A)(this,Bs,(Gn(this),e=>{(0,o.A)(zs,this,jn).emit(e)})),(0,i.A)(this,Ds,(e=>{(0,Fa.c)(e,this.activeTarget)||(this.activeTarget=e)})),(0,i.A)(this,Os,Jn(this)),(0,i.A)(this,$s,(ts(this),e=>{(0,o.A)(zs,this,Qn).emit(e)})),(0,i.A)(this,Ps,as(this)),(0,i.A)(this,Hs,(is(this),e=>{(0,o.A)(zs,this,ns).emit(e)})),(0,i.A)(this,Is,(0,c.createRef)())}get cells(){return(0,d.A)(us,this)}set cells(e){(0,r.A)(us,this,e)}get layout(){return(0,d.A)(gs,this)}set layout(e){(0,r.A)(gs,this,e)}get layoutOptions(){return(0,d.A)(As,this)}set layoutOptions(e){(0,r.A)(As,this,e)}get autoSize(){return(0,d.A)(ps,this)}set autoSize(e){(0,r.A)(ps,this,e)}get defaultNodeSize(){return(0,d.A)(vs,this)}set defaultNodeSize(e){(0,r.A)(vs,this,e)}get defaultNodeBricks(){return(0,d.A)(ys,this)}set defaultNodeBricks(e){(0,r.A)(ys,this,e)}get degradedThreshold(){return(0,d.A)(ms,this)}set degradedThreshold(e){(0,r.A)(ms,this,e)}get degradedNodeLabel(){return(0,d.A)(ks,this)}set degradedNodeLabel(e){(0,r.A)(ks,this,e)}get defaultEdgeLines(){return(0,d.A)(bs,this)}set defaultEdgeLines(e){(0,r.A)(bs,this,e)}get activeTarget(){return(0,d.A)(fs,this)}set activeTarget(e){(0,r.A)(fs,this,e)}get fadeUnrelatedCells(){return(0,d.A)(ws,this)}set fadeUnrelatedCells(e){(0,r.A)(ws,this,e)}get zoomable(){return(0,d.A)(Cs,this)}set zoomable(e){(0,r.A)(Cs,this,e)}get scrollable(){return(0,d.A)(Ms,this)}set scrollable(e){(0,r.A)(Ms,this,e)}get pannable(){return(0,d.A)(Es,this)}set pannable(e){(0,r.A)(Es,this,e)}get scaleRange(){return(0,d.A)(Ws,this)}set scaleRange(e){(0,r.A)(Ws,this,e)}get hideZoomBar(){return(0,d.A)(xs,this)}set hideZoomBar(e){(0,r.A)(xs,this,e)}get autoCenterWhenCellsChange(){return(0,d.A)(Ns,this)}set autoCenterWhenCellsChange(e){(0,r.A)(Ns,this,e)}get doNotResetActiveTargetForSelector(){return(0,d.A)(Ts,this)}set doNotResetActiveTargetForSelector(e){(0,r.A)(Ts,this,e)}get doNotResetActiveTargetOutsideCanvas(){return(0,d.A)(Ss,this)}set doNotResetActiveTargetOutsideCanvas(e){(0,r.A)(Ss,this,e)}get extraStyleTexts(){return(0,d.A)(Rs,this)}set extraStyleTexts(e){(0,r.A)(Rs,this,e)}center(){var e;null===(e=(0,d.A)(Is,this).current)||void 0===e||e.center()}render(){return u().createElement(hs,{shadowRoot:this.shadowRoot,cells:this.cells,layout:this.layout,layoutOptions:this.layoutOptions,autoSize:this.autoSize,defaultNodeSize:this.defaultNodeSize,defaultNodeBricks:this.defaultNodeBricks,defaultEdgeLines:this.defaultEdgeLines,degradedThreshold:this.degradedThreshold,degradedNodeLabel:this.degradedNodeLabel,activeTarget:this.activeTarget,fadeUnrelatedCells:this.fadeUnrelatedCells,zoomable:this.zoomable,scrollable:this.scrollable,pannable:this.pannable,scaleRange:this.scaleRange,hideZoomBar:this.hideZoomBar,doNotResetActiveTargetForSelector:this.doNotResetActiveTargetForSelector,doNotResetActiveTargetOutsideCanvas:this.doNotResetActiveTargetOutsideCanvas,autoCenterWhenCellsChange:this.autoCenterWhenCellsChange,extraStyleTexts:this.extraStyleTexts,onActiveTargetChange:(0,d.A)(Bs,this),onSwitchActiveTarget:(0,d.A)(Ds,this),onCellContextMenu:(0,d.A)($s,this),onCellClick:(0,d.A)(Hs,this),ref:(0,d.A)(Is,this)})}}function Fs(e,t){let{shadowRoot:a,cells:n,layout:s,layoutOptions:i,autoSize:l,defaultNodeSize:o,defaultNodeBricks:r,defaultEdgeLines:d,degradedThreshold:h,degradedNodeLabel:g,activeTarget:A,fadeUnrelatedCells:v,zoomable:y,scrollable:b,pannable:f,scaleRange:w,hideZoomBar:C,autoCenterWhenCellsChange:M,doNotResetActiveTargetForSelector:E,doNotResetActiveTargetOutsideCanvas:W,extraStyleTexts:x,onActiveTargetChange:T,onSwitchActiveTarget:S,onCellContextMenu:R,onCellClick:L}=e;const[{cells:z,layoutKey:B},D]=(0,c.useReducer)(Za.d,n,(e=>({cells:(0,Ya.C)(e,{defaultNodeSize:o}),layoutKey:1}))),O=(0,c.useMemo)((()=>z.filter(qa.N).length>=(null!=h?h:Ua.pC)),[z,h]),$=(0,c.useRef)(null),{grabbing:P,transform:H,zoomer:I,scaleRange:K}=(0,Xa.f)({rootRef:$,zoomable:y,scrollable:b,pannable:f,draggable:!0,scaleRange:w,onSwitchActiveTarget:S}),{centered:F,setCentered:V,getNextLayoutKey:Y}=(0,Ja.g)({layout:s,layoutOptions:i,autoSize:l,rootRef:$,cells:z,zoomable:y,zoomer:I,scaleRange:K,layoutKey:B,autoCenterWhenCellsChange:M,dispatch:D}),U=(0,c.useCallback)((()=>{V(!1)}),[V]);(0,c.useImperativeHandle)(t,(()=>({center:U})),[U]);const X=(0,c.useRef)(n);(0,c.useEffect)((()=>{if(n!==X.current){X.current=n;const e=(0,tn.L)({canvasWidth:a.host.clientWidth,canvasHeight:a.host.clientHeight,defaultNodeSize:o,layout:s,previousCells:z,cells:n,scaleRange:K,transform:H});D({type:"update-cells",payload:e.cells})}}),[z,o,n,s,K,a,H]);const _=(0,_a.J)({rootRef:$,activeTarget:A,doNotResetActiveTargetForSelector:E,doNotResetActiveTargetOutsideCanvas:W,onActiveTargetChange:T}),Z=`${(0,c.useMemo)((()=>`${(0,k.uniqueId)("diagram-")}-`),[])}line-arrow-`,j=(0,c.useCallback)(((e,t)=>{D({type:"update-node-size",payload:{id:e,size:t},layoutKey:Y()})}),[Y]),[q,G]=(0,c.useState)(null),J=(0,c.useCallback)((e=>{G(e)}),[]),Q=(0,c.useCallback)((e=>{G((t=>t===e?null:t))}),[]),[ee,te]=(0,c.useState)([]);(0,c.useEffect)((()=>{const e=v?(0,ja.Y)(z,null,q||_):[];te((t=>0===t.length&&0===e.length?t:e))}),[z,v,q,_]);const ae=(0,c.useCallback)((e=>{I.scaleTo((0,p.A)($.current),e/100)}),[I]),{lineConfMap:ne,markers:se}=(0,en.d)({cells:z,defaultEdgeLines:d,markerPrefix:Z}),ie=(0,sn.A)({cells:z,lineConfMap:ne}),le=(0,Qa.H)({cells:z,layout:s,centered:F});return u().createElement(u().Fragment,null,null==x?void 0:x.map(((e,t)=>u().createElement("style",{key:t},e))),u().createElement("svg",{width:"100%",height:"100%",ref:$,className:m()("root",{grabbing:P,pannable:f,ready:le}),tabIndex:-1},u().createElement("defs",null,se.map(((e,t)=>u().createElement(N.c,{key:t,id:`${Z}${t}`,type:e.markerType,strokeColor:e.strokeColor})))),u().createElement("g",{transform:`translate(${H.x} ${H.y}) scale(${H.k})`},u().createElement("g",{className:"cells"},z.map((e=>u().createElement(Va.m,{key:`${e.type}:${(0,qa.WW)(e)?`${e.source}~${e.target}`:e.id}`,layout:s,cell:e,cells:z,degraded:O,degradedNodeLabel:g,defaultNodeBricks:r,lineConfMap:ne,editableLineMap:ie,transform:H,activeTarget:_,readOnly:!0,hoverCell:q,unrelatedCells:ee,onSwitchActiveTarget:S,onCellContextMenu:R,onCellClick:L,onNodeBrickResize:j,onCellMouseEnter:v&&((0,qa.N)(e)||(0,qa.WW)(e))?J:void 0,onCellMouseLeave:v&&((0,qa.N)(e)||(0,qa.WW)(e))?Q:void 0})))))),!C&&u().createElement(Ga.Y,{shadowRoot:a,scale:H.k,scaleRange:K,onZoomChange:ae,onReCenter:U}))}Ka=Ks,({e:[rn,dn,hn,cn,un,gn,An,pn,vn,yn,mn,kn,bn,fn,wn,Cn,Mn,En,Wn,xn,Nn,Tn,Sn,Rn,Ln,zn,Bn,Dn,On,$n,Pn,Hn,In,Kn,Fn,Vn,Yn,Un,Xn,_n,Zn,jn,qn,Gn,Jn,Qn,es,ts,as,ns,ss,is,ln],c:[cs,on]}=(0,h.A)(Ka,[ls("eo-display-canvas",{styleTexts:[an.A,nn.A]})],[[os({attribute:!1}),1,"cells"],[os({type:String}),1,"layout"],[os({attribute:!1}),1,"layoutOptions"],[os({attribute:!1}),1,"autoSize"],[os({attribute:!1}),1,"defaultNodeSize"],[os({attribute:!1}),1,"defaultNodeBricks"],[os({type:Number}),1,"degradedThreshold"],[os({attribute:!1}),1,"degradedNodeLabel"],[os({attribute:!1}),1,"defaultEdgeLines"],[os({attribute:!1}),1,"activeTarget"],[os({type:Boolean}),1,"fadeUnrelatedCells"],[os({type:Boolean}),1,"zoomable"],[os({type:Boolean}),1,"scrollable"],[os({type:Boolean}),1,"pannable"],[os({attribute:!1}),1,"scaleRange"],[os({type:Boolean}),1,"hideZoomBar"],[os({type:Boolean}),1,"autoCenterWhenCellsChange"],[os(),1,"doNotResetActiveTargetForSelector"],[os({type:Boolean}),1,"doNotResetActiveTargetOutsideCanvas"],[os({attribute:!1}),1,"extraStyleTexts"],[rs({type:"activeTarget.change"}),1,"activeTargetChangeEvent",e=>(0,d.A)(Ls,e),(e,t)=>(0,r.A)(Ls,e,t)],[rs({type:"cell.contextmenu"}),1,"cellContextMenu",e=>(0,d.A)(Os,e),(e,t)=>(0,r.A)(Os,e,t)],[rs({type:"cell.click"}),1,"cellClick",e=>(0,d.A)(Ps,e),(e,t)=>(0,r.A)(Ps,e,t)],[ds(),2,"center"]],0,(e=>Is.has((0,l.A)(e))),A.ReactNextElement)),on()}}]);
|
|
2
|
+
//# sourceMappingURL=9711.cef255cc.js.map
|