@next-bricks/diagram 0.5.1 → 0.5.2
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/{2624.011771ea.js → 6457.0e22ff80.js} +2 -2
- package/dist/chunks/6457.0e22ff80.js.map +1 -0
- package/dist/chunks/{9393.d2e61225.js → 9393.4db156f6.js} +2 -2
- package/dist/chunks/{9393.d2e61225.js.map → 9393.4db156f6.js.map} +1 -1
- package/dist/chunks/{eo-diagram.9a3dc4a2.js → eo-diagram.a0684049.js} +2 -2
- package/dist/chunks/{eo-diagram.9a3dc4a2.js.map → eo-diagram.a0684049.js.map} +1 -1
- package/dist/chunks/{main.61f48de6.js → main.2d3b0cb6.js} +2 -2
- package/dist/chunks/{main.61f48de6.js.map → main.2d3b0cb6.js.map} +1 -1
- package/dist/{index.284e7228.js → index.1993f974.js} +2 -2
- package/dist/{index.284e7228.js.map → index.1993f974.js.map} +1 -1
- package/dist/types.json +128 -2
- package/dist-types/diagram/interfaces.d.ts +8 -1
- package/dist-types/diagram/processors/extractPartialRectTuple.d.ts +2 -0
- package/dist-types/diagram/processors/extractPartialRectTuple.spec.d.ts +1 -0
- package/dist-types/diagram/processors/getRenderedDiagram.d.ts +2 -2
- package/package.json +2 -2
- package/dist/chunks/2624.011771ea.js.map +0 -1
package/dist/bricks.json
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_next_bricks_diagram=self.webpackChunk_next_bricks_diagram||[]).push([[2624],{2260:(e,t,n)=>{n.d(t,{K:()=>a});var r=n(8657),o=n.n(r);function a(e){var{clipPath:t,clipPathPrefix:n,renderedLineLabels:r}=e,{x0:a,y0:i,w:l,h:c,id:d}=t,s=r.find((e=>e.id===d));if(!s)return null;var{left:u,top:f,right:v,bottom:h}=s.lineRect;return o().createElement("clipPath",{key:d,id:"".concat(n).concat(d)},o().createElement("polygon",{points:["".concat(a,",").concat(i+c),"".concat(a+l,",").concat(i+c),"".concat(a+l,",").concat(i),"".concat(a,",").concat(i),"".concat(a,",").concat(f),"".concat(v,",").concat(f),"".concat(v,",").concat(h),"".concat(u,",").concat(h),"".concat(u,",").concat(f),"".concat(a,",").concat(f)].join(" ")}))}},7587:(e,t,n)=>{n.d(t,{f:()=>c});var r=n(8657),o=n.n(r),a=n(2779),i=n.n(a),l=n(9575);function c(e){var{connectLineState:t,connectLineTo:n,markerPrefix:r}=e;return o().createElement("svg",{width:"100%",height:"100%",className:i()("connect-line",{connecting:!!t})},o().createElement("defs",null,o().createElement(l.C,{id:"".concat(r,"connect-line"),strokeColor:null==t?void 0:t.options.strokeColor})),o().createElement("path",{d:t?"M".concat(t.from.join(" "),"L").concat(n.join(" ")):"",fill:"none",stroke:null==t?void 0:t.options.strokeColor,strokeWidth:null==t?void 0:t.options.strokeWidth,markerEnd:null!=t&&t.options.arrow?"url(#".concat(r,"connect-line)"):void 0}))}},6462:(e,t,n)=>{n.d(t,{y:()=>l});var r=n(8657),o=n.n(r),a=n(2779),i=n.n(a);function l(e){var{line:{line:t,d:n,markerIndex:r,edge:a},linePaths:l,clipPathList:c,markerPrefix:d,clipPathPrefix:s,onLineDoubleClick:u}=e;return o().createElement("g",{className:i()("line",{interactable:t.interactable}),onDoubleClick:t.interactable?e=>(e.preventDefault(),e.stopPropagation(),null==u?void 0:u({id:t.$id,edge:a})):void 0,style:{cursor:t.cursor}},o().createElement("path",{ref:e=>l.set(t.$id,e),stroke:t.strokeColor,strokeWidth:t.strokeWidth,d:n,fill:"none",markerEnd:void 0===r?void 0:"url(#".concat(d).concat(r,")"),clipPath:c.some((e=>e.id===t.$id))?"url(#".concat(s).concat(t.$id,")"):void 0}),t.interactable&&o().createElement("path",{d:n,fill:"none",stroke:"transparent",strokeWidth:t.interactStrokeWidth}))}},7853:(e,t,n)=>{n.d(t,{L8:()=>c});var r=n(3028),o=n(8657),a=n.n(o),i=n(9494),l=n(9464);function c(e){var{labels:t,onRendered:n}=e,[r,i]=(0,o.useState)(!1),[l,c]=(0,o.useState)([]),u=(0,o.useMemo)((()=>new Map),[]),f=(0,o.useCallback)(((e,t)=>{t&&u.set(e,t),c((t=>t.includes(e)?t:t.concat(e)))}),[u]),v=(0,o.useCallback)((e=>{c((t=>{var n=t.indexOf(e);return-1===n?t:t.slice(0,n).concat(t.slice(n+1))})),u.delete(e)}),[u]);return(0,o.useEffect)((()=>{i(!(null!=t&&t.some((e=>!l.includes(e.id)))))}),[t,l]),(0,o.useEffect)((()=>{null==n||n(r?u:null)}),[u,r]),a().createElement(a().Fragment,null,null==t?void 0:t.map((e=>{var{text:t,label:n,position:r,id:o,edge:i}=e;return n?a().createElement("div",{key:o,className:"line-label",style:{left:r[0],top:r[1]}},a().createElement(s,{id:o,edge:i,label:n,onRendered:f,onUnmount:v})):a().createElement(d,{key:o,id:o,text:t,position:r,onRendered:f})})))}function d(e){var{id:t,text:n,position:i,onRendered:l}=e,c=(0,o.useCallback)((e=>{null==l||l(t,e)}),[t,l]);return a().createElement("div",{className:"line-label",ref:c,style:(0,r.Z)({left:i[0],top:i[1]},n.style)},n.content)}function s(e){var{id:t,edge:n,label:r,onRendered:c,onUnmount:d}=e,s=(0,o.useMemo)((()=>(0,l.checkIfByTransform)(r,{edge:n})?r.useBrick:null),[n,r]),u=(0,o.useMemo)((()=>({edge:n})),[n]);(0,o.useEffect)((()=>{s||setTimeout((()=>{null==c||c(t,null)}))}),[t,c,s]),(0,o.useEffect)((()=>()=>{null==d||d(t)}),[]);var f=(0,o.useCallback)((e=>{e&&setTimeout((()=>{null==c||c(t,e.parentElement)}))}),[t,c]),v=(0,o.useCallback)((()=>{setTimeout((()=>{null==c||c(t,null)}))}),[t,c]);return s?a().createElement(i.ReactUseBrick,{refCallback:f,ignoredCallback:v,useBrick:s,data:u}):null}},9575:(e,t,n)=>{n.d(t,{C:()=>a});var r=n(8657),o=n.n(r);function a(e){var{id:t,strokeColor:n}=e;return o().createElement("marker",{id:t,viewBox:"0 0 6 6",refX:3,refY:3,markerWidth:6,markerHeight:6,orient:"auto"},o().createElement("path",{d:"M 0.5 0.5 L 5.5 3 L 0.5 5.5 z",stroke:n,strokeWidth:1,fill:n}))}},2370:(e,t,n)=>{n.d(t,{n:()=>l});var r=n(8657),o=n.n(r),a=n(9494),i=n(9464);function l(e){var{nodes:t,nodeBricks:n,onRendered:a}=e,[i,l]=(0,r.useState)(!1),[d,s]=(0,r.useState)([]),u=(0,r.useMemo)((()=>new Map),[]),f=(0,r.useCallback)(((e,t)=>{t&&u.set(e,t),s((t=>t.includes(e)?t:t.concat(e)))}),[u]),v=(0,r.useCallback)((e=>{s((t=>{var n=t.indexOf(e);return-1===n?t:t.slice(0,n).concat(t.slice(n+1))})),u.delete(e)}),[u]);return(0,r.useEffect)((()=>{l(!(null!=t&&t.some((e=>!d.includes(e.id)))))}),[t,d]),(0,r.useEffect)((()=>{null==a||a(i?u:null)}),[u,i]),o().createElement(o().Fragment,null,null==t?void 0:t.map((e=>o().createElement("div",{key:e.id,className:"node"},o().createElement(c,{nodeBricks:n,node:e,onRendered:f,onUnmount:v})))))}function c(e){var{node:t,nodeBricks:n,onRendered:l,onUnmount:c}=e,d=(0,r.useMemo)((()=>{var e;return null===(e=function(e,t){return null==t?void 0:t.find((t=>t.nodeType?[].concat(t.nodeType).includes(e.type):(0,i.checkIfByTransform)(t,{node:e})))}(t,n))||void 0===e?void 0:e.useBrick}),[t,n]),s=(0,r.useMemo)((()=>({node:t})),[t]);(0,r.useEffect)((()=>{d||setTimeout((()=>{null==l||l(t.id,null)}))}),[t.id,l,d]),(0,r.useEffect)((()=>()=>{null==c||c(t.id)}),[]);var u=(0,r.useCallback)((e=>{e&&setTimeout((()=>{null==l||l(t.id,e)}))}),[t.id,l]),f=(0,r.useCallback)((()=>{setTimeout((()=>{null==l||l(t.id,null)}))}),[t.id,l]);return d?o().createElement(a.ReactUseBrick,{refCallback:u,ignoredCallback:f,useBrick:d,data:s}):null}},5318:(e,t,n)=>{n.d(t,{IC:()=>r,_w:()=>o,no:()=>a,wl:()=>i});var r="var(--palette-gray-5)",o=1,a="curveBasis",i=20},6365:(e,t,n)=>{function r(e,t){var[n,r]=t,o=1/0,a=1/0,i=-1/0,l=-1/0;for(var c of e){var d=c.width/2,s=c.height/2,u=c.x-d,f=c.x+d,v=c.y-s,h=c.y+s;u<o&&(o=u),f>i&&(i=f),v<a&&(a=v),h>l&&(l=h)}return[(n-(i-o))/2-a,(r-(l-a))/2-o]}n.d(t,{i:()=>r})},1251:(e,t,n)=>{function r(e,t){return e.map((e=>{var{id:n}=e,r=null==t?void 0:t.get(n);if(r){var{offsetWidth:o,offsetHeight:a}=r;if(0!==o&&0!==a)return{x0:r.offsetLeft-o/2-3,y0:r.offsetTop-a/2-3,w:o+6,h:a+6,id:n}}})).filter(Boolean)}n.d(t,{i:()=>r})},5173:(e,t,n)=>{n.d(t,{T:()=>a});var r=n(908),o=n.n(r);function a(e,t,n,r){var a=new(o().graphlib.Graph);for(var i of(a.setGraph(r),a.setDefaultEdgeLabel((function(){return{}})),null!=t?t:[])){var l=null==e?void 0:e.node(i.id);a.setNode(i.id,(null==l?void 0:l.data)===i?l:{id:i.id,data:i})}for(var c of null!=n?n:[])a.setEdge(c.source,c.target,{data:c});return a}},8696:(e,t,n)=>{n.d(t,{E:()=>a});var r=n(908),o=n.n(r);function a(e){var{graph:t,nodesRefRepository:n,nodePadding:r}=e;if(!t||!n||0===t.nodeCount())return null;for(var a of t.nodes()){var i,l,c=t.node(a);if(c){var d=n.get(a);c.width=(null!==(i=null==d?void 0:d.offsetWidth)&&void 0!==i?i:10)+2*r,c.height=(null!==(l=null==d?void 0:d.offsetHeight)&&void 0!==l?l:10)+2*r}else console.error("Diagram node not found: %s",a)}o().layout(t);var s=[];for(var u of t.nodes()){var f,v=t.node(u);if(v){s.push(v);var h=v.x-v.width/2+r,m=v.y-v.height/2+r,p=null===(f=n.get(u))||void 0===f?void 0:f.parentElement;p&&(p.style.left="".concat(h,"px"),p.style.top="".concat(m,"px"),p.style.visibility="visible")}}return{nodes:s,edges:t.edges().map((e=>t.edge(e)))}}},4126:(e,t,n)=>{function r(e,t,n){return 0===e.length&&0===t.length?e:t.map((e=>{var{line:{text:t,label:r,$id:o},edge:a}=e,i=n.get(o);if((t||r)&&i&&i.getAttribute("d")){var{x:l,y:c,width:d,height:s}=i.getBBox(),u=1e3,f=l-u,v=c-u,h=l+d+u,m=c+s+u,p=i.getPointAtLength(i.getTotalLength()/2);return{text:t,label:r,edge:a,position:[p.x,p.y],lineRect:{left:f,top:v,right:h,bottom:m},id:o}}})).filter(Boolean)}n.d(t,{K:()=>r})},5731:(e,t,n)=>{n.d(t,{b:()=>p});var r=n(3028),o=n(2159),a=n(1211),i=n(9464),l=n(5318),c=n(3698),d=n(1479),s=n(6481),u=n(9389),f=n(8282),v=n(5004);function h(e,t,n){if(!Array.isArray(e))return"";var r;switch(n){case"curveBasis":r=c.ZP;break;case"curveBumpX":r=d.sj;break;case"curveBumpY":r=d.BW;break;case"curveMonotoneX":r=s.Z;break;case"curveMonotoneY":r=s.s;break;case"curveNatural":r=u.Z;break;default:r=f.Z}var o=0,a=0;if(t){var{x:i,y:l}=e[e.length-2],{x:h,y:m}=e[e.length-1],p=t/Math.sqrt(Math.pow(h-i,2)+Math.pow(m-l,2));o=(i-h)*p,a=(l-m)*p}var g=e;return(0,v.Z)().x(((t,n)=>t.x-(n===e.length-1?o:0))).y(((t,n)=>t.y-(n===e.length-1?a:0))).curve(r)(g)}var m=["label"];function p(e,t){var n=[],c=[],d=function(e){var d,s=null!==(d=null==t?void 0:t.find((t=>{return n=e,!!(r=t)&&(r.edgeType?[].concat(r.edgeType).includes(n.type):(0,i.checkIfByTransform)(r,{edge:n}));var n,r})))&&void 0!==d?d:{},{label:f}=s,v=(0,o.Z)(s,m),p=i.__secret_internals.legacyDoTransform({edge:e},v);if(!1===(null==p?void 0:p.draw))return 1;var g,k=(0,r.Z)((0,r.Z)({strokeColor:l.IC,strokeWidth:l._w,curveType:l.no,interactStrokeWidth:l.wl},p),{},{label:f,$id:(0,a.uniqueId)("line-")});if(k.arrow){var b={strokeColor:k.strokeColor};-1===(g=(0,a.findIndex)(c,b))&&(g=c.push(b)-1)}var y=h(u,k.arrow?-5:0,k.curveType);n.push({line:k,d:y,markerIndex:g,edge:e})};for(var{data:s,points:u}of e)d(s);return{renderedLines:n,markers:c}}},4510:(e,t,n)=>{n.d(t,{k:()=>i});var r=n(3028),o=n(9464),a=n(5318);function i(e,t){var{nodes:n,nodesRefRepository:i,nodesConnect:l,setConnectLineState:c,setConnectLineTo:d,onSwitchActiveNode:s,onNodesConnect:u}=t;function f(e){if(i){var t,r=function(t){if(e(a))return{v:null==n?void 0:n.find((e=>e.id===t))}};for(var[o,a]of i)if(t=r(o))return t.v}}if(l){var v=f((t=>t.contains(e.target)));if(v){if(l.sourceType){if(![].concat(l.sourceType).includes(v.type))return}else if(!(0,o.checkIfByTransform)(l,{source:v}))return;c({from:[e.clientX,e.clientY],options:(0,r.Z)({strokeColor:a.IC,strokeWidth:a._w},o.__secret_internals.legacyDoTransform({source:v},l))}),d([e.clientX,e.clientY]),null==s||s(v.id);var h=e=>{d([e.clientX,e.clientY])},m=e=>{document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",m),c(null);var t=e.composedPath(),n=f((e=>t.includes(e)));n&&v!==n&&(null==u||u({source:v,target:n}))};document.addEventListener("mousemove",h),document.addEventListener("mouseup",m)}}}},5702:(e,t,n)=>{n.d(t,{p:()=>o});var r=n(1211);function o(e,t){var{renderedNodes:n,renderedEdges:r,activeNodeId:o}=t,l=o?n.find((e=>e.id===o)):void 0;if(l){var c,d,s;switch(e.key||e.keyCode||e.which){case"ArrowLeft":case 37:d=a(n,l,-1),c="switch-active-node";break;case"ArrowUp":case 38:d=i(n,r,l,-1),c="switch-active-node";break;case"ArrowRight":case 39:d=a(n,l,1),c="switch-active-node";break;case"ArrowDown":case 40:d=i(n,r,l,1),c="switch-active-node";break;case"Backspace":case 8:case"Delete":case 46:c="delete-node",d=l}if(c)return e.preventDefault(),e.stopPropagation(),{action:c,node:null===(s=d)||void 0===s?void 0:s.data}}}function a(e,t,n){var o,a=e.filter((e=>e!==t&&(o=(e.x-t.x)*n)>0&&o>Math.abs(t.y-e.y)));return(0,r.minBy)(a,(e=>(t.y-e.y)**2+(t.x-e.x)**2))}function i(e,t,n,o){var a=1===o?"source":"target",i=1===o?"target":"source",l=t.filter((e=>{var{data:t}=e;return t[a]===n.id&&t[i]!==n.id})).map((t=>{var{data:n}=t;return e.find((e=>e.id===n[i]))})).filter((e=>e&&(e.y-n.y)*o>0));return(0,r.minBy)(l,(e=>(n.y-e.y)**2+(n.x-e.x)**2))}},6436:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(9601),o=n.n(r),a=n(2609),i=n.n(a)()(o());i.push([e.id,":host{display:block;width:100%;height:100%;overflow:hidden}:host([hidden]){display:none}*{box-sizing:border-box}.diagram{width:100%;height:100%;position:relative;opacity:0}.diagram:focus{outline:none}.ready{opacity:1}.dragger,\n.lines,\n.line-labels,\n.nodes{position:absolute;top:0;left:0}.node{position:absolute;visibility:hidden}.dragger{width:100%;height:100%;cursor:-webkit-grab;cursor:grab}.grabbing{cursor:-webkit-grabbing;cursor:grabbing}.line-label{position:absolute;transform:translate(-50%,-50%);white-space:pre-line;width:-webkit-max-content;width:-moz-max-content;width:max-content;text-align:center}.lines{pointer-events:none}.line.interactable{pointer-events:auto}.connect-line{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none}.connect-line:not(.connecting){display:none}",""]);const l=i.toString()}}]);
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
"use strict";(self.webpackChunk_next_bricks_diagram=self.webpackChunk_next_bricks_diagram||[]).push([[6457],{2260:(e,t,n)=>{n.d(t,{K:()=>a});var r=n(8657),o=n.n(r);function a(e){var{clipPath:t,clipPathPrefix:n,renderedLineLabels:r}=e,{x0:a,y0:i,w:l,h:c,id:d}=t,s=r.find((e=>e.id===d));if(!s)return null;var{left:u,top:f,right:v,bottom:h}=s.lineRect;return o().createElement("clipPath",{key:d,id:"".concat(n).concat(d)},o().createElement("polygon",{points:["".concat(a,",").concat(i+c),"".concat(a+l,",").concat(i+c),"".concat(a+l,",").concat(i),"".concat(a,",").concat(i),"".concat(a,",").concat(f),"".concat(v,",").concat(f),"".concat(v,",").concat(h),"".concat(u,",").concat(h),"".concat(u,",").concat(f),"".concat(a,",").concat(f)].join(" ")}))}},7587:(e,t,n)=>{n.d(t,{f:()=>c});var r=n(8657),o=n.n(r),a=n(2779),i=n.n(a),l=n(9575);function c(e){var{connectLineState:t,connectLineTo:n,markerPrefix:r}=e;return o().createElement("svg",{width:"100%",height:"100%",className:i()("connect-line",{connecting:!!t})},o().createElement("defs",null,o().createElement(l.C,{id:"".concat(r,"connect-line"),strokeColor:null==t?void 0:t.options.strokeColor})),o().createElement("path",{d:t?"M".concat(t.from.join(" "),"L").concat(n.join(" ")):"",fill:"none",stroke:null==t?void 0:t.options.strokeColor,strokeWidth:null==t?void 0:t.options.strokeWidth,markerEnd:null!=t&&t.options.arrow?"url(#".concat(r,"connect-line)"):void 0}))}},6462:(e,t,n)=>{n.d(t,{y:()=>l});var r=n(8657),o=n.n(r),a=n(2779),i=n.n(a);function l(e){var{line:{line:t,d:n,markerIndex:r,edge:a},linePaths:l,clipPathList:c,markerPrefix:d,clipPathPrefix:s,onLineDoubleClick:u}=e;return o().createElement("g",{className:i()("line",{interactable:t.interactable}),onDoubleClick:t.interactable?e=>(e.preventDefault(),e.stopPropagation(),null==u?void 0:u({id:t.$id,edge:a})):void 0,style:{cursor:t.cursor}},o().createElement("path",{ref:e=>l.set(t.$id,e),stroke:t.strokeColor,strokeWidth:t.strokeWidth,d:n,fill:"none",markerEnd:void 0===r?void 0:"url(#".concat(d).concat(r,")"),clipPath:c.some((e=>e.id===t.$id))?"url(#".concat(s).concat(t.$id,")"):void 0}),t.interactable&&o().createElement("path",{d:n,fill:"none",stroke:"transparent",strokeWidth:t.interactStrokeWidth}))}},7853:(e,t,n)=>{n.d(t,{L8:()=>c});var r=n(3028),o=n(8657),a=n.n(o),i=n(9494),l=n(9464);function c(e){var{labels:t,onRendered:n}=e,[r,i]=(0,o.useState)(!1),[l,c]=(0,o.useState)([]),u=(0,o.useMemo)((()=>new Map),[]),f=(0,o.useCallback)(((e,t)=>{t&&u.set(e,t),c((t=>t.includes(e)?t:t.concat(e)))}),[u]),v=(0,o.useCallback)((e=>{c((t=>{var n=t.indexOf(e);return-1===n?t:t.slice(0,n).concat(t.slice(n+1))})),u.delete(e)}),[u]);return(0,o.useEffect)((()=>{i(!(null!=t&&t.some((e=>!l.includes(e.id)))))}),[t,l]),(0,o.useEffect)((()=>{null==n||n(r?u:null)}),[u,r]),a().createElement(a().Fragment,null,null==t?void 0:t.map((e=>{var{text:t,label:n,position:r,id:o,edge:i}=e;return n?a().createElement("div",{key:o,className:"line-label",style:{left:r[0],top:r[1]}},a().createElement(s,{id:o,edge:i,label:n,onRendered:f,onUnmount:v})):a().createElement(d,{key:o,id:o,text:t,position:r,onRendered:f})})))}function d(e){var{id:t,text:n,position:i,onRendered:l}=e,c=(0,o.useCallback)((e=>{null==l||l(t,e)}),[t,l]);return a().createElement("div",{className:"line-label",ref:c,style:(0,r.Z)({left:i[0],top:i[1]},n.style)},n.content)}function s(e){var{id:t,edge:n,label:r,onRendered:c,onUnmount:d}=e,s=(0,o.useMemo)((()=>(0,l.checkIfByTransform)(r,{edge:n})?r.useBrick:null),[n,r]),u=(0,o.useMemo)((()=>({edge:n})),[n]);(0,o.useEffect)((()=>{s||setTimeout((()=>{null==c||c(t,null)}))}),[t,c,s]),(0,o.useEffect)((()=>()=>{null==d||d(t)}),[]);var f=(0,o.useCallback)((e=>{e&&setTimeout((()=>{null==c||c(t,e.parentElement)}))}),[t,c]),v=(0,o.useCallback)((()=>{setTimeout((()=>{null==c||c(t,null)}))}),[t,c]);return s?a().createElement(i.ReactUseBrick,{refCallback:f,ignoredCallback:v,useBrick:s,data:u}):null}},9575:(e,t,n)=>{n.d(t,{C:()=>a});var r=n(8657),o=n.n(r);function a(e){var{id:t,strokeColor:n}=e;return o().createElement("marker",{id:t,viewBox:"0 0 6 6",refX:3,refY:3,markerWidth:6,markerHeight:6,orient:"auto"},o().createElement("path",{d:"M 0.5 0.5 L 5.5 3 L 0.5 5.5 z",stroke:n,strokeWidth:1,fill:n}))}},2370:(e,t,n)=>{n.d(t,{n:()=>l});var r=n(8657),o=n.n(r),a=n(9494),i=n(9464);function l(e){var{nodes:t,nodeBricks:n,onRendered:a}=e,[i,l]=(0,r.useState)(!1),[d,s]=(0,r.useState)([]),u=(0,r.useMemo)((()=>new Map),[]),f=(0,r.useCallback)(((e,t)=>{t&&u.set(e,t),s((t=>t.includes(e)?t:t.concat(e)))}),[u]),v=(0,r.useCallback)((e=>{s((t=>{var n=t.indexOf(e);return-1===n?t:t.slice(0,n).concat(t.slice(n+1))})),u.delete(e)}),[u]);return(0,r.useEffect)((()=>{l(!(null!=t&&t.some((e=>!d.includes(e.id)))))}),[t,d]),(0,r.useEffect)((()=>{null==a||a(i?u:null)}),[u,i]),o().createElement(o().Fragment,null,null==t?void 0:t.map((e=>o().createElement("div",{key:e.id,className:"node"},o().createElement(c,{nodeBricks:n,node:e,onRendered:f,onUnmount:v})))))}function c(e){var{node:t,nodeBricks:n,onRendered:l,onUnmount:c}=e,d=(0,r.useMemo)((()=>{var e;return null===(e=function(e,t){return null==t?void 0:t.find((t=>t.nodeType?[].concat(t.nodeType).includes(e.type):(0,i.checkIfByTransform)(t,{node:e})))}(t,n))||void 0===e?void 0:e.useBrick}),[t,n]),s=(0,r.useMemo)((()=>({node:t})),[t]);(0,r.useEffect)((()=>{d||setTimeout((()=>{null==l||l(t.id,null)}))}),[t.id,l,d]),(0,r.useEffect)((()=>()=>{null==c||c(t.id)}),[]);var u=(0,r.useCallback)((e=>{e&&setTimeout((()=>{null==l||l(t.id,e)}))}),[t.id,l]),f=(0,r.useCallback)((()=>{setTimeout((()=>{null==l||l(t.id,null)}))}),[t.id,l]);return d?o().createElement(a.ReactUseBrick,{refCallback:u,ignoredCallback:f,useBrick:d,data:s}):null}},5318:(e,t,n)=>{n.d(t,{IC:()=>r,_w:()=>o,no:()=>a,wl:()=>i});var r="var(--palette-gray-5)",o=1,a="curveBasis",i=20},6365:(e,t,n)=>{function r(e,t){var[n,r]=t,o=1/0,a=1/0,i=-1/0,l=-1/0;for(var c of e){var d=c.width/2,s=c.height/2,u=c.x-d,f=c.x+d,v=c.y-s,h=c.y+s;u<o&&(o=u),f>i&&(i=f),v<a&&(a=v),h>l&&(l=h)}return[(n-(i-o))/2-a,(r-(l-a))/2-o]}n.d(t,{i:()=>r})},1251:(e,t,n)=>{function r(e,t){return e.map((e=>{var{id:n}=e,r=null==t?void 0:t.get(n);if(r){var{offsetWidth:o,offsetHeight:a}=r;if(0!==o&&0!==a)return{x0:r.offsetLeft-o/2-3,y0:r.offsetTop-a/2-3,w:o+6,h:a+6,id:n}}})).filter(Boolean)}n.d(t,{i:()=>r})},5173:(e,t,n)=>{n.d(t,{T:()=>a});var r=n(908),o=n.n(r);function a(e,t,n,r){var a=new(o().graphlib.Graph);for(var i of(a.setGraph(r),a.setDefaultEdgeLabel((function(){return{}})),null!=t?t:[])){var l=null==e?void 0:e.node(i.id);a.setNode(i.id,(null==l?void 0:l.data)===i?l:{id:i.id,data:i})}for(var c of null!=n?n:[])a.setEdge(c.source,c.target,{data:c});return a}},7201:(e,t,n)=>{n.d(t,{E:()=>a});var r=n(908),o=n.n(r);function a(e){var{graph:t,nodesRefRepository:n,nodePadding:r}=e;if(!t||!n||0===t.nodeCount())return null;var a=function(e){if(Array.isArray(e)){var t=e[0],n=e.length>1?e[1]:t;return[t,n,e.length>2?e[2]:t,e.length>3?e[3]:n]}return new Array(4).fill(e)}(r);for(var i of t.nodes()){var l,c,d=t.node(i);if(d){var s=n.get(i);d.width=(null!==(l=null==s?void 0:s.offsetWidth)&&void 0!==l?l:10)+a[1]+a[3],d.height=(null!==(c=null==s?void 0:s.offsetHeight)&&void 0!==c?c:10)+a[0]+a[2]}else console.error("Diagram node not found: %s",i)}o().layout(t);var u=[];for(var f of t.nodes()){var v,h=t.node(f);if(h){u.push(h);var m=h.x-h.width/2+a[3],p=h.y-h.height/2+a[0],g=null===(v=n.get(f))||void 0===v?void 0:v.parentElement;g&&(g.style.left="".concat(m,"px"),g.style.top="".concat(p,"px"),g.style.visibility="visible")}}return{nodes:u,edges:t.edges().map((e=>t.edge(e)))}}},4126:(e,t,n)=>{function r(e,t,n){return 0===e.length&&0===t.length?e:t.map((e=>{var{line:{text:t,label:r,$id:o},edge:a}=e,i=n.get(o);if((t||r)&&i&&i.getAttribute("d")){var{x:l,y:c,width:d,height:s}=i.getBBox(),u=1e3,f=l-u,v=c-u,h=l+d+u,m=c+s+u,p=i.getPointAtLength(i.getTotalLength()/2);return{text:t,label:r,edge:a,position:[p.x,p.y],lineRect:{left:f,top:v,right:h,bottom:m},id:o}}})).filter(Boolean)}n.d(t,{K:()=>r})},5731:(e,t,n)=>{n.d(t,{b:()=>p});var r=n(3028),o=n(2159),a=n(1211),i=n(9464),l=n(5318),c=n(3698),d=n(1479),s=n(6481),u=n(9389),f=n(8282),v=n(5004);function h(e,t,n){if(!Array.isArray(e))return"";var r;switch(n){case"curveBasis":r=c.ZP;break;case"curveBumpX":r=d.sj;break;case"curveBumpY":r=d.BW;break;case"curveMonotoneX":r=s.Z;break;case"curveMonotoneY":r=s.s;break;case"curveNatural":r=u.Z;break;default:r=f.Z}var o=0,a=0;if(t){var{x:i,y:l}=e[e.length-2],{x:h,y:m}=e[e.length-1],p=t/Math.sqrt(Math.pow(h-i,2)+Math.pow(m-l,2));o=(i-h)*p,a=(l-m)*p}var g=e;return(0,v.Z)().x(((t,n)=>t.x-(n===e.length-1?o:0))).y(((t,n)=>t.y-(n===e.length-1?a:0))).curve(r)(g)}var m=["label"];function p(e,t){var n=[],c=[],d=function(e){var d,s=null!==(d=null==t?void 0:t.find((t=>{return n=e,!!(r=t)&&(r.edgeType?[].concat(r.edgeType).includes(n.type):(0,i.checkIfByTransform)(r,{edge:n}));var n,r})))&&void 0!==d?d:{},{label:f}=s,v=(0,o.Z)(s,m),p=i.__secret_internals.legacyDoTransform({edge:e},v);if(!1===(null==p?void 0:p.draw))return 1;var g,k=(0,r.Z)((0,r.Z)({strokeColor:l.IC,strokeWidth:l._w,curveType:l.no,interactStrokeWidth:l.wl},p),{},{label:f,$id:(0,a.uniqueId)("line-")});if(k.arrow){var b={strokeColor:k.strokeColor};-1===(g=(0,a.findIndex)(c,b))&&(g=c.push(b)-1)}var y=h(u,k.arrow?-5:0,k.curveType);n.push({line:k,d:y,markerIndex:g,edge:e})};for(var{data:s,points:u}of e)d(s);return{renderedLines:n,markers:c}}},4510:(e,t,n)=>{n.d(t,{k:()=>i});var r=n(3028),o=n(9464),a=n(5318);function i(e,t){var{nodes:n,nodesRefRepository:i,nodesConnect:l,setConnectLineState:c,setConnectLineTo:d,onSwitchActiveNode:s,onNodesConnect:u}=t;function f(e){if(i){var t,r=function(t){if(e(a))return{v:null==n?void 0:n.find((e=>e.id===t))}};for(var[o,a]of i)if(t=r(o))return t.v}}if(l){var v=f((t=>t.contains(e.target)));if(v){if(l.sourceType){if(![].concat(l.sourceType).includes(v.type))return}else if(!(0,o.checkIfByTransform)(l,{source:v}))return;c({from:[e.clientX,e.clientY],options:(0,r.Z)({strokeColor:a.IC,strokeWidth:a._w},o.__secret_internals.legacyDoTransform({source:v},l))}),d([e.clientX,e.clientY]),null==s||s(v.id);var h=e=>{d([e.clientX,e.clientY])},m=e=>{document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",m),c(null);var t=e.composedPath(),n=f((e=>t.includes(e)));n&&v!==n&&(null==u||u({source:v,target:n}))};document.addEventListener("mousemove",h),document.addEventListener("mouseup",m)}}}},5702:(e,t,n)=>{n.d(t,{p:()=>o});var r=n(1211);function o(e,t){var{renderedNodes:n,renderedEdges:r,activeNodeId:o}=t,l=o?n.find((e=>e.id===o)):void 0;if(l){var c,d,s;switch(e.key||e.keyCode||e.which){case"ArrowLeft":case 37:d=a(n,l,-1),c="switch-active-node";break;case"ArrowUp":case 38:d=i(n,r,l,-1),c="switch-active-node";break;case"ArrowRight":case 39:d=a(n,l,1),c="switch-active-node";break;case"ArrowDown":case 40:d=i(n,r,l,1),c="switch-active-node";break;case"Backspace":case 8:case"Delete":case 46:c="delete-node",d=l}if(c)return e.preventDefault(),e.stopPropagation(),{action:c,node:null===(s=d)||void 0===s?void 0:s.data}}}function a(e,t,n){var o,a=e.filter((e=>e!==t&&(o=(e.x-t.x)*n)>0&&o>Math.abs(t.y-e.y)));return(0,r.minBy)(a,(e=>(t.y-e.y)**2+(t.x-e.x)**2))}function i(e,t,n,o){var a=1===o?"source":"target",i=1===o?"target":"source",l=t.filter((e=>{var{data:t}=e;return t[a]===n.id&&t[i]!==n.id})).map((t=>{var{data:n}=t;return e.find((e=>e.id===n[i]))})).filter((e=>e&&(e.y-n.y)*o>0));return(0,r.minBy)(l,(e=>(n.y-e.y)**2+(n.x-e.x)**2))}},6436:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(9601),o=n.n(r),a=n(2609),i=n.n(a)()(o());i.push([e.id,":host{display:block;width:100%;height:100%;overflow:hidden}:host([hidden]){display:none}*{box-sizing:border-box}.diagram{width:100%;height:100%;position:relative;opacity:0}.diagram:focus{outline:none}.ready{opacity:1}.dragger,\n.lines,\n.line-labels,\n.nodes{position:absolute;top:0;left:0}.node{position:absolute;visibility:hidden}.dragger{width:100%;height:100%;cursor:-webkit-grab;cursor:grab}.grabbing{cursor:-webkit-grabbing;cursor:grabbing}.line-label{position:absolute;transform:translate(-50%,-50%);white-space:pre-line;width:-webkit-max-content;width:-moz-max-content;width:max-content;text-align:center}.lines{pointer-events:none}.line.interactable{pointer-events:auto}.connect-line{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none}.connect-line:not(.connecting){display:none}",""]);const l=i.toString()}}]);
|
|
2
|
+
//# sourceMappingURL=6457.0e22ff80.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunks/6457.0e22ff80.js","mappings":"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","sources":["webpack:///./src/diagram/ClipPathComponent.tsx","webpack:///./src/diagram/ConnectLineComponent.tsx","webpack:///./src/diagram/LineComponent.tsx","webpack:///./src/diagram/LineLabelComponent.tsx","webpack:///./src/diagram/MarkerComponent.tsx","webpack:///./src/diagram/NodeComponent.tsx","webpack:///./src/diagram/processors/findNodeBrick.ts","webpack:///./src/diagram/constants.ts","webpack:///./src/diagram/processors/getCenterOffsets.ts","webpack:///./src/diagram/processors/getClipPathList.ts","webpack:///./src/diagram/processors/getDagreGraph.ts","webpack:///./src/diagram/processors/getRenderedDiagram.ts","webpack:///./src/diagram/processors/extractPartialRectTuple.ts","webpack:///./src/diagram/processors/getRenderedLineLabels.ts","webpack:///./src/diagram/lines/curveLine.ts","webpack:///./src/diagram/processors/getRenderedLinesAndMarkers.ts","webpack:///./src/diagram/processors/matchEdgeByFilter.ts","webpack:///./src/diagram/processors/handleDiagramMouseDown.ts","webpack:///./src/diagram/processors/handleKeyboard.ts","webpack:///./src/diagram/styles.shadow.css"],"sourcesContent":["import React from \"react\";\nimport type { LineTextClipPath, RenderedLineLabel } from \"./interfaces\";\n\nexport interface ClipPathComponentProps {\n clipPathPrefix: string;\n clipPath: LineTextClipPath;\n renderedLineLabels: RenderedLineLabel[];\n}\n\nexport function ClipPathComponent({\n clipPath,\n clipPathPrefix,\n renderedLineLabels,\n}: ClipPathComponentProps): JSX.Element | null {\n const { x0, y0, w, h, id } = clipPath;\n const lineText = renderedLineLabels.find((item) => item.id === id);\n if (!lineText) {\n return null;\n }\n const { left, top, right, bottom } = lineText.lineRect;\n // https://css-tricks.com/cutting-inner-part-element-using-clip-path/\n return (\n <clipPath key={id} id={`${clipPathPrefix}${id}`}>\n <polygon\n points={[\n `${x0},${y0 + h}`,\n `${x0 + w},${y0 + h}`,\n `${x0 + w},${y0}`,\n `${x0},${y0}`,\n `${x0},${top}`,\n `${right},${top}`,\n `${right},${bottom}`,\n `${left},${bottom}`,\n `${left},${top}`,\n `${x0},${top}`,\n ].join(\" \")}\n />\n </clipPath>\n );\n}\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport type { ConnectLineState, PositionTuple } from \"./interfaces\";\nimport { MarkerComponent } from \"./MarkerComponent\";\n\nexport interface ConnectLineComponentProps {\n connectLineState: ConnectLineState | null;\n connectLineTo: PositionTuple;\n markerPrefix: string;\n}\n\nexport function ConnectLineComponent({\n connectLineState,\n connectLineTo,\n markerPrefix,\n}: ConnectLineComponentProps): JSX.Element {\n return (\n <svg\n width=\"100%\"\n height=\"100%\"\n className={classNames(\"connect-line\", { connecting: !!connectLineState })}\n >\n <defs>\n <MarkerComponent\n id={`${markerPrefix}connect-line`}\n strokeColor={connectLineState?.options.strokeColor}\n />\n </defs>\n <path\n d={\n connectLineState\n ? `M${connectLineState.from.join(\" \")}L${connectLineTo.join(\" \")}`\n : \"\"\n }\n fill=\"none\"\n stroke={connectLineState?.options.strokeColor}\n strokeWidth={connectLineState?.options.strokeWidth}\n markerEnd={\n connectLineState?.options.arrow\n ? `url(#${markerPrefix}connect-line)`\n : undefined\n }\n />\n </svg>\n );\n}\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport type { LineTarget, LineTextClipPath, RenderedLine } from \"./interfaces\";\n\nexport interface LineComponentProps {\n line: RenderedLine;\n linePaths: Map<string, SVGPathElement | null>;\n clipPathList: LineTextClipPath[];\n markerPrefix: string;\n clipPathPrefix: string;\n onLineDoubleClick?(line: LineTarget): void;\n}\n\nexport function LineComponent({\n line: { line, d, markerIndex, edge },\n linePaths,\n clipPathList,\n markerPrefix,\n clipPathPrefix,\n onLineDoubleClick,\n}: LineComponentProps): JSX.Element {\n return (\n <g\n className={classNames(\"line\", {\n interactable: line.interactable,\n // active: activeEdge && (edge.source === activeEdge.source && edge.target === activeEdge.target),\n })}\n onDoubleClick={\n line.interactable\n ? (e) => (\n e.preventDefault(),\n e.stopPropagation(),\n onLineDoubleClick?.({ id: line.$id, edge })\n )\n : undefined\n }\n style={{ cursor: line.cursor }}\n >\n {/* <path\n stroke=\"rgba(0,95,204,0.5)\"\n strokeWidth={line.strokeWidth+11}\n strokeLinecap=\"square\"\n d={d}\n fill=\"none\"\n className=\"active-bg\"\n />\n <path\n stroke=\"white\"\n strokeWidth={line.strokeWidth+9}\n strokeLinecap=\"square\"\n d={d}\n fill=\"none\"\n className=\"active-bg\"\n /> */}\n <path\n ref={(element) => linePaths.set(line.$id, element)}\n stroke={line.strokeColor}\n strokeWidth={line.strokeWidth}\n d={d}\n fill=\"none\"\n markerEnd={\n markerIndex === undefined\n ? undefined\n : `url(#${markerPrefix}${markerIndex})`\n }\n clipPath={\n clipPathList.some((clip) => clip.id === line.$id)\n ? `url(#${clipPathPrefix}${line.$id})`\n : undefined\n }\n />\n {line.interactable && (\n <path\n // This `path` is made for expanding interaction area of graph lines.\n d={d}\n fill=\"none\"\n stroke=\"transparent\"\n strokeWidth={line.interactStrokeWidth}\n />\n )}\n </g>\n );\n}\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { ReactUseBrick } from \"@next-core/react-runtime\";\nimport { checkIfByTransform } from \"@next-core/runtime\";\nimport type {\n DiagramEdge,\n LineLabelConf,\n PositionTuple,\n RefRepository,\n RenderedLineLabel,\n TextOptions,\n} from \"./interfaces\";\n\nexport interface LineLabelComponentGroupProps {\n labels?: RenderedLineLabel[];\n onRendered?: (refRepository: RefRepository | null) => void;\n}\n\nexport function LineLabelComponentGroup({\n labels,\n onRendered,\n}: LineLabelComponentGroupProps): JSX.Element {\n const [rendered, setRendered] = useState(false);\n const [renderedIds, setRenderedIds] = useState<string[]>([]);\n const refRepository = useMemo<RefRepository>(() => new Map(), []);\n\n const handleRenderer = useCallback(\n (id: string, element: HTMLElement | null) => {\n if (element) {\n refRepository.set(id, element);\n }\n setRenderedIds((previous) =>\n previous.includes(id) ? previous : previous.concat(id)\n );\n },\n [refRepository]\n );\n\n const handleUnmount = useCallback(\n (id: string) => {\n setRenderedIds((previous) => {\n const index = previous.indexOf(id);\n return index === -1\n ? previous\n : previous.slice(0, index).concat(previous.slice(index + 1));\n });\n refRepository.delete(id);\n },\n [refRepository]\n );\n\n useEffect(() => {\n // All nodes have been rendered.\n setRendered(!labels?.some((label) => !renderedIds.includes(label.id)));\n }, [labels, renderedIds]);\n\n useEffect(\n () => {\n onRendered?.(rendered ? refRepository : null);\n },\n // Dot not re-run effect when `onRendered` changed.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [/* onRendered, */ refRepository, rendered]\n );\n\n return (\n <React.Fragment>\n {labels?.map(({ text, label, position, id, edge }) =>\n label ? (\n <div\n key={id}\n className=\"line-label\"\n style={{\n left: position[0],\n top: position[1],\n }}\n >\n <LineLabelComponent\n id={id}\n edge={edge}\n label={label}\n onRendered={handleRenderer}\n onUnmount={handleUnmount}\n />\n </div>\n ) : (\n <LineTextComponent\n key={id}\n id={id}\n text={text!}\n position={position}\n onRendered={handleRenderer}\n />\n )\n )}\n </React.Fragment>\n );\n}\n\nexport interface LineTextComponentProps {\n id: string;\n text: TextOptions;\n position: PositionTuple;\n onRendered?: (id: string, element: HTMLElement | null) => void;\n // onUnmount?: (id: string) => void;\n}\n\nexport function LineTextComponent({\n id,\n text,\n position,\n onRendered /* , onUnmount */,\n}: LineTextComponentProps): JSX.Element {\n const refCallback = useCallback(\n (element: HTMLDivElement) => {\n onRendered?.(id, element);\n },\n [id, onRendered]\n );\n\n return (\n <div\n className=\"line-label\"\n ref={refCallback}\n style={{\n left: position[0],\n top: position[1],\n ...text!.style,\n }}\n >\n {text!.content}\n </div>\n );\n}\n\n// export const LineLabelComponentGroup = React.memo(LegacyLineLabelComponentGroup);\n\nexport interface LineLabelComponentProps {\n id: string;\n edge: DiagramEdge;\n label: LineLabelConf;\n onRendered?: (id: string, element: HTMLElement | null) => void;\n onUnmount?: (id: string) => void;\n}\n\nexport function LineLabelComponent({\n id,\n edge,\n label,\n onRendered,\n onUnmount,\n}: LineLabelComponentProps): JSX.Element | null {\n const useBrick = useMemo(\n () => (checkIfByTransform(label, { edge }) ? label.useBrick : null),\n [edge, label]\n );\n\n const memoizedData = useMemo(() => ({ edge }), [edge]);\n\n useEffect(() => {\n if (!useBrick) {\n // Keep the same time delay for reporting rendered.\n setTimeout(() => {\n onRendered?.(id, null);\n });\n }\n }, [id, onRendered, useBrick]);\n\n useEffect(\n () => {\n return () => {\n onUnmount?.(id);\n };\n },\n // Only unmount once\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n const refCallback = useCallback(\n (element: HTMLElement | null) => {\n if (element) {\n // Todo: correctly wait for `useBrick` in v3 to be rendered (after layout)\n // Wait a macro task to let `useBrick` to be rendered.\n setTimeout(() => {\n onRendered?.(id, element.parentElement);\n });\n }\n },\n [id, onRendered]\n );\n\n const ignoredCallback = useCallback(() => {\n setTimeout(() => {\n onRendered?.(id, null);\n });\n }, [id, onRendered]);\n\n if (!useBrick) {\n return null;\n }\n\n return (\n <ReactUseBrick\n refCallback={refCallback}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore For v3 only\n ignoredCallback={ignoredCallback}\n useBrick={useBrick}\n data={memoizedData}\n />\n );\n}\n","import React from \"react\";\n\nexport interface MarkerComponentProps {\n id: string;\n strokeColor?: string;\n}\n\nexport function MarkerComponent({\n id,\n strokeColor,\n}: MarkerComponentProps): JSX.Element {\n return (\n <marker\n id={id}\n viewBox=\"0 0 6 6\"\n refX={3}\n refY={3}\n markerWidth={6}\n markerHeight={6}\n orient=\"auto\"\n >\n <path\n d=\"M 0.5 0.5 L 5.5 3 L 0.5 5.5 z\"\n stroke={strokeColor}\n strokeWidth={1}\n fill={strokeColor}\n />\n </marker>\n );\n}\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { ReactUseBrick } from \"@next-core/react-runtime\";\nimport type {\n DiagramNode,\n DiagramNodeId,\n NodeBrickConf,\n RefRepository,\n} from \"./interfaces\";\nimport { findNodeBrick } from \"./processors/findNodeBrick\";\n\nexport interface NodeComponentGroupProps {\n nodes?: DiagramNode[];\n nodeBricks?: NodeBrickConf[];\n onRendered?: (refRepository: RefRepository | null) => void;\n}\n\nexport function NodeComponentGroup({\n nodes,\n nodeBricks,\n onRendered,\n}: NodeComponentGroupProps): JSX.Element {\n const [rendered, setRendered] = useState(false);\n const [renderedIds, setRenderedIds] = useState<DiagramNodeId[]>([]);\n const refRepository = useMemo<RefRepository>(() => new Map(), []);\n\n const handleRenderer = useCallback(\n (id: DiagramNodeId, element: HTMLElement | null) => {\n if (element) {\n refRepository.set(id, element);\n }\n setRenderedIds((previous) =>\n previous.includes(id) ? previous : previous.concat(id)\n );\n },\n [refRepository]\n );\n\n const handleUnmount = useCallback(\n (id: DiagramNodeId) => {\n setRenderedIds((previous) => {\n const index = previous.indexOf(id);\n return index === -1\n ? previous\n : previous.slice(0, index).concat(previous.slice(index + 1));\n });\n refRepository.delete(id);\n },\n [refRepository]\n );\n\n useEffect(() => {\n // All nodes have been rendered.\n setRendered(!nodes?.some((node) => !renderedIds.includes(node.id)));\n }, [nodes, renderedIds]);\n\n useEffect(\n () => {\n onRendered?.(rendered ? refRepository : null);\n },\n // Dot not re-run effect when `onRendered` changed.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [/* onRendered, */ refRepository, rendered]\n );\n\n return (\n <React.Fragment>\n {nodes?.map((node) => (\n <div key={node.id} className=\"node\">\n <NodeComponent\n nodeBricks={nodeBricks}\n node={node}\n onRendered={handleRenderer}\n onUnmount={handleUnmount}\n />\n </div>\n ))}\n </React.Fragment>\n );\n}\n\nexport interface NodeComponentProps {\n node: DiagramNode;\n nodeBricks?: NodeBrickConf[];\n onRendered?: (id: DiagramNodeId, element: HTMLElement | null) => void;\n onUnmount?: (id: DiagramNodeId) => void;\n}\n\nexport function NodeComponent({\n node,\n nodeBricks,\n onRendered,\n onUnmount,\n}: NodeComponentProps): JSX.Element | null {\n const useBrick = useMemo(\n () => findNodeBrick(node, nodeBricks)?.useBrick,\n [node, nodeBricks]\n );\n const memoizedData = useMemo(() => ({ node }), [node]);\n\n useEffect(() => {\n if (!useBrick) {\n // Keep the same time delay for reporting rendered.\n setTimeout(() => {\n onRendered?.(node.id, null);\n });\n }\n }, [node.id, onRendered, useBrick]);\n\n useEffect(\n () => {\n return () => {\n onUnmount?.(node.id);\n };\n },\n // Only unmount once\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n const refCallback = useCallback(\n (element: HTMLElement | null) => {\n if (element) {\n // Todo: correctly wait for `useBrick` in v3 to be rendered (after layout)\n // Wait a macro task to let `useBrick` to be rendered.\n setTimeout(() => {\n onRendered?.(node.id, element);\n });\n }\n },\n [node.id, onRendered]\n );\n\n const ignoredCallback = useCallback(() => {\n setTimeout(() => {\n onRendered?.(node.id, null);\n });\n }, [node.id, onRendered]);\n\n if (!useBrick) {\n return null;\n }\n\n return (\n <ReactUseBrick\n refCallback={refCallback}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore For v3 only\n ignoredCallback={ignoredCallback}\n useBrick={useBrick}\n data={memoizedData}\n />\n );\n}\n","import { checkIfByTransform } from \"@next-core/runtime\";\nimport { NodeBrickConf, DiagramNode } from \"../interfaces\";\n\nexport function findNodeBrick(\n node: DiagramNode,\n nodeBricks: NodeBrickConf[] | undefined\n): NodeBrickConf | undefined {\n return nodeBricks?.find((item) => {\n if (item.nodeType) {\n return ([] as unknown[]).concat(item.nodeType).includes(node.type);\n }\n return checkIfByTransform(item, { node });\n });\n}\n","export const DEFAULT_LINE_STROKE_COLOR = \"var(--palette-gray-5)\";\nexport const DEFAULT_LINE_STROKE_WIDTH = 1;\nexport const DEFAULT_LINE_CURVE_TYPE = \"curveBasis\";\nexport const DEFAULT_LINE_INTERACT_STROKE_WIDTH = 20;\n","import type { PositionTuple, RenderedNode } from \"../interfaces\";\n\nexport function getCenterOffsets(\n renderedNodes: RenderedNode[],\n [canvasWidth, canvasHeight]: [canvasWidth: number, canvasHeight: number]\n): PositionTuple {\n let left = Infinity;\n let top = Infinity;\n let right = -Infinity;\n let bottom = -Infinity;\n for (const node of renderedNodes) {\n const hw = node.width / 2;\n const hh = node.height / 2;\n const l = node.x - hw;\n const r = node.x + hw;\n const t = node.y - hh;\n const b = node.y + hh;\n if (l < left) {\n left = l;\n }\n if (r > right) {\n right = r;\n }\n if (t < top) {\n top = t;\n }\n if (b > bottom) {\n bottom = b;\n }\n }\n\n const width = right - left;\n const height = bottom - top;\n\n return [(canvasWidth - width) / 2 - top, (canvasHeight - height) / 2 - left];\n}\n","import type {\n LineTextClipPath,\n RefRepository,\n RenderedLineLabel,\n} from \"../interfaces\";\n\nexport function getClipPathList(\n renderedLineLabels: RenderedLineLabel[],\n lineLabelsRefRepository: RefRepository\n) {\n return renderedLineLabels\n .map(({ id }) => {\n const element = lineLabelsRefRepository?.get(id);\n if (!element) {\n return;\n }\n const { offsetWidth, offsetHeight } = element;\n // Do not clip when the label takes no space.\n if (\n process.env.NODE_ENV !== \"test\" &&\n (offsetWidth === 0 || offsetHeight === 0)\n ) {\n return;\n }\n const padding = 3;\n return {\n x0: element.offsetLeft - offsetWidth / 2 - padding,\n y0: element.offsetTop - offsetHeight / 2 - padding,\n w: offsetWidth + padding * 2,\n h: offsetHeight + padding * 2,\n id,\n };\n })\n .filter(Boolean) as LineTextClipPath[];\n}\n","import dagre from \"@dagrejs/dagre\";\nimport type { DiagramEdge, DiagramNode, RenderedNode } from \"../interfaces\";\n\nexport function getDagreGraph(\n previousGraph: dagre.graphlib.Graph<RenderedNode> | null,\n nodes: DiagramNode[] | undefined,\n edges: DiagramEdge[] | undefined,\n dagreGraphOptions: dagre.GraphLabel\n) {\n // Create a new directed graph\n const newGraph = new dagre.graphlib.Graph<RenderedNode>();\n\n // Set an object for the graph label\n newGraph.setGraph(dagreGraphOptions);\n\n // Default to assigning a new object as a label for each new edge.\n newGraph.setDefaultEdgeLabel(function () {\n return {};\n });\n\n for (const node of nodes ?? []) {\n const previousNode = previousGraph?.node(node.id);\n newGraph.setNode(\n node.id,\n previousNode?.data === node\n ? previousNode\n : {\n id: node.id,\n data: node,\n }\n );\n }\n\n for (const edge of edges ?? []) {\n newGraph.setEdge(edge.source, edge.target, { data: edge });\n }\n\n return newGraph;\n}\n","import dagre from \"@dagrejs/dagre\";\nimport type {\n PartialRectTuple,\n RefRepository,\n RenderedEdge,\n RenderedNode,\n} from \"../interfaces\";\nimport { extractPartialRectTuple } from \"./extractPartialRectTuple\";\n\nexport interface RenderedDiagram {\n nodes: RenderedNode[];\n edges: RenderedEdge[];\n}\n\nexport function getRenderedDiagram({\n graph,\n nodesRefRepository,\n nodePadding,\n}: {\n graph: dagre.graphlib.Graph<RenderedNode> | null;\n nodesRefRepository: RefRepository | null;\n nodePadding: PartialRectTuple;\n}): RenderedDiagram | null {\n if (!graph || !nodesRefRepository || graph.nodeCount() === 0) {\n return null;\n }\n\n const paddings = extractPartialRectTuple(nodePadding);\n\n for (const id of graph.nodes()) {\n const node = graph.node(id);\n if (!node) {\n // eslint-disable-next-line no-console\n console.error(\"Diagram node not found: %s\", id);\n continue;\n }\n const element = nodesRefRepository.get(id);\n node.width = (element?.offsetWidth ?? 10) + paddings[1] + paddings[3];\n node.height = (element?.offsetHeight ?? 10) + paddings[0] + paddings[2];\n }\n\n dagre.layout(graph);\n\n // const positions = new Map<DiagramNodeId, NodePosition>();\n const renderedNodes: RenderedNode[] = [];\n\n for (const v of graph.nodes()) {\n const node = graph.node(v);\n if (!node) {\n continue;\n }\n renderedNodes.push(node);\n const x = node.x - node.width / 2 + paddings[3];\n const y = node.y - node.height / 2 + paddings[0];\n // positions.set(v, { x, y });\n\n const nodeContainer = nodesRefRepository.get(v)?.parentElement;\n if (nodeContainer) {\n nodeContainer.style.left = `${x}px`;\n nodeContainer.style.top = `${y}px`;\n nodeContainer.style.visibility = \"visible\";\n }\n }\n\n return {\n nodes: renderedNodes,\n edges: graph.edges().map((e) => graph.edge(e) as RenderedEdge),\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","import type { RenderedLine, RenderedLineLabel } from \"../interfaces\";\n\nexport function getRenderedLineLabels(\n previous: RenderedLineLabel[],\n renderedLines: RenderedLine[],\n linePaths: Map<string, SVGPathElement | null>\n) {\n if (previous.length === 0 && renderedLines.length === 0) {\n return previous;\n }\n return renderedLines\n .map(({ line: { text, label, $id }, edge }) => {\n const path = linePaths.get($id);\n if ((!text && !label) || !path || !path.getAttribute(\"d\")) {\n return;\n }\n\n // istanbul ignore next\n const { x, y, width, height } =\n process.env.NODE_ENV === \"test\"\n ? { x: 10, y: 20, width: 300, height: 400 }\n : path.getBBox();\n // Make redundant extra padding.\n const padding = 1000;\n const left = x - padding;\n const top = y - padding;\n const right = x + width + padding;\n const bottom = y + height + padding;\n\n // istanbul ignore next\n const point =\n process.env.NODE_ENV === \"test\"\n ? { x: 50, y: 50 }\n : path.getPointAtLength(path.getTotalLength() / 2);\n return {\n text,\n label,\n edge,\n position: [point.x, point.y],\n lineRect: { left, top, right, bottom },\n id: $id,\n };\n })\n .filter(Boolean) as RenderedLineLabel[];\n}\n","import {\n curveLinear,\n line,\n curveBasis,\n curveBumpX,\n curveBumpY,\n type CurveFactory,\n curveMonotoneX,\n curveNatural,\n curveMonotoneY,\n} from \"d3-shape\";\nimport type { CurveType, NodePosition } from \"../interfaces\";\n\n/**\n * Generate Line from points\n */\nexport function curveLine(\n points: Array<NodePosition>,\n arrowOffset: number,\n curveType?: CurveType\n): string {\n if (!Array.isArray(points)) {\n return \"\";\n }\n let curveFactory: CurveFactory;\n switch (curveType) {\n case \"curveBasis\":\n curveFactory = curveBasis;\n break;\n case \"curveBumpX\":\n curveFactory = curveBumpX;\n break;\n case \"curveBumpY\":\n curveFactory = curveBumpY;\n break;\n case \"curveMonotoneX\":\n curveFactory = curveMonotoneX;\n break;\n case \"curveMonotoneY\":\n curveFactory = curveMonotoneY;\n break;\n case \"curveNatural\":\n curveFactory = curveNatural;\n break;\n default:\n curveFactory = curveLinear;\n }\n let arrowOffsetX = 0;\n let arrowOffsetY = 0;\n if (arrowOffset) {\n const { x: x0, y: y0 } = points[points.length - 2];\n const { x: x1, y: y1 } = points[points.length - 1];\n const distance = Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2));\n const ratio = arrowOffset / distance;\n arrowOffsetX = (x0 - x1) * ratio;\n arrowOffsetY = (y0 - y1) * ratio;\n }\n const transformPoints = points;\n const lineFunction = line()\n .x(\n (d, index) =>\n (d as unknown as { x: number }).x -\n (index === points.length - 1 ? arrowOffsetX : 0)\n )\n .y(\n (d, index) =>\n (d as unknown as { y: number }).y -\n (index === points.length - 1 ? arrowOffsetY : 0)\n )\n .curve(curveFactory);\n return lineFunction(transformPoints as unknown as Array<[number, number]>)!;\n}\n","import { findIndex, uniqueId } from \"lodash\";\nimport { __secret_internals } from \"@next-core/runtime\";\nimport type {\n LineConf,\n LineMarker,\n RenderedEdge,\n RenderedLine,\n} from \"../interfaces\";\nimport { matchEdgeByFilter } from \"./matchEdgeByFilter\";\nimport {\n DEFAULT_LINE_CURVE_TYPE,\n DEFAULT_LINE_INTERACT_STROKE_WIDTH,\n DEFAULT_LINE_STROKE_COLOR,\n DEFAULT_LINE_STROKE_WIDTH,\n} from \"../constants\";\nimport { curveLine } from \"../lines/curveLine\";\n\nexport function getRenderedLinesAndMarkers(\n renderedEdges: RenderedEdge[],\n lines: LineConf[] | undefined\n) {\n const renderedLines: RenderedLine[] = [];\n const markers: LineMarker[] = [];\n for (const { data, points } of renderedEdges) {\n const { label, ...restLineConf } =\n lines?.find((line) => matchEdgeByFilter(data, line)) ?? {};\n\n const computedLineConf = __secret_internals.legacyDoTransform(\n { edge: data },\n restLineConf\n ) as LineConf | undefined;\n if (computedLineConf?.draw === false) {\n continue;\n }\n const line: RenderedLine[\"line\"] = {\n strokeColor: DEFAULT_LINE_STROKE_COLOR,\n strokeWidth: DEFAULT_LINE_STROKE_WIDTH,\n curveType: DEFAULT_LINE_CURVE_TYPE,\n interactStrokeWidth: DEFAULT_LINE_INTERACT_STROKE_WIDTH,\n ...computedLineConf,\n label,\n $id: uniqueId(\"line-\"),\n };\n\n let markerIndex: number | undefined;\n if (line.arrow) {\n const marker: LineMarker = {\n strokeColor: line.strokeColor,\n };\n markerIndex = findIndex(markers, marker);\n if (markerIndex === -1) {\n markerIndex = markers.push(marker) - 1;\n }\n }\n\n const d = curveLine(points, line.arrow ? -5 : 0, line.curveType);\n\n renderedLines.push({\n line,\n d,\n markerIndex,\n edge: data,\n });\n }\n return {\n renderedLines,\n markers,\n };\n}\n","import { checkIfByTransform } from \"@next-core/runtime\";\nimport type { DiagramEdge, LineConf } from \"../interfaces\";\n\nexport function matchEdgeByFilter(\n edge: DiagramEdge,\n filter: LineConf\n): boolean {\n if (!filter) {\n return false;\n }\n if (filter.edgeType) {\n return ([] as string[]).concat(filter.edgeType).includes(edge.type!);\n }\n return checkIfByTransform(filter, { edge });\n}\n","import { checkIfByTransform, __secret_internals } from \"@next-core/runtime\";\nimport type React from \"react\";\nimport {\n DEFAULT_LINE_STROKE_COLOR,\n DEFAULT_LINE_STROKE_WIDTH,\n} from \"../constants\";\nimport type {\n ConnectLineState,\n DiagramNode,\n ConnectLineDetail,\n NodesConnectOptions,\n PositionTuple,\n RefRepository,\n} from \"../interfaces\";\n\nexport function handleDiagramMouseDown(\n event: React.MouseEvent,\n {\n nodes,\n nodesRefRepository,\n nodesConnect,\n setConnectLineState,\n setConnectLineTo,\n onSwitchActiveNode,\n onNodesConnect,\n }: {\n nodes: DiagramNode[] | undefined;\n nodesConnect: NodesConnectOptions | undefined;\n nodesRefRepository: RefRepository | null;\n setConnectLineState: (\n value: React.SetStateAction<ConnectLineState | null>\n ) => void;\n setConnectLineTo: (value: React.SetStateAction<PositionTuple>) => void;\n onSwitchActiveNode?(id: string | undefined): void;\n onNodesConnect?(detail: ConnectLineDetail): void;\n }\n) {\n function findNode(match: (element: HTMLElement) => boolean) {\n if (nodesRefRepository) {\n for (const [id, element] of nodesRefRepository) {\n if (match(element)) {\n return nodes?.find((node) => node.id === id);\n }\n }\n }\n }\n\n if (!nodesConnect) {\n return;\n }\n\n const source = findNode((element) =>\n element.contains(event.target as Node | null)\n );\n\n if (!source) {\n return;\n }\n\n if (nodesConnect.sourceType) {\n if (\n !([] as unknown[]).concat(nodesConnect.sourceType).includes(source.type)\n ) {\n return;\n }\n } else if (!checkIfByTransform(nodesConnect, { source })) {\n return;\n }\n\n setConnectLineState({\n from: [event.clientX, event.clientY],\n options: {\n strokeColor: DEFAULT_LINE_STROKE_COLOR,\n strokeWidth: DEFAULT_LINE_STROKE_WIDTH,\n ...(__secret_internals.legacyDoTransform(\n { source },\n nodesConnect\n ) as NodesConnectOptions),\n },\n });\n setConnectLineTo([event.clientX, event.clientY]);\n onSwitchActiveNode?.(source.id);\n const onMouseMove = (e: MouseEvent) => {\n setConnectLineTo([e.clientX, e.clientY]);\n };\n const onMouseUp = (e: MouseEvent) => {\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseUp);\n setConnectLineState(null);\n const eventTargets = e.composedPath();\n const target = findNode((element) => eventTargets.includes(element));\n if (target && source !== target) {\n onNodesConnect?.({ source, target });\n }\n };\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseUp);\n}\n","import { minBy } from \"lodash\";\nimport type { DiagramNode, RenderedEdge, RenderedNode } from \"../interfaces\";\n\nexport type KeyboardAction =\n | KeyboardActionSwitchActiveNode\n | KeyboardActionDeleteNode;\n\nexport interface KeyboardActionSwitchActiveNode {\n action: \"switch-active-node\";\n node?: DiagramNode;\n}\n\nexport interface KeyboardActionDeleteNode {\n action: \"delete-node\";\n node: DiagramNode;\n}\n\nexport function handleKeyboard(\n event: KeyboardEvent,\n {\n renderedNodes,\n renderedEdges,\n activeNodeId,\n }: {\n renderedNodes: RenderedNode[];\n renderedEdges: RenderedEdge[];\n activeNodeId: string | undefined;\n }\n): KeyboardAction | undefined {\n const activeNode = activeNodeId\n ? renderedNodes.find((node) => node.id === activeNodeId)\n : undefined;\n\n if (!activeNode) {\n return;\n }\n\n const key =\n event.key ||\n /* istanbul ignore next: compatibility */ event.keyCode ||\n /* istanbul ignore next: compatibility */ event.which;\n let action: KeyboardAction[\"action\"] | undefined;\n let node: RenderedNode | undefined;\n switch (key) {\n case \"ArrowLeft\":\n case 37: {\n node = moveOnX(renderedNodes, activeNode, -1);\n action = \"switch-active-node\";\n break;\n }\n case \"ArrowUp\":\n case 38: {\n node = moveOnY(renderedNodes, renderedEdges, activeNode, -1);\n action = \"switch-active-node\";\n break;\n }\n case \"ArrowRight\":\n case 39: {\n node = moveOnX(renderedNodes, activeNode, 1);\n action = \"switch-active-node\";\n break;\n }\n case \"ArrowDown\":\n case 40: {\n node = moveOnY(renderedNodes, renderedEdges, activeNode, 1);\n action = \"switch-active-node\";\n break;\n }\n case \"Backspace\":\n case 8:\n case \"Delete\":\n case 46: {\n action = \"delete-node\";\n node = activeNode;\n break;\n }\n }\n if (action) {\n event.preventDefault();\n event.stopPropagation();\n return { action, node: node?.data } as KeyboardAction;\n }\n}\n\nfunction moveOnX(\n renderedNodes: RenderedNode[],\n activeNode: RenderedNode,\n direction: 1 | -1\n) {\n let diff: number;\n const candidates = renderedNodes.filter(\n (node) =>\n node !== activeNode &&\n ((diff = (node.x - activeNode.x) * direction), diff > 0) &&\n diff > Math.abs(activeNode.y - node.y)\n );\n return minBy(\n candidates,\n (node) => (activeNode.y - node.y) ** 2 + (activeNode.x - node.x) ** 2\n );\n}\n\nfunction moveOnY(\n renderedNodes: RenderedNode[],\n renderedEdges: RenderedEdge[],\n activeNode: RenderedNode,\n direction: 1 | -1\n) {\n const from = direction === 1 ? \"source\" : \"target\";\n const to = direction === 1 ? \"target\" : \"source\";\n const candidateEdges = renderedEdges.filter(\n ({ data }) => data[from] === activeNode.id && data[to] !== activeNode.id\n );\n const candidates = candidateEdges\n .map(({ data }) => renderedNodes.find((node) => node.id === data[to]))\n .filter(\n (node) => node && (node.y - activeNode.y) * direction > 0\n ) as RenderedNode[];\n return minBy(\n candidates,\n (node) => (activeNode.y - node.y) ** 2 + (activeNode.x - node.x) ** 2\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;width:100%;height:100%;overflow:hidden}:host([hidden]){display:none}*{box-sizing:border-box}.diagram{width:100%;height:100%;position:relative;opacity:0}.diagram:focus{outline:none}.ready{opacity:1}.dragger,\n.lines,\n.line-labels,\n.nodes{position:absolute;top:0;left:0}.node{position:absolute;visibility:hidden}.dragger{width:100%;height:100%;cursor:-webkit-grab;cursor:grab}.grabbing{cursor:-webkit-grabbing;cursor:grabbing}.line-label{position:absolute;transform:translate(-50%,-50%);white-space:pre-line;width:-webkit-max-content;width:-moz-max-content;width:max-content;text-align:center}.lines{pointer-events:none}.line.interactable{pointer-events:auto}.connect-line{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none}.connect-line:not(.connecting){display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["ClipPathComponent","_ref","clipPath","clipPathPrefix","renderedLineLabels","x0","y0","w","h","id","lineText","find","item","left","top","right","bottom","lineRect","React","key","concat","points","join","ConnectLineComponent","connectLineState","connectLineTo","markerPrefix","width","height","className","classNames","connecting","MarkerComponent","strokeColor","options","d","from","fill","stroke","strokeWidth","markerEnd","arrow","undefined","LineComponent","line","markerIndex","edge","linePaths","clipPathList","onLineDoubleClick","interactable","onDoubleClick","e","preventDefault","stopPropagation","$id","style","cursor","ref","element","set","some","clip","interactStrokeWidth","LineLabelComponentGroup","labels","onRendered","rendered","setRendered","useState","renderedIds","setRenderedIds","refRepository","useMemo","Map","handleRenderer","useCallback","previous","includes","handleUnmount","index","indexOf","slice","delete","useEffect","label","map","_ref2","text","position","LineLabelComponent","onUnmount","LineTextComponent","_ref3","refCallback","_objectSpread","content","_ref4","useBrick","checkIfByTransform","memoizedData","setTimeout","parentElement","ignoredCallback","ReactUseBrick","data","viewBox","refX","refY","markerWidth","markerHeight","orient","NodeComponentGroup","nodes","nodeBricks","node","NodeComponent","_findNodeBrick","nodeType","type","findNodeBrick","DEFAULT_LINE_STROKE_COLOR","DEFAULT_LINE_STROKE_WIDTH","DEFAULT_LINE_CURVE_TYPE","DEFAULT_LINE_INTERACT_STROKE_WIDTH","getCenterOffsets","renderedNodes","canvasWidth","canvasHeight","Infinity","hw","hh","l","x","r","t","y","b","getClipPathList","lineLabelsRefRepository","get","offsetWidth","offsetHeight","offsetLeft","offsetTop","padding","filter","Boolean","getDagreGraph","previousGraph","edges","dagreGraphOptions","newGraph","dagre","Graph","setGraph","setDefaultEdgeLabel","previousNode","setNode","setEdge","source","target","getRenderedDiagram","graph","nodesRefRepository","nodePadding","nodeCount","paddings","value","Array","isArray","v0","v1","length","extractPartialRectTuple","_element$offsetWidth","_element$offsetHeight","console","error","v","_nodesRefRepository$g","push","nodeContainer","visibility","getRenderedLineLabels","renderedLines","path","getAttribute","getBBox","point","getPointAtLength","getTotalLength","curveLine","arrowOffset","curveType","curveFactory","curveBasis","curveBumpX","curveBumpY","curveMonotoneX","curveMonotoneY","curveNatural","curveLinear","arrowOffsetX","arrowOffsetY","x1","y1","ratio","Math","sqrt","pow","transformPoints","curve","lineFunction","getRenderedLinesAndMarkers","renderedEdges","lines","markers","_loop","_lines$find","matchEdgeByFilter","edgeType","restLineConf","_objectWithoutProperties","_excluded","computedLineConf","__secret_internals","legacyDoTransform","draw","uniqueId","marker","findIndex","handleDiagramMouseDown","event","nodesConnect","setConnectLineState","setConnectLineTo","onSwitchActiveNode","onNodesConnect","findNode","match","_ret","_id","contains","sourceType","clientX","clientY","onMouseMove","onMouseUp","document","removeEventListener","eventTargets","composedPath","addEventListener","handleKeyboard","activeNodeId","activeNode","action","_node","keyCode","which","moveOnX","moveOnY","direction","diff","candidates","abs","minBy","to","___CSS_LOADER_EXPORT___","module","toString"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_next_bricks_diagram=self.webpackChunk_next_bricks_diagram||[]).push([[9393],{9393:(e,t,a)=>{a.r(t);var n,i,l,s,r,o,c,u,d,h,b,p,v,f,g,Z,w,k,m,y,E,C,x,M,N,W,S,L,R,D,P,A,I,B,K,O,z,T,_,H,q=a(3028),X=a(3395),Y=a(1815),$=a(381),j=a(687),F=a(5066),G=a(8657),J=a.n(G),Q=a(5727),U=a(305),V=(a(928),a(1105)),ee=a(7397),te=a(2779),ae=a.n(te),ne=a(1211),ie=a(2370),le=a(5702),se=a(6365),re=a(5731),oe=a(7853),ce=a(6462),ue=a(9575),de=a(2260),he=a(7587),be=a(1251),pe=a(4126),ve=a(8696),fe=a(5173),ge=a(4510),Ze=a(6436),{defineElement:we,property:ke,event:me,method:ye}=(0,Q.createDecorators)(),Ee=(0,G.forwardRef)(at);i=we("eo-diagram",{styleTexts:[Ze.Z]}),l=ke({type:String}),r=ke({attribute:!1}),c=ke({attribute:!1}),d=ke({attribute:!1}),b=ke({attribute:!1}),v=ke({attribute:!1}),g=ke({type:String}),w=ke({type:Boolean}),m=ke({attribute:!1}),E=me({type:"activeNode.change"}),N=me({type:"node.delete"}),R=me({type:"line.dblclick"}),I=me({type:"nodes.connect"}),z=ye();var Ce=new WeakMap,xe=new WeakMap,Me=new WeakMap,Ne=new WeakMap,We=new WeakMap,Se=new WeakMap,Le=new WeakMap,Re=new WeakMap,De=new WeakMap,Pe=new WeakMap,Ae=new WeakMap,Ie=new WeakMap,Be=new WeakMap,Ke=new WeakMap,Oe=new WeakMap,ze=new WeakMap,Te=new WeakMap,_e=new WeakMap,He=new WeakMap,qe=new WeakMap,Xe=new WeakMap,Ye=new WeakMap,$e=new WeakMap;class je extends U.ReactNextElement{constructor(){super(...arguments),(0,X.Z)(this,qe,{get:tt,set:et}),(0,X.Z)(this,Te,{get:Ve,set:Ue}),(0,X.Z)(this,Ke,{get:Qe,set:Je}),(0,X.Z)(this,Ae,{get:Ge,set:Fe}),(0,X.Z)(this,Ce,{writable:!0,value:(T(this),s(this))}),(0,X.Z)(this,xe,{writable:!0,value:o(this)}),(0,X.Z)(this,Me,{writable:!0,value:u(this)}),(0,X.Z)(this,Ne,{writable:!0,value:h(this)}),(0,X.Z)(this,We,{writable:!0,value:p(this)}),(0,X.Z)(this,Se,{writable:!0,value:f(this)}),(0,X.Z)(this,Le,{writable:!0,value:Z(this)}),(0,X.Z)(this,Re,{writable:!0,value:k(this)}),(0,X.Z)(this,De,{writable:!0,value:y(this)}),(0,X.Z)(this,Pe,{writable:!0,value:C(this)}),(0,X.Z)(this,Ie,{writable:!0,value:e=>{(0,j.Z)(this,Ae).emit(e)}}),(0,X.Z)(this,Be,{writable:!0,value:W(this)}),(0,X.Z)(this,Oe,{writable:!0,value:e=>{(0,j.Z)(this,Ke).emit(e)}}),(0,X.Z)(this,ze,{writable:!0,value:D(this)}),(0,X.Z)(this,_e,{writable:!0,value:e=>{(0,j.Z)(this,Te).emit(e)}}),(0,X.Z)(this,He,{writable:!0,value:B(this)}),(0,X.Z)(this,Xe,{writable:!0,value:e=>{(0,j.Z)(this,qe).emit(e)}}),(0,X.Z)(this,Ye,{writable:!0,value:e=>{this.activeNodeId=e}}),(0,X.Z)(this,$e,{writable:!0,value:(0,G.createRef)()})}get layout(){return(0,j.Z)(this,Ce)}set layout(e){(0,$.Z)(this,Ce,e)}get nodes(){return(0,j.Z)(this,xe)}set nodes(e){(0,$.Z)(this,xe,e)}get edges(){return(0,j.Z)(this,Me)}set edges(e){(0,$.Z)(this,Me,e)}get nodeBricks(){return(0,j.Z)(this,Ne)}set nodeBricks(e){(0,$.Z)(this,Ne,e)}get lines(){return(0,j.Z)(this,We)}set lines(e){(0,$.Z)(this,We,e)}get layoutOptions(){return(0,j.Z)(this,Se)}set layoutOptions(e){(0,$.Z)(this,Se,e)}get activeNodeId(){return(0,j.Z)(this,Le)}set activeNodeId(e){(0,$.Z)(this,Le,e)}get disableKeyboardAction(){return(0,j.Z)(this,Re)}set disableKeyboardAction(e){(0,$.Z)(this,Re,e)}get nodesConnect(){return(0,j.Z)(this,De)}set nodesConnect(e){(0,$.Z)(this,De,e)}callOnLineLabel(e,t){for(var a,n=arguments.length,i=new Array(n>2?n-2:0),l=2;l<n;l++)i[l-2]=arguments[l];null===(a=(0,j.Z)(this,$e).current)||void 0===a||a.callOnLineLabel(e,t,...i)}render(){return J().createElement(Ee,{ref:(0,j.Z)(this,$e),layout:this.layout,nodes:this.nodes,edges:this.edges,nodeBricks:this.nodeBricks,lines:this.lines,layoutOptions:this.layoutOptions,nodesConnect:this.nodesConnect,activeNodeId:this.activeNodeId,disableKeyboardAction:this.disableKeyboardAction,onActiveNodeChange:(0,j.Z)(this,Ie),onSwitchActiveNode:(0,j.Z)(this,Ye),onNodeDelete:(0,j.Z)(this,Oe),onLineDoubleClick:(0,j.Z)(this,_e),onNodesConnect:(0,j.Z)(this,Xe)})}}function Fe(e){M(this,e)}function Ge(){return x(this)}function Je(e){L(this,e)}function Qe(){return S(this)}function Ue(e){A(this,e)}function Ve(){return P(this)}function et(e){O(this,e)}function tt(){return K(this)}function at(e,t){var{layout:a,nodes:n,edges:i,nodeBricks:l,lines:s,layoutOptions:r,nodesConnect:o,activeNodeId:c,disableKeyboardAction:u,onActiveNodeChange:d,onSwitchActiveNode:h,onNodeDelete:b,onLineDoubleClick:p,onNodesConnect:v}=e,[f,g]=(0,G.useState)(null),[Z,w]=(0,G.useState)(!1),[k,m]=(0,G.useState)(0),[y,E]=(0,G.useState)(null),[C,x]=(0,G.useState)(0),[M,N]=(0,G.useState)(null),[W,S]=(0,G.useState)([]),[L,R]=(0,G.useState)([]),[D,P]=(0,G.useState)([]),A=(0,G.useRef)(null),[I,B]=(0,G.useState)(!1),[K,O]=(0,G.useState)({k:1,x:0,y:0}),z=(0,G.useRef)(new Map),T=(0,G.useRef)(null),_=(0,G.useRef)(null),[H,X]=(0,G.useState)([0,0]),[Y,$]=(0,G.useState)(!1),[j,F]=(0,G.useState)([0,0]),[Q,U]=(0,G.useState)(null);(0,G.useImperativeHandle)(t,(()=>({callOnLineLabel(e,t){for(var a,n=arguments.length,i=new Array(n>2?n-2:0),l=2;l<n;l++)i[l-2]=arguments[l];null==M||null===(a=M.get(e))||void 0===a||null===(a=a.firstElementChild)||void 0===a||a[t](...i)}})));var te=(0,G.useCallback)((e=>{(0,ge.k)(e,{nodes:n,nodesRefRepository:y,nodesConnect:o,setConnectLineState:U,setConnectLineTo:F,onSwitchActiveNode:h,onNodesConnect:v})}),[n,o,y,v,h]),Ze=(0,G.useMemo)((()=>(0,q.Z)({rankdir:"TB",ranksep:50,edgesep:10,nodesep:50,nodePadding:0},r)),[r]),{nodePadding:we}=Ze,ke=(0,G.useMemo)((()=>(0,ne.pick)(Ze,["rankdir","ranksep","edgesep","nodesep","align"])),[Ze]),me=(0,G.useRef)(!1);(0,G.useEffect)((()=>{if(me.current){var e=c?null==n?void 0:n.find((e=>e.id===c)):void 0;null==d||d(e)}else me.current=!0}),[n,c,d]),(0,G.useEffect)((()=>{g((e=>(0,fe.T)(e,n,i,ke)))}),[i,n,ke]),(0,G.useEffect)((()=>{var e=(0,ve.E)({graph:f,nodesRefRepository:y,nodePadding:we});e&&(S(e.nodes),R(e.edges))}),[f,y,k,we]);var{renderedLines:ye,markers:Ee}=(0,G.useMemo)((()=>(0,re.b)(L,s)),[s,L]);(0,G.useEffect)((()=>{var e=T.current;if(e&&!u){var t=e=>{var t=(0,le.p)(e,{renderedNodes:W,renderedEdges:L,activeNodeId:c});"delete-node"===(null==t?void 0:t.action)?null==b||b(t.node):"switch-active-node"===(null==t?void 0:t.action)&&t.node&&(null==h||h(t.node.id))};return e.addEventListener("keydown",t),()=>{e.removeEventListener("keydown",t)}}}),[c,W,L,u,h,b]);var Ce=(0,G.useCallback)((e=>{e&&(m((e=>e+1)),E(e)),w((t=>t||!!e))}),[]),xe=(0,G.useCallback)((e=>{e&&(x((e=>e+1)),N(e))}),[]);(0,G.useEffect)((()=>{var e=T.current,t=A.current;if(e&&t){var a=!1,n=(0,ee.sP)().scaleExtent([1,1]).on("start",(()=>{a=!1,B(!0)})).on("zoom",(e=>{a=!0,O(e.transform)})).on("end",(()=>{B(!1),a||null==h||h(void 0)}));(0,V.Z)(t).call(n),(0,V.Z)(e).on("wheel.zoom",(e=>{e.stopPropagation(),e.preventDefault(),e.ctrlKey||n.translateBy((0,V.Z)(t),e.wheelDeltaX/5,e.wheelDeltaY/5)}))}}),[h]),(0,G.useEffect)((()=>{var e=T.current;0!==W.length&&e&&!Y&&(X((0,se.i)(W,[e.clientWidth,e.clientHeight])),$(!0))}),[Y,W]);var Me=(0,G.useMemo)((()=>"".concat((0,ne.uniqueId)("diagram-"),"-")),[]),Ne="".concat(Me,"line-arrow-"),We="".concat(Me,"clip-path-");(0,G.useEffect)((()=>{P((e=>(0,pe.K)(e,ye,z.current)))}),[ye]);var[Se,Le]=J().useState([]);if((0,G.useEffect)((()=>{M&&Le((0,be.i)(D,M))}),[C,M,D]),"dagre"!==a)return J().createElement("div",null,'Diagram layout not supported: "'.concat(a,'"'));var Re=[H[0]+K.x,H[1]+K.y];return J().createElement("div",{className:ae()("diagram",{ready:Z&&Y}),tabIndex:-1,ref:T,onMouseDown:te},J().createElement("div",{className:ae()("dragger",{grabbing:I}),ref:A}),J().createElement("svg",{width:"100%",height:"100%",className:"lines"},J().createElement("defs",null,Ee.map(((e,t)=>{var{strokeColor:a}=e;return J().createElement(ue.C,{key:t,id:"".concat(Ne).concat(t),strokeColor:a})})),Se.map((e=>J().createElement(de.K,{key:e.id,clipPath:e,clipPathPrefix:We,renderedLineLabels:D})))),J().createElement("g",{transform:"translate(".concat(Re[0]," ").concat(Re[1],") scale(").concat(K.k,")")},ye.map((e=>J().createElement(ce.y,{key:e.line.$id,line:e,linePaths:z.current,clipPathList:Se,markerPrefix:Ne,clipPathPrefix:We,onLineDoubleClick:p}))))),J().createElement("div",{className:"line-labels",style:{left:Re[0],top:Re[1]}},J().createElement(oe.L8,{labels:D,onRendered:xe})),J().createElement("div",{className:"nodes",ref:_,style:{left:Re[0],top:Re[1]}},J().createElement(ie.n,{nodes:n,nodeBricks:l,onRendered:Ce})),J().createElement(he.f,{connectLineState:Q,connectLineTo:j,markerPrefix:Ne}))}_=je,({e:[s,o,u,h,p,f,Z,k,y,C,x,M,W,S,L,D,P,A,B,K,O,T],c:[H,n]}=(0,F.Z)(_,[[l,1,"layout"],[r,1,"nodes"],[c,1,"edges"],[d,1,"nodeBricks"],[b,1,"lines"],[v,1,"layoutOptions"],[g,1,"activeNodeId"],[w,1,"disableKeyboardAction"],[m,1,"nodesConnect"],[E,1,"activeNodeChangeEvent",e=>(0,j.Z)(e,Pe),(e,t)=>(0,$.Z)(e,Pe,t)],[N,1,"nodeDelete",e=>(0,j.Z)(e,Be),(e,t)=>(0,$.Z)(e,Be,t)],[R,1,"lineDoubleClick",e=>(0,j.Z)(e,ze),(e,t)=>(0,$.Z)(e,ze,t)],[I,1,"nodesConnect",e=>(0,j.Z)(e,He),(e,t)=>(0,$.Z)(e,He,t)],[z,2,"callOnLineLabel"]],[i],0,(e=>$e.has((0,Y.Z)(e))),U.ReactNextElement)),n();var nt,it,lt,st,rt,ot,ct,ut,dt,ht,bt,pt,vt,ft,gt,Zt,wt,kt,mt=a(8074),{defineElement:yt,property:Et,event:Ct,method:xt}=(0,Q.createDecorators)(),Mt=(0,G.forwardRef)(_t);it=yt("diagram.editable-label",{styleTexts:[mt.Z]}),lt=Et(),rt=Et({render:!1}),ct=Ct({type:"label.editing.change"}),bt=Ct({type:"label.change"}),gt=xt();var Nt=new WeakMap,Wt=new WeakMap,St=new WeakMap,Lt=new WeakMap,Rt=new WeakMap,Dt=new WeakMap,Pt=new WeakMap,At=new WeakMap,It=new WeakMap;class Bt extends U.ReactNextElement{constructor(){super(...arguments),(0,X.Z)(this,Pt,{get:Tt,set:zt}),(0,X.Z)(this,Lt,{get:Ot,set:Kt}),(0,X.Z)(this,Nt,{writable:!0,value:(Zt(this),st(this))}),(0,X.Z)(this,Wt,{writable:!0,value:ot(this)}),(0,X.Z)(this,St,{writable:!0,value:ut(this)}),(0,X.Z)(this,Rt,{writable:!0,value:e=>{(0,j.Z)(this,Lt).emit(e)}}),(0,X.Z)(this,Dt,{writable:!0,value:pt(this)}),(0,X.Z)(this,At,{writable:!0,value:e=>{(0,j.Z)(this,Pt).emit(e)}}),(0,X.Z)(this,It,{writable:!0,value:(0,G.createRef)()})}get label(){return(0,j.Z)(this,Nt)}set label(e){(0,$.Z)(this,Nt,e)}get type(){return(0,j.Z)(this,Wt)}set type(e){(0,$.Z)(this,Wt,e)}enableEditing(){var e;null===(e=(0,j.Z)(this,It).current)||void 0===e||e.enableEditing()}render(){return J().createElement(Mt,{ref:(0,j.Z)(this,It),label:this.label,onLabelEditingChange:(0,j.Z)(this,Rt),onLabelChange:(0,j.Z)(this,At)})}}function Kt(e){ht(this,e)}function Ot(){return dt(this)}function zt(e){ft(this,e)}function Tt(){return vt(this)}function _t(e,t){var{label:a,onLabelChange:n,onLabelEditingChange:i}=e,l=null!=a?a:"",[s,r]=(0,G.useState)(l),[o,c]=(0,G.useState)(!1),u=(0,G.useRef)(!1),[d,h]=(0,G.useState)(!1),b=(0,G.useRef)(null);(0,G.useImperativeHandle)(t,(()=>({enableEditing(){c(!0)}}))),(0,G.useEffect)((()=>{r(l)}),[l]);var p=(0,G.useCallback)((e=>{e.preventDefault(),e.stopPropagation(),c(!0)}),[]);(0,G.useEffect)((()=>{var e,t;o&&(null===(e=b.current)||void 0===e||e.focus({preventScroll:!0}),null===(t=b.current)||void 0===t||t.select())}),[o]),(0,G.useEffect)((()=>{u.current?null==i||i(o):u.current=!0}),[o,i]);var v=(0,G.useCallback)((e=>{r(e.target.value)}),[]),f=(0,G.useCallback)((e=>{var t,a=e.key||e.keyCode||e.which;"Enter"!==a&&13!==a||null===(t=b.current)||void 0===t||t.blur()}),[]),g=(0,G.useCallback)((()=>{c(!1),h(!0)}),[]);return(0,G.useEffect)((()=>{d&&(null==n||n(s),h(!1))}),[s,n,d]),J().createElement("div",{className:ae()("label",{editing:o,empty:!s})},J().createElement("input",{className:"label-input",value:s,ref:b,onChange:v,onKeyDown:f,onBlur:g}),J().createElement("div",{className:"label-text",onDoubleClick:p},s))}wt=Bt,({e:[st,ot,ut,dt,ht,pt,vt,ft,Zt],c:[kt,nt]}=(0,F.Z)(wt,[[lt,1,"label"],[rt,1,"type"],[ct,1,"labelEditingChange",e=>(0,j.Z)(e,St),(e,t)=>(0,$.Z)(e,St,t)],[bt,1,"labelChange",e=>(0,j.Z)(e,Dt),(e,t)=>(0,$.Z)(e,Dt,t)],[gt,2,"enableEditing"]],[it],0,(e=>It.has((0,Y.Z)(e))),U.ReactNextElement)),nt()},8074:(e,t,a)=>{a.d(t,{Z:()=>r});var n=a(9601),i=a.n(n),l=a(2609),s=a.n(l)()(i());s.push([e.id,':host{display:block;--local-label-line-height:inherit;--local-label-font-size:inherit;--local-label-color:inherit;--local-label-font-weight:inherit}:host([hidden]){display:none}:host([type="line"]){--local-label-line-height:18px;--local-label-font-size:11px;--local-label-color:var(--color-secondary-text);--local-label-font-weight:400}*{box-sizing:border-box}.label{max-width:168px;margin:-3px}.label-text,\n.label-input{width:100%;height:24px;padding:3px;border:none;line-height:var(--local-label-line-height);font-size:var(--local-label-font-size);color:var(--local-label-color);font-weight:var(--local-label-font-weight);text-align:center;font-family:inherit;cursor:text;-webkit-user-select:text;-moz-user-select:text;user-select:text}.label-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.label.editing .label-text,\n.label.empty:not(.editing) .label-text,\n.label:not(.editing) .label-input{display:none}',""]);const r=s.toString()}}]);
|
|
2
|
-
//# sourceMappingURL=9393.
|
|
1
|
+
"use strict";(self.webpackChunk_next_bricks_diagram=self.webpackChunk_next_bricks_diagram||[]).push([[9393],{9393:(e,t,a)=>{a.r(t);var n,i,l,s,r,o,c,u,d,h,b,p,v,f,g,Z,w,k,m,y,E,C,x,M,N,W,S,L,R,D,P,A,I,B,K,O,z,T,_,H,q=a(3028),X=a(3395),Y=a(1815),$=a(381),j=a(687),F=a(5066),G=a(8657),J=a.n(G),Q=a(5727),U=a(305),V=(a(928),a(1105)),ee=a(7397),te=a(2779),ae=a.n(te),ne=a(1211),ie=a(2370),le=a(5702),se=a(6365),re=a(5731),oe=a(7853),ce=a(6462),ue=a(9575),de=a(2260),he=a(7587),be=a(1251),pe=a(4126),ve=a(7201),fe=a(5173),ge=a(4510),Ze=a(6436),{defineElement:we,property:ke,event:me,method:ye}=(0,Q.createDecorators)(),Ee=(0,G.forwardRef)(at);i=we("eo-diagram",{styleTexts:[Ze.Z]}),l=ke({type:String}),r=ke({attribute:!1}),c=ke({attribute:!1}),d=ke({attribute:!1}),b=ke({attribute:!1}),v=ke({attribute:!1}),g=ke({type:String}),w=ke({type:Boolean}),m=ke({attribute:!1}),E=me({type:"activeNode.change"}),N=me({type:"node.delete"}),R=me({type:"line.dblclick"}),I=me({type:"nodes.connect"}),z=ye();var Ce=new WeakMap,xe=new WeakMap,Me=new WeakMap,Ne=new WeakMap,We=new WeakMap,Se=new WeakMap,Le=new WeakMap,Re=new WeakMap,De=new WeakMap,Pe=new WeakMap,Ae=new WeakMap,Ie=new WeakMap,Be=new WeakMap,Ke=new WeakMap,Oe=new WeakMap,ze=new WeakMap,Te=new WeakMap,_e=new WeakMap,He=new WeakMap,qe=new WeakMap,Xe=new WeakMap,Ye=new WeakMap,$e=new WeakMap;class je extends U.ReactNextElement{constructor(){super(...arguments),(0,X.Z)(this,qe,{get:tt,set:et}),(0,X.Z)(this,Te,{get:Ve,set:Ue}),(0,X.Z)(this,Ke,{get:Qe,set:Je}),(0,X.Z)(this,Ae,{get:Ge,set:Fe}),(0,X.Z)(this,Ce,{writable:!0,value:(T(this),s(this))}),(0,X.Z)(this,xe,{writable:!0,value:o(this)}),(0,X.Z)(this,Me,{writable:!0,value:u(this)}),(0,X.Z)(this,Ne,{writable:!0,value:h(this)}),(0,X.Z)(this,We,{writable:!0,value:p(this)}),(0,X.Z)(this,Se,{writable:!0,value:f(this)}),(0,X.Z)(this,Le,{writable:!0,value:Z(this)}),(0,X.Z)(this,Re,{writable:!0,value:k(this)}),(0,X.Z)(this,De,{writable:!0,value:y(this)}),(0,X.Z)(this,Pe,{writable:!0,value:C(this)}),(0,X.Z)(this,Ie,{writable:!0,value:e=>{(0,j.Z)(this,Ae).emit(e)}}),(0,X.Z)(this,Be,{writable:!0,value:W(this)}),(0,X.Z)(this,Oe,{writable:!0,value:e=>{(0,j.Z)(this,Ke).emit(e)}}),(0,X.Z)(this,ze,{writable:!0,value:D(this)}),(0,X.Z)(this,_e,{writable:!0,value:e=>{(0,j.Z)(this,Te).emit(e)}}),(0,X.Z)(this,He,{writable:!0,value:B(this)}),(0,X.Z)(this,Xe,{writable:!0,value:e=>{(0,j.Z)(this,qe).emit(e)}}),(0,X.Z)(this,Ye,{writable:!0,value:e=>{this.activeNodeId=e}}),(0,X.Z)(this,$e,{writable:!0,value:(0,G.createRef)()})}get layout(){return(0,j.Z)(this,Ce)}set layout(e){(0,$.Z)(this,Ce,e)}get nodes(){return(0,j.Z)(this,xe)}set nodes(e){(0,$.Z)(this,xe,e)}get edges(){return(0,j.Z)(this,Me)}set edges(e){(0,$.Z)(this,Me,e)}get nodeBricks(){return(0,j.Z)(this,Ne)}set nodeBricks(e){(0,$.Z)(this,Ne,e)}get lines(){return(0,j.Z)(this,We)}set lines(e){(0,$.Z)(this,We,e)}get layoutOptions(){return(0,j.Z)(this,Se)}set layoutOptions(e){(0,$.Z)(this,Se,e)}get activeNodeId(){return(0,j.Z)(this,Le)}set activeNodeId(e){(0,$.Z)(this,Le,e)}get disableKeyboardAction(){return(0,j.Z)(this,Re)}set disableKeyboardAction(e){(0,$.Z)(this,Re,e)}get nodesConnect(){return(0,j.Z)(this,De)}set nodesConnect(e){(0,$.Z)(this,De,e)}callOnLineLabel(e,t){for(var a,n=arguments.length,i=new Array(n>2?n-2:0),l=2;l<n;l++)i[l-2]=arguments[l];null===(a=(0,j.Z)(this,$e).current)||void 0===a||a.callOnLineLabel(e,t,...i)}render(){return J().createElement(Ee,{ref:(0,j.Z)(this,$e),layout:this.layout,nodes:this.nodes,edges:this.edges,nodeBricks:this.nodeBricks,lines:this.lines,layoutOptions:this.layoutOptions,nodesConnect:this.nodesConnect,activeNodeId:this.activeNodeId,disableKeyboardAction:this.disableKeyboardAction,onActiveNodeChange:(0,j.Z)(this,Ie),onSwitchActiveNode:(0,j.Z)(this,Ye),onNodeDelete:(0,j.Z)(this,Oe),onLineDoubleClick:(0,j.Z)(this,_e),onNodesConnect:(0,j.Z)(this,Xe)})}}function Fe(e){M(this,e)}function Ge(){return x(this)}function Je(e){L(this,e)}function Qe(){return S(this)}function Ue(e){A(this,e)}function Ve(){return P(this)}function et(e){O(this,e)}function tt(){return K(this)}function at(e,t){var{layout:a,nodes:n,edges:i,nodeBricks:l,lines:s,layoutOptions:r,nodesConnect:o,activeNodeId:c,disableKeyboardAction:u,onActiveNodeChange:d,onSwitchActiveNode:h,onNodeDelete:b,onLineDoubleClick:p,onNodesConnect:v}=e,[f,g]=(0,G.useState)(null),[Z,w]=(0,G.useState)(!1),[k,m]=(0,G.useState)(0),[y,E]=(0,G.useState)(null),[C,x]=(0,G.useState)(0),[M,N]=(0,G.useState)(null),[W,S]=(0,G.useState)([]),[L,R]=(0,G.useState)([]),[D,P]=(0,G.useState)([]),A=(0,G.useRef)(null),[I,B]=(0,G.useState)(!1),[K,O]=(0,G.useState)({k:1,x:0,y:0}),z=(0,G.useRef)(new Map),T=(0,G.useRef)(null),_=(0,G.useRef)(null),[H,X]=(0,G.useState)([0,0]),[Y,$]=(0,G.useState)(!1),[j,F]=(0,G.useState)([0,0]),[Q,U]=(0,G.useState)(null);(0,G.useImperativeHandle)(t,(()=>({callOnLineLabel(e,t){for(var a,n=arguments.length,i=new Array(n>2?n-2:0),l=2;l<n;l++)i[l-2]=arguments[l];null==M||null===(a=M.get(e))||void 0===a||null===(a=a.firstElementChild)||void 0===a||a[t](...i)}})));var te=(0,G.useCallback)((e=>{(0,ge.k)(e,{nodes:n,nodesRefRepository:y,nodesConnect:o,setConnectLineState:U,setConnectLineTo:F,onSwitchActiveNode:h,onNodesConnect:v})}),[n,o,y,v,h]),Ze=(0,G.useMemo)((()=>(0,q.Z)({rankdir:"TB",ranksep:50,edgesep:10,nodesep:50,nodePadding:0},r)),[r]),{nodePadding:we}=Ze,ke=(0,G.useMemo)((()=>(0,ne.pick)(Ze,["rankdir","ranksep","edgesep","nodesep","align"])),[Ze]),me=(0,G.useRef)(!1);(0,G.useEffect)((()=>{if(me.current){var e=c?null==n?void 0:n.find((e=>e.id===c)):void 0;null==d||d(e)}else me.current=!0}),[n,c,d]),(0,G.useEffect)((()=>{g((e=>(0,fe.T)(e,n,i,ke)))}),[i,n,ke]),(0,G.useEffect)((()=>{var e=(0,ve.E)({graph:f,nodesRefRepository:y,nodePadding:we});e&&(S(e.nodes),R(e.edges))}),[f,y,k,we]);var{renderedLines:ye,markers:Ee}=(0,G.useMemo)((()=>(0,re.b)(L,s)),[s,L]);(0,G.useEffect)((()=>{var e=T.current;if(e&&!u){var t=e=>{var t=(0,le.p)(e,{renderedNodes:W,renderedEdges:L,activeNodeId:c});"delete-node"===(null==t?void 0:t.action)?null==b||b(t.node):"switch-active-node"===(null==t?void 0:t.action)&&t.node&&(null==h||h(t.node.id))};return e.addEventListener("keydown",t),()=>{e.removeEventListener("keydown",t)}}}),[c,W,L,u,h,b]);var Ce=(0,G.useCallback)((e=>{e&&(m((e=>e+1)),E(e)),w((t=>t||!!e))}),[]),xe=(0,G.useCallback)((e=>{e&&(x((e=>e+1)),N(e))}),[]);(0,G.useEffect)((()=>{var e=T.current,t=A.current;if(e&&t){var a=!1,n=(0,ee.sP)().scaleExtent([1,1]).on("start",(()=>{a=!1,B(!0)})).on("zoom",(e=>{a=!0,O(e.transform)})).on("end",(()=>{B(!1),a||null==h||h(void 0)}));(0,V.Z)(t).call(n),(0,V.Z)(e).on("wheel.zoom",(e=>{e.stopPropagation(),e.preventDefault(),e.ctrlKey||n.translateBy((0,V.Z)(t),e.wheelDeltaX/5,e.wheelDeltaY/5)}))}}),[h]),(0,G.useEffect)((()=>{var e=T.current;0!==W.length&&e&&!Y&&(X((0,se.i)(W,[e.clientWidth,e.clientHeight])),$(!0))}),[Y,W]);var Me=(0,G.useMemo)((()=>"".concat((0,ne.uniqueId)("diagram-"),"-")),[]),Ne="".concat(Me,"line-arrow-"),We="".concat(Me,"clip-path-");(0,G.useEffect)((()=>{P((e=>(0,pe.K)(e,ye,z.current)))}),[ye]);var[Se,Le]=J().useState([]);if((0,G.useEffect)((()=>{M&&Le((0,be.i)(D,M))}),[C,M,D]),"dagre"!==a)return J().createElement("div",null,'Diagram layout not supported: "'.concat(a,'"'));var Re=[H[0]+K.x,H[1]+K.y];return J().createElement("div",{className:ae()("diagram",{ready:Z&&Y}),tabIndex:-1,ref:T,onMouseDown:te},J().createElement("div",{className:ae()("dragger",{grabbing:I}),ref:A}),J().createElement("svg",{width:"100%",height:"100%",className:"lines"},J().createElement("defs",null,Ee.map(((e,t)=>{var{strokeColor:a}=e;return J().createElement(ue.C,{key:t,id:"".concat(Ne).concat(t),strokeColor:a})})),Se.map((e=>J().createElement(de.K,{key:e.id,clipPath:e,clipPathPrefix:We,renderedLineLabels:D})))),J().createElement("g",{transform:"translate(".concat(Re[0]," ").concat(Re[1],") scale(").concat(K.k,")")},ye.map((e=>J().createElement(ce.y,{key:e.line.$id,line:e,linePaths:z.current,clipPathList:Se,markerPrefix:Ne,clipPathPrefix:We,onLineDoubleClick:p}))))),J().createElement("div",{className:"line-labels",style:{left:Re[0],top:Re[1]}},J().createElement(oe.L8,{labels:D,onRendered:xe})),J().createElement("div",{className:"nodes",ref:_,style:{left:Re[0],top:Re[1]}},J().createElement(ie.n,{nodes:n,nodeBricks:l,onRendered:Ce})),J().createElement(he.f,{connectLineState:Q,connectLineTo:j,markerPrefix:Ne}))}_=je,({e:[s,o,u,h,p,f,Z,k,y,C,x,M,W,S,L,D,P,A,B,K,O,T],c:[H,n]}=(0,F.Z)(_,[[l,1,"layout"],[r,1,"nodes"],[c,1,"edges"],[d,1,"nodeBricks"],[b,1,"lines"],[v,1,"layoutOptions"],[g,1,"activeNodeId"],[w,1,"disableKeyboardAction"],[m,1,"nodesConnect"],[E,1,"activeNodeChangeEvent",e=>(0,j.Z)(e,Pe),(e,t)=>(0,$.Z)(e,Pe,t)],[N,1,"nodeDelete",e=>(0,j.Z)(e,Be),(e,t)=>(0,$.Z)(e,Be,t)],[R,1,"lineDoubleClick",e=>(0,j.Z)(e,ze),(e,t)=>(0,$.Z)(e,ze,t)],[I,1,"nodesConnect",e=>(0,j.Z)(e,He),(e,t)=>(0,$.Z)(e,He,t)],[z,2,"callOnLineLabel"]],[i],0,(e=>$e.has((0,Y.Z)(e))),U.ReactNextElement)),n();var nt,it,lt,st,rt,ot,ct,ut,dt,ht,bt,pt,vt,ft,gt,Zt,wt,kt,mt=a(8074),{defineElement:yt,property:Et,event:Ct,method:xt}=(0,Q.createDecorators)(),Mt=(0,G.forwardRef)(_t);it=yt("diagram.editable-label",{styleTexts:[mt.Z]}),lt=Et(),rt=Et({render:!1}),ct=Ct({type:"label.editing.change"}),bt=Ct({type:"label.change"}),gt=xt();var Nt=new WeakMap,Wt=new WeakMap,St=new WeakMap,Lt=new WeakMap,Rt=new WeakMap,Dt=new WeakMap,Pt=new WeakMap,At=new WeakMap,It=new WeakMap;class Bt extends U.ReactNextElement{constructor(){super(...arguments),(0,X.Z)(this,Pt,{get:Tt,set:zt}),(0,X.Z)(this,Lt,{get:Ot,set:Kt}),(0,X.Z)(this,Nt,{writable:!0,value:(Zt(this),st(this))}),(0,X.Z)(this,Wt,{writable:!0,value:ot(this)}),(0,X.Z)(this,St,{writable:!0,value:ut(this)}),(0,X.Z)(this,Rt,{writable:!0,value:e=>{(0,j.Z)(this,Lt).emit(e)}}),(0,X.Z)(this,Dt,{writable:!0,value:pt(this)}),(0,X.Z)(this,At,{writable:!0,value:e=>{(0,j.Z)(this,Pt).emit(e)}}),(0,X.Z)(this,It,{writable:!0,value:(0,G.createRef)()})}get label(){return(0,j.Z)(this,Nt)}set label(e){(0,$.Z)(this,Nt,e)}get type(){return(0,j.Z)(this,Wt)}set type(e){(0,$.Z)(this,Wt,e)}enableEditing(){var e;null===(e=(0,j.Z)(this,It).current)||void 0===e||e.enableEditing()}render(){return J().createElement(Mt,{ref:(0,j.Z)(this,It),label:this.label,onLabelEditingChange:(0,j.Z)(this,Rt),onLabelChange:(0,j.Z)(this,At)})}}function Kt(e){ht(this,e)}function Ot(){return dt(this)}function zt(e){ft(this,e)}function Tt(){return vt(this)}function _t(e,t){var{label:a,onLabelChange:n,onLabelEditingChange:i}=e,l=null!=a?a:"",[s,r]=(0,G.useState)(l),[o,c]=(0,G.useState)(!1),u=(0,G.useRef)(!1),[d,h]=(0,G.useState)(!1),b=(0,G.useRef)(null);(0,G.useImperativeHandle)(t,(()=>({enableEditing(){c(!0)}}))),(0,G.useEffect)((()=>{r(l)}),[l]);var p=(0,G.useCallback)((e=>{e.preventDefault(),e.stopPropagation(),c(!0)}),[]);(0,G.useEffect)((()=>{var e,t;o&&(null===(e=b.current)||void 0===e||e.focus({preventScroll:!0}),null===(t=b.current)||void 0===t||t.select())}),[o]),(0,G.useEffect)((()=>{u.current?null==i||i(o):u.current=!0}),[o,i]);var v=(0,G.useCallback)((e=>{r(e.target.value)}),[]),f=(0,G.useCallback)((e=>{var t,a=e.key||e.keyCode||e.which;"Enter"!==a&&13!==a||null===(t=b.current)||void 0===t||t.blur()}),[]),g=(0,G.useCallback)((()=>{c(!1),h(!0)}),[]);return(0,G.useEffect)((()=>{d&&(null==n||n(s),h(!1))}),[s,n,d]),J().createElement("div",{className:ae()("label",{editing:o,empty:!s})},J().createElement("input",{className:"label-input",value:s,ref:b,onChange:v,onKeyDown:f,onBlur:g}),J().createElement("div",{className:"label-text",onDoubleClick:p},s))}wt=Bt,({e:[st,ot,ut,dt,ht,pt,vt,ft,Zt],c:[kt,nt]}=(0,F.Z)(wt,[[lt,1,"label"],[rt,1,"type"],[ct,1,"labelEditingChange",e=>(0,j.Z)(e,St),(e,t)=>(0,$.Z)(e,St,t)],[bt,1,"labelChange",e=>(0,j.Z)(e,Dt),(e,t)=>(0,$.Z)(e,Dt,t)],[gt,2,"enableEditing"]],[it],0,(e=>It.has((0,Y.Z)(e))),U.ReactNextElement)),nt()},8074:(e,t,a)=>{a.d(t,{Z:()=>r});var n=a(9601),i=a.n(n),l=a(2609),s=a.n(l)()(i());s.push([e.id,':host{display:block;--local-label-line-height:inherit;--local-label-font-size:inherit;--local-label-color:inherit;--local-label-font-weight:inherit}:host([hidden]){display:none}:host([type="line"]){--local-label-line-height:18px;--local-label-font-size:11px;--local-label-color:var(--color-secondary-text);--local-label-font-weight:400}*{box-sizing:border-box}.label{max-width:168px;margin:-3px}.label-text,\n.label-input{width:100%;height:24px;padding:3px;border:none;line-height:var(--local-label-line-height);font-size:var(--local-label-font-size);color:var(--local-label-color);font-weight:var(--local-label-font-weight);text-align:center;font-family:inherit;cursor:text;-webkit-user-select:text;-moz-user-select:text;user-select:text}.label-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.label.editing .label-text,\n.label.empty:not(.editing) .label-text,\n.label:not(.editing) .label-input{display:none}',""]);const r=s.toString()}}]);
|
|
2
|
+
//# sourceMappingURL=9393.4db156f6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/9393.d2e61225.js","mappings":"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","sources":["webpack:///./src/diagram/index.tsx","webpack:///./src/editable-label/index.tsx","webpack:///./src/editable-label/styles.shadow.css"],"sourcesContent":["import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport dagre from \"@dagrejs/dagre\";\nimport { select } from \"d3-selection\";\nimport { zoom } from \"d3-zoom\";\nimport classNames from \"classnames\";\nimport { pick, uniqueId } from \"lodash\";\nimport type {\n DiagramEdge,\n DiagramNode,\n LayoutOptionsDagre,\n LineConf,\n NodeBrickConf,\n PositionTuple,\n RefRepository,\n RenderedEdge,\n RenderedLineLabel,\n RenderedNode,\n LineTextClipPath,\n TransformLiteral,\n LineTarget,\n ConnectLineDetail,\n NodesConnectOptions,\n ConnectLineState,\n} from \"./interfaces\";\nimport { NodeComponentGroup } from \"./NodeComponent\";\nimport { handleKeyboard } from \"./processors/handleKeyboard\";\nimport { getCenterOffsets } from \"./processors/getCenterOffsets\";\nimport { getRenderedLinesAndMarkers } from \"./processors/getRenderedLinesAndMarkers\";\nimport { LineLabelComponentGroup } from \"./LineLabelComponent\";\nimport { LineComponent } from \"./LineComponent\";\nimport { MarkerComponent } from \"./MarkerComponent\";\nimport { ClipPathComponent } from \"./ClipPathComponent\";\nimport { ConnectLineComponent } from \"./ConnectLineComponent\";\nimport { getClipPathList } from \"./processors/getClipPathList\";\nimport { getRenderedLineLabels } from \"./processors/getRenderedLineLabels\";\nimport { getRenderedDiagram } from \"./processors/getRenderedDiagram\";\nimport { getDagreGraph } from \"./processors/getDagreGraph\";\nimport { handleDiagramMouseDown } from \"./processors/handleDiagramMouseDown\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface EoDiagramProps {\n layout?: \"dagre\";\n nodes?: DiagramNode[];\n edges?: DiagramEdge[];\n nodeBricks?: NodeBrickConf[];\n lines?: LineConf[];\n layoutOptions?: LayoutOptionsDagre;\n nodesConnect?: NodesConnectOptions;\n // activeType?: \"node\" | \"edge\";\n activeNodeId?: string;\n // activeEdge?: DiagramEdge;\n disableKeyboardAction?: boolean;\n}\n\nexport interface DiagramRef {\n callOnLineLabel(id: string, method: string, ...args: unknown[]): void;\n}\n\nexport interface DiagramHandler {\n moveIntoView(id: string): void;\n}\n\nexport const EoDiagramComponent = forwardRef(LegacyEoDiagramComponent);\n\n/**\n * 构件 `eo-diagram`\n */\nexport\n@defineElement(\"eo-diagram\", {\n styleTexts: [styleText],\n})\nclass EoDiagram extends ReactNextElement implements EoDiagramProps {\n /**\n * @required\n */\n @property({ type: String })\n accessor layout: \"dagre\" | undefined;\n\n @property({ attribute: false })\n accessor nodes: DiagramNode[] | undefined;\n\n @property({ attribute: false })\n accessor edges: DiagramEdge[] | undefined;\n\n @property({ attribute: false })\n accessor nodeBricks: NodeBrickConf[] | undefined;\n\n @property({ attribute: false })\n accessor lines: LineConf[] | undefined;\n\n @property({ attribute: false })\n accessor layoutOptions: LayoutOptionsDagre | undefined;\n\n // @property({ type: String })\n // accessor activeType: \"node\" | \"edge\" | undefined;\n\n @property({ type: String })\n accessor activeNodeId: string | undefined;\n\n // @property({ attribute: false })\n // accessor activeEdge: DiagramEdge | undefined;\n\n @property({ type: Boolean })\n accessor disableKeyboardAction: boolean | undefined;\n\n @property({ attribute: false })\n accessor nodesConnect: NodesConnectOptions | undefined;\n\n @event({ type: \"activeNode.change\" })\n accessor #activeNodeChangeEvent!: EventEmitter<DiagramNode | undefined>;\n\n #handleActiveNodeChange = (node: DiagramNode | undefined) => {\n // this.activeNodeId = node?.id;\n this.#activeNodeChangeEvent.emit(node);\n };\n\n @event({ type: \"node.delete\" })\n accessor #nodeDelete!: EventEmitter<DiagramNode>;\n\n #handleNodeDelete = (node: DiagramNode) => {\n this.#nodeDelete.emit(node);\n };\n\n @event({ type: \"line.dblclick\" })\n accessor #lineDoubleClick!: EventEmitter<LineTarget>;\n\n #handleLineDoubleClick = (line: LineTarget) => {\n this.#lineDoubleClick.emit(line);\n };\n\n @event({ type: \"nodes.connect\" })\n accessor #nodesConnect!: EventEmitter<ConnectLineDetail>;\n\n #handleNodesConnect = (detail: ConnectLineDetail) => {\n this.#nodesConnect.emit(detail);\n };\n\n #handleSwitchActiveNode = (id: string | undefined) => {\n this.activeNodeId = id;\n };\n\n #diagramRef = createRef<DiagramRef>();\n\n @method()\n callOnLineLabel(id: string, method: string, ...args: unknown[]) {\n this.#diagramRef.current?.callOnLineLabel(id, method, ...args);\n }\n\n render() {\n return (\n <EoDiagramComponent\n ref={this.#diagramRef}\n layout={this.layout}\n nodes={this.nodes}\n edges={this.edges}\n nodeBricks={this.nodeBricks}\n lines={this.lines}\n layoutOptions={this.layoutOptions}\n nodesConnect={this.nodesConnect}\n // activeType={this.activeType}\n activeNodeId={this.activeNodeId}\n // activeEdge={this.activeEdge}\n disableKeyboardAction={this.disableKeyboardAction}\n onActiveNodeChange={this.#handleActiveNodeChange}\n onSwitchActiveNode={this.#handleSwitchActiveNode}\n onNodeDelete={this.#handleNodeDelete}\n onLineDoubleClick={this.#handleLineDoubleClick}\n onNodesConnect={this.#handleNodesConnect}\n />\n );\n }\n}\n\nexport interface EoDiagramComponentProps extends EoDiagramProps {\n onActiveNodeChange?(node: DiagramNode | undefined): void;\n onSwitchActiveNode?(id: string | undefined): void;\n onNodeDelete?(node: DiagramNode): void;\n onLineDoubleClick?(line: LineTarget): void;\n onNodesConnect?(detail: ConnectLineDetail): void;\n}\n\nexport function LegacyEoDiagramComponent(\n {\n layout,\n nodes,\n edges,\n nodeBricks,\n lines,\n layoutOptions,\n nodesConnect,\n // activeType,\n activeNodeId,\n // activeEdge,\n disableKeyboardAction,\n onActiveNodeChange,\n onSwitchActiveNode,\n onNodeDelete,\n onLineDoubleClick,\n onNodesConnect,\n }: EoDiagramComponentProps,\n ref: React.Ref<DiagramRef>\n) {\n const [graph, setGraph] = useState<dagre.graphlib.Graph<RenderedNode> | null>(\n null\n );\n const [nodesReady, setNodesReady] = useState(false);\n const [nodesRenderId, setNodesRenderId] = useState(0);\n const [nodesRefRepository, setNodesRefRepository] =\n useState<RefRepository | null>(null);\n // const [lineLabelsReady, setLineLabelsReady] = useState(false);\n const [lineLabelsRenderId, setLineLabelsRenderId] = useState(0);\n const [lineLabelsRefRepository, setLineLabelsRefRepository] =\n useState<RefRepository | null>(null);\n const [renderedNodes, setRenderedNodes] = useState<RenderedNode[]>([]);\n const [renderedEdges, setRenderedEdges] = useState<RenderedEdge[]>([]);\n const [renderedLineLabels, setRenderedLineLabels] = useState<\n RenderedLineLabel[]\n >([]);\n\n const draggerRef = useRef<HTMLDivElement>(null);\n const [grabbing, setGrabbing] = useState(false);\n const [transform, setTransform] = useState<TransformLiteral>({\n k: 1,\n x: 0,\n y: 0,\n });\n\n const linePathsRef = useRef(new Map<string, SVGPathElement | null>());\n\n const rootRef = useRef<HTMLDivElement>(null);\n const nodesRef = useRef<HTMLDivElement>(null);\n const [offsets, setOffsets] = useState<PositionTuple>([0, 0]);\n const [centered, setCentered] = useState(false);\n\n const [connectLineTo, setConnectLineTo] = useState<PositionTuple>([0, 0]);\n const [connectLineState, setConnectLineState] =\n useState<ConnectLineState | null>(null);\n\n useImperativeHandle(ref, () => ({\n callOnLineLabel(id, method, ...args) {\n (\n lineLabelsRefRepository?.get(id)\n ?.firstElementChild as unknown as Record<string, Function>\n )?.[method](...args);\n },\n }));\n\n const onDiagramMouseDown = useCallback(\n (event: React.MouseEvent) => {\n handleDiagramMouseDown(event, {\n nodes,\n nodesRefRepository,\n nodesConnect,\n setConnectLineState,\n setConnectLineTo,\n onSwitchActiveNode,\n onNodesConnect,\n });\n },\n [\n nodes,\n nodesConnect,\n nodesRefRepository,\n onNodesConnect,\n onSwitchActiveNode,\n ]\n );\n\n const fixedOptions = useMemo(\n () => ({\n rankdir: \"TB\",\n ranksep: 50,\n edgesep: 10,\n nodesep: 50,\n // align: undefined,\n nodePadding: 0,\n ...layoutOptions,\n }),\n [layoutOptions]\n );\n\n const { nodePadding } = fixedOptions;\n const dagreGraphOptions = useMemo(\n () =>\n pick(fixedOptions, [\"rankdir\", \"ranksep\", \"edgesep\", \"nodesep\", \"align\"]),\n [fixedOptions]\n );\n\n const activeNodeChangeInitialized = useRef(false);\n useEffect(() => {\n if (!activeNodeChangeInitialized.current) {\n activeNodeChangeInitialized.current = true;\n return;\n }\n const nextActiveNode = activeNodeId\n ? nodes?.find((node) => node.id === activeNodeId)\n : undefined;\n onActiveNodeChange?.(nextActiveNode);\n }, [nodes, activeNodeId, onActiveNodeChange]);\n\n useEffect(() => {\n setGraph((previousGraph) =>\n getDagreGraph(previousGraph, nodes, edges, dagreGraphOptions)\n );\n }, [edges, nodes, dagreGraphOptions]);\n\n useEffect(() => {\n const renderedDiagram = getRenderedDiagram({\n graph,\n nodesRefRepository,\n nodePadding,\n });\n if (renderedDiagram) {\n setRenderedNodes(renderedDiagram.nodes);\n setRenderedEdges(renderedDiagram.edges);\n }\n }, [graph, nodesRefRepository, nodesRenderId, nodePadding]);\n\n const { renderedLines, markers } = useMemo(\n () => getRenderedLinesAndMarkers(renderedEdges, lines),\n [lines, renderedEdges]\n );\n\n useEffect(() => {\n const root = rootRef.current;\n if (!root || disableKeyboardAction) {\n return;\n }\n const onKeydown = (event: KeyboardEvent) => {\n const action = handleKeyboard(event, {\n renderedNodes,\n renderedEdges,\n activeNodeId,\n });\n\n if (action?.action === \"delete-node\") {\n onNodeDelete?.(action.node);\n } else if (action?.action === \"switch-active-node\" && action.node) {\n onSwitchActiveNode?.(action.node.id);\n }\n };\n root.addEventListener(\"keydown\", onKeydown);\n return () => {\n root.removeEventListener(\"keydown\", onKeydown);\n };\n }, [\n activeNodeId,\n renderedNodes,\n renderedEdges,\n disableKeyboardAction,\n onSwitchActiveNode,\n onNodeDelete,\n ]);\n\n const handleNodesRendered = useCallback(\n (refRepository: RefRepository | null) => {\n if (refRepository) {\n setNodesRenderId((previous) => previous + 1);\n setNodesRefRepository(refRepository);\n }\n setNodesReady((previous) => previous || !!refRepository);\n },\n []\n );\n\n const handleLineLabelsRendered = useCallback(\n (refRepository: RefRepository | null) => {\n if (refRepository) {\n setLineLabelsRenderId((previous) => previous + 1);\n setLineLabelsRefRepository(refRepository);\n }\n // setLineLabelsReady((previous) => previous || !!refRepository);\n },\n []\n );\n\n useEffect(() => {\n const root = rootRef.current;\n const dragger = draggerRef.current as Element;\n if (!root || !dragger) {\n return;\n }\n let moved = false;\n const zoomer = zoom()\n .scaleExtent([1, 1])\n .on(\"start\", () => {\n moved = false;\n setGrabbing(true);\n })\n .on(\"zoom\", (e) => {\n moved = true;\n setTransform(e.transform);\n })\n .on(\"end\", () => {\n setGrabbing(false);\n if (!moved) {\n onSwitchActiveNode?.(undefined);\n }\n });\n select(dragger).call(zoomer);\n\n select(root).on(\"wheel.zoom\", (e) => {\n e.stopPropagation();\n e.preventDefault();\n // Mac OS trackpad pinch event is emitted as a wheel.zoom and d3.event.ctrlKey set to true\n if (!e.ctrlKey) {\n zoomer.translateBy(\n select(dragger),\n e.wheelDeltaX / 5,\n e.wheelDeltaY / 5\n );\n }\n });\n }, [onSwitchActiveNode]);\n\n useEffect(() => {\n const root = rootRef.current;\n if (renderedNodes.length === 0 || !root || centered) {\n return;\n }\n setOffsets(\n getCenterOffsets(renderedNodes, [root.clientWidth, root.clientHeight])\n );\n setCentered(true);\n }, [centered, renderedNodes]);\n\n const defPrefix = useMemo(() => `${uniqueId(\"diagram-\")}-`, []);\n const markerPrefix = `${defPrefix}line-arrow-`;\n const clipPathPrefix = `${defPrefix}clip-path-`;\n\n useEffect(() => {\n setRenderedLineLabels((previous) =>\n getRenderedLineLabels(previous, renderedLines, linePathsRef.current)\n );\n }, [renderedLines]);\n\n const [clipPathList, setClipPathList] = React.useState<LineTextClipPath[]>(\n []\n );\n\n useEffect(() => {\n if (!lineLabelsRefRepository) {\n return;\n }\n setClipPathList(\n getClipPathList(renderedLineLabels, lineLabelsRefRepository)\n );\n }, [lineLabelsRenderId, lineLabelsRefRepository, renderedLineLabels]);\n\n if (layout !== \"dagre\") {\n return <div>{`Diagram layout not supported: \"${layout}\"`}</div>;\n }\n\n const rootOffsets = [offsets[0] + transform.x, offsets[1] + transform.y];\n\n return (\n <div\n className={classNames(\"diagram\", { ready: nodesReady && centered })}\n tabIndex={-1}\n ref={rootRef}\n onMouseDown={onDiagramMouseDown}\n >\n <div className={classNames(\"dragger\", { grabbing })} ref={draggerRef} />\n <svg width=\"100%\" height=\"100%\" className=\"lines\">\n <defs>\n {markers.map(({ strokeColor }, index) => (\n <MarkerComponent\n key={index}\n id={`${markerPrefix}${index}`}\n strokeColor={strokeColor}\n />\n ))}\n {clipPathList.map((clipPath) => (\n <ClipPathComponent\n key={clipPath.id}\n clipPath={clipPath}\n clipPathPrefix={clipPathPrefix}\n renderedLineLabels={renderedLineLabels}\n />\n ))}\n </defs>\n <g\n transform={`translate(${rootOffsets[0]} ${rootOffsets[1]}) scale(${transform.k})`}\n >\n {renderedLines.map((line) => (\n <LineComponent\n key={line.line.$id}\n line={line}\n linePaths={linePathsRef.current}\n clipPathList={clipPathList}\n markerPrefix={markerPrefix}\n clipPathPrefix={clipPathPrefix}\n onLineDoubleClick={onLineDoubleClick}\n />\n ))}\n </g>\n </svg>\n <div\n className=\"line-labels\"\n style={{\n left: rootOffsets[0],\n top: rootOffsets[1],\n }}\n >\n <LineLabelComponentGroup\n labels={renderedLineLabels}\n onRendered={handleLineLabelsRendered}\n />\n </div>\n <div\n className=\"nodes\"\n ref={nodesRef}\n style={{\n left: rootOffsets[0],\n top: rootOffsets[1],\n }}\n >\n <NodeComponentGroup\n nodes={nodes}\n nodeBricks={nodeBricks}\n // nodePositions={nodePositions}\n onRendered={handleNodesRendered}\n />\n </div>\n <ConnectLineComponent\n connectLineState={connectLineState}\n connectLineTo={connectLineTo}\n markerPrefix={markerPrefix}\n />\n </div>\n );\n}\n","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport classNames from \"classnames\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface EditableLabelProps {\n label?: string;\n type?: LabelType;\n}\n\nexport type LabelType = \"line\" | \"default\";\n\nexport interface EditableLabelRef {\n enableEditing(): void;\n}\n\nexport const EditableLabelComponent = forwardRef(LegacyEditableLabelComponent);\n\n/**\n * 构件 `diagram.editable-label`\n */\nexport\n@defineElement(\"diagram.editable-label\", {\n styleTexts: [styleText],\n})\nclass EditableLabel extends ReactNextElement implements EditableLabelProps {\n @property()\n accessor label: string | undefined;\n\n @property({ render: false })\n accessor type: LabelType | undefined;\n\n @event({ type: \"label.editing.change\" })\n accessor #labelEditingChange!: EventEmitter<boolean>;\n\n #handleLabelEditingChange = (value: boolean) => {\n this.#labelEditingChange.emit(value);\n };\n\n @event({ type: \"label.change\" })\n accessor #labelChange!: EventEmitter<string>;\n\n #handleLabelChange = (value: string) => {\n this.#labelChange.emit(value);\n };\n\n @method()\n enableEditing() {\n this.#editableLabelRef.current?.enableEditing();\n }\n\n #editableLabelRef = createRef<EditableLabelRef>();\n\n render() {\n return (\n <EditableLabelComponent\n ref={this.#editableLabelRef}\n label={this.label}\n onLabelEditingChange={this.#handleLabelEditingChange}\n onLabelChange={this.#handleLabelChange}\n />\n );\n }\n}\n\nexport interface EditableLabelComponentProps extends EditableLabelProps {\n onLabelEditingChange?(value: boolean): void;\n onLabelChange?(value: string): void;\n}\n\nexport function LegacyEditableLabelComponent(\n {\n label: _label,\n onLabelChange,\n onLabelEditingChange,\n }: EditableLabelComponentProps,\n ref: React.Ref<EditableLabelRef>\n) {\n const label = _label ?? \"\";\n const [currentLabel, setCurrentLabel] = useState<string>(label);\n const [editingLabel, setEditingLabel] = useState(false);\n const editingLabelInitialized = useRef(false);\n const [shouldEmitLabelChange, setShouldEmitLabelChange] = useState(false);\n const labelInputRef = useRef<HTMLInputElement>(null);\n\n useImperativeHandle(ref, () => ({\n enableEditing() {\n setEditingLabel(true);\n },\n }));\n\n useEffect(() => {\n setCurrentLabel(label);\n }, [label]);\n\n const handleEditLabel = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setEditingLabel(true);\n }, []);\n\n useEffect(() => {\n if (editingLabel) {\n // Prevent scroll when focusing.\n // Otherwise the diagram svg may be clipped in Chrome.\n labelInputRef.current?.focus({ preventScroll: true });\n labelInputRef.current?.select();\n }\n }, [editingLabel]);\n\n useEffect(() => {\n if (editingLabelInitialized.current) {\n onLabelEditingChange?.(editingLabel);\n } else {\n editingLabelInitialized.current = true;\n }\n }, [editingLabel, onLabelEditingChange]);\n\n const handleInputChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n setCurrentLabel(event.target.value);\n },\n []\n );\n\n const handleInputKeydown = useCallback((event: React.KeyboardEvent) => {\n const key =\n event.key ||\n /* istanbul ignore next: compatibility */ event.keyCode ||\n /* istanbul ignore next: compatibility */ event.which;\n if (key === \"Enter\" || key === 13) {\n labelInputRef.current?.blur();\n }\n }, []);\n\n const handleInputBlur = useCallback(() => {\n setEditingLabel(false);\n setShouldEmitLabelChange(true);\n }, []);\n\n useEffect(() => {\n if (shouldEmitLabelChange) {\n onLabelChange?.(currentLabel);\n setShouldEmitLabelChange(false);\n }\n }, [currentLabel, onLabelChange, shouldEmitLabelChange]);\n\n return (\n <div\n className={classNames(\"label\", {\n editing: editingLabel,\n empty: !currentLabel,\n })}\n >\n <input\n className=\"label-input\"\n value={currentLabel}\n ref={labelInputRef}\n onChange={handleInputChange}\n onKeyDown={handleInputKeydown}\n onBlur={handleInputBlur}\n />\n <div className=\"label-text\" onDoubleClick={handleEditLabel}>\n {currentLabel}\n </div>\n </div>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;--local-label-line-height:inherit;--local-label-font-size:inherit;--local-label-color:inherit;--local-label-font-weight:inherit}:host([hidden]){display:none}:host([type=\"line\"]){--local-label-line-height:18px;--local-label-font-size:11px;--local-label-color:var(--color-secondary-text);--local-label-font-weight:400}*{box-sizing:border-box}.label{max-width:168px;margin:-3px}.label-text,\n.label-input{width:100%;height:24px;padding:3px;border:none;line-height:var(--local-label-line-height);font-size:var(--local-label-font-size);color:var(--local-label-color);font-weight:var(--local-label-font-weight);text-align:center;font-family:inherit;cursor:text;-webkit-user-select:text;-moz-user-select:text;user-select:text}.label-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.label.editing .label-text,\n.label.empty:not(.editing) .label-text,\n.label:not(.editing) .label-input{display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["_EoDiagram","defineElement","property","event","method","createDecorators","EoDiagramComponent","forwardRef","LegacyEoDiagramComponent","_dec","styleTexts","styleText","_dec2","type","String","_dec3","attribute","_dec4","_dec5","_dec6","_dec7","_dec8","_dec9","Boolean","_dec10","_dec11","_dec12","_dec13","_dec14","_dec15","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_activeNodeChangeEvent","_handleActiveNodeChange","_K","_nodeDelete","_handleNodeDelete","_L","_lineDoubleClick","_handleLineDoubleClick","_M","_nodesConnect","_handleNodesConnect","_handleSwitchActiveNode","_diagramRef","EoDiagram","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","get","_get_nodesConnect2","set","_set_nodesConnect2","_get_lineDoubleClick2","_set_lineDoubleClick2","_get_nodeDelete2","_set_nodeDelete2","_get_activeNodeChangeEvent2","_set_activeNodeChangeEvent2","writable","value","_initProto","_init_layout","_init_nodes","_init_edges","_init_nodeBricks","_init_lines","_init_layoutOptions","_init_activeNodeId","_init_disableKeyboardAction","_init_nodesConnect","_init_activeNodeChangeEvent","node","_classPrivateFieldGet","this","emit","_init_nodeDelete","_init_lineDoubleClick","line","_init_nodesConnect2","detail","id","activeNodeId","createRef","layout","v","_classPrivateFieldSet","nodes","edges","nodeBricks","lines","layoutOptions","disableKeyboardAction","nodesConnect","callOnLineLabel","_classPrivateFieldGet2","_len","length","args","Array","_key","current","render","React","ref","onActiveNodeChange","onSwitchActiveNode","onNodeDelete","onLineDoubleClick","onNodesConnect","_set_activeNodeChangeEvent","_get_activeNodeChangeEvent","_set_nodeDelete","_get_nodeDelete","_set_lineDoubleClick","_get_lineDoubleClick","_set_nodesConnect","_get_nodesConnect","_ref","graph","setGraph","useState","nodesReady","setNodesReady","nodesRenderId","setNodesRenderId","nodesRefRepository","setNodesRefRepository","lineLabelsRenderId","setLineLabelsRenderId","lineLabelsRefRepository","setLineLabelsRefRepository","renderedNodes","setRenderedNodes","renderedEdges","setRenderedEdges","renderedLineLabels","setRenderedLineLabels","draggerRef","useRef","grabbing","setGrabbing","transform","setTransform","k","x","y","linePathsRef","Map","rootRef","nodesRef","offsets","setOffsets","centered","setCentered","connectLineTo","setConnectLineTo","connectLineState","setConnectLineState","useImperativeHandle","_lineLabelsRefReposit","_len2","_key2","firstElementChild","onDiagramMouseDown","useCallback","handleDiagramMouseDown","fixedOptions","useMemo","_objectSpread","rankdir","ranksep","edgesep","nodesep","nodePadding","dagreGraphOptions","pick","activeNodeChangeInitialized","useEffect","nextActiveNode","find","undefined","previousGraph","getDagreGraph","renderedDiagram","getRenderedDiagram","renderedLines","markers","getRenderedLinesAndMarkers","root","onKeydown","action","handleKeyboard","addEventListener","removeEventListener","handleNodesRendered","refRepository","previous","handleLineLabelsRendered","dragger","moved","zoomer","zoom","scaleExtent","on","e","select","call","stopPropagation","preventDefault","ctrlKey","translateBy","wheelDeltaX","wheelDeltaY","getCenterOffsets","clientWidth","clientHeight","defPrefix","concat","uniqueId","markerPrefix","clipPathPrefix","getRenderedLineLabels","clipPathList","setClipPathList","getClipPathList","rootOffsets","className","classNames","ready","tabIndex","onMouseDown","width","height","map","_ref2","index","strokeColor","MarkerComponent","key","clipPath","ClipPathComponent","LineComponent","$id","linePaths","style","left","top","LineLabelComponentGroup","labels","onRendered","NodeComponentGroup","ConnectLineComponent","_class","c","_initClass","_applyDecs","o","_","has","_checkInRHS","_EditableLabel","EditableLabelComponent","LegacyEditableLabelComponent","_labelEditingChange","_handleLabelEditingChange","_labelChange","_handleLabelChange","_editableLabelRef","EditableLabel","_get_labelChange2","_set_labelChange2","_get_labelEditingChange2","_set_labelEditingChange2","_init_label","_init_type","_init_labelEditingChange","_init_labelChange","label","enableEditing","onLabelEditingChange","onLabelChange","_set_labelEditingChange","_get_labelEditingChange","_set_labelChange","_get_labelChange","_label","currentLabel","setCurrentLabel","editingLabel","setEditingLabel","editingLabelInitialized","shouldEmitLabelChange","setShouldEmitLabelChange","labelInputRef","handleEditLabel","_labelInputRef$curren","_labelInputRef$curren2","focus","preventScroll","handleInputChange","target","handleInputKeydown","_labelInputRef$curren3","keyCode","which","blur","handleInputBlur","editing","empty","onChange","onKeyDown","onBlur","onDoubleClick","___CSS_LOADER_EXPORT___","push","module","toString"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/9393.4db156f6.js","mappings":"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","sources":["webpack:///./src/diagram/index.tsx","webpack:///./src/editable-label/index.tsx","webpack:///./src/editable-label/styles.shadow.css"],"sourcesContent":["import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport dagre from \"@dagrejs/dagre\";\nimport { select } from \"d3-selection\";\nimport { zoom } from \"d3-zoom\";\nimport classNames from \"classnames\";\nimport { pick, uniqueId } from \"lodash\";\nimport type {\n DiagramEdge,\n DiagramNode,\n LayoutOptionsDagre,\n LineConf,\n NodeBrickConf,\n PositionTuple,\n RefRepository,\n RenderedEdge,\n RenderedLineLabel,\n RenderedNode,\n LineTextClipPath,\n TransformLiteral,\n LineTarget,\n ConnectLineDetail,\n NodesConnectOptions,\n ConnectLineState,\n} from \"./interfaces\";\nimport { NodeComponentGroup } from \"./NodeComponent\";\nimport { handleKeyboard } from \"./processors/handleKeyboard\";\nimport { getCenterOffsets } from \"./processors/getCenterOffsets\";\nimport { getRenderedLinesAndMarkers } from \"./processors/getRenderedLinesAndMarkers\";\nimport { LineLabelComponentGroup } from \"./LineLabelComponent\";\nimport { LineComponent } from \"./LineComponent\";\nimport { MarkerComponent } from \"./MarkerComponent\";\nimport { ClipPathComponent } from \"./ClipPathComponent\";\nimport { ConnectLineComponent } from \"./ConnectLineComponent\";\nimport { getClipPathList } from \"./processors/getClipPathList\";\nimport { getRenderedLineLabels } from \"./processors/getRenderedLineLabels\";\nimport { getRenderedDiagram } from \"./processors/getRenderedDiagram\";\nimport { getDagreGraph } from \"./processors/getDagreGraph\";\nimport { handleDiagramMouseDown } from \"./processors/handleDiagramMouseDown\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface EoDiagramProps {\n layout?: \"dagre\";\n nodes?: DiagramNode[];\n edges?: DiagramEdge[];\n nodeBricks?: NodeBrickConf[];\n lines?: LineConf[];\n layoutOptions?: LayoutOptionsDagre;\n nodesConnect?: NodesConnectOptions;\n // activeType?: \"node\" | \"edge\";\n activeNodeId?: string;\n // activeEdge?: DiagramEdge;\n disableKeyboardAction?: boolean;\n}\n\nexport interface DiagramRef {\n callOnLineLabel(id: string, method: string, ...args: unknown[]): void;\n}\n\nexport interface DiagramHandler {\n moveIntoView(id: string): void;\n}\n\nexport const EoDiagramComponent = forwardRef(LegacyEoDiagramComponent);\n\n/**\n * 构件 `eo-diagram`\n */\nexport\n@defineElement(\"eo-diagram\", {\n styleTexts: [styleText],\n})\nclass EoDiagram extends ReactNextElement implements EoDiagramProps {\n /**\n * @required\n */\n @property({ type: String })\n accessor layout: \"dagre\" | undefined;\n\n @property({ attribute: false })\n accessor nodes: DiagramNode[] | undefined;\n\n @property({ attribute: false })\n accessor edges: DiagramEdge[] | undefined;\n\n @property({ attribute: false })\n accessor nodeBricks: NodeBrickConf[] | undefined;\n\n @property({ attribute: false })\n accessor lines: LineConf[] | undefined;\n\n @property({ attribute: false })\n accessor layoutOptions: LayoutOptionsDagre | undefined;\n\n // @property({ type: String })\n // accessor activeType: \"node\" | \"edge\" | undefined;\n\n @property({ type: String })\n accessor activeNodeId: string | undefined;\n\n // @property({ attribute: false })\n // accessor activeEdge: DiagramEdge | undefined;\n\n @property({ type: Boolean })\n accessor disableKeyboardAction: boolean | undefined;\n\n @property({ attribute: false })\n accessor nodesConnect: NodesConnectOptions | undefined;\n\n @event({ type: \"activeNode.change\" })\n accessor #activeNodeChangeEvent!: EventEmitter<DiagramNode | undefined>;\n\n #handleActiveNodeChange = (node: DiagramNode | undefined) => {\n // this.activeNodeId = node?.id;\n this.#activeNodeChangeEvent.emit(node);\n };\n\n @event({ type: \"node.delete\" })\n accessor #nodeDelete!: EventEmitter<DiagramNode>;\n\n #handleNodeDelete = (node: DiagramNode) => {\n this.#nodeDelete.emit(node);\n };\n\n @event({ type: \"line.dblclick\" })\n accessor #lineDoubleClick!: EventEmitter<LineTarget>;\n\n #handleLineDoubleClick = (line: LineTarget) => {\n this.#lineDoubleClick.emit(line);\n };\n\n @event({ type: \"nodes.connect\" })\n accessor #nodesConnect!: EventEmitter<ConnectLineDetail>;\n\n #handleNodesConnect = (detail: ConnectLineDetail) => {\n this.#nodesConnect.emit(detail);\n };\n\n #handleSwitchActiveNode = (id: string | undefined) => {\n this.activeNodeId = id;\n };\n\n #diagramRef = createRef<DiagramRef>();\n\n @method()\n callOnLineLabel(id: string, method: string, ...args: unknown[]) {\n this.#diagramRef.current?.callOnLineLabel(id, method, ...args);\n }\n\n render() {\n return (\n <EoDiagramComponent\n ref={this.#diagramRef}\n layout={this.layout}\n nodes={this.nodes}\n edges={this.edges}\n nodeBricks={this.nodeBricks}\n lines={this.lines}\n layoutOptions={this.layoutOptions}\n nodesConnect={this.nodesConnect}\n // activeType={this.activeType}\n activeNodeId={this.activeNodeId}\n // activeEdge={this.activeEdge}\n disableKeyboardAction={this.disableKeyboardAction}\n onActiveNodeChange={this.#handleActiveNodeChange}\n onSwitchActiveNode={this.#handleSwitchActiveNode}\n onNodeDelete={this.#handleNodeDelete}\n onLineDoubleClick={this.#handleLineDoubleClick}\n onNodesConnect={this.#handleNodesConnect}\n />\n );\n }\n}\n\nexport interface EoDiagramComponentProps extends EoDiagramProps {\n onActiveNodeChange?(node: DiagramNode | undefined): void;\n onSwitchActiveNode?(id: string | undefined): void;\n onNodeDelete?(node: DiagramNode): void;\n onLineDoubleClick?(line: LineTarget): void;\n onNodesConnect?(detail: ConnectLineDetail): void;\n}\n\nexport function LegacyEoDiagramComponent(\n {\n layout,\n nodes,\n edges,\n nodeBricks,\n lines,\n layoutOptions,\n nodesConnect,\n // activeType,\n activeNodeId,\n // activeEdge,\n disableKeyboardAction,\n onActiveNodeChange,\n onSwitchActiveNode,\n onNodeDelete,\n onLineDoubleClick,\n onNodesConnect,\n }: EoDiagramComponentProps,\n ref: React.Ref<DiagramRef>\n) {\n const [graph, setGraph] = useState<dagre.graphlib.Graph<RenderedNode> | null>(\n null\n );\n const [nodesReady, setNodesReady] = useState(false);\n const [nodesRenderId, setNodesRenderId] = useState(0);\n const [nodesRefRepository, setNodesRefRepository] =\n useState<RefRepository | null>(null);\n // const [lineLabelsReady, setLineLabelsReady] = useState(false);\n const [lineLabelsRenderId, setLineLabelsRenderId] = useState(0);\n const [lineLabelsRefRepository, setLineLabelsRefRepository] =\n useState<RefRepository | null>(null);\n const [renderedNodes, setRenderedNodes] = useState<RenderedNode[]>([]);\n const [renderedEdges, setRenderedEdges] = useState<RenderedEdge[]>([]);\n const [renderedLineLabels, setRenderedLineLabels] = useState<\n RenderedLineLabel[]\n >([]);\n\n const draggerRef = useRef<HTMLDivElement>(null);\n const [grabbing, setGrabbing] = useState(false);\n const [transform, setTransform] = useState<TransformLiteral>({\n k: 1,\n x: 0,\n y: 0,\n });\n\n const linePathsRef = useRef(new Map<string, SVGPathElement | null>());\n\n const rootRef = useRef<HTMLDivElement>(null);\n const nodesRef = useRef<HTMLDivElement>(null);\n const [offsets, setOffsets] = useState<PositionTuple>([0, 0]);\n const [centered, setCentered] = useState(false);\n\n const [connectLineTo, setConnectLineTo] = useState<PositionTuple>([0, 0]);\n const [connectLineState, setConnectLineState] =\n useState<ConnectLineState | null>(null);\n\n useImperativeHandle(ref, () => ({\n callOnLineLabel(id, method, ...args) {\n (\n lineLabelsRefRepository?.get(id)\n ?.firstElementChild as unknown as Record<string, Function>\n )?.[method](...args);\n },\n }));\n\n const onDiagramMouseDown = useCallback(\n (event: React.MouseEvent) => {\n handleDiagramMouseDown(event, {\n nodes,\n nodesRefRepository,\n nodesConnect,\n setConnectLineState,\n setConnectLineTo,\n onSwitchActiveNode,\n onNodesConnect,\n });\n },\n [\n nodes,\n nodesConnect,\n nodesRefRepository,\n onNodesConnect,\n onSwitchActiveNode,\n ]\n );\n\n const fixedOptions = useMemo(\n () => ({\n rankdir: \"TB\",\n ranksep: 50,\n edgesep: 10,\n nodesep: 50,\n // align: undefined,\n nodePadding: 0,\n ...layoutOptions,\n }),\n [layoutOptions]\n );\n\n const { nodePadding } = fixedOptions;\n const dagreGraphOptions = useMemo(\n () =>\n pick(fixedOptions, [\"rankdir\", \"ranksep\", \"edgesep\", \"nodesep\", \"align\"]),\n [fixedOptions]\n );\n\n const activeNodeChangeInitialized = useRef(false);\n useEffect(() => {\n if (!activeNodeChangeInitialized.current) {\n activeNodeChangeInitialized.current = true;\n return;\n }\n const nextActiveNode = activeNodeId\n ? nodes?.find((node) => node.id === activeNodeId)\n : undefined;\n onActiveNodeChange?.(nextActiveNode);\n }, [nodes, activeNodeId, onActiveNodeChange]);\n\n useEffect(() => {\n setGraph((previousGraph) =>\n getDagreGraph(previousGraph, nodes, edges, dagreGraphOptions)\n );\n }, [edges, nodes, dagreGraphOptions]);\n\n useEffect(() => {\n const renderedDiagram = getRenderedDiagram({\n graph,\n nodesRefRepository,\n nodePadding,\n });\n if (renderedDiagram) {\n setRenderedNodes(renderedDiagram.nodes);\n setRenderedEdges(renderedDiagram.edges);\n }\n }, [graph, nodesRefRepository, nodesRenderId, nodePadding]);\n\n const { renderedLines, markers } = useMemo(\n () => getRenderedLinesAndMarkers(renderedEdges, lines),\n [lines, renderedEdges]\n );\n\n useEffect(() => {\n const root = rootRef.current;\n if (!root || disableKeyboardAction) {\n return;\n }\n const onKeydown = (event: KeyboardEvent) => {\n const action = handleKeyboard(event, {\n renderedNodes,\n renderedEdges,\n activeNodeId,\n });\n\n if (action?.action === \"delete-node\") {\n onNodeDelete?.(action.node);\n } else if (action?.action === \"switch-active-node\" && action.node) {\n onSwitchActiveNode?.(action.node.id);\n }\n };\n root.addEventListener(\"keydown\", onKeydown);\n return () => {\n root.removeEventListener(\"keydown\", onKeydown);\n };\n }, [\n activeNodeId,\n renderedNodes,\n renderedEdges,\n disableKeyboardAction,\n onSwitchActiveNode,\n onNodeDelete,\n ]);\n\n const handleNodesRendered = useCallback(\n (refRepository: RefRepository | null) => {\n if (refRepository) {\n setNodesRenderId((previous) => previous + 1);\n setNodesRefRepository(refRepository);\n }\n setNodesReady((previous) => previous || !!refRepository);\n },\n []\n );\n\n const handleLineLabelsRendered = useCallback(\n (refRepository: RefRepository | null) => {\n if (refRepository) {\n setLineLabelsRenderId((previous) => previous + 1);\n setLineLabelsRefRepository(refRepository);\n }\n // setLineLabelsReady((previous) => previous || !!refRepository);\n },\n []\n );\n\n useEffect(() => {\n const root = rootRef.current;\n const dragger = draggerRef.current as Element;\n if (!root || !dragger) {\n return;\n }\n let moved = false;\n const zoomer = zoom()\n .scaleExtent([1, 1])\n .on(\"start\", () => {\n moved = false;\n setGrabbing(true);\n })\n .on(\"zoom\", (e) => {\n moved = true;\n setTransform(e.transform);\n })\n .on(\"end\", () => {\n setGrabbing(false);\n if (!moved) {\n onSwitchActiveNode?.(undefined);\n }\n });\n select(dragger).call(zoomer);\n\n select(root).on(\"wheel.zoom\", (e) => {\n e.stopPropagation();\n e.preventDefault();\n // Mac OS trackpad pinch event is emitted as a wheel.zoom and d3.event.ctrlKey set to true\n if (!e.ctrlKey) {\n zoomer.translateBy(\n select(dragger),\n e.wheelDeltaX / 5,\n e.wheelDeltaY / 5\n );\n }\n });\n }, [onSwitchActiveNode]);\n\n useEffect(() => {\n const root = rootRef.current;\n if (renderedNodes.length === 0 || !root || centered) {\n return;\n }\n setOffsets(\n getCenterOffsets(renderedNodes, [root.clientWidth, root.clientHeight])\n );\n setCentered(true);\n }, [centered, renderedNodes]);\n\n const defPrefix = useMemo(() => `${uniqueId(\"diagram-\")}-`, []);\n const markerPrefix = `${defPrefix}line-arrow-`;\n const clipPathPrefix = `${defPrefix}clip-path-`;\n\n useEffect(() => {\n setRenderedLineLabels((previous) =>\n getRenderedLineLabels(previous, renderedLines, linePathsRef.current)\n );\n }, [renderedLines]);\n\n const [clipPathList, setClipPathList] = React.useState<LineTextClipPath[]>(\n []\n );\n\n useEffect(() => {\n if (!lineLabelsRefRepository) {\n return;\n }\n setClipPathList(\n getClipPathList(renderedLineLabels, lineLabelsRefRepository)\n );\n }, [lineLabelsRenderId, lineLabelsRefRepository, renderedLineLabels]);\n\n if (layout !== \"dagre\") {\n return <div>{`Diagram layout not supported: \"${layout}\"`}</div>;\n }\n\n const rootOffsets = [offsets[0] + transform.x, offsets[1] + transform.y];\n\n return (\n <div\n className={classNames(\"diagram\", { ready: nodesReady && centered })}\n tabIndex={-1}\n ref={rootRef}\n onMouseDown={onDiagramMouseDown}\n >\n <div className={classNames(\"dragger\", { grabbing })} ref={draggerRef} />\n <svg width=\"100%\" height=\"100%\" className=\"lines\">\n <defs>\n {markers.map(({ strokeColor }, index) => (\n <MarkerComponent\n key={index}\n id={`${markerPrefix}${index}`}\n strokeColor={strokeColor}\n />\n ))}\n {clipPathList.map((clipPath) => (\n <ClipPathComponent\n key={clipPath.id}\n clipPath={clipPath}\n clipPathPrefix={clipPathPrefix}\n renderedLineLabels={renderedLineLabels}\n />\n ))}\n </defs>\n <g\n transform={`translate(${rootOffsets[0]} ${rootOffsets[1]}) scale(${transform.k})`}\n >\n {renderedLines.map((line) => (\n <LineComponent\n key={line.line.$id}\n line={line}\n linePaths={linePathsRef.current}\n clipPathList={clipPathList}\n markerPrefix={markerPrefix}\n clipPathPrefix={clipPathPrefix}\n onLineDoubleClick={onLineDoubleClick}\n />\n ))}\n </g>\n </svg>\n <div\n className=\"line-labels\"\n style={{\n left: rootOffsets[0],\n top: rootOffsets[1],\n }}\n >\n <LineLabelComponentGroup\n labels={renderedLineLabels}\n onRendered={handleLineLabelsRendered}\n />\n </div>\n <div\n className=\"nodes\"\n ref={nodesRef}\n style={{\n left: rootOffsets[0],\n top: rootOffsets[1],\n }}\n >\n <NodeComponentGroup\n nodes={nodes}\n nodeBricks={nodeBricks}\n // nodePositions={nodePositions}\n onRendered={handleNodesRendered}\n />\n </div>\n <ConnectLineComponent\n connectLineState={connectLineState}\n connectLineTo={connectLineTo}\n markerPrefix={markerPrefix}\n />\n </div>\n );\n}\n","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport classNames from \"classnames\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface EditableLabelProps {\n label?: string;\n type?: LabelType;\n}\n\nexport type LabelType = \"line\" | \"default\";\n\nexport interface EditableLabelRef {\n enableEditing(): void;\n}\n\nexport const EditableLabelComponent = forwardRef(LegacyEditableLabelComponent);\n\n/**\n * 构件 `diagram.editable-label`\n */\nexport\n@defineElement(\"diagram.editable-label\", {\n styleTexts: [styleText],\n})\nclass EditableLabel extends ReactNextElement implements EditableLabelProps {\n @property()\n accessor label: string | undefined;\n\n @property({ render: false })\n accessor type: LabelType | undefined;\n\n @event({ type: \"label.editing.change\" })\n accessor #labelEditingChange!: EventEmitter<boolean>;\n\n #handleLabelEditingChange = (value: boolean) => {\n this.#labelEditingChange.emit(value);\n };\n\n @event({ type: \"label.change\" })\n accessor #labelChange!: EventEmitter<string>;\n\n #handleLabelChange = (value: string) => {\n this.#labelChange.emit(value);\n };\n\n @method()\n enableEditing() {\n this.#editableLabelRef.current?.enableEditing();\n }\n\n #editableLabelRef = createRef<EditableLabelRef>();\n\n render() {\n return (\n <EditableLabelComponent\n ref={this.#editableLabelRef}\n label={this.label}\n onLabelEditingChange={this.#handleLabelEditingChange}\n onLabelChange={this.#handleLabelChange}\n />\n );\n }\n}\n\nexport interface EditableLabelComponentProps extends EditableLabelProps {\n onLabelEditingChange?(value: boolean): void;\n onLabelChange?(value: string): void;\n}\n\nexport function LegacyEditableLabelComponent(\n {\n label: _label,\n onLabelChange,\n onLabelEditingChange,\n }: EditableLabelComponentProps,\n ref: React.Ref<EditableLabelRef>\n) {\n const label = _label ?? \"\";\n const [currentLabel, setCurrentLabel] = useState<string>(label);\n const [editingLabel, setEditingLabel] = useState(false);\n const editingLabelInitialized = useRef(false);\n const [shouldEmitLabelChange, setShouldEmitLabelChange] = useState(false);\n const labelInputRef = useRef<HTMLInputElement>(null);\n\n useImperativeHandle(ref, () => ({\n enableEditing() {\n setEditingLabel(true);\n },\n }));\n\n useEffect(() => {\n setCurrentLabel(label);\n }, [label]);\n\n const handleEditLabel = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setEditingLabel(true);\n }, []);\n\n useEffect(() => {\n if (editingLabel) {\n // Prevent scroll when focusing.\n // Otherwise the diagram svg may be clipped in Chrome.\n labelInputRef.current?.focus({ preventScroll: true });\n labelInputRef.current?.select();\n }\n }, [editingLabel]);\n\n useEffect(() => {\n if (editingLabelInitialized.current) {\n onLabelEditingChange?.(editingLabel);\n } else {\n editingLabelInitialized.current = true;\n }\n }, [editingLabel, onLabelEditingChange]);\n\n const handleInputChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n setCurrentLabel(event.target.value);\n },\n []\n );\n\n const handleInputKeydown = useCallback((event: React.KeyboardEvent) => {\n const key =\n event.key ||\n /* istanbul ignore next: compatibility */ event.keyCode ||\n /* istanbul ignore next: compatibility */ event.which;\n if (key === \"Enter\" || key === 13) {\n labelInputRef.current?.blur();\n }\n }, []);\n\n const handleInputBlur = useCallback(() => {\n setEditingLabel(false);\n setShouldEmitLabelChange(true);\n }, []);\n\n useEffect(() => {\n if (shouldEmitLabelChange) {\n onLabelChange?.(currentLabel);\n setShouldEmitLabelChange(false);\n }\n }, [currentLabel, onLabelChange, shouldEmitLabelChange]);\n\n return (\n <div\n className={classNames(\"label\", {\n editing: editingLabel,\n empty: !currentLabel,\n })}\n >\n <input\n className=\"label-input\"\n value={currentLabel}\n ref={labelInputRef}\n onChange={handleInputChange}\n onKeyDown={handleInputKeydown}\n onBlur={handleInputBlur}\n />\n <div className=\"label-text\" onDoubleClick={handleEditLabel}>\n {currentLabel}\n </div>\n </div>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;--local-label-line-height:inherit;--local-label-font-size:inherit;--local-label-color:inherit;--local-label-font-weight:inherit}:host([hidden]){display:none}:host([type=\"line\"]){--local-label-line-height:18px;--local-label-font-size:11px;--local-label-color:var(--color-secondary-text);--local-label-font-weight:400}*{box-sizing:border-box}.label{max-width:168px;margin:-3px}.label-text,\n.label-input{width:100%;height:24px;padding:3px;border:none;line-height:var(--local-label-line-height);font-size:var(--local-label-font-size);color:var(--local-label-color);font-weight:var(--local-label-font-weight);text-align:center;font-family:inherit;cursor:text;-webkit-user-select:text;-moz-user-select:text;user-select:text}.label-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.label.editing .label-text,\n.label.empty:not(.editing) .label-text,\n.label:not(.editing) .label-input{display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["_EoDiagram","defineElement","property","event","method","createDecorators","EoDiagramComponent","forwardRef","LegacyEoDiagramComponent","_dec","styleTexts","styleText","_dec2","type","String","_dec3","attribute","_dec4","_dec5","_dec6","_dec7","_dec8","_dec9","Boolean","_dec10","_dec11","_dec12","_dec13","_dec14","_dec15","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_activeNodeChangeEvent","_handleActiveNodeChange","_K","_nodeDelete","_handleNodeDelete","_L","_lineDoubleClick","_handleLineDoubleClick","_M","_nodesConnect","_handleNodesConnect","_handleSwitchActiveNode","_diagramRef","EoDiagram","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","get","_get_nodesConnect2","set","_set_nodesConnect2","_get_lineDoubleClick2","_set_lineDoubleClick2","_get_nodeDelete2","_set_nodeDelete2","_get_activeNodeChangeEvent2","_set_activeNodeChangeEvent2","writable","value","_initProto","_init_layout","_init_nodes","_init_edges","_init_nodeBricks","_init_lines","_init_layoutOptions","_init_activeNodeId","_init_disableKeyboardAction","_init_nodesConnect","_init_activeNodeChangeEvent","node","_classPrivateFieldGet","this","emit","_init_nodeDelete","_init_lineDoubleClick","line","_init_nodesConnect2","detail","id","activeNodeId","createRef","layout","v","_classPrivateFieldSet","nodes","edges","nodeBricks","lines","layoutOptions","disableKeyboardAction","nodesConnect","callOnLineLabel","_classPrivateFieldGet2","_len","length","args","Array","_key","current","render","React","ref","onActiveNodeChange","onSwitchActiveNode","onNodeDelete","onLineDoubleClick","onNodesConnect","_set_activeNodeChangeEvent","_get_activeNodeChangeEvent","_set_nodeDelete","_get_nodeDelete","_set_lineDoubleClick","_get_lineDoubleClick","_set_nodesConnect","_get_nodesConnect","_ref","graph","setGraph","useState","nodesReady","setNodesReady","nodesRenderId","setNodesRenderId","nodesRefRepository","setNodesRefRepository","lineLabelsRenderId","setLineLabelsRenderId","lineLabelsRefRepository","setLineLabelsRefRepository","renderedNodes","setRenderedNodes","renderedEdges","setRenderedEdges","renderedLineLabels","setRenderedLineLabels","draggerRef","useRef","grabbing","setGrabbing","transform","setTransform","k","x","y","linePathsRef","Map","rootRef","nodesRef","offsets","setOffsets","centered","setCentered","connectLineTo","setConnectLineTo","connectLineState","setConnectLineState","useImperativeHandle","_lineLabelsRefReposit","_len2","_key2","firstElementChild","onDiagramMouseDown","useCallback","handleDiagramMouseDown","fixedOptions","useMemo","_objectSpread","rankdir","ranksep","edgesep","nodesep","nodePadding","dagreGraphOptions","pick","activeNodeChangeInitialized","useEffect","nextActiveNode","find","undefined","previousGraph","getDagreGraph","renderedDiagram","getRenderedDiagram","renderedLines","markers","getRenderedLinesAndMarkers","root","onKeydown","action","handleKeyboard","addEventListener","removeEventListener","handleNodesRendered","refRepository","previous","handleLineLabelsRendered","dragger","moved","zoomer","zoom","scaleExtent","on","e","select","call","stopPropagation","preventDefault","ctrlKey","translateBy","wheelDeltaX","wheelDeltaY","getCenterOffsets","clientWidth","clientHeight","defPrefix","concat","uniqueId","markerPrefix","clipPathPrefix","getRenderedLineLabels","clipPathList","setClipPathList","getClipPathList","rootOffsets","className","classNames","ready","tabIndex","onMouseDown","width","height","map","_ref2","index","strokeColor","MarkerComponent","key","clipPath","ClipPathComponent","LineComponent","$id","linePaths","style","left","top","LineLabelComponentGroup","labels","onRendered","NodeComponentGroup","ConnectLineComponent","_class","c","_initClass","_applyDecs","o","_","has","_checkInRHS","_EditableLabel","EditableLabelComponent","LegacyEditableLabelComponent","_labelEditingChange","_handleLabelEditingChange","_labelChange","_handleLabelChange","_editableLabelRef","EditableLabel","_get_labelChange2","_set_labelChange2","_get_labelEditingChange2","_set_labelEditingChange2","_init_label","_init_type","_init_labelEditingChange","_init_labelChange","label","enableEditing","onLabelEditingChange","onLabelChange","_set_labelEditingChange","_get_labelEditingChange","_set_labelChange","_get_labelChange","_label","currentLabel","setCurrentLabel","editingLabel","setEditingLabel","editingLabelInitialized","shouldEmitLabelChange","setShouldEmitLabelChange","labelInputRef","handleEditLabel","_labelInputRef$curren","_labelInputRef$curren2","focus","preventScroll","handleInputChange","target","handleInputKeydown","_labelInputRef$curren3","keyCode","which","blur","handleInputBlur","editing","empty","onChange","onKeyDown","onBlur","onDoubleClick","___CSS_LOADER_EXPORT___","push","module","toString"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_next_bricks_diagram=self.webpackChunk_next_bricks_diagram||[]).push([[9016],{2715:(e,t,n)=>{n.r(t),n.d(t,{EoDiagram:()=>H,EoDiagramComponent:()=>Ee,LegacyEoDiagramComponent:()=>nt});var a,i,s,r,o,l,d,c,u,h,v,p,Z,k,f,b,w,g,m,y,E,C,M,N,W,L,S,D,R,x,P,A,I,B,O,K,_,T,z,H,q=n(3028),X=n(3395),Y=n(1815),$=n(381),j=n(687),F=n(5066),G=n(8657),J=n.n(G),Q=n(5727),U=n(305),V=(n(928),n(1105)),ee=n(7397),te=n(2779),ne=n.n(te),ae=n(1211),ie=n(2370),se=n(5702),re=n(6365),oe=n(5731),le=n(7853),de=n(6462),ce=n(9575),ue=n(2260),he=n(7587),ve=n(1251),pe=n(4126),Ze=n(
|
|
2
|
-
//# sourceMappingURL=eo-diagram.
|
|
1
|
+
"use strict";(self.webpackChunk_next_bricks_diagram=self.webpackChunk_next_bricks_diagram||[]).push([[9016],{2715:(e,t,n)=>{n.r(t),n.d(t,{EoDiagram:()=>H,EoDiagramComponent:()=>Ee,LegacyEoDiagramComponent:()=>nt});var a,i,s,r,o,l,d,c,u,h,v,p,Z,k,f,b,w,g,m,y,E,C,M,N,W,L,S,D,R,x,P,A,I,B,O,K,_,T,z,H,q=n(3028),X=n(3395),Y=n(1815),$=n(381),j=n(687),F=n(5066),G=n(8657),J=n.n(G),Q=n(5727),U=n(305),V=(n(928),n(1105)),ee=n(7397),te=n(2779),ne=n.n(te),ae=n(1211),ie=n(2370),se=n(5702),re=n(6365),oe=n(5731),le=n(7853),de=n(6462),ce=n(9575),ue=n(2260),he=n(7587),ve=n(1251),pe=n(4126),Ze=n(7201),ke=n(5173),fe=n(4510),be=n(6436),{defineElement:we,property:ge,event:me,method:ye}=(0,Q.createDecorators)(),Ee=(0,G.forwardRef)(nt);i=we("eo-diagram",{styleTexts:[be.Z]}),s=ge({type:String}),o=ge({attribute:!1}),d=ge({attribute:!1}),u=ge({attribute:!1}),v=ge({attribute:!1}),Z=ge({attribute:!1}),f=ge({type:String}),w=ge({type:Boolean}),m=ge({attribute:!1}),E=me({type:"activeNode.change"}),W=me({type:"node.delete"}),R=me({type:"line.dblclick"}),I=me({type:"nodes.connect"}),_=ye();var Ce=new WeakMap,Me=new WeakMap,Ne=new WeakMap,We=new WeakMap,Le=new WeakMap,Se=new WeakMap,De=new WeakMap,Re=new WeakMap,xe=new WeakMap,Pe=new WeakMap,Ae=new WeakMap,Ie=new WeakMap,Be=new WeakMap,Oe=new WeakMap,Ke=new WeakMap,_e=new WeakMap,Te=new WeakMap,ze=new WeakMap,He=new WeakMap,qe=new WeakMap,Xe=new WeakMap,Ye=new WeakMap,$e=new WeakMap;class je extends U.ReactNextElement{constructor(){super(...arguments),(0,X.Z)(this,qe,{get:tt,set:et}),(0,X.Z)(this,Te,{get:Ve,set:Ue}),(0,X.Z)(this,Oe,{get:Qe,set:Je}),(0,X.Z)(this,Ae,{get:Ge,set:Fe}),(0,X.Z)(this,Ce,{writable:!0,value:(T(this),r(this))}),(0,X.Z)(this,Me,{writable:!0,value:l(this)}),(0,X.Z)(this,Ne,{writable:!0,value:c(this)}),(0,X.Z)(this,We,{writable:!0,value:h(this)}),(0,X.Z)(this,Le,{writable:!0,value:p(this)}),(0,X.Z)(this,Se,{writable:!0,value:k(this)}),(0,X.Z)(this,De,{writable:!0,value:b(this)}),(0,X.Z)(this,Re,{writable:!0,value:g(this)}),(0,X.Z)(this,xe,{writable:!0,value:y(this)}),(0,X.Z)(this,Pe,{writable:!0,value:C(this)}),(0,X.Z)(this,Ie,{writable:!0,value:e=>{(0,j.Z)(this,Ae).emit(e)}}),(0,X.Z)(this,Be,{writable:!0,value:L(this)}),(0,X.Z)(this,Ke,{writable:!0,value:e=>{(0,j.Z)(this,Oe).emit(e)}}),(0,X.Z)(this,_e,{writable:!0,value:x(this)}),(0,X.Z)(this,ze,{writable:!0,value:e=>{(0,j.Z)(this,Te).emit(e)}}),(0,X.Z)(this,He,{writable:!0,value:B(this)}),(0,X.Z)(this,Xe,{writable:!0,value:e=>{(0,j.Z)(this,qe).emit(e)}}),(0,X.Z)(this,Ye,{writable:!0,value:e=>{this.activeNodeId=e}}),(0,X.Z)(this,$e,{writable:!0,value:(0,G.createRef)()})}get layout(){return(0,j.Z)(this,Ce)}set layout(e){(0,$.Z)(this,Ce,e)}get nodes(){return(0,j.Z)(this,Me)}set nodes(e){(0,$.Z)(this,Me,e)}get edges(){return(0,j.Z)(this,Ne)}set edges(e){(0,$.Z)(this,Ne,e)}get nodeBricks(){return(0,j.Z)(this,We)}set nodeBricks(e){(0,$.Z)(this,We,e)}get lines(){return(0,j.Z)(this,Le)}set lines(e){(0,$.Z)(this,Le,e)}get layoutOptions(){return(0,j.Z)(this,Se)}set layoutOptions(e){(0,$.Z)(this,Se,e)}get activeNodeId(){return(0,j.Z)(this,De)}set activeNodeId(e){(0,$.Z)(this,De,e)}get disableKeyboardAction(){return(0,j.Z)(this,Re)}set disableKeyboardAction(e){(0,$.Z)(this,Re,e)}get nodesConnect(){return(0,j.Z)(this,xe)}set nodesConnect(e){(0,$.Z)(this,xe,e)}callOnLineLabel(e,t){for(var n,a=arguments.length,i=new Array(a>2?a-2:0),s=2;s<a;s++)i[s-2]=arguments[s];null===(n=(0,j.Z)(this,$e).current)||void 0===n||n.callOnLineLabel(e,t,...i)}render(){return J().createElement(Ee,{ref:(0,j.Z)(this,$e),layout:this.layout,nodes:this.nodes,edges:this.edges,nodeBricks:this.nodeBricks,lines:this.lines,layoutOptions:this.layoutOptions,nodesConnect:this.nodesConnect,activeNodeId:this.activeNodeId,disableKeyboardAction:this.disableKeyboardAction,onActiveNodeChange:(0,j.Z)(this,Ie),onSwitchActiveNode:(0,j.Z)(this,Ye),onNodeDelete:(0,j.Z)(this,Ke),onLineDoubleClick:(0,j.Z)(this,ze),onNodesConnect:(0,j.Z)(this,Xe)})}}function Fe(e){N(this,e)}function Ge(){return M(this)}function Je(e){D(this,e)}function Qe(){return S(this)}function Ue(e){A(this,e)}function Ve(){return P(this)}function et(e){K(this,e)}function tt(){return O(this)}function nt(e,t){var{layout:n,nodes:a,edges:i,nodeBricks:s,lines:r,layoutOptions:o,nodesConnect:l,activeNodeId:d,disableKeyboardAction:c,onActiveNodeChange:u,onSwitchActiveNode:h,onNodeDelete:v,onLineDoubleClick:p,onNodesConnect:Z}=e,[k,f]=(0,G.useState)(null),[b,w]=(0,G.useState)(!1),[g,m]=(0,G.useState)(0),[y,E]=(0,G.useState)(null),[C,M]=(0,G.useState)(0),[N,W]=(0,G.useState)(null),[L,S]=(0,G.useState)([]),[D,R]=(0,G.useState)([]),[x,P]=(0,G.useState)([]),A=(0,G.useRef)(null),[I,B]=(0,G.useState)(!1),[O,K]=(0,G.useState)({k:1,x:0,y:0}),_=(0,G.useRef)(new Map),T=(0,G.useRef)(null),z=(0,G.useRef)(null),[H,X]=(0,G.useState)([0,0]),[Y,$]=(0,G.useState)(!1),[j,F]=(0,G.useState)([0,0]),[Q,U]=(0,G.useState)(null);(0,G.useImperativeHandle)(t,(()=>({callOnLineLabel(e,t){for(var n,a=arguments.length,i=new Array(a>2?a-2:0),s=2;s<a;s++)i[s-2]=arguments[s];null==N||null===(n=N.get(e))||void 0===n||null===(n=n.firstElementChild)||void 0===n||n[t](...i)}})));var te=(0,G.useCallback)((e=>{(0,fe.k)(e,{nodes:a,nodesRefRepository:y,nodesConnect:l,setConnectLineState:U,setConnectLineTo:F,onSwitchActiveNode:h,onNodesConnect:Z})}),[a,l,y,Z,h]),be=(0,G.useMemo)((()=>(0,q.Z)({rankdir:"TB",ranksep:50,edgesep:10,nodesep:50,nodePadding:0},o)),[o]),{nodePadding:we}=be,ge=(0,G.useMemo)((()=>(0,ae.pick)(be,["rankdir","ranksep","edgesep","nodesep","align"])),[be]),me=(0,G.useRef)(!1);(0,G.useEffect)((()=>{if(me.current){var e=d?null==a?void 0:a.find((e=>e.id===d)):void 0;null==u||u(e)}else me.current=!0}),[a,d,u]),(0,G.useEffect)((()=>{f((e=>(0,ke.T)(e,a,i,ge)))}),[i,a,ge]),(0,G.useEffect)((()=>{var e=(0,Ze.E)({graph:k,nodesRefRepository:y,nodePadding:we});e&&(S(e.nodes),R(e.edges))}),[k,y,g,we]);var{renderedLines:ye,markers:Ee}=(0,G.useMemo)((()=>(0,oe.b)(D,r)),[r,D]);(0,G.useEffect)((()=>{var e=T.current;if(e&&!c){var t=e=>{var t=(0,se.p)(e,{renderedNodes:L,renderedEdges:D,activeNodeId:d});"delete-node"===(null==t?void 0:t.action)?null==v||v(t.node):"switch-active-node"===(null==t?void 0:t.action)&&t.node&&(null==h||h(t.node.id))};return e.addEventListener("keydown",t),()=>{e.removeEventListener("keydown",t)}}}),[d,L,D,c,h,v]);var Ce=(0,G.useCallback)((e=>{e&&(m((e=>e+1)),E(e)),w((t=>t||!!e))}),[]),Me=(0,G.useCallback)((e=>{e&&(M((e=>e+1)),W(e))}),[]);(0,G.useEffect)((()=>{var e=T.current,t=A.current;if(e&&t){var n=!1,a=(0,ee.sP)().scaleExtent([1,1]).on("start",(()=>{n=!1,B(!0)})).on("zoom",(e=>{n=!0,K(e.transform)})).on("end",(()=>{B(!1),n||null==h||h(void 0)}));(0,V.Z)(t).call(a),(0,V.Z)(e).on("wheel.zoom",(e=>{e.stopPropagation(),e.preventDefault(),e.ctrlKey||a.translateBy((0,V.Z)(t),e.wheelDeltaX/5,e.wheelDeltaY/5)}))}}),[h]),(0,G.useEffect)((()=>{var e=T.current;0!==L.length&&e&&!Y&&(X((0,re.i)(L,[e.clientWidth,e.clientHeight])),$(!0))}),[Y,L]);var Ne=(0,G.useMemo)((()=>"".concat((0,ae.uniqueId)("diagram-"),"-")),[]),We="".concat(Ne,"line-arrow-"),Le="".concat(Ne,"clip-path-");(0,G.useEffect)((()=>{P((e=>(0,pe.K)(e,ye,_.current)))}),[ye]);var[Se,De]=J().useState([]);if((0,G.useEffect)((()=>{N&&De((0,ve.i)(x,N))}),[C,N,x]),"dagre"!==n)return J().createElement("div",null,'Diagram layout not supported: "'.concat(n,'"'));var Re=[H[0]+O.x,H[1]+O.y];return J().createElement("div",{className:ne()("diagram",{ready:b&&Y}),tabIndex:-1,ref:T,onMouseDown:te},J().createElement("div",{className:ne()("dragger",{grabbing:I}),ref:A}),J().createElement("svg",{width:"100%",height:"100%",className:"lines"},J().createElement("defs",null,Ee.map(((e,t)=>{var{strokeColor:n}=e;return J().createElement(ce.C,{key:t,id:"".concat(We).concat(t),strokeColor:n})})),Se.map((e=>J().createElement(ue.K,{key:e.id,clipPath:e,clipPathPrefix:Le,renderedLineLabels:x})))),J().createElement("g",{transform:"translate(".concat(Re[0]," ").concat(Re[1],") scale(").concat(O.k,")")},ye.map((e=>J().createElement(de.y,{key:e.line.$id,line:e,linePaths:_.current,clipPathList:Se,markerPrefix:We,clipPathPrefix:Le,onLineDoubleClick:p}))))),J().createElement("div",{className:"line-labels",style:{left:Re[0],top:Re[1]}},J().createElement(le.L8,{labels:x,onRendered:Me})),J().createElement("div",{className:"nodes",ref:z,style:{left:Re[0],top:Re[1]}},J().createElement(ie.n,{nodes:a,nodeBricks:s,onRendered:Ce})),J().createElement(he.f,{connectLineState:Q,connectLineTo:j,markerPrefix:We}))}z=je,({e:[r,l,c,h,p,k,b,g,y,C,M,N,L,S,D,x,P,A,B,O,K,T],c:[H,a]}=(0,F.Z)(z,[[s,1,"layout"],[o,1,"nodes"],[d,1,"edges"],[u,1,"nodeBricks"],[v,1,"lines"],[Z,1,"layoutOptions"],[f,1,"activeNodeId"],[w,1,"disableKeyboardAction"],[m,1,"nodesConnect"],[E,1,"activeNodeChangeEvent",e=>(0,j.Z)(e,Pe),(e,t)=>(0,$.Z)(e,Pe,t)],[W,1,"nodeDelete",e=>(0,j.Z)(e,Be),(e,t)=>(0,$.Z)(e,Be,t)],[R,1,"lineDoubleClick",e=>(0,j.Z)(e,_e),(e,t)=>(0,$.Z)(e,_e,t)],[I,1,"nodesConnect",e=>(0,j.Z)(e,He),(e,t)=>(0,$.Z)(e,He,t)],[_,2,"callOnLineLabel"]],[i],0,(e=>$e.has((0,Y.Z)(e))),U.ReactNextElement)),a()}}]);
|
|
2
|
+
//# sourceMappingURL=eo-diagram.a0684049.js.map
|